[求助]请高手帮忙看看这个matlab程序错在哪
本帖最后由 wdhd 于 2016-9-1 14:03 编辑用短时傅立叶变换分析信号在时域、频域特性。
k=4;T=5;
fc=k*T;
fs=4*fc;
Ts=1/fs;
N=T/Ts;
x=zeros(1,N);
t=0:N-1;
x=exp(j*k*pi*(t*Ts).^2);
subplot(2,2,1);
plot(t*Ts,real(x));
X=fft(x);
X=fftshift(X);
subplot(2,2,2);
plot((t-N/2)*fs/N,abs(X));
Nw=20;
L=Nw/2;%L=10
Tn=(N-Nw)/L+1;%Tn=39
nfft=32;
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
subplot(2,2,3);
fnew=((1:nfft)-nfft/2)*fs/nfft;
tnew=(1:Tn)*L*Ts;
=meshgrid(fnew,tnew);
mesh(F,T,abs(TF));
subplot(2,2,4);
contour(F,T,abs(TF));
在你上面的程序里,定义信号x是一个1X400的向量,而xw=x.*((i-1)*10+1:i*10+10);运行会出现Matrix dimensions must agree的错误.请再检查程序.
页:
[1]