青海师范大学分数线-青海师范大学分数线
装
订
线
MATLAB
结课论文
题目:
基于
matlab
的双音频电话机的图形界面
学
院
信息工程学院
专
业
通信工程
学
号
姓
名
任课教师
赵晓燕
2013
年
5
月
28
日
摘
要
MATLAB
是美国
MathWorks
公司出品的商业数学软件,本学期通过对
matlab
的学习,
我们了解了
matlab
的基本使用方 法,
并能很好的利用
matlab
进行信号与系统等课程的分 p>
析和学习,对我们今后的学习和工作有很大的帮助,本文是
matlab p>
的结课论文,题目要
求是创建双音频电话机的图形用户界面
(
phone
)
、
创建演示抽样定理的图形用户界面 或者
用
matlab
设计电子音乐。我选择了设计双音频 电话机的图形用户界面。本文叙述的是制
作双音频电话机图形界面的主要过程。
关键字:
matlab
双音频
图形用户界面
一、
matlab
简介
MATLAB
(矩阵实验室)是
MATrix
LABoratory
的缩写,是一款由美国
The
< p>MathWorks
公司出品的商业数学软件。
MATLAB
是一种用于算法开发、数据可视化、数据分析以及数
值计算的高级技术计算语言
和交互式环境。除了矩阵运算、绘制函数
/
数据图像等常用功
能外,
MATLAB
还可以用来创建用户界面及与调用其它语言(包括
C
,
C++
和
FORTRAN
< p>)编
写的程序。
尽管
MA TLAB
主要用于数值运算,但利用为数众多的附加工具箱(
Toolbox p>
)它也适
合不同领域的应用,例如控制系统设计与分析、图像处理、
信号处理与通讯、金融建模和
分析等。另外还有一个配套软件包
S imulink
,提供了一个可视化开发环境,常用于系统
模拟、动态<
/p>
/
嵌入式系统开发等方面。
1970
年代末到
80
年代初,时任美国新墨西哥大学
教授的克里夫·莫勒尔为了
让学生更方便地使用
LINPACK
及
EISPACK
< p>(需要通过FORTRAN
编程来实现,但当时学生们并无相关知识
)
,独立编写了第一个版本的
MATLAB
。这个版本
< p>的
MATLAB
只能进行简单的矩阵运算,例如矩阵转置、计算行列 式和本征值,此版本软件
分发出大约两三百份。
1984
年,杰克·李特、克里夫·莫勒尔和斯蒂夫·班格尔特合作成立了
Ma thWorks
公司,正式把
MATLAB
推向市场。< /p>
MATLAB
最初是由莫勒尔用
FORTRAN
编写 的,李特和班格
尔特花了约一年半的时间用
C
重新编写了
MATLAB
并增加了一些新功能,同时,李特还开
发了
第一个系统控制工具箱,其中一些代码到现在仍然在使用。
C
语言版的面向
MS-DOS
系统的
MATLAB 1.0
在拉 斯维加斯举行的
IEEE
决策与控制会议(
IEEE Conference on
Decision and Control
10
份拷贝,而到了现在,
< p>根据
MathWorks
自己的数据,
目前世界上< /p>
100
多个国家的超过一百万工程师和科学家在使
用
MATLAB
和
Simulink
。
< /p>
1992
年,学生版
MATLAB
推出;< /p>
1993
年,
Microsoft Windows
版
MATLAB
面世;
1995
年,推出
Linux
版。
MATLAB
的主要提供以下功能:
①
可用于技术计算的高级语言
②
可对代码、文件和数据进行管理的开发环境
③
可以按迭代的方式探查、设计及求解问题的交互式工具
④
可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等的数学函数
⑤
可用于可视化数据的二维和三维图形函数
⑥
可用于构建自定义的图形用户界面的各种工具
⑦
可将基于
MATLAB
的算法与外部应用程序和语言
(如
C
、
C++< /p>
、
Fortran
、
Java
、 p>
COM
以及
Microsoft Excel
)集成的各种函数
MATLAB
Simulink
和其它所有
MathWorks
产品的
基础,
MATLAB
可以通过附加的工具箱(
Toolbox
)进行功能扩展,每一个工具箱 就是实现
特定功能的函数的集合。
MathWorks
提 供的工具箱分以下几大类:
①
数学和优化
②
统计和数据分析
③
控制系统设计和分析
④
信号处理和通讯
⑤
图像处理
⑥
测试和测量
⑦
金融建模和分析
⑧
应用程序部署
⑨
数据库连接和报表
⑩
分布式计算
这些工具箱大多是用开放式的
MATLAB
语言写成,
用户不但可以查看源代码,
还可以 p>
可根据自己的需要进行修改以及创建自定义函数。此外,常有用户在
MATL AB Central:
File Exchange
发布自己编写的
MATLAB
程序或工具箱,供他人自由下载使用。
< p>
MATLAB
语言是一种交互性的数学脚本语言,其语法与
C/C+ +
类似。它支持包括逻辑
(
boolean
)
、数值(
numeric
)
、文本(
text
)
、函数柄(
function
handle
)和异质数据容
器(
heterogene ous
container
)在内的
15
种数据 类型,每一种类型都定义为矩阵或阵列
的形式(
0
维至任 意高维)
。
执行
MATLAB
代码的最简单方式是在
MATLAB
程序的命令窗口(
Co mmand Window
)的
提示符处(
>>
)输入代码,
MATLA
会即时返回操作结果(如果有的话)
。此时
,MATLAB
可以
看作是一个交互式的数学终
端,简单来说,一个功能强大的“计算器”
。
MATLAB
代码同 样
可以保存在一个以
.m
为后缀名的文本文件中,然后在 命令窗口或其它函数中直接调用。
MATLAB
语言的 优点是简单易学,代码短小高效,只需熟悉算法特点、使用场合、函
数调用格式和参数意
义,
不必花大量时间纠缠具体算法,
计算功能非常强大,
具有强大 的
图形表达功能和可扩展性能。
二、
双音频电话的设计
1.
双音频拨号电话原理
< p>
在双音频(
DTMF
)电话机中
,
包 括
DTMF
发送器和
DTMF
接受器,是广泛用于 快速按键
话机和无线通信设备中的专用集成电路。
DTMF
发送器能根据不同的按键号码发出相应的
一组双音频信号,如下图所示(其中
f1
、
f2
、
f3
、
f4
为低频群,
f5
、
f6
、
f7
为高频群)
:
f5
f1
f2
f3
f4
1
4
7
f6
2
5
8
0
f7
3
6
9
#
*
其基本原理是由
3 .58Mhz
的晶体振荡器分频后,得到四个高频和四个低频,在高、低
频中各取一个频率合成后,
就得到双音频信号。
在本课题中考虑到双音频信号由两 个正弦
信号组合而成,可假设双音频信号时域表达形式如下:
其中假设每个正弦信号电压为
0.25V
,
f
L
为低频信号的频率,
f
H
为高频信号的频率。
信号每个数码发号时间大
于
0.04
s,
两个数码之间间隔时间大于
0. 05s
,
DTMF
接收器对输
入信号进行
分离、
译码、
缓冲恢复为对应于
16
种
< p>DTMF信号。
在电话机面板上
4*4
组合的
按键组与相应的信号的表达式一一对应,当按下一个数据键时,例如“
5
”时,则产生频
率为
770HZ
和
1336HZ
的两个正弦波,并叠加成对应的双音频信号。国际电报电话咨询委
员会和我国标准都规定拨号数字与高、低频的组合关系如表(
1
) 所示:
fH(Hz)
1209
fL(Hz)
697
770
852
941
1
4
7
*
2
5
8
0
3
6
9
#
A
B
C
D
1336
1477
1633
表(
1
)
双音多频信号频率组合
利用< /p>
MATLAB
中的图形用户界面
GUI
进行仿真双音 频拨号电话在实际拨号时对应的时
域波形,
并利用
MAT LAB
库函数中提供的相应频域变换函数
fft
、
abs
做出每一按键时域信
号的功率谱。电话拨号盘上的
A
、
B
、
C
、
D< /p>
键为保留拨号键,在本课题仿真中不对其进行
仿真设计。
2.
DTMF
信号的产生合成
鉴 于
CCITT
对
DTMF
信号规定的指标,
这里每个数字信号取
1000
个采样点模拟按键信
号,
并且每两个数字之间用
100
个
0
来表示间隔来模拟静音。
以便区别连续的两个按键信
号。间隔的静
音信号也是在按键时产生的。
以按键
0
为例,简单介绍拨号音产生的过程:
%
按键
0
的响应函数
function varargout=push button0_Callback(h,eventdata,handles,varargin)
n=[1:1000];%
每个数字
1000
个采样点表示
d0=sin(0.7217*n)+sin(1.0247*n);%
对应行频列频叠加
n0= strcat(get(1,'string'),'0');%
获取数字号码
set(1,'string',n0); %
显示号码
spa ce=zeros(1,100);%100
个
0
模拟静音信号< /p>
global NUM
phone=[NUM,d0];
NUM=[phone,space];%
存储连续的拨号音信号
wavplay(d0,8192);%
产生拨号音
程序解释:
NUM
为定义的全局变量,用于存储连续的拨号音(
< p>DTMF)信号,包括数字信号音以及
静音信号。
d0=sin(0.7217*n)+sin(1. 0247*n)
中的行频与列频是由表
1
中
0 p>
键对应的计算得出,
已知声音取样频率,则取样后。
对于保留的两个功能键“
*
”
“#”
,按照现行键盘式拨号电话的习惯,将“
*
”作为删
除键,
“#”作为确认键。
“
*
”删除键的作用是将前面拨错的号码删除退回,表现为将显
示窗
口已经显示的错误号码退回一位数字,
并且将连续拨号音信号的存储单元
NUM< /p>
中退回
一位拨号音信号和静音信号。删除可以进行连续的操作。
过的号码进行确认保留,
意味着此时 连续拨号音信号的存储单元
NUM
中的信号即为最后用
于
识别的连续拨号音
DTMF
信号,并在显示窗口中显示“#”号作为标记。
%
删除键的响应函数
function
varargout = pushbuttonback_Callback(h,eventdata,ha
ndles,varargin)
n=[1:1000];
num=get(1,'string');
l=length(num);
n11=strrep(num,num,num(1:l-1));
d11=sin(0.7217*n)+sin(0.9273*n);
set(1,'string',n11);
global
NUM
L=length(NUM);
NUM=NUM(1:L-1100);
wavplay(d11,8192);
3
.
gui
界面设计与制作
GUI
是实现人机交互的中介,
可以通过它实现 数据的输入、
处理和输出。
MATLAB
提供
了一个专门的
GUI
设计工具——图形用户界面开发环境
(G UIDE)
,使用该工具,可以快速
完成
GUI
设计任务。
利用
MATLAB
提供的有关函数,
< p>还可以创建工具栏控件和多种对话框。,
GUI
就是 通过窗口、选单、按钮、文字说明等构成一个美观的界面,提供用户利用鼠标或
键盘方便
地实现操作。
Matlab
设计图形用户界面的方法有两种:使用可视化的界面环 境
和通过编写程序,本课题采用可视化的界面环境仿真双音频波号电话。
利用
GUI
图形用户界面设计工具制作电话拨号面板,把
DTMF
信号和电话机的键盘矩
阵对应起来。其中选用我
们熟悉的
10
个数字键
0
—
9 p>
,
2
个功能键“
*
”、“#”,另 四
个键省略。
按照图
1
电话机键盘矩阵的 排列方式制作四行三列的按键控件。
每个按键可用
(
Push Button
)添加。
< /p>
然后,
为了更直观的反应对应的按键号码,
可以设置一个编 辑框,
用于动态的显示拨
号号码,模拟实际电话的拨号显示窗口。编辑框
可用
(
Edit Text
)添加。
另外,
为了图形电话拨号面板的简洁美观,
可以添加空白区域作为背景,
并用静态文
本框制作文字信息。背景可用
添加。
在主窗口中输入
gui de
后回车可快速开始
GUI
设计,如图(
1 p>
)
(
Frame
)添加,静态文本框可用
(
Static Text
)
苏州太湖大学堂-苏州太湖大学堂
华侨大学电梯事故-华侨大学电梯事故
四平职业大学电话-四平职业大学电话
女大学生裸条借贷-女大学生裸条借贷
湖南工业大学陈静-湖南工业大学陈静
女大学生厕所-女大学生厕所
东北大学自考专业-东北大学自考专业
国防大学教授李莉-国防大学教授李莉
-
上一篇:武汉大学辩论实践与鉴赏结课论文
下一篇:大学课程论文字体样板