STFT может быть успешно использован для звуковых данных (например, со звуковым файлом .wav) для внесения некоторых изменений в частотную область (например, удаление шума).
С N=441000
(т.е. 10 секунд при частоте дискретизации fs=44100
), windowsize=4096
, overlap=4
, производит аппроксимационно STFT в 430x4096
массив (первый координат: временные рамки, вторая координата: по частоте). В этом массиве можно вносить изменения, а реконструкцию можно выполнять с помощью overlap-add (*).
Как это можно сделать с помощью вейвлетов ? (DWT), то есть получить подобный массив формы a x b
, с a
временными рамками и b
частотными бинами, внести некоторые изменения в этот массив и, в конце концов, восстановить сигнал? Как ? Что такое вейвлет эквивалент перекрытия-сложения ? Какие функции Python будут задействованы здесь (я не нашел простого примера модификации звука с pyWavelets
...)?
(*): Вот структура STFT, которую можно использовать:
signal = stft.Stft(x, 4096, 4) # x is the input
modified_signal = np.zeros(signal.shape, dtype=np.complex)
for i in xrange(signal.shape[0]): # Process each STFT frame
modified_signal[i, :] = signal[i, :] * ..... # here do something in order to
# modify the signal in frequency domain !
y = stft.OverlapAdd(modified_signal, 4) # y is the output
Цель состоит в том, чтобы найти аналогичную структуру с вейвлетами.