STFT kann erfolgreich für Audiodaten verwendet werden (z. B. mit einer WAV-Audiodatei), um einige Frequenzbereichsänderungen vorzunehmen (z. B. Rauschunterdrückung).
Mit N=441000
(dh 10 Sekunden bei Abtastrate fs=44100
) windowsize=4096
, overlap=4
produziert STFT approximativ eine 430x4096
Anordnung (erste Koordinate: Zeitrahmen, Koordinaten zweite: frequency bin). An diesem Array können Änderungen vorgenommen werden, und die Rekonstruktion kann mit Überlappungsaddition (*) erfolgen.
Wie ist es möglich, mit Wavelets etwas Ähnliches zu machen ? (DWT), dh erhalten Sie eine ähnliche Form a x b
mit a
Zeitrahmen und b
Frequenzbereichen, nehmen Sie eine Modifikation an dieser Anordnung vor und stellen Sie am Ende ein Signal wieder her? Wie ? Was ist das Wavelet-Äquivalent zu Überlappungsaddition ? Um welche Python-Funktionen handelt es sich hier (ich habe mit pyWavelets
... kein einfaches Beispiel für eine Audiomodifikation gefunden )?
(*): Hier ist das STFT-Framework, das verwendet werden kann:
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
Ziel ist es, mit Wavelets ein ähnliches Framework zu finden.