Dividir una señal DTMF de un archivo wav usando Matlab

Aquí está el contexto del problema: tengo una señal DTMF en formato wav, tengo que identificar la secuencia de números que ha codificado. Debo hacerlo usando la transformada rápida de Fourier en Matlab, lo que implica que leí el archivo wav usandowavread e identificar cada número que esté separado por un silencio de 40 ms o más.

Aquí está mi código hasta ahora:

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

Aquí es lo que elfigure 1 Parece que esa es la señal leída desde el wav:

¿Cómo puedo dividir efectivamente la señal en partes para que luego pueda hacer un FFT en cada una de las 10 partes por separado para decodificar los números correspondientes?

Respuestas a la pregunta(2)

Su respuesta a la pregunta