Как из спектра получить сигнал на Python
Имеется частотный спектр звука, состоящий из абсолютных положительных значений, например,
a = np.array([0.9, 0.4, 0.7, 0.2])
Так как в данном случае обратным преобразованием Фурье нельзя получить оригинальный сигнал (не зная фазы), хотел узнать существуют ли готовые решения с применением машинного обучения, которые смогут восстанавливать сигнал из спектра?
Ответы (1 шт):
нельзя получить оригинальный сигнал (не зная фазы)
Что-то я не пойму проблемы...
Спектр сигнала - эта вещь статичная. Спектр может был получен 8 миллионов лет назад. И в самом спектре нет информации о том, когда он был получен.
Сигнал - это вещь, безусловно привязанная к оси времени. И эта самая привязка и называется фаза - именно она и говорит, когда был сигнал.
Так что, дело не БПФ. Не существует методов, которые могут восстановить фазу сигнала из его спектра просто потому, что в спектре нет такой информации.
А сам сигнал (форма сигнала, без привязки к фазе) восстанавливается элементарно:
import numpy as np
a = np.array([0.9, 0.4, 0.7, 0.2])
b = np.fft.ifft(a)
print(b)
0.55+0.j 0.05+0.05j 0.25+0.j 0.05-0.05j]