📄 linelms.m
字号:
function e_prediction=linelms(receive_signal,num_weight)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%receive_signal:为接收信号序列=ss_signal+interference+noise;
%e_prediction: 为预测到的信号值
%num_weight: 抽头系数个数;
%a: 为Laguerre滤波器的极点;
%此为采用线性预测滤波方法抑制窄带干扰的算法
%当a为0时,变为一般的z-1,即传统的滤波器.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
z=receive_signal; %接收信号
M=length(z); %接收信号长度
w=0.001*randn(1,num_weight)';
e=zeros(1,M);
z_hat=zeros(1,M);
p=zeros(1,M);
u=0.05;
p(num_weight)=2;%norm(z(1:num_weight))^2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for k=(num_weight+1):M
X=z(k-1:-1:k-num_weight).';
xk2=norm(X)^2;
gama=0.99;
p(k)=p(k-1)+gama*[xk2-p(k-1)];
z_hat(k)=w'*X;
e(k)=z(k)-z_hat(k);
w=w+u/(p(k)+10)*e(k)*X;
end;
e_prediction=e;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -