DFTのコンテキストでは、ナイキスト周波数サンプルは両面周波数スペクトル(正/負)のどこに属しますか?

Jan 10 2021

データポイントが偶数の場合 $N$、MATLABでのDFTの後、出力の順序は次のとおりです。

$$(\text{DC}, f_1, f_2, \ldots, f_{N/2-1}, f_\text{Nyq}, -f_{N/2-1}, -f_{N/2-2}, \ldots, -f_1)$$

実際の信号の場合、に対応する最初の出力 $k$= 0は実数であり、ナイキスト周波数も実数です。その後の数は複素共役です。

片面スペクトルに関心がある場合は、ナイキスト周波数が正の側に表示されます。

ただし、両面周波数スペクトルをプロットすると、多くの著者がナイキスト周波数を負の側に置きます。

OriginProのようないくつかのソフトウェアは、その逆に従います。基本的に正しい方法はありますか、それとも単なる慣例ですか、つまり、

$$ \text { If } N \text { is even, } \quad k\quad\text { takes: }-\frac{N}{2}, \ldots,-1,0,1, \ldots, \frac{N}{2}-1 $$

または、 $$ \text { If } N \text { is even, } \quad k \text { takes: } -\frac{N}{2}-1, \ldots,-1,0,1, \ldots, \frac{N}{2}$$

どこ $k$ はDFTインデックスベクトルであり、周波数軸を次のように構築するために使用されます。

$$\text {Frequency axis}=k/ N\Delta t$$

どこ $\Delta t$ はサンプリング間隔です。

多くの人がそれは単なる慣習であり、どちらも正しいと言います。ありがとう。

回答

3 OverLordGoldDragon Jan 10 2021 at 16:26

これは慣例であり、同等です。

$$ \exp{\left(j2 \pi \frac{N}{2}n/N \right)} = \exp{\left(j2\pi \frac{-N}{2}n/N\right)} \\ \Rightarrow e^{j\pi n} = e^{-j \pi n} \Rightarrow \cos(\pi n) = \cos(-\pi n)=(-1)^n,\ j\sin(\pi n) = j\sin(-\pi n) = 0 $$

MATLABとNumpyが行く $[-N/2, ..., N/2-1]$、これは分析表現には不幸です(+周波数のみ)。また、その値は他のビンに比べて2倍になっていることに注意してください(手動ではありません。このように相関します)。したがって、ある意味では負と正の両方の周波数であるため、エネルギーが節約されます。

あなたはfftshift ドキュメントによってライブラリの好みを知ることができます:

robertbristow-johnson Jan 10 2021 at 12:04

仮定 $x[n]$ 本物であり、結果として $X[k]$「エルミート対称」

$$ X[N-k] = (X[k])^* $$

で、もし $N$ が偶数の場合、DFTビンの値 $X[\tfrac{N}{2}]$(これは虚数部がゼロの実数です)を2つの等しい半分に分割する必要があります。半分はに配置する必要があります$k=-\tfrac{N}{2}$ 残りの半分は $k=+\tfrac{N}{2}$

この前の答えはこれを扱っています。