求助:如何用小波分析实现这个图形?
各位高手,我现在有一组采集数据,想用小波分析来处理。我看了别人分析出来的图形是这样的(如附图),我不知道用什么命令来实现?我用了一个c=cwt(s,,'morl','3Dlvl');的命令,结果不对,望请赐教!谢谢! 是我说的不够详细吗?没有人能回答我的问题? 你画出来的是什么样子的呢?回答问题
改成c=cwt(s,,'morl','3Dplot');
或者
c=cwt(s,,'morl','3Dabsglb');
画出来的就是三维的图,至于颜色方案,cwt默认的是pink,上图中用的是jet,你加一句
colormap(jet);
就可以了。
上图的代码
c=cwt(x,2:50,'morl','3Dplot');colormap(jet);
x是我自己定义的一个信号。
pink颜色方案
c=cwt(x,2:50,'morl','3Dplot');colormap(pink);
好像jet更好看,和ansys里面的差不多 我试试看呀,不过在这先谢谢了。有什么疑问,希望再给我指出!谢谢 哦,对了,我这个是时间-频率分析图,我怎么样才能将我的信号转换为频率到这里面去呢?我现在现有的就只有传感器采集来的数据(加速度)。能不能告诉我? 我直接将我采集的数据作为x带入到cwt(x,2:50,'morl','3Dplot'),计算后出来的图形是这个(附图1),与正确的图形(附图2)有天壤之别,可能是我的频率还没有转换进去,但不知道如何转入呢? 采样频率除以尺度才是实际的以Hz为单位的频率轴,你的实际信号是低频,出现上面的不相同的原因估计是尺度的范围选择不对,将尺度的下限选大一些(>2),这样频率轴的最高频率就会减小,频率范围集中在你的信号频率范围段(25Hz以内),那样就对了。你再试试 我的程序如下,得出的图形不对呀!
x=Data(1500*500:1505*500);
c=cwt(x,1:25,'morl','3Dplot');
colormap(pink);
还有就是cwt里面的频率参数为什么不能从0开始呀? 我照着本论坛上面的一个程序自己编了一下,程序如下:
figure(1);
t=5;fs=500;
Ts=1/fs;N=t/Ts;
x=Data(1500*500:1505*500);
% x=awgn(x,-3,'measured');
subplot(221)
plot(0:Ts:t,real(x));xlabel('time-sec');ylabel('cable acceleration-m/s^2');axis();
n=0:N-1;
Xk=fft(x);
mXk=abs(Xk(1:N/2));
k=(0:N/2-1*fs/N);
subplot(212),plot(k,mXk);
xlabel('Frequency in Hz units');title('Magnitude of Data');axis();
figure(2);
Nw=500;
L=Nw/2;
Tn=(N-Nw)/L+1;
nfft=25;
TF=zeros(Tn,nfft);
for i=1:Tn
xw=x((i-1)*10+1:i*10+10);
temp=fft(xw,nfft);
temp=fftshift(temp);
TF(i,:)=temp;
end
fnew=((1:nfft)-nfft/2)*fs/nfft;
tnew=(1:Tn)*L*Ts;
=meshgrid(fnew,tnew);
mesh(F,T,abs(TF));
其中的Nw的含义是什么呀?画出的三维时频图的频率是对称的,我如果要单边的如何改动呢?
我画出的图1是原信号的时程和功率谱,其中原信号中的横坐标为时间,幅值只有0.5~1左右,而如果用采样次数直接画出,幅值有4左右,这为什么会不同,有什么区别吗?功率谱也是,我用自己编的程序算出这段时间的功率谱在4Hz左右才有一个高峰值,其他频率处都很小,这里确出现了几个峰值,为什么?
图2是时频三维图,图像与我贴出的样板相差也很远,不知道如何改动这个程序才能达到我想要的样本那样的图形?
先更正一个问题(道歉)
由尺度到频率的转换关系应该是采样频率/尺度*小波中心频率。我上面的帖子写错了,特此更正。向学术精神道歉!!!!!!!!!!!!!!!!!!!11 cwt里的是尺度参数,不是频率参数,两者成倒数关系。自己多研究研究。 领教,多谢!
页:
[1]
2