自适应陷波滤波器(Notch滤波器)

    自适应滤波器以其自身调节参数的能力以及对信号和噪声的先验知识要求少的优势得到了广泛的应用。

   自适应陷波滤波器相比于普通的数字滤波器具有较窄的阻带和通带,带外衰减较快。具有滤波输出(Y输出)和陷波输出(E输出)两个输出。能够实现窄带滤波和窄带陷波。当干扰是单频信号,或者有用信号是单频信号时,自适应Notch滤波器具有很好的滤波效果。

       自适应Notch滤波器的基本原理是将某中心频率的正交信号作为参考信号,利用该正交信号的线性组合跟踪输入信号,并通过每一步的残差不断调整线性组合的权系数,从而使得输入信号中与参考信号线性相关的部分分离出来,达到窄带滤波的效果。自适应Notch滤波器的结构所示:

自适应陷波滤波器(Notch滤波器)_第1张图片

其中参考信号为,  w_{0}表示 参考信号的中心频率

          

若权值的递推公式选取LMS算法则,自适应Notch滤波器的递推过程如下:

自适应陷波滤波器(Notch滤波器)_第2张图片

其中u 为自适应Notch滤波器的学习步长,  u=\frac{B*\pi }{A^{2}fs}  

w_{c}w_{s}为两个参考信号的权系数。

仿真过程如下:

在300Hz单频信号中加入50Hz的工频干扰;利用Notch滤波器将50Hz的工频干扰滤除

%自适应陷波器仿真
clc
clear all
close all
%%——造接收信号—————————————————————
f1=300;
fs=10000;
ts=0:1/fs:1-1/fs; 
s=cos(2*pi*ts*f1)+sin(2*pi*ts*f1);%+cos(2*pi*t*f3);
sig_in=[zeros(1,10000) s  zeros(1,10000)];

N=length(sig_in);
t=(1:N)*1/fs;
n=0.5*cos(2*pi*t*50); %引入50Hz工频干扰
d=sig_in+n;                  %引入50Hz工频干扰后的接收输入

%%  ——造参考信号—————————————————————
x1=cos(2*pi*t*50);                 %参考输入1
x2=sin(2*pi*t*50);                 %参考输入2
%%  ——Notch滤波—————————————————————
w1=0.1;
w2=0.1;                       %权矢量初值
e=zeros(1,N);
y=zeros(1,N);
u=0.001;                  
for i=1:N                       %LMS算法
    y(i)=w1*x1(i)+w2*x2(i);
    e(i)=d(i)-y(i); 
    w1=w1+u*e(i)*x1(i); 
    w2=w2+u*e(i)*x2(i); 
end

figure(1) %%% 画出时域波形
subplot(4,1,1);plot(t,sig_in);
xlabel('时间/s')
title('原始信号');
subplot(4,1,2); plot(t,d);
xlabel('时间/s')
title('加入50Hz工频干扰后的接收信号');
subplot(4,1,3);plot(t,e);
xlabel('时间/s')
title('自适应陷波器输出信号');
subplot(4,1,4); plot(t,y);
xlabel('时间/s')
title('自适应滤波器输出信号');


figure(2)%%% 画出频谱
Nfft=100000;
f=(0:1/Nfft:(1-1/Nfft))*fs;
subplot(4,1,1);
plot(f,abs(fft(hilbert(sig_in(10000:20000)),Nfft)));xlim([0 500]);%axis([0 1000 0 1000]);
xlabel('频率/Hz')
title('原始信号 频谱');
subplot(4,1,2);plot(f,abs(fft(hilbert(d(10000:20000)),Nfft)));xlim([0 500]);%grid on;%axis([0 1000 0 5000]);
xlabel('频率/Hz')
title('加入50Hz工频干扰后的接收信号  频谱');
subplot(4,1,3);plot(f,abs(fft(hilbert(e(10000:20000)),Nfft)));xlim([0 500]);%grid on;%axis([0 1000 0 1000]);
xlabel('频率/Hz')
title('自适应陷波器输出信号 频谱');
subplot(4,1,4);plot(f,abs(fft(hilbert(y(10000:20000)),Nfft)));xlim([0 500]);%grid on;%axis([0 1000 0 1000]);
xlabel('频率/Hz')
title('自适应滤波器输出信号 频谱');

 自适应陷波滤波器(Notch滤波器)_第3张图片

自适应陷波滤波器(Notch滤波器)_第4张图片

由上图可以看出滤波器能够实现去除工频干扰的功能,陷波通道(e通道)输出的即为 滤掉50Hz工频干扰后的信号,而滤波通道(Y通道)得到是要滤除的50Hz工频干扰。

你可能感兴趣的:(自适应信号处理)