DTMF 生成器和接收器
此示例说明如何对双音多频 (DTMF) 生成器和接收器进行建模。该示例包括一个预配置的模型,该模型具有带通滤波器组接收器、显示所生成音调的频谱和频谱图的 Spectrum Analyzer 模块、用于存储解码位的移位寄存器以及所有平台上的实时声卡音频。
DTMF 生成器
DTMF 信令使用两种音调来表示触摸板上的每个键。触摸板有四行三列,总共 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 的音调。
此示例中的行频率和列频率避免谐波多义性。没有一个频率是另一个频率的倍数。任意两个频率之差不等于任何其他频率,任意两个频率之和也不等于任何其他频率。
在此示例中,* 键表示数字 10,# 键表示数字 11。
DTMF 接收器
接收器检测音调频率并对数字进行解码。您可以使用基于 DFT 的算法来检测频率。但是,由于此示例中只有七个频率分量(四个低频和三个高频),使用格兹尔算法更高效。此算法通过使接收到的信号通过七个带通滤波器来检测频率分量。您可以在 DTMF Receiver 模块中将滤波器带宽调整为中心频率的百分比。
运行模型
打开并运行模型 dspdtmf。
open_system('dspdtmf'); sim('dspdtmf');
当您运行仿真时,您可以在示波器中查看 DTMF 接收器接收到的音调的频谱图。您可以在数值显示示波器中查看 DTMF 接收器检测到的数字。如果您使用的是为音频硬件设计的模型版本,您可以通过系统声卡收听接收到的音调。
您可以调整以下模型参数:
每个音调的频率偏置(DTMF Generator 模块)
通道噪声功率和信号增益(Channel 模块)
接收器带通滤波器频率带宽(DTMF Receiver 模块)。


另请参阅
Spectrum Analyzer | Audio Device Writer