fftshift / ifftshift

时间:2013-02-26 22:01:39

标签: matlab fft frequency ifft

请参阅fftshiftifftshift的说明。 我想了解如何在Matlab中调用与fftfftn相关的上述两个函数。

假设我的信号有一定的频率内容;现在,频率数组通常可以存储为:

f = (-N/2:N/2-1)*df;

f = (1:N)*(df/2);

f = [(0:N/2-1) (-N/2:-1)];

对于早期提到的3个案例,调用fft,加上fftshiftifftshift的最佳方法是什么?

调用命令序列或错误命令的信号标准偏差有什么影响?

2 个答案:

答案 0 :(得分:7)

fft的结果是(在您的注释中)索引(0:N-1)fftshift只需将其转换为[(N/2:N-1) (0:(N/2-1))] * ifftshift只需恢复原始索引。

由于这只是对样品进行重新排序,因此它对标准偏差没有任何作用。

<小时/> *请注意,由于周期性,样本k相当于样本k+Nk-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的额外函数......