9299.net
大学生考试网 让学习变简单
当前位置:首页 >> >>

基于MATLAB数字信号处理教学实验系统_图文

基于MATLAB数字信号处理教学实验系统_图文

分类号

编 号

华北水利水电学院
North China Institute of Water Conservancy and Hydroelectric Power

毕 业 设 计
数字信号处理教学实验系统 题目 基于 MATLAB 数字信号处理教学实验系统

学 专 姓 学

院 业 名 号

信息工程 电子信息工程 林凤英 200611214 陈黎霞 2010 年 6 月 4 日

指导教师

华北水利水电学院

毕 业 设 计 任 务 书

设计题目: 设计题目:基于 MATLAB 数字信号处理教学实验系统



业: 电子信息工程

班级学号: 200611214 姓 名: 林凤英

指导教师: 陈黎霞

设计期限: 2010 年 3 月 15 日开始 2010 年 6 月 4 日结束

院、系: 信息工程学院

2010 年 3 月 15 日

一、毕业论文的目的
通过本次毕业设计的完成,锻炼学生综合运用所学知识进行实践的能力,提高学生自 学新知识、掌握新技术的能力,培养学生的创新意识和创新能力,并通过毕业设计论文的 完成提高学生知识表达,语言组织的水平,使学生的科研水平上一个层次。

二、主要内容
通过研究利用 MATLAB 实现基本序列的计算、基本信号的产生、离散傅里叶变换、 数字滤波器设计等实验,让基于 MATLAB 的教学实验系统更具体化,充分利用 MATLAB 仿真软件以加深对课程原理和方法的理解。

三、重点研究问题
1.分析基本信号的产生、序列的基本运算和傅里叶变换、滤波器设计等实验; 2.使用 MATLAB 编辑 GUI 界面,设计出对信号的系统分析、离散傅里叶变换和数字滤 波器等并进行仿真;

四、主要研究方法
1.研究分析数字信号处理实验; 2.利用 MATLAB 这个平台,设计各个实验的 GUI 界面; 3.使用 MATLAB 进行设计,调试,收集并分析数据。

五、论文成果要求
1.翻译外文资料,要求不少于 2000 汉字; 2.给出实现基本信号的产生、 序列的基本运算、 离散傅里叶变换等实验的设计程序 (正 常运行)及分析结果; 3.提交正文在 10000 字以上毕业设计说明书,要求格式规范,文字叙述严谨流畅,图 形图表清晰美观,正文中应包括目录、中英文摘要、序言、研究内容、参考文献等。

六、时间安排

第 1~2 周:实习; 第 3~4 周:查阅参考文献、写开题报告; 第 5 周:进行理论分析 第 6 周:进行基本信号的产生、基本序列运算、傅里叶变换、数字滤波器等实验分析; 第 7 周:进行数字滤波器等实验的设计; 第 8~9 周:具体编程、调试; 第 10~11 周:建立 GUI 界面,对结果进行分析; 第 12~13 周:外文翻译、撰写论文; 第 14 周:提交论文、准备答辩,组织预答辩; 第 15 周:答辩。

七、参考书目
1、数字信号处理 2、MATLAB 教程 3、MATLAB 在数字信号处理中的应用 4、MATLAB 图形技术 5、MATLAB 7.X 界面设计与编译技巧 陈后金 罗建军 薛年喜 周明、李长虹、雷虎民 李显宏

华北水利水电学院本科生毕业设计(论文)开题报告 华北水利水电学院本科生毕业设计(论文) 毕业设计
学生姓名 林凤英 题目名称 课题来源 学号 200611214 专业 电子信息工程

基于 MATLAB 数字信号处理教学实验系统 自选

一、 课题意义
“数字信号处理”在电子信息专业中是一门很重要的课程,它涉及的知识广 泛,包括微积分、概率论、信号与系统等。学生在学习这方面的内容的时候,通 常感觉比较抽象,对其中的基本理论和分析方法难以具体地理解和掌握。为此, 很多学校安排了实验课程,借助一些优良的软件平台(如 MATLAB 等)来解决这 一实际问题, 帮助学生更好地理解和掌握数字信号处理中的基本理论和分析方法, 激发他们的学习兴趣,从而达到良好的教学效果。

二、相关背景
主 要 内 分析”的等课程的计算工具,经过十几年的发展和完善,目前已成为世界各国在 容 科学分析和计算领域的主流软件。 2.它的特点是:(1)友好的工作平台和编程环境; (2)简单易用的程序语言; (3)强大的科学计算机数据处理能力; (4)出色的图形处理功能; (5)应用广泛 的模块集合工具箱; (6)实用的程序接口和发布平台; (7)应用软件开发(包括 用户界面) 。 3.以 MATLAB 为平台开发的数字信号处理教学辅助软件充分利用了计算机的 快速运算、文字、动态图形、声音及交互人机界面的特点,利用 MATLAB 的数值 分析和计算结果可视化、信号处理工具箱的强大功能,将数字信号处理中较难掌 握和理解的部分,形象、生动的表现出来,从而使学生理解的更加透彻,同时运 用教学软件中的数值计算工具箱,将使学生从大量繁琐的手工运算中解放出来, 将更多时间用于对基本概念和基本方法的思考。 1.MATLAB 是 matrix laboratory 即矩阵实验室的缩学,是 1984 年由美国的 Mathworks 公司数值计算及图形工具软件,它最初是作为“矩阵理论”和“数值

三、理论分析
数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理 的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理 之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信 号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。

1.MATLAB 在数字信号处理实验中的运用
MATLAB 包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以 分为功能性工具包和学科工具包。功能工具包用来扩充 MATLAB 的符号计算,可 视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具 包,控制工具包,信号处理工具包,通信工具包等都属于此类。MATLAB 实现了 给定参数信号波形生产、DTFT 频谱分析、FIR、IIR 滤波器等功能。系统提供了 参数滤波器分析功能,学生可以通过自己输入滤波器参数的方式查看该参数下滤 波器的频率特性,从而增强学生对滤波器工作过程的理解。

四、可行性分析 可行性分析
1.重点知识演示系统 重点知识演示系统 重点知
它包括常用信号和基本运算、卷积积分、卷积和、周期信号的分解与合成、 连续信号的频谱、连续系统的频率特性、模拟低通滤波器等。MATLAB 内部提供 了大量的函数用于产生噪声及常用的信号波形。如方波函数、三角波函数周期信 号函数等。 这些信号在信号处理中非常重要。 它充分利用 MATLAB 的计算结果可 视化和图形处理的强大功能,将数字信号处理中较难掌握和理解的部分,以文字、 动态图形、声音及交互人机界面的形式表现出来,有助于学生更好地理解和掌握。

2.数值分析工具箱 数值分析工具箱
该系统是学生利用计算机完成数字信号处理中大量繁杂手工运算的有力工具 其目的在于让学生学会用科学的计算方法解决问题,将使学生从大量繁琐的手工 运算中解放出来,将更多时间用于对基本概念和基本方法的思考,从而把握住问 题的关键,理解的更加透彻。数值工具箱的功能包括:积分、微分、微分方程求 解、差分方程求解、多项式求根、系统零极点计算、单变量信号绘图、部分分式 展开和系统稳定性判断等。

五、目标任务分析 目标任务分析

离散信号与系统分析基础是信号频谱分析和系统设计的理论基础,所以要对 序列的基本运算和基本信号的产生有一定的理解,实验列举了正弦信号、阶跃信 号、冲激信号等信号的产生和计算;通过有限长序列的傅里叶表示定义有限长系 列的离散傅里叶变换,并利用 DFT 分析连续非周期信号的频谱,通过频谱分析信 号是否重叠;数字滤波器是一个离散系统,包括有限冲激响应滤波器(FIR)和无 限冲激响应滤波器(IIR)。该系统能对输入的离散信号进行处理,从而获取所需 的有用信息。最后将选取的实验利用 MATLAB 的 GUI 界面整合成一个系统,使 得在教学过程中帮助学生理解和掌握数字信号处理的理论知识。 GUI 即人机交互图形化用户界面设计,是指采用图形方式显示的计算机操作 用户界面。流程图如下:
GUI 界面 退出

实验主界面

退出

退出 实验子界面

采取的主 要技术路
实 验 验 内 容 果 结 出 回 实 退 返

线或方法

该实验系统包括基本序列的计算、基本信号的产生、傅里叶变换、卷积和数 字滤波器设计等实验。基本系列计算包括翻转、位移等,在实验界面上,可以通 过输入参数可以产生不同的序列图形,通过输入卷积的幅度得到两个序列卷积后 的图形;基本信号包括正弦信号、单位脉冲、矩形等信号,输入它们的平移量或 者幅度等一系列参数,可以得到不同的结果,并可以就这些结果进行比较;傅里

叶变换是数字信号处理这门课程的核心算法之一,信号的傅里叶变换建立了信号 的时域与频域之间的一一对应关系,拓展了信号表达的空间,为信号与系统的频 域分析奠定了理论基础,该实验是对方波信号和指数信号的频谱进行分析,观察 信号是否会发生混叠;卷积是离散信号处理中的重要运算,卷积运算实验是要计 算两个给定数值的序列的卷积;滤波器设计是数字信号处理课程的重要内容,通 过输入不同的截止频率,得到给定参数下的信号频谱。 1.对数字信号处理和 MATLAB 软件进行理论研究和分析; 2.用 Matlab 语言写出各个实验的程序; 预期的成 3.对模拟结果进行分析; 果及形式 4. 提交正文在 10000 字以上毕业设计说明书, 要求格式规范, 文字叙述严谨流畅, 图形图表清晰美观,正文中应包括目录、中英文摘要、序言、参考文献等; 第 1~2 周:实习 第 3-4 周:查阅参考文献、写开题报告; 第 5 周:进行理论分析 第 6 周:进行数字滤波器等实验分析; 第 7 周:进行数字滤波器等实验的设计; 时间安排 第 8—9 周:具体编程、调试; 第 10-11 周:对结果进行分析; 第 12-13 周:外文翻译、撰写论文; 第 14 周:提交论文、准备答辩,组织预答辩; 第 15 周:答辩。

指导教师 意见 年 签 名: 月 日

备注

2010 年 3 月 19 日





摘要......................................................................................................................................................................1 Abstract ...............................................................................................................................................................2 第1章 绪论 ...................................................................................................................................................3

1.1 课题研究的背景及意义 ..................................................................................................................3 1.2 教学实验系统简介............................................................................................................................3 1.3 设计的目标任务 ................................................................................................................................4 第2章 数字信号处理与开发环境的简介 .............................................................................................5

2.1 数字信号处理的简介 .......................................................................................................................5 2.2 MATLAB 简介与特点 ......................................................................................................................6 2.2.1 MATLAB 的简介 .....................................................................................................................6 2.2.2 MATLAB 的特点 .....................................................................................................................6 第 3 章 实验系统方案设计 ..........................................................................................................................9 3.1 系统的基本模块 ................................................................................................................................9 3.2 系统设计步骤 ....................................................................................................................................10 3.2.1 创建 GUI ..................................................................................................................................10 3.2.3 写回调函数 CallBack ..........................................................................................................12 3.2.4 句柄图形之间的层次关系 ..................................................................................................13 3.2.5 获取与设置对象属性 ...........................................................................................................14 第 4 章 系统界面设计 .................................................................................................................................15 4.1 系统的 GUI 界面 .............................................................................................................................15 4.2 实验主界面 .......................................................................................................................................16 4.3 实验子界面 .......................................................................................................................................18 第 5 章 系统实验的具体内容 ....................................................................................................................21 5.1 基本信号的产生 ...............................................................................................................................21 5.2 序列的基本运算 ..............................................................................................................................22 5.3 离散傅里叶变换 ..............................................................................................................................24 5.4 卷积运算 ............................................................................................................................................26 5.5 数字滤波器设计 ...............................................................................................................................27 5.6 数字系统的结构 ..............................................................................................................................28

5.6.1 级联型滤波器..........................................................................................................................28 5.6.2 格型滤波器 ..............................................................................................................................29 5.7 多速率信号处理基础 .....................................................................................................................30 5.7.1 设计多带 FIR 滤波器............................................................................................................30 5.7.2 设计等波纹 FIR 滤波器 .......................................................................................................32 第6章 总结 .................................................................................................................................................33

参考文献 ..........................................................................................................................................................34 致谢....................................................................................................................................................................35 附录 1:外文文献和翻译 ............................................................................................................................36 外文原文 ....................................................................................................................................................36 外文翻译 ....................................................................................................................................................40 附录 2:程序...................................................................................................................................................43

华北水利水电学院毕业设计

摘要
随着信息技术的不断发展,数字信号处理已成为一个极其重要的学科和技术领域,在 通信、语音、图像、遥感、生物工程等众多领域得到了广泛的应用。数字信号处理的核心 内容主要是信号的获取、传输和处理、识别及综合等。信号是信息的载体,系统是信息处 理的手段。因此,为了更好的研究信号和系统的基本理论与方法,使同学们更好地理解和 掌握数字信号处理的理论知识,在实验过程中,借助 MATLAB 这个平台来进行辅助设计。 MATLAB 是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言 和交互式环境。作为强大的科学计算平台,它几乎满足所有的计算要求。随着对仿真和程 序设计通用性及可视化需求的日益增加,MATLAB 着重改善了图形用户界面的制作,极大 地满足了用户的需求。 MATLAB 的 GUID 是专门用于图形用户界面的快速开发环境, 本文利用该工具设计教 学实验系统,该系统将 MATLAB 软件和多媒体硬件结合,将数字信号处理的实验内容融入 进去,形成一种新的计算机教学实验方式。该系统的形象直观,总体界面友好,具有开放 性,便于学生对所学理论知识的理解,大大提高教学的效果和效率。

关键词:数字信号处理;教学实验系统;MATLAB;GUI 关键词

第1页

华北水利水电学院毕业设计

Abstract
With the continuous development of information technology,digital signal processing has become a very important subject and technology field 。 It has widely applicated in the communication, audio and image, remote sensing, biological engineering. The core content of digital signal processing, mainly is the signal transmission and processing, identification and so on. When the signal system is a carrier of information, information processing. Therefore, in order to better research signal and system of basic theory and method, help students better understand and master of digital signal processing theory knowledge, in the experimental process by MATLAB, the platform for computer-aided design. MATLAB algorithm is used to develop, data visualization, data analysis and numerical calculation of the advanced technology and the interactive language environment. As a powerful scientific computing platforms, it almost to satisfy all computing requirements. As for simulation and program design and visualization of generality demand has increased, emphatically improve the MATLAB graphical user interface, greatly satisfy the needs of the users. GUIDE of matlab is a quick development enviroment.A graphics user interface for a teaching experiment software of digital signal process has been designed and

implemented.Integrating DSP experiments,a new computer aided instruction mode is derived throught this system which combing matlab and multimedia.Being active and this interface is friendly and open,this system is beneficial for the students to comprehend DSP theory and improves the teaching effect and efficiency.

Key words: digital signal process; teaching experiment; Matlab; graphics user interface

第2页

华北水利水电学院毕业设计

第1章
1.1 课题研究的背景及意义

绪论

“数字信号处理”在电子信息专业中是一门很重要的课程,它涉及的知识广泛,包括 微积分、概率论、信号与系统等。学生在学习这方面的内容的时候,通常感觉比较抽象, 对其中的基本理论和分析方法难以具体地理解和掌握。为此,很多学校安排了实验课程, 借助一些优良的软件平台(如 MATLAB 等)来解决这一实际问题,帮助学生更好地理解 和掌握数字信号处理中的基本理论和分析方法,激发他们的学习兴趣,从而达到良好的教 学效果。

1.2 教学实验系统简介
数字信号处理实验环节在教学过程中是非常重要的,实验有助于学生理解和掌握所 学的理论。MATLAB 是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计 算语言和交互式环境。作为强大的科学计算平台,它几乎满足所有的计算要求。随着对仿 真和程序设计通用性及可视化需求的日益增加,MATLAB 着重改善了图形用户界面的制 作,极大地满足了用户的需求。 MATLAB 的 GUID 是专门用于图形用户界面的快速开发环境, 本文利用该工具设计教 学实验系统,该系统将 MATLAB 软件和多媒体硬件结合,将数字信号处理的实验内容融入 进去,形成一种新的计算机教学实验方式。该系统的形象直观,总体界面友好,具有开放 性,便于学生对所学理论知识的理解,大大提高教学的效果和效率。 现在大多数高校都借助于 MATLAB 进行辅助教学, MATLAB 语言是一种非常适合信 号分析与处理的语言,它的使用对学生理解数字信号处理中的许多基本理论起到极其重要 的作用。 MATLAB 具有强大的图形用户界面生产能力, 用户可以根据自己的需要设计图形 界面。 本实验系统以 MATLAB 为开发平台,保证了该系统具有一定的通用性,它采用图形 交互的界面,不仅可以用于实验教学,也可以用于辅助理论教学,操作起来非常方便,形 象直观。它开发了基本信号的产生,常用序列的计算,傅里叶变换,滤波器的设计等 MATLAB 辅助分析与设计实验。 通过这个实验系统,可以将数字信号处理课程中许多抽象的理论知识形象地表示出 来,使得原先实验中较难观察到的现象以及繁琐的设计计算等,都能较简单的解决。该实

第3页

华北水利水电学院毕业设计 验系统为学生提供了一个形象而全面的演示,激发学生的学习兴趣,加深学生对数字信号 处理课程中理论知识的理解。

1.3 设计的目标任务
在许多高校的相关专业,数字信号处理都被列为专业必修课。但是,它涉及的知识广 泛,包括微积分、概率论、信号与系统等。学生在学习这方面的内容的时候,通常感觉比 较抽象,对其中的基本理论和分析方法难以具体地理解和掌握。目前,我校的数字信号处 理课程总共 48 个学时,其中有 6 个实验学时,要想在这么短的时间内让学生较好地掌握 数字信号处理的理论知识,这是比较困难的,所以可以利用 MATLAB 友好的人际交互界 面,制作出形象、开放的教学实验系统,以此达到帮助学生更好的掌握数字信号处理理论 知识的目的。

第4页

华北水利水电学院毕业设计

第2章
2.1 数字信号处理的简介

数字信号处理与开发环境的简介

随着信息技术的高速发展,信息时代和数字世界悄然到来,数字信号处理已成为一门 重要的学科和一个极其重要的科学领域。它被广泛地应用于电子信息工程、通信工程、语 音、图像、自动控制、雷达、遥感和生物工程等众多领域。数字信号处理是把信号用符号 或者是数字的形式表示成序列,通过通用(专用)信号处理设备或计算机,用数值计算的 方法进行各种处理,它的目的是对真实世界的连续模拟信号进行测量或滤波,达到提取有 用信息并加于利用的效果,例如检测、变换、增强、参数提取、频谱分析等。数字信号处 理系统具有以下一些明显的优点: (1)精度高。模拟网络的精度由元器件决定,模拟元器件的精度很难达到 10-3 以上, 而数字系统只要 14 位字长就可达到 10-4 的精度。 在高精度系统中, 有时只能采用数字系统。 (2)灵活性高。数字系统的性能主要由乘法器的系数决定,而系数是存放在系数存 储器中的,只需改变存储的系数,就可得到不同的系统,比改变模拟系统方便得多。 (3)可靠性强。因为数字系统只有两个信号电平“0”“l” 、 ,因而受周围环境温度以 及噪声的影响较小,而模拟系统,各元器件都有一定的温度系数,且电平是连续变化的, 易受温度、噪声、电磁感应等的影响。如采用大规模集成电路,可靠性就更高。 (4)容易大规模集成。这是由于数字部件有高度规范性,便于大规模集成、大规模 生产,对电路参数要求不严,故产品成品率高。尤其是对于低频信号,例如地震波分析, 需要过滤几赫兹到几十赫兹信号,用模拟网络处理时,电感器、电容器的数值、体积和重 量都非常大,性能亦不能达到要求、而数字信号处理系统在这个频率处却非常优越。 (5)时分复用。也就是利用数字信号处理器同时处理几个通道的信号。处理器运算 速度越高,能处理的信道数目也就越多。 (6)可获得高性能指标。例如对信号进行频谱分析,模拟频谱仪在频率低端只能分 析到 1OHz 以上频率.且难于做到高分辨率(足够窄的带宽) ,但在数字的谱分析中,已能 做到 10-3Hz 的谱分析。又如有限长冲激响应数字滤波器,则可实现准确的线性相位特性, 这在模拟系统中是很难达到的。 (7)二维与多维处理。利用庞大的存储单元,可以存储一帧或数帧图象信号,实现 二维甚至多维信号的处理,包括二维或多维滤波、二维及多维谱分析等。 数字信号处理系统也有其局限性,例如,数字系统的速度还不算高,硬件的速度也只
第5页

华北水利水电学院毕业设计 在几十兆赫以下,故不能处理很高频率的信号。另外,系统比较复杂,因而价格昂贵等也 是其缺点。

2.2 MATLAB 简介与特点
2.2.1 MATLAB 的简介
MATLAB 是矩阵实验室(Matrix Laboratory)的简称,MATLAB 是美国 MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技 术计算语言和交互式环境,主要包括 MATLAB 和 Simulink 两大部分,和 Mathematica、 Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。 MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程 语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、 金融建模设计与分析等领域。 GUIDE(Graphical User Interface Development Enviroment)是 MATLAB 中一个专门用 于 GUI 程序设计的向导设计器,通过 GUIDE 可以很方便地设计出各种符合要求的图形用 户界面, 用户可以根据提示完成新界面的制作, 却不必了解新界面内部是如何工作的。 GUI 设计既可以以基本的 MATLAB 程序设计为主,也可以用鼠标利用 GUID 工具进行设计, 也可以综合以上两种方法进行设计。

2.2.2 MATLAB 的特点
(1)友好的工作平台和编程环境 MATLAB 由一系列工具组成。这些工具方便用户使用 MATLAB 的函数和文件,其中 许多工具采用的是图形用户界面。包括 MATLAB 桌面和命令窗口、历史命令窗口、编辑 器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着 MATLAB 的商业化以及软件本身的不断升级,MATLAB 的用户界面也越来越精致,更加接近 Windows 的标准界面,人机交互性更强,操作更简单。而且新版本的 MATLAB 提供了完 整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的 调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出 错原因分析。 (2)简单易用的程序语言 Matlab 一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和 面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好
第6页

华北水利水电学院毕业设计 一个较大的复杂的应用程序(M 文件)后再一起运行。新版本的 MATLAB 语言是基于最 为流行的 C++语言基础上的,因此语法特征与 C++语言极为相似,而且更加简单,更 加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而 且这种语言可移植性好、可拓展性极强,这也是 MATLAB 能够深入到科学研究及工程计 算各个领域的重要原因。 (3)强大的科学计算机数据处理能力 MATLAB 是一个包含大量计算算法的集合。其拥有 600 多个工程中要用到的数学运算 函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计 算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替 底层编程语言,如 C 和 C++ 。在计算要求相同的情况下,使用 MATLAB 的编程工作量会 大大减少。MATLAB 的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快 速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求 解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程 中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数 组操作以及建模动态仿真等。 (4)出色的图形处理功能 MATLAB 自产生之日起就具有方便的数据可视化功能, 以将向量和矩阵用图形表现出 来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、 动画和表达式作图。可用于科学计算和工程绘图。新版本的 MATLAB 对整个图形处理功 能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线 和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如 图形的光照处理、色度处理以及四维数据的表现等),MATLAB 同样表现了出色的处理能 力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB 也有相应的功能函数,保 证了用户不同层次的要求。另外新版本的 MATLAB 还着重在图形用户界面(GUI)的制 作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。 (5)应用广泛的模块集合工具箱 MATLAB 对许多专门的领域都开发了功能强大的模块集和工具箱。 一般来说, 它们都 是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不 MATLAB 已经把工具箱延伸到了科学研究和工程应用的诸多领 需要自己编写代码。 目前, 域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神
第7页

华北水利水电学院毕业设计 经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI 控制、鲁棒控 制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物 理仿真、 嵌入式系统开发、 定点仿真、 DSP 与通讯、 电力系统仿真等, 都在工具箱 (Toolbox) 家族中有了自己的一席之地。 (6)实用的程序接口和发布平台 新版本的 MATLAB 可以利用 MATLAB 编译器和 C/C++数学库和图形库,将自己的 MATLAB 程序自动转换为独立于 MATLAB 运行的 C 和 C++代码。允许用户编写可以和 MATLAB 进行交互的 C 或 C++语言程序。另外,MATLAB 网页服务程序还容许在 Web 应用中使用自己的 MATLAB 数学和图形程序。 MATLAB 的一个重要特色就是具有一套程 序扩展系统和一组称之为工具箱的特殊应用子程序。 工具箱是 MATLAB 函数的子程序库, 每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神 经网络、模糊逻辑、小波分析和系统仿真等方面的应用。 (7)应用软件开发(包括用户界面) 在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌 套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连 接注释等;在输入输出方面,可以直接向 Excel 和 HDF5 进行连接。

第8页

华北水利水电学院毕业设计

第 3 章 实验系统方案设计
3.1 系统的基本模块
基于 MATLAB 强大的功能, 许多高校数字信号处理课程的实验都是以 MATLAB 作为 仿真工具。 本文利用 MATLAB 的 GUIDE 工具箱设计并实现了数字信号处理教学实验系统 的图形用户界面 GUI、实验主界面和实验子界面。这些界面以按钮、静态文本、编辑框和 坐标轴等友好界面形式构成,即便是不理解 MATLAB 程序,也可以很方便地使用,系统 内容丰富,结果直观易懂,便于分析。通过该实验系统,将 MATLAB 软件与多媒体硬件 相结合,形成一种新的计算机辅助教学方式,有助于提高学生学习的效率,帮助学生理解 课堂数学理论。 该实验系统提供的主要功能有:友好的用户界面和数据图形结果输出。本系统按功能 要求主要划分以下几个模块: GUI 模块、 实验主界面模块、 实验结果和实验内容模块。 GUI 模块是一个主界面,实验主界面模块根据数字信号处理课程的重点和难点选择了几个典型 的实验。在对实验教学系统的各界面开发过程中,需要对 MATLAB 的图形用户界面的功 能有充分的理解,包括静态文本的输入、数据的读入、按扭的响应、坐标轴的链接等。 整个系统的功能结构如图 1 所示。
GUI 界面 退出

实验主界面

退出

退出 实验子界面

实 验 内 容 果 结 验

实 出

退 回



图 3.1 系统流程图 首先进入 GUI 主界面,让用户可以自由选择想了解的内容和实验。在每个实验的窗口
第9页

华北水利水电学院毕业设计 上又分别安放了实验内容和实验结果,学生可以通过实验主界面了解想要了解的知识,也 可以通过输入参数得到不同的实验结果,即把几个实验放在一个界面上,这样便于比较和 分析。此实验系统既利于教师在课堂教学,也为学生在课后自学提供了便利。

3.2 系统设计步骤
在该系统的设计中,界面布局设计是自顶向下的,即先设计 GUI 界面,再设计各个实 验子界面,界面上包括按钮、坐标轴、文本框等控件。界面设计完成后,只是一些静态的 画面,而没有实际操作意义,还不能用于实验操作,想要达到实验演示和分析的功能,还 必须借助于 callback 函数调用一系列的程序。在设计中,各个回调函数的编写顺序则是自 底向上的,即先编写各个子界面中的回调函数下的程序,再编写 GUI 界面的回调函数下的 程序。 其设计的具体操作步骤如下: (1)使用 MATLAB 图形用户界面开发环境 GUIDE 提供的一系列创建用户图形界面 工具,设计整个系统的 GUI 界面、实验主界面和各个子界面。 (2)分别编写各个子界面的各个控件对象的回调函数下的一系列程序,以实现控件 相应的控制功能,达到直接通过界面上各个控件就可以控制数据的输入,并可以方便、直 观地对实验内容及实验结果进行对照分析。 (3)编写 GUI 界面的回调函数下的程序,将各个子界面整合在 GUI 界面中,即通过 GUI 界面就可以进入任何一个子界面并进行操作。

3.2.1 创建 GUI
创建Matlab GUI界面通常有两种方式:第一种,在 .m文件中动态添加,即自己编写程 序,设置参数;第二种,使用GUIDE帮助创建GUI;在Command 里面输入 GUIDE 或者 从菜单里面,或者从快捷按钮均可进入 GUIDE。

第 10 页

华北水利水电学院毕业设计 新建并且保存后,会生成相应的 fig 文件和 m 文件,在 Layout 编辑视图中,可以使用 如下工具: Layout Editor:布局编辑器; Alignment Tool:对齐工具; Property Inspector:对象属性观察器; Object Browser:对象浏览器; Menu Editor:菜单编辑器。 3.2.2 使用控件 新建一个布局(窗口),可以在新窗口中添加如下控件 1.静态文本(Static Text) 3.列表框(Listbox)控件 5.按钮(Push Button)控件 7.单选按钮(Radio Button)控件 9.检查框(Check Box)控件 11.弹出式菜单(Popup Menu)控件 13.面板(Panel)控件 每一个控件都有自己的属性常规属性。 1.控件风格和外观 (1)BackgroundColor:设置控件背景颜色,使用[R G B]或颜色定义。 (2)CData:在控件上显示的真彩色图像,使用矩阵表示。 (3)ForegroundColor:文本颜色。 (4)String 属性:控件上的文本,以及列表框和弹出菜单的选项。 (5)Visible:控件是否可见。 2.对象的常规信息 (1)Enable 属性: 表示此控件的使能状态,设置为 on”,表示可选,为“off”时则 表示不可。 (2)Style:控件对象类型。 (3)Tag:控件表示(用户定义)。 (4)TooltipString 属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。 (5)UserData:用户指定数据。
第 11 页

2.编辑框(Edit Text)控件 4.滚动条(Slider)控件 6.开关按钮(Toggle Button)控件 8.按钮组(Button Group)控件 10.列表框(Listbox)控件 12.坐标轴(Axes)控件

华北水利水电学院毕业设计 (6)Position:控件对象的尺寸和位置。 (7)Units:设置控件的位置及大小的单位。 (8)有关字体的属性,如 FontAngle, FontName 等。 3.控件回调函数的执行 (1) BusyAction: 处理回调函数的中断。 有两种选项: Cancel: 即 取消中断事件, queue: 排队(默认设置)。 (2)ButtonDownFcn 属性:按钮按下时的处理函数。 (3)CallBack 属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应 该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行 求值。 (4)CreateFcn:在对象产生过程中执行的回调函数。 (5)DeleteFcn:删除对象过程中执行的回调函数。 (6)Interruptible 属性:指定当前的回调函数在执行时是否允许中断,去执行其他的 函数。 4.控件当前状态信息 (1)ListboxTop:在列表框中显示的最顶层的字符串的索引。 (2)Max:最大值。 (3)Min:最小值。 (4)Value:控件的当前值。 可以使用属性编辑器来设置属性

3.2.3 写回调函数 CallBack
每个控件都有几种回调函数,右键选中的控件一般会有如下菜单:
第 12 页

华北水利水电学院毕业设计

然后就可以跳转到相应的 Editor 中编辑代码,GUIDE 会自动生成相应的函数体,函 数名,名称一般是控件 Tag+ Call 类型名参数有三个( hObject, eventdata, handles),其中 hObject 为发生事件的源控件,eventdata 为事件数据结构,handles 为传入的对象句柄, CreateFcn 是在控件对象创建的时候发生(一般为初始化样式,颜色,初始值等),DeleteFcn 实在空间对象被清除的时候发生,ButtonDownFcn 和 KeyPressFcn 分别为鼠标点击和按键 事件 Callback,CallBack 为一般回调函数,因不同的控件而已异。例如按钮被按下时发生, 下拉框改变值时发生,sliderbar 拖动时发生等等。

3.2.4 句柄图形之间的层次关系
Root

Figure

Axes

Uncontrl

Uimenu

Image

LIght

Line

Patch

Rectangle

Surface

Text

图 3.2 句柄图形之间的层次关系图 可以创建图形句柄的常见函数:
第 13 页

华北水利水电学院毕业设计 1.figure 函数:创建一个新的图形对象。 2.newplot 函数:做好开始画新图形对象的准备。 3.axes 函数:创建坐标轴图形对象。 4.line 函数:画线。 5.patch 函数:填充多边形。 6.surface 函数:绘制三维曲面。 7.image 函数:显示图片对象。 8.uicontrol 函数:生成用户控制图形对象。 9.uimenu 函数:生成图形窗口的菜单中层次菜单与下一级子菜单。 几个实用的小函数: uigetfile 选择文件对话框 uiputfile 保存文件对话框 uisetcolor 设置颜色对话框 fontsetcolor 设置字体对话框 msgbox warndlg 消息框 警告框

3.2.5 获取与设置对象属性
常用函数: gcf 函数:获得当前图形窗口的句柄 gca 函数:获得当前坐标轴的句柄 gco 函数:获得当前对象的句柄 gcbo 函数:获得当前正在执行调用的对象的句柄 gcbf 函数:获取包括正在执行调用的对象的图形句柄 delete 函数:删除句柄所对应的图形对象 findobj 函数:查找具有某种属性的图形对象 设置方法: : (1)get 函数返回某些对象属性的当前值。例如:p=get(obj,'Position'); (2)函数 set 改变句柄图形对象属性,例如:set(obj,'Position',vect);

第 14 页

华北水利水电学院毕业设计

第 4 章 系统界面设计
MATLAB 将所有 GUI 支持的用户都集成在 GUID 工具箱里, 并且提供界面诸多元素, 例如界面外观、界面属性和行为响应方式的设置方法。所以我采用 GUI 界面向导 GUID 进 行用户界面的设计,通过编写 M 程序,主要是利用回调函数来响应组件的行为。GUI 模块 包括实验主界面和 2 个实验子界面。

4.1 系统的 GUI 界面
实验主界面如图 4.1 所示,用户可以根据自己的需要点击相应的按钮,进入实验子界 面。通过退出按钮可以关闭这个界面。

4.1 GUI 界面

实验分为七章,即基本信号的产生、序列的基本运算、离散傅里叶变换、卷积运算、 数字滤波器设计、数字系统结构和多速率信号处理基础。这部分功能主要是通过控件的回 调函数callback属性实现的,以第一章基本信号的产生为例,在GUID编辑界面中,双击该 按钮,会出现属性设置对话框,它对应的pushbutton按钮的标签Tag属性设为pushbutton2, string改为“第一章 信号的基本信号的产生”,Frontsize设为25。在GUID编辑界面中,选 中该按钮,点击右键选择View Callbacks中的Callback菜单项就可以打开GUI.fig对应的m文 件(gui.m),这个文件是MATLAB自动生成的,在functionpushbutton2_Callback(hObject, eventdata, handles)下添加run jbxhcs;close gui,则点击该按钮可以打开下一级子界面,并关
第 15 页

华北水利水电学院毕业设计 闭该gui界面。

4.2 实验主界面
点击‘第一章 基本信号的产生‘按钮之后出现实验主界面。

4.2 实验主界面

在GUID编辑界面中,双击第一个按钮,会出现属性设置对话框,将string改为“正弦 信号”,Frontsize设为15,双击第二个按钮,将String改为“指数信号”, Frontsize设为15, 双击第三个按钮,将String改为“单位阶跃信号”, Frontsize设为15,双击第四个按钮, 将String改为“单位脉冲信号”, Frontsize设为15,双击第五个按钮,将String改为“矩形 脉冲信号”, Frontsize设为15,双击第六个按钮,将String改为“抽样信号”, Frontsize 设为15。将第一个Static Text的String改为“请输入幅度、角度、相位”,Frontsize改为10, 将第二个Static Text的String改为“请输入幅度、相位”,Frontsize改为10,将第三、四、 六个Static Text的String改为 “请输入平移量” Frontsize改为10, , 将第五个Static Text的String 改为“请输入对城中心和宽度”,Frontsize改为10 。“退出”控件也如此操作,只是String 不同而已。右键单击“正弦信号”,选择View Callbacks中的Callback菜单项就可以打开 jbxhcs.fig 对 应 的 m 文 件 ( jbxhcs.m ) , 这 个 文 件 是 MATLAB 自 动 生 成 的 , 在 functionpushbutton1_Callback(hObject, eventdata, handles)下添加程序如下: axes(handles.axes1) %将句柄值为handles.axes1的坐标轴指定为当前坐标轴
第 16 页

华北水利水电学院毕业设计 clc A=str2num(get(handles.edit1,'String')); W=str2num(get(handles.edit2,'String')); P=str2num(get(handles.edit3,'String')); t=0:.001:10; ft=A*sin(W*t+P); plot(t,ft),grid title('A*sin(W*t+P)') 右键单击“指数信号”,选择View Callbacks中的Callback菜单项就可以打开jbxhcs.fig 对应的m文件 (jbxhcs.m)这个文件是MATLAB自动生成的, , 在functionpushbutton2_Callback (hObject, eventdata, handles)下添加程序如下: axes(handles.axes3) clc A=str2num(get(handles.edit4,'String')); a=str2num(get(handles.edit5,'String')); t=0:.001:10; ft=A*exp(a*t); plot(t,ft),grid title('A*exp(a*t)') 右键单击“单位阶跃信号”,选择View Callbacks中的Callback菜单项就可以打开 jbxhcs.fig对应的m文件(jbxhcs.m),这个文件是MATLAB自动生成的,在functionpush button3_Callback(hObject, eventdata, handles)下添加程序如下: axes(handles.axes4) clc t=str2num(get(handles.edit7,'String'))-2:0.001:str2num(get(handles.edit7,'String'))+2; ft=(t-str2num(get(handles.edit7,'String'))>0); plot(t,ft) axis([str2num(get(handles.edit7,'String'))-2,str2num(get(handles.edit7,'String'))+2,-0.2,1.2]) title('单位阶跃信号') 右键单击“单位脉冲信号”,选择View Callbacks中的Callback菜单项就可以打开
第 17 页

%将字符串转换为数值

华北水利水电学院毕业设计 jbxhcs.fig对应的m文件 (jbxhcs.m) 这个文件是MATLAB自动生成的, , 在functionpushbutton4 _Callback(hObject, eventdata, handles)下添加程序如下: axes(handles.axes2) t1=str2num(get(handles.edit6,'String')); t=t1-1:0.01:t1+1; n=length(t); x=zeros(1,n); x(1,(n-1)/2)=1; stairs(t,x) %输入平移量 %信号时间样本点向量 %时间样本点向量长度 %产生一行全0矩阵, 即各样本点信号赋值为0 %在t=-t0处,给样本点赋值 %用stairs命令画步进图形

axis([str2num(get(handles.edit6,'String'))-1,str2num(get(handles.edit6,'String'))+1,0,1]) title('单位脉冲信号') 右键单击“矩形脉冲信号”,选择View Callbacks中的Callback菜单项就可以打开 jbxhcs.fig对应的m文件 (jbxhcs.m) 这个文件是MATLAB自动生成的, , 在functionpushbutton5 _Callback(hObject, eventdata, handles)下添加程序见附录1。 右键单击“抽样信号”,选择View Callbacks中的Callback菜单项就可以打开jbxhcs.fig 对应的m文件(jbxhcs.m),这个文件是MATLAB自动生成的,在functionpushbutton6 _Callback(hObject, eventdata, handles)下添加程序见附录1。 右键双击“退出”控件,选择View Callbacks中的Callback菜单项就可以打开jbxhcs.fig 对应的m文件(jbxhcs.m),在functionpushbutton7_Callback(hObject, eventdata, handles)下添 加程序程序如下: Close(gcf) Run gui; 点击退出控件后就可以关闭实验主界面,返回上一级GUI模块。

4.3 实验子界面
有些实验界面不需要输入参数,所以就采用弹出式窗口来演示实验,例如第五章的实 验,点击“第五章 数字系统的结构” ,窗口见图 4.3。

第 18 页

华北水利水电学院毕业设计

图4.3 实验题目

该界面选取两个实验,即级联型滤波器和格型滤波器实验。点击“实验一 级连续滤 波器”和“实验二 格型滤波器”控件,可以进入到各个实验的实验子界面;“返回”控 件可以返回到上一级界面;“退出”控件即关闭这一级界面。 点击‘实验一 级联型滤波器‘按钮之后出现图4.4。

图4.4 实验内容和结果

在GUID编辑界面中,双击第一个按钮,会出现属性设置对话框,将string改为“实验 内容”,Frontsize设为12。双击第二个按钮,将String改为“实验结果”, Frontsize设为12。
第 19 页

华北水利水电学院毕业设计 “返回”和“退出“控件也如此操作,只是String不同而已。右键单击“实验内容”,选择 View Callbacks 中 的 Callback 菜 单 项 就 可 以 打 开 text7.fig 对 应 的 text7.m , 这 个 文 件 是 MATLAB自动生成的,在functionpushbutton1_Callback(hObject, eventdata, handles)下添加 run Untitled9;close text7,则点击该按钮可以打开下一级子界面,并关闭该text7界面。实验 结果控件、返回和关闭控件的操作都一样,但是String不一样,加的程序也不同,实验结果 控件加的程序如下: close Untitled11; format rat num=[3,5/3,2/3]; den=[1,1/6,1/3,-1/6]; [z,p,k]=tf2zp(num,den); sos=zp2sos(z,p,k) 返回的程序是close(gcf);run text8,即返回到上一级text8界面,关闭的程序是closetext8, 即退出这一级界面。

第 20 页

华北水利水电学院毕业设计

第5章 系统实验的具体内容
5.1 基本信号的产生
数字信号处理的核心是信号,信号是系统的载体,所以本实验要求对基本信号有一定 的认识,并掌握基本信号的产生方法。点击 GUI 界面的“第一章 基本信号的产生”控件, 弹出窗口图 5.1。

图 5.1 基本信号的产生

这章实验选取了六种基本信号,即正弦信号、指数信号、单位阶跃信号、单位脉冲信 号、矩形脉冲信号和抽样信号。在此界面上,可以输入一系列参数,如幅度、角度、相位、 平移量等参数。实验内容对各个实验进行了简单的说明,对实验结果的理解提供了帮助。 点击“退出”控件,可以返回上一级 gui 界面。程序见(附录 2) 。 点击各个信号控件时,出现结果界面图 5.2。

第 21 页

华北水利水电学院毕业设计

图 5.2 实验结果

在正弦信号处输入幅度为 2, 角度为 4, 相位为 5, 出现的结果即为表达式 x[k]=2sin(4t+5) 的波形;在指数信号处输入幅度为 2,相位为 3,出现的结果极为 x[k]=2exp(3t)的波形;在 单位阶跃信号处输入平移量为 3,则出现的结果即将原始的单位阶跃信号平移 3 之后的波 形;在单位脉冲信号处输入平移量为 4,则结果即为将原始的单位脉冲信号向右平移 4 之 后的波形;在矩形脉冲信号处输入对称中心为 3,宽度为 2,则出现的波形即为以 3 对称, 宽度为 2 的矩形信号;在抽样信号处输入平移量 4,则出现的结果极为将原始抽样信号平 移 4 之后的波形。这些参数可以任意输入,通过输入不同的参数做出比较。

5.2 序列的基本运算
当点击 GUI 界面的“第二章 序列的基本运算” ,出现的实验主界面图 5.3。

图 5.3 序列的基本运算
第 22 页

华北水利水电学院毕业设计 本实验的目的是加深对常用序列的理解,并进行运算和掌握 MATLAB 中一些基本函 数的建立方法。序列的基本运算包括翻转、位移、相加、相乘和卷积。各运算的程序见(附 录 2) 。

图 5.4 实验结果

在翻转处输入幅度为 2,由结果可以看出,序列翻转了 180 度,幅度增加 2 倍;在位 移处输入幅度为 3,由结果可知,序列向右平移了 3 个单位量;在相加处输入幅度为 3, 由结果可知,两个序列已经相加,并且结果扩展了 3 倍;在相乘处输入 3,由结果可知, 两个序列已经相乘,且幅度扩展了 3 倍;在卷积处输入幅度为 2,由结果可知,幅度扩展 了 2 倍。由图 5.4 可知,当输入参数时,结果一目了然,也能结合实验内容进行相应的学 习。 当参数不符合要求,会弹出警告框,如图 5.5。

图 5.5 警告信息
第 23 页

华北水利水电学院毕业设计 平移时 k>=0,所以 t>=-7,当 t<=-8 时,会出现警告信息,可以重新输入。

5.3 离散傅里叶变换
利用 DTFT 对典型信号进行频谱和幅度分析,验证该系统是否稳定。点击“第三章 离 散傅里叶变换”控件出现的窗口图 5.6。

图 5.6 离散傅里叶变换

序列 x[k]的离散时间 Fourier 变换,简称 DTFT,定义为

X (e ) =
i?

j?

k = ?∞

∑ x[k ]e



? j?k

(5-1)

称 X(e )为非周期序列 x[k]的频谱或 DTFT。通常将序列 x[k]的 DTFT 表示为

X (e j? ) = DTFT {x[k ]} ;

(5-2)

本章选取两个实验,即方波傅里叶分析和离散傅里叶变换,分别以方波信号和指数信 号为基础。在图 5.3 上输入不同的参数可以出现不同的结果,通过各个不同的结果来分析 信号是否发生混叠。方波傅里叶分析和离散傅里叶变换的程序见(附录 2) 。 点击两个控件,出现界面图 5.7。

第 24 页

华北水利水电学院毕业设计

图 5.7 实验结果

在“请输入方波幅度”处输入 2,点击方波傅里叶分析控件,出现该方波的频谱,由 结果图可以看出,随着 N 德增加,方波信号在不连续点附近的波动的幅度保持不变,但波 峰的宽度在不断地减小,该现象即吉伯斯现象。在请输入指数信号的底数为 3,点击离散 傅里叶变换,出现该指数信号的离散傅里叶变换图形。 当参数不符合结果时,会出现错误警告信息框,如图 5.8。

图 5.8 警告框
第 25 页

华北水利水电学院毕业设计

5.4 卷积运算
本实验要求计算两个序列的卷积,卷积的幅度可以输入。点击“第四章 卷积运算” 控件,弹出如下图 5.9 所示的界面。 (程序见附录 2) 。

图 5.9 卷积运算

当输入卷积幅度时,结果界面如图 5.10。

图 5.10 卷积结果 在卷积处输入卷积幅度为 3,则幅度增大 3 倍。此处的卷积是在一定区域内的连续卷
第 26 页

华北水利水电学院毕业设计 积,与线性卷积有一定的区别。

5.5 数字滤波器设计
本实验要求设计 IIR 滤波器和 FIR 高通滤波器。截止频率可以输入。点击“第五章 滤 波器设计”控件,弹出界面图 5.11。

图 5.11 滤波器设计

本实验是根据输入的阻带频率和通带频率设计低通、高通和带通滤波器。IIR 低通滤 波器、FIR 低通滤波器和 FIR 高通滤波器是归一化的滤波器,其它 3 个滤波器则不是。 “退 出”控件可以返回主界面。程序见(附录 2) 。 点击图 5.5 中的各个控件,出现界面图 5.12。

图 5.12 滤波器设计结果
第 27 页

华北水利水电学院毕业设计 在 IIR 低通滤波器下请输入通带频率和阻带频率处输入 0.3、0.4,点击“IIR 滤波器” 控件, 得到结果见图 5.12; IIR 高通滤波器请输入通带频率和阻带频率处输入 100、 在 200、 , 点击“IIR 高通滤波器”控件,得到结果见图 5.12;在 IIR 带通滤波器请输入通带频率和阻 带频率处输入 0.45、0.25、0.55、0.15,点击“IIR 带通滤波器”控件,得到结果见图 5.12; 在 FIR 低通滤波器下请输入通带频率和阻带频率处输入 0.3、0.4,点击“FIR 低通滤波器” 控件,得到结果见图 5.12;在 FIR 高通滤波器下请输入通带频率和阻带频率处输入 0.4、 0.3,点击“FIR 高通滤波器”控件,得到结果见图 5.12;在 FIR 带通滤波器下请输入通带 频率和阻带频率处输入 0.65、0.35、0.8、0.2,点击“FIR 高通滤波器”控件,得到结果见 图 5.12; FIR 高通滤波器中,通带截频大于阻带截频,当通带截频小于阻带截频时,滤波器的 频谱是没有的,出现警告框,结果见图 5.13。

图 5.13 警告信息

当在 FIR 高通滤波器中输入 0.4、0.5 时,出现警告框。

5.6 数字系统的结构
5.6.1 级联型滤波器
点击“实验内容”控件,弹出界面图 5.6.1。

第 28 页

华北水利水电学院毕业设计

图 5.14 实验内容

本实验要求实现系统的级联型结构。M 阶 FIR 数字滤波器的系统函数 H(z)是 z 的 M 次多项式,将其分解为 L 个二阶因子相乘,即
H ( z ) = h[0]∏ (1 + β 1k z ?1 + β 2 k z ? 2 )
k =1 L

?1

(5-4)

则根据式 7-1 可以画出级联结构,这种结构需要延时器 2L=M 个、乘法器 2L+1=M+1 个、加法器 2L=M 个。级联型最大的特点是可以分别控制每个子系统的零点,因而当需要 精确控制数字滤波器的零点时,往往采用这个结构。程序见(附录 2) 。 点击“实验结果”控件,出现结果为:
sos = 0 1 3 5/9 0 2/9 1 1 -1/3 1/2 0 1/2

由实验结构可知,

5 2 1 + z ?1 + z ?2 3z ?1 9 9 H ( z) = 1 ?1 1 ?1 1 ? 2 1? z 1+ z + z 3 2 2
一般,系统函数的实数极点对应实系数一阶有理分式,共轭复数极点对应实系数二阶 有理分式。

5.6.2 格型滤波器
第 29 页

华北水利水电学院毕业设计 点击“实验内容”控件,弹出界面图 5.15。

图 5.15 实验内容 本实验要求实现系统的格型结构。格型滤波器有两个输出,对于已知系统函数的 FIR 滤波器,可以根据式 5-5、5-6 和 5-7 可求得各反射系数,即可求得其相应的格型结构。程 序见(附录 2) 。 点击“实验结果”控件,实验结果为: K=0.1667 C=2.5000 y1=3.0000 y2=3.0000 0.3714 1.5143 1.1667 1.1667 -0.1667 0.667 -0.5278 -0.5278 0.0000 0.1991 0.1991 (5-5)

K p = a p ( p)

a p ?1 (i ) =

a p (i ) ? K p a p ( p ? i )
2 1? K p

, (i = 1,2,K, p ? 1)
(5-6)

K p ?1 = a p ?1 ( p ? 1) =

a p ( p ? 1) ? K p a p (1)
2 1? K p

(5-7)

5.7 多速率信号处理基础
5.7.1 设计多带 FIR 滤波器
点击“实验内容”控件,弹出界面见图 5.16。

第 30 页

华北水利水电学院毕业设计

图 5.16 实验内容

本实验要求设计出多带的 FIR 滤波器,并与期望的幅频响应的结果进行比较。 点击“实验结果”控件,弹出界面见图 5.17。程序见(附录 2) 。

图 5.17 实验结果

由结果可知,期望的幅频响应是矩形波的形式,而设计出来的滤波器的幅频响应是类 似于正弦波的形式,说明与期望的还是有差别的。
第 31 页

华北水利水电学院毕业设计

5.7.2 设计等波纹 FIR 滤波器
点击“实验内容”控件,弹出界面见图 5.18。

图 5.18 实验内容

本实验要求设计出满足一系列指标的等波纹线性相位 FIR 低通滤波器。等波纹 FIR 滤 波器是指用 Chebyshev 误差准则设计出的 FIR 滤波器的幅度响应在通带和阻带都会呈现等 波波纹的波动。程序见(附录 2) 。 点击“实验结果”控件,弹出界面见图 5.19。

图 5.19 实验结果 由结果可知,验证了该实验。

第 32 页

华北水利水电学院毕业设计

第6章

总结

本次毕业设计,我选的课题以数字信号处理为基础,结合 MATLAB 设计实验的图形 用户界面,经过了任务分析、资料查找、相关理论知识的学习和教学实验系统的设计等阶 段。 (1)任务分析:首先要理解课题的含义,教学实验系统针对的是学生,通过此系统 达到提高教学效率的目的,所以此系统必须使用方便,形象直观,并且每个实验要有代表 性,以此达到帮助学生掌握数字信号处理的理论知识的目的。 (2)资料查找:本次设计需要找数字信号处理的实验和 MATLAB 的使用步骤,特别 是界面设计的知识。 (3)相关理论知识学习:此阶段就是要对查找到的资料进行学习。 (4)教学实验系统的设计:这一步中,要将选取的实验整合在一个系统中,借助的 工具是 MATLAB,通过 GUI 界面的设计,使各个实验的内容和结果直观可视,方便教学 和学生自学。 该系统虽然涵盖了很多实验,但还是存在局限性,数字型号处理的内容比较广泛,所 以不能将它的所有内容都包括进去。大多数实验都是验证性实验,GUI 界面操作起来有点 烦杂,还需要改进。该系统是一种纯软件的教学模式,仅有软件的辅助分析,对学生来说 缺乏一种“实”的感觉,也缺少使用硬件方面的实践过程。 数字信号处理课程理论性教强,大多抽象难懂,如何帮助学生理解和掌握课程中的基 本概念、基本原理、基本分析方法是该课程教学中所要解决的关键问题。目前许多学校运 用 MATLAB 作为实验教学平台。本文将 MATLAB 作为二次开发平台,结合理论教学的的 内容,利用图形用户界面的形式,开发该课程的教学实验系统,并对实验内容所包括的主 要功能进行了详细的说明。将该系统与多媒体教学相结合,使得课堂教学形象生动,让学 生进一步加深了对所学理论知识的理解,教师也可以利用该系统更具体地讲解实验,不仅 改善了教学效果,同时提高了教学效率。

第 33 页

华北水利水电学院毕业设计

参考文献
[1] 陈后金、薛键、胡健.《数字信号处理》 ,高等教育出版社,2004 [2] 薛年喜.《MATLAB 在数字信号处理中的应用》 ,清华大学出版社,2008 [3] 沈捷、王莉.数字信号处理教学实验软件包的 GUI 设计与实现,实验技术与管理, 2008(2) ,25 卷第 2 期 [4]沈捷、王莉.基于 MATLAB 的图形交互式数字信号处理教学实验系统,电脑开发与 应用,2009,20 卷第九期 [5]陈亮、郝卫东、乔建华,基于 MATLAB 的滤波器分析界面设计,现代电子技术, 2009,第 10 期 [6]刘舒帆、 陆辉、 费诺, 信号处理类实验课的阶梯式教学研究, 电子高等教育学会 2005 年学术年会论文集,2005 [7]吴永深,基于 VB 与 MATLAB 的数学与数字信号处理实验系统的设计与实现,东 莞理工学院学报,2006,第 13 卷第 3 期 [8]肖江、张鸿存、费诺、刘舒帆,数字信号处理实验系统的结果与应用,实验室研究 与探索,2001,第 20 卷第 4 期 [9]李显宏, 《MATLAB7.X 界面设计与编译技巧》 ,电子工业出版社,2006 [10]周明、李长虹、雷虎明, 《MATLAB 图形技术》 ,西北工业大学出版社,1999 [11]韩芝侠、王强、脱慧,基于 MATLAB GUI 的数字滤波器设计与实现,陕西理工 学院学报,2007,第 23 卷第 1 期

第 34 页

华北水利水电学院毕业设计

致谢
经过了两个多月的努力,在老师的精心指导下,终于完成了最终的毕业设计。在此首 先要感谢两个多月来一直为我的设计默默付出的陈黎霞老师,这两个多月来,陈老师对我 提出的问题都悉心解释,并提出解决方法,使我受益匪浅,再次感谢陈老师为我完成毕业 设计所做的辛勤付出。 其次要感谢的是同一组导师的各位同学,每个人对我的设计都有或多或少的启发和帮 助,他们教会我怎样使用 MATLAB 的界面设计,使我的设计有了突破性的进展。同时我 还要感谢我同宿舍的姐妹们,有了大家共同的努力,我们才能顺利完成各自的毕业设计。

第 35 页

华北水利水电学院毕业设计

附录 1:外文文献和翻译
外文原文

Introduction to Digital Signal Processing
Representation of Digital Signals Messages sent by telegraph are digital signals. They are written using 26 alphabetical characters, 10 numerals, are symbols such as commas and periods. These symbols certainly can be represented by different voltage levels, for example, A by 10V(volts), B by 9.5V, C by 9V,and so forth. This type of representation , however, is not used because it is susceptible to noise, shifting of power supply, and any other disturbances. In practice, there symbols are coded sequences of dashes and dots or, equivalently, ones and zeros. The symbol 0 can be represented by a voltage from 0 to 0.8V. the symbol 1 can be represented by voltage from 2.0 to 5.0V. The

precise voltage of each symbol is not important, but it is critical that its value lies within one of the two allowable ranges. If the value lies outside the two allowable ranges, the telegraph must make a choice of either 1 or 0, On the compact disc, 1 and 0 are represented by dimples. The leading and trailing edges of dimple represent a 1; no change represents a 0. each bit occupies
?6 approximately a distance of 1 micrometer( 10 meter). This type of representation of 1 and 0 is

much less susceptible to noise. Furthermore, it is easy to implement. Therefore, digital signals are always coded by ones and zeros in physical implementation. This is called binary coding. There are many types of binary coding. In this section, we discuss the simplest one, called sign-and-magnitude coding. Consider the following sequences of

ai :
a5
2 ?3

a0
Sign bit Each

a1
21

a2
20

a3
2 ?1

a4
2 ?2

ai

can assume only either 1 or 0 and is called a binary digit or bit. There are six bits

in the sequence, the left-most bit is called the sign bit. The sequence represents a positive number if

a0

=0 and a negative number if

a0

=1. the remaining five bits represent the magnitude of the

number. For example, we have 1 1 0 0 1 1 ←→-(1* 2 +0* 2 +0* 2 +1* 2 +1* 2 )=-2.375
第 36 页
1 0
?1 ?2 ?3

2010 年华北水利水电学院毕业论文 and 0 0 1 1 1 0←→0* 2 +1* 2 +1* 2 +1* 2 +0* 2 =1.75 The left-most bit, excluding the sign bit, is the most significant bit(MSB) and the tighr-most bit is the least significant bit ( LSB). If we use 10 bits to represent the decimal part of a number,
?10 then the LSB represents 2 = 1 / 1024 = 0.0009765 ,which yields the quantization step.

1

0

?1

?2

?3

Signals encountered in practice are mostly CT signals. To process ananalog signal digitally, it must first be discretized in time to yield a discrere-time signal and then quantized in amplitude to yield a digital signal. Therefore, in actual digital signal processing, we deal exclusively with digital signals. An analytical study of digital signals, however, is difficult, because quantization is not a linear process. To simplify the discussion, we use decimal numbers to illustrate this point. Suppose every number is to be rounded to the nearest integer( that is, the quantization step is 1);then we have Q (2.6 + 2.7) = Q (5.3) = 5 ≠ Q (2.6) + Q (2.7) = 3 + 3 = 6 where Q stands for quantization. Because of there nonlinear phenomena, analytical study of digital signals is complicated. There are, however no such problems in studying discrete-time signals. In actual processing or implementation, all discrete-time signals must be converted into digital signals. In quantization, if the amplitude of discrete-time signal does not fall exactly on a quantization level, then the value must be approximated by a quantization level either by truncation or rounding, in either case, errors will occur. Such errors are called quantization errors. In general, quantization errors are studied separately in digital signal processing. Such a study is important in specialized hardware that uses a small number of bits such as 4 or 8 bits. On digital computers and DSP processors that have 16 or 32 bits, quantization errors are very small and can often be simply ignored. For convenience, we use digital signals and discrete-time signals inter-changeably with the understanding that all DT signals must be transformed into digital signals in implementation and al digital signals are considered an DT signals in analysis and design.

Comparison of Digital and Analog Techniques
第 37 页

2010 年华北水利水电学院毕业论文 Digital techniques have become increasingly popular and have replaces, in many applications, analog techniques. We discuss some of the reasons in the following. Digital techniques are less susceptible to noise and disturbance. In the transmission and processing of analog signals, any noise or disturbance will affect the signals. Digital signals are coded in 1s and 0s, which are represented by ranges of voltages; therefore, small noise, disturbance or perturbation in power supply may not affect the representation. Thus digital techniques are less susceptible to noise and disturbance. This reliability can further be improved by using error-detecting and error-correcting codes. On the compact disc, by using the so-called cross-interleaved Reed-Solomon code, it is possible to correct 2400 bit long errors (corresponding to 2 mm scratches). However, the number of bits must be increased considerably. For example, portion of the audio signal represented originally by 192 bits now requires 588 bits on the disc. Another example is the transmission of the pictures of the Mars, taken by a
6 spacecraft, to the ground station on the earth, after traveling over 200 × 10 kilometers, the

received signal has a power level in the order of 10^-18 watts. If the signal is transmitted by analog techniques, the received signal will be severely corrupted by noise and it is not possible to reconstruct the pictures, However, the pictures of the Mars have been transmitted successfully to Earth by using digital techniques. The precision in digital techniques is much higher than that in analog techniques. In analog display, the accuracy of the reading is often limited. Generally, we can achieve only an accuracy of 1% of the full scale. In digital display, the accuracy can be increased simply by increasing the number of bits used. In analog systems, it is difficult or very expensive to have a number of components with identical value. For example, if we buy ten 1 k? resistors, probably the resistances of the ten resistors will be all different and none exactly equals 1 k? . Even simply analog voltmeters require constant resetting in their use. Digital systems have no such problem; they can always be exactly reproduced. The storage of digital signals is easier than that of analog signals. Digital signals can be easily stored in shift registers, memory chips, floppy disks, or compact discs for an long an needed without loss of accuracy. These data can be retrieved for use in a few microseconds. This easy storage and rapid access is an important feature of digital techniques, the only convenient
第 38 页

2010 年华北水利水电学院毕业论文 way to store analog signals is to tape or film them. Their retrieval is not an convenient and fast an in digital techniques. Digital techniques are more flexible and versatile than analog techniques. In digital display, digital signals can easily be frozen, expanded, or manipulated. A digital system can be easily components. Using time multiplexing, a digital syetem can be used to process a number of digital signals: for example, if the sampling period of a digital signal is 0.05s and if the processing of the signal requires only 0.005s, then the digital system will be free in the next 0.045s and can be used to process other signals. Another example of this type of arrangement is the digital transmission of human voices. On a telephone line, the voice is sampled 8000 times per second; each sample is of 64000 or 64K bits per second. The existing telephone can transmit 1544k bits per second,. Therefore, a single telephone line can be used to transmit 24 voice-band channels. If we use fiber optics, then the number of channels is even larger.

Personal computers are now widely available, so is computer software. This fact speeds considerable the spreading of digital techniques. Form the preceding discussion, it is not surprising to see the avalanche of digital techniques. In many applications digital techniques have almost completely replaced analog techniques such as in analog oscilloscopes and analog computers. Applications of digital signal processing The roots of DSP are in the 1960s and 1970s when digital computers first became available. Computers were expensive during the era, and DSP was limited to only a few critical applications. Pioneering efforts were made in four key areas: radar& sonar, where national

security was at risk;irreplaceable; and medical imaging, where lives could be saved. The personal computer revolution of the 1980s and 1990s caused DSP to explode with new applications. Rather than being motivated by military and government needs, DSP was suddenly driven by the commercial marketplace. Anyone who thought they could make money in the rapidly expanding field was suddenly a DSP vendor. DSP reached the public in such products an: mobiles telephones, compact disc players, and electronic voice mail.

第 39 页

2010 年华北水利水电学院毕业论文

外文翻译 数字信号处理简介
1.1 数字信号的表示 电报发送的消息是数字信号。这些消息由 26 个英文字母组成,10 个数字,逗号,句 号等符号组成。它们可以用的电压来表示,例如用 10V 表示字母 A,9.5V 表示字母 B,9V 表示字母 C 等。不过,由于这种表示法容易受噪声、电源起伏及其他干扰的影响而未被采 用。在实际应用中,这些符号被编成一串点、画,或者 1 和 0。符号 0 可以表示为一个从 0 到 0.8V 之间的电压。 符号 1 用从 2.0 到 5.0V 的电压表示。 每个符号表示的精确电压值并 不重要,关键是它的值是否在上述任意一个允许的范围内。 如果这个值在两种允许范围以外, 电报必须在 0,1 之间做出选择而可能发生错误。在此情况下,可以发送错误信息,重传信 号。在光盘上用凹痕来表示 0 和 1。凹痕的前端和后端代表 1;没有改变代表 0,一位数据 大约占 1 微米的长度。这种类型的表示 受噪声的影响较少,而且很容易实现。

因此,数字信号实现总是用 1 和 0 编码,这被称为二进制编码。二进制数编码的方式有很多 种。在本节中,我们讨论的最简单的一种叫做符号数值编码。考虑以下序列 a0
符号位

ai ,

a1
21 20

a2

a3 2 ?1

a4
2 ?2

a5

2 ?3

每一

ai

称为一个二进制位或比特,取值只能是 1 或 0。该序列有 6 位,最左边的是符号

位, a 0 =0 代表正数, a 0 =1 代表负数,剩下的 5 个比特代表该数的大小。例如,我们有
1 1 0 0 1 1 ←→-(1+0+0+1* 2 +1* 2 )=-2.375 0 0 1 1 1 0←→0* 2 +1* 2 +1* 2 +1* 2 +0* 2 =1.75
1 0
?1 ?2 ?3 ?2 ?3

除符号位外最左边的位是最高有限位,而最右边的位是最低有效位。如果我们用 10 个 比特代表一个数的小数部分,最低有效位表示为 2
?10

= 1 / 1024 = 0.0009765 ,即为量化阶。

在实际常见的信号大多是连续时间信号, 要以数字化方式处理模拟信号,应先对模拟信 号在时间上离散化以产生离散时间信号,然后对其幅值量化以产生数字信号。因此,在实际 数字信号处理中,我们只处理数字信号。 然而,对于数字信号的分析研究是很困难的,因为量化不是线性过程。为了简化讨论,
第 40 页

2010 年华北水利水电学院毕业论文 我们使用十进制数字来说明这一点。假设每个数值都四舍五入为最近的整数(即量化阶为 1),则有
Q (2.6 + 2.7) = Q (5.3) = 5 ≠ Q (2.6) + Q (2.7) = 3 + 3 = 6

这里 Q 表量化。由于非线性的存在,数字信号的分析研究变得很复杂。然而,离散时间 信号的研究就没有这个问题。因此,在分析和设计时,将数字信号视为离散时间信号,而在 实际处理与电路实现中,再将所有离散时间信号转换为数字信号。量化时,如果离散信号的 幅度与量化电平不一致,那么就必须采用截断或四舍五入的方式将它量化为某个量化电平, 在这两种情况下,都会出现误差,这种误差被称为量化误差。 一般来说,在数字信号处理中常对量化误差进行专题研究。但是,在采用很少的位数, 比如 4 位或者 8 位的专用硬件中,量化误差的研究是很重要的。在数字计算机和 16 或 32 位数字信号处理器中,量化误差很小,而且通常可以被完全忽略。由于在电路实现时必须将 数字信号看作离散时间信号,为方便起见,我们不加区别的使用数字信号和离散时间信号。
1.2

数字技术和模拟技术的比较 数字技术和模拟技术的比较 技术和模拟技术 数字技术变得越来越流行,而且在很多应用中取代了模拟技术。 下面讨论一下其中的原 因。数字技术不易受到噪声和干扰。在模拟信号的传输和处理时,任何噪音和干扰都将直 接影响到信号。数字信号由 1 和 0 编码,它们分别代表不同的电压,因此,小噪音、干扰和 电压起伏不会影响信号的表示。因此数字技术不易受噪声和干扰的影响。通过检错码和纠 错码可以更进一步提高其可靠性。在光盘上通过采用交叉纠错的 Reed-Solomon 码可以纠 正 2400 位长的错去(相当于 2 毫米的划痕)。然而,所需要的比特数也是相当可观。例如,原 来需要 192 位的音频信号在光盘上需要 588 位表示。另一个例子就是将由太空船拍摄的传
?18

火星照片传送至地上的地面工作者。经过 2 亿千米的传输,接收信号电压为 10

W 量级。

如果信号是通过模拟技术传送,接收信号会被噪声严重损坏而不可能重建图片。然而,火星 图片已经成功采用数字信号传输到地球。 数字技术的精确程度远远高于模拟技术。采用模拟显示,读数精度有限,大体上是满刻 度的 1%。然而在数字显示中,精度的提高仅仅是通过增加位数。在模拟系统中,很难做到使 器件具有相同的数值。例如,如果我们买十 1 k? 的电阻,很可能他们的阻值全都不同,而且没 有一个是 1 k? ,甚至很简单的电压表在使用中叶需要经常重新设置。然而,数字系统没有 这样的问题,他们可以被精确复制。 数字信号的存储比模拟信号容易。必要时可以将数字信号无失真的存放在移位寄存
第 41 页

2010 年华北水利水电学院毕业论文 器、内存、软盘和光盘中。提取这些数据只需要几微秒的时间。容易存储和易于读取是数 字技术的重要特征,存储模拟信号唯一方便的方式是把他们存在磁带或胶片上。 他们的提取 不像数字技术那么方便。 数字技术比模拟技术更加灵活、通用。采用数字显示,易于对

数字信号进行定格、放大和处理。通过设置参数可以很容易的改变数字系统。而改变模拟 系统,则必须替换其他电路器件。利用时分复用技术,数字系统就可以处理很多数字信号。 例如,如果数字信号的采样周期是 0.05s,处理器信号空闲状态,可以用来处理其他的信号。 其他这类例子有这语音的数字传输。在电话线上,语音每秒采样 8000 次,每个采样编码。 因此,一个电话线可以传送 24 路语音信号。如果我们用光纤,传输的路数就会更多。 个人计算机得到广泛使用,计算机软件也是如此。这很大程度上加速了数字技术的推 广。 从前面的讨论中不难看出,数字技术的发展突飞猛进。在许多应用中,数字技术几乎完 全取代了模拟技术,比如模拟示波器和模拟计算机。 1.3 数字信号处理中的应用 DSP 始于 20 世纪六七十年代,当时数字计算机刚刚问世。那时计算机很昂贵,DSP 仅用于一些关键应用。在关系到国家安全的雷达和声纳等关键领域,在利润丰厚的石油勘 探领域,在数据不能替代的太空探索中,在救死扶伤的医学影像领域,DSP 都发挥了开拓 性作用。二十世纪八十年代到九十年代的个人计算机革命使 DSP 扩展到新的应用。而不是 军事和政府的要求,DSP 被商业市场所推动。 那些认为自己能在快速扩张领域赚钱的人突然 间变成了 DSP 销售商。DSP 如果通过如下产品进入公众视线:移动电话、光盘播放器及电 子语音邮件。

第 42 页

2010 年华北水利水电学院毕业论文

附录 2:程序
第一章: 正弦信号: Function pushbutton2_Callback(hObject, eventdata, handles) %将句柄值为 handles.axes1 设置成当前坐标轴 axes(handles.axes1) clc %将字符串转变为数值 A=str2num(get(handles.edit1,'String')); W=str2num(get(handles.edit2,'String')); P=str2num(get(handles.edit3,'String')); t=0:.001:10; ft=A*sin(W*t+P); plot(t,ft);grid; title('A*sin(W*t+P)'); 指数信号: Function handles) axes(handles.axes3) clc A=str2num(get(handles.edit4,'String')); a=str2num(get(handles.edit5,'String')); t=0:.001:10; ft=A*exp(a*t); plot(t,ft);grid; title('A*exp(a*t)') 单位阶跃信号: function pushbutton5_Callback(hObject, eventdata, handles) pushbutton3_Callback(hObject,eventdata, axes(handles.axes4) clc t=str2num(get(handles.edit7,'String'))-2:0.001:str2nu m(get(handles.edit7,'String'))+2; ft=(t-str2num(get(handles.edit7,'String'))>0); plot(t,ft) axis([str2num(get(handles.edit7,'String'))-2,str2num( get(handles.edit7,'String'))+2,-0.2,1.2]) title('单位阶跃信号') 单位脉冲信号: function pushbutton4_Callback(hObject, eventdata, handles) axes(handles.axes2) t1=str2num(get(handles.edit6,'String')); t=t1-1:0.01:t1+1; 量 n=length(t); 度 %产生一行全 0 矩阵,即各样本点信号赋值为 0 x=zeros(1,n); %在 t=-t0 处,给样本点赋值 1 x(1,(n-1)/2)=1; stairs(t,x) %用 stairs 命令画步进图形 %时间样本点向量长 %信号时间样本点向

axis([str2num(get(handles.edit6,'String'))-1,str2num( get(handles.edit6,'String'))+1,0,1]) title('单位脉冲信号') 矩形脉冲信号: pushbutton6_Callback(hObject, eventdata, handles) axes(handles.axes5)
第 43 页

2010 年华北水利水电学院毕业论文

dt1=str2num(get(handles.edit8,'String'))-str2num(get (handles.edit9,'String')); dt2=str2num(get(handles.edit8,'String'))+str2num(ge t(handles.edit9,'String')); t=dt1:0.001:dt2; ft=rectpuls(t-str2num(get(handles.edit8,'String')),str2 num(get(handles.edit9,'String'))); plot(t,ft) title('矩形脉冲') 抽样信号: function pushbutton7_Callback(hObject, eventdata, handles) axes(handles.axes6) t=-3*str2num(get(handles.edit10,'String'))*pi:pi/100: 3*str2num(get(handles.edit10,'String'))*pi; ft=sinc((t-str2num(get(handles.edit10,'String')))/pi); axis([str2num(get(handles.edit10,'String'))-10,str2nu m(get(handles.edit10,'String'))+10,-1,1]) plot(t,ft) title('抽样信号') 第二章: 翻转: function pushbutton1_Callback(hObject, eventdata, handles) %将句柄值为 handles.axes1 的坐标轴指定为当前 坐标轴 axes(handles.axes1) t=str2num(get(handles.edit4,'String')); k=-1:1:3;

x0=[1 0.5 0.5 1 1.5]; x=[x0 zeros(-1,8-length(k))]; y=t*fliplr(x); stem(k,y); 位移: function pushbutton2_Callback(hObject, eventdata, handles) axes(handles.axes2) t=str2num(get(handles.edit1,'String')); k=[t-3:t+7]; k>=0; if t<-7 errordlg('参数输入错误,请重新输入!','错误'); return;%退出该文件 end fk=[(k-t)>=0]; stem(k,fk) 相加: function pushbutton3_Callback(hObject, eventdata, handles) axes(handles.axes3) t=str2num(get(handles.edit5,'String')); n1=1:5; x10=[1 0.7 0.4 0.1 0]; n2=3:8; x20=[0.1 0.3 0.5 0.7 0.9 1]; n=1:8; x1=[x10 zeros(1,8-length(n1))]; x2=[zeros(1,8-length(n2)) x20]; %产生矩阵 %翻转

第 44 页

2010 年华北水利水电学院毕业论文
x=t*(x1+x2); 相乘: function pushbutton4_Callback(hObject, eventdata, handles) axes(handles.axes4) t=str2num(get(handles.edit6,'String')); n1=1:5; x10=[1 0.7 0.4 0.1 0]; x1=[x10 zeros(1,8-length(n1))]; n2=3:8; x20=[0.1 0.3 0.5 0.7 0.9 1]; n=1:8; x1=[x10 zeros(1,8-length(n1))]; x2=[zeros(1,8-length(n2)) x20]; x=t*x1.*x2; stem(n,x); 卷积: function pushbutton5_Callback(hObject, eventdata, handles) axes(handles.axes5) t=str2num(get(handles.edit3,'String')); k1=-1:3; k2=-1:3; f1=[0 1 3 2 0 ]; f2=[0 4 3 2 1 ]; y=t*conv(f1,f2); k0=k1(1)+k2(1); k3=length(f1)+length(f2)-2; %卷积之后序列的长度 k=k0:k0+k3; %卷积 %相乘 stem(n,x); stem(k,y) title('卷积序列') 第三章: 方波傅里叶分析: function pushbutton1_Callback(hObject, eventdata, handles) xes(handles.axes1) clc f=str2num(get(handles.edit1,'String')); t=0:0.01:2*pi; y=f*sin(t); plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3); plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3+sin(5*t)/5); plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7); plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7+sin(9*t )/9; plot(t,y),hold on y=f*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7+sin(9*t )/9+sin(11*t)/11); plot(t,y),grid title('方波傅立叶分析') 离散傅里叶变换: function pushbutton2_Callback(hObject, eventdata, handles) axes(handles.axes2)
第 45 页

2010 年华北水利水电学院毕业论文
t=str2num(get(handles.edit2,'String')); if t<=0 errordlg('参数输入错误,请重新输入!','错误'); return;%退出该文件 end n=-5:5; x=t.^n; k=-200:200; w=(pi/100)*k; X=x*(exp(-j*pi/100)).^(n'*k); p=abs(X); plot(w/pi,p),grid title('离散傅立叶变换'); 第四章: %卷积 function pushbutton5_Callback(hObject, eventdata, handles) axes(handles.axes2) t11=0; t12=1; t1=t11:0.001:t12; ft1=2*rectpuls(t1-0.5,1); plot(t1,ft1) function pushbutton6_Callback(hObject, eventdata, handles) axes(handles.axes3) t21=0; t22=2; t2=t21:0.001:t22; ft2=rectpuls(t2-0.5,1); %产生方波 plot(t2,ft2) function pushbutton4_Callback(hObject, eventdata, handles) axes(handles.axes1) clc t=str2num(get(handles.edit1,'String')); t11=0; t12=1; t21=0; t22=2; t1=t11:0.001:t12; ft1=2*rectpuls(t1-0.5,1); t2=t21:0.001:t22; ft2= rectpuls(t2-0.5,1); t3=t11+t21:0.001:t12+t22; ft3=conv(ft1,ft2); ft3=t*ft3*0.001; plot(t3,ft3) title('f1(t)*f2(t)') 第五章: IIR 低通滤波器: function pushbutton1_Callback(hObject, eventdata, handles) axes(handles.axes1) Wp=str2num(get(handles.edit5,'String'))*pi; Ws=str2num(get(handles.edit6,'String'))*pi; Ap=1;As=25; Fs=1;%抽样频率 Wp=Wp*Fs;Ws=Ws*Fs;%确定模拟 BW 指标 N=buttord(Wp,Ws,Ap,As,'s');%确定 AF 阶数
第 46 页

2010 年华北水利水电学院毕业论文
%由通带指标确定 3db 截频 Wc=Wp/(10^(0.1*Ap)-1)^(1/2/N); [numa,dena]=butter(N,Wc,'s');%确定 BW AF %脉冲响应不变法 [numd,dend]=impinvar(numa,dena,Fs); w=linspace(0,pi,512); h=freqz(numd,dend,w);%DTFT 的抽样 norm=max(abs(h)); numd=numd/norm;%幅度归一化 DF 的幅度响应 plot(w/pi,20*log10(abs(h)/norm));grid; xlabel('Normalized frequency'); ylabel('Gain,dB'); disp('Numerator polynomial'); fprintf('%.4e\n',numd); disp('Denominator polynomial'); fprintf('%.4e\n',dend); %计算 Ap 和 As w=[Wp Ws]; h=freqz(numd,dend,w); fprintf('Ap=%.4f\n',-20*log10(abs(h(1)))); fprintf('As=%.4f\n',-20*log10(abs(h(2)))); IIR 高通滤波器: function pushbutton2_Callback(hObject, eventdata, handles) axes(handles.axes2) fb=str2num(get(handles.edit3,'String')); fc=str2num(get(handles.edit4,'String')); As=10; Ap=1; fs=1000;%抽样频率
第 47 页

Ts=1/fs; Wb=2*pi*fb/fs; Wc=2*pi*fc/fs; Wb1=2/Ts*tan(Wb/2); Wc1=2/Ts*tan(Wc/2); [N,Wn]=buttord(Wb1,Wc1,Ap,As,'s'); %选择滤波器的最小阶数, 表示设计的是模拟 ‘s’ 滤波器 [Z,P,K]=buttap(N); [Bap,Aap]=zp2tf(Z,P,K); [b,a]=lp2hp(Bap,Aap,Wn); %低通到高通的变换 %设计模拟滤波器的原型

%用双线性变换法实现模拟滤波器到数字滤波器 的转换 [bz,az]=bilinear(b,a,fs); [H,W]=freqz(bz,az); plot(W*fs/(2*pi),abs(H)); grid xlabel('频率/Hz') ylabel('频率响应幅度') IIR 带通滤波器: function pushbutton3_Callback(hObject, eventdata, handles) axes(handles.axes3) f1=str2num(get(handles.edit7,'String')); f2=str2num(get(handles.edit8,'String')); f3=str2num(get(handles.edit17,'String')); f4=str2num(get(handles.edit18,'String')); % 直接设计带通数字椭圆滤波器 if f2>f1|| f4>f3 errordlg(' f2<f1&&f4<f3,请重新输入! ','错误');

2010 年华北水利水电学院毕业论文
return;%退出该文件 end Wp=[f2,f1]; Ws=[f4,f3]; Rp=0.1; Rs=60; [N,wc]=ellipord(Wp,Ws,Rp,Rs);%计算 N 和 wc %确定系统函数的分子多项式和分母多项式 [b,a]=ellip(N,Rp,Rs,wc); [hw,w]=freqz(b,a); plot(w/pi,20*log10(abs(hw))); grid FIR 低通滤波器: function pushbutton4_Callback(hObject, eventdata, handles) axes(handles.axes4) Fp=str2num(get(handles.edit9,'String')); Fs=str2num(get(handles.edit10,'String')); M=63; h=firls(M,[0 Fp Fs 1],[1 1 0 0]); w=linspace(0,pi,1000); mag=freqz(h,[1],w); plot(w/pi,20*log(abs(mag))); xlabel('Normalized frequency'); ylabel('Gain,dB'); FIR 高通滤波器: function pushbutton5_Callback(hObject, eventdata, handles) axes(handles.axes5) Wp=str2num(get(handles.edit11,'String'))*pi; Ws=str2num(get(handles.edit12,'String'))*pi; Ap=0.3;As=40; if Ws>Wp end %确定滤波器阶数 N=ceil(6.2*pi/(Wp-Ws));%朝该数方向取整 N=mod(N+1,2)+N;%模运算 M=N-1; fprintf('滤波器阶数=%.of\n',M); w=hanning(N)'; %理想低通截频 Wc=(Wp+Ws)/2; k=0:M; hd=-(Wc/pi)*sinc(Wc*(k-0.5*M)/pi); hd(0.5*M+1)=hd(0.5*M+1)+1; h=hd.*w; omega=linspace(0,pi,512); mag=freqz(h,[1],omega); magdb=20*log(abs(mag)); plot(omega/pi,magdb); xlabel('Normalized frequency'); ylabel('Gain,dB');grid; FIR 带通滤波器: function pushbutton6_Callback(hObject, eventdata, handles) axes(handles.axes6) f1=str2num(get(handles.edit13,'String'))*pi; f2=str2num(get(handles.edit14,'String'))*pi; f3=str2num(get(handles.edit15,'String'))*pi; f4=str2num(get(handles.edit16,'String'))*pi;
第 48 页

errordlg(' Ws<Wp,请重新输入!','错误'); return;%退出该文件

2010 年华北水利水电学院毕业论文
if f2>f1|| f4>f3 return;%退出该文件 end B=f2-f4; N=ceil(12*pi/B); wp=[f2/pi-6/N,f2/pi+6/N]; hn=fir1(N-1,wp,blackman(N)); %频率响应 n=0:79; [hw,w]=freqz(hn,1); plot(w/pi,20*log10(abs(hw))); grid on; 第六章: 级联型结构: errordlg(' f2<f1&&f4<f3,请重新输入!','错误'); x=[1 0 0 0]; %输入信号 y1=filter(num,den,x) %直接型结构实现 y2=latcfilt(K,C,x) %格型结构实现 第七章: 多带 FIR 滤波器: function pushbutton2_Callback(hObject, eventdata, handles) close Untitled13; f=[0 0.2 0.2 0.4 0.4 0.6 0.6 1]; m=[1 1 0 0 1 1 0 0]; b=fir2(40,f,m);

function pushbutton1_Callback(hObject, eventdata, [H,W]=freqz(b,1,256); handles) close 实验内容和结果; format rat num=[3,5/3,2/3]; den=[1,1/6,1/3,-1/6]; %将状态空间系统转为零极点系统 [z,p,k]=tf2zp(num,den); %二阶分式之积 sos=zp2sos(z,p,k) 格型结构: plot(f,m,':',W/pi,abs(H)); legend('期望幅频响应','实际幅频响应'); 等波纹滤波器: function pushbutton2_Callback(hObject, eventdata, handles) close Untitled14; Fp=0.5;Fs=0.6;ds=0.0017;dp=ds; f=[Fp,Fs];a=[1 0];dev=[dp ds]; %估计滤波器阶数 M [M,fo,ao,w]=remezord(f,a,dev); %实现等波纹滤波器设计

function pushbutton2_Callback(hObject, eventdata, h=remez(M,fo,ao,w); handles) close Untitled12 num=[3 5/2 2/3]; %分子多项式系数向量 den=[1 1/6 1/3 -1/6]; %分母多项式系数向量 [K,C]=tf2latc(num,den) %求格型结构 K 参数和 C 参 数
第 49 页

w=linspace(0,pi,1000); mag=freqz(h,[1],w); hd=plot(w/pi,20*log10(abs(mag))); %频率响应 xlabel('Normalized frequency'); ylabel('Gain’);


网站首页 | 网站地图 | 学霸百科 | 新词新语
All rights reserved Powered by 大学生考试网 9299.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com