请参阅 和 的fftshift
描述ifftshift
。我想了解如何在 Matlabfft
中调用上述两个函数。fftn
假设我的信号具有一定的频率成分;现在,频率数组通常可以存储为:
f = (-N/2:N/2-1)*df;
f = (1:N)*(df/2);
f = [(0:N/2-1) (-N/2:-1)];
对于前面提到的 3 个研究案例,fft
最好fftshift
的调用方式是什么?ifftshift
调用命令序列或错误命令对信号的标准偏差有什么影响?
的结果fft
是(用你的符号表示) indices (0:N-1)
。 fftshift
只需将其转换为[(N/2:N-1) (0:(N/2-1))]
. * ifftshift
只是恢复原始索引。
由于这只是对样本重新排序,因此对标准偏差没有任何影响。
k
等价于 samplek+N
或k-N
等。
Matlab 文档简直就是在扼杀它。但实验表明
ifftshift([1 2 3 4 5])
答案=
3 4 5 1 2
fftshift([1 2 3 4 5])
答案=
4 5 1 2 3
它只是在神奇的 DFT 位置 [N/2] 周围交换。在 matlab 中实现的 FFT 使用通常的索引 (0:N-1)。据我了解,如果您的设置是不在 (0:N-1) 中的离散函数,则这是准备输入 DFT 的额外功能...