%%%%%%%%%% 线性调频信号%%%%%%%%%%%%%%%%%%%%%%%%%%
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('线性调频信号');
短时傅里叶变换matlab程序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('频率');

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。