这是问题的背景:我有一个 wav 格式的 DTMF 信号,我必须识别它编码的数字序列。我必须在 Matlab 中使用快速傅立叶变换来执行此操作,这意味着我使用wavread
和 来读取 wav 文件,并识别每个数字之间的间隔为 40ms 或更多。
到目前为止,这是我的代码:
[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 个部分中的每一个进行 FFT 以解码相应的数字?