1

こんにちは、私は周波数分解能を 2 倍または 4 倍にする方法を探していました。この質問を見つけて、次のような質問をしました。

「配列 (2 つのゼロの間の 1 つの値) をゼロで埋めると、周波数解像度が 2 倍になると思います (そして、出力ビンは実際のコードの半分になります)。したがって、ゼロの数を 2 倍にすると、周波数解像度が 4 倍になりますか? "

周波数分解能を上げることができるもう 1 つの方法は、Aforge コードを変更することです。これは、昨日この領域を見つけたときまで知りませんでした。

    private const int       minLength   = 2;
    private const int       maxLength   = 16384;
    private const int       minBits     = 1;
    private const int       maxBits     = 14;
    private static int[][]  reversedBits = new int[maxBits][];
    private static Complex[,][] complexRotation = new Complex[maxBits, 2][];

maxLength と maxBits の値を 2 倍または 4 倍にすると、ビット操作またはその他の動作のために、奇妙な結果またはエラーが発生しませんか?

不適切だと考えたので、コード全体をコピーしませんでしたが、必要な場合はお知らせください。ダウンロードできるWeb サイトは次のとおりです。

では、最も信頼性が高く、かつ/または最も効率的な方法は何ですか?

前もって感謝します。

4

1 に答える 1

0

より長いFFTを使用するためにデータをゼロパディングしても、実際には周波数分解能は向上しません(狭い間隔の周波数ピークを分離する能力のように)。同じ解像度スペクトルから追加のポイントを補間して、より滑らかに見える周波数プロットを可能にし、おそらく関心のある周波数に近いいくつかの補間されたプロット ポイントを提供します。

しかし、ゼロパディングは高品質の補間と同じです。

于 2013-08-02T05:02:58.417 に答える