回复 #16 wy558558558 的帖子
发图片可以按照下列两张图示进行。1.点击最后一个帖子右下角的回复(注意不是在网页最下面回复框中进行回复)
2.如步骤1点击“回复”之后,出现图2,最下面有个“上传附件”,选择你的图片就好了。
[ 本帖最后由 zhlong 于 2007-6-13 13:05 编辑 ] 非常感谢大家的意见:)
我说明一下我用连续小波变换的用途:
我要用morlet小波来提取信号特征,在matlab中只有连续小波变换中才有morlet小波基,离散变换中没有(看wavemenu中就知道了),我就只好用连续小波变换来分解原信号,然后对各尺度阀值去噪提取特征,然后再重构原信号。可是matlab中没有连续小波变换重构的命令,所以还要请教大家,谢谢。不知道哪有morlet小波离散小波变换和重构的程序?如果有也可以阿 像morlet小波这样的复小波是不能用mallat算法来进行离散变换的。连续小波变换的重构程序可能只有自己编了,可以采用常用数值积分法。 我也在做连续小波重构的算法,看到部分论文中用它来消噪,可以较大程度地保留弱信号,按照matlab中实现CWT的算法编写了icwt的算法,但是效果不是很好,还未找到原因。
算法如下:
%连续小波变换的积分卷积算法
load SimulatedDataPart5;
fs=1000;
Scale=1:30;
tempVectorScale=Scale.^(-0.5);
N=length(x);
t=(0:N-1)/fs;
plot(t,x);title('原始波形');axis tight;
tMin=t(1);tMax=t(N);
=morlet(tMin,tMax,N);
WaveName='morl';
=intwave(WaveName,10); %求指定小波函数的积分
tVal=tVal-tVal(1);
stepWAV=tVal(2)-tVal(1);
xMaxWAV=tVal(end);
WaveletTraScale=[];WaveletTraM2=[];
CWT=cwt(x,Scale,'morl');
ReSiganlM=[];
%仿matlab中实现CWT的算法过程
for k=1:length(Scale)
a=Scale(k);
a_SIG=a;
j=/(a_SIG*stepWAV))];
f=fliplr(WaveletInt(j));
ReSignalM(k,:)=-wkeep1(diff(wconv1(CWT(k,:),f)),N)/(a^2);
end
ReSignal=sum(ReSignalM);
hold on;
plot(t,ReSignal,'r-');
%求容许性参数
f=(1:N)*fs/N;
XAmp=2*abs(fft(x))/N;
XPower=XAmp.^2;
tempV=XPower./f;
Cw=2*sum(tempV)*(f(2)-f(1));
ReSignal=ReSignal/Cw;
hold on;
plot(t,ReSignal,'g-');
%求互相关系数
CorrelationCoefs=corrcoef(x,ReSignal);
[ 本帖最后由 diagnosis 于 2008-11-14 21:47 编辑 ] 我看到很多论文中提及用连续小波进行重构,
但是不知道如何进行重构,如果按照逆连续小波变换公式,是双重积分,
不太可行,因为实际用连续小波分析信号时,最终分解结果也是离散数据。
期待有研究的人指导一下! 原帖由 破凰 于 2007-6-12 20:14 发表 http://www.chinavib.com/forum/images/common/back.gif
我认为你这个观点不太恰当哦。。重构应该是指由所有小波系数恢复出原信号。每一尺度下的小波系数反映的只是相应频率范围的细节成分,所以得到某一尺度下的小波系数并没有实现对原信号的重构。lz的想法有一定创新( ...
那重构某一尺度下的小波系数是不是意味着重构该尺度对应频率范围下的原始信号???即重构出来的是原信号的的该频率下的样子???
[ 本帖最后由 Juneliu 于 2008-11-28 09:43 编辑 ] 帖子质量比较高,要是帖子都像这样,就好了。
页:
1
[2]