目录

一、理论基础

二、核心程序

三、仿真结论


一、理论基础

        陷波滤波器指的是一种可以在某一个频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果的滤波器。陷波滤波器属于带阻滤波器的一种,只是它的阻带非常狭窄,起阶数必须是二阶(含二阶)以上。陷波器是带阻滤波器的一种,只不过它的阻带范围比较窄。它的作用是阻止某一频率f0的信号,从滤波器输入到达输出端,或者说对f0信号进行大幅度衰减,使输出信号中几乎没有f0信号分量,f0频率以外的信号能顺利到达输出端。陷波滤波器(Notch Filter)是一种用于滤除特定频率信号的滤波器。它的作用是抑制输入信号中的特定频率分量,而保留其他频率分量。陷波滤波器通常用于消除干扰信号、去除特定频率的噪声,或者从混合信号中分离出特定频率的信号。

       陷波滤波器的原理是,在特定频率附近创建一个带阻止区域,该区域内的信号会被显著地削弱。陷波滤波器可以设计为带通滤波器的变种,通过在带通滤波器的频率响应中引入一个或多个带阻止区域来实现。陷波滤波器可以分为两类:无源陷波滤波器和有源陷波滤波器。

       无源陷波滤波器通常基于LC谐振电路或者LC滤波器的变种。它的频率响应在特定频率附近形成一个深的谷,导致特定频率附近的信号被衰减。无源陷波滤波器适用于较低频率范围的应用。有源陷波滤波器则结合了无源滤波器和放大器。有源陷波滤波器在谐振频率附近的频率响应形成一个深谷,但是由于放大器的引入,它可以在设计的范围内提供更好的性能。

陷波滤波器的设计需要考虑以下几个关键因素:

  1. 中心频率: 陷波滤波器的中心频率是希望抑制的频率。设计时需要选择一个合适的中心频率。
  2. 带宽: 带宽确定了在中心频率附近抑制信号的程度。带宽越窄,抑制效果越明显。
  3. 深度: 深度指的是陷波滤波器在中心频率处的衰减程度。深度越大,抑制效果越好。
  4. 陷波滤波器类型: 根据应用的需要,选择适合的无源或有源陷波滤波器类型。

      陷波滤波器在信号处理、通信、音频等领域都有广泛的应用。它可以用于消除电源线噪声、抑制干扰信号、音频信号的去噪等。设计陷波滤波器需要考虑特定应用的频率要求和性能需求。陷波器是无限冲击响应(IIR)数字滤波器,该滤波器可以用以下常系数线性差分方程表示:

陷波滤波去除莫尔 python 陷波滤波器设计_理论基础

        由传递函数的零点和极点可以大致绘出频率响应图。在零点处,频率响应出现极小值;在极点处,频率响应出现极大值。因此可以根据所需频率响应配置零点和极点,然后反向设计带陷数字滤波器。考虑一种特殊情况,若零点在第1象限单位圆上,极点在单位圆内靠近零点的径向上。为了防止滤波器系数出现复数,必须在z平面第4象限对称位置配置相应的共轭零点、共轭极点。 

       这样零点、极点配置的滤波器称为单一频率陷波器,在频率ωo处出现凹陷。而把极点设置在零的的径向上距圆点的距离为l-μ处,陷波器的传递函数为:

陷波滤波去除莫尔 python 陷波滤波器设计_matlab_02

       式(3)中μ越小,极点越靠近单位圆,则频率响应曲线凹陷越深,凹陷的宽度也越窄。当需要消除窄带干扰而不能对其他频率有衰减时,陷波器是一种去除窄带干扰的理想数字滤波器。

      当要对几个频率同时进行带陷滤波时,可以按(2)式把几个单独频率的带陷滤波器(3)式串接在一起。

二、核心程序

...................................................
t=1:256;
t1=1:100;
t2=1:128;
x=sin(2*pi*50*t0/400)+0.5*sin(2*pi*100*t0/400);
x1=x(t);
y=filter(b,a,x1);
subplot(222); plot(x1);
title('Original waveform');
X=fft(x1);
subplot(223); plot(t2*400/256,abs(X(t2)));
xlabel('frequency in Hz'); ylabel('|H|'); axis([0, 200, 0, 150]);
title('Spectrum for original');
set(gca, 'XTickMode', 'manual', 'XTick', [0, 50, 100, 150]); 
set(gca, 'YTickmode', 'manual', 'YTick', [50, 100]); grid
y=filter(b,a,x);
x1=y(t+7600);
X=fft(x1);
subplot(224); plot(t2*400/256,abs(X(t2)));
xlabel('frequency in Hz'); ylabel('|H|'); axis([0, 200, 0, 150]);
title('Spectrum after filter'); 
set(gca, 'XTickMode', 'manual', 'XTick', [0, 50, 100, 150]); 
set(gca, 'YTickmode', 'manual', 'YTick', [50, 100]); grid


figure(2);
subplot(611);plot(x(t1)); axis([1, 100, -1.5, 1.5]); ylabel('input x');
set(gca, 'YTickmode', 'manual', 'YTick', [-1,-0.5,0, 0.5,1]); grid
subplot(612);plot(y); axis([1, 100, -1.5, 1.5]); ylabel('first');
set(gca, 'YTickmode', 'manual', 'YTick', [-1,-0.5,0,0.5,1]); grid
subplot(613);plot(y); axis([401, 500, -1.5, 1.5]); ylabel('second');
set(gca, 'YTickmode', 'manual', 'YTick', [-1,-0.5,0, 0.5,1]); grid
subplot(614);plot(y); axis([1201, 1300, -1.0, 1.0]); ylabel('forth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(615);plot(y); axis([2000, 2100, -1.0, 1.0]); ylabel('sixth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(616);plot(y); axis([3601, 3700, -1.0, 1.0]); ylabel('tenth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid

figure(3);
subplot(611);plot(y); axis([4401, 4500, -1, 1]); ylabel('twelfth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(612);plot(y); axis([5201, 5300, -1.0, 1.0]); ylabel('fourteenth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(613);plot(y); axis([6001, 6100, -1.0, 1.0]); ylabel('sixteenth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5,0, 0.5]); grid
subplot(212);plot(y); axis([7601, 7650, -1.0, 1.0]); ylabel('twentieth');
set(gca, 'YTickmode', 'manual', 'YTick', [-0.5, 0, 0.5]); grid
UP148

三、仿真结论

陷波滤波去除莫尔 python 陷波滤波器设计_陷波滤波器_03

 

陷波滤波去除莫尔 python 陷波滤波器设计_干扰信号_04

 

陷波滤波去除莫尔 python 陷波滤波器设计_陷波滤波器_05