姓名:潘晓丹。
学号:0140349045
班级:a1403492
ld算法实现ar过程估计。
p阶ar模型的差分方程为:
其中是均值为0的白噪声。
ar过程的线性**方法为:先求得观测数据的自相关函数,然后利用yule-walker方程递推求得模型参数,再根据公式求得功率谱的估计。
yule-walker方程可写成矩阵形式:
levinson-durbin算法可求解上述问题,其一般步骤为:
1) 计算观测值各自相关系数;;i=1;
2) 利用以下递推公式运算:
3) i=i+1,若i>p,则算法结束;否则,返回(2)。
以ar模型:为例,matlab 程序**如下:
clear; clc;
var = 1;
noise = var*randn(1,10000);
p = 2;
coefficient = 1 -0.5 0.5];
x = filter(1,coefficient,noise);
divide = linspace(-pi,pi,200);
for ii = 1:200
w = divide(ii);
s1(ii) =var/(abs(1+coefficient(2:3)*exp(-j*w*(1:2))'2;
enda_p var_p]=levinson_durbin(x,p);
for ii = 1:200
w = divide(ii);
sxx(ii) =var_p/(abs(1+a_p(2:p+1)*exp(-j*w*(1:p))'2;
endfigure;
subplot(2,2,1);plot(divide,s1,'b');
grid on
xlabel('w');ylabel('功率');title('ar 功率谱');
subplot(2,2,2);plot(divide,sxx,'r-')
grid on
xlabel('w');ylabel('功率');title('l-d算法估计');
subplot(2,2,3);plot(divide,s1,'b');
hold on
plot(divide,sxx,'r--'
hold off
grid on
xlabel('w');ylabel('功率');title('ar功率谱和算法比较');
子函数:levinson_
function [a_p var_p] =levinson_durbin(x,p)
n = length(x);
for ii=1:n
rxx(ii) =x(1:n-ii+1)*(x(ii:n))'n;
enda(1)=1;
a(2)=-rxx(2)/rxx(1);
for k=1:p-1 % levinson-durbin algorithm
var(k+1) =rxx(0+1)+a(1+1:k+1)*rxx(1+1:k+1)';
reflect_coefficient(k+1+1) =a(0+1:k+1)*(fliplr(rxx(2:k+1+1)))var(k+1);
var(k+1+1) =1-(reflect_coefficient(k+1+1))^2)*var(k+1);
a_temp(1) =1;
for kk=1:k
a_temp(kk+1) =a(kk+1)+reflect_coefficient(k+1+1)*a(k+1-kk+1);
enda_temp(k+1+1) =reflect_coefficient(k+1+1);
a = a_temp;
enda_p = a; %prediction coeffecients
var_p = var(p+1); prediction error power
1)p=2时,**结果图如下。
**系数:误差功率:var_p=1.0194
2)p=20时,**结果图如下。
**系数:误差功率:var_p=0.9998
3)p=50时,**结果图如下。
**系数:误差功率:var_p=0.9955
由不同阶数(p值)得到的**结果可得:当p的阶数较低时,l-d算法估计ar模型对功率谱估计的分辨率较低,有平滑的效果,从p=2的**结果可以看出估计得到的功率谱与原始功率谱基本吻合,且曲线平滑没有毛刺;随着阶数增大,采用l-d算法进行估计后,得到的功率谱会产生振荡,从**可以看到,当阶数p较高为50时,估计得到的功率谱与原始功率谱基本吻合,但估计得到的功率谱曲线不平滑,有急剧的振荡。
从ld算法得到的**系数可得,不论阶数p(>2)取何值,通过该算法得到的**参数与原始目标函数中的一致,其余各个参数均接近0。因此,l-d算法得到可计算得到较为精确的**值或估计值。
非平稳信号由两个高斯信号叠加而成,为。
其中,分别求出的wv分布及其模糊函数,画出二者的波形图,指出并分析其信号项和交叉项。
由wv分布的定义知:
若记 ,则,其中,由此,我们计算得到:
信号项:交叉项:
其中, 由模糊函数的定义知:
若记 ,则,其中,由此,我们计算得到:
信号项:交叉项:
其中, 取,进行matlab编程如下。
clear all;
format long;
alpha1=20; t1=10;t2=4;w1=8;w2=4;
a=alpha1/2; td=t1-t2; omegad=w1-w2;
tm=0.5*(t1+t2); omegam=0.5*(w1+w2);
m=1;n=1;
for t=0:0.1:8
for omega=-6:0.1:12
w_auto(m,n)=2*(exp(-a*(t-t1)^2-1/a*(omega-w1)^2)+exp(-a*(t-t2)^2-1/a*(omega-w2)^2));w_cross(m,n)=4*exp(-a*(t-tm)^2-1/a*(omega-omegam)^2)*cos((omega-omegam)*td+omegad*t)
w(m,n)=w_auto(m,n)+w_cross(m,n);
n=n+1;
endm=m+1;
n=1;end
figure;
mesh([-6:0.1:12],[0:0.1:8],w);
xlabel('time');
ylabel('frequency');
title('wv分布');
figure;
mesh([-6:0.1:12],[0:0.1:8],w_auto);
xlabel('time');
ylabel('frequency');
title('wv分布信号项');
figure;
mesh([-6:0.1:12],[0:0.1:8],w_cross);
xlabel('time');
ylabel('frequency');
title('wv分布交叉项');
format long;%模糊函数。
a=10; t1=6;t2=2;w1=6;w2=2;
td=t1-t2; wd=w1-w2;
tm=0.5*(t1+t2); wm=0.5*(w1+w2);
m=1;n=1;
for t=-10:0.1:10
for w=-10:0.1:
10 a_auto(m,n)=abs(exp(-a/4*t^2-1/(4*a)*w^2)*(exp(i*w1*t-i*t1*w)+exp(i*w2*t-i*t2*w)))a_cross(m,n)=abs(exp(i*wm*t+i*w*tm+i*wd*tm)*(exp(-1/(4*a)*(w+wd)^2-a/4*(t-td)^2)+exp(-1/(4*a)*(w-wd)^2-a/4*(t+td)^2)))
a(m,n)=a_auto(m,n)+a_cross(m,n);
n=n+1;
endm=m+1;
n=1;end
figure;
mesh([-10:0.1:10],[10:0.1:10],a);
xlabel('time');
ylabel('frequency');
title('模糊函数');
figure;
mesh([-10:0.1:10],[10:0.1:10],a_auto);
xlabel('time');
ylabel('frequency');
title('模糊函数信号项');
figure;
mesh([-10:0.1:10],[10:0.1:10],a_cross);
xlabel('time');
ylabel('frequency');
title('模糊函数交叉项');
1)z(t)函数的wv分布波形图如下。
2)wv分布信号项波形图如下。
3)wv分布交叉项波形图如下。
根据结果可以看到,wv分布的两个信号项是分开的,分别以为中心;
wv分布的交叉项则耦合在一起,以为中心。
4)模糊函数波形图。
5) 模糊函数信号项。
6) 模糊函数交叉项。
由结果可以看出,模糊函数的两个信号项耦合在一起,以原点(0,0)为中心;而交叉项是分开的,分别以为中心。
信号是由与相乘得到。分别求出三者的wv分布,并画出三维分布图。
该计算过程和作业二类似,在此不再赘述。
syms xt
a=10;b=2;o=2;
zt=(a/pi)^0.25*exp(-a*t^2/2+1i*b*t^2/2+1i*o*t);
xt=(a/pi)^0.25*exp(-a*t^2/2);
yt=exp(1i*b*t^2/2+1i*o*t);
x1=(a/pi)^0.25*exp(-a*(t+x/2)^2/2);
x2=(a/pi)^0.25*exp(-a*(t-x/2)^2/2);
x12=(a/pi)^0.5*exp(-a*(t-x/2)^2/2-a*(t-x/2)^2/2);
y1=exp(1i*b*(t+x/2)^2/2+1i*o*(t+x/2));
y2=exp(-1i*b*(t-x/2)^2/2-1i*o*(t-x/2));
现代信号处理大作业
姚苏洋 1130349171 1.使用matlab实现ld迭代算法。1.1 levinson durbin算法。功率谱估计大致可以分为经典谱估计和现代功率谱估计,经典谱估计方法存在着以下几点缺陷 a 数据加窗或自相关加窗,都隐含着假定在窗外未观测到的数据或自相关系数为零,该假设不切实际。b 要性能好...
现代信号处理作业
中国矿业大学。20 级硕士研究生课程考试试卷。考试科目现代信号处理基础 考试时间。学生姓名。学生学号。所在院系信电学院 任课教师。中国矿业大学研究生院培养管理处印制。一 自适应滤波。1 自适应df的工作原理 自适应滤波器是以最小均方误差为准则的最佳滤波器,它能自动调节其本身的单位脉冲响应h n 特性...
现代信号处理作业
中北大学。研究生 现代信号处理 作业。所在院 系 信息与通信工程学院 专业 测试计量技术及仪器 姓名王栋。学号 s20100329 班级 y100503 156 小波变换与matlab相关程序的学习 小波变换是在傅里叶变换的基础上发展起来的,它优于傅里叶分析的地方是它在时域与空域都是局部化的,其局部...