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) %计算加窗后的信号功率