现代谱估计实验报告

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

杭州电子科技大学现代谱估计实验报告

现代谱估计实验报告

吴迪松 20040089 信息与信息处理

一、实验题目:

用MATLAB 编写一下算法的程序:

(1)修正协方差法

(2)多重信号分类(MUSIC )算法

(3)ESPRIT 算法

(4)皮萨论科(Pisarenko )谐波分解法

并对各算法进行分析。

二、实验原理

(1) 修正协方差法

1、得出输入信号x(n),此输入信号是与白噪声相加的。

xx R ˆ()()()x

n x n n t =+ 2、求自相关估计器(),xx c j k

()()11**01,()(2()N N P xx n p n c j k x n j x n k x n j x n k N p −−−==)()⎡⎤=−−+++⎢⎥−⎣⎦

∑∑ 3、求滤波器的系数 ˆ()a

k

1ˆ()(,)(,1)p xx xx k a

k c l k c l ==−∑ 4、求白噪声方差的估计值2ˆσ

2

1

ˆˆ(1,1)()(1,)p xx xx k c a k c σ==+∑k 5、求功率谱

()p f 2221ˆ()ˆ1()p j fk k p f a

k e πσ

−==+∑

(2)多重信号分类(MUSIC )算法

1、估计样本自相关矩阵 ˆxx r

2、对作特征值分解 ˆxx r

3、确定的最小特征值分解的数目,求出这个最 ˆxx r

E n E n 小特征值1,,p M λλ+",令

()2121p p M E

n σλλλ++=+++" 并求出相对应的特征向量,构造噪声矩阵

1,,p v v +"M

21,,p M V v v +⎡⎤=⎣⎦"

4、构造函数:

()211

ˆMU M H i i p P f e v =+=∑

(3)ESPRIT 算法

1、利用已知信息求 {}(0),(1),()xx xx xx r r r M "

2、由{}(0),(1),()xx xx xx r r r M "构造自相关矩阵xx R 和互相关矩

阵xy R

3、计算xx R 的特征值分解。对于M>P ,最小特征值为

噪声方差2σ

4、利用2σ计算2xx xx C R I σ=−和2xy xy C R I σ=−

5、计算矩阵对{},xx xy C C 的广义特征值分解。从而确定谐

波频率。

(4)皮萨论科(Pisarenko )谐波分解法

1、求x(n)的自相关函数

xx r 2、求的toeplitz 矩阵xx r xx R

3、求出xx R 的特征值,由此得出最小特征值

4、求出最小特征值对应的一列特征向量

5、求这个特征矢量形成的多项式的根。由这些根求出

它的角度,并且最后求出频率

三、各算法的MATLAB 程序

%AR model parameter estimate

clear

m=sqrt(-1);

delta=0.1;

a1=0.5;

sample=32; %number of sample spot

p=10; %number of sample spot in coef method;

f1=0.05; f2=0.20; f3=0.45; %三个频率分量

fstep=0.01;

fstart=-0.5;

fend=0.5;

f=fstart:fstep:fend; %频率的范围

nfft=(fend-fstart)/fstep+1;

%un=urn+juin

urn= normrnd(0,delta/2,1,sample);

uin= normrnd(0,delta/2,1,sample);

un=urn+m*uin;

%calculate zn 噪声

for n=1:sample-1

zn(1)=un(1);

zn(n+1)=a1*zn(n)+un(n+1);

end

%calculate xn 出入信号

for n=1:sample

xn(n)=2*cos(2*pi*f1*(n-1))+2*cos(2*pi*f2*(n-1))+2*cos(2*pi*f3*(n-1)) +sqrt(2)*real(zn(n));

end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%calculate cxx(j,k) 公式3.102

for j=1:p

for k=1:p

s=0;

for n=p+1:sample

s=s+1/2/(sample-p)*(conj(xn(n-j))*xn(n-k)+xn(n-p+j)*conj(xn(n-p+k)));

end

cxx(j,k)=s;

end

end

%calculate cxx0(j,1) 公式 3.103

for j=1:p

s=0;

for n=p+1:sample

s=s+1/2/(sample-p)*(conj(xn(n-j))*xn(n)+xn(n-p+j)*conj(xn(n-p))); end

cxx0(j,1)=s;

end

%calculate a 公式3.104

a=-inv(cxx)*cxx0;

%a(k)*exp(-j2pifk)累加

for i=1:length(f)

sum=0;

for k=1:p

sum=sum+a(k)*exp(-m*2*pi*f(i)*k);

end

相关文档
最新文档