1、 通信技术方向课程设计通信技术方向课程设计 题目:题目: 双音多频信号检测双音多频信号检测 物联网工程 学 院 电子信息工程 专 业 学 号 学生姓名 二一年六月 一、原理介绍一、原理介绍 双音多频(Dual Tone Multi Frequency, DTMF)信号是音频电话中的拨号信 号,由美国 ATclc; tm=1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68; % DTMF 信号代表的 16 个数 N=205;K=18,20,22,24,31,34,38,42; f1=697,770,852,941; % 行频率向量 f2=1209,1336,1477,16
2、33; % 列频率向量 TN=input(键入 8 位电话号码= ); % 输入 8 位数字 TNr=0; %接收端电话号码初值为零 for l=1:8; d=fix(TN/10(8-l); TN=TN-d*10(8-l); for p=1:4; for q=1:4; if tm(p,q)=abs(d); break,end % 检测码相符的列号 q end if tm(p,q)=abs(d); break,end % 检测码相符的行号 p end n=0:1023; % 为了发声,加长序列 x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000)
3、;% 构成双频信号 sound(x,8000); % 发出声音 pause(0.1) % 接收检测端的程序 X=goertzel(x(1:205),K+1); % 用 Goertzel 算法计算八点 DFT 样本 val = abs(X); % 列出八点 DFT 向量 subplot(4,2,l); stem(K,val,.);grid;xlabel(k);ylabel(|X(k)|) % 画出 DFT(k)幅度 axis(10 50 0 120) limit = 80; % for s=5:8; if val(s) limit, break, end % 查找列号 end for r=1:4
4、; if val(r) limit, break, end % 查找行号 end TNr=TNr+tm(r,s-4)*10(8-l); end disp(接收端检测到的号码为:) % 显示接收到的字符 disp(TNr) 2、运行结果: (1) 、运行程序,根据提示键入 8 位电话号码 12345678,然后回车。 (2) 、回车后可以听见 8 位电话号码对应的 DTMF 信号的声音,并输出相应的 8 幅频谱图如下图所示。 (3) 、左上角的第一个图在 k=18 和 k=31 两点出现峰值,所以对应第一位号码 数字 1。最后显示检测到的电话号码 12345678。 四、四、总结总结 这学期我们
5、学习了通信原理课程这门课程并开设了实验, 同时在短学期中进 行了为期一周的课程设计,目的是让我们更深刻的理解通信原理这门课,并且把 所学的理论与实践相联系。这次的课程设计共有个八题目,我完成的是第六个 双音多频信号检测。 我拿到题目后,上网查阅老师给的参考资料,将英文翻译成中文,了解了双 音多频信号检测的原理。参考资料所给内容比较简单且 Matlab 的程序有缺省和 错误,所以我又学习通信原理中相关知识并查阅一些资料,学习 Matlab 的使用 方法,最终写出程序,进行了调试、仿真,并完成报告。 这次课程设计,我学会了很多东西。熟悉了仿真软件 Matlab 的使用方法, 学会了 Matlab 程序的编写,完成仿真。我还意识到英文水平的重要性,我们学 习电信专业,会需要了解国外先进的技术及最新,也需要阅读经典书籍和各种文 献、 资料, 因此需要扎实的英语阅读和翻译功底, 尤其是相关的专业词汇。 此外, 这次课程设计还加深了对我通信原理理论知识的理解, 了解通信原理知识和其它 课程的联系,例如交换技术、数字信号处理等,及其在实际生活中的应用,增强 了自己查阅资料的动手能力。