Matlab綜合实验DTMF拨号器设计.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab綜合实验DTMF拨号器设计

葛芃 电子信息工程 学号:20102121099 Matlab综合实验DTMF拨号器设计 所谓双音多频DTMF就是用两个频率——行频和列频来表示电话机键盘上的一个数字。DTMF 电话的指令正在迅速的取代脉冲指令。除了在电话呼叫信号中使用外DTMF 还广泛的使用在交互式控制应用例如电话银行、电子邮件甚至家电远程控制等用户可以从电话机发送DTMF 信号来做菜单选择。本文基于MATLAB的双音多频拨号系统的仿真实现。主要涉及到电话拨号音合成的基本原理及识别的主要方法利用 MATLAB 软件以及 DFT 算法实现对电话通信系统中拨号音的合成与识别。并进一步利用 MATLAB 中的图形用户界面 GUI 制作简单直观的模拟界面。还能够利用矩阵不同的基频合成 0  9 不同按键的拨号音并能够对不同的拨号音加以正确的识别实现由拨号音解析出电话号码的过程进一步利用 GUI 做出了简单的图形操作界面。本文具有界面清楚画面简洁易于理解操作简单的优点从而实现对电话拨号音系统的简单的信号仿真。 关键词 双音多频DTMF MATLAB GUI 信号仿真 在电话中数字0~9的中每一个都用两个不同的单音频传输所用的8个频率分成高频带和低频带两组低频带有四个频率679Hz770Hz852Hz和941Hz高频带也有四个频率1209Hz1336Hz1477Hz和1633Hz.。每一个数字均由高、低频带中各一个频率构成例如1用697Hz和1209Hz两个频率信号用 表示其中  。这样8个频率形成16种不同的双频信号。 实验步骤: 一,打开Matlab,输入guide操作指令,新建gui的用户作图界面,设立简单的电话界面图:如右图所示 用(push button)按钮添加按拨号键以及其他按键,用静态文本框(static text)添加输出窗口,用图轴(axes)添加一个图形窗口用来链接图片,另外用图示的’波形查看‘按钮链接另一个gui用户界面(boxing.fig)来实现波形的查看与分析。如下图所示: 同理用(push button)添加按钮,用(static text)添加静态文本低频与高频,用(edit text)来添加动态输出的显示窗口,用(check box)复选框来添加是否出现sound的按键,我用静态文本添加’sound‘,最后用两个图轴(axes)添加用来显示波形图和频率谱。以上来说基本的GUI界面制作完毕。两个文件分别保存为dtmfzuixinzhizuo.fig和boxing.fig。 二, 打开第一个制作的GUI界面,点击运行按钮,得出相应的m文件,下面就可以对对应的按键,右击选择view callbacks回调到对应的m文件的程序段中进行对应的程序段的编写。同理第二个GUI界面一样的操作方法。 具体程序如下所示: Dtmfzuixinzhizuo.fig中的程序如下: 数字键1的程序: x=get(handles.text1,string); % 把数字显示在屏幕上 if(length(x)15) errordlg(Sorry . The number you have input is too long !,Input Error,modal) else n=[1:1000];%每个数字1000个采样点 y=sin(0.5345*n)+sin(0.9272*n);%对应行频列频时域叠加,数字1的低频697Hz和高频1209Hz叠加 wavplay(y,8192) %产生拨号音 space=zeros(1,100);%100个0模拟静音信号 global NUM phone=[NUM,y];% 循环储存 NUM=[phone,space]; % 储存连续的拨号音信号 NoCtrl=x; NoCtrl=[NoCtrl,1]; set(handles.text1,string,[NoCtrl]); End 其他数字键的程序仿照1键来写。 拨号键: x=get(handles.text1,string); % 把数字显示在屏幕上 xx=str2num(x); global NUM if(isempty(NUM)) errordlg(Please input the phone No.,Input error,modal) else wavplay(NUM,8192); msgbox(拨号成功!请按复位键重新拨号,Done,help) set(handles.

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档