dtmf拨号原理matlab,matlab综合实验dtmf拨号器设计.doc

41528d3028836879cd698677c3999917.gifmatlab综合实验dtmf拨号器设计.doc

葛芃电子信息工程学号20102121099MATLAB综合实验DTMF拨号器设计所谓双音多频DTMF就是用两个频率行频和列频来表示电话机键盘上的一个数字。DTMF电话的指令正在迅速的取代脉冲指令。除了在电话呼叫信号中使用外DTMF还广泛的使用在交互式控制应用例如电话银行、电子邮件甚至家电远程控制等用户可以从电话机发送DTMF信号来做菜单选择。本文基于MATLAB的双音多频拨号系统的仿真实现。主要涉及到电话拨号音合成的基本原理及识别的主要方法利用MATLAB软件以及DFT算法实现对电话通信系统中拨号音的合成与识别。并进一步利用MATLAB中的图形用户界面GUI制作简单直观的模拟界面。还能够利用矩阵不同的基频合成09不同按键的拨号音并能够对不同的拨号音加以正确的识别实现由拨号音解析出电话号码的过程进一步利用GUI做出了简单的图形操作界面。本文具有界面清楚画面简洁易于理解操作简单的优点从而实现对电话拨号音系统的简单的信号仿真。关键词双音多频DTMFMATLABGUI信号仿真在电话中数字09的中每一个都用两个不同的单音频传输所用的8个频率分成高频带和低频带两组低频带有四个频率679HZ770HZ852HZ和941HZ高频带也有四个频率1209HZ1336HZ1477HZ和1633HZ。每一个数字均由高、低频带中各一个频率构成例如1用697HZ和1209HZ两个频率信号用表示其中。这样8个频率形成16种不同的双频信号。实验步骤一,打开MATLAB,输入GUIDE操作指令,新建GUI的用户作图界面,设立简单的电话界面图如右图所示用(PUSHBUTTON)按钮添加按拨号键以及其他按键,用静态文本框(STATICTEXT)添加输出窗口,用图轴(AXES)添加一个图形窗口用来链接图片,另外用图示的’波形查看‘按钮链接另一个GUI用户界面(BOXINGFIG)来实现波形的查看与分析。如下图所示同理用(PUSHBUTTON)添加按钮,用(STATICTEXT)添加静态文本低频与高频,用(EDITTEXT)来添加动态输出的显示窗口,用(CHECKBOX)复选框来添加是否出现SOUND的按键,我用静态文本添加’SOUND‘,最后用两个图轴(AXES)添加用来显示波形图和频率谱。以上来说基本的GUI界面制作完毕。两个文件分别保存为DTMFZUIXINZHIZUOFIG和BOXINGFIG。二,打开第一个制作的GUI界面,点击运行按钮,得出相应的M文件,下面就可以对对应的按键,右击选择VIEWCALLBACKS回调到对应的M文件的程序段中进行对应的程序段的编写。同理第二个GUI界面一样的操作方法。具体程序如下所示DTMFZUIXINZHIZUOFIG中的程序如下数字键1的程序XGETHANDLESTEXT1, STRING 把数字显示在屏幕上IFLENGTHX15ERRORDLG SORRYTHENUMBERYOUHAVEISTOOLONG , ERROR , MODAL ELSEN11000每个数字1000个采样点YSIN05345NSIN09272N对应行频列频时域叠加,数字1的低频697HZ和高频1209HZ叠加WAVPLAYY,8192产生拨号音SPACEZEROS1,100100个0模拟静音信号GLOBALNUMPHONENUM,Y循环储存NUMPHONE,SPACE储存连续的拨号音信号NOCTRLXNOCTRLNOCTRL, 1 SETHANDLESTEXT1, STRING ,NOCTRLEND其他数字键的程序仿照1键来写。拨号键XGETHANDLESTEXT1, STRING 把数字显示在屏幕上XXSTR2NUMXGLOBALNUMIFISEMPTYNUMERRORDLG PLEASETHEPHONENO , ERROR , MODAL ELSEWAVPLAYNUM,8192MSGBOX 拨号成功请按复位键重新拨号 , DONE , HELP SETHANDLESTEXT1, STRING , 拨号完成 END回删键XGETHANDLESTEXT1, STRING 把数字显示在屏幕上IFISEMPTYXERRORDLG PLEASETHEPHONENO , ERROR , MODAL ELSEXLLLENGTHXXXLL去掉末尾号在面板上的显示SETHANDLESTEXT1, STRING ,XGLOBALNUMLLLENGTHNUM删除末尾号码在拨号音信号中的储存FORILL11001LLNUMLLLLLENGTHNUMENDEND复位键N11000NUMGETHANDLESTEXT1, STRING LLENGTHNUMNJSTRREPNUM,NUM,NUM1L1000D11SIN07217NSIN11328NSETHANDLESTEXT1, STRING ,NJGLOBALNUMLLENGTHNUMNUMNUM1L10000WAVPLAYD11,8192结束键CLEARALLCLOSEALL接听键(解码)GLOBALNUMLLENGTHNUM获取NUM的最长的非0维数NL/1100NUMBER FORI1NJI111001截取出第一个数字DNUMJJ999截取出每个数字FFFTD,2048以N2048作FFT变换AABSFF的绝对值PAA/10000计算功率谱NUM1FINDP1250MAXP1250找行频通过计算得出数值范围NUM2300FINDP300380MAXP300380找列频通过计算得出数值范围IFNUM1180ROW1确定行数ELSEIFNUM1200ROW2否则第二行ELSEIFNUM1220ROW3第三行ELSEROW4ENDIFNUM2320COLUMN1确定列数ELSEIFNUM2340COLUMN2ELSECOLUMN3ENDZROW,COLUMN确定数字IFZ4,2TEL00在4行2列ELSEIFZ1,1TEL11在1行1列ELSEIFZ1,2TEL22在1行2列ELSEIFZ1,3TEL33在1行3列ELSEIFZ2,1TEL44在2行1列ELSEIFZ2,2TEL55在2行2列ELSEIFZ2,3TEL66在2行3列ELSEIFZ3,1TEL77在3行1列ELSEIFZ3,2TEL88在3行2列ELSEIFZ3,3TEL99在3行3列ENDTITELCSTRCATNUMBER,INT2STRTELNUMBERCII1ENDSETHANDLESTEXT1, STRING , 解码中 HWAITBAR0, DECODINGPLEASEWAIT STEPS1500FORSTEP1STEPSCOMPUTATIONSTAKEPLACEHEREWAITBARSTEP/STEPS计算部分ENDCLOSEHSETHANDLESTEXT1, STRING ,NUMBER显示数字BOXINGFIG中的程序如下按键1的程序FL697FH1209T000001005X025SIN2PIFLT025SIN2PIFHTYFFTX,1280PYYYCONJY/256F20

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值