0
点赞
收藏
分享

微信扫一扫

【信号处理】自适应滤波法从宽带信号中提取单频信号附matlab代码

1 简介

本文对自适应滤波器进行了理论分析,并进行了自适应滤波器的计算机仿真,提出使用自适应滤波器将淹没于白噪声中的羊频正弦信号的方法.

2 完整代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%单频干扰自适应滤波器(陷波器)%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
clc
f=100; %两干扰信号频差
C=5; %原始信号幅值
A=1;B=2; %干扰信号幅值
p=pi/4; %干扰信号初相
f1=50; %干扰信号1频率
f2=f1+f; %干扰信号2频率
N=1000; %总采样长度
t=linspace(0,1,N);
s=C*sin(2*10*pi*t); %原始信号
v1=A*cos(2*f1*pi*t+p); %频率为f1干扰信号
v2=B*cos(2*f2*pi*t); %频率为f2干扰信号
x=s+v1+v2; %加入双频干扰后信号
x1=cos(2*f2*pi*t); %参考输入1
x2=sin(2*f2*pi*t); %参考输入2
y1=0;
u=0.01; %关键控制参量
w1=0.2; %权矢量初值
w2=0.2; %权矢量初值
e1=zeros(1,N);
for j=1:N %LMS算法
y1=w1*x1(j)+w2*x2(j); %公式(3-69)
e1(j)=x(j)-y1; %公式(3-68)
w1=w1+2*u*e1(j)*x1(j); %公式(3-67)
w2=w2+2*u*e1(j)*x2(j);
end
figure(1)
subplot(2,1,1);
plot(t,s);
title('原始信号');
axis([0 1 -10 10]);
subplot(2,1,2);
plot(t,x);
title('加入双频干扰后信号');
figure(2)
subplot(3,1,1);
plot(t,s+v1);
title('提取噪声v2后理论输出');
subplot(3,1,2);
plot(t,e1);
title('提取噪声v2后实际输出');
subplot(3,1,3);
plot(t,s+v1-e1);
title('信号误差');

3 仿真结果

【信号处理】自适应滤波法从宽带信号中提取单频信号附matlab代码_干扰信号

4 参考文献

[1]刘碧. 用自适应滤波器从白噪声中提取单频信号[J]. 电讯工程, 2004(4):6.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【信号处理】自适应滤波法从宽带信号中提取单频信号附matlab代码_初值_02


举报

相关推荐

0 条评论