什麼是簡單的方法來查看我的低通濾波器是否正常工作?我正在設計一個低通濾波器,並希望以相對直接的方式對其進行測試。測試低通濾波器
目前我打開一個WAV
文件,並將所有樣本粘貼在一個整數列中。然後我通過低通濾波器運行數組來創建一個新的數組。什麼是簡單的方法來檢查低通濾波器是否工作?
所有這一切都在C.
完成什麼是簡單的方法來查看我的低通濾波器是否正常工作?我正在設計一個低通濾波器,並希望以相對直接的方式對其進行測試。測試低通濾波器
目前我打開一個WAV
文件,並將所有樣本粘貼在一個整數列中。然後我通過低通濾波器運行數組來創建一個新的數組。什麼是簡單的方法來檢查低通濾波器是否工作?
所有這一切都在C.
完成創建兩個單調信號,低頻率的一個和高頻中的一個。然後運行你的過濾器。如果有效,那麼低頻信號應該是未修改的,而高頻信號將被濾除。
可以使用一個寬帶信號,例如白噪聲,以測量頻率響應:
您可以將過濾器的輸出轉儲到文本文件,然後在例如MATLAB或Octave(提示:使用periodogram)。
取決於你想測試什麼。我不是DSP專家,但我知道可以對您的過濾器進行不同的測量(如果這是您的測試意思)。
如果濾波器是線性的,那麼濾波器的所有信息都可以在脈衝響應中找到。在此處閱讀:http://en.wikipedia.org/wiki/Linear_filter
E.g.如果你對脈衝響應進行傅里葉變換,你會得到頻率響應。頻率響應很容易告訴你,低通濾波器是否值得它的名字。
也許我低估了你對DSP的知識,但我建議你閱讀本書的網站:http://www.dspguide.com。這是一本非常難讀的書,沒有難度的數學。它可以作爲一本真正的書,但你也可以免費在線閱讀。
編輯:在閱讀它之後,我確信每個接觸ADC的程序員都應該先閱讀本書。我發現在過去的項目中我做了很多困難的事情,當我對DSP有更多的瞭解時,我可以做得更好一千倍。大多數時候,沒有經驗的程序員在不知情的情況下在做DSP。
您應該能夠以編程方式生成各種頻率的音調(正弦波),將它們填充到輸入數組中,然後通過求和數組的平方值來比較信號能量(除以長度,儘管這是在數學上不需要,因爲信號應該是相同的長度)。輸出能量與輸入能量的比率爲您提供濾波器增益。如果您的LPF工作正常,對於低頻率,增益應接近1,在帶寬頻率下接近0.5,高頻率接近於零。
注意:「帶寬」和「增益」的定義有很多(但本質上相同)。我建議的方法應該對濾波器的瞬態響應相對不敏感,因爲它本質上是對信號的強度進行平均,儘管可以通過忽略輸入的前T個採樣來改善它,其中T與濾波器帶寬有關。無論哪種方式,確保信號比濾波器帶寬的倒數長。
當我檢查數字濾波器時,我計算濾波器的幅度響應圖並繪製它。然後,我用代碼或使用Audacity生成線性掃描正弦波,並將掃描的正弦波通過濾波器(考慮到事情可能會變得更響,所以正弦波足夠安靜而不會被剪輯)。視覺檢查通常足以斷言過濾器正在做我認爲應該做的事情。如果你不知道如何計算幅度響應,我懷疑有些工具可以爲你計算。
根據你想要的確定程度,你甚至不必這樣做。您可以處理線性掃描,並看到它衰減了較高的頻率。
從結果中呈現WAV文件並與任何播放器一起播放。實際上,也許你甚至可以通過簡單地將數據寫入RAW文件來渲染WAV,然後用播放器播放它,以便手動提供樣本寬度,通道數和採樣率等詳細信息。 – Till 2012-02-01 16:42:11