Разделение DTMF-сигнала из файла WAV с использованием Matlab
Вот контекст проблемы: у меня есть сигнал DTMF в формате wav, я должен идентифицировать номерную последовательность, которую он закодировал. Я должен сделать это с помощью быстрого преобразования Фурье в Matlab, подразумевая, что я прочитал файл WAV, используяwavread
и идентифицировать каждый номер, который разделен тишиной 40 мс или более.
Вот мой код до сих пор:
[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);
Вот чтоfigure 1
Похоже, что это сигнал, прочитанный из WAV:
Как я могу эффективно разделить сигнал на части, чтобы затем можно было выполнить БПФ для каждого из 10 элементов отдельно для декодирования соответствующих чисел?