自适应陷波器的设计

本文介绍自适应陷波器的工作原理及其在MATLAB中的仿真过程。该陷波器能有效滤除已知频率的干扰信号,特别适用于50Hz工频信号的消除。文中详细阐述了利用LMS算法实现对单频或多频干扰信号的估计与滤除,并给出MATLAB仿真代码及结果。
摘要由CSDN通过智能技术生成

1. 自适应陷波器原理

陷波器也是一种滤波器,其主要特点在于对输入信号的某些已知频率信号进行滤除。这里所说的已知频率信号,是指已知干扰信号的频率,不知信号的相位和幅度信息。

例如,由于我国采用的是50Hz的交流电,所以在需要对信号进行采集处理和分析时,经常会存在50Hz工频信号,对有用信号的处理造成很大的干扰,因此很有必要设计50Hz的陷波器,对这个已知频率信号进行滤除。所谓自适应陷波器,就是可以根据干扰信号频率的相位和幅度,自适应地调整滤波器系数,跟踪其参数变化,保持对干扰信号的有效滤除。

陷波器的设计方法较多,除了本文所讲之外,还可以直接设计一个带阻滤波器,使干扰信号的频率无法通过。显然,由于硬件电路的滤波器无法做到很窄的过渡带,因此会对有用信号造成损失。

本文所讲的自适应陷波器,其目的是采用LMS算法,在保证其他有用信号不损失的情况下,有效抑制输入信号中某一频率的干扰(如果需要滤除多个频率,只需增加相应的运算资源)。下图为同时滤除两个干扰频率( ω 1 、 ω 2 \omega _{1}、\omega _{2} ω1ω2)信号的自适应陷波器原理图。
在这里插入图片描述
图中, x ( t ) x(t) x(t)是叠加有两个干扰频率的输入信号,自适应陷波器就是要滤出 ω 1 、 ω 2 \omega _{1}、\omega _{2} ω1ω2这两个频率的干扰信号, s ( t ) s(t) s(t)是需要保留的有用信号,可以是任意形式的信号。需要说明的是,在输入信号中,我们仅知道干扰信号的频率是 ω 1 、 ω 2 \omega _{1}、\omega _{2} ω1ω2,不知道其具体幅度 A 1 、 A 2 A_{1}、A_{2} A1A2及相位值 θ 1 、 θ 2 \theta_{1}、\theta_{2} θ1θ2,自适应算法(LMS)的目的就是要估计两个未知的幅度值及相位值。为了估计出单个频率的幅度值和相位值,我们需要用两路相互正交的单频信号,如 c o s ( ω 1 t ) 、 s i n ( ω 2 t ) cos(\omega_{1}t)、sin(\omega_{2}t) cos(ω1t)sin(ω2t),通过调整其权值 w 1 、 w 2 w_{1}、w_{2} w1w2(均为实数),就可以合成与干扰信号 A 1 c o s ( ω 1 t + θ 1 ) A_{1}cos(\omega_{1}t+\theta_{1}) A1cos(ω1t+θ1)完全相同的信号;由于需要有效滤除两个单频干扰信号,因此需要输入4路参考信号,通过调整相应权值实现单频干扰信号的有效滤除。

经LMS算法调整后的权值,与4路参考信号乘加输出的值,即为两个单频干扰的估计值,即 y ( t ) = A 1 ^ c o s ( ω 1 t + θ 1 ^ ) + A 2 ^ c o s ( ω 2 t + θ 2 ^ ) y(t)=\hat{A_{1}}cos(\omega _{1}t+\hat{\theta_{1}})+\hat{A_{2}}cos(\omega _{2}t+\hat{\theta_{2}}) y(t)=A1^cos(ω1t+θ1^)+A2^cos(ω2t+θ2^)。LMS算法的误差信号 e ( t ) e(t) e(t)就是滤除了干扰的有用信号。

经过上面的讨论,显然,如果干扰信号只是一个单频信号,如50Hz的工频干扰,则参考信号只需要 c o s 100 π t 、 s i n 100 π t cos100\pi t、sin100\pi t cos100πtsin100πt两路信号;如果需要滤除3个单频干扰,则参考信号需要6路。

数字LMS算法中,权值均是对输入信号进行调制,期望信号 d ( n ) d(n) d(n)均是确知的信号,不需要权值调整。在进行自适应陷波器的LMS算法仿真及实现时,需要将输入信号 x ( t ) x(t) x(t)当做LMS算法的期望信号 d ( n ) d(n) d(n);将4路参考信号 r ( t ) r(t) r(t)当做LMS算法的输入信号 x ( n ) x(n) x(n);将权值调整后的乘加值 y ( t ) y(t) y(t)当做LMS算法的估计值 y ( n ) y(n) y(n);将误差信号 e ( t ) e(t) e(t)当做LMS算法的误差信号 e ( n ) e(n) e(n),也是自适应陷波器的最终输出结果。

2. 自适应陷波器的MATLAB仿真

MATLAB仿真程序中,采样频率为4KHz,输入信号中有两个单频干扰信号 ( f 1 = 50 H z 、 f 2 = 10 H z ) (f_{1}=50Hz、f_{2}=10Hz) (f1=50Hzf2=10Hz),要求对这两个单频干扰信号进行滤除。仿真有用信号为两种形式信号(400Hz的单频信号、随机信号)情况下的陷波器算法。LMS算法的步长因子设置为1/128。
源码

len=4000; %数据长度
fs=4000;  %采样频率

t=1:len;t=t/fs;

%两个单频干扰信号的频率/参考信号的频率
f1=50;f2=10;
%生成4路参考信号
x1=cos(2*pi*f1.*t);x2=sin(2*pi*f1.*t);
x3=cos(2*pi*f2.*t);x4=sin(2*pi*f2.*t);
x=[x1;x2;x3;x4];

%生成干扰信号
J1=2*cos(2*pi*f1.*t+pi/3);
J2=2*sin(2*pi*f2.*t+pi/6);

%生成有用信号
s=cos(2*pi*400.*t); %频率为400Hz的单频信号
% s=rand(1,len);     %或者为:随机信号

%生成混有干扰信号的输入信号
d=J1+J2+s;

%LMS算法中间变量初始化
w=zeros(4,len+1);
w(:,1)=ones(4,1)/2;
e=zeros(1,len);
aw=zeros(4,len);
%LMS算法
for k=1:len
    y(k)=w(:,k)'*x(:,k);
    e(k)=d(k)-y(k);
    %aw(:,k)=2*(1/128)*x(:,k)*conj(e(k));     %LMS算法
    aw(:,k)=2*(1/128)*sign(x(:,k))*conj(e(k));%符号LMS算法
    w(:,k+1)=w(:,k)+aw(:,k);
end

%绘图
disp_len=300;  %显示300个数据点
% disp_len=2000; %显示2000个数据点
ax=1:disp_len+1;
subplot(511);
plot(ax,s(len-disp_len:len));legend('有用信号');
subplot(512);
plot(ax,J1(len-disp_len:len));legend('50Hz的干扰信号');
subplot(513);
plot(ax,J2(len-disp_len:len));legend('10Hz的干扰信号');
subplot(514);
plot(ax,d(len-disp_len:len));legend('叠加干扰后的信号');
subplot(515);
plot(ax,e(len-disp_len:len));legend('滤除干扰后的信号');

仿真结果
有用信号为单频信号的陷波器仿真波形(显示300个数据)
在这里插入图片描述
有用信号为单频信号的陷波器仿真波形(显示2000个数据)
在这里插入图片描述
有用信号为随机信号的陷波器仿真波形(显示300个数据)
在这里插入图片描述
有用信号为随机信号的陷波器仿真波形(显示2000个数据)
在这里插入图片描述
从图中可以看出,陷波器仍然有效滤除了两个单频干扰,输出的信号与有用信号完全一致。

随着微电子技术和计算机技术的迅速发展,具备了实现自适应滤波器技术的各种软硬件条件,有关自适应滤波器的新算法、新理论和新的实施方法不断涌现,对自适应滤波的稳定性、收敛速度和跟踪特性的研究也不断深入,这一切使该技术越来越成熟,并且在系统辨识、通信均衡、回波抵消、谱线增强、噪声抑制、系统模拟语音信号处理、生物医学电子等方面都获得了广泛应用口。自适应滤波器实现的复杂性通常用它所需的乘法次数和阶数来衡量,而DSP强大的数据吞吐量和数据处理能力使得自适应滤波器的实现更容易。目前绝大多数的自适应滤波器应用是基于最新发展的DSP来设计的。滤波技术是信号处理中的一种基本方法和技术,尤其数字滤波技术使用广泛,数字滤波理论的研究及其产品的开发一直受到很多国家的重视。从总的来说滤波可分为经典滤波和现代滤波。经典滤波要求已知信号和噪声的统计特性,如维纳滤波和卡尔曼滤波。现代滤波则不要求己知信号和噪声的统计特性,如自适应滤波。自适应滤波的原理就是利用前一时刻己获得的滤波参数等结果,自动地调节现时刻的滤波参数,从而达到最优化滤波。自适应滤波具有很强的自学习、自跟踪能力,适用于平稳和非平稳随机信号的检测和估计。自适应滤波一般包括3个模块:滤波结构、性能判据和自适应算法。其中,自适应滤波算法一直是人们的研究热点,包括线性自适应算法和非线性自适应算法,非线性自适应算法具有更强的信号处理能力,但计算比较复杂,实际应用最多的仍然是线性自适应滤波算法。线性自适应滤波算法的种类很多,有LMS自适应滤波算法、R路自适应滤波算法、变换域自适应滤波算法、仿射投影算法、共扼梯度算法等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值