Вот контекст проблемы: у меня есть сигнал 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 частей отдельно для декодирования соответствующих чисел?