У меня есть набор песен, для которых я извлек спектрограмму величины, используя Окно Хэмминга с перекрытием 50%. После извлечения спектрограммы я немного уменьшил размерность с помощью анализа основных компонентов (PCA). Снизив его до более низкой размерности, я реконструировал спектрограммы из более низких измерений. Таким образом, теперь будет некоторая ошибка между исходной спектрограммой и восстановленной спектрограммой. Я хотел бы преобразовать эту спектрограмму обратно в аудиосигнал и воспроизвести его, чтобы я мог узнать, когда воспроизводится звук из более низких измерений, как звучит звук.
Есть ли функция, скажем, в Matlab. преобразовать амплитуду спектрограммы в звуковой сигнал ??
audio
spectrogram
ifft
user76170
источник
источник
Ответы:
Если спектрограмма была вычислена как величина кратковременных четырехполосных преобразований из перекрывающихся окон, то спектрограмма неявно содержит некоторую информацию о фазе.
Следующие итерации делают работу:
- спектрограмма, штS stft - коротко-прямое преобразование Фурье, - коротко -обратное преобразование Фурье.isft
источник
Мне было немного трудно понять ответ @edouard, который делает правильные вещи. Сравнить с /signals//a/3410/9031 , который я использовал для своей реконструкции.
Обратите внимание, что - мнимое число, а x n - восстановленный сигнал на n- й итерации. Начните с x 0, являющегося случайным вектором длины аудиосигнала. Для меня было достаточно нескольких итераций, чтобы получить хороший результат. Абсолютная погрешность исходного сигнала, тем не менее, была довольно высокой. Кроме того, сгенерированная спектрограмма I, сгенерированная из восстановленного сигнала, хотя и показывала те же структуры в целом, имела совершенно разные величины.i xn nth x0
источник
Вы можете использовать восстановленную спектрограмму по сравнению с исходной спектрограммой, чтобы создать фильтр, чья амплитудная характеристика преобразует одну спектрограмму в другую. Затем вы можете применить этот фильтр к исходным данным временной области или к исходным БПФ для наложения, добавления / сохранения быстрой сверточной фильтрации.
источник
Используйте алгоритм Griffin-Lim для инвертирования аудиосигнала из спектрограммы, если вас не беспокоит сложность вычислений.
источник