Dzielenie sygnału DTMF z pliku wav przy użyciu Matlaba
Oto kontekst problemu: Mam sygnał DTMF w formacie WAV, muszę zidentyfikować zakodowaną sekwencję numerów. Muszę to zrobić przy użyciu szybkiej transformacji Fouriera w programie Matlab, co oznacza, że czytam plik wav przy użyciuwavread
i do identyfikacji każdego numeru, który jest oddzielony przez 40 ms ciszy lub więcej.
Oto mój kod do tej pory:
[signal, fs] = wavread( 'C:\Temp\file.wav' ); % here, fs = 8000Hz
N = 512;
T = 1/fs;
L = length( signal )
samples = fs / 1000 * 40
windows = floor(L / samples)
t = (1:L)/fs;
figure(1), plot(t, signal);
Oto cofigure 1
wygląda tak, to jest sygnał odczytany z wav:
W jaki sposób mogę skutecznie podzielić sygnał na kawałki, dzięki czemu mogę wykonać FFT na każdym z 10 kawałków osobno, aby zdekodować odpowiednie liczby?