如何在1D信号中应用相位相关?

时间:2016-02-23 02:52:01

标签: logging transform fft correlation polar-coordinates

Log polar变换常用于具有相位相关的图像,使用傅里叶变换估算旋转和平移等。    但是,我很少混淆如何将其应用于音频信号。我试图通过对数极坐标变换(LPT)和相位相关来估计两个音频信号之间的时移。 我使用带有极坐标(theta,rho)的matlab在音频信号和绘图仪中使用https://en.wikipedia.org/wiki/Log-polar_coordinates应用LPT,直到这里,没有问题,问题是我不知道如何对这个转换信号应用相位相关。    谢谢。

1 个答案:

答案 0 :(得分:1)

相位相关不仅适用于2D。你可以在1D信号上使用相同的东西。特别是,您的两个音频信号已经在时域上,而您只是想知道它们之间的时移。

尝试对原始音频信号进行相位相关,而不将其转换为对数极坐标表示。

这是Python中的一个例子:

import numpy as np

# sig1, sig2 = your audio signals
# ...
fft_sig1 = np.fft.fft(sig1)
fft_sig2 = np.fft.fft(sig2)
fft_sig2_conj = np.conj(fft_sig2)

R = (fft_sig1 * fft_sig2_conj) / abs(fft_sig1 * fft_sig2_conj)
r = np.fft.ifft(R)

time_shift = np.argmax(r)
print('time shift = %d' % (time_shift))
祝你好运!