%%%%%%%%%% 线性调频信号%%%%%%%%%%%%%%%%%%%%%%%%%% clear all
k=50; fs=250;
n=0:1000-1; x=exp(j*pi*k*(n/fs).^2);
subplot(221); plot(n/fs,real(x));
title('线性调频信号'); xlabel('时间'); ylabel('振幅');
%%%%%%%%%%%%%% 线性调频信号频谱 %%%%%%%%%%%%%%%%%%%%%%%%% P=fft(x);
subplot(222);
plot(n/length(n)*fs,abs(P));
title('线性调频信号频谱'); xlabel('频率'); ylabel('振幅');
%%%%%%%%%%%%%%% 短时傅立叶变换 %%%%%%%%%%%%%%%%%%%%%%% N=40; NFFT=512;
N1=round((1000-N)*2/N+1); w=gausswin(N); %w=hanning(N); %w=rectwin(N); %w=hamming(N); %w=blackman(N); w=rot90(w);
STFT=zeros(N1,NFFT); for i=1:N1;
xt=x((i-1)*N/2+1:(i-1)*N/2+N);
xt=xt.*w; %加高斯窗 STFT(i,:)=fft(xt,NFFT); end
fn=(1:NFFT)*fs/NFFT; tn=(1:N1)*N/2/fs; [F,T]=meshgrid(fn,tn); subplot(223);
mesh(F,T,abs(STFT)); title('STFT'); xlabel('频率'); ylabel('时间');
subplot(224);
contour(T,F,abs(STFT)); title('T-F等高图'); xlabel('时间'); ylabel('频率');