Aufteilen eines DTMF-Signals aus einer WAV-Datei mit Matlab

Hier ist der Kontext des Problems: Ich habe ein DTMF-Signal im WAV-Format, ich muss die Nummernfolge identifizieren, die es codiert hat. Ich muss dazu eine schnelle Fouriertransformation in Matlab verwenden, was bedeutet, dass ich die WAV-Datei mit gelesen habewavread und um jede Nummer zu identifizieren, die durch eine Stille von 40 ms oder mehr getrennt ist.

Hier ist mein Code soweit:

[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);

Hier ist was zumfigure 1 sieht so aus, das ist das von der WAV gelesene Signal:

Wie kann ich das Signal effektiv in Teile aufteilen, sodass ich dann eine FFT für jedes der 10 Teile separat ausführen kann, um die entsprechenden Zahlen zu decodieren?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage