• 大小: 2.37KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: Matlab
  • 标签: matlab  

资源简介


用matlab实现递推最小二乘法。 源代码。。

资源截图

代码片段和文件信息

%FLch3RLSeg3
clear%清理工作间变量
L=15;% M序列的周期
y1=1;y2=1;y3=1;y4=0;%四个移位积存器的输出初始值
for i=1:L;%开始循环,长度为L
    x1=xor(y3y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”
    x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出
    x3=y2;%第三个移位积存器的输入是第2个移位积存器的输出
    x4=y3;%第四个移位积存器的输入是第3个移位积存器的输出
    u(i)=y4;
    %y(i)=y4;%取出第四个移位积存器幅值为“0“和“1“的输出信号,
    %if y(i)>0.5u(i)=-0.03;%如果M序列的值为“1“时辨识的输入信号取“-0.03”
    %else u(i)=0.03;%当M序列的值为“0“时辨识的输入信号取“0.03”
    %end%小循环结束
    y1=x1;y2=x2;y3=x3;y4=x4;%为下一次的输入信号做准备
end%大循环结束,产生输入信号u 
figure(1);%第1个图形
stem(u)grid on%以径的形式显示出输入信号并给图形加上网格

z(3)=0;z(2)=0;z(1)=0;%取z的前三个初始值为零
for k=4:15;%循环变量从4到15   
    z(k)=-1.5*z(k-1)-1.0*z(k-2)-0.5*z(k-3)-1.5*u(k-1)-0.5*u(k-2);%给出理想的辨识输出采样信号    
end

%RLS递推最小二乘辨识
c0=[0.001 0.001 0.001 0.001 0.001]‘;%直接给出被辨识参数的初始值即一个充分小的实向量
p0=10^6*eye(55);%直接给出初始状态P0,即一个充分大的实数单位矩阵
E=0.000000005;%相对误差E=0.000000005
c=[c0zeros(514)];%被辨识参数矩阵的初始值及大小
e=zeros(515);%相对误差

评论

共有 条评论