陕西理工学院毕业设计
pause; figure(2)
plot(f,plot_Pxx1);pause; figure(3)
plot(f,plot_Pxx2);
5.2 加矩形窗仿真图
图5.3 加汉明窗仿真图
第 17 页 共 22 页
陕西理工学院毕业设计
5.4 加blackman窗仿真图
(3) 相关函数法
间接法先由采样序列x?n?估计其出自相关函数R?n?,然后对R?n?进行傅里叶变换,取模后便得到x?n?的功率谱估计。
以下是利用matlab对自相关法进行仿真,并得到仿真图。程序如下: clear; Fs=1000; n=0:1/Fs:1;
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); nfft=1024;
cxn=xcorr(xn,'unbiased');%计算序列的自相关函数 CXk=fft(cxn,nfft) ;%对自相关函数进行傅里叶变换 Pxx=abs(CXk);%求绝对值 index=0:round(nfft/2-1); k=index*Fs/nfft;
plot_Pxx=10*log10(Pxx(index+1)); plot(k,plot_Pxx);
第 18 页 共 22 页
陕西理工学院毕业设计
图5.5 自相关法仿真图
5.2确定信号的谱分析
确定信号的频谱可以通过对其求傅里叶变换得到。
?7?程序如下:
function[f,sf]=T2F(t,st)
%This is a function using the FFT function to caculate a signal’s Fourier Translation %Input is the time and the signal vectors ,the length of time must greater than 2 %Output is the frequency and the signal spectrum dt=t(2)-t(1); T=t(end); df=1/T;
N=length(st);
f=-N/2*df:df:N/2*df-df; sf=fft(st);
sf=T/N*fftshift(sf); %方波的傅里叶变换 T=1;
N_sample=128; dt=T/N_sample; t=0:dt:T-dt;
st=[ones(1,N_sample/2),-ones(1,N_sample/2)];%方波一个周期 subplot(2,1,1); plot(t,st);
第 19 页 共 22 页
陕西理工学院毕业设计
axis([0 1 -2 2]); xlabel('t'); ylabel('s(t)'); subplot(2,1,2);
[f,sf]=T2F(t,st);%方波频谱 plot(f,abs(sf)); hold on;
axis([-10 10 0 1]); xlabel('f'); ylabel('|S(f)|');
%根据傅氏变换计算得到的信号频谱相应位置的抽样值
sff=T^2*j*pi*f*0.5*exp(-j*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5); plot(f,abs(sff),'r-')
图5.6 用FFT计算方波信号的频谱
5.3 方法的总结
每种经典谱估计方法的品质因数是近似的,且都与数据记录长度成反比例。
周期图法直接对观测数据进行傅里叶变换,从而求得功率谱估计;自相关法是先利用观测数据求出信号自相关函数的估计量,然后对其进行傅里叶变换,得出功率谱估计;对这两种方法进行比较可以看出
第 20 页 共 22 页

