2025年11月17日 星期一

什麼是Sample Rate?我應該怎麼挑?

什麼是 Sample Rate?

Sample Rate(取樣率),說穿了就是你每秒鐘「抓」幾次訊號的快照。單位是 Hz 或 S/s(Samples per second)。

我喜歡用這個比喻:你知道那種老式的翻頁動畫書嗎?每一頁畫一個動作,快速翻過去就變成動畫了。如果你每秒只畫 2 張圖,你看到的會是一格一格的跳動;但如果你每秒畫 30 張,動作就會流暢起來。

Sample Rate 就是這個「每秒畫幾張圖」的概念。差別在於,在 LabVIEW 的世界裡,如果你「畫」得不夠快,你不只是看到跳動的畫面——你可能會看到完全錯誤的訊號。 更重要的是:「畫」太快也不是好事。就像你用 120fps 拍一隻蝸牛爬行,除了浪費儲存空間,你也得不到更多有用的資訊。

https://ysolife.com/recording-sampling-rate/


Nyquist 定理:那個不能違背的鐵則

好,來講點理論。別擔心,我會講人話。 有個叫 Nyquist 的傢伙(其實是兩個人,但這不重要)發現了一個定理:

你的取樣率必須至少是訊號最高頻率的兩倍,不然你會看到鬼。

用公式寫就是: fs ≥ 2 × fmax 這個「兩倍」超級重要。如果你沒做到,就會發生一個叫 Aliasing(混疊) 的現象。什麼是 Aliasing?簡單說,就是高頻的訊號會「假裝」成低頻訊號,騙過你的眼睛和儀器。 就像你用手機拍攝風扇或車輪,有時候你會看到它們好像在倒轉! 這就是為什麼 Nyquist 定理這麼重要——它是測量系統的底線。

取樣率不是越高越好!

這裡要特別強調一個常見的誤解:取樣率絕對不是越高越好。 很多人(包括以前的我)會覺得:既然有 aliasing 的風險,那我就設定超級高的取樣率,總沒錯吧? 錯!而且大錯特錯。

為什麼過高的取樣率是問題?

1. 資料量爆炸

假設你用 100 kHz 取樣 8 個通道,每個 sample 是 2 bytes(16-bit),那每秒產生的資料量是:

100000 × 8 × 2 = 1.6 MB/s

一小時就是 5.76 GB。如果是長時間監測?你的硬碟受得了嗎?

2. 處理負擔

高取樣率意味著 CPU 和記憶體要處理更多資料。在 LabVIEW 裡,如果你的處理速度跟不上取樣速度,就會發生 buffer overflow——資料來不及處理,緩衝區滿了,系統就當機了。

3. 雜訊頻寬變寬

這是最容易被忽略的問題。 取樣率越高,你接收到的頻寬就越寬,意思是:你會把更多高頻雜訊也取樣進來。如果你的訊號本身只在低頻,但你用了超高的取樣率,反而會讓訊號雜訊比(SNR)變差。 就像你要聽人講話,結果把麥克風的靈敏度開到最大,連旁邊的冷氣聲、電腦風扇聲都錄進來了。

4. 浪費硬體資源

高階的 DAQ 卡通常很貴,而且高取樣率會吃掉更多功耗、產生更多熱。如果你不需要那麼高的取樣率,這些都是不必要的成本。

「夠用就好」才是工程師的智慧

在 LabVIEW 的世界裡,我們要追求的不是「最高規格」,而是「最適合的規格」。

  • 量溫度?1-10 Hz 通常就夠了
  • 量音訊?44.1 kHz 是業界標準
  • 量振動?看頻率範圍,可能 5-10 kHz
  • 量高速電子訊號?那可能需要 MS/s

關鍵是:了解你的訊號特性,選擇剛好符合需求的取樣率

實務上怎麼選 Sample Rate?

好,理論講完了,來點實際的操作指南。

第一步:搞清楚你的訊號

這是最重要、也最容易被忽略的一步。 你要問自己:

  • 我要量的東西,變化有多快?
  • 最高頻率大概在哪?
  • 有沒有可能有高頻雜訊?

如果你不知道(通常一開始都不知道),沒關係,先用稍高一點的取樣率做探索性測量。在 LabVIEW 裡面拉個 FFT VI,看看頻譜長什麼樣子。

第二步:計算理論最小值,加上安全係數

根據 Nyquist 定理,計算 fs_min = 2 × fmax

但實務上,我們會加上安全係數:

  • 保守的案子: 2.5-5 倍
  • 一般案子: 5-10 倍
  • 需要精確重建波形: 10 倍以上

為什麼不直接用 2 倍?因為:

  • 真實世界的訊號不會只有單一頻率
  • 濾波器不是理想的,需要過渡帶
  • 留一點餘裕總是比較安全

但記住:這不代表越高越好! 找到「剛好夠用」的平衡點才是重點。

第三步:檢查硬體限制

你在 LabVIEW 裡面設定數字很容易,但硬體做不做得到? 要確認:

  • DAQ 卡的最大取樣率:別超過規格
  • 多通道分配:Multiplexed 取樣的話,總取樣率會被通道數瓜分
  • 記憶體容量:能撐多久?
  • 硬碟寫入速度:長時間記錄會不會當機?

第四步:在 LabVIEW 裡配置和測試

DAQmx Timing VI 裡:

- Rate: 你計算出來的取樣率
- Samples per Channel: 決定 buffer 大小,太小會 overflow
- Sample Mode: Continuous 或 Finite?

第五步:Anti-Aliasing Filter

如果你的訊號裡可能有超過 Nyquist 頻率的成分(通常都會有),你需要在 DAQ 前面加一個 低通濾波器。 有些 NI 的 DAQ 卡有內建 anti-aliasing filter(例如某些 X Series),但不是全部都有。要確認:

  • 有沒有內建濾波器?
  • 截止頻率在哪?
  • 適不適合你的應用?

常見的坑

坑一:忽略整個系統的頻寬

你在 LabVIEW 設定 1 MS/s,不代表你真的能量到 500 kHz 的訊號。 整個測量鏈的頻寬取決於最慢的那個環節:

  • 感測器的頻率響應
  • 訊號調理電路
  • DAQ 卡的類比頻寬
  • 甚至連接線都可能有影響

坑二:多通道的誤解

這個超級重要! 如果你的 DAQ 卡是 Multiplexed Sampling(大部分入門卡都是),1 MS/s 除以 8 個通道,每個通道實際上只有 125 kS/s。 如果你需要真正的同步高速取樣,要買 Simultaneous Sampling 的 DAQ 卡(通常貴很多)。

坑三:為了「保險」而過度取樣

這是最常見的錯誤。 「反正取樣率高一點比較保險吧?」——不,這會帶來前面提到的所有問題:資料量、處理負擔、雜訊。 工程師的智慧是「剛剛好」,不是「越多越好」

結語:Sample Rate 是工程判斷,不是參數填空

我總是跟我學生說,在 LabVIEW 的世界裡,寫程式是最簡單的部分。DAQmx 怎麼用?查說明書。程式架構怎麼搭?照範例改。這些都有標準答案。但 Sample Rate 不一樣。 它看起來只是一個數字,但背後需要的是:

  • 對訊號處理理論的理解
  • 對硬體限制的掌握
  • 對系統效能的權衡
  • 對應用需求的判斷

太低,你會看到錯誤的訊號;太高,你的系統會垮掉。找到那個「剛剛好」的點,才是真正的挑戰。

所以下次當你在 LabVIEW 的 DAQmx Timing VI 填入那個數字的時候,記得:這不只是一個參數,這是你對整個測量系統的理解。

Share:

0 意見:

張貼留言