版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淮阴工学院数字信号处理课程设计报告题目:基于matlab的双音多频拨号系统的仿真系 (院): 计算机工程学院 专 业: 通信工程 班 级: 通信1072 学 号: 1071302212 姓 名: 金瑶峰 指导教师: 常波 顾向平 刘虎 胡荣林 学年学期: 2009 2010 学年 第 1 学期2009年12月 18 日设计任务书课题名称基于matlab的双音多频拨号系统的仿真设计目的1. 巩固所学的数字信号处理理论知识,了解电话中双音多频信号的产生与检测原理;2. 了解数字信号处理在实际中的使用方法和重要性;3. 学习资料的收集与整理,学会撰写课程设计报告。实验环境1. 微型电子计算机(pc)
2、;2. 安装windows 2000以上操作系统,matlab等开发工具。任务要求1. 研究双音多频拨号(dtmf)系统,研究电话中双音多频信号的产生与检测原理;任意送入6位和8位电话号码,打印出相应的幅度谱。观察程序运行结果,判断程序谱分析的正确性。2. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;3. 在第15周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;4. 结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确,正文字数不少于3000字(不含代码)。工作进度计划序号起止日期工 作 内 容12009
3、.12.142009.12.14在预设计的基础上,进一步查阅资料,完善设计方案。22009.12.142009.12.17设计总体方案,构建、绘制流程框图,编写代码,上机调试。32009.12.172009.12.18测试程序,完善功能,撰写设计报告。42009.12.18参加答辩,根据教师反馈意见,修改、完善设计报告。指导教师(签字): 年 月 日 摘要双音多频(dual tone multi frequency, dtmf)信号是音频电话中的拨号信号,由美国at&t贝尔公司实验室研制,并用于电话网络中。dtmf信号在电话中有两种作用,一个是用拨号信号去控制交换机接通被叫的用户电话机,另一个
4、作用是控制电话机的各种动作,如播放留言、语音信箱等。matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。特别是matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。所以该课程设计利用matlab进行仿真,编写代码,运行程序,根据提示键入8位电话号码如12345678,回车后可以听见8位电话号码对应的dtmf信号的声音,并输出相应的8幅频谱图,最后显示检测到的电话号码12345678。说明dtmf信号的参数:采样频率、dft的变换点数以及观测时间的确定原则。关键词
5、多音双频 频谱图 采样频率目 录1引言12课程设计题目描述和要求23课程设计报告内容33.1信号的产生及算法实现33.2详细设计73.3结果分析9总结11致谢12参考文献13数字信号处理课程设计报告- 1 -1引言双音多频(dual tone multi frequency, dtmf)信号是音频电话中的拨号信号,由美国at&t贝尔公司实验室研制,并用于电话网络中。这种信号制式具有很高的拨号速度,且容易自动监测识别,很快就代替了原有的用脉冲计数方式的拨号制式。这种双音多频信号制式不仅用在电话网络中,还可以用于传输十进制数据的其它通信系统中,用于电子邮件和银行系统中。这些系统中用户可以用电话发送
6、dtmf信号选择语音菜单进行操作。dtmf信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,其中还用到了d/a变换器;在接收端用a/d变换器将其转换成数字信号,并进行数字信号处理与识别。为了系统的检测速度并降低成本,还开发一种特殊的dft算法,称为戈泽尔(goertzel)算法,这种算法既可以用硬件(专用芯片)实现,也可以用软件实现。下面首先介绍双音多频信号的产生方法和检测方法,包括戈泽尔算法,最后进行模拟实验。下面先介绍电话中的dtmf信号的组成。在电话中,数字09的中每一个都用两个不同的单音频传输,所用的8个频率分成高频带和低频带两组,低频带有四个频率:679hz
7、,770hz,852hz和941hz;高频带也有四个频率:1209hz,1336hz,1477hz和1633hz.。每一个数字均由高、低频带中各一个频率构成,例如1用697hz和1209hz两个频率,信号用表示,其中,。这样8个频率形成16种不同的双频信号。具体号码以及符号对应的频率如表1所示。表中最后一列在电话中暂时未用。表1 双频拨号的频率分配 列行1209hz1336hz1477hz633hz697hz123a770hz 456b852hz 789c942hz *0#ddtmf信号在电话中有两种作用,一个是用拨号信号去控制交换机接通被叫的用户电话机,另一个作用是控制电话机的各种动作,如播
8、放留言、语音信箱等。2课程设计题目描述和要求dtmf(double tone multi frequency,双音多频)信号是音频电话拨号信号,由美国at&t贝尔实验室开发。作为实现电话号码快速可靠传输的一种技术,它具有很强的抗干扰能力和较高的传输速度,因此,可广泛用于电话通信系统中。但绝大部分是用作电话的音频拨号。另外,它也可以在数据通信系统中广泛地用来实现各种数据流和语音等信息的远程传输。这种拨号方法取代了脉冲拨号,在dtmf 通信系统中共有8 个频率,分为4 个高频音和4 个低频音. 用1 个高频音和1 个低频音的组合来表示一个信号. 这样,共能提供16 种组合,分别代表16 种信号.
9、图一为电话按键与信号频率的对应关系。124758*a3ab609c#d679hz770hz852hz941hz1290hz1366hz1477hz1633hz行 频 率列 频 率图一 dtmf编码各种dtmf信号的应用都离不开dtmf信号的检测,这是dtmf信号应用的关键。对它的检测,主要通过数字信号处理的算法以及硬件实现。本文主要通过matlab的软件编程来实现dtmf信号的仿真检测,从频域分析了快速傅立叶变换(fft)和goertzel两种方法,并对goertzel算法进行了详细的推导,提出采用goertzel 算法来实现dtmf 信号的检测。3课程设计报告内容3.1信号的产生及算法实现d
10、tmf编码, 是将电话拨号盘上的数字0 9, 字母ad,及*/e、#/f, 共16 个字符, 用音频范围的8 个频率表示出来。具体来说, 将8个频率分为高频群和低频群两组, 分别作为列频和行频。每一个键的频率模式由来自于列频和行频的两个频率叠加而成。dtmf 信号所规定的指标是: 传送/接收率为每秒10 个数字, 或每个数字100m s。每个数字传送过程中, 信号必须存在至少45 ms, 且不得多于55ms, 100ms 里的其余时间是静音。1)、dtmf信号的产生假设时间连续的 dtmf信号用表示,式中是按照表1选择的两个频率,代表低频带中的一个频率,代表高频带中的一个频率。显然采用数字方法
11、产生dtmf信号,方便而且体积小。下面介绍采用数字方法产生dtmf信号。规定用8khz对dtmf信号进行采样,采样后得到时域离散信号为 形成上面序列的方法有两种,即计算法和查表法。用计算法求正弦波的序列值容易,但实际中要占用一些计算时间,影响运行速度。查表法是预先将正弦波的各序列值计算出来,寄存在存储器中,运行时只要按顺序和一定的速度取出便可。这种方法要占用一定的存储空间,但是速度快。因为采样频率是8000hz,因此要求每125ms输出一个样本,得到的序列再送到d/a变换器和平滑滤波器,输出便是连续时间的dtmf信号。dtmf信号通过电话线路送到交换机。2)、dtmf信号的检测检测中采用了频域
12、的方法,n 点数据的dft公式为:它的好处是可以得到dft的所有n 点的值。也就是通过dft可以计算出信号中所包含的频率成分。具体实现时,由于它的计算量非常大,因而主要使用它的快速算法快速傅立叶变换(fft)3,4。对上述产生的dtmf信号,经过200点fft运算得到dtmf信号的频谱x(k)(如图二所示)。根据结果中两条谱线的位置k值可知其频率分别为820hz和1290hz,即对应了电话号码盘的数字“7”。从图中可以看出,fft运算中出现了两个问题:1、由于数据的截断,带来了频谱泄漏误差;2、通过fft运算,计算出了200点的频谱,而dtmf信号只需8个频率点,计算效率大大降低。为解决这个问
13、题,文中采用了goertzel算法5。 图二 “7”的dtmf编码fft频谱 goertzel算法本身也是对dft的快速运算,但可以有选择地计算个别点处的dft,而对不需要的点不进行计算。goertzel算法原理如下:goertzel算法实质是一个两极点的iir滤波器,其算法原理框图如图三所示:yk(n)vk (n)x(n)图三 goertzel算法原理框图由图可知:具体推导如下: 令n=m=(n=n) 所以对序列x(n)的dft等价于x(n)与系统传递函数的第n个卷积值.对进行z变换可得:=因此, h(z)可看作是级联型网络:因此 其中v(-1)=v(-2)=0.因而,系统输出的功率谱为:
14、其中n = n 图四 “7”的dtmf编码goertzel功率谱根据以上算法,使用matlab语言具体实现,程序如下:k=f/fn;vk(1)=0;vk(2)=0;for i1=1:8w=2*cos(2*pi*k(i1)/n); for i2=3:202 vk(i2)=w.*vk(i2-1)-vk(i2-2)+x(i2); end; xk(i1)=vk(202).2+vk(201).2-w*vk(202)*vk(201); end;程序运行结果如图四所示。从图中可以看出,利用goertzel算法,只需计算出八个点的功率谱就可以进行拨号的判断,减少了运算量,提高了计算效率,使判断可以实时进行。3
15、.2详细设计仿真界面图dtmf信号的产生与识别仿真实验在matlab环境下进行,编写仿真程序,运行程序,送入8位电话号码,程序自动产生每一位号码数字相应的dtmf信号,并送出双频声音,再用dft进行谱分析,显示每一位号码数字的dtmf信号的dft幅度谱,安照幅度谱的最大值确定对应的频率,再安照频率确定每一位对应的号码数字,最后输出8位电话号码,程序名为exp8。程序分四段:第一段(27行)设置参数,并读入8位电话号码;第二段(920行)根据键入的6位电话号码产生时域离散dtmf信号,并连续发出8位号码对应的双音频声音;第三段(2225行)对时域离散dtmf信号进行频率检测,画出幅度谱;第四段(
16、2633行)根据幅度谱的两个峰值,分别查找并确定输入8位电话号码。根据程序中的注释很容易分析编程思想和处理算法。程序清单如下: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,1633; % 列频率向量tn=str2num(get(handles.edit1,string); % 输入8位数字tnr=0; %接收端电话号码初值为零%figure(1)for m=1:8; d=fi
17、x(tn/10(8-m); tn=tn-d*10(8-m); 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);% 构成双频信号 sound(x,8000); % 发出声音 pause(0.1) % 接收检测端的程序 x=goertzel(x(1:n),k+1); % 用goer
18、tzel算法计算八点dft样本 val = abs(x); % 列出八点dft向量 %hw=handles.axes1; %plot(val,parent,hw); subplot(4,2,m); 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; if val(r) limit, break, end % 查找行号 end tnr=tnr+tm(r
19、,s-4)*10(8-m); set(handles.edit2,string,num2str(tnr);end3.3结果分析运行程序,根据提示键入8位电话号码12345678,回车后可以听见8位电话号码对应的dtmf信号的声音,并输出相应的8幅频谱图如图五所示,左上角的第一个图在k=18和k=31两点出现峰值,所以对应第一位号码数字1。最后显示检测到的电话号码12345678。图五 频谱图序列的n点dft是对序列频谱函数在0区间的n点等间隔采样,如果是一个周期序列,截取周期序列的整数倍周期,进行dft,其采样点刚好在周期信号的频率上,dft的幅度最大处就是信号的准确频率。分析这些dtmf信号
20、,不可能经过采样得到周期序列,因此存在检测频率的准确性问题。总结通过本次课程设计我学会了使用matlab语言实现dtmf的编解码。在做界面的过程中,也学到了很多,掌握了句柄的用法。还掌握如何在各个响应函数间通信。里面的一些控件的用法和中控件类似,一些概念也是类似的。做matlab界面,做好以后同时会产一个m文件,只要把代码编写在对应的控件中即可以方便的实现仿真。试验结果表明基于matlab 的dtmf 编解码具有速度快、精度高、稳定性好以及便于灵活应用等特点。而利用matlab语言,可以较好地、快速地进行算法的仿真,对系统的快速开发起到了推动作用。当然,dtmf信号还要进行有效性检测: dtm
21、f信号的强度是否足够大,行列频率分量平方幅度和是否高于规定的门限值;如果dtmf信号存在,比较行列频率的最大频率分量差值,因为电话线具有低通特性,列频比行频衰减得厉害,因此需要设置一个门限;分别在行列频率组比较频谱分量,最强的谱线至少要比其他高频信号高一个门限值;二次谐波分量是否小于某个值;判断dtmf信号是否包含稳定的数字信息,只有数字信息被连续检测到两次,才认为数字信息是稳定的;最后要检测数字信息之后是否有停顿状态,只有这样才将当前的数字作为有效数字。经过这次的课程设计,我对理论知识的掌握更加牢固了,而且把理论与实践联系在一起,提高了自己的实践能力,也从中找到了乐趣。致谢在这次课程设计的撰
22、写过程中,我得到了许多人的帮助。这样的课程设计真的很有意义,第一次自己真真切切的动手设计制作产品,感觉自己学会了很多,成长了很多,让我找回了往日奋斗的激情,也许这样的机会在大学不会再有了,我会深深的记住这次,记住这次饱含我汗水的综合课程设计。这次也发现了自身很多的不足,许多的基本电路都不是很熟悉,在画原理图的时候就不停的找以前的教材,以后还得多看看教材,牢记一些基本的电路与波形。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,感谢百度帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互动教学制度
- 幼儿园篮球团队奖惩制度
- 主要涉水部门联系单制度
- 集团财务报奖惩制度
- 乡镇卫生院职工奖惩制度
- 孩子学习生活奖惩制度
- 机电安装员工奖惩制度
- 小水电站值班员奖惩制度
- 学风建设部门中奖惩制度
- 煤矿检修车间奖惩制度
- 马云创业之路
- 2026药用辅料附录检查指导原则
- 全球核安全形势课件
- 新媒体概论宫承波课件
- 工地花岗岩施工技术交底
- 精神障碍患者社会交往技能训练方案
- 2026年合肥经济技术职业学院单招综合素质考试必刷测试卷附答案
- 电力行业面试问题
- 2025年秋季学期少先队辅导员工作经验交流稿:让红领巾闪光让每一颗童心发光(课件)
- 云南省市场监管局直属事业单位招聘考试真题2025
- 2025年机动车考试员考试试题及答案
评论
0/150
提交评论