STFT dapat berhasil digunakan pada data suara (dengan .wav soundfile misalnya) untuk melakukan beberapa modifikasi domain frekuensi (misalnya: penghapusan kebisingan).
Dengan N=441000
(yaitu 10 detik pada sampling rate fs=44100
), windowsize=4096
, overlap=4
, STFT menghasilkan approximatively sebuah 430x4096
array (koordinat pertama: kerangka waktu, koordinat kedua: bin frekuensi). Modifikasi dapat dilakukan pada array ini, dan rekonstruksi dapat dilakukan dengan tumpang tindih-tambah (*).
Bagaimana mungkin melakukan hal serupa dengan wavelet ? (DWT), yaitu mendapatkan array bentuk yang sama a x b
, dengan a
kerangka waktu, dan b
tempat frekuensi, melakukan beberapa modifikasi pada array ini, dan pada akhirnya, memulihkan sinyal? Bagaimana? Apa yang setara dengan wavelet untuk tumpang tindih-tambahkan ? Apa yang akan menjadi fungsi Python yang terlibat di sini (saya belum menemukan contoh mudah modifikasi audio dengan pyWavelets
...)?
(*): Ini adalah kerangka kerja STFT yang dapat digunakan:
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
Tujuannya adalah untuk menemukan kerangka kerja yang mirip dengan wavelet.