www.gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第7章/li7_5.m

     clear all;
fs=200;          %采样率
De_f=1;          %频率分辨率
T=1/fs;          %时间分辨率
L=1/De_f;        %时域截取长度
N=floor(fs/De_f)+1;   %计算截断信号的采样点数
t=0:T:L;         %截取时间段和采样时间点
freq=0:De_f:fs;   %分析的频率范围和频率分辨率
f_t=1.2*(sin(2*pi*60*t)+0.7*sin(2*pi*80*t))';
%在截取范围内的分析的信号时域波形
f_t_rectwin=rectwin(N).*f_t./sqrt(sum(abs(rectwin(N).^2))./N);  %矩形窗
f_t_hamming=hamming(N).*f_t./sqrt(sum(abs(rectwin(N).^2))./N);  %海明窗
f_t_hann=hann(N).*f_t./sqrt(sum(abs(rectwin(N).^2))./N);        %汉宁窗

F_w_rectwin=T.*fft(f_t_rectwin,N);     %进行N点FFT,并乘以采样时间间隔T得到频谱
F_w_hamming=T.*fft(f_t_hamming,N);     %加海明窗的频谱
F_w_hann=T.*fft(f_t_hann,N);           %加汉宁窗的频率
figure(1)
subplot(2,2,1);plot(t,f_t);
title('原信号');
subplot(2,2,2);plot(t,f_t_rectwin);
title('矩形窗');
subplot(2,2,3);plot(t,f_t_hamming);
title('海明窗');
subplot(2,2,4);plot(t,f_t_hann);
title('汉宁窗');
figure(2)
subplot(3,1,1);plot(freq,10*log10(abs(F_w_rectwin)));
title('矩形窗频谱');ylabel('幅度dB');
axis([0 200 -50 0]);grid on;
subplot(3,1,2);plot(freq,10*log10(abs(F_w_hamming)));
title('海明窗频谱');ylabel('幅度dB');
axis([0 200 -50 0]);grid on;
subplot(3,1,3);plot(freq,10*log10(abs(F_w_hann)));
title('海宁窗频谱');ylabel('幅度dB');
axis([0 200 -50 0]);grid on;
p_original_signal=var(f_t)       %计算原始信号的平均功率
p_hannwindowed=sum((abs(F_w_hann/T)).^2)/(N^2)    %计算加窗后的信号功率