Simon Haykin自适应滤波器原理(第五版)第四章最速下降法4.4示例代码

由于课后作业对于二阶AR模型的滤波器系数[w1(n),w2(n)]的轨迹绘制提出了要求,按照课本讲解,现仅对[v1(n),v2(n)]进行了成功绘制,待在复习Wiener滤波之后再对[w1(n),w2(n)]轨迹进行绘制尝试,代码写的有点乱,希望大家多多指教。
代码:

clc;clear;close all;
%采用AR(2)模型:u(n)+a1u(n-1)+a2u(n-2)=v(n)
%固定步长,变化特征值扩散度
%% 参数设置:
a1 = -1.9114;
a2 = 0.95;
miu = 0.3;%步长参数μ
sigma_u2 = 1;%过程un的方差1
r0 = sigma_u2;%自相关r0
r1 = -a1/(1+a2)*sigma_u2;%自相关r1
r2 = (-a2+a1^2/(1+a2))*sigma_u2;%自相关r2,自相关均由Yule-Walker方程求得,教材P41
lamda1 = (1-a1/(1+a2))*sigma_u2^2;%特征值λ1
lamda2 = (1+a1/(1+a2))*sigma_u2^2;%特征值λ2
XR = lamda1/lamda2;%特征值扩散度
sigma_v2 = 1-a1^2*r0-2*a1*a2*r1-a2^2*r0;%使得过程un具有方差1的vn方差
Jmin = sigma_v2;%最小均方误差
w0 = [-a1;-a2];
v0 = [-(a1+a2)/2^0.5;-(a1-a2)/2^0.5];
%% 绘图
%绘制v1(n),v2(n)的图
figure(1);
for i = 0:4
    v1(:,i+1) = (1-miu*lamda1)^i*v0(1);
    v2(:,i+1) = (1-miu*lamda2)^i*v0(2);
    Jn_Jmin = lamda1*v1(i+1)^2+lamda2*v2(i+1)^2;
    a = (Jn_Jmin/lamda2)^0.5;%椭圆长轴
    b = (Jn_Jmin/lamda1)^0.5;%椭圆短轴
    ecc = axes2ecc(a,b);  % 根据长半轴和短半轴计算椭圆偏心率
    [elat,elon] = ellipse1(0,0,[a ecc],90);
    plot(elat,elon,'k');hold on;
end
v1 = [v1,0];v2 = [v2,0];
plot(v1,v2,'k-','LineWidth',2.5);
axis([-3,3,-8.5,8.5]);grid on;

特征值扩散度$$ \chi \left( R \right)=100,μ=0.3的结果图:

该结果与课本结果一致,本例子仅作为参考。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值