|
楼主 |
发表于 2007-7-31 05:14
|
显示全部楼层
我在一篇论文中的看到一算法
1.构造一函数:g(t)=(2*pi*(cmax)^2)^(1/4)*exp(((t-tp).^2)/(4*(cmax)^2)).*exp(j*m0/2*(t-tp).^2); m0,tp,cmax是已知值 ;
2.将原信号x(t)经过运算xc(t)=x(t)*g*(t)
3.再对xc(t)做短时傅立叶变换.
我在matlab中这样试了下:
x=randn(1,5000);
t1=1:30;
y=20*sin(t1*0.1*pi);
for k=1:4
x(1000*k-14:1000*k+15)=x(1000*k-14:1000*k+15)+0.2*y;
end
t=1:1:length(x);
m0=1.6;
tp=length(x)/2;
cmax=10 ;
g(t)=(2*pi*(cmax)^2)^(1/4)*exp(((t-tp).^2)/(4*(cmax)^2)).*exp(j*m0/2*(t-tp).^2);
g1(t)=conj(g(t));
xc(t)=x(t).*g1(t);
[STFT_xc,f,t] =specgram(xc,length(x),fs,kaiser(256,5),220);
结果没有出错,但是最后STFT_xc的值全都是nan+,nani.
请问这是什么原因,谢谢!
[ 本帖最后由 orchis_2005 于 2007-7-31 08:30 编辑 ] |
|