• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: 系统辨识  

资源简介

在matlab环境下,运用最小二乘整批算法对系统参数进行辨识,得到脉冲响应,通过改变燥信比可以观察噪声对辨识结果的影响。

资源截图

代码片段和文件信息

clear all; close all;
a=[1 0.5 0];%分子系数向量
b=[1 -1.5 0.7];%分母系数向量
d=zeros(170);%输出序列50个
 for n=1:1:70
     c=a-a(:1)./b(:1).*b;
     d(:n+1)=a(:1)./b(:1);
     a(:1)=c(:2);
     a(:2)=c(:3);  
 end
plot(d‘g‘);
grid on;         %xianshi gezi(shange)
title(‘标准单位脉冲响应与辨识结果‘);
hold on
 
 a=0.9; %可变系数
 Np=63;  %M序列周期
 r=4;    %4个周期
 h=1;       % 幅值
 L=r*Np;     %仿真长度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生e(k)
 d=[1 -1.5 0.7]; c=1 ;  % 分子分母多项式系数
 nd=length(d)-1 ;   %阶次
 v=rand(1L+1);
 xi=a.*v;
 ek=zeros(nd1);
 e=zeros(1L);%行向量
 for k=1:L
    e(k)=-d(2:(nd+1))*ek+c*xi(k); 
    %数据更新
    for i=nd:-1:2
        ek(i)=ek(i-1);
    end
    ek(1)=e(k);
 end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生Y(k)序列
M_XuLie=zeros(L1);
%初始化M序列
M(1)=1;
M(2)=1;
M(3)=1;
M(4)=0;
M(5)=1;
M(6)=0;
for n = 1 :1: L
    if M(6)==0
      M_XuLie(n) = h;
    else
      M_XuLie(n) =-h;
    end               %输出序列
    temp = xor(M(6) M(5));
    M(6) = M(5);
    M(5) = M(4);
    M(4) = M(3);
    M(3) = M(2);
    M(2) = M(1);
    M(1) = temp;
end
ui=M_XuLie;   %输入信号,M序列,列向量L行
d1=[1 -1.5 0.7]; c1=[0 1 0.5];  %分母 分子多项式系数
nd1=length(d1)-1 ;nc1=length(c1)-1;   %阶次
uik=zeros(nc11);  %输入初值
yk=zeros(nd11);  %输出初值
y=zeros(1L);%行向量
for k=1:

评论

共有 条评论