(完整版)功率谱估计性能分析及Matlab仿真

合集下载

功率谱估计 matlab

功率谱估计 matlab

功率谱估计 matlab
在MATLAB中进行功率谱密度估计可以使用多种方法,其中最常
用的是基于信号处理工具箱中的函数。

功率谱密度估计是一种用于
分析信号频谱特性的方法,它可以帮助我们了解信号中不同频率成
分的能量分布情况。

在MATLAB中,可以使用periodogram函数来对信号进行功率谱
密度估计。

该函数可以接受原始信号作为输入,并返回频率和对应
的功率谱密度估计值。

另一个常用的函数是pwelch,它可以对信号
进行Welch方法的功率谱估计,该方法是一种常用的频谱估计方法,可以减小估计值的方差。

除了这些内置函数,MATLAB还提供了其他一些工具和函数用于
功率谱密度估计,比如spectrogram函数用于计算信号的短时功率
谱密度估计,cpsd函数用于计算信号的交叉功率谱密度估计等。

在进行功率谱密度估计时,需要注意选择合适的窗函数、重叠
比例等参数,以保证估计结果的准确性和可靠性。

此外,还需要考
虑信号长度、采样频率等因素对功率谱密度估计的影响。

总之,在MATLAB中进行功率谱密度估计有多种方法和工具可供选择,需要根据具体的应用场景和要求来选择合适的方法和函数进行使用。

希望这些信息能对你有所帮助。

功率谱估计 matlab

功率谱估计 matlab

功率谱估计 matlab
在MATLAB中,可以使用多种方法来进行功率谱密度(PSD)的估计。

以下是一些常用的方法:
1. 通过信号处理工具箱中的函数进行估计:
MATLAB的信号处理工具箱提供了一些内置函数来进行功率谱密度估计,比如pwelch()和periodogram()函数。

这些函数可以直接对信号进行处理并估计其功率谱密度。

2. 基于频谱估计的方法:
在MATLAB中,你可以使用基于频谱估计的方法来进行功率谱密度估计,比如传统的傅里叶变换、Welch方法、Bartlett方法、Blackman-Tukey方法等。

这些方法可以通过MATLAB中的相关函数来实现,比如fft()函数用于傅里叶变换,pwelch()函数用于Welch 方法估计等。

3. 使用自相关函数:
自相关函数可以用于估计信号的功率谱密度。

在MATLAB中,你
可以使用xcorr()函数来计算信号的自相关函数,然后对自相关函
数进行傅里叶变换来得到功率谱密度估计。

4. 基于模型的方法:
MATLAB中还提供了一些基于模型的方法来进行功率谱密度估计,比如Yule-Walker方法、Maximum Entropy方法等。

你可以使用相
应的函数来实现这些方法,比如pyulear()函数用于Yule-Walker
方法估计。

总的来说,MATLAB提供了丰富的工具和函数来进行功率谱密度
的估计,你可以根据具体的需求和信号特性选择合适的方法来进行
估计。

希望这些信息能够帮助到你。

功率谱估计及其MATLAB仿真

功率谱估计及其MATLAB仿真

功率谱估计及其MATLAB仿真
王凤瑛;张丽丽
【期刊名称】《微计算机信息》
【年(卷),期】2006(022)031
【摘要】从介绍功率谱的估计原理入手分析了经典谱估计和现代谱估计两类估计方法的原理、各自特点及在Matlab中的实现方法.
【总页数】3页(P287-289)
【作者】王凤瑛;张丽丽
【作者单位】266510,山东,青岛,山东科技大学,信息与电气工程学院;266510,山东,青岛,山东科技大学,信息与电气工程学院
【正文语种】中文
【中图分类】TP3
【相关文献】
1.经典功率谱估计Welch法的MATLAB仿真分析 [J], 杨晓明;晋玉剑;李永红
2.常见的功率谱估计方法及其Matlab仿真 [J], 邓泽怀;刘波波;李彦良
3.功率谱估计及其MATLAB仿真 [J], 王凤瑛;张丽丽
4.基于功率谱估计值的数字化音乐录音系统设计 [J], 侯昀晨
5.基于功率谱估计的流量测量实验教学 [J], 李利品;陈欢;党瑞荣;黄燕群;任志平;刘科满
因版权原因,仅展示原文概要,查看原文内容请购买。

MATLAB处理信号得到频谱、相谱、功率谱全解

MATLAB处理信号得到频谱、相谱、功率谱全解

第一:频谱一.调用方法X=FFT(x);X=FFT(x,N);x=IFFT(X);x=IFFT(X,N)用MATLAB进行谱分析时注意:(1)函数FFT返回值的数据结构具有对称性。

例:N=8;n=0:N-1;xn=[4 3 2 6 7 8 9 0];Xk=fft(xn)→Xk =39.0000 -10.7782 + 6.2929i 0 - 5.0000i 4.7782 -7.7071i 5.0000 4.7782 + 7.7071i 0 + 5.0000i -10.7782 - 6.2929iXk与xn的维数相同,共有8个元素。

Xk的第一个数对应于直流分量,即频率值为0。

(2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。

在IFFT时已经做了处理。

要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

二.FFT应用举例例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。

采样频率fs=100Hz,分别绘制N=128、1024点幅频图。

clf;fs=100;N=128; %采样频率和数据点数n=0:N-1;t=n/fs; %时间序列x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号y=fft(x,N); %对信号进行快速Fourier变换mag=abs(y); %求得Fourier变换后的振幅f=n*fs/N; %频率序列subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128');grid on;subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128');grid on;%对信号采样数据为1024点的处理fs=100;N=1024;n=0:N-1;t=n/fs;x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号y=fft(x,N); %对信号进行快速Fourier变换mag=abs(y); %求取Fourier变换的振幅f=n*fs/N;subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=1024');grid on;subplot(2,2,4)plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=1024');grid on;运行结果:fs=100Hz,Nyquist频率为fs/2=50Hz。

功率谱估计的MATLAB实现

功率谱估计的MATLAB实现

实验功率谱估计实验目的:1、掌握最大熵谱估计的基本原理。

2、了解最终预测误差(FPE)准则。

3、掌握周期图谱估计的基本原理。

4、掌握传统谱估计中直接法与间接法之间的关系。

5、复习快速傅里叶变换与离散傅里叶变换之间关系。

实验内容:1、设两正弦信号的归一化频率分别为0.175和0.20,用最大熵法编程计算信噪比S/N=30dB、N=32点时该信号的最大熵谱估计结果。

2、用周期图法编程计算上述信号的谱估计结果。

程序示例:1、最大熵谱估计clc;N=32;SNR=30;fs=1;t=1:N;t=t/fs;y=sin(2*pi*0.175*t)+sin(2*pi*0.20*t);x = awgn(y,SNR);M=1;P(M)=0;Rx(M)=0;for n=1:NP(M)=P(M)+(abs(x(n)))^2;ef(1,n)=x(n);eb(1,n)=x(n);endP(M)=P(M)/N;Rx(M)=P(M);M=2;A=0;D=0;for n=M:NA=A+ef(M-1,n)*eb(M-1,n-1);D=D+(abs(ef(M-1,n)))^2+(abs(eb(M-1,n-1)))^2; endxishu=-2*A/D;a(M-1,M-1)=-2*A/D;P(M)=P(M-1)*(1-(abs(xishu))^2);FPE(M-1)=P(M)*(N+M)/(N-M);TH=FPE(M-1);for n=M:Nef(M,n)=ef(M-1,n)+xishu*eb(M-1,n-1);eb(M,n)=eb(M-1,n-1)+xishu*ef(M-1,n);endM=M+1;A=0;D=0;for n=M:NA=A+ef(M-1,n)*eb(M-1,n-1);D=D+(abs(ef(M-1,n)))^2+(abs(eb(M-1,n-1)))^2;endxishu=-2*A/D;a(M-1,M-1)=-2*A/D;P(M)=P(M-1)*(1-(abs(xishu))^2);FPE(M-1)=P(M)*(N+M)/(N-M);for m=1:M-2a(M-1,m)=a(M-2,m)+xishu*a(M-2,M-1-m);endwhile FPE(M-1)<THTH=FPE(M-1);for n=M:Nef(M,n)=ef(M-1,n)+xishu*eb(M-1,n-1);eb(M,n)=eb(M-1,n-1)+xishu*ef(M-1,n);endM=M+1;A=0;D=0;for n=M:NA=A+ef(M-1,n)*eb(M-1,n-1);D=D+(abs(ef(M-1,n)))^2+(abs(eb(M-1,n-1)))^2;endxishu=-2*A/D;a(M-1,M-1)=-2*A/D;P(M)=P(M-1)*(1-(abs(xishu))^2);FPE(M-1)=P(M)*(N+M)/(N-M);for m=1:M-2a(M-1,m)=a(M-2,m)+xishu*a(M-2,M-1-m);endendT=1/fs;sum1=0;f=0.01:0.01:0.5;for m=1:M-1;sum1=sum1+a(M-1,m)*exp(-j*2*pi*m*f*T);ends1=(abs(1+sum1)).^2;s=P(M)*T./s1;plot(f,10*log10(s),'k');xlabel('f/fs');ylabel('功率谱/dB');2、周期图谱估计clc;clear;N=32;SNR=30;fs=1;t=1:N;t=t/fs;y=sin(2*pi*0.175*t)+sin(2*pi*0.20*t);x = awgn(y,SNR);sum1=0;f=0.05:0.01:0.5;for m=1:Nsum1=sum1+x(m)*exp(-j*2*pi*m*f);ends=(abs(sum1)).^2/N;plot(f,10*log10(s),'k');xlabel('f/fs');ylabel('功率谱/dB');实验结果:1、最大熵法估计结果:2、周期图法估计结果:。

功率谱密度估计方法的MATLAB实现

功率谱密度估计方法的MATLAB实现

功率谱密度估计方法的MATLAB实现功率谱密度估计是信号处理领域中常用的一种方法,用于分析信号的频率特性。

MATLAB提供了多种功率谱密度估计方法的函数,包括传统的傅里叶变换方法和更现代的自相关方法。

以下是一些常见的功率谱密度估计方法及其MATLAB实现。

1.傅里叶变换方法:傅里叶变换方法是最常用的功率谱密度估计方法之一、MATLAB提供了`pwelch`函数来实现傅里叶变换方法的功率谱密度估计。

以下是一个简单的使用例子:```matlabfs = 1000; % 采样率t = 0:1/fs:1-1/fs; % 时间序列x = cos(2*pi*50*t) + randn(size(t)); % 生成一个包含50 Hz 正弦波和噪声的信号[Pxx, f] = pwelch(x, [],[],[], fs); % 估计功率谱密度plot(f, 10*log10(Pxx)); % 画出功率谱密度曲线xlabel('Frequency (Hz)');ylabel('Power Spectral Density (dB/Hz)');```2.自相关方法:自相关方法是另一种常用的功率谱密度估计方法。

MATLAB提供了`pcov`函数来实现自相关方法的功率谱密度估计。

以下是一个简单的使用例子:```matlabfs = 1000; % 采样率t = 0:1/fs:1-1/fs; % 时间序列x = cos(2*pi*50*t) + randn(size(t)); % 生成一个包含50 Hz 正弦波和噪声的信号[Rxx, lags] = xcorr(x, 'biased'); % 估计自相关函数[Pxx, f] = pcov(Rxx, [], fs, length(x)); % 估计功率谱密度plot(f, 10*log10(Pxx)); % 画出功率谱密度曲线xlabel('Frequency (Hz)');ylabel('Power Spectral Density (dB/Hz)');```3.周期图方法:周期图方法是一种能够处理非平稳信号的功率谱密度估计方法。

AR模型功率谱估计及Matlab实现

AR模型功率谱估计及Matlab实现

南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:实验成绩:一、实验名称基于AR模型的功率谱估计及Matlab实现二、实验目的1.了解现代谱估计方法,深入研究AR模型法的功率谱估计2.利用Matlab对AR模型法进行仿真三、实验原理1.现代谱估计现代功率谱估计以信号模型为基础,如下图所示为x(n)的信号模型,输入白噪声ω(n)均值为0,方差为σω2,x(n)的功率谱可由下式计算:P xx(e jω)=σω2|H(e jω)|2如果通过观测数据估计出信号模型的参数,信号功率谱就可以按上式计算出来,这样估计功率谱的问题就变成由观测数据估计信号模型参数的问题。

2.功率谱估计的步骤:(1)选择合适的信号模型;(2)根据x(n)有限的观测数据,或者有限个自相关函数估计值,估计模型的参数;(3)计算模型的输出功率谱。

3.模型选择选择模型主要考虑是模型能够表示谱峰、谱谷和滚降的能力。

对于尖峰的谱,选用具有极点的模型,如AR、ARMA模型;对于具有平坦的谱峰和深谷的信号,可以选用MA模型;既有极点又有零点的谱应选用ARMA模型,应该在选择模型合适的基础上,尽量减少模型的参数。

4.AR模型功率谱估计在实际中,AR 模型的参数估计比较简单,对其有充分的研究,AR模型功率谱估计又称为自回归模型,它是一个全极点的模型,要利用AR模型进行功率谱估可以通过列文森(Levenson)递推算法由Yule-Walker 方程求AR模型的参数。

4.MATLAB中AR模型的谱估计的函数说明:1.Pyulear函数:功能:利用Yule--Walker方法进行功率谱估计.格式:Pxx=Pyulear(x,ORDER,NFFT)[Pxx,W]=Pyulear(x,ORDER,NFFT)[Pxx,W]=Pyulear(x,ORDER,NFFT,Fs)Pyulear(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)说明:Pxx =Pyulear(x,ORDER,NFFT)中,采用Yule--Walker方法估计序列x的功率谱,参数ORDER用来指定AR模型的阶数,NFFT为FFT算法的长度,默认值为256,若NFFT为偶数,则Pxx为(NFFT/2 + 1)维的列矢量,若NFFT为奇数,则Pxx为(NFFT + 1)/2维的列矢量;当x为复数时,Pxx长度为NFFT。

[matlab实现经典功率谱估计]matlab功率谱估计

[matlab实现经典功率谱估计]matlab功率谱估计

[matlab实现经典功率谱估计]matlab功率谱估计1、直接法:直接法又称周期图法,它是把随机序列x(n)的N个观测数据视为一能量有限的序列,直接计算x(n)的离散傅立叶变换,得X(k),然后再取其幅值的平方,并除以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)); window=boxcar(length(xn)); %矩形窗nfft=1024;[Pxx,f]=periodogram(xn,window,nfft,Fs); %直接法plot(f,10*log10(Pxx));2、间接法:间接法先由序列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);3、改进的直接法:对于直接法的功率谱估计,当数据长度N太大时,谱曲线起伏加剧,若N太小,谱的分辨率又不好,因此需要改进。

3.1、Bartlett法Bartlett平均周期图的方法是将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;window=boxcar(length(n)); %矩形窗noverlap=0; %数据无重叠p=0.9; %置信概率[Pxx,Pxxc]=psd(xn,nfft,Fs,window,noverlap,p);index=0:round(nfft/2-1);k=index*Fs/nfft;plot_Pxx=10*log10(Pxx(index+1));plot_Pxxc=10*log10(Pxxc(index+1));figure(1)plot(k,plot_Pxx);pause;figure(2)plot(k,[plot_Pxx plot_Pxx-plot_Pxxc plot_Pxx+plot_Pxxc]);3.2、Welch法Welch法对Bartlett法进行了两方面的修正,一是选择适当的窗函数w(n),并再周期图计算前直接加进去,加窗的优点是无论什么样的窗函数均可使谱估计非负。

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

功率谱估计性能分析及Matlab 仿真1 引言随机信号在时域上是无限长的,在测量样本上也是无穷多的,因此随机信号的能量是无限的,应该用功率信号来描述。

然而,功率信号不满足傅里叶变换的狄里克雷绝对可积的条件,因此严格意义上随机信号的傅里叶变换是不存在的。

因此,要实现随机信号的频域分析,不能简单从频谱的概念出发进行研究,而是功率谱[1]。

信号的功率谱密度描述随机信号的功率在频域随频率的分布。

利用给定的N 个样本数据估计一个平稳随机信号的功率谱密度叫做谱估计。

谱估计方法分为两大类:经典谱估计和现代谱估计。

经典功率谱估计如周期图法、自相关法等,其主要缺陷是描述功率谱波动的数字特征方差性能较差,频率分辨率低。

方差性能差的原因是无法获得按功率谱密度定义中求均值和求极限的运算[2]。

分辨率低的原因是在周期图法中,假定延迟窗以外的自相关函数全为0。

这是不符合实际情况的,因而产生了较差的频率分辨率。

而现代谱估计的目标都是旨在改善谱估计的分辨率,如自相关法和Burg 法等。

2 经典功率谱估计经典功率谱估计是截取较长的数据链中的一段作为工作区,而工作区之外的数据假设为0,这样就相当将数据加一窗函数,根据截取的N 个样本数据估计出其功率谱[1]。

2.1 周期图法( Periodogram )Schuster 首先提出周期图法。

周期图法是根据各态历经的随机过程功率谱的定义进行的谱估计。

取平稳随机信号()x n 的有限个观察值(0),(1),...,(1)x x x n -,求出其傅里叶变换10()()N j j n N n X e x n e ωω---==∑然后进行谱估计21()()j N S X e Nωω-= 周期图法应用比较广泛,主要是由于它与序列的频谱有直接的对应关系,并且可以采用FFT 快速算法来计算。

但是,这种方法需要对无限长的平稳随机序列进行截断,相当于对其加矩形窗,使之成为有限长数据。

同时,这也意味着对自相关函数加三角窗,使功率谱与窗函数卷积,从而产生频谱泄露,容易使弱信号的主瓣被强信号的旁瓣所淹没,造成频谱的模糊和失真,使得谱分辨率较低[1]。

该方法基于Matlab 实现的程序:clear all;load test x;N=4096;Fn=-0.5:1/N:0.5-1/N;px=fft(x,N);pmax=max(px);%归一化px=px/pmax;px=10*log10(px+0.000001);plot(Fn,fftshift(px));grid on;图1 周期图法 4096N =图2 周期图法 128N =说明:(1) 本报告仿真中所采用的用于功率谱估计的数据文件来自参考文献[3]的test.dat 。

该数据为128点复序列(图3),由复数噪声加上四个复正弦组成。

其归一化频率分别是:12340.15,0.16,0.252,0.16f f f f ====-。

图3 复序列 (),[0,127]x n n ∈(2) 从仿真图可以清晰看到,1f 和2f 不能完全分开,仅在波形的顶部能看出是两个频率分量;此外,当数据长度N 太大时(图1),谱曲线呈现较大的起伏;当数据长度N 太小时(图2),谱的分辨率又不好。

据此,周期图法不满足一致性估计条件。

2.2 自相关法( BT 法)自相关法的理论基础是维纳—辛钦定理。

1958年Blackman 和Tukey 给出了这一方法的具体实现。

对于平稳随机信号来说,其自相关函数是确定性函数,故其功率谱也是确定的。

这样可由平稳随机离散信号的有限个离散值(0),(1),...,(1)x x x n -求出自相关函数101()()()N m x n R m x n x n m N --==+∑然后在(,)M M -内对()x R m 做傅里叶变换,得到功率谱()()M j n x m M S R m e ωω-=-=∑该方法基于Matlab 实现的程序:clear all;load test x;N=4096;Fn=-0.5:1/N:0.5-1/N;Mlag=64;rx=xcorr(x,Mlag,'unbiased');px=fft(rx,N);pmax=max(px);%归一化px=px/pmax;px=10*log10(px+0.000001);plot(Fn,fftshift(px));grid on;M=图4 自相关法不加窗64M=图5 自相关法不加窗32图6 自相关法使用汉明窗( Hamming )说明:(1) 该方法先由序列()x n 估计出自相关函数()x R m ,然后对()x R m 进行傅里叶变换,便得到()x n 的功率谱估计。

当延迟与数据长度之比很小时,可以有良好的估计精度。

(2) 图4是用自相关法(BT 法)求出的功率谱,64M =没有加窗;图5也是用自相关法(BT 法)求出的功率谱,32M =,没有加窗;图6同样是采用自相关法求出的功率谱,32M =,使用了汉明窗。

显然,自相关函数的延迟M 越小,谱变得越平滑。

2.3 Welch 法该方法的基本原理是在对随机序列分段时,使每一段有部分重叠,然后对每一段数据用一个合适的窗函数进行平滑处理,最后对各段谱求平均。

这样可得功率谱21101()()L M i j m i n S x n e MUL ωω--===∑∑ 其中10()M n U n ω-==∑为窗函数。

这里()n该方法基于Matlab实现的程序:clear all;load test x;N=4096;Fn=-0.5:1/N:0.5-1/N;xpsd=pwelch(x,hamming(33),16,N,'whole');mmax=max(xpsd);%归一化xpsd=xpsd/mmax;xpsd=10*log10(xpsd+0.000001);plot(Fn,fftshift(xpsd));grid on;图7 Welch法不叠合使用汉明窗( Hamming )图8 Welch法叠合16点使用汉明窗( Hamming )图9 Welch法叠合16点使用矩形窗( Boxcar )图10 Welch法叠合16点使用布莱克曼窗( Blackman ) 说明:(1) 因为Welch法允许各段数据交叠,所以数据段数L会增加,使方差得到更大的改善,但是数据的交叠减小了每一段数据的不相关性,使方差的减小不会达到理论程度。

另外,采用合适的窗函数可以减少信号的频谱泄露,同时也可以增加谱峰的宽度,从而提高分辨率。

(2) 图7是利用Welch法求出的周期图,共分四段,每段32点,没有叠合,使用了汉明窗;图8也是利用Welch法求出的周期图,共分四段,每段32点,,使用了汉明窗;图9是利用Welch法求出的周期图,共分四段,每段32点,交叠数为16,且使用了矩形窗;图10是利用Welch法求出的周期图,共分四段,每段32点,交叠数为16,使用了布莱克曼窗。

从图中可以看出,由矩形窗处理的谱估计的主瓣宽度最窄,分辨率最好,但是其起伏性较大,所以其方差特性最差。

由汉明窗和布莱克曼窗得到的谱估计的主瓣宽度最宽,因此其分辨率相对较差,但其旁瓣较小,大大改善了由矩形窗处理的谱估计旁瓣较大所产生的谱失真。

因此,选择不同的窗函数其主瓣宽度不一样,造成谱估计的分辨率也不相同。

2.4 经典功率谱估计的性能比较由以上的Matlab仿真图形和相关结果分析,我们得到了经典谱估计算法性能的直观比较:(1) 周期图法得到的功率谱分辨率最高,但是方差性能最差,功率谱起伏剧烈,容易出现虚假谱峰。

(2) 自相关法(BT法)由于使用了平滑窗对周期图法估计的功率谱进行了平滑,因此方差性能较好,功率谱比周期图法估计的要平滑,但其分辨率比周期图法低。

(3) Welch平均周期图法是三种经典功率谱估计方法中方差性能最好的,估计的功率谱也最为平滑,但这是以分辨率的下降及偏差的增大为代价的。

综合上述讨论,我们可以对经典谱估计的算法作大致的总结[3]:(1) 功率谱估计,不论是直接法还是间接法都可以用FFT快速计算,且物理概念明确,因而仍是目前较常用的谱估计方法。

π,N是所使用的数据长度。

(2) 谱的分辨率较低,它正比于2/N(3) 方差性能不好,不是真实功率谱的一致估计,且N增大时,功率谱起伏加剧。

(4) 周期图的平滑和平均是和窗函数的使用紧密关联的,平滑和平均主要是用来改善周期图的方差性能,但往往又减小了分辨率且增加了偏差,没有一个窗函数能使估计的功率谱在方差、偏差和分辨率各个方面都得到改善,因此使用窗函数只是改进估计质量的一个技巧问题,并不能从根本上解决问题。

3 现代功率谱估计由前一章的讨论我们可知,经典功率谱估计方法的方差性能较差,分辨率较低。

而现代谱估计技术的目标都是旨在努力改善谱估计的分辨率。

参数模型法是现代谱估计的主要内容,参数模型主要分为AR模型、MA模型和ARMA模型。

由于AR模型具有一系列好的性能,因此是被研究最多并获得广泛应用的一种模型。

本报告中现代功率谱估计的仿真基于的是AR模型。

3.1 自相关法假定观察到得数据为(0),(1),...,(1)x x x n-,而对于无法观察到得区间(即和),()<>-n n N01x n的样本假定为0,观测数据区间之外的数据为0,在均方R是Toeplitz矩阵,误差意义下使得数据的预测误差功率最小。

由于自相关矩阵ˆp而且又为正定的,故可利用Levinson-Durbin递归算法高效求解,得到AR模型参数。

该方法基于Matlab实现的程序:clear all;load test x;N=4096;fn=-0.5:1/N:0.5-1/N;xpsd=pyulear(x,20,N);pmax=max(xpsd);xpsd=xpsd/pmax;xpsd=10*log10(xpsd+0.000001);plot(fn,fftshift(xpsd));grid on;图11 自相关法10p图12 自相关法 20p =图13 自相关法 30p =说明:(1) 图11、12和13是用自相关法求出的AR 谱曲线,阶次p 分别等于10,20和30。

可以看出,在阶次较低时(图11),分辨率和检测能力均不好。

当30p =时,1f 和2f 处的两个正弦刚刚可以分开,在3f 和4f 处的两个正弦也可以检出。

因此必须通过提高阶次来达到分辨出间隔较小的频率点的效果。

(2) AR 模型的自相关法等效于对前向预测的误差序列前后加窗,加窗的结果是使得自相关法的分辨率降低。

数据越短,分辨率越不好。

3.2 协方差法协方差法与自相关法的区别主要在于预测误差功率求和式的上下限取得不同。

由于协方差法对于观察区间[]0,1N -外()x n 样本并未假定为0,故预测误差功率表达式中的()x n k -总是落在观察区间[]0,1N -中,为此预测误差功率的求和上下限必须在[],1p N -之间。

相关文档
最新文档