【问题标题】:Bin wise phase difference using FFT - 2pi shifts even after using phase unwrapping使用 FFT 的 Bin wise 相位差 - 即使在使用相位展开后也有 2pi 偏移
【发布时间】:2014-04-10 04:04:02
【问题描述】:

我在 StackOverflow 上查看过类似的问题,但似乎没有一个专门解决这个问题。

我试图找到两个信号之间的二进制相位差。为了验证此结果是否可用,我在两个信号之间引入了单个样本延迟。

类似这样的:

    ch1 = randn(frame_length * 100, 1);
    ch2 = [0 ; ch1(1:end-1) ];

之后,我对信号进行窗口化,进行 FFT 并绘制相位差。像这样:

    phase_1 = unwrap(arg(bin_wise_struct.fft_out_ch1));
    phase_2 = unwrap(arg(bin_wise_struct.fft_out_ch2));
    phase_diff = (phase_1 - phase_2);

但是我注意到最终的相位差有 2*pi 的随机跳跃。我想知道为什么会发生这种情况,尽管展开了原始信号的相位。

【问题讨论】:

    标签: fft phase


    【解决方案1】:

    如果您不将 FFT 相位参考以孔径中心(通过使用 fftshift)而不是前/后沿为中心,则任何信号不连续的相位(在 FFT 孔径的开始和结束之间) ) 在 FFT 结果箱之间交替。

    展开可能会翻转符号并添加 2pi。

    相位符号交替出现是因为 FFT 试图测量 Sinc 函数的相位,该函数表示任何非周期孔径数据上的矩形窗口。 fftshift “扭曲”复杂的 Sinc 函数,因此它的相位不再交替。

    尝试使用 fftshift(fft 前数据旋转或 fft 后交替符号翻转)进行相位比较,看看是否会产生更可靠的相位偏移结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 2023-03-06
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多