当前位置:文档之家› 内蒙古科技大学matlab结课论文

内蒙古科技大学matlab结课论文

MATLAB结课论文题目:基于matlab的双音频电话机的图形界面装订线学院信息工程学院专业通信工程学号姓名任课教师赵晓燕2013年 5 月28 日摘要MATLAB是美国MathWorks公司出品的商业数学软件,本学期通过对matlab的学习,我们了解了matlab的基本使用方法,并能很好的利用matlab进行信号与系统等课程的分析和学习,对我们今后的学习和工作有很大的帮助,本文是matlab的结课论文,题目要求是创建双音频电话机的图形用户界面(phone)、创建演示抽样定理的图形用户界面或者用matlab设计电子音乐。

我选择了设计双音频电话机的图形用户界面。

本文叙述的是制作双音频电话机图形界面的主要过程。

关键字:matlab 双音频图形用户界面一、matlab简介MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks 公司出品的商业数学软件。

MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。

尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。

另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。

1970年代末到80年代初,时任美国新墨西哥大学教授的克里夫·莫勒尔为了让学生更方便地使用LINPACK及EISPACK(需要通过FORTRAN 编程来实现,但当时学生们并无相关知识),独立编写了第一个版本的MATLAB。

这个版本的MATLAB只能进行简单的矩阵运算,例如矩阵转置、计算行列式和本征值,此版本软件分发出大约两三百份。

1984年,杰克·李特、克里夫·莫勒尔和斯蒂夫·班格尔特合作成立了MathWorks 公司,正式把MATLAB推向市场。

MATLAB最初是由莫勒尔用FORTRAN编写的,李特和班格尔特花了约一年半的时间用C重新编写了MATLAB并增加了一些新功能,同时,李特还开发了第一个系统控制工具箱,其中一些代码到现在仍然在使用。

C语言版的面向MS-DOS 系统的MATLAB 1.0在拉斯维加斯举行的IEEE决策与控制会议(IEEE Conference on Decision and Control)正式推出,它的第一份订单只售出了10份拷贝,而到了现在,根据MathWorks自己的数据,目前世界上100多个国家的超过一百万工程师和科学家在使用MATLAB和Simulink。

1992年,学生版MATLAB推出;1993年,Microsoft Windows版MATLAB面世;1995年,推出Linux版。

MATLAB的主要提供以下功能:①可用于技术计算的高级语言②可对代码、文件和数据进行管理的开发环境③可以按迭代的方式探查、设计及求解问题的交互式工具④可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等的数学函数⑤可用于可视化数据的二维和三维图形函数⑥可用于构建自定义的图形用户界面的各种工具⑦可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM 以及Microsoft Excel)集成的各种函数MATLAB的一个重要特点是可扩展性。

作为Simulink和其它所有MathWorks产品的基础,MATLAB可以通过附加的工具箱(Toolbox)进行功能扩展,每一个工具箱就是实现特定功能的函数的集合。

MathWorks提供的工具箱分以下几大类:①数学和优化②统计和数据分析③控制系统设计和分析④信号处理和通讯⑤图像处理⑥测试和测量⑦金融建模和分析⑧应用程序部署⑨数据库连接和报表⑩分布式计算这些工具箱大多是用开放式的MATLAB语言写成,用户不但可以查看源代码,还可以可根据自己的需要进行修改以及创建自定义函数。

此外,常有用户在MATLAB Central: File Exchange发布自己编写的MATLAB程序或工具箱,供他人自由下载使用。

MATLAB语言是一种交互性的数学脚本语言,其语法与C/C++类似。

它支持包括逻辑(boolean)、数值(numeric)、文本(text)、函数柄(function handle)和异质数据容器(heterogeneous container)在内的15种数据类型,每一种类型都定义为矩阵或阵列的形式(0维至任意高维)。

执行MATLAB代码的最简单方式是在MATLAB程序的命令窗口(Command Window)的提示符处(>>)输入代码,MATLA会即时返回操作结果(如果有的话)。

此时,MATLAB可以看作是一个交互式的数学终端,简单来说,一个功能强大的“计算器”。

MATLAB代码同样可以保存在一个以.m为后缀名的文本文件中,然后在命令窗口或其它函数中直接调用。

MATLAB语言的优点是简单易学,代码短小高效,只需熟悉算法特点、使用场合、函数调用格式和参数意义,不必花大量时间纠缠具体算法,计算功能非常强大,具有强大的图形表达功能和可扩展性能。

二、双音频电话的设计1.双音频拨号电话原理在双音频(DTMF)电话机中,包括DTMF发送器和DTMF接受器,是广泛用于快速按键话机和无线通信设备中的专用集成电路。

DTMF发送器能根据不同的按键号码发出相应的一组双音频信号,如下图所示(其中f1、f2、f3、f4为低频群,f5、f6、f7为高频群):其基本原理是由3.58Mhz的晶体振荡器分频后,得到四个高频和四个低频,在高、低频中各取一个频率合成后,就得到双音频信号。

在本课题中考虑到双音频信号由两个正弦信号组合而成,可假设双音频信号时域表达形式如下:其中假设每个正弦信号电压为0.25V,L f为低频信号的频率,H f为高频信号的频率。

信号每个数码发号时间大于0.04 s,两个数码之间间隔时间大于0.05s,DTMF接收器对输入信号进行分离、译码、缓冲恢复为对应于16种DTMF信号。

在电话机面板上4*4组合的按键组与相应的信号的表达式一一对应,当按下一个数据键时,例如“5”时,则产生频率为770HZ和1336HZ的两个正弦波,并叠加成对应的双音频信号。

国际电报电话咨询委员会和我国标准都规定拨号数字与高、低频的组合关系如表(1)所示:表(1)双音多频信号频率组合利用MATLAB中的图形用户界面GUI进行仿真双音频拨号电话在实际拨号时对应的时域波形,并利用MATLAB库函数中提供的相应频域变换函数fft、abs做出每一按键时域信号的功率谱。

电话拨号盘上的A、B、C、D键为保留拨号键,在本课题仿真中不对其进行仿真设计。

2.DTMF 信号的产生合成鉴于CCITT对DTMF信号规定的指标,这里每个数字信号取1000个采样点模拟按键信号,并且每两个数字之间用100个0来表示间隔来模拟静音。

以便区别连续的两个按键信号。

间隔的静音信号也是在按键时产生的。

以按键0为例,简单介绍拨号音产生的过程:%按键0的响应函数function varargout=pushbutton0_Callback(h,eventdata,handles,varargin) n=[1:1000];%每个数字1000个采样点表示d0=sin(0.7217*n)+sin(1.0247*n);%对应行频列频叠加n0=strcat(get(handles.edit1,'string'),'0');%获取数字号码set(handles.edit1,'string',n0); %显示号码space=zeros(1,100);%100个0模拟静音信号global NUMphone=[NUM,d0];NUM=[phone,space];%存储连续的拨号音信号wavplay(d0,8192);%产生拨号音程序解释:NUM为定义的全局变量,用于存储连续的拨号音(DTMF)信号,包括数字信号音以及静音信号。

d0=sin(0.7217*n)+sin(1.0247*n)中的行频与列频是由表1中0键对应的计算得出,已知声音取样频率,则取样后。

对于保留的两个功能键“*”“#”,按照现行键盘式拨号电话的习惯,将“*”作为删除键,“#”作为确认键。

“*”删除键的作用是将前面拨错的号码删除退回,表现为将显示窗口已经显示的错误号码退回一位数字,并且将连续拨号音信号的存储单元NUM中退回一位拨号音信号和静音信号。

删除可以进行连续的操作。

“#”确认键的作用是将前面拨过的号码进行确认保留,意味着此时连续拨号音信号的存储单元NUM中的信号即为最后用于识别的连续拨号音 DTMF 信号,并在显示窗口中显示“#”号作为标记。

% 删除键的响应函数function varargout = pushbuttonback_Callback(h,eventdata,handles,varargin) n=[1:1000];num=get(handles.edit1,'string');l=length(num);n11=strrep(num,num,num(1:l-1));d11=sin(0.7217*n)+sin(0.9273*n);set(handles.edit1,'string',n11);global NUML=length(NUM);NUM=NUM(1:L-1100);wavplay(d11,8192);3.gui界面设计与制作GUI是实现人机交互的中介,可以通过它实现数据的输入、处理和输出。

MATLAB提供了一个专门的GUI设计工具——图形用户界面开发环境(GUIDE),使用该工具,可以快速完成GUI设计任务。

利用MATLAB提供的有关函数,还可以创建工具栏控件和多种对话框。

,GUI就是通过窗口、选单、按钮、文字说明等构成一个美观的界面,提供用户利用鼠标或键盘方便地实现操作。

Matlab设计图形用户界面的方法有两种:使用可视化的界面环境和通过编写程序,本课题采用可视化的界面环境仿真双音频波号电话。

利用GUI图形用户界面设计工具制作电话拨号面板,把DTMF信号和电话机的键盘矩阵对应起来。

其中选用我们熟悉的10个数字键0—9,2个功能键“ * ”、“#”,另四个键省略。

按照图1电话机键盘矩阵的排列方式制作四行三列的按键控件。

相关主题