2016-12-02 19 views
1

したがって、フーリエ解析プロットの[x、y]座標を読み取ることで、DTMF波形ファイルでダイヤルした数値を調べようとしています。番号は、次のとおりです。251216.ここに同じのための私のMatlabのコードです:これは、次のプロットに対応.wavファイルからDTMFを調べようとしています

% Tone Dialling % 
[y,Fs] = audioread('tones.wav'); 
n = length(y); 
p = abs(fft(y)); 
f = (Fs/n)*(0:n-1); 
plot(f,p); 
axis([500 1400 0 1000]) 
xlabel('f(Hz)') 
title('Power') 

enter image description here

enter image description here

は今、これは6つのピークを持っている必要がありますが、しかし、そうではありません!どこが間違っていますか?クリップは6秒のクリップで、1秒ごとに脈拍が再生されます。

何か助けていただければ幸いです。

答えて

1

DTMF信号の各トーンは、2つの特定の周波数で構成されるトーンで構成されています。あなたはシーケンスのDTMF信号を取る場合

 1209 Hz 1336 Hz 1477 Hz 1633 Hz 
697 Hz 1  2  3  A 
770 Hz 4  5  6  B 
852 Hz 7  8  9  C 
941 Hz *  0  #  D 

555555あなたは、あなたのFFTプロットに番号5のトーンを構成する2つの周波数が表示されます。

DTMF Signal 555555

あなたのケースでは、あなたのトーンは、以下の周波数で構成されている。

  • 1:697ヘルツ、1209ヘルツ
  • 2:697ヘルツ、1336ヘルツ
  • 5: 770Hz、1336Hz
  • 6:770Hz、1477Hz

それゆえに4つのユニークな周波数。したがって、あなたのシグナルの4つのピーク。トーン1と2は周波数697Hzを、トーン2と5は周波数1336Hzを、トーン5と6はそれぞれ周波数770Hzを共有します。

あなたのプロットの振幅は、あなたの周波数はトーンのいずれかで使用された頻度の目安を与えるべきである:

fft-plot of DTMF signal 251216

あなたは誤りである1400ヘルツ、であなたのプロットをカットなぜなら、DTMFトーン6は1477Hzの成分を有するからである。

関連する問題