STFT có thể được sử dụng thành công trên dữ liệu âm thanh (ví dụ với tệp âm thanh .wav) để thực hiện một số sửa đổi trong miền tần số (ví dụ: loại bỏ nhiễu).
Với N=441000
(tức là 10 giây với tốc độ lấy mẫu fs=44100
), windowsize=4096
, overlap=4
, STFT sản xuất approximatively một 430x4096
mảng (lần đầu tiên phối hợp: khung thời gian, thứ hai phối hợp: bin tần số). Sửa đổi có thể được thực hiện trên mảng này và việc xây dựng lại có thể được thực hiện với chồng chéo (*).
Làm thế nào có thể làm một điều tương tự với wavelet ? (DWT), tức là có được một mảng hình dạng tương tự a x b
, với a
các khung thời gian và b
thùng tần số, thực hiện một số sửa đổi trên mảng này và cuối cùng, có phục hồi tín hiệu không? Làm sao ? Wavelet tương đương với chồng chéo là gì? Các hàm Python có liên quan gì ở đây (tôi chưa tìm thấy một ví dụ dễ dàng về sửa đổi âm thanh với pyWavelets
...)?
(*): Đây là khung STFT có thể được sử dụng:
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
Mục tiêu là tìm ra một khung tương tự với wavelet.