2017-04-17 11 views
1

私はFFTWを使って簡単な実数データ変換を計算するコードを書いています。私はFFTWのスペクトルと同じデータのFTを比較したいと思います。私のDFTデータの長さは5000です。しかし、私がもっと大きなFFTWサイズ(例えばN=450000)を使用しても、私は希望の周波数分解能を得られません。換言すれば、出力スペクトルにおける各周波数ビン間には大きなギャップが存在する。FFTWの周波数ビンと解像度を制御する方法

これは私1 /(デルタT * N)の周波数ギャップ= 1,154,700.5

を与え、私は大規模な速度を犠牲にしますFFTサイズ(N)を増加させることなく、より小さな周波数を生成することができる任意の方法があります。

答えて

2

1e6の周波数分解能は、wave_frequencyのほんの一部であり、3e9です。つまり、特定の関心周波数(例えば、3e9)を中心に小さな帯域幅内の周波数を分析または処理する場合、1e6はその帯域幅のかなりの部分を占める可能性があります。そのトリックは、目的の周波数帯域を拡大することです。これは、以下の広範なステップで達成することができます。

  • 目的の周波数を中心にバンドパスフィルタを適用します。
  • (例えば、Weaver SSB周波数シフト技術described hereを使用して)フィルタリングされた信号をより低い中心周波数に周波数シフトする。
  • 周波数シフトされた信号をダウンサンプルします(Mサンプルごとに1つ取ります)。これにより、deltatが増加し、同じFFTブロックサイズでより良い分解能(周波数ビン間の周波数差が減少する)が得られます。
関連する問題