2012-02-01 139 views
2

什麼是簡單的方法來查看我的低通濾波器是否正常工作?我正在設計一個低通濾波器,並希望以相對直接的方式對其進行測試。測試低通濾波器

目前我打開一個WAV文件,並將所有樣本粘貼在一個整數列中。然後我通過低通濾波器運行數組來創建一個新的數組。什麼是簡單的方法來檢查低通濾波器是否工作?

所有這一切都在C.

完成
+1

從結果中呈現WAV文件並與任何播放器一起播放。實際上,也許你甚至可以通過簡單地將數據寫入RAW文件來渲染WAV,然後用播放器播放它,以便手動提供樣本寬度,通道數和採樣率等詳細信息。 – Till 2012-02-01 16:42:11

回答

2

創建兩個單調信號,低頻率的一個和高頻中的一個。然後運行你的過濾器。如果有效,那麼低頻信號應該是未修改的,而高頻信號將被濾除。

9

可以使用一個寬帶信號,例如白噪聲,以測量頻率響應:

  • 產生白噪聲輸入信號通過濾波器
  • 通白噪聲信號
  • 採取FFT輸出的來自濾波器
  • FFT的
  • 計算日誌大小
  • 積數幅度

您可以將過濾器的輸出轉儲到文本文件,然後在例如MATLAB或Octave(提示:使用periodogram)。

+0

這將是我的選擇。不僅要檢查它是否正常工作,還要檢查它的特性。 – japreiss 2012-02-01 17:49:47

+1

您可能還想要FFT輸入信號,以查看您的白噪聲是否真的是白色的,和/或是否補償。 – hotpaw2 2012-02-01 18:16:50

+1

@ hotpaw2:是的,你可以計算交叉功率譜,這可能比輸出的功率譜更平滑。 – 2012-02-01 19:44:41

4

取決於你想測試什麼。我不是DSP專家,但我知道可以對您的過濾器進行不同的測量(如果這是您的測試意思)。

如果濾波器是線性的,那麼濾波器的所有信息都可以在脈衝響應中找到。在此處閱讀:http://en.wikipedia.org/wiki/Linear_filter

E.g.如果你對脈衝響應進行傅里葉變換,你會得到頻率響應。頻率響應很容易告訴你,低通濾波器是否值得它的名字。

也許我低估了你對DSP的知識,但我建議你閱讀本書的網站:http://www.dspguide.com。這是一本非常難讀的書,沒有難度的數學。它可以作爲一本真正的書,但你也可以免費在線閱讀。

編輯:在閱讀它之後,我確信每個接觸ADC的程序員都應該先閱讀本書。我發現在過去的項目中我做了很多困難的事情,當我對DSP有更多的瞭解時,我可以做得更好一千倍。大多數時候,沒有經驗的程序員在不知情的情況下在做DSP。

0

您應該能夠以編程方式生成各種頻率的音調(正弦波),將它們填充到輸入數組中,然後通過求和數組的平方值來比較信號能量(除以長度,儘管這是在數學上不需要,因爲信號應該是相同的長度)。輸出能量與輸入能量的比率爲您提供濾波器增益。如果您的LPF工作正常,對於低頻率,增益應接近1,在帶寬頻率下接近0.5,高頻率接近於零。

注意:「帶寬」和「增益」的定義有很多(但本質上相同)。我建議的方法應該對濾波器的瞬態響應相對不敏感,因爲它本質上是對信號的強度進行平均,儘管可以通過忽略輸入的前T個採樣來改善它,其中T與濾波器帶寬有關。無論哪種方式,確保信號比濾波器帶寬的倒數長。

0

當我檢查數字濾波器時,我計算濾波器的幅度響應圖並繪製它。然後,我用代碼或使用Audacity生成線性掃描正弦波,並將掃描的正弦波通過濾波器(考慮到事情可能會變得更響,所以正弦波足夠安靜而不會被剪輯)。視覺檢查通常足以斷言過濾器正在做我認爲應該做的事情。如果你不知道如何計算幅度響應,我懷疑有些工具可以爲你計算。

根據你想要的確定程度,你甚至不必這樣做。您可以處理線性掃描,並看到它衰減了較高的頻率。