我正在嘗試使用MathNet濾波器將帶通濾波器應用於信號;準確地說,我使用的是MathNet.Filtering.OnlineFiter.CreateBandpass(..)
方法。MathNet.Filtering帶通參數
問題是,我沒有得到預期的結果,我對該方法的參數感到困惑。我有一個以1KHz採樣的信號,我想除去4至6Hz範圍以外的所有信號。什麼是調用方法CreateBandpass(..)
的正確方法?
編輯
這是代碼的要求,在註釋:
OnlineFilter bandPass = CreateBandpass(ImpulseResponse.Finite, samplingRate, 3, 7);
postProcessedData = bandPass.ProcessSamples(preProcessedData);
源是在完全相同5赫茲一些相對高的頻率的噪聲的正弦波(如30 -70赫茲);信號的幅度大約爲20峯 - 峯值,集中在0(所以-10到+10)。經濾波的信號是2.1
P.S.在5赫茲,無噪音和振幅,峯 - 峯正弦波,
順便說一句,測試波也會出現這種情況。如果生成一個純正弦波(無論頻率如何)並在其頻率附近對其進行濾波,則可獲得相同頻率和完全不相關振幅的正弦波。另一方面,如果我FFT(仍然使用MathNet)wave並刪除我不感興趣的組件,那麼我可以在預期的振幅下重建波形,並且完全從噪聲中清除乾淨。
我得到相當不錯的結果。什麼對你不好?發佈您的代碼。 – jsanalytics