• 大小: 3KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-06-06
  • 语言: Matlab
  • 标签: SER  

资源简介

matlab中仿真自适应信号处理序贯回归SER算法,成功运行通过,并有详细注解。

资源截图

代码片段和文件信息

%************************************SER算法:起始值q0=1************************************%
N=16;u=0.05;%N表示一个周期的采样点数,u表示权调整的步长
p=0.01;%随机信号的功率                                           
syms w0 w1%定义两个权向量
y=(0.5+p)*(w0.^2+w1.^2)+w0*w1*cos(2*pi/N)+2*w1*sin(2*pi/N)+2; %性能表面
F=[0.490.781.96.3];

%****************************画二次性能表面的投影*****************************%

for k=1:4
    ezplot(y-F(k)[-10 10 -10 10])
    hold on
end

%************************************SER算法************************************%

a=0.93;%标量因子aerf=1/2^(x的平移区间的长度)
w0=[0 6 zeros(1110)];
w1=[0 -9 zeros(1110)];
lv=zeros(1110);%用于存储λ的平均值
q0=1;%设置q0=1
inv_Q(::1)=q0.*[1 0;0 1];%Q的逆矩阵的初值
for k=2:102
    r(k)=random(‘norm‘00.1);%生成功率为0.01的随机信号
    m(k)=2*cos(2*pi*k/N);%期待信号
    x(k)=sin(2*pi*k/N)+r(k);%输入信号
    e(k)=m(k)-(x(k).*w0(k)+x(k-1).*w1(k));%误差信号
    X=[x(k) x(k-1)]‘;
    S=inv_Q(::k-1)*X;
    ga=a+X‘*S;
    inv_Q(::k)=1/a*(inv_Q(::k-1)-1/ga*S*S‘);%求Q的逆
    inv_R(::k)=(1-a^(k+1))/(1-a)*inv_Q(::k);%求R的逆
    R(::k)=inv(inv_R(::k));%求R
    [vd]=eig(R(::k));%求R的特征值和特征向量
    dd=(d(11)+d(22))/2;
    lv(k)=dd;%λ的平均值
    C=inv_Q(::k)*X;%中间计算量
    w0(k+1)=w0(k)+(2*u*lv(k)*(1-a^(k+1)))/(1-a)*e(k)*C(1;%权向量w0的迭代
    w1(k+1)=w1(k)+(2*u*lv(k)*(1-a^(k+1)))/(1-a)*e(k)*C(2);%权向量w1的迭代
end
%************************************ 描绘权值轨迹 ************************************%

for k=2:102                  
    line([w0(k) w0(k+1)][w1(k) w1(k+1)]);
    ax

评论

共有 条评论