DTMF信号のしくみ
プッシュホンなどを使うときに聞く「ピッポッパッ」と聞こえるあの音がDTMF信号です。だだ意味も無く鳴っているのではありません。音の高低の組み合わせで数字の0から9までと*#ABCDの計16の種類のデータを表しています。このうち、A〜Dは国内ではほとんど使用されていないようです。
それぞれの信号は2つの正弦波を組み合わせたもので8種類の異なる周波数の信号を2つのグループに分け4種×4種=16種類ということになります。
|
1209Hz |
1336Hz |
1477Hz |
1633Hz |
---|
697Hz |
1 |
2 |
3 |
A |
770Hz |
4 |
5 |
6 |
B |
852Hz |
7 |
8 |
9 |
C |
941Hz |
* |
0 |
# |
D |
これらを解読するには、まず各周波数ごとのフィルターを通してそれぞれの周波数の正弦波が音に含まれていないかを調べます。もし、含まれていれば2つの組み合わせにならないかを表と照らし合わせてチェックして一致するデータがみつかればDTMF信号ということになります。
数字の0の波形の例 数字の1の波形の例
DTMFハンターのしくみ
ハードウエアで設計する場合は専用のICが市販されていますから比較的簡単に高性能な解読器を作れます。
しかし、パソコンで実現するためには高精度なフィルターを実現しなければならないためソフトが複雑になりリアルタイムな処理が難しいのです。
このソフトに内蔵された解読ルーチンはデジタルフーリエ変換を高速に行うFFT技術を利用して周波数分析を行っています。FFTの説明は各専門書を参考にしていただくとして(この話題だけで1冊の本になる)ソフトウエアにとってはとても荷の重い作業を強いられており、精度を上げるほどDTMFの解析精度は上がりますが速度が追いつかなくなります。他の方法も考えられるのですが、ここでの実験の結果一番成績の良い方式となりました。
戻る