线性调频信号短时傅里叶变换MATLAB
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%%%%%%%%%% 线性调频信号%%%%%%%%%%%%%%%%%%%%%%%%%%
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('频率');