STFT peut être utilisé avec succès sur des données sonores (avec un fichier son .wav par exemple) afin de faire quelques modifications dans le domaine fréquentiel (exemple: suppression du bruit).
Avec N=441000
( à savoir 10 secondes à la fréquence d' échantillonnage fs=44100
), windowsize=4096
, overlap=4
, STFT produit approximativement une 430x4096
matrice (première coordonnée: laps de temps, secondes coordonnées: bin de fréquence). Des modifications peuvent être effectuées sur ce tableau, et la reconstruction peut être effectuée avec overlap-add (*).
Comment est-il possible de faire une chose similaire avec des ondelettes ? (DWT), c'est-à-dire obtenir un tableau de forme similaire a x b
, avec des a
délais et des intervalles de b
fréquence, faire quelques modifications sur ce tableau et, à la fin, récupérer un signal? Comment ? Quel est l'ondelette équivalente à chevauchement-ajout ? Quelles seraient les fonctions Python impliquées ici (je n'ai pas trouvé d'exemple simple de modification audio avec pyWavelets
...)?
(*): Voici le framework STFT qui peut être utilisé:
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
Le but est de trouver un cadre similaire avec des ondelettes.