MathNetフィルタを使用して信号に帯域通過フィルタを適用しようとしています。正確には、私はMathNet.Filtering.OnlineFiter.CreateBandpass(..)
メソッドを使用しています。MathNet.Filtering Bandpassパラメータ
問題は、私は期待された結果を得ていないと私は方法のパラメータによって混乱している。 1KHzでサンプリングされた信号があり、4〜6Hzの範囲外のものはすべて取り除きたい。メソッドCreateBandpass(..)
を呼び出す正しい方法は何ですか?
編集
コメントで要求されたように、これは、コードである:
OnlineFilter bandPass = CreateBandpass(ImpulseResponse.Finite, samplingRate, 3, 7);
postProcessedData = bandPass.ProcessSamples(preProcessedData);
ソース(30のようないくつかの比較的高い周波数のノイズを正確に5 Hzの正弦波であります-70Hz);信号の振幅は約20ピークピークで、0を中心にしています(-10から+10)。フィルタリングされた信号は、2.1
P.S.のノイズおよび振幅なしで5 Hzの正弦波、ピーク - ピーク、あります
これはテストウェーブでも起こります。純粋な正弦波を生成して(その周波数が何であれ)、それをその周波数の周りにフィルタリングすると、同じ周波数と完全に無関係な振幅の正弦波が得られます。一方、私がFFT(まだMathNetを使用している)で波を除去し、私が興味を持っていないコンポーネントを取り除いたら、予想される振幅で波を再構築し、ノイズから完全にきれいにすることができます。
私はかなりまともな結果を得ることができます。あなたにとってはまったく良くないものは何ですか?あなたのコードを投稿してください。 – jsanalytics