問題のコンテキストは次のとおりです。wav 形式の DTMF 信号があり、エンコードされた数列を特定する必要があります。Matlab で高速フーリエ変換を使用してそうする必要があります。これは、40 ミリ秒wavread
以上の無音で区切られた各数値を識別するために と を使用して wav ファイルを読み取ることを意味します。
これまでの私のコードは次のとおりです。
[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 を実行できるように、信号を断片に効果的に分割するにはどうすればよいですか?