毕业设计(论文)-基于图形交互式的信号处理CAI软件的设计开发.doc_第1页
毕业设计(论文)-基于图形交互式的信号处理CAI软件的设计开发.doc_第2页
免费预览已结束,剩余81页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于图形交互式的信号处理cai软件的设计开发目 录78中文摘要i英文摘要ii1 绪论11.1 问题提出及研究意义11.2 设计的基本内容12 系统设计工具简介22.1 matlab概述22.2 图形用户界面(gui)设计32.2.1 创建gui的步骤32.2.2 gui编程72.2.3 gui的设计流程和设计原则72.2.4 控件的使用83 系统总体设计思路103.1 系统总体设计的步骤103.2 系统总体设计的结构104 系统图形用户界面设计124.1 图形用户界面外观设计124.1.1 控件对象124.1.2 控件属性的设置134.1.3 窗口属性的设置134.1.4 菜单的设计154.2 图形用户界面控件编程154.2.1 输入函数154.2.2 输出函数164.2.3 回调函数175 系统用户界面的实现175.1 引导模块175.1.1 回调函数的编写175.1.2 界面功能185.2系统说明模块185.3 主界面模块195.3.1 回调函数的编写195.3.2 界面功能205.4 基本信号的产生模块205.4.1 回调函数编写的基本原理205.4.2 界面功能225.4.3 界面使用演示235.5 序列基本计算模块255.5.1 回调函数编写的基本原理255.5.2 界面功能265.5.3 界面使用演示265.6 数据采集模块275.6.1 回调函数编写的基本原理275.6.2 界面功能285.6.3 界面使用演示285.7 卷积模块295.7.1 回调函数编写的基本原理295.7.2 界面功能305.7.3 界面使用演示305.8 傅里叶变换模块325.8.1 回调函数编写的基本原理325.8.2 界面功能335.8.3 界面使用演示335.9 z变换模块355.9.1 回调函数编写的基本原理355.9.2 界面功能365.9.3 界面使用演示375.10 滤波器设计模块405.10.1 回调函数编写的基本原理405.10.2 界面功能425.10.3 界面使用演示43结束语49致 谢50参考文献51附 录51基于图形交互式的信号处理cai软件的设计开发摘要信号与系统是电子信息工程专业的一门基础课程,由于它内容繁多、概念抽象、设计复杂等,使得学生在学习时常常感到厌烦,难以理解和掌握。为了使学生们打好专业课基础,提高学习兴趣,特用matlab设计了一个信号处理的实验软件。该实验软件共有16个实验,各个实验都可以在实验界面中通过输入相应的参数,观察到实验结果和图形,以便于学生们通过实验加深对课程中概念和原理的理解。matlab是一种交互式、面向对象的程序设计语言,其结构完整、具有优良的移植性。更重要的是它在数字信号处理方面具有强大的功能。因此本设计采用matlab的图形用户界面设计功能,设计各个实验界面。本实验软件在matlab7.1环境下可以成功运行,只需将系统默认路径改为此实验软件的所在路径即可。本实验系统可以完成基本信号的产生、卷积、傅里叶变换、z变换、滤波器的设计等实验。关键字 交互式/图形用户界面/信号处理based on graph interactive signal processing cai software design developmentabstractsignal and system is a basic curriculum in the electric information specialty. because the various content, abstract concept, complex design and so on. the students frequently feel dull with difficulty understanding and grasping. in order to make the students have a good basic and enhance the study interest of students, put forward developing an experimental software based on signal processing. the signal processing software includes six-teen experiments, each experiment can be completed in the experimental interface, enter the corresponding experimental parameter, then can obtain the output of corresponding graph and data, which can make the students have better understanding in concept and principle.matlab is an interactive mode and object language. it has complete construction and transplant well. especially it have strong power in the digital signal processing. so the design adopts the design function of the graphic user interface in matlab to design each experiment. the experimental system runs successfully under the matlab7.1 environment, only need to alter the acquiescing in path to the path of the signal processing software. the experimental system can complete the experiments of basic signal generation, convolution, fourier transformation, z transformation, filter design and so on.key words interactive mode ,graphic user interface ,signal processing 1 绪论1.1 问题提出及研究意义随着计算机技术和信息科学的飞速发展,数字信号处理已经发展成为一门独立的学科并成为信息科学的重要组成部分,在语音处理、图像处理、雷达、航空航天、地质勘探、通信、生物医学工程等众多领域得到广泛的应用。信号处理类课程主要介绍离散信号与离散系统分析的基本理论,包括离散傅里叶变换、数字滤波器的设计、数字信号处理的实现等内容。通过本课程的学习,要求学生掌握信号处理的基本理论、基本方法和基本技能,为后继学习和应用信号处理技术奠定基础。众所周知matlab的信号处理工具箱(signal processing toolbox)覆盖了经典信号处理理论的大多数内容,是一个非常优秀的算法研究和辅助设计工具。但是依靠matlab工具箱仍然不能直接地完成对信号的分析处理,它需要经过一系列的程序编写后方能进行。所以使用者必须有一定的理论基础和实践经验,但并非所有使用者都学习过matlab。为了使那些未学过matlab的学生同样能方便地进行信号的分析与处理,也为了对信号的分析与处理更加方便快捷、更加高效实用,设计了基于matlab的信号处理实验系统。将matlab的数字信号处理工具箱、图形用户界面(gui)设计和数字信号处理的基础知识有机地结合起来,在简要阐明函数原理和算法的基础上,给出了详细的函数使用说明,再通过具体的实验实例,进一步加深了学生对信号处理理论原理的理解,适合于学生对知识的学习和掌握。1.2 设计的基本内容本设计为基于信号处理的实验软件系统的开发,是利用matlab的可视化图形用户界面(gui)工具和信号处理知识,设计实验系统的图形用户界面的总体结构,能够用于完成相关的信号处理实验。本设计主要完成以下功能:(1)信号处理实验系统能够完成以下信号处理实验:序列的基本计算、基本信号的产生、数据采集、卷积、傅里叶变换、z变换以及fir和iir滤波器的设计。 (2) 具有数据输入输出、图形输出、数据修改和文件保存、打印等功能。(3) 界面可视性强,操作简单方便,结果直观易懂、便于分析。(4) 系统易于扩展新的实验,以不断丰富信号处理系统的内容。2 系统设计工具简介2.1 matlab概述 matlab是一种高效的工程计算言语,它将计算、可视化和编程等功能集于一个易于使用的环境。在matlab环境中描述问题及编制求解问题的程序时,用户可以按照符合人们科学思维的方式和数学表达习惯的语言形式来书写程序。其典型应用主要包括以下几个方面:l 数学计算;l 算法开发;l 数据采集;l 系统建模和仿真;l 数据分析和可视化;l 科学和工程绘图;l 应用软件开发(包括用户界面)。matlab是一个交互式系统(写程序与执行命令同步),其基本的数据元素是没有维数限制的阵列。这使得用户可以解决很多工程技术上的问题,特别是那些包含了矩阵和向量的公式的计算。采用matlab编制解决上述问题的程序比用采用只支持标量和非交互式的编程语言(c语言和fortan语言)更加方便。matlab的一个重要特色就是它有一套程序扩展系统和一组称之为工具箱(toolboxes)的特殊应用子程序。工具箱是matlab函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。matlab系统由以下5个主要部分组成,下面具体进行介绍。开发环境:由一系列工具组成。这些工具方便用户使用matlab的函数和文件,其中的许多工具采用的是图形用户界面。包括matlab桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于浏览帮助、工作空间、文件的浏览器。matlab数学函数库:这是一个包含大量计算算法的集合,这些函数包括从最简单最基本的函数(如加法、正弦等)到诸如矩阵的特征向量、快速傅里叶变换等复杂的函数。matlab语言:这是一个高级的矩阵/阵列语言,它包括控制语句、函数、数据结构、输入输出和面向对象的编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(m文件)后再一起进行。图形处理:用matlab可以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维数据可视化、图像处理、动画和表达式作图,低层次的作图包括定制图形的显示和为用户的matlab应用程序建立的图形用户界面。matlab应用程序接口(api):这是一个库,它允许用户编写可以和matlab进行交互的c或fortan语言程序。2.2 图形用户界面(gui)设计gui是实现人机交互的中介,可以通过它实现数据输入、处理和输出。matlab提供了一个专门的gui设计工具guide。使用该工具,可以快速完成gui设计任务。2.2.1 创建gui的步骤matlab图形用户界面开发环境(guide)提供了一系列创建图形用户界面(gui)的工具。这些工具极大地简化了gui设计和生成的过程。可以用guide完成下面的任务。(1) 输出gui;(2) 使用guide输出编辑器,可以通过单击和拖拉gui控件很容易地创建gui;(3) gui编程;(4) guide自动生成一个控制gui如何操作的m文件。该文件初始化gui并包含一个所有gui回调(用户单击gui控件时执行的命令)的框架。使用m文件编辑器,可以向回调中添加代码,运行相关函数。2.2.1.1 启动guide在命令窗口中键入guide或通过文件新建gui,启动guide显示如图2-1所示图2-1 “guide quick start”对话框打开“guide quick start”对话框,利用guide模板创建新的gui,或者打开已经存在的gui。在本设计中选择blank gui(default)后,单击“ok”按钮,在输出编辑器中打开gui。2.2.1.2 输出编辑器在guide中打开gui以后,它显示在输出编辑器中。它是所有guide工具的控制面板。图2-2显示了空白gui模板的输出编辑器。图2-2 输出编辑器可以通过拖拉控件输出gui,这些控件位于输出编辑器左侧的工具箱中,有按钮、弹出式菜单和坐标轴等多种。例如把一个按钮和一个坐标轴拖拉到输出区域,效果如图2-3所示。双击此控件可以设置其基本属性。图2-3 在输出编辑器中拖放控件2.2.1.3 菜单编辑器菜单系统的设置可以通过菜单编辑器来完成。选择guide的tools菜单中的menu editor选项或单击工具条中的按钮。该菜单编辑器如图2-4所示。图2-4 菜单编辑器在菜单编辑器中:图标是新建菜单,是新建子菜单;和用来将菜单向左移和右移;和是将菜单项上移和下移;是删除菜单项。 “label”栏用来填写菜单项的名称,如果在前面加“&”符号则加快捷键,当运行时第一个字母会加下划线,以方便用户快速激活菜单项;“tag”是标记;“separator above the item”是分隔符;“check mark this item”是初值是否已选;“enable this item”是此项有效;“callback”栏用于输入回调函数。回调函数是字符串,可以包含任何matlab的合法指令和m文件名,回调的作用是将字符串用“eval”执行,以实现菜单的功能。2.2.1.4 运行gui从“tools”菜单选择“run”选项或单击按钮,运行gui。这时将生成两个文件.m文件和.fig文件,在输出编辑器外显示功能gui。效果如图2-5所示。图2-5 gui界面(.fig文件)2.2.1.5 gui的fig文件和m文件guide把gui保存在两个文件中,它们在第一次保存或运行时生成。一个是fig文件,扩展名为.fig,它包含对gui和gui控件的完整描述;另一个是m文件,扩展名为.m,它包含控制gui的代码,包括其控件的回调。这两个文件与gui显示和编程任务相对应。在界面编辑器中创建gui时,内容保存在m文件中;对gui编程时,内容保存在m文件中。设计好gui以后,可以用m文件编辑器编写gui的m文件。guide会在第一次保存或运行gui时生成这个文件。这个gui的m文件会初始化gui,并在gui显示屏幕上显示以前包含的代码来完成任务。初始情况下,每个回调都只包含一个函数定义行,然后用m文件编辑器添加代码来完成函数的编写。单击输出编辑器工具条上的图标打开m文件。图2-6显示了gui界面.m文件。图2-6 gui界面(.m文件)2.2.2 gui编程在输出编辑器中gui的属性设置以后,下一步工作就是编程。其主要内容包括:(1) 创建gui的m文件;(2) 打开gui的m文件;(3) 在回调间共享数据;通过将数据保存到matlab handles结构中,可以实现回调间的数据共享。gui中的所有控件使用同一个handles结构。它会传递一个输入变量给guide生成的所有回调函数。可以在任何回调函数中获取handles结构中的数据,因为hobject和handles是guide生成的所有回调函数的输入变量。(4) 在初始化函数中添加代码;(5) 在回调函数中添加代码; 这些回调函数有的是针对窗口而言的,还有的是针对具体控件而言的,学会了回调函数的编写将有助于高效编写matlab图形用户界面程序2.2.3 gui的设计流程和设计原则2.2.3.1 gui的设计流程gui开发设计的一般流程图如图2-7所示:开 始任务定义草图设计设计检测编写代码代码检测结束图2-7 开发设计流程图从图中可以看出,整个开发过程分为两部分:设计阶段和实现阶段。创造性的劳动是在设计阶段进行的,开发文档便是对这些思想的记录,因此,设计者不要忽视设计阶段。另外,开发流程不是单向进行的,有时有一个反复的过程。后面会遇到一些无法解决的问题,因此需要对前面做局部调整。这种反复过程是正常开发无法避免的。严格按照上述流程进行开发带来的一个好处是,开发者能够从整体上把握设计,制定出合适的策略来解决问题。2.2.3.2 gui设计的原则由于要求不同,设计出来的界面也是千差万别的。但是,自从人们开始设计图形界面以来,界面设计的评判标准并没有太大的变化。简单地说,一个好的界面应遵循的标准可以用九个字来概括:简洁性、一致性、熟悉性。简洁性意味着界面简单明了,直接清晰。用户可以很快提取对自己有用的信息。一致性意味着设计系统的各个环节应遵从统一的、简单的规则,保证不出现例外的情况。熟悉性意味着系统设计时尽量保持与该类流行界面相似,比如vc的对话框风格,视图的风格、matlab的figure风格。这样用户操作起来就容易上手,误操作率比较低。以上三点,就是要求在设计整个过程中贯穿以人为本的设计理念,设计者应该经常考虑以下两个问题:一是用户在没有熟悉界面之前,完成一个操作需要多长时间?二是用户在熟悉界面后,完成一个普通操作需要多长的时间?总之,便于用户操作是最重要的。2.2.4 控件的使用除了菜单外,控件也是很重要的界面组成部分,常用的控件包括命令按钮、单选按钮、开关按钮、复选框、文本框、静态文本、滚动条、框架、列表框、弹出式菜单和坐标轴。各控件的具体功能如表2-8所示。表2-8控件的功能控件名property name功能命令按钮pushbutton最常用的控件,用于相应用户的鼠标单击,按钮上有说明文字说明其作用开关按钮togglebutton当单击时会凹凸状态切换单选按钮rodiobutton当单击时会用黑白点切换,总是成组出现,多个单选按钮互斥,一组中只有一个被选中复选框checkbox当单击时会用“”切换,有选中、不选中和不确定等状态,总是成组出现,多个复选框可同时选用文本框edittext可任意输入和编辑单行和多行文字,并显示出来静态文本statictext用于显示文字信息,但不接受输入滚动条slider可以用图示的方式显示在一个范围内数值的大概值范围,用户可以移动滚动条改变数值框架frame将一组控件围在框架中,用于装饰界面列表框listbox显示下拉文字列表,用户可以从列表中选择一项或多项弹出式菜单pop-up menu相当于文本框和列表框的组合,用户可以从下拉列表中选择坐标轴axes用于绘制坐标轴创建控件以后,需要对控件的属性进行设置,以达到设计所需的功能。大部分控件都有以下属性:sting属性:用于显示在控件上的字符串,起说明或提示作用。callback属性:回调函数,和菜单的一样。enable属性:表示该控件有效,如果“on”则表示有效,如果“off”则表示无效。tooltipstring属性:当鼠标放在控件上时显示提示信息,为字符串。字体属性:包括fontname,fontsize等。tag属性:控件的标记,用于识别控件。3 系统总体设计思路3.1 系统总体设计的步骤在本系统的设计中,界面布局设计采用自底向上的设计方法,即先设计各个实验子界面再设计主界面,最后设计引导界面。各个回调函数的编写顺序也是采用自底向上的设计方法,即先编制各个实验子界面的回调函数,再编写主界面和引导界面的回调函数,其设计的具体步骤如下:(1) 运用matlab的图形用户界面(gui)设计方法,设计整个实验系统的开始引导界面、实验主界面及其实现信号处理课程中具体实验的各个子界面; (2) 分别编写各个子界面的各个控件对象的回调函数,来实现控件相应控制功能,达到直接通过界面上各个控件就可以控制数据的输入输出,并可以方便的对实验结果的数据及其图形读取和分析;(3) 编写主界面的回调函数,将各个实验子界面整合在信号处理系统实验主界面中,即通过主界面就可以进入任何一个实验子界面进行实验;(4) 编写开始引导界面的回调函数,实现从引导界面直接进入主界面进行实验,从而形成一个完整的实验系统。3.2 系统总体设计的结构本实验系统总共包括十个模块:引导模块、主模块、简介模块、基本信号的产生模块、序列基本计算模块、数据采集模块、卷积模块、傅里叶变换模块、z变换模块、滤波器设计模块。有些实验界面模块下面又有下一级实验界面模块,如基本信号的产生模块下有基本离散信号的产生界面和基本连续信号的产生界面;卷积模块下有离散信号的卷积界面和连续信号的卷积界面;傅里叶变换模块下有基本序列的傅里叶变换界面和有限序列的傅里叶变换界面;z变换模块下有有限长序列的z变换模块和z变换的应用模块,其中有限长序列的z变换模块下有序列的z变换界面和序列的逆z变换界面,z变换的应用模块下有解差分方程界面和系统函数及输入求输出界面;滤波器设计模块下面还有fir滤波器设计模块和iir滤波器设计模块,其中fir滤波器模块又包含fir滤波器线性的判断实验界面、窗函数的频率响应实验界面和fir滤波器的设计实验界面,iir滤波器模块又包含完全iir滤波器的设计实验界面和典型iir滤波器实验界面。系统的总体设计结构图,如图3-1所示。引导界面主界面基本信号的产生序列的基本运算数据采集卷积傅里叶变换z变换滤波器的设计fir滤波器的设计iir滤波器的设计典型滤波器的设计完全滤波器的设计窗函数的频率响应fir滤波器的设计fir滤波器线性的判断有限长序列的z变换z变换的应用序列的z变换序列的逆z变换求解差分方程系统函数和输入求输出基本序列的傅里叶变换有限序列的傅里叶变换连续信号的卷积离散信号的卷积基本连续信号的产生基本离散信号的产生图3-1 系统的总体设计结构图4 系统图形用户界面设计本实验软件系统的设计是在matlab 7.1环境下进行的,利用matlab的图形用户界面设计工具gui来进行整个系统的设计。对于基于matlab图形用户界面的设计,它的设计过程非常类似于vb的编程过程,本实验系统的设计工程可以分为以下两个部分:(1) 图形用户界面外观设计:主要是通过对话框、按钮、文本框等许多工具的使用,设计出一个图形用户界面,同时也应清楚这个图形界面的功能是什么,即在图形界面上的操作会引起什么样的响应。(2) 图形用户控件编程:用户将根据在外观设计阶段所确定的图形界面的功能,针对各个不同的图形对象,来编写能够实现该功能的回调函数及进行相应的属性设置,确保这个图形界面能够完成所希望的功能.4.1 图形用户界面外观设计在matlab命令窗口中输入guide,或在matlab主菜单中点击file菜单中的new选项,选择其中的gui命令,就可以显示图形用户界面的设计模板。总共有四个模板,本实验系统的设计中使用默认模板(blank gui)。选定设计模版后,单击ok,即进入gui界面设计环境。4.1.1 控件对象本设计中用到的控件对象有以下几个:静态文本框(static text)、可编辑文本框(editable text)、框架(frame)、列表框(list box)、弹出式菜单(pop-up menu)、命令按钮(push button)几种。需要哪个控件就在相应的控件单击鼠标左键,然后再设计窗口中需要放置的位置单击鼠标左键,即可完成放置。下面分别介绍各个控件在本实验系统设计中的具体用途。静态文本框用来静态显示文本字符串,在本设计中用于显示其它控件的说明信息,用来帮助说明其它控件的用途等,还有用作显示数据输出。可编辑文本框用于进行数据的输入及输出,可进行单行或多行输入及输出,并且可以对数据进行修改。列表框用于用户从中选择相应的实验选项进行实验,当选项比较多时,本设计采用了列表框,只要单击其中一个选项,就可以执行相应的操作并得出相应的结果。弹出式菜单用于用户从中选择互相不同的实验选项进行实验,当用户选中其中的一个表项并单击时,该表项就会出现在信息显示框中,就可以执行相应的操作并得出相应的结果。命令按钮当界面执行的功能比较单一时,直接采用命令按钮,只有单击该按钮,就可以执行相应的操作并得出相应的结果。框架为了让用户界面看起来层次分明,容易被用户理解,把作用相关的一组控件用框架框起来。坐标轴用于实验结果图形的输出显示。本实验系统设计中,放置好的所有界面基本布局,是输入位于窗口的右上方,输出位于窗口的右下方,图形的输出位于窗口的左边。4.1.2 控件属性的设置本实验系统设计中的主要修改以下几种控件的属性: backgroundcolor 设置控件的背景颜色; frontname 设置控件的字体; frontsize 设置控件的字体大小; froegroundcolor 设置控件的字体颜色; string 设置控件上显示的文本串; tag 标记控件的名字,在进行程序设计时,可以利用该名字来指定控件; units 设置控件的大小,控件与图形窗口的距离等单位; callback 定义控件对象的控制动作,设计时设它为%automatic,来使系统自动产生回调函数,以便函数的编写;max与min 在可编辑文本框中,设置max-min1,从而可编辑文本框可以进行多行输入输出;在列表框中设置max-min=ns)&(n2=ns)&(n3=ne);实指数序列x(n)=,;matlab实现:x4=an4;% n4为序列的区间正弦序列x(n)=sin(),matlab实现:x5=sin(sw*n5);% n5为序列的区间余弦序列x(n)=cos(),matlab实现:x6=cos(cw*n6);% n6为序列的区间复指数序列matlab实现:x7=exp(sigma+complex_w*j)*n7);% n7为序列的区间周期序列x(n)=x(n+n),其中,n为序列的周期。matlab实现:xx=x*ones(1,n);x8=(xx(:);% n8为序列的区间基本离散信号的产生的主要的回调函数见附录中函数disperse.m。5.4.2 界面功能此模块包括两个实验界面,基本连续信号产生界面和基本离散信号的产生界面。(1)基本连续信号的产生界面:可以产生单位冲激函数、单位阶跃函数、复指数函数几种连续信号。只需在信号的时间区间的编辑框中输入信号显示区间、脉冲宽度dt编辑框中输入脉冲宽度(同时作为时间间隔),在信号的突变点编辑框中输入信号的突变点(用于单位冲激函数和单位阶跃函数信号的突变点),在频率和相位框输入相应的参数,然后从下拉菜单中选择相应的信号选项,就可以在输出框中输出相应数据,在图形框中输出相应的图形。(2)基本离散信号的产生界面:可以产生单位脉冲序列、单位阶跃序列、矩形序列、实指数序列、正弦序列、余弦序列、复指数序列、周期序列几种离散信号。只需在输入框中输入相应信号的各种控制参数,然后从下拉菜单中选择相应的信号选项,就可以在输出框中输出相应数据,在图形框中输出相应的图形。5.4.3 界面使用演示(1) 基本连续信号的产生界面演示下面以信号区间为0:6,信号产生的时间间隔为0.25,频率为10,相位为-0.5的复指数函数信号的产生为例,来进行演示。具体操作:在“信号的时间区间”输入信号显示的区间0:6,在“脉冲宽度dt”输入脉冲宽度0.25(作为信号产生的时间间隔),在“复指数函数频率”输入频率10,在“复指数函数相位”输入相位-0.5,然后从下拉菜单中选择复指数函数选项,就可以得到如图5-4所示的结果。图5-4 复指数函数信号的产生演示(2) 基本离散信号的产生界面演示下面以信号区间为1:10,频率为5的正弦序列的产生为例来进行演示。具体操作:在“信号区间”输入信号区间1:10,在“正弦序列频率”输入频率5,从下拉菜单中选择“正弦序列”选项,则可得到如图5-5所示的结果。图5-5 正弦序列的产生演示5.5 序列基本计算模块5.5.1 回调函数编写的基本原理 在数字信号处理中,对信号所做的基本运算有相加、相乘、信号能量、信号功率、信号的抽样和、信号的抽样积等,在此模块中主要使用matlab中的基本表达式来实现,下面分别介绍:信号加: x(n)=x1(n)+x2(n)matlab实现:x=x1+x2;注意:x1和x2序列应该具有相同的长度,位置对应,才能相加。信号乘: x(n)=x1(n)*x2(n)matlab实现:x=x1.*x2;改变比例: y(n)=k*x(n)matlab实现:y=k*x;信号折叠: y(n)= x(-n)matlab实现:y=fliplr(x);函数fliplr用来实现信号的左右折叠。抽样和: y=matlab实现:y=sum(x(n1:n2);抽样积: y=matlab实现:y=prod(x(n1:n2);信号能量: e=matlab实现:ex=sum(abs(x).2);信号功率: px=matlab实现:px=sum(abs(x).2)/n;序列基本计算模块的主要回调函数见附录中函数operate.m。5.5.2 界面功能序列的基本计算实验界面,是用于对两离散序列进行以下几种计算:相加、相乘、改变信号的比例系数、信号的折叠、抽样和、抽样积、信号功率、信号能量。用户只需在“信号区间n1”中输入信号x1的区间n1,在“信号区间n2”中输入信号x2的区间n2,在输入框中的下拉菜单中选择“信号相加”或“信号相乘”选项;或是在比例系数编辑框输入相应的系数,在输入框中的下拉菜单中选择“改变信号的比例”选项;或是在“信号区”输入信号区间n,在“信号x”中输入信号x,在输入框中的下拉菜单中选择“抽样和”、“抽样积”、“信号能量”“信号功率”几项中的任一项。以上的任一操作都可以在输出框中输出相应的结果数据,在图形窗中输出原序列图形和计算结果图形。5.5.3 界面使用演示下面以信号4,5,6,2,3,1,9,7,8的抽样和为例来进行演示,信号区间为0:8。具体操作:在“信号区间n”中输入信号x的区间0:8,在“信号x”中输入信号x为4,5,6,2,3,1,9,7,8 ,然后在输入框中的下拉菜单中选择“抽样和”选项,即可在输出框中的 “信号y”中得到抽样后的信号值45,同时在图形显示框中显示原信号和抽样后的信号的图形,如图5-6所示。图5-6 序列的抽样和演示5.6 数据采集模块5.6.1 回调函数编写的基本原理数字信号处理的对象,是在采样时钟的控制之下,通过转换器在一定的采样率之下对模拟信号进行采样后而得到的。所以在实际工作中,经常会遇到采样率转换的问题。数据采集包括上采样和下采样(又称为信号的内插和抽取)两种。l 上采样信号的上采样,即将信号x(n)的原采样频率增加l倍,得到v(n),即是对x(n)的插值。插值最简单的方法是在x(n)每相邻两个点之间补l-1个零,然后再进行低通滤波处理。即信号的插值虽然是零,但经过低通滤波后,信号得到了平滑,零值可能不再是零值。用matlab实现上采样的函数为inter,格式如下:y=inter(sig,n1),返后回的是将信号的采样频率增加到原采样频率的n1倍,重采样后得到序列y的长度是x的n1倍。l 下采样信号的下采样,即将信号x(n)的原采样频率减少l倍,得到v(n),即是对x(n)的抽样。抽样的最简单的方法是在v(n)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论