このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
DTMF ジェネレーターと受信器
この例では、デュアルトーン多重周波数 (DTMF) ジェネレーターと受信器をモデル化する方法を示します。例には、バンドパス フィルター バンク受信器をもつ事前構成済みのモデル、生成されたトーンのスペクトルとスペクトログラム プロットを表示する Spectrum Analyzer ブロック、デコードされた数字を保存するシフト レジスタ、すべてのプラットフォームのためのリアルタイム サウンドカード オーディオが含まれています。
DTMF ジェネレーター
DTMF 信号は 2 つのトーンを使用して、タッチ パッドの各キーを表します。タッチ パッドには 4 つの行と 3 つの列、合計 12 個のキーがあります。キーを押すと、この表に従って行のトーンと列のトーンが生成されます。
1209 Hz 1336 Hz 1477 Hz
697 Hz 1 2 3 770 Hz 4 5 6 852 Hz 7 8 9 941 Hz * 0 #
たとえば、"5" のキーを押すと、770 Hz と 1336 Hz のトーンが生成されます。
この例の行と列の周波数は、高調波のあいまいさを回避しています。どの周波数も他の周波数の倍数ではありません。2 つの周波数の差が他の周波数に等しくなったり、2 つの周波数の合計が他の周波数に等しくなったりすることはありません。
この例では、* キーは数字の 10 を表し、"#" キーは数字の 11 を表します。
DTMF 受信器
受信器は、トーンの周波数を検出して数字を復号化します。DFT ベースのアルゴリズムを使用して周波数を検出できます。ただし、この例では周波数成分が 7 つ (低周波数が 4 つと高周波数が 3 つ) しかないため、Goertzel アルゴリズムの方が効率的です。このアルゴリズムでは、受信した信号を 7 つのバンドパス フィルターを通じて渡すことで周波数成分を検出します。DTMF Receiver ブロックでは、中心周波数の割合としてフィルターの帯域幅を調整できます。
モデルの実行
モデル dspdtmf
を開いて実行します。
open_system('dspdtmf'); sim('dspdtmf');
シミュレーションを実行すると、DTMF 受信器で受信したトーンのスペクトログラムをスコープで確認できます。DTMF 受信器で検出した数字を数値表示スコープで確認できます。オーディオ ハードウェア用に設計されたモデルのバージョンを使用する場合は、受信したトーンがシステム サウンド カードを通して再生されます。
次のモデル パラメーターを調整できます。
各トーンの周波数バイアス (DTMF Generator ブロック)
チャネルのノイズ パワーと信号ゲイン (Channel ブロック)
受信器のバンドパス フィルター周波数帯域幅 (DTMF Receiver ブロック)。
参考
Spectrum Analyzer | Audio Device Writer