基于MATLAB GUI信号与系统教学软件设计

更新时间:2024-05-20 16:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

包头师范学院本科毕业论文

目 录

1 引言 ................................................... 1

1.1论文写作背景................................................................................................... 1

1.2研究问题的提出............................................................................................... 1 1.3研究问题的解决方案....................................................................................... 1

2 MATLAB软件简介 ........................................ 2

2.1 MATLAB发展过程 ......................................................................................... 2

2.2 MATLAB入门及其结构 ................................................................................. 3 2.3 MATLAB在信号与系统中的应用 ................................................................. 4

3 信号与系统知识结构 ..................................... 4

3.1信号与系统课程简介....................................................................................... 4

3.2基于教学软件中有关信号与系统的知识结构............................................... 5

3.2.1 信号的频域分析.................................................................................... 5 3.2.2 系统的频域分析.................................................................................... 7 3.2.3教学软件中相关知识结构..................................................................... 9

4 GUI界面的创建与应用 .................................... 9

4.1 GUI界面的基本知识 ..................................................................................... 9

4.2 信号与系统教学软件GUI设计 .................................................................. 11

4.2.1GUI主界面的设计 ............................................................................... 11 4.2.2周期信号频域分析............................................................................... 12 4.2.3非周期信号频域分析........................................................................... 14 4.2.4系统的频率响应................................................................................... 23

结 论 .................................................. 25 参考文献 ................................................ 26 致 谢 .................................................. 27

包头师范学院本科毕业论文

1 引言

1.1论文写作背景

随着社会科技的高速发展以及计算机网络的普及,对信息应用的研究就变得非常重要,而其中对信号波形的模拟可以方便研究人员进行科学研究。“信号与系统”课程的特点是概念抽象,数学运算量大、公式和理论推导相对较多,因此一直处于教难、学更难的境况中,这就更加需要通过实验来帮助学生理解这些抽象概念。学校开设的传统实验均在实验室的硬件实验设备上完成,设备的使用存在空间、时间上的局限性,另外,对仪器操作不当等因素导致无法看到正确的波形。而用软件对信号波形进行仿真有着界面可视性强,操作简单方便;便于数据修改,文件保存,实验效率高,实验内容丰富,结果直观易懂,便于分析的优点,同时可以让学生对相关课程产生兴趣,所以使用软件有必要而且急为迫切。

1.2研究问题的提出

在学习“信号与系统”这门课程时,由于该课程对数学要求较高,理论结果往往来源于复杂的数学运算及推导,这就导致学生将大量的时间用于进行手工数学运算(如微分、积分、方程求解、多项式求根等),而未真正理解分析结果在信号处理中的实际应用。因此学生在学习过程中较被动,特别是在系统设计方面,自己设计的系统经过复杂的手工数学计算后,往往不能直观地得到系统的可视化测试结果,一定程度上制约了学生学习的主动性和创造性,达不到培养综合能力的目的。

因此,该课程迫切需要进行教学方法和教学手段的改革,即改革传统的单一教学模式,将计算机多媒体教学引入到“信号与系统”课程的教学中来,进行“信号与系统”计算机仿真立体化教材建设,实现在实验环境中,以计算机为辅助教学手段,用信号分析软件帮助学生完成数值计算、信号与系统分析的可视化建模及仿真调试,培养学生主动获取知识和独立解决问题的能力,为学习后续专业课打下坚实的基础。

1.3研究问题的解决方案

MATLAB 的出现给“信号与系统”课程的计算机辅助教学及计算机仿真带来了福音,使利用计算机辅助学生完成“信号与系统”课程的数值计算、信号与

1

包头师范学院本科毕业论文

系统分析的可视化建模及仿真调试成为可能,该软件包含的信号处理工具箱更是学习和应用信号与系统分析方法和原理的有力工具。

本教学软件就是基于MATLAB软件中的GUI即图形用户界面(GUI是由窗口、按键、菜单、文字说明等对象构成的一个用户界面,用户通过一定的方法,选择、激活这些图形对象,实现计算、绘图等功能)模块进行的设计。通过简单的操作可以直观的了解到信号在时域、频域的变换以及运算, 使同学能够对本课程的学习产生兴趣。

2 MATLAB软件简介

2.1 MATLAB发展过程

MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(短阵实验室)的缩写。它的第1版(DoS版本1.0)发行于1984年,现在最新的版本集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。

在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。 MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,不要求作明确的维数说明。与利用c语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。

在美国的一些大学里,MATLAB正在成为对数值线性代数以及其他一些高等应用数学课程进行辅助教学的有益工具。在工程技术界,MATLAB也被用来解决一些实际课题和数学模型问题。典型的应用包括数值计算、算法预设计与验证,以及一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。

MATLAB系统最初是由CIeve Moler用FORTRAN语言设计的,有关短阵的算法来自LINPACK和EIsPACK课题的研究成果;现在的MATLAB程序是Math Works公司用 C语言开发的,第一版由Steve Bangert主持开发编译解释程序,Steve Kleiman完成图形功能的设计,John Little和Cleve Moler主持开发了各类数学分分析的子模块,撰写用户指南和大部分的M文件。自从第一版发行以来,已有众多的科技工作者加入到MATLAB的开发队伍中,并为形成今天的MATLAB

2

包头师范学院本科毕业论文

系统做出了巨大的贡献。 MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。到九十年代初期,在国际上30多个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头。1993年Math Works公司从加拿大滑铁卢大学购得Maple的使用权,以Maple为“引擎”开发了Symbolic Math Toolbox 1.0。Math Works公司此举加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。

可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB还具有很强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。用户可以根据自己的工作任务,开发自己的工具箱。在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。

显然,今天的MATLAB 已经不再是仅仅解决矩阵与数值计算的软件,更是一种集数值与符号运算、数据可视化图形表示与图形界面设计、程序设计、仿真等多种功能于一体的集成软件。观察由欧美引进的新版教材,MATLAB 已经成为线性代数、数值分析计算、数学建模、信号与系统分析、自动控制、数字信号处理、通信系统仿真等一批课程的基本教学工具。而在国内,随着MATLAB 在我国高校的推广和应用,MATLAB 已经渐入人心。

2.2 MATLAB入门及其结构

MTALAB系统由五个主要部分组成,下面分别加以介绍。 (1)MATALB语言体系 MATLAB是高层次的矩阵/数组语言、具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。 (2)MATLAB工作环境这是对MATLAB提供给用户使用的管理功能的总称,包括管理工作空间中的变量数据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。 (3)图形对象系统是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括

3

包头师范学院本科毕业论文

用户对图形图像等对象进行控制的底层MATLAB命令,及开发GUI应用程序的各种工具。 (4)MATLAB数学函数库是对MATLAB使用的各种数学算法的总称.包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。 (5)MATLAB应用程序接口(API),是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序。

2.3 MATLAB在信号与系统中的应用

当今社会已经进入信息时代,人们每天都要接触各种各样载有信息的信号形式,如接收广播、电视信号、使用电话传送声音信号等,其目的是为了把不同形式的消息借助一定形式的信号进行表达或传递。因此,通常把人们得到的消息、情报或知识称为信息。而传输信息的载体或者说信息的具体表现形式称作信号。

连续时间信号分析和离散时间信号分析是信号处理的基础。对于线性系统中的信号处理无论是连续系统还是离散系统其所处理的信号都可分解为一系列基本信号分量的线性组合;而线性系统对任一输入信号的响应是系统对许多不同基本信号分量分别作用产生相应的叠加;不同信号分解方式会导致不同系统分析方法。

用MATLAB表示和分析连续系统和线性时不变连续系统,严格来说,只有用符号推理的方法才能分析连续系统,用数值方法是不能表示连续信号的,因为它给出的是各个样本点的数据。只有当样本点取得很密集时才可看成连续信号,所谓密集,是相对于信号变化的快慢而言。

3 信号与系统知识结构

3.1信号与系统课程简介

“信号与系统”是与通信、信息及自动控制等专业有关的一门基础学科。它的主要任务是:(1)在“时间域”及“频率域”下研究时间函数x(t)及离散序列x(n)的各种表示方式,(2)在“时间域”及“频率域”下研究系统特性的各种描述方式,(3)在“时间域”及“频率域”下研究激励信号通过系统时所获得的响应。

时间函数x(t)及自变量代表时间的离散序列x(n)是信号的时域的基本表示方式。此外,无论是连续信号还是离散序列,都可以在频域中用它的傅里叶变换

4

包头师范学院本科毕业论文

(即频谱函数)表示,也可以在“复频域”中用相应的拉普拉斯变换或z变换表示。与此对应,连续或离散系统的特性可在时域中用微分方程或差分方程描述,也可分别用冲激响应h(t)或h(n)描述;或频域中用频率响应H(jω)、H(ejw)或传递函数H(s)、H(z)描述。研究在给定的激励下通过系统的响应,可以在时域下用解微分方程或差分方程的方法,或通过激励信号与冲激响应的卷积进行,也可以在频域下,分别将连续信号或离散序列的傅里叶变换、拉普拉斯变换或z变换与系统的频率响应或传递函数相乘,得出响应的傅里叶变换、拉普拉斯变换或z变换,再进行反变换。就得到了以时间函数或离散序列表示的响应。

课程从概念上可以区分为信号分解和系统分析两部分,但二者又是密切相关的,根据连续信号分解为不同的基本信号,对应推导出线性系统的分析方法分别为:时域分析、频域分析和复频域分析;离散信号分解和系统分析也是类似的过程。范围限定于确定性信号(非随机信号)经线性、时不变系统传输与处理的基本理论。本课程涉及的数学内容包括微分方程、差分方程、级数、复变函数、线性代数等。

本课程的主要内容包括连续系统的时域分析、傅里叶变换、拉普拉斯变换、连续时间系统的s域分析、离散时间系统的时域分析、z变换、离散时间系统的z域分析等。

3.2基于教学软件中有关信号与系统的知识结构

3.2.1 信号的频域分析

1.连续时间信号频域分析 (1)连续时间周期信号的频域分析

周期信号可以表示为不同频率正弦分量的线性组合。从信号分析的角度,将信号表示为不同频率正弦分量的线性组合,为不同信号之间进行比较提供了途径;从系统分析角度,已知单频正弦信号激励下的响应,利用叠加特性可求得多个不同频率正弦信号同时激励下的总响应及每个正弦分量通过系统后的变化。

~周期信号 应满足狄里赫利(Dirichlet条件),即: x(t)展开为傅里叶级数时,

~(a) 在一个周期内绝对可积,即满足 ?x(t) dt??。

?T0/2T0/2(b) 在一个周期内只有有限个不连续点。

5

包头师范学院本科毕业论文

(c) 在一个周期内只有有限个极大值和极小值。

在实际表示中,周期信号可以分解为不同频率的虚指数信号:

?1jn?0t~ C?x(t)??Cn en 其中

n=??T0?T0?t0t0~(t)e?jn ?0tdtx其中,n ??2两项的基波频率为f0,两项合起来称为信号的基波分量;

n??N的基波频率为2f0,两项合起来称为信号的2次谐波分量; n??1的基波频率为Nf0,两项合起来称为信号的N次谐波分量;

(2)连续时间非周期信号的频域分析

x(t)可以表达为一系列虚指数信号 ejn?t 的加权叠加,通过连续周期信号

0~周期信号的Fourier级数建立了周期信号时域与频域之间的对应关系。同理,连续非周期信号x(t)可以表达为虚指数信号ej?t的加权叠加,其通过非周期信号的

Fourier变换建立了非周期信号时域与频域之间的对应关系。

x(t)?X(j?)ed? (3-1) 2π?jωt??1? (3-2) X(j?)??x(t)e?dt?jt???其中,式(3-2)称为非周期信号x(t)的连续时间Fourier变换(CTFT),X(j?)称为非周期信号x(t)的频谱(函数)。式(3-1)称为X(j?)的Fourier反变换,其物理意义是非周期信号x(t)可以表示为无数个频率为? ,复振幅[X(j?)/2π]d? 的复指数信号ej?t的线性组合。不同的非周期信号都可以表示为式(3-1)的形

j?t式,所不同的只是复指数信号e2.离散信号频域分析 (1)离散周期信号的频域分析

前面的系数X(j?)不同。

由上可得:离散时间周期信号和非周期信号,也可以表示为相应的虚指数序列,从而引入离散周期信号的离散Fourier级数(DFS),以及离散非周期信号的离散时间Fourier变换(DTFT)。根据Fourier级数理论,周期为N的离散时间周期

6

包头师范学院本科毕业论文

信号~x[k],可以表示为N项虚指数序列的线性组合,即

jmk11~~~~ (3-3) Nx[k]?IDFS(X[m])?X[m]e?X[m]W?mkN?12?Nm?0?N?1Nm?0?N式(3-3)称为离散周期信号~x[k]的离散Fourier级数(DFS)表示,其中,加权系数X[m]称为离散周期信号~由于虚指数序列具有正交特性,根x[k]的DFS系数。据式(3-3)求出DFS系数X[m]为

2?N?1N?1N?1?jmk~?jm?0k~~~N (3-4) X[m]?DFS(x[k])??x[k]e??x[k]e??~x[k]WNmkk?0k?0k?0~~~X[m]也是周期为N的离散序列,称为离散周期信号~x[k]的频谱。

(2)离散非周期信号的频域分析

根据离散序列的离散时间Fourier变换(DTFT)的理论,满足一定约束条件的离散非周期序列x[k]可以表示为虚指数序列ej?k的线性组合,即

1 (3-5) x[k]?X(e)ed?2π?j?j?k?ππ利用虚指数序列e?j?k的正交性,可得式(3-5)中加权系数为

? (3-6)

X(e)?j?x[k]e?j?kk???X(ej?)为非周期序列x[k]的频谱。式(3-6)称为序列x[k]的离散时间Fourier变

换(简称DTFT),而式(3-5)称为离散时间Fourier反变换(简称IDTFT)。

3.2.2 系统的频域分析

1.连续时间系统频域分析

连续系统的频率响应定义为:

Y(j?)(3-7) H(j?)?zsX(j?)若n阶连续LTI系统的微分方程为

ay(t)?ay(t)???ay '(t)?ay(t)?

bx(t)?bx(t)???bx' (t)?bx(t) (3-8)

(n)(n?1)nn?110(m)(m?1)mm?110 7

包头师范学院本科毕业论文

在零状态响应条件下,y(t)=yzs(t)。对式(3-8)两边进行Fourier变换,经过整理可得输出信号的频谱函数Y(j?)与输入信号的频谱函数X(j?)之比,并以符号

zsH(j?)表示,即

Yzs(j?)bm(j?)m?bm?1(j?)m?1???b1(j?)?b0 H ? n n ?1 (3-9) (j) ? ?X(j?)an(j?)?an?1(j?)???a1(j?)?a0

式(3-9)表明,H(j?)为系统在零状态下输出响应与输入激励的频谱函数之比,称为系统的频率响应。在系统频域分析中,系统频率响应H(j?)起着极为重要的作用,它表征了系统的频率特性,是系统的频域描述。从式(3-9)可以看出H(j?)与系统的输入及输出无关,而只与系统本身特性有关。 2.离散时间信号频域分析

离散系统的频率响应定义为: H ( e ) ?j?j?Y(ezs ) X(ej?) (3-10)

若n阶离散LTI系统的差分方程为

y[ k]?a1y[k?1]???an?1y [k?n?1]?any[k?n]? b x [ k ] ? b x [ k ? 1 ] ? ? b x [ k ? m ? 1 ] b x [ k ? m ] (3-11) ??01m?1m在零状态响应条件下,y[k]=yzs[k]。对式(3-11)两边进行Fourier变换,经过整理可得输出序列的频谱函数Y(e)与输入序列的频谱函数X(e)之比,并以符

j?j?zs号H(e)表示,即

j?(e) ? ? H ? a e ? ? ? a e ? a e (3-12) X(e) 1j?j??j??j?(n?1)?j?n1n?1nYzs(ej?)b0?b1e?j????bm?1e?j?(m?1)?bme?j?mj?式(3-12)表明,H(e)为系统在零状态下输出序列与输入激励的频谱函数之比,称为离散系统的频率响应。. 在离散系统频域分析中,系统频率响应H(e)j?起着极为重要的作用,它表征了系统的频率特性,是系统特性的频域描述。从式

(3-12)可以看出H(e)与系统的输入及输出无关,而只与系统本身特性有关。

j? 8

包头师范学院本科毕业论文

3.2.3教学软件中相关知识结构

图3-1 知识结构(1)

图3-2知识结构(2)

4 GUI界面的创建与应用

4.1 GUI界面的基本知识

图形用户界面,简称GUI,是英文Graphic User Interface的缩写。其创建方法是:单击菜单File—>New—>GUI或者在命令窗口单击

(GUIDE),弹出

如下图3-1所示的对话框,在Create New GUI下选择Blank GUI(Default),

9

包头师范学院本科毕业论文

还可以选择文件存储路径,然后点击OK,则会创建出一个新的界面如图4-2所示。

图4-1 GUI的创建

图4-2 创建后的GUI界面

当用户在GUIDE中打开一个GUI时,该GUI将显示在Layout编辑器中,Layout编辑器是所有GUIDE工具的控制面版。用户可以使用鼠标拖动模版左边的控件如图4-3(按钮、坐标轴、单选按钮等)到中间的布局区域。

10

包头师范学院本科毕业论文

图4-3控件、按钮

最后在相应的控件里填上所要执行程的代码,点击程序的运行。

(Run)按钮,便可实现

4.2 信号与系统教学软件GUI设计

本软件的设计是基于MATLAB中GUI(图形用户界面)而成的,而其目的是为了作为“信号与系统”一种教学软件使同学在面对“信号与系统”这门课程中大量的公式以及概念时,不会产生枯燥乏味的情况。本设计主要针对“信号与系统”中的频域部分,对信号进行频域的分析,以及一些典型的非周期信号的变化过程、幅度调制、仿真波形等。

4.2.1GUI主界面的设计

如图4-4所示,本界面设计用到的控件有Static Text、Push Button、Axes等。

11

包头师范学院本科毕业论文

图4-4 软件主界面

其中在Axes上显示图片所用的代码如下: axes(handles.axes1); X=imread('bttc.jpg'); imshow(X); axis image off 接着选择Menu Editor

按钮设计编辑菜单如下图4-5所示

图4-5 菜单设计界面

4.2.2周期信号频域分析

(1)进行信号分析中的周期信号界面设计,如下图4-6所示:

图4-6周期信号界面

(2)在连续时间周期信号Fourier级数信号中主要内容为:对周期方波信

12

包头师范学院本科毕业论文

号的分解与合成,及对矩形信号、三角信号、方波信号进行频谱分析。如下图4-7所示是对周期方波信号的分解与合成。

图4-7 周期方波信号的分解与合成

该设计所需的控件有Push Button、Axes、Static Text、Edit等;用户可以跟据自己需求,对该周期信号中的最高谐波次数Nf、幅度M进行设值,以方便观察该信号的分解与合成过程。 其中运行代码如下所示:

function pushbutton1_Callback(hObject, eventdata, handles) Nf= str2num(get(handles.edit1,'string')); M = str2num(get(handles.edit2,'String')); t=0:0.01:2*pi;

x=zeros(Nf,max(size(t))); % 预分配数组、矩阵的存储空间,以加快运算速度 y=zeros(1,max(size(t)));

for W=1:2:Nf; %起始值:步长:终止值

x1=M*sin(W*t)/W; %?各次谐波

x(W,:)=x(W,:)+x1; %各次谐波分别存在矩阵x的相应行 end

axes(handles.axes1) plot(t,x(1:Nf,:)); grid on

xlabel('t');ylabel('y(t)');

13

包头师范学院本科毕业论文

for W=1:2:Nf;

y=y+x(W,:); %?各次谐波叠加 end

axes(handles.axes2) plot(t,y) grid on

xlabel('t');ylabel('y(t)');

4.2.3非周期信号频域分析

界面如下图4-8所示:

图4-8 非周期信号的频谱分析

在连续时间非周期信号的频域分析界面下,可以进行典型信号读取、以及信号的幅度调制、仿真波形等操作,使学习者对非周期信号的频域变换了解得更深刻。其中典型信号非周期频谱分析,如图4-9所示,列举了直流信号、单边指数信号、单位阶跃信号、单位冲激信号、门函数信号五种常见的信号,让同学可以看到这五种信号的时域波形,及其对应频域的变化。

14

包头师范学院本科毕业论文

图4-9 典型非周期信号频谱分析

图4-10 直流信号频谱分析

相应代码如下: t=-5:0.01:5; f=1; %·幅值 axes(handles.axes1) plot(t,f,'b'); %颜色 axis([-5 5 0 2])

xlabel('时间(t)‘);ylabel('幅值(f)'); grid on

axes(handles.axes2)

line([0 0],[0 2*pi]) % 确定两个坐标点 axis([-5 5 0 8]) grid on

15

包头师范学院本科毕业论文

图4-11 单边指数信号频谱分析

代码如下:

R=0.02;t=-5:R:5;k=1;f=exp(-1*t*k).*[t>=0]; W1=2*pi*1;

N=200;k=-N:N;W=k*W1/N; F1=f*exp(-j*t'*W)*R; F=abs(F1); %F=fft(f,512); axes(handles.axes1) plot(t,f);

xlabel('时间(t)‘);ylabel('幅值(f)'); grid on

axes(handles.axes2) plot(W,F); grid on

在幅度调制中,列举了正弦信号、门函数信号,可以清晰的看出这两种信号分别乘以载波cos(wt)以后,在改变载波角频率w时,两种信号的变化情况。 幅度调制界面如图4-12所示,正弦信号的幅度调制如图4-13所示。

16

包头师范学院本科毕业论文

图4-12 幅度调制

图4-13 正弦信号的幅度调制

代码如下:

function NPFDzhengxian_OpeningFcn(hObject, eventdata, handles, varargin) Fs=1000; N=1000; n=0:N-2; t=n/Fs; x=sin(pi*50*t);

Nfft=1024; %快速傅里叶变换点数 window=hamming(512); noverlap=256; %最小采样频率 dflag='none'; %是否有重叠

[F,f]=psd(x,Nfft,Fs,window,noverlap,dflag); w0=200;

17

包头师范学院本科毕业论文

y=modulate(x,w0,Fs,'am'); %幅度调制 [W,F1]=psd(y,1024,Fs,window,noverlap,dflag); axes(handles.axes1) plot(t,x); axis([0 0.1 -1 1]); grid on

axes(handles.axes2) plot(f,F);

axis([0 500 0 100]) grid on

axes(handles.axes3) plot(t,y); axis([0 0.1 -1 1]); grid on

axes(handles.axes4) plot(F1,W); grid on

function slider1_Callback(hObject, eventdata, handles) w0 =get(handles.slider1,'Value'); set(handles.text3,'string',w0) Fs=1000; N=1000; n=0:N-2; t=n/Fs; x=sin(pi*50*t); Nfft=1024;

window=hamming(512); noverlap=256; dflag='none';

18

包头师范学院本科毕业论文

[F,f]=psd(x,Nfft,Fs,window,noverlap,dflag); % PSD 是做功率谱密度的函数 y=modulate(x,w0,Fs,'am');

[W,F1]=psd(y,1024,Fs,window,noverlap,dflag); axes(handles.axes3) plot(t,y); axis([0 0.1 -1 1]); grid on

axes(handles.axes4) plot(F1,W); grid on

图4-14门函数的幅度调制

代码如下:

function NPFDmen_OpeningFcn(hObject, eventdata, handles, varargin) R=0.005;t=-1.2:R:1.2; f=((t+1)>=0)-((t-1)>=0); w0=20; f1=f.*cos(w0*t); W1=40; N=1000; k=-N:N; W=k*W1/N;

19

包头师范学院本科毕业论文

F=f*exp(-j*t'*W)*R;

F=real(F); %显示函数实部 F1=f1*exp(-j*t'*W)*R; F1=real(F1); axes(handles.axes1); plot(t,f); grid on

axes(handles.axes2) plot(W,F) grid on

axes(handles.axes3) plot(t,f1)

axis([-1.2 1.2 -1 1]); grid on

axes(handles.axes4) plot(W,F1) grid on

function slider1_Callback(hObject, eventdata, handles) w0 =get(handles.slider1,'Value'); set(handles.text3,'string',w0) R=0.005;t=-1.2:R:1.2; f=((t+1)>=0)-((t-1)>=0); f1=f.*cos(w0*t); W1=40; N=1000; k=-N:N; W=k*W1/N; F=f*exp(-j*t'*W)*R; F=real(F);

F1=f1*exp(-j*t'*W)*R;

20

包头师范学院本科毕业论文

F1=real(F1); axes(handles.axes3) plot(t,f1)

axis([-1.2 1.2 -1 1]); grid on

axes(handles.axes4) plot(W,F1) grid on

在仿真波形界面下,列举了连续时间非周期信号Fourier变换的一些性质,如尺度变换特性、时移变换特性、频移变换特性等性质。

图4-15尺度变换特性

代码如下:

function NPFZchidu_OpeningFcn(hObject, eventdata, handles, varargin) axes(handles.axes1) R=0.02;t=-2:R:2; f=[(t+1)>=0]-[(t-1)>=0]; plot(t,f); grid on

axes(handles.axes2) R=0.02;t=-2:R:2;

f1=[(2*t+1)>=0]-[(2*t-1)>=0];

21

包头师范学院本科毕业论文

plot(t,f1); grid on ; axes(handles.axes3) W1=2*pi*5;

N=500;k=0:N;W=k*W1/N; F=f*exp(-j*t'*W)*R; F=real(F);

W=[-fliplr(W),W(2:501)]; %相当于将函数翻转 F=[fliplr(F),F(2:501)]; plot(W,F); grid on

axes(handles.axes4) W1=2*pi*5;

N=500;k=0:N;W=k*W1/N; F1=f1*exp(-j*t'*W)*R; F1=real(F1);

W=[-fliplr(W),W(2:501)]; F1=[fliplr(F1),F1(2:501)]; plot(W,F1); grid on

图4-16 频移特性

代码如下:

function varargout = NPFZpinyi_OutputFcn(hObject, eventdata, handles) R=0.02;t=-2:R:2;

22

包头师范学院本科毕业论文

f=[(t+1)>=0]-[(t-1)>=0]; f1=f.*exp(-j*20*t); W1=2*pi*5;

N=500;k=-N:N;W=k*W1/N; F=f*exp(-j*t'*W)*R; F=real(F);

F1=f1*exp(-j*t'*W)*R; F1=real(F1); axes(handles.axes1) plot(t,f); grid on

axes(handles.axes3) plot(t,f1); grid on axes(handles.axes2) plot(W,F); grid on axes(handles.axes4) plot(W,F1); grid on

4.2.4系统的频率响应

本部分主要设计了连续系统的频率响应如图4-17,离散系统的频率响应两部分,其中系统均已三阶系统为例。

图4-17 连续系统频率响应

23

包头师范学院本科毕业论文

代码如下:

function pushbutton1_Callback(hObject, eventdata, handles) b2 = str2double(get(handles.edit1,'string')); b1 = str2double(get(handles.edit2,'String')); b0 = str2double(get(handles.edit3,'string')); a2 = str2double(get(handles.edit4,'string')); a1 = str2double(get(handles.edit5,'string')); a0 = str2double(get(handles.edit6,'String')); w=linspace(0,2*pi,200); b=[b2,b1,b0]; a=[a2,a1,a0]; H=freqs(b,a,w); axes(handles.axes1) plot(w,abs(H));

xlabel('\\omega(rad/s)');ylabel('|H(jw)\\omega)|');title('·幅度响应|'); grid on;

axes(handles.axes2)

plot(w,angle(H)); %求相位响应

xlabel('\\omega(rad/s)');ylabel('\\phi\\omega)');title('相位响应'); grid on;

上述程序代码和功能为本软件部分内容,本软件基本实现了“信号与系统”这门课程中所需用到的一些基本信号以及部分信号在经过Fourier变换后,在对应频域部分的基本性质、特性的计算等功能,可以有效地帮助同学们解决一些学习过程中遇到的实际问题。

24

包头师范学院本科毕业论文

结 论

通过以上的学习,我们大体的感受了一下MATLAB在信号与系统应用,同时也感受到了教学辅助软件对学习“信号与系统”这门课程的帮助,让我们能够更加认真地对待这门公式繁琐、概念抽象的课程。

本软件主要是实现了基本信号在频域的运算,从时域到频域的变换过程,以及一些简单的信号在频域的变换特性、幅度调制等功能。让同学们从繁琐的计算过程成解脱出来,从而能够更加的将一些重要的变换过程、定理、概念等理解透彻,是同学们能够将“信号与系统”真正的学透、学懂。

由于本人能力有限,同时对信号与系统和MATLAB的认识不足,本软件存在许多缺陷和不足之处,如设计内容不全面、界面粗糙,不美观、可操作性不强等。

通过这段时间对MATLAB的学习,发现本软件功能很强大,可以帮助我们学习很多困难、复杂的课程,如数字信号处理,自动控制等课程,因此我们大学生应该多加利用此软件,让它真正的成为我们学习过程中的一件必不可少的软件

25

包头师范学院本科毕业论文

参考文献

[1] 陈后金.信号与系统.北京:高等教育出版社,2007.12 [2] 刘晓虹.信号分析与处理实验.内蒙古大学出版社,2011

[3] 郑君里、应启绗、杨为里. 信号与系统(第二版).北京:高等教育出版社,

2000

[4] 刘卫国、陈昭平、张颖.MATLAB程序设计与应用.北京:高等教育出版社,

2002.6 [5] 苏金明、阮沈勇MATLAB6.5实用指南(上册)北京:电子工业出版社,2002.1 [6] 王华、李有军、刘建存MATLAB电子仿真与应用教程(第二版)北京:国防

工业出版社,2007.4

26

ej?t 包头师范学院本科毕业论文

致 谢

本文是在刘晓虹老师的精心指导下完成的,从课题的选择到论文完成的整个过程中,都得到了刘老师很大的帮助与指导。刘老师治学严谨,使我的学术水平有很大的提高,而且在为人方面也受益匪浅。她那平易近人的学者风范、正派的为人作风,必将成为我今后学习和工作的楷模,她的关怀和帮助我将终生难忘。同时深深感谢我论文期间给我一些建议的同学。

27

本文来源:https://www.bwwdw.com/article/o2h7.html

Top