定義
當帶阻濾波器的阻帶很窄時, 被稱為陷波濾波器 , 又稱點阻濾波器。一個理想點阻濾波器的頻率回響是要在消除的信號頻率點, 其值等於零;而在其他頻率處, 其值不為零, 且要等於1。
理想的陷波濾波器的頻率回響式為
理想的陷波濾波器的幅頻特性如圖所示。
簡單的(二階)陷波濾波器是RLC串聯電路,這個電路濾除的頻率可以通過這個公式計算:。
設計方法
陷波濾波器的設計是以模擬濾波器為原型, 通過一定變換轉換為數字濾波器。陷波濾波器的設計方法有2 種:
(1)依託模擬低通為設計原型, 利用模擬頻率帶阻變換法, 再利用雙線性變換法將前面所設計的帶阻濾波器數位化;
(2)在頻域進行直接設計的z 平面零極點法。
套用
比如, 在20Hz 正弦波中人為加入了50Hz 的干擾, 通過陷波濾波器, 濾波後得到的波形基本上濾去了干擾, 如圖3 的濾波器效果對照圖所示。在醫學上心電圖使用的頻率較高, 假設心電波形受到60Hz 嚴重干擾, 可經25Hz 低通濾波和50Hz 陷波濾波器濾波後得到的清晰的波形。
如圖的濾波器效果對照圖所示。
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]);