什麼是「濾波器」?從概念到實務的完整介紹

2025/12/09 Signal Processing

前言

在訊號處理(Signal Processing)中,「濾波器」(Filter)扮演著極為重要的角色。 簡單來說,濾波器的功能是:

保留你想要的頻率成分、濾除你不想要的頻率成分。

要理解濾波器,我們可以從它的種類開始切入。

一、濾波器的四種類型

濾波器有四種典型形式,是所有濾波器的基礎:

1. 低通濾波器(Low-Pass Filter, LPF)

  • 功能: 保留低於某個截止頻率 f_H 的訊號;濾除高頻成分。

  • 會保留:慢變化、平滑訊號

  • 會濾掉:高速抖動、雜訊

常見用途:

  • 消除高頻噪聲
  • 電子電路中的整流與平滑

2. 高通濾波器(High-Pass Filter, HPF)

  • 功能: 保留高於某個截止頻率 f_L 的訊號;濾除低頻成分。

  • 會保留:快速變化的成分

  • 會濾掉:DC(直流偏移)、基座晃動、趨勢漂移

在振動分析(如 ISO 20816)中,HPF 特別重要: 低於 10 Hz(或 2 Hz)的訊號通常不代表設備異常,而是環境干擾。

3. 帶通濾波器(Band-Pass Filter, BPF)

  • 功能: 只保留 f_L ~ f_H 之間的頻率,其他全部切除。

也就是說:

被濾掉 原因
f < f_L 太低頻,不重要或會造成 RMS 偏移
f > f_H 高頻雜訊,不屬於分析範圍

這也是 ISO 20816(馬達震動評估)使用的濾波器

  • 轉速 ≥ 600 rpm → 10~1000 Hz
  • 轉速 < 600 rpm → 2~1000 Hz

4. 帶阻濾波器(Band-Stop Filter, BSF)

  • 功能: 剛好與 Band-pass 相反:移除某段頻率區間,保留其餘部分。

常見於: 去除「60 Hz 電力雜訊」(notch filter)。

二、理想與實際濾波器的差異

理論上的濾波器是「垂直切割」——完全保留通帶、完全消除阻帶。 但實務上做不到像漫畫一樣的直角切邊,因此會出現:

  • 通帶與阻帶之間的過渡區(transition band)
  • 截止頻率(cut-off frequency)需要定義
  • 越陡的濾波器 → 階數 N 越高

濾波器的「階數 N」越高:

  • 越接近理想直角濾波器(切得更乾淨)
  • 過渡區變得更窄
  • 但也可能造成「振鈴」(ringing)與數值不穩定

因此階數 N 的選擇是很重要的。

三、類比濾波器 vs 數位濾波器

濾波的方式可以分為兩種:

1. 類比濾波器(Analog Filter)

  • 在訊號還是「類比信號」時就先濾掉雜訊
  • 透過硬體(電路或感測器前端)進行濾波

優點:

  • 先減少雜訊,避免 ADC 飽和
  • 振動儀、DAQ 常內建

2. 數位濾波器(Digital Filter)

  • 訊號經過 DAQ 變成數位後
  • 透過程式進行濾波 → 又稱「軟體濾波」

優點:

  • 彈性高
  • 精確可控(如 Butterworth、Chebyshev…)
  • 可搭配演算法(FFT、RMS、統計等)

在 ISO 20816 專案中,使用的就是 數位濾波器

四、綜合整理:濾波器是什麼?

濾波器是一種:

能保留或消除指定頻率範圍的裝置(或演算法)。

具備以下特性:

  • 有四大類型:LPF、HPF、BPF、BSF
  • 有理想 vs 實際濾波效果
  • 有截止頻率(cut-off)與過渡區
  • 可用硬體(類比)或軟體(數位)實現
  • 階數 N 決定濾波器的陡峭程度與性能

五、深入理解「Band-pass Filter」

在 ISO 20816 中,我們想分析馬達或設備的「健康頻率」, 而不希望以下成分汙染 RMS:

  • DC(0 Hz)
  • 1~5 Hz 的基座晃動
  • 高於 1000 Hz 的雜訊

所以標準要求:

轉速 Band-pass 頻率
≥ 600 rpm 10~1000 Hz
< 600 rpm 2~1000 Hz

這就是典型的 Band-pass Filter(帶通濾波器)

六、濾波器的階數 N 為什麼重要?

階數 N 影響濾波器的「斜率」:

  • N 越低 → 切得慢、過渡區寬、低頻殘留更多
  • N=4(工業標準) → 切得乾淨又不會振鈴
  • N 太高(像 8) → 雖然很陡,但可能不穩定、邊界震盪(ringing)

在振動診斷領域(包含 ISO 20816), N=4 被視為最平衡、最可靠的選擇

七、使用 Python 實際比較 N=1, 2, 4, 8 的 Band-pass 濾波器

以下是一段可直接放進 Notebook 的完整示範,用來比較階數差異:

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, sosfreqz

# === 基本設定 ===
fs = 8000.0
nyq = fs / 2

f_low = 10.0     # ISO 20816 常見低頻 cutoff
f_high = 1000.0  # ISO 20816 高頻 cutoff

orders = [1, 2, 4, 8]  # 要比較的階數

plt.figure(figsize=(12, 6))

for N in orders:
    sos = butter(
        N=N,
        Wn=[f_low / nyq, f_high / nyq],
        btype="band",
        output="sos"
    )
    
    w, h = sosfreqz(sos, worN=2000, fs=fs)
    
    plt.semilogx(w, 20*np.log10(np.abs(h)), label=f"N = {N}")

# cutoff 標示
plt.axvline(f_low, color='green', linestyle='--', alpha=0.7)
plt.axvline(f_high, color='red', linestyle='--', alpha=0.7)

plt.title("不同階數 N 的 Band-Pass Filter 頻率響應比較")
plt.xlabel("Frequency (Hz, log scale)")
plt.ylabel("Gain (dB)")
plt.legend()
plt.grid(True, which='both')
plt.ylim(-80, 5)
plt.show()

階數越高,轉折越陡、低頻漂移與高頻雜訊被壓得越乾淨;N=1 與 N=2 太鬆,N=4 剛好符合 ISO 20816 的實務需求,而到 N=8 雖然看起來超利落但容易帶來振鈴與穩定度問題,反而不實用。

階數 N 濾波器行為 適用情境
N=1 過渡區寬、切得不乾淨 非正式教學用、示範用
N=2 還行但不夠乾淨 一般 MCU、低運算環境
N=4(最推薦) 切得乾淨、穩定、不振鈴 → 工業標準 ISO 20816、振動診斷、工程用
N=8 極陡但容易振鈴 特殊用途,不建議用於 RMS 計算

最後整理

濾波器是用來:

  • 保留/移除指定頻率
  • 確保後續計算有意義

而 Band-pass Filter 是 ISO 20816 的核心濾波器,用來:

  • 移除 DC、低頻漂移
  • 移除高頻雜訊
  • 保留設備健康資訊(10~1000 Hz)

階數 N 決定:

  • 濾波器切頻的銳利程度
  • 影響 RMS 的精準度
  • 也影響數值穩定度

對震動診斷來說,N=4 是最佳實務

鼓勵持續創作,支持化讚為賞!透過下方的 Like 拍手👏,讓創作者獲得額外收入~
版主10在2020年首次開設YouTube頻道,嘗試拍攝程式教學。想要了解更多的朋友歡迎關注我的頻道,您的訂閱就是最大的支持~如果想學其他什麼內容也歡迎許願XD
https://www.youtube.com/channel/UCSNPCGvMYEV-yIXAVt3FA5A

Search

    Table of Contents