基于 matlab 的双音频 phone 界面
学院:信息工程学院
班级:通信 2 班
学号:1167119221
姓名:杨鹏
内蒙古科技大学
目录
摘要:..................................................................................................2
关键词:..............................................................................................3
一.双音频拨号电话背景................................................................... 3
二.双音频拨号电话原理................................................................... 4
三.GUI 的基本知识...........................................................................5
3.1 GUI 的 M 文件和 FIG 文件........................................................................................... 5
3.2 GUI 设计的优点及实现步骤..........................................................................................6
3.3 控件的概念和特点.........................................................................................................6
四.GUI 界面设计.............................................................................. 7
五.总结............................................................................................ 11
参考文献............................................................................................ 11
附件:.................................................................................................. 13
第 1页
内蒙古科技大学
摘要:
信息技术的飞速发展,使得通信系统在性能不断提高的同时也变得越来越复
杂。正因如此,采用传统技术对通信系统进行分析和设计的日子一去不复返,而
由于计算机仿真的廉价性和高效性,使其成为通信系统中的主要设计和分析手段
之一。另一方面,计算机仿真更是进行通信和网络等科研工作时所必备的工具。
然而,目前许多学生都缺乏这个环节的锻炼,得出的结果可信度较差,所以在这
里进行基本的演示。
MATLAB 是国际公认的优秀科技应用软件,是计算机辅助分析与设计、算
法研究和应用开发的基础工具和首选平台,是目前科学研究领域最流行的应用软
件,其特点概括为:
(1) 高效的数字计算方法及符号计算功能,使用户从繁杂的数学运算分析中
解脱出来。
2) 完备的图形处理功能,实现计算结果和编程的可视化。
(3) 友好的用户界面及接近数学表达式的自然化语言,使学习者易于学习和
掌握。
(4) 功能丰富的应用工具箱,为用户提供了大量方便而实用的处理工具。
(5) Simulink 动态建模与仿真系统,丰富而功能强大的器件库,提供了实时方
便的仿真手段。
MATLAB 软件是由美国 Mathworks 公司推出的用于数值计算和图形处理的
科学计算系统环境。MATLAB 是英文 Matrix Laborutory(矩阵实验室)的缩写。
是现今国际公认的最优秀的科技应用软件,它具有强大的数值计算和工程运算功
能、符号计算功能和科学数据可视化能力。广泛应用于数值计算、图形分析、过
程控制、系统识别、实时控制和动态仿真等领域。成为大学生、硕士生和博士生
必须掌握的基本技能。同时,MATLAB 也被研究单位和工业部门广泛应用,使
科学研究和解决各种具体问题的效率大大提高。
MATLAB 集成环境主要包括五个部分:MATLAB 语言、MATLAB 工作环境、
句柄图形、MATLAB 数学函数库和数学建模、小波分析、MATLAB API(App
lication Program Interface)。MATLAB 语言是以数组为基本数据单位,包括控制
流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。利用
SIMULINK 对系统进行仿真与分析,在进入虚拟实验环境后,不需要书写代码,
只需使用鼠标拖动库中的功能模块并将它们连接起来,再按照实验要求修改各元
器件的参数。通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变
得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地
呈现。
第 2页
内蒙古科技大学
关键词:
Matlab GUI 图形设计 双音频
一.双音频拨号电话背景
当前,话机从提高集成度到与其他技术结合发展,以提高电话机的功能,并
行成各种功能的电话机,如录音电话机,无绳电话机,电视电话机,语音拨号电
话机,数字电话机。特别是随着通信与计算机技术的结合,使通讯技术日新月异,
名目繁多的新通信业务应运生,随着机电式交换机被数字程控交换机的取代,拨
好慢,易错号的老式电话拨号系统早已不再使用,市场上也早已有双音频拨号的
电话机。
电话机按种类分别有按键式电话机和拨盘式电话机。其中又有脉冲式电话机
(PULSE)和双音频电话机(TONE)。拨盘式电话机属于脉冲式电话机,这类
逐步淘汰的产品不宜选用。双音频电话机具有接通速度快、声音清晰等很多优点,
而且对于电话新功能的使用来说,双音频电话机是不可缺的。在打这种电话时,
按键后听到的不再是 1 至 10 个脉冲的“嗒嗒——”声音,而是一种短促悦耳的
电子音乐,这种声音从号码0到9都是都是由两个音频信号组成的,因而称为双
音频电话。双音频电话拨号系统的应用优点:
(1)发号快。
使用双音频电话机,打一电话的拨号时间约为1S,而脉冲拨号系统(拨号
式电话机),一般数字较小的7位号码要占用7s 左右,如电话号码中数字较大,
则拨号时间约为 10s.所以,双音频电话机缩短了每个电话在电话网中占用拨号时
间,提高了电话网的利用率
(2)双音频拨号抗干扰强,不易错号。
脉冲话机的发号准确性要求脉冲断续比和速率符合标准,否则要错号。有一种老
式话机是依靠机械触点式开关的通段产生一系列脉冲电流,就往往易产生错号。
(3)可开展各项电信新业务。
新业务如:缩位拨号,呼叫等待、转移呼叫、叫醒服务、会议电话等。中国电话
卡的“200”业务以及“127”自动寻呼的部分自动功能、“388”“460”语音信箱、
“800”对方付费业务等,也只限于双音频话机使用
电话网是世界最大的通讯网,特别是当人类进入科技信息时代的今天,一定
要充分发挥电话网资源。通讯网的运行效率每提高 1%,每年可以竟增 30 亿员收
益,双音频话机的应用,缩短了电话拨号所占用的时间,随着数字电话机的出现,
两根电话线上除了能通电话外,还可以同时传送传真,进行网络通信
这也是本文分析双音频电话拨号的意义所在。为了分析双音频电话拨号时的
时域与频域对应关系,我们利用 Matlab 中的图形用户界面 GUI 对其进行仿真,
具体要完成的内容有:
第 3页
内蒙古科技大学
理解双音频拨号电话系统的原理;
基于 Matlab 的双音频电话拨号系统的频谱分析(在编程模拟双音频电话拨号
时的时域信号基础上利用 Matlab 中的库函数计算其对应频谱。实现每拨一个号
码时能够在界面显示对应的时域信息、频域信息;并显示相应的拨号码、高低频
率成份;且可实现语音报号的功能。)
总结本课题主要解决了双音频拨号电话拨号时哪些问题,以及可以延伸改进
之处。
二.双音频拨号电话原理
在双音频(DTMF)电话机中,包括 DTMF 发送器和 DTMF 接受器,是广泛
用于快速按键话机和无线通信设备中的专用集成电路。DTMF 发送器能根据不同
的按键号码发出相应的一组双音频信号,如图 1 所示(其中 f1、f2、f3、f4 为低
频群,f5、f6、f7 为高频群):
f5
f6
f1
f2
f3
f4
1
4
7
*
2
5
1
8
0
f7
3
6
9
#
图 1 拨号盘对应高低频群
其基本原理是由 3.58Mhz 的晶体振荡器分频后,得到四个高频和四个低频,
在高、低频中各取一个频率合成后,就得到双音频信号。在本课题中考虑到双音
频信号由两个正弦信号组合而成,可假设双音频信号时域表达形式如下:
其中假设每个正弦信号电压为 0.25V, Lf 为低频信号的频率, Hf 为高频信
号的频率。信号每个数码发号时间大于 0.04 s,两个数码之间间隔时间大于 0.05s,
DTMF 接收器对输入信号进行分离、译码、缓冲恢复为对应于 16 种 DTMF 信号。
在电话机面板上 4*4 组合的按键组与相应的信号的表达式一一对应,当按下一个
数据键时,例如“5”时,则产生频率为 770HZ 和 1336HZ 的两个正弦波,并叠
加成对应的双音频信号。国际电报电话咨询委员会和我国标准都规定拨号数字与
高、低频的组合关系如下表所示:
第 4页
fH(Hz)
fL(Hz)
697
770
852
941
内蒙古科技大学
1209
1336
1477
1633
1
4
7
*
2
5
8
0
3
6
9
#
表 1 双音多频信号频率组合
A
B
C
D
利用 MATLAB 中的图形用户界面 GUI 进行仿真双音频拨号电话在实际拨号
时对应的时域波形,并利用 MATLAB 库函数中提供的相应频域变换函数 fft、abs
做出每一按键时域信号的功率谱。电话拨号盘上的 A、B、C、D 键为保留拨号
键,在本课题仿真中不对其进行仿真设计。
三.GUI 的基本知识
3.1 GUI 的 M 文件和 FIG 文件
在 MATLAB 中,图形用户界面 GUI 包含多种对象的图形窗口。用户必须对
每一个对象进行界面布局和编程,从而使用户激活 GUI 每个对象时都能够执行
相应的行为。另外,用户必须保存和发布所创建的 GUI,使得 GUI 能够真正得到
应用。
MATLAB 为用户开发图形界面提供了一个方便高效的集成环境:MATLAB
图形用户界面开发环境 GUIDE(MATLAB’s Graphical User Interface Development
Environment).GUIDE 主要是一个界面设计工具集,MATLAB 将所有 GUI 支持的用
户控件都集成在这个环境中提供界面外观、属性和行为响应方式的设置方法。
GUIDE 将用户保存设计好的 GUI 界面保存在一个 FIG 资源文件中。同时还能够
生成包含 GUI 初始化和组件界面布局控制代码的 M 文件。这个 M 文件为实现回
调函数(当用户激活 GUI 某一组件时执行的函数)提供了一个参考框架。虽然
使用用户自己编写的、包含 GUI 所有发布命令的 M 文件也能够实现一个 GUI,
但是使用 GUIDE 执行效率更高:使用 GUIDE 不但能够交互式地进行组件界面
布局,而且能够生成两个用来保存和发布 GUI 的文件:
FIG 文件:该文件包括 GUI 图形窗口及其所有后裔的完全描述,包括所有对
象的属性值。FIG 文件是一个二进制文件,调用 hgsave 命令或界面设计编辑器
的 File 菜单 Save 选项保存图形窗口是将产生该文件。FIG 文件包含序列化的图
形窗口对象;在用户打开 GUI 时,MATLAB 能够通过读取 FIG 文件重新构造图
形窗口及其所有后裔。所有对象的属性都被设置为图形窗口创建是保存的的属
性:缺省情况下,即使用户使用 hgsave 和 hgload 命令保存系统缺省图形工具条
和菜单,FIG 文件也不保存这些缺省信息。FIG 文件最有用的地方之一就是对象
第 5页
内蒙古科技大学
句柄的保存和引用。可以使用 open、opening 和 hgload 命令打开一个后缀为.fig
的文件
M 文件:该文件包括 GUI 设计、控制函数以及定义为子函数的用户控件回
调函数,主要用于控制 GUI 展开时的各种特征。这个 M 文件可分为 GUI 初始化
和回调函数两个部分,用户控件的回调函数根据用户与 GUI 的具体交互行为分
别调用。这里将 GUI 的 M 文件称为应用程序 M 文件。应用程序 M 文件使用
openfig 命令来显示 GUI。注意使用程序 M 文件并不包括用户界面设计的任何代
码,这些代码将完全由 FIG 文件保存。
3.2 GUI 设计的优点及实现步骤
GUIDE 可以根据用户 GUI 的版面设计过程直接自动生成 M 文件框架,这样
就简化了 GUI 应用程序的创建工作,用户可以直接使用这个框架来编写自己的
函数代码。这样的编写方法有以下优点:
应用程序 M 文件已经包含实现一些有用的函数编写代码,无需用户自行编写;
可以使用该 M 文件生成的的有效方法来管理图形对象句柄并执行回调函数子程
序;
提供管理全局数据的途径;
文件支持自动插入回调函数原型,确保当前 GUI 与未来发布版本的兼容性。
用户也可以选择由 GUIDE 生成 FIG 文件、自己编写应用程序 M 文件的 GUI 创
建方式。编写 M 文件是要注意,应用程序 M 文件中不能包含用户控件创建命令,
所有的界面设计信息都保存在由界面设计编辑器生成的 FIG 文件中。
实现一个 GUI 主要包括以下两项工作:GUI 界面设计和 GUI 组件编程。整个 GUI
的实现过程可以分为以下几步:
(1)通过设置 GUIDE 应用程序的选项来进行 GUIDE 组态;
(2)使用界面设计编辑器进行 GUI 界面设计;
(3)理解应用程序 M 文件中所使用的编程技术;
(4)编写用户 GUI 组件行为响应控制(即回调函数)代码。
3.3 控件的概念和特点
界面设计编辑器组件平台中包含所有能够在 GUI 中使用的用户界面控件。这
些控件都属于 MATLAB 的用户控件对象(uicontrol),可以通过 Callback 属性来
进行回调函数编程。下面将主要介绍在本课题中所使用到的各种控件的概念和特
点:
按扭(Pushbutton):通过鼠标点击按扭可以实现某种行为(按扭陷下和弹起等)
并调用相应的回调子函数;
复选框(Checkbox):复选框能够产生一个二进制状态的行动(on 或 off)。当复
选框被选中时,其属性中的 Value 值变为‘1’,同时调用相应的回调函数;未被
选中时,其值为‘0’。Checkbox 的回调函数首先要对按钮的 Value 的值进行判断,
第 6页
内蒙古科技大学
然后才能决定相应的行为。
静态文本(Static Text):静态文本通常作为其他控件的标签使用,用户不能
采用交互方式修改静态文本或调用相应的回调函数;
坐标轴(Axes):在 GUI 界面上的任意位置绘制坐标轴,可设置相应的横、纵
坐标范围,并且可将坐标设置成封闭的形式。
组合框:组合框是图形窗口中的一个封闭区域,它把相关联的控件(例如一
组单选按钮)组合在一起,使得用户界面更容易理解;
四.GUI 界面设计
图形用户界面(Graphical User Interface,简称 GUI)就是通过窗口、选单、按
钮、文字说明等构成一个美观的界面,提供用户利用鼠标或键盘方便地实现操作。
Matlab 设计图形用户界面的方法有两种:使用可视化的界面环境和通过编写程
序,本课题采用可视化的界面环境仿真双音频波号电话。
通过打开 Matlab 的菜单 File/New/GUI 即可打开如下的窗口,选择 Create New
GUI 选单中的“Blank GUI(Default)”后设置相应的存储位置,单击 OK 即可得到
如下未命名的图形用户界面“untitled.fig”编辑器外观:
第 7页