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

资源简介

递推极大似然参数辨识法MATLAB程序 clear all%清理工作间变量 close all%关闭所有图形 clc%清屏 %%%% M序列、噪声信号产生%%%% L=1200;%四位移位积存器产生的M序列的周期 y1=1;y2=1;y3=1;y4=0;%四个移位积存器的输出初始值 for i=1:L; x1=xor(y3,y4);%第一个移位积存器的输入信号 x2=y1;%第二个移位积存器的输入信号 x3=y2;%第三个移位积存器的输入信号 x4=y3;%第四个移位积存器的输入信号 y(i)=y4;%第四个移位积存器的输出信号,幅值"0"和"1" if y(i)>0.5,u(i)=-1;%M序列的值为"1"时,辨识的输入信号取“-1” else u(i)=1;%M序列的值为"0"时,辨识的输入信号取“1” end y1=x1;y2=x2;y3=x3;y4=x4;%为下一次的输入信号作准备 end ------

资源截图

代码片段和文件信息

clear all%清理工作间变量
close all%关闭所有图形
clc%清屏
%%%% M序列、噪声信号产生%%%%
L=1200;%四位移位积存器产生的M序列的周期
y1=1;y2=1;y3=1;y4=0;%四个移位积存器的输出初始值
for i=1:L;
    x1=xor(y3y4);%第一个移位积存器的输入信号
    x2=y1;%第二个移位积存器的输入信号
    x3=y2;%第三个移位积存器的输入信号
    x4=y3;%第四个移位积存器的输入信号
    y(i)=y4;%第四个移位积存器的输出信号,幅值“0“和“1“
    if y(i)>0.5u(i)=-1;%M序列的值为“1“时辨识的输入信号取“-1”
    else u(i)=1;%M序列的值为“0“时辨识的输入信号取“1”
    end
    y1=x1;y2=x2;y3=x3;y4=x4;%为下一次的输入信号作准备
end
v=randn(11200); %产生一组1200个正态分布的随机噪声
V=0; %计算噪声方差
for i=1:1200
    V=V+v(i)*v(i);
end
    V1=V/1200 %计算噪声方差结束
%%%% M序列、噪声信号产生结束 %%%
%%%递推极大似然算法开始%%%
z(2)=0;z(1)=0;
for k=3:1200 %根据v和u计算z(k)
    z(k)=-0.5*z(k-1)+0.2*z(k-2)+1.2*u(k-1)+0.3*u(k-2)+1.0*v(k)-1.0*v(k-1)+0.8*v(k-2);
end
    theta1=0.001*ones(61);p0=eye(66);
    zf(1)=0;zf(2)=0;vf(1)=0;vf(2)=0;uf(1)=0;uf(2)=0;
for k=3:1200 %递推迭代计算
    h=[-z(k-1);-z(k-2);u(k-1);u(k-2);v(k-1);v(k-2)];
    hf=h;
    K=p0*hf*inv(hf‘*p0*hf+1);
    p=[eye(66)-K*hf‘]*p0;
    v(k)=z(k)-h‘*th

评论

共有 条评论

相关资源