Логополярное преобразование обычно используется в изображении с фазовой корреляцией с использованием преобразования Фурье для оценки вращения и трансляции и т. Д. Однако я немного не понимаю, как применять его в аудиосигнале. Я пытаюсь оценить временной сдвиг между двумя аудиосигналами с помощью логарифмического полярного преобразования (LPT) и фазовой корреляции. Я применил LPT, используя https://en.wikipedia.org/wiki/Log-polar_coordinates в звуковом сигнале и плоттере с использованием Matlab с полярным (theta, rho), пока здесь нет проблем, проблема в том, что я не уверен, как применить фазовую корреляцию для этого преобразованного сигнала. Спасибо.
Как применить фазовую корреляцию в одномерном сигнале?
Ответы (1)
Фазовая корреляция есть не только для 2D. То же самое можно использовать и с одномерными сигналами. В частности, ваши два аудиосигнала уже находятся во временной области, а вы просто хотите знать временной сдвиг между ними.
Попробуйте фазовую корреляцию исходных аудиосигналов без преобразования их в логарифмическое полярное представление.
Вот пример на 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))
Удачи!
person
Youngsun Kim
schedule
24.02.2016
Спасибо. Однако я знаю упомянутый вами метод.
- person pcu; 25.02.2016