在MATLAB中执行逆FFT的正确方法?

时间:2016-03-09 18:24:16

标签: matlab fft ifft

我已经fftshiftifftshift上的matlabcentral discussion红了,但我完全不明白为我做什么是正确的。对于一个方面更有帮助的是this answer on stackoverflow

我的数组A在第一列中具有(等间距)角频率,在第二列中具有相应的强度。它具有任意长度(可以是奇数或偶数)。它不是从零频率开始,但基本上,我对干涉仪的时移tau感兴趣,这导致频谱调制cos(omega*tau+phi)(其中omega是角频率,{ {1}}一个阶段)。我也对这个阶段很感兴趣。至少在与其他测量相比的相对阶段。

现在,我的问题如下

  1. 我是否必须将值添加到零频率?
    • a)如果是这样,我会从哪里获得它们?我不能简单地插入零。根据我的理解,我可以忽略它(基本上将频率按数据中的最小频率值移动)然后使相位错误。
    • b)如果我执行此移位(即,如果我不在乎),并为多次测量执行此操作,但每次都以相同的量(即所有以相同频率开始),将相对相位信息保持不变?直觉上,我认为是的。
  2. 傅里叶变换实际出现的负频率怎么样?我如何处理我缺少这些事实? phi仅包含实数值的
  3. 如果我希望中间零时间延迟的结果,我应该执行以下哪项操作?
    • 我会根据第一篇帖子的建议选择A
    • fftshift(ifft(ifftshift(A(:,2))))(据我所知,这给了我一个转移的输出)
    • ifft(ifftshift(A(:,2)))(这应该会给我一个错误阶段的移位输出)
    • 甚至还有什么?
  4. 当我使用角频率时,是否需要将时间延迟向量中的值乘以ifft(A(:,2))?我会按以下方式构建它:
    • 2*pi或更简单的(-length(A(:,1)):length(A(:,1))-1)/(2*length(A(:,1))*(A(2,1)-A(1,1)))其中(-L:L-1)/(2*L*D)是我的频率数组的长度,L=length(A(:,1))是频率分辨率
  5. 很抱歉有这么多问题,但我真的很困惑,在这种情况下,matlab文档并没有真正的帮助。

0 个答案:

没有答案