No contexto de DFT, onde a amostra de frequência de Nyquist pertence em um espectro de frequência de dupla face (lado positivo / negativo)?

Jan 10 2021

Se tivermos um número par de pontos de dados $N$, após DFT em MATLAB, a saída tem a ordem:

$$(\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)$$

Para sinais reais, a primeira saída correspondente a $k$= 0, é real e também a frequência de Nyquist. Depois disso, os números são conjugados complexos.

Se estivermos interessados ​​em um espectro de um só lado, a frequência de Nyquist é mostrada no lado positivo.

No entanto, quando um espectro de frequência de dupla face é plotado, muitos autores colocam a frequência de Nyquist no lado negativo.

Alguns softwares como o OriginPro seguem o contrário. Existe uma maneira fundamentalmente correta ou é apenas uma convenção, ou seja,

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

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

Onde $k$ é o vetor de índice DFT, que é usado para construir o eixo de frequência como

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

Onde $\Delta t$ é o intervalo de amostragem.

Muitas pessoas dizem que é apenas uma convenção e ambas estão corretas. Obrigado.

Respostas

3 OverLordGoldDragon Jan 10 2021 at 16:26

É convenção, eles são equivalentes:

$$ \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 e Numpy go $[-N/2, ..., N/2-1]$, o que é lamentável para representações analíticas (+ freqs apenas). Note-se também o seu valor é o dobro em relação a outros bins (mas não manualmente, pois eles se correlacionam desta forma), então em um sentido que é tanto um negativo e frequência positiva, então a energia do preservada:

Você pode identificar a preferência de uma biblioteca por meio de fftshift documentos :

robertbristow-johnson Jan 10 2021 at 12:04

Assumindo $x[n]$ é real, resultando em $X[k]$ser "simétrico hermitiano" ;

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

e se $N$ é par, então o valor no compartimento DFT $X[\tfrac{N}{2}]$(que é uma quantidade real com zero parte imaginária) deve ser dividido em duas metades iguais. Metade deve ser colocada em$k=-\tfrac{N}{2}$ e a outra metade colocada em $k=+\tfrac{N}{2}$.

Esta resposta anterior trata disso.