STFT może być z powodzeniem stosowany do danych dźwiękowych (na przykład z plikiem dźwiękowym .wav) w celu dokonania pewnych modyfikacji w dziedzinie częstotliwości (na przykład: usuwanie szumów).
Z N=441000
(to jest 10 sekund przy szybkości próbkowania fs=44100
) windowsize=4096
, overlap=4
, STFT wytwarza approximatively w 430x4096
tablicy (I współrzędnych: czasie, drugiej współrzędnej bin częstotliwość). Można modyfikować tę tablicę, a rekonstrukcję można wykonać za pomocą funkcji overlap-add (*).
Jak można zrobić podobnie z falkami ? (DWT), tj. Uzyskać podobną tablicę kształtu a x b
z a
ramami czasowymi i b
przedziałami częstotliwości, czy wprowadzić pewne modyfikacje w tej tablicy, a na końcu odzyskać sygnał? W jaki sposób ? Co to jest odpowiednik falki do nakładania-dodawania ? Jakie byłyby tutaj funkcje Pythona (nie znalazłem łatwego przykładu modyfikacji audio za pomocą pyWavelets
...)?
(*): Oto framework STFT, którego można użyć:
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
Celem jest znalezienie podobnej struktury z falkami.