📄 limlsl.m
字号:
%LSL算法,选用电力系统谐波信号作为输入信号。参考书目:现代信号处理(第二版),张贤达,清华大学出版社。237页
clear all;close all;
f1=50;ts=1/1000;n=1:256;N=256;
d=2*sin(2*pi*f1*n*ts)+1.4*sin(2*pi*f1*7*n*ts);
y1=2*sin(2*pi*f1*n*ts);
x=sin(2*pi*f1*n*ts+pi/2);M=3;lamda=0.99;
eb(:,1)=zeros(1,M);
delta(:,1)=zeros(1,M);
gama(:,1)=ones(1,M);
Ef(:,1)=ones(1,M);
Eb(:,1)=ones(1,M);
for n=1:N
eb(1,n)=x(n);
ef(1,n)=x(n);
end
for n=2:N
Eb(1,n)=Ef(1,n-1)+x(n-1)^2;
Ef(1,n)=Ef(1,n-1)+x(n-1)^2;
gama(1,n)=1;
end
for m=1:M-1
for n=2:N
delta(m+1,n)=delta(m+1,n-1)+eb(m,n-1)*ef(m,n)/gama(m,n-1);
ef(m+1,n)=ef(m,n)-delta(m+1,n)*eb(m,n-1)/Eb(m,n-1);
eb(m+1,n)=eb(m,n-1)-delta(m+1,n)*ef(m,n)/Eb(m,n);
Ef(m+1,n)=Ef(m,n)-delta(m+1,n)^2/Eb(m,n-1);
Eb(m+1,n)=Eb(m,n-1)-delta(m+1,n)^2/Ef(m,n);
gama(m+1,n-1)=gama(m,n-1)-eb(m,n-1)^2/Eb(m,n-1);
Kf(m,n)=delta(m+1,n)/Ef(m,n);
Kb(m,n)=delta(m+1,n)/Eb(m,n-1);
end
end
for n=1:N
a(1,n)=Kb(1,n)-Kf(1,n)*Kb(2,n);
a(2,n)=Kb(2,n);
for m=1:M
if n<=M-1
b(m)=0;
else
b(m)=x(n-m+1);
end
end
X(:,n)=b';
y(n)=a(:,n)'*X(2:end,n);
end
plot(y)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -