文档库 最新最全的文档下载
当前位置:文档库 › 有代码功率谱估计Levinson递推法Burg递推法随机信号处理概要

有代码功率谱估计Levinson递推法Burg递推法随机信号处理概要

有代码功率谱估计Levinson递推法Burg递推法随机信号处理概要
有代码功率谱估计Levinson递推法Burg递推法随机信号处理概要

功率谱估计

随机信号处理

学号:

姓名:

实验三 功率谱估计

1实验内容

信号为两个正弦信号加高斯白噪声,各正弦信号的信噪比均为10dB ,长度为N ,信号频率分别为

1f 和2f ,初始相位120??==,取1/0.2s f f =,2/s

f f 取不同数值:0.3,0.25。

s f 为采样频率。分别用Levinson 递推法和Burg 法进

行功率谱估计,并分析改变数据长度、模型阶数对谱估计结果的影响。

2实验原理

2.1 Levinson 递推法:

自相关法——列文森(Lenvison )递推法是已知信号观测数据,估计功率谱。它的出发点是选择AR 模型参数使预测误差功率最小。

假设信号()x n 的数据区在01n N ≤≤-范围,有P 个预测系数,N 个数据经过冲激响应为()0,1,pi a i p =的滤波器,输出预测误差()e n 的长度为N p +,因此有预测误差功率为

()

()()

2

112

1

1

1N p N p p

pi n n i e n x n a x n i N

N

ρ+-+-====

=+-∑∑∑

()e n 的长度长于数据的长度,上式中数据()x n 在01n N ≤≤-以外补充零点,相当于对无穷长的信号加窗处理,会引入误差。

上式对系数pi a 的实部和虚部求微分使预测误差功率最小,得

()()()()()()()()()()()()12????0111????1022????120p xx xx xx xx p xx xx xx xx pp xx xx xx xx a r r r p r

a r r r p r a r p r p r r p --+????????????-+??????=-???????

?????--????????????

(Yule-Walker 方程)

式中自相关函数采用有偏自相关估计,即

Levinson-Durbin 算法:使一种按阶次递推的算法。它以()0AR 和()1AR 模型参数作为初始条件,计算()2AR 模型参数;再用()2AR 模型参数计算()3AR 模型参数,k 阶模型参数由k-1阶模型参数计算得到。一直计算出()AR p 模型参数为止。

一阶AR 模型()1p =的Yule-Walker 方程为

()()()()2111011100xx xx xx xx r r r r a σ????

??=??????????

?? 由该方程解出

()

()

1110xx xx r a r =-

()()22

11,110xx a r σ=-

然后令2,3,4,p =,以此类推,可以得到一般递推公式如下:

p k 称为反射系数,1p k ≤。22

2

12p

σσσ≥≥

≥,随着阶数增加,预测误差功率将减少或不变。

由k=1开始递推,递推到k=p ,依次得到各阶模型参数,

{}{}{}22

2

1112122212,,,,,,,

,p p pp p a a a a

a a σσσ

AR 模型的各个系数及模型输入白噪声方差求出后,信号功率谱用下式计算

()()2

2

22

11/1p

jw jw jwi xx w w pi i p e H e a e σσ-=??==+ ???

这种方法递推效率高,当阶数变化时,无需从头计算。但需要预先估计出信号自相关函数,当观测数据长度较短时,估计误差较大,会出现谱峰频率偏移和谱线分裂;如数据很长,估计自相关函数较准确。

2.2 Burg 递推法:

Levinson-Durbin 递推法需要由观测数据估计自相关函数,这是它的缺点。而伯格递推法则由信号观测数据直接计算AR 模型参数。

伯格递推法利用Levinson-Durbin 递推公式,导出前向预测误差与后向预测误差,并按照使它们最小的原则求出p k ,从而实现不用估计自相关函数,直接用观测数据得出结果。

Burg 递推法思想:借助格型预测误差滤波器,求前向、后向预测误差平均功率,选择p k 使其最小,求出p k 。之后,再利用Levinson-Durbin 递推法求模型参数和输入噪声方差。

设信号()x n 的观测数据区间:01n N ≤≤-,前向、后向预测误差功率分别用

pf ρ和pb ρ表示,预测误差平均功率用p ρ表示,公式分别为

()2

1

1

N f pf p

n p e n N p ρ-==

∑- ()2

1

01N b

pb p

n e n N p ρ-==

∑- 12

p pf

pb

ρρρ??=+ ??

?

前向、后向观测误差公式分别为

()()()1

p

f p

pk k n x n x n k a e ==+-∑

()()()1

p

b p

pk k n x n p x n p k a e ==-+-+∑ 01p a =

上式中,信号项的自变量最大的是n,最小的是n-p ,为了保证计算范围不超出给定的数据范围,在pf ρ和pb ρ计算公式中,选择求和范围为:1p n N ≤≤- 。 为求预测误差平均功率p ρ最小时的反射系数p k ,令0p p

k ρ?=?,将前、

后向预测误差的递推公式代入得

()()()

(

)()(

)

1

112

1211

211N f b p p n p

p N f

b p p n p n n e e k n n e e ---=---=--∑=

?

?

+-∑?

?

???

?

Burg 递推法求AR 模型参数的递推公式总结:

(1) ()()()()1

20

10,00N xx xx n r x n r N ρ-===∑⌒

(2)

()()()()

00f b n x n e n x n e ==

0,1,2,1

0,1,2,1

n N n N =-=-…,…,

(3) ()()

()

(

)()(

)

1

112

1211

211N f b p p n p

p N f

b p p n p n n e e k n n e e ---=---=--∑=

?

?

+-∑?

?

???

?

(4) ()

211p p p k ρρ-=-

(5) ,1,1,p p i p i p p i a a k a +---= 1,2,1i p =-…, (6) ,p p p k a =

(7) ()()()()()(

)111111f f b

p p p p f b b p p p p n n k n e e e n n k n e e e ----=+-=+- 1,2,1,1,2,2n p p N n p p p N =++-=++-…,…,

3实验结果及分析

3.1原始信号1222sin(

)sin()s s

f n f n

s f f ππ=+,观测信号x s w =+ 这里取1s f =,10.2f =,20.3f =,145N =,20M =。

3.2 Levenson 递推法

3.2.1 取1s f =,10.2f =,20.3f =或20.25f =,阶数20M =不变,实验不同数据长度对功率谱估计的影响

1) 信号长度35N =

信号长度N=35,阶数M=20的功率谱估计2)信号长度145

N=

信号长度N=145,阶数M=20的功率谱估计3)信号长度2000

N=

信号长度N=2000,阶数M=20的功率谱估计

分析:由以上三个实验对比,可以看出当观测数据长度较短时,估计误差较大,会出现谱峰频率偏移与谱线分裂;当数据很长时,估计自相关函数较准确,但计算量较大。

3.2.2取1s f =,10.2f =,20.3f =,信号长度100N =不变,实验不同模型阶数对功率谱估计的影响

1)阶数M=2

2)阶数M=4

3)阶数M=8

4)阶数M=16

分析:由以上几个实验对比,可以看出当阶次较低,会使谱估计产生偏移,

降低分辨率;当阶次越高,分辨率越高;当阶次太高,会使估计误差加大,谱峰分裂。

3.3 Burg 递推法

3.3.1取1s f =,10.2f =,20.3f =或20.25f =,阶数20M =不变,实验不同数据长度对功率谱估计的影响

1) 信号长度35N =

信号长度N=35,阶数M=20的功率谱估计

2) 信号长度145N =

信号长度N=145,阶数M=20的功率谱估计

3) 信号长度2000N =

信号长度N=2000,阶数M=20的功率谱估计

分析:由以上三个实验对比,可以看出当观测数据长度较短时,估计误差较大,会出现谱峰频率偏移与谱线分裂;当数据很长时,估计自相关函数较准确,但计算量较大。频率越靠近的谱估计,需要的阶数越高。

3.3.2 取1s f =,10.2f =,20.3f =,信号长度900N =不变,实验不同模型阶数对功率谱估计的影响

1) 阶数M=4

2) 阶数M=8

3)阶数M=16

4)阶数M=28

分析:由以上几个实验对比,可以看出当阶次较低,会使谱估计产生偏移,降低分辨率;当阶次越高,分辨率越高;当阶次太高,会使估计误差加大,谱峰分裂。

3.4实验总结

本次试验采用分别用Levinson递推法和Burg递推法进行功率谱估计,并分析改变数据长度、模型阶数对谱估计结果的影响。通过实验,学习了Levinson 递推法和Burg递推法的基本原理和一般流程,和如何选择AR模型的阶次,并使用Matlab语言,编写源代码,完成实验过程。在实验过程中,分别设计了不同信号长度、不同的AR模型的阶次和不同频率组合而成的4组实验,并在实验后,分析对比了实验结果。

5源代码

5.1 Levenson递推法

% clear all;

Clear;

tic;

% 产生信号

fs=1;%设采样频率为1

N=100;%数据长度改变数据长度会导致分辨率的变化

f1=0.2*fs;%第一个sin信号的频率,f1/fs=0.2

f2=0.3*fs;%第二个sin信号的频率,f1/fs=0.2或者0.3

M = 60;%滤波器阶数的最大取值,超过则认为代价太大而放弃

L = 2*N;%有限长序列进行离散傅里叶变换前,序列补零的长度

n=1:N;

s = sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);%s为原始信号

x = awgn(s,10);%x为观测信号,即对原始信号加入白噪声,信噪比10dB

%画出原始信号和观测信号

figure(1);

subplot(2,1,1);

plot(s,'b'),xlabel('时间'),ylabel('幅度'),title('原始信号s');

grid;

subplot(2,1,2);

plot(x,'r'),xlabel('时间'),ylabel('幅度'),title('观测信号x');

grid;

%计算自相关函数

rxx = xcorr(x,x,M,'biased');%计算有偏估计自相关函数,长度为-M到M,

共%2M+1

r0 = rxx(M+1); %r0为零点上的自相关函数,相对于-M,第M+1个点为零点

R = rxx(M+2:2*M+1);% R为从1到第M个点的自相关函数矩阵

%Levinson递推算法

%确定矩阵大小

a = zeros(M,M);

FPE = zeros(1,M);%FPE:最终预测误差,用来估计模型的阶次

var = zeros(1,M);

%求初值

a(1,1) = -R(1)/r0;%一阶模型参数

var(1) = (1-(abs(a(1,1)))^2)*r0;%一阶方差

FPE(1) = var(1)*(M+2)/(M);

%递推

for p=2:M

sum=0;

for k=1:p-1%求a(p,p)

sum=sum+a(p-1,k)*R(p-k);

end

a(p,p)=-(R(p)+sum)/var(p-1);

for k=1:p-1 %求a(p,k)

a(p,k)=a(p-1,k)+a(p,p)*a(p-1,p-k);

end

var(p)=(1-a(p,p)^2)*var(p-1); %求方差

FPE(p)=var(p)*(M+1+p)/(M+1-p);%求最终预测误差

end

%确定AR模型的最佳阶数

min=FPE(1); %求出FPE最小时对应的阶数

p = 1;

for k=2:M

if FPE(k)

min=FPE(k);

p=k;

end

end

%功率谱估计

W=0.01:0.01:pi; %功率谱以2*pi为周期,又信号为实信号,只需输出0到PI %即可;

he=ones(1,length(W)); %length()求向量的长度

for k=1:p

he=he+(a(p,k).*exp(-j*k*W));

end

Pxx=var(p)./((abs(he)).^2); %功率谱函数

%画出功率谱

F=W*fs/(pi*2); %将角频率坐标换算成HZ坐标,便于观察

figure;

plot(F,abs(Pxx))

xlabel('频率/Hz'),ylabel('功率谱P'),title(['AR模型的最佳阶数p=' int2str(p)]);

grid;

toc;

5.2 Burg递推法

clear all;

clear

tic;

% 产生信号

fs=1;%设采样频率为1

N=900;%数据长度改变数据长度会导致分辨率的变化;

f1=0.2*fs;%第一个sin信号的频率,f1/fs=0.2

f2=0.3*fs;%第二个sin信号的频率,f1/fs=0.2或者0.3

M =300;%滤波器阶数的最大取值,超过则认为代价太大而放弃

n=1:N;

s = sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);%s为原始信号

x = awgn(s,10);%x为观测信号,即对原始信号加入白噪声,信噪比10dB for i=1:N

ef(1,i)=x(i);

eb(1,i)=x(i);

end

sum=0;

for i=1:N

sum=sum+x(i)*x(i);

end

r(1)=sum/N;

% Burg递推

for p=2:M

% 求解第p个反射系数

sum1=0;

for n=p:N

sum1=sum1+ef(p-1,n)*eb(p-1,n-1);

end

sum1=-2*sum1;

sum2=0;

for n=p:N

sum2=sum2+ef(p-1,n)*ef(p-1,n)+eb(p-1,n-1)*eb(p-1,n-1); end

k(p-1)=sum1/sum2;

% 求解预测误差平均功率

r(p)=(1-k(p-1)*k(p-1))*r(p-1);

% 求解p阶白噪声方差

q(p)=r(p);

% 系数a

if p>2

for i=1:p-2

a(p-1,i)=a(p-2,i)+k(p-1)*a(p-2,p-1-i);

end

end

a(p-1,p-1)=k(p-1);

% 求解前向预测误差

for n=p+1:N

ef(p,n)=ef(p-1,n)+k(p-1)*eb(p-1,n-1);

end

% 求解后向预测误差

for n=p:N-1

eb(p,n)=eb(p-1,n-1)+k(p-1)*ef(p-1,n);

end

end

% 计算功率谱

for j=1:N

sum3=0;

sum4=0;

for i=1:p-1

sum3=sum3+a(p-1,i)*cos(2*pi*i*j/N);

end

sum3=1+sum3;

for i=1:p-1

sum4=sum4+a(p-1,i)*sin(2*pi*i*j/N);

end

pxx=sqrt(sum3*sum3+sum4*sum4);

pxx=q(M)/pxx;

pxx=10*log10(pxx);

pp(j)=pxx;

end

%画出功率谱

ff=1:N;

ff=ff/N;

figure;

plot(ff,pp),,axis([0 0.5 -20 10]),xlabel('频率'),ylabel('幅度(dB)'),title('功率谱P');

grid;

toc;

基于Burg算法的AR模型功率谱估计简介

基于Burg 算法的AR 模型功率谱估计简介 摘要:在对随机信号的分析中,功率谱估计是一类重要的参数研究,功率谱估计的方法分为经典谱法和参数模型方法。参数模型方法是利用型号的先验知识,确定信号的模型,然后估计出模型的参数,以实现对信号的功率谱估计。根据wold 定理,AR 模型是比较常用的模型,根据Burg 算法等多种方法可以确定其参数。 关键词:功率谱估计;AR 模型;Burg 算法 随机信号的功率谱反映它的频率成分以及各成分的相对强弱, 能从频域上揭示信号的节律, 是随机信号的重要特征。因此, 用数字信号处理手段来估计随机信号的功率谱也是统计信号处理的基本手段之一。在信号处理的许多应用中, 常常需要进行谱估计的测量。例如, 在雷达系统中, 为了得到目标速度的信息需要进行谱测量; 在声纳系统中, 为了寻找水面舰艇或潜艇也要对混有噪声的信号进行分析。总之, 在许多应用领域中, 例如, 雷达、声纳、通讯声学、语言等领域, 都需要对信号的基本参数进行分析和估计, 以得到有用的信息, 其中, 谱分析就是一类最重要的参数研究。 1 功率谱估计简介 一个宽平稳随机过程的功率谱是其自相关序列的傅里叶变换,因此功率谱估计就等效于自相关估计。对于自相关各态遍历的过程,应有: )()()(121lim *k r n x k n x N N x N N n =? ?????++∞→∑-= 如果所有的)(n x 都是已知的,理论上功率谱估计就很简单了,只需要对其自相关序列取傅里叶变换就可以了。但是,这种方法有两个个很大的问题:一是不是所有的信号都是平稳信号,而且有用的数据量可能只有很少的一部分;二是数据中通常都会有噪声或群其它干扰信号。因此,谱估计就是用有限个含有噪声的观测值来估计)(jw x e P 。 谱估计的方法一般分为两类。第一类称为经典方法或参数方法,它首先由给定的数据估 计自相关序列)(k r x ,然后对估计出的)(?k r x 进行傅里叶变换获得功率谱估计。第二类称为非经典法,或参数模型法,是基于信号的一个随机模型来估计功率谱。非参数谱估计的缺陷是其频率分辨率低,估计的方差特性不好, 而且估计值沿频率轴的起伏甚烈,数据越长, 这一现象越严重。 为了改善谱分辨率,研究学者对基于模型的参数方法进行了大量研究。参数方法的第一步是对信号选择一个合适的模型,这种选择可能是基于有关信号如何产生的先验知识,也可能是多次试验后获得的结果。通常采用的模型包括AR 、MA 、ARMA 模型和谐波模型(噪声中含有复指数)。一旦模型选择好后,下一步就是计算模型的参数。最后将计算得到的参数带

功率谱估计方法的比较

功率谱估计方法的比较 摘要: 本文归纳了信号处理中关键的一种分析方法, 即谱估计方法。概述了频谱估计中的周期图法、修正的协方差法和伯格递推法的原理,并且对此三种方法通过仿真做出了对比。 关键词:功率谱估计;AR 模型;参数 引言: 谱估计是指用已观测到的一定数量的样本数据估计一个平稳随机信号的谱。由于谱中包含了信号的很多频率信息,所以分析谱、对谱进行估计是信号处理的重要容。谱估计技术发展 渊源很长,它的应用领域十分广泛,遍及雷达、声纳、通信、地质勘探、天文、生物医学工程等众多领域,其容、方法都在不断更新,是一个具有强大生命力的研究领域。谱估计的理论和方法是伴随着随机信号统计量及其谱的发展而发展起来的,最早的谱估计方法是建 立在基于二阶统计量, 即自相关函数的功率谱估计的方法上。功率谱估计的方法经历了经典谱估计法和现代谱估计法两个研究历程,在过去及现在相当长一段时间里,功率谱估计一直占据着谱估计理论里的核心位置。经典谱估计也成为线性谱估计,包括BT 法、周期图法。现代谱估计法也称为非线性普估计,包括自相关法、修正的协方差法、伯格(Burg )递推法、特征分解法等等。 原理: 经典谱估计方法计算简单,其主要特点是谱估计与任何模型参数无关,是一类非参数化的方法。它的主要问题是:由于假定信号的自相关函数在数据的观测区间以外等于零,因此估计出来的功率谱很难与信号的真实功率谱相匹配。在一般情况下,经典法的渐进性能无法给出实际功率谱的一个满意的近似,因而是一种低分辨率的谱估计方法。现代谱估计方法使用参数化的模型,他们统称为参数化功率谱估计,由于这类方法能够给出比经典法高得多的频率分辨率,故又称为高分辨率方法。下面分别介绍周期图法、修正的协方差法和伯格递推法。修正的协方差法和伯格递推法采用的模型均为AR 模型。 (1)周期图法 周期图法是先估计自相关函数, 然后进行傅里叶变换得到功率谱。假设随机信号x(n)只观测到一段样本数据,n=0, 1, 2, …, N-1。根据这一段样本数据估计自相关函数,如公式(1) 对(1)式进行傅里叶变换得到(2)式。 ∑--=+=1||0 *) ()(1 )(?m N n xx m n x n x N m r

经典功率谱和Burg法的功率谱估计

现代信号处理作业 实验题目: 设信号)()8.0cos(25.0)47.0cos()35.0cos()(321n v n n n n x ++++++=θπθπθπ,其中321,,θθθ是[]ππ,-内的独立随机变量,v(n)是单位高斯白噪声。 1.利用周期图法对序列进行功率谱估计。数据窗采用汉明窗。 2.利用BT 法对序列进行功率谱估计,自相关函数的最大相关长度为M=64,128,256,512采用BARTLETT 窗。 3.利用Welch 法对序列进行功率谱估计,50%重叠,采用汉明窗,L=256,128,64。 4.利用Burg 法对序列进行AR 模型功率谱估计,阶数分别为10,13. 要求每个实验都取1024个点,fft 作为谱估计,取50个样本序列的算术平均,画出平均的功率谱图。 实验原理: 1)。周期图法: 又称间接法,它把随机信号的N 个观察值x N (n)直接进行傅里叶变换,得到X N (e jw ),然后取其幅值的平方,再除以N ,作为对x (n )真实功率谱的估计。 2^ )(1)(jw e X N w P N per = , 其中∑-=-=1 )()(N n jwn N jw N e n x e X 2)。BT 法: 对于N 个观察值x(0),x(1),。。。,x(N-1),令x N (n)=a(n)x(n)。计算r x (m )为

∑--=-≤+= m N n N N x N m m n x n x N m r 10 1),()(1 )(,计算其傅里叶变换 ∑-=--≤= M M m jwm x BT N M e m r m v w P 1 ,)()()(^ ^ ,作为观察值的功率谱的估计。 其中v(m)是平滑窗。 3)。Welch 法: 假定观察数据是x(n),n=0,1,2...,N-1,现将其分段,每段长度为M,段与段之间的重叠为M-K,第i 个数据段经加窗后可表示为 1,...,1,0 )()()(-=+=M i iK n x n a n x i M 其中K 为一整数,L 为分段数,该数据段的周期图为 2)(1)(^w X MU w P i M i per =,其中∑-=-=1 0)()(M n j w n i M i M e n x w X 。由此得到平均周期图为 ∑-==10 ^_ )(1)(L i i per w P L w P 。其中归一化U 取∑-== 10 2 )(1M n n a M U 。 4)。Burg 法: 在约束条件下,使得)(2 1^^^ b f ρρρ+=极小化,其中,约束条件是它所得到的 各阶模型解要求满足Levison 递归关系。 仿真结果: 1.周期图法

功率谱估计

功率谱估计及其MATLAB仿真 詹红艳 (201121070630控制理论与控制工程) 摘要:从介绍功率谱的估计原理入手分析了经典谱估计和现代谱估计两类估计方法的原理、各自特点及在Matlab中的实现方法。 关键词:功率谱估计;周期图法;AR参数法;Matlab Power Spectrum Density Estimation and the simulation in Matlab Zhan Hongyan (201121070630Control theory and control engineering) Abstract:Mainly introduces the principles of classical PSD estimation and modern PSD estimation,discusses the characteristics of the methods of realization in Matlab.Moreover,It gives an example of each part in realization using Matlab functions. Keywords:PSDPstimation,Periodogram method,AR Parameter method,Matlab 1引言 现代信号分析中,对于常见的具有各态历经的平稳随机信号,不可能用清楚的数学关系式来描述,但可以利用给定的N个样本数据估计一个平稳随机信号的功率谱密度叫做功率谱估计(PSD)。它是数字信号处理的重要研究内容之一。功率谱估计可以分为经典功率谱估计(非参数估计)和现代功率谱估计(参数估计)。 功率谱估计在实际工程中有重要应用价值,如在语音信号识别、雷达杂波分析、波达方向估计、地震勘探信号处理、水声信号处理、系统辨识中非线性系统识别、物理光学中透镜干涉、流体力学的内波分析、太阳黑子活动周期研究等许多领域,发挥了重要作用。 Matlab是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件,人称矩 阵实验室,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,成为目前极为流行的工程数学分析软件。也为数字信号处理进行理论学习、工程设计分析提供了相当便捷的途径。本文的仿真实验中,全部在Matlab6.5环境下调试通过;随机序列由频率不同的正弦信号加高斯白噪声组成。 2经典功率谱估计 经典功率谱估计是将数据工作区外的未知数据假设为零,相当于数据加窗。经典功率谱估计方法分为:相关函数法(BT法)、周期图法以及两种改进的周期图估计法即平均周期图法和平滑平均周期图法,其中周期图法应用较多,具有代表性。 1.1相关函数法(BT法) 该方法先由序列x(n)估计出自相关函数R(n),然后对R(n)进行傅立叶变换,便得到x(n)的功率谱估计。当延迟与数据长度相比很小时,可以有良好的估计精度。 Matlab代码示例1: Fs=500;%采样频率 n=0:1/Fs:1;

递推最小二乘法算法

题目: (递推最小二乘法) 考虑如下系统: )()4(5.0)3()2(7.0)1(5.1)(k k u k u k y k y k y ξ+-+-=-+-- 式中,)(k ξ为方差为0.1的白噪声。 取初值I P 610)0(=、00=∧ )(θ。选择方差为1的白噪声作为输入信号)(k u ,采用PLS 法进行参数估计。 Matlab 代码如下: clear all close all L=400; %仿真长度 uk=zeros(4,1); %输入初值:uk(i)表示u(k-i) yk=zeros(2,1); %输出初值 u=randn(L,1); %输入采用白噪声序列 xi=sqrt(0.1)*randn(L,1); %方差为0.1的白噪声序列 theta=[-1.5;0.7;1.0;0.5]; %对象参数真值 thetae_1=zeros(4,1); %()θ初值 P=10^6*eye(4); %题目要求的初值 for k=1:L phi=[-yk;uk(3:4)]; %400×4矩阵phi 第k 行对应的y(k-1),y(k-2),u(k-3), u(k-4) y(k)=phi'*theta+xi(k); %采集输出数据 %递推最小二乘法的递推公式 K=P*phi/(1+phi'*P*phi); thetae(:,k)=thetae_1+K*(y(k)-phi'*thetae_1); P=(eye(4)-K*phi')*P; %更新数据 thetae_1=thetae(:,k); for i=4:-1:2 uk(i)=uk(i-1); end uk(1)=u(k); for i=2:-1:2 yk(i)=yk(i-1);

MATLAB仿真实现经典谱估计(采用周期图法)

数字信号处理 课程实验报告 实验指导教师:黄启宏 实验名称 MATLAB 仿真实现经典谱估计(采用周期图法) 专业、班级 电子与通信工程 姓 名 张帅 实验地点 仿古楼301 实验日期 2013.11.17 一、实验内容 采用周期图法(直接法)实现经典谱估计。 二、实验目的 (1)掌握周期图法(直接法)估计出功率谱的步骤和方法; (2)在实验的过程中找到影响经典谱估计的因素; (3)了解周期图法(直接法)估计功率谱的缺陷。 三、实验原理 把随机信号()x n 的N 点观察数据()N x n 视为一能量有限信号,直接取得()N x n 傅里叶变换,得()jw N x e ,然后再取其幅值的平方,并除以N ,作为对()x n 真实的功率谱()jw P e 的估计。即为: ^ 21()|()|PER N P X N ωω= ^ 21()|()|PER N P k X k N = 四、涉及实验的相关情况介绍(包含使用软件或实验设备等情况) 一台安装MATLAB 软件的电脑

五、实验记录 程序、相关的图形、相关数据记录及分析)( %采用直接法(周期图法)估计功率谱; clear Fs = 1000;%采样频率 n = 0:1 /Fs: .3;%产生含有噪声的序列 xn = cos(200*pi*n)+0.1*randn(size(n)); subplot(311);%输出随机信号xn; plot(n,xn);xlabel('时间');ylabel('幅度');title('输入信号x(n)'); axis([0 0.3 -2 2]); grid on; window = boxcar( length( xn) ) ;%矩形窗 nfft = 512; [Pxx f]= periodogram( xn,window,nfft,Fs) ;%直接法 subplot(312) plot( f,10* log10( Pxx) ) ; title('直接法经典谱估计,512点'); xlabel('频率(Hz)'); ylabel('功率谱密度'); grid on; window = boxcar( length( xn) ); nfft = 1024;

经典功率谱估计方法实现问题的研究

1 随机信号的经典谱估计方法 估计功率谱密度的平滑周期图是一种计算简单的经典方法。它的主要特点是与任 何模型参数无关,是一类非参数化方法[4]。它的主要问题是:由于假定信号的自相关函数在数据观测区以外等于零,因此估计出来的功率谱很难与信号的真实功率谱相匹配。在一般情况下,周期图的渐进性能无法给出实际功率谱的一个满意的近似,因而是一种低分辨率的谱估计方法。本章主要介绍了周期图法、相关法谱估计(BT )、巴特利特(Bartlett)平均周期图的方法和Welch 法这四种方法。 2.1 周期图法 周期图法又称直接法。它是从随机信号x(n)中截取N 长的一段,把它视为能量有限x(n)真实功率谱)(jw x e S 的估计)(jw x e S 的抽样. 周期图这一概念早在1899年就提出了,但由于点数N一般比较大,该方法的计算量过大而在当时无法使用。只是1965年FFT 出现后,此法才变成谱估计的一个常用方法。周期图法[5]包含了下列两条假设: 1.认为随机序列是广义平稳且各态遍历的,可以用其一个样本x(n)中的一段 )(n x N 来估计该随机序列的功率谱。这当然必然带来误差。 2.由于对)(n x N 采用DFT ,就默认)(n x N 在时域是周期的,以及)(k x N 在频域是周期的。这种方法把随机序列样本x(n)看成是截得一段)(n x N 的周期延拓,这也就是周期图法这个名字的来历。与相关法相比,相关法在求相关函数)(m R x 时将 )(n x N 以外是数据全都看成零,因此相关法认为除)(n x N 外 x(n)是全零序列,这种处 理方法显然与周期图法不一样。 但是,当相关法被引入基于FFT 的快速相关后,相关法和周期图法开始融合。通过比较我们发现:如果相关法中M=N ,不加延迟窗,那么就和补充(N-1)个零的周期图法一样了。简单地可以这样说:周期图法是M=N 时相关法的特例。因此相关法和周期图法可结合使用。 2.2 相关法谱估计(BT )法

利用经典谱估计法估计信号的功率谱(随机信号)

随机信号 利用经典谱估计法估计信号的功率谱

作业综述: 给出一段信号“asd.wav”,利用经典谱估计法的原理,通过不同的谱估计方法,求出信号的功率谱密度函数。采用MATLAB语言,利用MATLAB语言强大的数据处理和数据可视化能力,通过GUI的对话框模板,使操作更为简便!在一个GUI界面中,同时呈现出不同方法产生出的功率谱。 这里给出了几种不同的方法:BT法,周期图法,平均法以及Welch法。把几种不同方法所得到的功率谱都呈现在一个界面中,便于对几种不同方法得到的功率谱作对比。 一.题目要求 给出一段信号及采样率,利用经典谱估计法估计出信号的功率谱。 二.基本原理及方法 经典谱估计的方法,实质上依赖于传统的傅里叶变换法。它是将数据工作区外的未知数据假设为零,相当于数据加窗,主要方法有BT法,周期图法,平均法以及Welch法。 1. BT法(Blackman-Tukey) ●理论基础: (1)随机序列的维纳-辛钦定理 由于随机序列{X(n)}的自相关函数Rx(m)=E[X(n)X(n+m)]定义在离散点m上,设取样间隔为,则可将随机序列的自相关函数用连续时间函数表示为 等式两边取傅里叶变换,则随机序列的功率谱密度 (2)谱估计 BT法是先估计自相关函数Rx(m)(|m|=0,1,2…,N-1),然后再经过离散傅里叶变换求的功率谱密度的估值。即 其中可有式得到。 2. 周期图法 ●理论基础: 周期图法是根据各态历经随机过程功率谱的定义来进行谱估计的。在前面我们已知,各态历经的连续随机过程的功率谱密度满足

式中 是连续随机过程第i 个样本的截取函数 的频谱。对应在随机序列中则有 由于随机序列中观测数据 仅在 的点上存在,则 的N 点离散傅里叶变换为: 因此有随机信号的观测数据 的功率谱估计值(称“周期图”)如下: 由于上式中的离散傅里叶变换可以用快速傅里叶变换计算,因此就可以估计出功率 谱。 3.平均法: 理论基础: 平均法可视为周期图法的改进。周期图经过平均后会使它的方差减少,达到一致估计的目的,有一个定理:如果 , , , 是不相关的随机变量,且都有个均值 及其方差 ,则可以证明它们的算术平均的均值为 ,方差为 。 由定理可见:具有 个独立同分布随机变量平均的方差,是单个随机变量方差的 , 当 时,方差 ,可以达到一致估计的目的。因此,将 个独立的估计量经过算术 平均后得到的估计量的方差也是原估计量方差的 。 平均图法即是将数据 , , 分段求周期图法后再平均。例如,给定N=1000个数据样本(平均法适用于数据量大的场合),则可以将它分成10个长度为100的小段,分别计算每一段的周期图 ()()2 1001100,100(1) 1 ,1,2,```,10100 l j l n l G w X e l ω-=-= =∑ 然后将这10个周期图加以平均得谱估计值: ()() 10 100100,1 110l l G w G w ==∑ 由于这10小段的周期图取决于同一个过程,因而其均值相同。若这10个小段的周期图是统计独立的,则这10个小段平均之后的方差却是单段方差的 。

参数法功率谱估计

参数法功率谱估计 一、信号的产生 (一)信号组成 在本实验中,需要事先产生待估计的信号,为了使实验结果较为明显,我产生了由两个不同频率的正弦信号(频率差相对较大)和加性高斯白噪声组成的信号。 (二)程序 N=1024;n=0:N-1; xn=2*cos(2*pi*0.2*n)+ cos(2*pi*0.213*n)+randn(1,1024); 这样就产生了加有白噪声的两个正弦信号 其波形如下

0100200300400500600 -8-6 -4 -2 2 4 6 8 10 (a) 两个正弦信号与白噪声叠加的时域波形 二、参数模型法功率谱估计 (一)算法原理简介 1.参数模型法是现代谱估计的主要内容,思路如下: ① 假定所研究的过程)(n x 是由一个白噪声序列)(n 激励一个因果稳定的可逆线性系统)(z H 的输出; ② 由已知的)(n x ,或其自相关函数)(m r x 估计)(z H 的参数; ③ 由)(z H 的参数来估计)(n x 的功率谱。 2.自回归模型,简称AR 模型,它是一个全极点的模型。“自回归”的含义是:该模型现在的输出是现在的输入和过去p 个输出的加权和。此模型可以表现

为以下三式:

① ∑=+--=p k k n u k n x a n x 1 )()()(; ② ∑=-+==p k k k z a z A z H 111)(1)(; ③ 212 1)(∑=-+=p k jwk k jw x e a e P σ。 3.AR 模型的正则方程建立了参数k a 和)(n x 的自相关函数的关系,公式如下: =)(m r x ∑=--p k x k k m r a 1)( 1≥m 时,=)(m r x 21)(σ+-∑=k r a p k x k 0=m 时。 (二)两种AR 模型阶次的算法 1.Yule-Walker 算法(自相关法) (1)算法主要思想 Yule-Walker 算法通过解Yule-Walker 方程获得AR 模型参数。从低阶开始递推,直到阶次p ,给出了在每一个阶次时的所有参数。公式如下: ① 11 11/])()()([--=-∑+--=m m k x x m m m r k m r k a k ρ; ② )()()(11k m a k k a k a m m m m -+=--;

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

功率谱估计性能分析及Matlab 仿真 1 引言 随机信号在时域上是无限长的,在测量样本上也是无穷多的,因此随机信号的能量是无限的,应该用功率信号来描述。然而,功率信号不满足傅里叶变换的狄里克雷绝对可积的条件,因此严格意义上随机信号的傅里叶变换是不存在的。因此,要实现随机信号的频域分析,不能简单从频谱的概念出发进行研究,而是功率谱[1]。 信号的功率谱密度描述随机信号的功率在频域随频率的分布。利用给定的 N 个样本数据估计一个平稳随机信号的功率谱密度叫做谱估计。谱估计方法分为两大类:经典谱估计和现代谱估计。经典功率谱估计如周期图法、自相关法等,其主要缺陷是描述功率谱波动的数字特征方差性能较差,频率分辨率低。方差性能差的原因是无法获得按功率谱密度定义中求均值和求极限的运算[2]。分辨率低的原因是在周期图法中,假定延迟窗以外的自相关函数全为0。这是不符合实际情况的,因而产生了较差的频率分辨率。而现代谱估计的目标都是旨在改善谱估计的分辨率,如自相关法和Burg 法等。 2 经典功率谱估计 经典功率谱估计是截取较长的数据链中的一段作为工作区,而工作区之外的数据假设为0,这样就相当将数据加一窗函数,根据截取的N 个样本数据估计出其功率谱[1]。 周期图法( Periodogram ) Schuster 首先提出周期图法。周期图法是根据各态历经的随机过程功率谱的定义进行的谱估计。 取平稳随机信号()x n 的有限个观察值(0),(1),...,(1)x x x n -,求出其傅里叶变换 1 ()()N j j n N n X e x n e ω ω---==∑ 然后进行谱估计

几种最小二乘法递推算法的小结

一、 递推最小二乘法 递推最小二乘法的一般步骤: 1. 根据输入输出序列列出最小二乘法估计的观测矩阵?: ] )(u ... )1( )( ... )1([)(T b q n k k u n k y k y k ------=? 没有给出输出序列的还要先算出输出序列。 本例中, 2)]-u(k 1),-u(k 2),-1),-y(k -[-y(k )(T =k ?。 2. 给辨识参数θ和协方差阵P 赋初值。一般取0θ=0或者极小的数,取σσ,20I P =特别大,本例中取σ=100。 3. 按照下式计算增益矩阵G : ) ()1()(1)()1()(k k P k k k P k G T ???-+-= 4. 按照下式计算要辨识的参数θ: )]1(?)()()[()1(?)(?--+-=k k k y k G k k T θ?θθ 5. 按照下式计算新的协方差阵P : )1()()()1()(---=k P k k G k P k P T ? 6. 计算辨识参数的相对变化量,看是否满足停机准则。如满足,则不再递推;如不满足, 则从第三步开始进行下一次地推,直至满足要求为止。 停机准则:ε???<--) (?)1(?)(?max k k k i i i i 本例中由于递推次数只有三十次,故不需要停机准则。 7. 分离参数:将a 1….a na b 1….b nb 从辨识参数θ中分离出来。 8. 画出被辨识参数θ的各次递推估计值图形。 为了说明噪声对递推最小二乘法结果的影响,程序5-7-2在计算模拟观测值时不加噪 声, 辨识结果为a1 =1.6417,a2 = 0.7148,b1 = 0.3900,b2 =0.3499,与真实值a1 =1.642, a2 = 0.715, b1 = 0.3900,b2 =0.35相差无几。 程序5-7-2-1在计算模拟观测值时加入了均值为0,方差为0.1的白噪声序列,由于噪 声的影响,此时的结果为变值,但变化范围较小,现任取一组结果作为辨识结果。辨识结果为a1 =1.5371, a2 = 0.6874, b1 = 0.3756,b2 =0.3378。 程序5-7-2-2在计算模拟观测值时加入了有色噪声,有色噪声为 E(k)+1.642E(k-1)+0.715E(k-2),E(k)是均值为0,方差为0.1的白噪声序列,由于有色噪声的影响,此时的辨识结果变动范围远比白噪声时大,任取一组结果作为辨识结果。辨识结果为a1 =1.6676, a2 = 0.7479, b1 = 0.4254,b2 =0.3965。 可以看出,基本的最小二乘法不适用于有色噪声的场合。

参数法功率谱估计

参数法功率谱估计 一、 信号的产生 (一)信号组成 在本实验中,需要事先产生待估计的信号,为了使实验结果较为明显,我产生了由两个不同频率的正弦信号(频率差相对较大)和加性高斯白噪声组成的信号。 (二)程序 N=1024;n=0:N-1; xn=2*cos(2*pi*0.2*n)+ cos(2*pi*0.213*n)+randn(1,1024); 这样就产生了加有白噪声的两个正弦信号 其波形如下 0100200300400500600 -8 -6-4-202468 10(a) 两个正弦信号与白噪声叠加的时域波形

二、参数模型法功率谱估计 (一)算法原理简介 1.参数模型法是现代谱估计的主要内容,思路如下: ① 假定所研究的过程)(n x 是由一个白噪声序列)(n ω激励一个因果稳定的可逆线性系统)(z H 的输出; ② 由已知的)(n x ,或其自相关函数)(m r x 估计)(z H 的参数; ③ 由)(z H 的参数来估计)(n x 的功率谱。 2.自回归模型,简称AR 模型,它是一个全极点的模型。“自回归”的含义是:该模型现在的输出是现在的输入和过去p 个输出的加权和。此模型可以表现为以下三式: ① ∑=+--=p k k n u k n x a n x 1)()()(; ② ∑=-+== p k k k z a z A z H 111) (1 )(; ③ 2 12 1)(∑=-+= p k jwk k jw x e a e P σ。 3.AR 模型的正则方程建立了参数k a 和)(n x 的自相关函数的关系,公式如下: =)(m r x ∑=--p k x k k m r a 1 )( 1≥m 时,=)(m r x 21 )(σ+-∑=k r a p k x k 0=m 时。

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

功率谱密度估计方法的MATLAB实现 在应用数学和物理学中,谱密度、功率谱密度和能量谱密度是一个用于信号的通用概念,它表示每赫兹的功率、每赫兹的能量这样的物理量纲。在物理学中,信号通常是波的形式,例如电磁波、随机振动或者声波。当波的频谱密度乘以一个适当的系数后将得到每单位频率波携带的功率,这被称为信号的功率谱密度(power spectral density, PSD)或者谱功率分布(spectral power distribution, SPD)。功率谱密度的单位通常用每赫兹的瓦特数(W/Hz)表示,或者使用波长而不是频率,即每纳米的瓦特数(W/nm)来表示。信号的功率谱密度当且仅当信号是广义的平稳过程的时候才存在。如果信号不是平稳过程,那么自相关函数一定是两个变量的函数,这样就不存在功率谱密度,但是可以使用类似的技术估计时变谱密度。信号功率谱的概念和应用是电子工程的基础,尤其是在电子通信系统中,例如无线电和微波通信、雷达以及相关系统。因此学习如何进行功率谱密度估计十分重要,借助于Matlab工具可以实现各种谱估计方法的模拟仿真并输出结果。下面对周期图法、修正周期图法、最大熵法、Levinson递推法和Burg法的功率谱密度估计方法进行程序设计及仿真并给出仿真结果。 以下程序运行平台:Matlab R2015a(8.5.0.197613) 一、周期图法谱估计程序 1、源程序 Fs=100000; %采样频率100kHz N=1024; %数据长度N=1024 n=0:N-1; t=n/Fs; xn=sin(2000*2*pi*t); %正弦波,f=2000Hz Y=awgn(xn,10); %加入信噪比为10db的高斯白噪声 subplot(2,1,1); plot(n,Y) title('信号') xlabel('时间');ylabel('幅度');

递推算法

递推算法典型例题 一、教学目标 1、由浅入深,了解递推算法 2、掌握递推算法的经典例题 二、重点难点分析 1、重点:递推关系的建立 2、难点:如何将所求问题转化为数学模型 三、教具或课件 微机 四、主要教学过程 (一)引入新课 客观世界中的各个事物之间或者一个事物的内部各元素之间,往往存在(隐藏)着很多本质上的关联。我们设计程序前.应该要通过细心的观察、丰富的联想、不断的尝试推理.尽可能先归纳总结出其内在规律,然后再把这种规律性的东西抽象成数学模型,最后再去编程实现。递推关系和递归关系都是一种简洁高效的常见数学模型,我们今天先来深入研究一下递推算法如何实现。 (二)教学过程设计 递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,这样的问题可以采用递推法来解决。从已知条件出发,逐步推出要解决的问题,叫顺推;从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。 递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。递推算法避开了通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。一般说来可以将递推算法看成是一种特殊的迭代算法。(在解题时往往还把递推问题表现为迭代形式,用循环处理。所谓“迭代”,就是在程序中用同一个变量来存放每一次推算出来的值,每一次循环都执行同一个语句,给同一变量赋以新的值,即用一个新值代替旧值,

经典功率谱估计

Classical Power Spectrum Estimation Abstract With the increasing need of spectrum, various computational methods and algorithms have been proposed in the literature. Keeping these views and facts of spectrum shaping capability by FRFT based windows we have proposed a closed form solution for Bartlett window in fractional domain. This may be useful for analysis of different upcoming generations of mobile communication in a better way which are based on OFDM technique. Moreover, it is useful for real-time processing of non-stationary signals. As per our best knowledge the closed form solution mentioned in this paper have not been reported in the literature till date.This paper focuses on classical period spectral estimation and moderu spectral estimation based on Burg algorithm. By comparing various algorithms in computational complexity and resolution, Burg algorithm was used to signal processing finally. Experimental and simulation results indicated that digital signal processing system would meet system requirements for measurement accuracy. Keywords periodogram spectral estimation ; Burg algorithm I. INTRODUCTION When we expand the frequency response of any digital filter by means of Fourier series, we get impulse response of the digital filter in the form of coefficients of the Fourier series. But the resultant filter is unrealizable and also its impulse response in infinite in duration. If we directly truncate this series to a finite number of points we have to face with well known Gibbs phenomenon, so we modify the Fourier coefficients by

现代信号处理经典的功率谱估计

《现代信号处理》 姓名:李建强 学号:201512172087 专业:电子科学与技术 作业内容:在MATLAB平台上对一个特定的平稳随机信号进行经典功率谱估计和现代功率谱估计的比较 一、前言 功率谱估计是信息学科中的研究热点,在过去的30多年里取得了飞速的发展。在许多工程应用中,它能给出被分析对象的能量随频率的分布情况。平滑周期图是一种计算简单的经典方法,它的主要特点是与任何模型参数无关,但估计出来的功率谱很难与信号的真是功率谱相匹配。与周期图方法不同,现代谱估计主要是针对经典谱估计(周期图和自相关法)的分辨率低和方差性能不好的问题而提出的。其使用参数化的模型,能够给出比周期图方法高得多的频率分辨率。其内容极其丰富,涉及的学科和领域也相当广泛,按是否有参数大致可分为参数模型估计和非参数模型估计,前者有AR模型、MA模型、ARMA模型、PRONY指数模型等;后者有最小方差方法、多分量的MUSIC方法等。 二、总体概述 本次实验分别使用经典的功率谱估计(如周期图法)与AR模型法对某一特定的平稳随机信号进行其功率谱估计,由图像得到信号的频率。利用MATLAB平台,直观形象地观察并比较二者估计效果的区别,以便于加深对功率谱估计的理解和掌握。 三、具体的实现步骤 1、经典法功率谱估计 周期图法又称直接法,它是从随机信号x(n)中截取N长的一段,把它视为能量有限的

真实功率谱的估计的一个抽样。 1.1、实现步骤 (1)、模拟系统输出参数x(n)=A*sin(2πf1*n)+B*sin(2πf2*n),包括序列长度N(128或512或1024,加性高斯白噪声(AGWN)功率一定,设置A,B,f1,f2,n的值。 (2)、应用周期图法(不加窗)对信号的功率谱密度进行估计,使用直接法在MATLAB 平台上进行编程实现。 (3)、输出相应波形图,进行观察,记录。 1.2 MATLAB源代码实现 clear all; %清除工作空间所有之前的变量 close all; %关闭之前的所有的figure clc; %清除命令行之前所有的文字 n=1:1:128; %设定采样点n=1-128 f1=0.2; %设定f1频率的值0.2 f2=0.213; %设定f2频率的值0.213 A=1; %取定第一个正弦函数的振幅 B=1; %取定第一个正弦函数的振幅 a=0; %设定相位为0 x1=A*sin(2*pi*f1*n+a)+B*sin(2*pi*f2*n+a); %定义x1函数,不添加高斯白噪声x2=awgn(x1,3); %在x1基础上添加加性高斯白噪声,信噪比为3,定义x2函数temp=0; %定义临时值,并规定初始值为0 temp=fft(x2,128); %对x2做快速傅里叶变换 pw1=abs(temp).^2/128; %对temp做经典功率估计

功率谱估计浅谈汇总

功率谱估计浅谈 摘要:介绍了几种常用的经典功率谱估计与现代功率谱估计的方法原理,并利用Matlab对随机信号进行功率谱估计,对两种方法做出比较,分别给出其优缺点。关键词:功率谱;功率谱估计;经典功率谱估计;现代功率谱估计 前言 功率谱估计是从频率分析随机信号的一种方法,一般分成两大类:一类是经典谱估计;另一类是现代谱估计。由于经典谱估计中将数据工作区以外的未知数据假设为零,这相当于数据加窗,导致分辨率降低和谱估计不稳定。现代谱估计则不再简单地将观察区外的未知数据假设为零,而是先将信号的观测数据估计模型参数,按照求模型输出功率的方法估计信号功率谱,回避了数据观测区以外的数据假设问题。 周期图、自相关法及其改进方法(Welch)为经典(非参数)谱估计方法, 其以相关和傅里叶变换为基础,对于长数据记录较适用,但无法根本解决频率分辨率低和谱估计稳定性的问题,特别是在数据记录很短的情况下,这一问题尤其突出。以随机过程的参数模型为基础的现代参数法功率谱估计具有更高的频率分辨率和更好的适应性,可实现信号检测或信噪分离,对语音、声纳雷达、电磁波及地震波等信号处理具有重要意义,并广泛应用于通信、自动控制、地球物理等领域。在现代参数法功率谱估计方法中,比较有效且实用的是AR模型法,Burg谱估计法,现代谱估计避免了计算相关,对短数据具有更强的适应性,从而弥补了经典谱估计法的不足,但其也有一些自身的缺陷。 下面就给出这两类谱估计的简单原理介绍与方法实现。 经典谱估计法 经典法是基于传统的傅里叶变换。本文主要介绍一种方法:周期图法。 周期图法 由于对信号做功率谱估计,需要用计算机实现,如果是连续信号,则需要变换为离散信号。下面讨论离散随机信号序列的功率谱问题。 连续时间随机信号的功率谱密度与自相关函数是一对傅里叶变换对,即:

AIC法定阶的依阶次递推算法程序.

AIC 法定阶的依阶次递推算法程序 依阶次递推算法所得到估计θ ?,再按下式计算残差方差的估计值: ∑==N j j e N 122 )?,(1?θσ 由上式的结果计算AIC : )(2?lg AIC 2b a n n N ++=σ 在结果中找到AIC 最小的模型(阶次和参数)就是估计的模型。 由输出数据可知当k1=5时aic 的值最小。所以最后的辨识结果取阶次为5,参数为: –1.18394,0.813938,–0.518174,0.348744,–0.116818, 1.07998,–0.74386,0.475444,–0.253022,0.122781 判断的阶次的最小aic 值: aic= – 8981.58发生在阶次为5时。 源程序: #include #include #include #include //矩阵求逆函数 int brinv(double f[],int n) { int *is,*js,i,j,k,l,u,v; double d,p; is=(int *)malloc(n*sizeof(int)); js=(int *)malloc(n*sizeof(int)); for (k=0; k<=n-1; k++) { d=0.0; for (i=k; i<=n-1; i++) for (j=k; j<=n-1; j++) { l=i*n+j; p=fabs(f[l]); if (p>d) { d=p; is[k]=i; js[k]=j;} } if (d+1.0==1.0) { free(is); free(js); cout<<"err**not inv\n"; return(0); } if (is[k]!=k) for (j=0; j<=n-1; j++) { u=k*n+j; v=is[k]*n+j; p=f[u]; f[u]=f[v]; f[v]=p; }

MATLAB中AR模型功率谱估计中AR阶次估计的实现

MATLAB中AR模型功率谱估计中AR阶次估计的实现 (最近看了几个关于功率谱的问题,有关AR模型的谱估计,在此分享一下,希望大家不吝指正) (声明:本文内容摘自我的毕业论文——心率变异信号的预处理及功率谱估计) (按:AR模型功率谱估计是对非平稳随机信号功率谱估计的常用方法,但是其模型阶次的估计,除了HOSA工具箱里的arorder函数外,没有现成的函数可用,arorder函数是基于矩阵SVD分解的阶次估计方法,为了比较各种阶次估计方法的区别,下面的函数使用了'FPE', 'AIC', 'MDL', 'CAT'集中准则一并估计,并采用试验方法确定那一个阶次更好。) ………………………………以上省略…………………………………………………………………… 假设原始数据序列为x,那么n阶参数使用最小二乘估计在MATLAB中实现如下: 复制内容到剪贴板 代码: Y = x; Y(1:n) = []; m = N-n; X = [];% 构造系数矩阵 for i = 1:m for j = 1:n X(i,j) = xt(n+i-j); end end beta = inv(X'*X)*X'*Y'; beta即为用最小二乘法估计出的模型参数。 此外,还有估计AR模型参数的Yule-Walker方程法、基于线性预测理论的Burg算法和修正的协方差算法等[26]。相应的参数估计方法在MATLAB中都有现成的函数,比如aryule、arburg以及arcov等。 4.3.3 AR模型阶次的选择及实验设计

文献[26]中介绍了五种不同的AR模型定阶准则,分别为矩阵奇异值分解(Singular Value Decomposition, SVD)定阶法、最小预测定误差阶准则 (Final Prediction Error Criterion, FPE)、AIC定阶准则(Akaika’s Information theoretic Criterion, AIC)、MDL定阶准则以及CAT定阶准则。文献[28]中还介绍了一种BIC定阶准则。SVD方法是对Yule-Walker方 程中的自相关矩阵进行SVD分解来实现的,在MATLAB工具箱中arorder函数就是使用的该算法。其他五种算法的基本思想都是建立目标函数,阶次估计的标准是使目标函数最小化。 以上定阶准则在MATLAB中也可以方便的实现,下面是本文实现FPE、AIC、MDL、CAT定阶准则的程序(部分): 复制内容到剪贴板 代码: for m = 1:N-1 …… % 判断是否达到所选定阶准则的要求 if strcmp(criterion,'FPE') objectfun(m+1) = (N+(m+1))/(N-(m+1))*E(m+1); elseif strcmp(criterion,'AIC') objectfun(m+1) = N*log(E(m+1))+2*(m+1); elseif strcmp(criterion,'MDL') objectfun(m+1) = N*log(E(m+1))+(m+1)*log(N); elseif strcmp(criterion,'CAT') for index = 1:m+1 temp = temp+(N-index)/(N*E(index)); end objectfun(m+1) = 1/N*temp-(N-(m+1))/(N*E(m+1)); end if objectfun(m+1) >= objectfun(m) orderpredict = m; break; end end orderpredict变量即为使用相应准则预测的AR模型阶次。

相关文档