陷波滤波器

更新时间:2022-08-25 18:18

陷波滤波器指的是一种可以在某一个频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果的滤波器。陷波滤波器属于带阻滤波器的一种,只是它的阻带非常狭窄,起阶数必须是二阶(含二阶)以上。

定义

带阻滤波器的阻带很窄时, 被称为陷波滤波器 , 又称点阻滤波器。一个理想点阻滤波器的频率响应是要在消除的信号频率点, 其值等于零;而在其他频率处, 其值不为零, 且要等于1。

理想的陷波滤波器的频率响应式为

理想的陷波滤波器的幅频特性如图1所示。

简单的(二阶)陷波滤波器是RLC串联电路,这个电路滤除的频率可以通过这个公式计算:。

设计方法

陷波滤波器的设计是以模拟滤波器为原型, 通过一定变换转换为数字滤波器。陷波滤波器的设计方法有2 种:

(1)依托模拟低通为设计原型, 利用模拟频率带阻变换法, 再利用双线性变换法将前面所设计的带阻滤波器数字化;

(2)在频域进行直接设计的z 平面零极点法。

应用

比如, 在20Hz 正弦波中人为加入了50Hz 的干扰, 通过陷波滤波器, 滤波后得到的波形基本上滤去了干扰, 如图3 的滤波器效果对照图所示。在医学上心电图使用的频率较高, 假设心电波形受到60Hz 严重干扰, 可经25Hz 低通滤波和50Hz 陷波滤波器滤波后得到的清晰的波形。

如图2的滤波器效果对照图所示。

matlab实现

下面给出理想陷波滤波器的MATLAB代码实现:

% Matlab code for plotting the frequency response of digital notch filter

% Implemented as all pass filter section

clear; close all

fs = 1e6;

fn = 200e3;

fb = 50e3;

omega0T =fn/(fs/2)*pi;

deltaT = fb/(fs/2)*pi;

a2 = (1-tan(deltaT/2))./(1+tan(deltaT/2));

a1 = (1+a2).*cos(omega0T);

B = [1 -a1 a2];

A = [a2 -a1 1];

[H1 W1] = freqz(B,A,1024,'whole');

[H2 W2] = freqz(1,1,1024,'whole');

H3 = (H1+H2)/2;

h = figure(1);

subplot(2,1,1);

plot([-512:511]/1024*fs/1e6,20*log10(fftshift(abs(H3))),'b-','LineWidth',4);

grid on; ylabel('amplitude, dB');

title('notch filter, fs=1MHz, fn=200kHz, fb=50kHz');

axis([-0.5 0.5 -50 10]);

subplot(2,1,2);

plot([-512:511]/1024*fs/1e6,(fftshift(angle(H3)*180/pi)),'m-','LineWidth',4);

grid on; xlabel('freq, MHz'); ylabel('angle, deg');

title('phase response');

axis([-0.5 0.5 -180 180]);

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}