请参阅fftshift
和ifftshift
的说明。
我想了解如何在Matlab中调用与fft
和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
的最佳方法是什么?
调用命令序列或错误命令的信号标准偏差有什么影响?
答案 0 :(得分:7)
fft
的结果是(在您的注释中)索引(0:N-1)
。 fftshift
只需将其转换为[(N/2:N-1) (0:(N/2-1))]
。 * ifftshift
只需恢复原始索引。
由于这只是对样品进行重新排序,因此它对标准偏差没有任何作用。
<小时/> *请注意,由于周期性,样本
k
相当于样本k+N
或k-N
等。
答案 1 :(得分:0)
Matlab文档正在扼杀它。但实验表明
ifftshift([1 2 3 4 5])
ans =
3 4 5 1 2
fftshift([1 2 3 4 5])
ans =
4 5 1 2 3
它只是围绕神奇的DFT位置[N / 2]进行交换。在matlab中实现的FFT使用通常的索引(0:N-1)。据我所知,如果你的设置是dicrete函数而不是(0:N-1),这是准备输入到DFT的额外函数......