📄 normalizion_lrls.m
字号:
%shuru(n)为实际输入信号,biaozhun(n)为参照信号
M=1000;%时长
N=8;%阵元数
lamda=0.9;%遗忘因子
constant=0.001;%small positive constant
a=zeros(M+2,N+1);%derta
aD=zeros(M+2,N+1);%dertaD
e=zeros(M+2,N+2);
eb=zeros(M+2,N+2);
ef=zeros(M+2,N+2);
bx=zeros(M+2,1);%x方差
bd=zeros(M+2,1);%d方差
for i=0:N
a(1,i+1)=0;%assuming x(k)=d(k)=0 for k<0;
aD(1,i+1)=0;
eb(1,i+1)=0;
end
bx(1,1)=constant;
bd(1,1)=constant;
for k=0:M
bx(k+2,1)=lamda*bx(k+1,1)+shuru(k)^2;%input signal energy
bd(k+2,1)=lamda*bd(k+1,1)+biaozhun(k)^2;%reference signal energy
eb(k+2,1)=shuru(k)/sqrt(bx(k+2,1));
ef(k+2,1)=shuru(k)/sqrt(bx(k+2,1));
e(k+2,1)=biaozhun(k)/sqrt(bd(k+2,1));
for i=0:N
c1=sqrt((1-eb(k+1,i+1)^2)*(1-ef(k+2,i+1)^2));
a(k+2,i+1)=a(k+1,i+1)*c1+eb(k+1,i+1)*ef(k+2,i+1);%(6.81)
c2=sqrt((1-a(k+2,i+1)^2)*(1-ef(k+2,i+1)^2));
eb(k+2,i+2)=(eb(k+1,i+1)-a(k+2,i+1)*ef(k+2,i+1))/c2;%(6.84)
c3=sqrt((1-a(k+2,i+1)^2)*(1-eb(k+1,i+1)^2));
ef(k+2,i+2)=(ef(k+2,i+1)-a(k+2,i+1)*eb(k+1,i+1))/c3;%(6.83)
%Feedforward Filter
c4=sqrt((1-eb(k+2,i+1)^2)*(1-e(k+2,i+1)^2));
aD(k+2,i+1)=aD(k+1,i+1)*c4+e(k+2,i+1)*eb(k+2,i+1);%(6.89)
c5=sqrt((1-eb(k+2,i+1)^2)*(1-aD(k+2,i+1)^2));
e(k+2,i+2)=(e(k+2,i+1)-aD(k+2,i+1)*eb(k+2,i+1))/c5;%(6.88)
end
end
figure(1);
k=0:M;
hold on;
plot(k,e(k+2,N+2),'b');
title('基于后验误差的归一化LRLS error');
grid on;
axis([0,M,-8,8]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -