平稳序列自相关和功率谱密度的估计.docVIP

  • 77
  • 0
  • 约2.74千字
  • 约 4页
  • 2016-12-15 发布于江苏
  • 举报

平稳序列自相关和功率谱密度的估计.doc

实平稳序列自相关和功率谱密度的估计 1.直接法:带偏的一致估计 ① 其中N是序列的长度。 2.间接法:利用DTFT的卷积性质 序列{x(n)}{y(n)}长度分别为L1,L2,则对上式求IDTFT便得到x(n),y(n)线性卷积的结果序列,长度为M =L1+ L2 -1。 由于DTFT是周期连续的,可以由DFT近似表示其在一个周期内的离散频谱。即 因为在DFT中,频域上M点乘积对应时间域上两个长为M的序列的循环(周期)卷积。 = (表示M点循环卷积) 当M =L1+ L2 -1时,循环卷积在一个周期内的主值就是长分别为L1和L2的序列(分别在尾部加L2-1和L1-1个零)的线性卷积。 所以,在用间接法求自相关时,M=2N-1。利用DFT的性质x(-n)→X(-k),以及x(n)是实序列这一事实,利用频谱的Hermitian性质X((-k)=X*(k),得 , 时间域上,在序列x(n)的尾部加N-1个0,新序列记作x1(n)。对x1(n)求DFT(使用FFT算法),得到2N-1点的X(k)。将其取模平方后求IDFT(使用FFT算法求ifft),便得到了循环卷积x1(-n) x1(n)在一个周期(M个点)内的值。它等于x(-n)和x(n)的线性卷积。在此基础上除以序列长度N(注意:不是除以频域点数,也不是除以M),便得到自相关函数R(n)。 Matlab代码(间接法求自相关): xn=randn(1,1000); N=length(xn); Xk=fft(xn, 2*N-1); %M=2*N-1,其实M也可以取更大的值,以方便快速运算DFT Rn=ifft(abs(Xk).^2)/N; Rn=[Rn(end-N+2:end) Rn(1:N)]; %这种做法适用于fft点数多于所需的2*N-1个的时候 n=(-N+1:N-1); figure;plot(n, Rn); 图1 间接法求0均值单位方差高斯噪声过程的自相关函数 经典谱估计也分为直接法和间接法。直接法利用序列的DFT模平方除以频域序列点数M(这个点数可以和时域信号点数N不同);间接法利用自相关函数进行DFT。DFT都采用FFT算法。用matlab中的pwelch要乘以fs(估计双边谱),或fs/2(单边谱)。 经典功率谱估计的Matlab例程: %class_psd.m %利用经典方法估计PSD, %直接法直接从序列的DFT取模平方之后除以DFT的点数来估计PSD。 %间接法先计算序列的自相关函数,然后作DFT,作为PSD的估计。 %welch方法是修正的周期图法(直接法),要加窗,重叠,叠加 N = 1024; t=linspace(0,1,N); signal=4*sin(2*pi*50*t)+5*sin(2*pi*200*t); %signal = 0; Ts = 1e-3; fs = 1/Ts; noise=randn(size(t)); symbol=signal+noise; Y=fft(symbol,N*2); f=(0:N)*fs/(2*N); P1=Y.*conj(Y)/(2*N); %直接法,要除的是FFT的点数 subplot(311); plot(f,10*log10(P1(1:N+1))); xlabel(frequency) ylabel(power(dB)) title(直接法,序列DFT模平方再除以DFT点数) %间接法 cxn=xcorr(symbol,unbiased); %计算序列的自相关函数,2N-1点,中心点对应R(0)。 P2=abs(fft(cxn, 2*N)); %采用2N个点的FFT subplot(312); f=(0:N-1) * fs/(2*N); %fs/(2N)是频率分辨率 plot(f,10*log10(P2(1:N))); xlabel(frequency(Hz)) ylabel(power(dB)) title(间接法,利用自相关的DFT); %加窗法 window2=blackman(100); %blackman窗 noverlap=32; %数据重叠 range=onesided; %频率间隔为[0 fs/2],只计算一半的频率 [P3(1:N/2+1),f]=pwelch(symbol,window2,noverlap,N,fs,range); P3=P3.*fs/2; %单边,要乘以fs/2 plot_P3=10*log10(P3(1:N/2+1)); subplo

文档评论(0)

1亿VIP精品文档

相关文档