文档详情

双音多频拨号系统DTMF的实验报告.doc

发布:2019-02-27约1.02万字共21页下载文档
文本预览下载声明
双音多频拨号系统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种不同的双频信号。 一,利用GUI 作图(简单的电话界面)如下:利用 GUI 图形用户界面设计工具制作电话拨号面板,把 DTMF 信号和电话机的键盘矩阵对应起来。其中选用我们熟悉的 10 个数字键 0 — 9 , 3 个功能键“ 回删 ”、“拨号”,“解码”。按照图 电话机键盘矩阵的排列方式制作五行三列的按键控件。每个按键可用? ( Push Button )添加。静态文本框可用? ( Static Text )添加,如图再加个解码键( Push Button ) 二,再点运行,得出与上图对应的m文件,再用鼠标右击上图的每个键,点callback导入每个键的编译程序如下: 1,按键1的程序: % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) 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 2,按键2的程序: function pushbutton5_Callback(hObject, eventdata, handles) 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(1.0247*n);% 对应行频列频时域叠加,数字2的低频697Hz和高频1336Hz叠加 wavplay(y,8192) %产生拨号音 space=zeros(1,100);% 100个0模拟静音信号 global NUM phone=[NUM,y]; %循环储存 NUM=[phone,space]; %储存连续的拨号音信号 NoCtrl=x; NoCtrl=[NoCtrl,2]; set(handles.text1,string
显示全部
相似文档