O STFT pode ser usado com sucesso em dados de som (com um arquivo de som .wav, por exemplo) para fazer algumas modificações no domínio da frequência (por exemplo: remoção de ruído).
Com N=441000
(isto é, 10 segundos a taxa de amostragem fs=44100
), windowsize=4096
, overlap=4
, STFT produz approximatively uma 430x4096
matriz (primeira coordenada: período de tempo, segundo coordenadas: bin frequência). Modificações podem ser feitas nessa matriz e reconstrução com overlap-add (*).
Como é possível fazer algo semelhante com wavelets ? (DWT), ou seja, obter uma matriz de forma semelhante a x b
, com a
intervalos de tempo e b
intervalos de frequência, faz alguma modificação nessa matriz e, no final, recupera um sinal? Como ? Qual é a wavelet equivalente a sobreposição-adição ? Quais seriam as funções Python envolvidas aqui (não encontrei um exemplo fácil de modificação de áudio com pyWavelets
...)?
(*): Aqui está a estrutura STFT que pode ser usada:
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
O objetivo é encontrar uma estrutura semelhante com wavelets.