信号与系统结课报告.docx
- 文档编号:24443661
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:26
- 大小:281.08KB
信号与系统结课报告.docx
《信号与系统结课报告.docx》由会员分享,可在线阅读,更多相关《信号与系统结课报告.docx(26页珍藏版)》请在冰豆网上搜索。
信号与系统结课报告
信号与系统结课报告
——Matlab在信号处理中的应用
专业:
电子信息工程技术01班
姓名:
金顶涛
学号:
101202060116
指导教师:
何老师
日期:
2011/2012学年第2学期
第一章MATALAB简介3
1.1MATALAB概述3
1.2Matlab产生的历史背景3
1.3MATLAB的语言特点3
1.4MATLAB的组成3
1.5MATLAB的安装与内容选择4
1.6MATLAB的工作界面5
第二章信号系统在近年来的发展7
2.1Matlab的发展7
2.2Matlab的发行版本7
第三章MATLAB在信号中的应用8
3.1信号与系统复频域分析8
3.2基本信号在MATLAB中的表示和运算13
第四章总结17
第1章MATALAB简介
1.1MATALAB概述
MATLAB是一种科学计算软件,适用于工程应用各领域的分析设计与复杂计算,它使用方便,输入简捷,运算高效且内容丰富,很容易由用户自行扩展。
因此,当前已成为美国和其他发达国家大学数学和科学研究中最常用且必不可少的工具。
1.2Matlab产生的历史背景
70年代中后期,cleveMoIg博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的NRTRM子程序库。
EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库。
在当时,这两个程序库代表矩阵运算的最高水平。
到70年代后期,身为美国NewMexico大学计算机系系主任的CleveMoler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK的接口程序。
CleveMoler给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(1aboratry)两个英文单词的前三个字母的组合。
在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。
1984年,C1eveMoler和JohnLittle成立了Mathworks公司,正式把MATLAB推向市场。
目前,在大学里,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。
1.3MATLAB的语言特点
1.运算符丰富
2.语言简单易学,容易使用,库函数极其丰富
3.MATLAB既具有结构化的控制语句,又有面向对象编程的特性。
4.程序限制不严格,程序设计自由度大
5.程序的可移植性很好
6.MATLAB的图形功能强大
7.功能强大的工具箱
8.源程序的开放性
9、MATLAB的缺点
1.4MATLAB的组成
1.MATLAB开发环境是一个集成的工作环境,包括MATLAB命令窗口、文件编辑调试器、工作空间、数组编辑器和在线帮助文档等。
2.MATLAB语言具有程序流程控制、函数、数据结构、输入输出和面向对象的编辑特点,是基于矩阵/数组的语言。
3.MATLAB的数学函数库包含了大量的计算算法,包括基本函数、矩阵运算和复杂算法等。
4.MATLAB的图形处理系统能够将二维和三维数组的数据用图形表示出来,并可以实现图像处理、动画显示和表达式作图等功能。
5.MATLAB应用程序接口使MATLAB语言能与C或FORTRAN等其他编程语言进行交互。
1.5MATLAB的安装与内容选择
MATLAB只有在适当的外部环境中才能正常运行。
因此,恰当地配置外部系统是保证MATLAB运行良好的先决条件。
对于在PC机上使用MATLAB的用户来说,需要自己安装MATLAB。
下面介绍从光盘上安装MATLAB的方法。
随着MATLAB版本的更新,安装也越来越简便,对于MATLAB7.1,用户只要按照安装界面的提示逐步进行即可。
Step1:
安装前的准备
Step2:
开始安装
Step3:
输入用户信息
Step4:
浏览如图1.3所示的软件许可协议(LicenseAgreement)
Step5:
选择安装类型
Step6:
定义安装的目录和所要求安装的产品,图1.5是自定义安装类型的设置界面。
Step7:
确认前面设置的安装目录,如图1.6
单击“Intall”安装按钮就可以进行安装,并显示一个用以表示当前安装进度的对话框图1.7。
如果用户安装的产品不在当前的光盘上,则会弹出一个对话框。
用户只要按照安装提示插入另一张光盘即可继续安装。
Step8:
阅读产品配置报告,如图1.8所示。
Step9:
完成安装,当安装完毕时,会自动弹出setupcomplete对话框。
在该对话框中,用户可以选择在退出安装后自动启动MATLAB7.1,如果用户不希望退出安装后自动启动它,可以取消选择框。
单击“Finish”按钮结束安装。
如果把MATLAB安装在C盘,重装系统时所有资料容易丢失,所以,一般情况下,建议不要将MATLAB的Work文件夹放在C盘。
在“\Matlab\bin”路径的目录下存放着MATLAB的许多重要文件,如果用户操作不慎,比如误删了一些重要的系统文件,MATLAB的允许就可能出现意想不到的问题,所以对MATLAB初学者来说,这一点更应该引起注意。
要想退出MATLAB环境,可以使用以下任何一种方式:
1.在MATLAB的命令窗口输入“exit”命令。
2.在MATLAB的命令窗口输入“quit”命令。
3.直接单击MATLAB的命令窗口的按钮。
1.6MATLAB的工作界面
MATLAB的工作界面主要由菜单、工具栏、当前工作目录窗口(CurrentDirectory)、工作空间管理窗口(Workspace)、历史命令窗口(CommandHistory)和命令窗口(CommandWindow)组成
1.菜单及其功能
MATLAB的菜单和工具栏界面与Windows程序的界面类似,用户只要稍加实践就可以掌握其功能和使用方法。
File菜单
File菜单所包含的各选项的含义分述如下:
【New及其子菜单】:
允许用户建立一个新的文件(M文件)、新的图形窗(Fjgure)、仿真模型文件(.mdl)和图形用户界面文件(GUI)。
【Open….】:
从指定的相应路径和文件名打开一个已经存在的文件。
【CloseCommandWindow】:
关闭命令窗口。
【ImportData】:
从其他文件导入数据,并在弹出的对话框选择文件名和路径。
【SaveWorkspaceAs….】:
将工作空间中的所有变量数据保存在指定路径下相应的文件中。
【Setpath】:
设置MATLAB的搜索路径。
【Perferences…】:
允许用户对系统的一些性能参数进行设置,如数据格式、字体大小与颜色等。
Edit菜单:
用于复制、粘贴等操作,与一般的windows程序类似,在此不作详细介绍。
Debug菜单:
用于设置程序的调试。
Desktop菜单:
用于设置主窗口中需要打开的窗口。
Windows菜单:
提供了在已打开的各窗口之间切换的功能。
Help菜单:
用于进入不同的帮助系统。
当用户单击“Currentdirectory”窗口时,使得该窗口成为当前窗口,那么会增加一个如图1.11所示的View菜单,用于设置如何显示当前目录下的文件。
图1.11单击当前窗口时增加View菜单
当用户单击“Workspace”窗口时,使得该窗口成为当前窗口,那么会增加如图1.12所示的View菜单和Graphics菜单。
菜单View用于设置如何在工作空间管理窗口中显示变量,菜单Graphics用于打开绘图的工具,用户可以使用这些工具来绘制变量。
2.工具栏
图1.13给出MATLAB的默认,等鼠标停留在工具栏的按钮上时,就会显示该按钮的功能。
工具栏上各按钮的含义分述如下。
图1.13MATLAB默认工具栏
创建一个新的.m文件编辑器。
在编辑器中打开一个已有的MATLAB相关文件。
剪切。
复制。
粘贴。
撤销上一步操作回复上一步操作。
创建一个新的simulink模块文件。
打开用户界面设计窗口。
打开MATLAB的M-file优化器。
打开MATLAB的帮助。
设置当前目录。
3.命令窗口
命令窗口是进行MATLAB操作最主要的窗口,如图1.14所示,“>>”为运算提示符,表示MATLAB处于准备状态。
在该窗口中,用户可以运行函数、执行MATLAB的基本操作命令,以及对MATLAB系统的参数设置等操作。
MATLAB具有良好的交互性,当在提示符后输入一段正确的运算式时,只需按Enter键,命令窗口中就会直接显示运算结果。
在MATLAB命令窗口中运行的所有命令都共享一个相同的工作空间,所以它们共享所有的变量,初学者应当重视
当用户使用命令窗口进行工作时,用户可以根据需要,对数值计算结果的显示格式、字体风格、大小等进行设置。
设置命令窗口时,首先选择“File”菜单中的“Perferences”项,则会出现如图1.15所示的参数设置对话框,单击Commandwindows标签即可进入命令窗口的设置。
4.工作空间窗口
工作空间窗口是MATLAB的重要组成部分,例如表达式x=100产生了一个名为x的变量,而且这个变量x被赋予值100,这个值就被存储在计算机的内存中。
工作空间窗口就是用来显示当前计算机内存中MATLAB变量的名称、数据结构、该
变量的字节数及其类型,在MATLAB中不同的变量类型对应不同的变量名图标,如图1.16所示。
在MATLAB命令窗口中运行的所有命令都共享一个相同的工作空间,所以它们共享所有的变量,初学者应当重视。
在工作空间窗口中,用鼠标双击所选变量则进入数组编辑器(ArrayEditor),如图1.17所示,此时用户可对变量的维数、内容等进行修改。
若在工作空间选择某变量后,再单击鼠标右键即可实现对该变量的曲线、曲面等图形的绘制。
5.当前路径窗口
当前路径窗口主要显示当前工作在什么路径下,包括M文件的打开路径等,如图1.18所示。
当前路径窗口允许用户对MATLAB的路径进行查看和修改,如果修改了路径立即产生作用。
通常启动MATLAB系统之后的默认当前路径是“\Matlab\Work”,如果不改变当前目录,用户自己的工作空间和文件都将保存到该目录。
6.命令历史窗口
在默认设置下,命令历史窗口自动显示于MATLAB界面中,用户也可以选择Desktop/Workspace命令调出或隐藏该命令窗口,其窗口形式如图1.19所示。
命令历史窗口显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户查询。
如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令;如果用户需要从命令历史窗口中删除一条或多条命令,只需选中这些命令,并单击右键,在弹出的快捷菜单中选择Deleteselection命令即可。
第2章信号系统在近年来的发展
2.1Matlab的发展
Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年推向市场以来,经过多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境.
1980年,Moler教授用Fortran语言编写了集命令翻译、
科学计算于一身的一套交互式软件系统
1984年,Moler等成立了TheMathWorks的公司,用
C语言完全改写Matlab,并推出第一个商业版
到九十年代,在国际上30几个数学类科技应用软件中,
Matlab在数值计算方面独占鳌头。
目前,Matlab已成为世界顶尖的数学应用软件就影响而言,至今仍然没有一个别的计算软件可与Matlab匹敌
2.2Matlab的发行版本
1984年,Matlab1.0(DOS版,182K,20多个函数)
1992年,Matlab4.0(93年推出Windows版,加入simulink)1994年,Matlab4.2(得到广泛重视和应用)
1999年,Matlab5.3(真正实现32位运算)
2002年,Matlab6.5(采用JIT加速器)
2004年,Matlab7.0
自2006年起,Matlab每年更新两次
目前最新版为R2010a(2010年3月发布)
第3章MATLAB在信号中的应用
3.1信号与系统复频域分析
一、实验目的
1.学会用MATLAB进行部分分式展开;
2.学会用MATLAB分析LTI系统的特性;
3.学会用MATLAB进行Laplace正、反变换。
4.学会用MATLAB画离散系统零极点图;
5.学会用MATLAB分析离散系统的频率特性;
二、实验原理及内容
1.用MATLAB进行部分分式展开
用MATLAB函数residue可以得到复杂有理分式F(s)的部分分式展开式,其调用格式为
其中,num,den分别为F(s)的分子和分母多项式的系数向量,r为部分分式的系数,p为极点,k为F(s)中整式部分的系数,若F(s)为有理真分式,则k为零。
例6-1用部分分式展开法求F(s)的反变换
解:
其MATLAB程序为
formatrat;
num=[1,2];
den=[1,4,3,0];
[r,p]=residue(num,den)
程序中formatrat是将结果数据以分数形式显示
F(s)可展开为
所以,F(s)的反变换为
2.用MATLAB分析LTI系统的特性
系统函数H(s)通常是一个有理分式,其分子和分母均为多项式。
计算H(s)的零极点可以应用MATLAB中的roots函数,求出分子和分母多项式的根,然后用plot命令画图。
在MATLAB中还有一种更简便的方法画系统函数H(s)的零极点分布图,即用pzmap函数画图。
其调用格式为
pzmap(sys)
sys表示LTI系统的模型,要借助tf函数获得,其调用格式为
sys=tf(b,a)
式中,b和a分别为系统函数H(s)的分子和分母多项式的系数向量。
如果已知系统函数H(s),求系统的单位冲激响应h(t)和频率响应
可以用以前介绍过的impulse和freqs函数。
例6-2已知系统函数为
试画出其零极点分布图,求系统的单位冲激响应h(t)和频率响应
,并判断系统是否稳定。
解:
其MATLAB程序如下:
num=[1];
den=[1,2,2,1];
sys=tf(num,den);
figure
(1);pzmap(sys);
t=0:
0.02:
10;
h=impulse(num,den,t);
figure
(2);plot(t,h)
title('ImpulseResponse')
[H,w]=freqs(num,den);
figure(3);plot(w,abs(H))
xlabel('\omega')
title('MagnitudeResponse')
3.用MATLAB进行Laplace正、反变换
MATLAB的符号数学工具箱提供了计算Laplace正、反变换的函数Laplace和ilaplace,其调用格式为
上述两式右端的f和F分别为时域表示式和s域表示式的符号表示,可以应用函数sym实现,其调用格式为
S=sym(A)
式中,A为待分析表示式的字符串,S为符号数字或变量。
例6-3试分别用Laplace和ilaplace函数求
(1)
的Laplace变换;
(2)
的Laplace反变换。
解:
(1)其程序为
f=sym('exp(-t)*sin(a*t)');
F=laplace(f)
或
symsat
F=laplace(exp(-t)*sin(a*t))
(2)其程序为
F=sym('s^2/(s^2+1)');
ft=ilaplace(F)
或
symss
ft=ilaplace(s^2/(s^2+1))
4.离散系统零极点图
离散系统可以用下述差分方程描述:
Z变换后可得系统函数:
用MATLAB提供的root函数可分别求零点和极点,调用格式是
p=[a0,a1…an],q=[b0,b1…bm,0,0…0],补0使二者维数一样。
画零极点图的方法有多种,可以用MATLAB函数[z,p,k]=tf2zp(b,a)和zplane(q,p),也可用plot命令自编一函数ljdt.m,画图时调用。
functionljdt(A,B)
%Thefunctiontodrawthepole-zerodiagramfordiscretesystem
p=roots(A);%求系统极点
q=roots(B);%求系统零点
p=p';%将极点列向量转置为行向量
q=q';%将零点列向量转置为行向量
x=max(abs([pq1]));%确定纵坐标范围
x=x+0.1;
y=x;%确定横坐标范围
clf
holdon
axis([-xx-yy])%确定坐标轴显示范围
w=0:
pi/300:
2*pi;
t=exp(i*w);
plot(t)%画单位园
axis('square')
plot([-xx],[00])%画横坐标轴
plot([00],[-yy])%画纵坐标轴
text(0.1,x,'jIm[z]')
text(y,1/10,'Re[z]')
plot(real(p),imag(p),'x')%画极点
plot(real(q),imag(q),'o')%画零点
title('pole-zerodiagramfordiscretesystem')%标注标题
holdoff
例6-4求系统函数零极点图
a=[3-10001];
b=[11];
ljdt(a,b)
p=roots(a)
q=roots(b)
pa=abs(p)
5.离散系统的频率特性
离散系统的频率特性可由系统函数求出,既令
MATLAB函数freqz可计算频率特性,调用格式是:
[H,W]=freqz(b,a,n),b和a是系统函数分子分母系数,n是
范围n个等份点,默认值512,H是频率响应函数值,W是相应频率点;
[H,W]=freqz(b,a,n,’whole’),n是
范围n个等份点;
freqz(b,a,n),直接画频率响应幅频和相频曲线;
例6-5系统函数
运行如下语句,可得10个频率点的计算结果
A=[10];
B=[1-0.5];
[H,W]=freqz(B,A,10)
继续运行如下语句,可将400个频率点的计算结果用plot语句画幅频和相频曲线
B=[1-0.5];
A=[10];
[H,w]=freqz(B,A,400,'whole');
Hf=abs(H);
Hx=angle(H);
clf
figure
(1)
plot(w,Hf)
title('离散系统幅频特性曲线')
figure
(2)
plot(w,Hx)
title('离散系统相频特性曲线')
还可用freqz语句直接画图,注意区别
A=[10];
B=[1-0.5];
freqz(B,A,400)
例6-6用几何矢量法,自编程序画频率响应
原理:
频率响应
编程流程:
定义Z平面单位圆上k个频率等分点;求出系统函数所有零点和极点到这些等分点的距离;求出系统函数所有零点和极点到这些等分点的矢量的相角;求出单位圆上各
频率等分点的
画指定范围内的幅频与相频。
若要画零极点图,可调用ljdt.m函数。
functiondplxy(k,r,A,B)
%Thefunctiontodrawthefrequencyresponseofdiscretesystem
p=roots(A);%求极点
q=roots(B);%求零点
figure
(1)
ljdt(A,B)%画零极点图
w=0:
l*pi/k:
r*pi;
y=exp(i*w);%定义单位圆上的k个频率等分点
N=length(p);%求极点个数
M=length(q);%求零点个数
yp=ones(N,1)*y;%定义行数为极点个数的单位圆向量
yq=ones(M,1)*y;%定义行数为零点个数的单位圆向量
vp=yp-p*ones(1,r*k+1);%定义极点到单位圆上各点的向量
vq=yq-q*ones(1,r*k+1);%定义零点到单位圆上各点的向量
Ai=abs(vp);%求出极点到单位圆上各点的向量的模
Bj=abs(vq);%求出零点到单位圆上各点的向量的模
Ci=angle(vp);%求出极点到单位圆上各点的向量的相角
Dj=angle(vq);%求出零点到单位圆上各点的向量的相角
fai=sum(Dj,1)-sum(Ci,1);%求系统相频响应
H=prod(Bj,1)./prod(Ai,1);%求系统幅频响应
figure
(2)
plot(w,H);%绘制幅频特性曲线
title('离散系统幅频特性曲线')
xlabel('角频率')
ylabel('幅度')
figure(3)
plot(w,fai)
title('离散系统的相频特性曲线')
xlabel('角频率')
ylabel('相位')
已知系统函数
,画频率响应和零极点图。
A=[1-1/4];
B=[5/4-5/4];
dplxy(500,2,A,B)%绘制系统2π频率范围内500个频率点的幅频和相频特性曲线及零极点图
3.2基本信号在MATLAB中的表示和运算
一、实验目的
1.学会用MATLAB表示常用连续信号的方法;
2.学会用MATLAB进行信号基本运算的方法;
二、实验原理
1.连续信号的MATLAB表示
MATLAB提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。
表示连续时间信号有两种方法,一是数值法,二是符号法。
数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。
例1-1指数信号指数信号在MATLAB中用exp函数表示。
如
,调用格式为ft=A*exp(a*t)程序是
A=1;a=-0.4;
t=0:
0.01:
10;%定义时间点
ft=A*exp(a*t);%计算这些点的函数值
plot(t,ft);%画图命令,用直线段连接函数值表示曲线
gridon;%在图上画方格
例1-2正弦信号正弦信号在MATLAB中用sin函数表示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 系统 报告