specgram
specgram(xx,1199,500,hanning(256),0);为什么算出来的横轴--时是轴不是从0开始的,而是从-0.2开始的呢? 时域解析度不够造成这麽明显!
LZ的例子明显仅有4次
回复 沙发 ChaChing 的帖子
那长为1200的序列划成几组比较适当呢?回复 板凳 xueyebaixuan 的帖子
看LZ的需求而定吧! 或许可试试使用overlaps回复 地板 ChaChing 的帖子
哦,谢谢!还有我想请教一下.
毕设老师让求相干的时频表示.
function =stft(xx,yy);
=specgram(xx,1199,500,hanning(200),0);
Syy=specgram(yy,1199,500,hanning(200),0);
Sxx=abs(Sxx).^2;%信号xx的自谱
Syy=abs(Syy).^2;%信号yy的自谱
Sxy=Syy.*conj(Sxx)%%%%%%请问这个式子求的是两个信号的互谱吗?
S=(abs(Sxy).^2)./(Sxx.*Syy);%相干函数
F=Fxx;
T=Txx;
imagesc(T,F/2/pi,20*log(S));axis xy; colormap(jet);
由此求出来的结果有几点问题:
(1)S有大于1的数出现.
(2)试了好几组信号,却发现求出来的图像都是在某一特定的时域处有最大值,不知道是不是程序有什么问题?
[ 本帖最后由 xueyebaixuan 于 2009-4-27 12:45 编辑 ]
回复 5楼 xueyebaixuan 的帖子
我并非讯号处理专家! 数学公式也模糊了, 怕说错误导, 待高人路过确定! 但直觉下列有问题, LZ自己再审视吧Sxx=abs(Sxx).^2; Syy=abs(Syy).^2; % 已经为实数
Sxy=Syy.*conj(Sxx); 何来conj?
是否应为
Pxx=abs(Sxx).^2; Pyy=abs(Syy).^2; Pxy=Syy.*conj(Sxx); S=(abs(Pxy).^2)./(Pxx.*Pyy);
回复 6楼 ChaChing 的帖子
哦,是的.我也刚刚发现了这个问题.可是改完之后,出来的数据全是1.:'( 我要晕死了~回复 6楼 ChaChing 的帖子
哦,我刚才也发现这个问题,可是改完后得到的相干全变成1了.有人说相干要分段平滑之类的.可是短时傅里叶已经是分段的了,不能再分段了.唉~
页:
[1]