⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ls.m

📁 关于系统辨识的一些仿真程序
💻 M
字号:
%最小二乘法ls——系统辨识
%产生M序列
clc
clear
close all
J=16;
y1=1;y2=1;y3=1;y4=0;
for i=1:J;
    x1=xor(y3,y4);
    x2=y1;
    x3=y2;
    x4=y3;
    y(i)=y4;
    if y(i)>0.5,u(i)=-1;
    else u(i)=1;
    end
    y1=x1;
    y2=x2;
    y3=x3;
    y4=x4;
end
z=zeros(1,16);
N=16;
var_v=1;
v=0.02*sqrt(var_v)*randn(1,N);%均值为0,方差为var_v的白噪声信号
for k=5:16
    z(k)=3.808*z(k-1)-5.434*z(k-2)+3.445*z(k-3)-0.8187*z(k-4)+u(k)-3.935*u(k-1)+5.806*u(k-2)-3.807*u(k-3)+0.9362*u(k-4)+v(k);
end
HL=[-z(4) -z(3) -z(2) -z(1) u(5) u(4) u(3) u(2) u(1);
    -z(5) -z(3) -z(3) -z(2) u(6) u(5) u(4) u(3) u(2);
    -z(6) -z(5) -z(4) -z(3) u(7) u(6) u(5) u(4) u(3);
    -z(7) -z(6) -z(5) -z(4) u(8) u(7) u(6) u(5) u(4);
    -z(8) -z(7) -z(6) -z(5) u(9) u(8) u(7) u(6) u(5);
    -z(9) -z(8) -z(7) -z(6) u(10) u(9) u(8) u(7) u(6);
    -z(10) -z(9) -z(8) -z(7) u(11) u(10) u(9) u(8) u(7);
    -z(11) -z(10) -z(9) -z(8) u(12) u(11) u(10) u(9) u(8);
    -z(12) -z(11) -z(10) -z(9) u(13) u(12) u(11) u(10) u(9);
    -z(13) -z(12) -z(11) -z(10) u(14) u(13) u(12) u(11) u(10);
    -z(14) -z(13) -z(12) -z(11) u(15) u(14) u(13) u(12) u(11);
    -z(15) -z(14) -z(13) -z(12) u(16) u(15) u(14) u(13) u(12)] ;
ZL=[z(5);z(6);z(7);z(8);z(9);z(10);z(11);z(12);z(13);z(14);z(15);z(16)];
c1=HL'*HL; c2=inv(c1); c3=HL'*ZL; c=c2*c3 ;
a1=c(1), a2=c(2), a3=c(3), a4=c(4),b1=c(5), b2=c(6), b3=c(7), b4=c(8),b5=c(9)

ze=zeros(1,16);
for k=5:16 
    z(k)=3.808*z(k-1)-5.434*z(k-2)+3.445*z(k-3)-0.8187*z(k-4)+u(k)-3.935*u(k-1)+5.806*u(k-2)-3.807*u(k-3)+0.9362*u(k-4)+v(k);
    ze(k)=-a1*ze(k-1)-a2*ze(k-2)-a3*ze(k-3)-a4*ze(k-4)+b1*u(k)+b2*u(k-1)+b3*u(k-2)+b4*u(k-3)+b5*u(k-4)+v(k);
    ee(k)=abs((ze(k)-z(k))/z(k));
end
figure(3)
i=1:16; 
plot(i,ee,'r')
title('LS算法模型误差')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -