可能な「最良の」解決策は、実際にDFTであり、周波数の上位3/4を破棄し、ドメインを下位1/4に制限して逆DFTを実行します。この場合、上位3/4を破棄するのはローパスフィルターです。サンプル数が2の累乗にパディングすると、速度が向上する可能性があります。ただし、FFTパッケージがサンプルを格納する方法に注意してください。複雑なFFT(分析がはるかに簡単で、一般的に特性が優れている)の場合、周波数は-22から22、または0から44のいずれかになります。最初のケースでは、中央の1/4が必要です。後者では、最も外側の1/4です。
サンプル値を平均することで、適切な作業を行うことができます。サンプルを4つずつ取得して同じ加重平均を実行する単純な方法は機能しますが、それほど優れているわけではありません。代わりに、直感的でない方法でそれらを平均化する「カーネル」関数を使用することをお勧めします。
数学的には、低周波数帯域外のすべてを破棄することは、周波数空間でのボックス関数による乗算です。(逆)フーリエ変換は、点ごとの乗算を関数の(逆)フーリエ変換の畳み込みに変換し、その逆も同様です。したがって、時間領域で作業する場合は、ボックス関数の(逆)フーリエ変換を使用して畳み込みを実行する必要があります。これは、「sinc」関数(sin at)/ atに比例することがわかります。ここで、aは周波数空間でのボックスの幅です。したがって、4番目の場所ごとに(4倍にダウンサンプリングしているため)、その近くのポイントを合計し、sin(adt)/ dtを掛けることができます。ここで、dtはその場所までの時間の距離です。どれくらい近くにありますか?まあ、それはあなたがそれをどれだけ良く鳴らしたいかに依存します。それ'
最後に、サンプルの大部分を破棄し、0番目、4番目などを保持する、小便が少ない(ただし高速な)方法があります。
正直なところ、それがメモリに収まる場合は、DFTルートを使用することをお勧めします。他の人があなたのためにフィルターを構築することを推奨しているソフトウェアフィルターパッケージの1つを使用していない場合。