DTMF信号的产生与检测实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 设计任务书 双
音多频
DTMF
(Dual
Tone
Multi
Freque
ncy )信
号是在
按键式
电话机
上得到
广泛应
用的音
频拨号信令,一个DTMF 信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,据CCITT 的建议,国际上采用的这些频率为697Hz 、770Hz 、852Hz 、941Hz 、1209Hz 、1336Hz 、1477Hz 和1633Hz 等8种。在每组频率中分别抽出一个频率进行组合就可以组成16种DTMF 编码,从而代表16种不同的数字或功能键,分别记作0~9、*、#、A 、B 、C 、D 。如下图所示。
DSP 课程设计实验报告 DTMF 信号的产生与检测 指导老师: 申艳老师 时 间: 2014年7月18日
图1-1 双音多频信号编码示意图
要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。
1.1 实验目的
掌握DTMF信号的产生和检测的DSP设计可使学生更加透彻的理解和应用奈奎斯特采样定理,与实际应用相结合,提高学生系统地思考问题和解决实际问题的能力。通过对DSP 信号处理器及D/A和A/D转换器的编程,可以培养学生C语言编程能力以及使用DSP硬件平台实现数字信号处理算法的能力。
1.2 技术指标及设计要求
1.2.1 基本部分
1)使用C语言编写DSP下DTMF信号的产生程序,要求循环产生0~9、*、#、A、B、C、D
对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。
2)使用C语言编写DSP下DTMF信号的检测程序,检测到的DTMF编码在CCS调试窗口中显
示,要求既不能漏检,也不能重复检出。
3)DTMF信号的发送与接收分别使用不同的实验板完成。
1.2.2 发挥部分
1)使用一个DSP工程同时实现DTMF信号的发送和检测功能。
2)改进DTMF信号的规定指标,使每秒内可传送的DTMF编码加倍。
3)发送的DTMF 信号的幅度在一定范围内可调,此时仍能完成DTMF 信号的正常检测。
1.3 方案完成情况
在实现基本要求的基础上,我们又完成了发挥部分的全部要求:能够实现在一个DSP 实验箱上同时实现自发自收,基本能实现无差错传输。通过改变处理信号的点数N 的数值实现了DTMF 信号编码加倍,能够在一秒内传送够多的数据。通过gel 添加滑动条的方法实现输入信号幅度可调,并实现判决门限的自适应处理,能随着幅度的变化自动调整门限的值,进而了判决传输信号的正确性。
2 设计内容
2.1 DTMF 信号的的定义
双音多频(DTMF)信号是由两个不同频率的信号叠加而成,设V(t)为DTMF 信号、()t V H 和()t V L 分别为构成V(t)的两个信号,则它们应满足关系式(1)。
V(t)= ()t V H +()t V L (1)
根据CCITT 建议,国际上采用697Hz 、770Hz 、852Hz 、941Hz 、1209Hz 、1336Hz 、1477Hz 、1633Hz8个频率,并将其分成两个群,即低频群和高频群。从低频群和高频群中任意抽出一个频率进行叠加组合,具有16种组合形式,让其代表数字和功率,如表3-1所列,则有关系式
(2)。
V(t)=Asin H ωt+Bsin L ωt (2)
其中Asin H ωt 为低频群的值,Bsin L ωt 为高频组的值,A 、B 分别为低频群和高频群样值的量化基线,具体见表2-1。
表2-1 DTMF频率及其对应的键值
2.2 DTMF信号生成方法
2.2.1 利用math.h采用数学方法产生DTMF信号
buffer[k]= sin(2*pi*k *f0/fs)+ sin(2*pi*k *f1/fs) (式2-1)f0为行频频率,f1为列频频率,fs为8000采样频率,k为对信号的采样。
2.2.2 利用两个二阶数字正弦波振荡器产生DTMF信号(本课程设计实际采用方
法)
DTMF 编码器基于两个二阶数字正弦波振荡器,一个用于产生行频,一个用于产生列频。向DSP装入相应的系数和初始条件,就可以只用两个振荡器产生所需的八个音频信号。典型的DTMF信号频率范围是700~1700Hz,选取8000Hz 作为采样频率,即可满足Nyquist
条件。由数字振荡器对的框图,可以得到该二阶系统函数的差分方程
(式2-2)其中a1=-2cosω0,a2=1,ω0=2πf0 /fs,fs为采样频率,f0 为输出正弦波的频率,A 为
。CCITT 对DTMF 信号规定的指输出正弦波的幅度。该式初值为y(-1)=0,y(-2)=-Asinω
标是,传送/ 接收率为每秒10个数字,即每个数字100ms。代表数字的音频信号必须持续至少45ms,但不超过55ms。100ms 内其他时间为静音,以便区别连续的两个按键信号。编程的流程如图1所示,由CCITT 的规定,数字之间必须有适当长度的静音,因此编码器有两个任务,其一是音频信号任务,产生双音样本,其二是静音任务,产生静音样本。每个任务结束后,启动下一个任务前(音频信号任务或静音任务),都必须复位决定其持续时间的定时器变量。在静音任务结束后,DSP 从数字缓存中调出下一个数字, 判决该数字信号所对应的行频和列频信号,并根据不同频率确定其初始化参数a1=-2cosω0 与
y(-2)=-Asinω0。该流程图可采用C 语言实现,双音信号的产生则由54x汇编代码实现。整个程序作为C 5 4 x 的多通道缓冲串口(McBsp)的发射串口中断服务子程序,由外部送入的16000Hz串口时钟触发中断,可实时处理并通过D / A 转换器输出DTMF 信令信号。
图2-1 DTMF编码流程
2.3 DTMF信号的检测方法
DTMF信号的检测方法可以有多种。主要分为从信号时间域处理和从信号频率域处理两大类。
前一种方法包括:过零点位置检测法、信号峰值位置检测法、过零点位置及信号幅值检测法。其特点是实现简单,可以通过MT8880等芯片加上外围电路实现,易于集成化。缺