STFT può essere utilizzato con successo su dati audio (ad esempio con un file audio .wav) per apportare alcune modifiche al dominio della frequenza (esempio: rimozione del rumore).
Con N=441000
(cioè 10 secondi alla frequenza di campionamento fs=44100
), windowsize=4096
, overlap=4
, STFT produce approssimativamente un 430x4096
array (prima coordinata: lasso di tempo, seconda coordinata: bin di frequenza). Le modifiche possono essere eseguite su questo array e la ricostruzione può essere effettuata con overlap-add (*).
Come è possibile fare una cosa simile con le wavelet ? (DWT), ovvero ottenere un array di forma simile a x b
, con a
intervalli di tempo e b
bin di frequenza, apportare alcune modifiche a questo array e, alla fine, recuperare un segnale? Come ? Qual è l'equivalente wavelet di overlap-add ? Quali sarebbero le funzioni di Python coinvolte qui (non ho trovato un semplice esempio di modifica audio con pyWavelets
...)?
(*): Ecco il framework STFT che può essere utilizzato:
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
L'obiettivo è quello di trovare un quadro simile con wavelets.