信号与系统课程设计.docx
《信号与系统课程设计.docx》由会员分享,可在线阅读,更多相关《信号与系统课程设计.docx(16页珍藏版)》请在冰点文库上搜索。
信号与系统课程设计
信号与系统课程设计
姓名:
##
专业:
电子信息科学与技术
班级:
电子2班
学号:
*********
一、MATLAB概述
1.入门与操作
在科技研究和工程应用中,科技人员常常会遇到大量的科学计算与数值分析。
为了高效、快捷地完成数值计算与分析,人们开发出了众多的数学类科技应用软件,MATLAB就是其中的佼佼者。
MATLAB以其卓越的数值计算功能、图形可视化功能以及专业级的符号计算和可视化建模仿真能力,从根本上满足了科学人员对工程数学计算要求,将科技人员从繁重的数学运算中解脱出来,成为国际上公认的优秀科技应用软件。
MATLAB由主包和数十个可选的工具箱组成,特别是信号处理工具箱已成为信号处理领域科技人员的得力助手和工具。
MATLAB的基本数据结构是矩阵,这使得用MATLAB解决有关矩阵和向量的数值计算与分析问题比以标量为基本数据结构的C语言或Fortran语言要更加高效、快捷。
MATLAB具有强大的数据可视化功能,可对矩阵数据进行二维、三维乃至四维可视化直接表现,其丰富的图像处理、渲染和各种图形控制和表现功能,使科技人员对大量原始数据的分析与处理变得轻松和得心应手。
另外,与VB和VC等软件提供的界面设计工具相类似,MATLAB为用户提供了功能强大的集成图形用户界面开发环境——GUIDE。
通过GUIDE,用户可方便、快捷地设计图形用户界面,开发自己的应用程序。
MATLAB的上述特点,使它深受工程技术人员及科技专家的欢迎。
目前,MATLAB已经成为科学研究、教学、产品设计与开发、计算机辅助与仿真的标准工具软件。
国外高等院校MATLAB作为本科生、研究生必须掌握的基础软件,国内许多理工院校已经把MATLAB列为学生必须掌握的工具软件,并将软件引进相关课程的教学中。
MATLAB命令窗口的基本操作:
MATLAB是通过命令行的方式与用户进行交互的,即用户只需要在命令窗口中输入MATLAB命令后按下回车键,系统便执行相应的命令并即时给出运行结果。
与其他高级语言一样,MATLAB使用变量使用变量来保存数据(矩阵)。
所不同的是,MATLAB不要求用户在创建变量时进行变量声明,即用户在工作空间创建一个新的变量,MATLAB会自动根据变量存储的数据来决定变量的数据类型并给该变量分配适当的内存空间。
在MATLAB中,数值采用习惯的十进制表示,亦可以用科学计数法莱表示数值。
MATLAB采用命令行式的表达式语言,每一个命令行就是一条语句。
用户在命令窗口中输入命令并按回车键后,该命令即由MATLAB系统以解释方式执行。
命令执行后,所产生的矩阵将被保存在MATLAB的工作空间中。
2.数值运算与符号运算
矩阵是MATLAB的基本数据结构元素,MATLAB的大部分运算或命令都是在矩阵运算意义下执行的。
在MATLAB中,一个矩阵既可以是普通数学意义上的矩阵,也可以是标量或者向量。
数组是MATLAB中非常重要的概念,是由下标表示次序的标量数的集合。
从数的集合的角度看,二维数组和矩阵没有什么不同,但从运算角度看,矩阵运算和数组运算却遵循不同的运算规则。
MATLAB包含有完备的函数库,用户可以直接调用这些函数来完成各种数值计算与分析工作。
函数由函数名和参数(可以默认)组成。
函数名的命名规则与变量相同。
MATLAB和符号运算语言Maple结合,为用户提供了集符号运算与符号可视化为一体的强大的符号运算功能。
数值与数值变量用于数值的表示和各种数值计算,而符号常量、变量、符号函数等则是用来按照代数、微积分等运算法则进行运算,并尽可能给出解析表达结果。
3.程序设计语言
MATLAB语言是MATLAB系统的组成部分之一,它具有完备的流程控制、函数调用、数据输入输出及面向对象编程等功能,是一种高效的、以矩阵为基本数据结构的解释性高级编程语言。
MATLAB语言的表达式与实际应用中的数学表达式十分相似,用MATLAB编写程序犹如在便签上列写公式和求解,语法简单、易学,用户不用花太长时间即可编写出解决复杂工程应用与数值计算问题的MATLAB程序。
它不用经过编译和链接,因而其编程效率远远高于其他高级语言。
和其他高级语言相似,MATLAB通过运行MATLAB语句来执行用户指定的操作。
4.数据图形的可视化
MATLAB所提供的强大的图形绘制功能,使用户能方便、简捷地绘制图形,使人们更直观形象地解决问题。
通常用户只需要指定绘图方式,提供绘图数据,利用MATLAB提供的丰富的二维、三维图形函数,就可以绘制出所需的图形。
MATLAB的图形系统是建立在诸如线、画等图形对象集合的基础之上的,用户可通过设置对象特征来控制图形。
MATLB还对绘出的图形提供了各种修饰方法,使图形更加美观、精确。
二、在电子信息类课程中的应用
1.对于MATLAB应用于信号与线性系统分析的理解;
目前MATLAB已成为“数学信号处理”、“通信原理”、“自动控制原理”等电类专业的重要基础课程的首选实验平台,而对于学生而言最为有效的学习途径是结合某一专业课程的学习掌握该软件的使用和编程。
基于“信号与系统”课程在电类专业中的基础地位和开课时间,该课程是让学生学习和掌握MATLAB的最佳切入点。
2.对于MATLAB应用于信号与线性系统分析的基本过程(应举例分析)。
例8-1
已知描述某连续系统的微分方程为
y(t)''+2y(t)'+y(t)=f(t)'+2f(t)
试用MATLAB对该系统当输入信号为f(t)=
时的系统响应y(t)进行仿真,并绘出系统响应及输入信号的时域波形。
解:
a=[121];
b=[12];
sys=tf(b,a);%定义系统函数对象
p=0.01;%定义采样时间间隔
t=0:
p:
5;%定义时间范围向量
f=exp(-2*t);%定义输入信号
lsim(sys,f,t);%对系统输出信号进行仿真
仿真结果:
三、用MATLAB完成以下项目
课程设计要求:
1.五个大项目;
2.每一项完成的标准是:
题目、程序、结果、
图形(打印);
3.分析讨论结果(图形)的物理含义。
(一)、基本图形
P66图3-14
题目:
使用ezmesh()函数绘制f(x,y)=x*exp(-x^2-y^2)的曲线
(1)程序代码:
symsxy;%变量列表
f='x*exp(-x^2-y^2)';%表达式
ezmesh(f);%绘制函数
%默认的绘制范围-2*pi(2)图形:
(3)物理含义:
%P94图5-12
题目:
对于函数f(x,y)=x*exp(-x^2-y^2),使用meshgrid()命令生成绘图数据,用plot3()命令绘制图形。
(1)程序代码:
[X,Y]=meshgrid([-2:
0.1:
2]);%使用meshgrid()命令生成绘图数据
Z=X.*exp(-X.^2-Y.^2);%利用函数公式计算z的坐标
plot3(X,Y,Z)
gridon;
(2)图形:
(3)物理含义:
(二)、LTI系统的时域分析
%P187
习题8.1
(1)(改写版)
题目:
已知描述连续时间系统的微分方程和激励信号f(t)如下:
y''(t)+3y'(t)+2y(t)=2f'(t)+6f(t),f(t)=e
u(t)
(1)程序代码:
a=[132]
b=[026]%定义离散系统
sys=tf(b,a)%调用tf函数生成系统函数对象sys
p=0.1;%定义采样时间间隔
t=0:
p:
10;%定义时间范围向量
f=exp(-2*t);%定义输入信号
y=lsim(sys,f,t);%求出系统响应数值解
plot(t,y)
(2)图形:
(3)物理含义:
(三)、连续系统频域分析
%P247例题10-14
题目:
图是常见的用RLC元件构造的二阶高通滤波器,用MATLAB求其频率响应H(jw)并绘制幅度响应和相位响应曲线。
解:
电路的频率响应函数为:
H(jw)=
设R=
,L=0.4H,C=0.05F,则R=2Ω,且截止频率为
Wc=
丨H(jw)丨丨w=wc=
w=wc=
=
≈0.707
将L、C、R的值代入H(jw)的表达式,得
H(jw)=
(1)程序代码:
%dm10502
%二阶高通滤波器的频率响应
b=[0.0400];%生成向量b
a=[0.040.42];%生成向量a
[h,w]=freqs(b,a,100);%求频率响应函数H(jw),设定100个频率点
h1=abs(h);%求幅频响应
h2=angle(h);%求相频响应
subplot(211);
plot(w,h1);
holdon;
plot([7.07117.0711],[00.707],':
');%截止频率的位置
plot([07.0711],[0.7070.707],':
');
axis([04001.1]);
grid
xlabel('角频率(\omega)');
ylabel('幅度');
title('H(j\omega)的幅频特性');
subplot(212);
plot(w,h2*180/pi);
axis([0400200]);
grid;
xlabel('角频率(\omega)');
ylabel('相位(度)');
title('H(j\omega)的相频特性');
%END
(2)图形:
(3)物理含义:
由图可以看出,当w从0增大时,该高通滤波器的幅度从0开始上升,当w=w
=7.0711时,幅度等于0.707,w>w
后进入通带。
(四)、连续系统复频域分析
%例12-1
(1)
%P267
题目:
已知连续时间信号f(t)的相函数如下:
F(s)=(4s+5)/(s
+5s+6)
(1)程序代码:
symss;%定义复变量s
L=(4*s+5)/(s^2+5*s+6);%定义拉普拉斯变换(像函数)的符号表达式
F=ilaplace(L)%计算拉普拉斯逆变换
(2)运行结果:
>>Symss;
L=(4*s+5)/(s^2+5*s+6);
F=ilaplace(L)
F=7*exp(-3*t)-3*exp(-2*t)
(3)物理意义:
由程序运行结果可得F(s)的拉普拉斯变换为
f(t)=(7e
-3e
)u(t)
例12-2
P270
题目:
已知连续时间信号f(t)的拉普拉斯变换为:
F(s)=(s+1)*(s+4)/[s*(s+2)*(s+3)]
试用MATLAB实现部分分式展开,并求其拉普拉斯逆变换f(t)。
(1)程序代码:
a=[154];%定义拉普拉斯变换分子多项式行向量a
b=[1560];%定义拉普拉斯变换分母多项式行向量b
[k,p,c]=residue(a,b)%计算部分分式展开系数k、c及拉普拉斯变换极点p
(2)运行结果:
>>a=[154];
b=[1560];
[k,p,c]=residue(a,b)
k=
-0.6667
1.0000
0.6667
p=
-3.0000
-2.0000
0
c=
[]
(3)物理含义:
由上述程序运行结果可得,F(s)有三个单实极点p
=-3,p
=-2
和p
=0,其对应部分分式展开系数k
=-
、k
=1、k
=
,故F(s)的部分分式展开结果为F(s)=
,可直接求得该信号的拉普拉斯逆变换为
f(t)=(-
)u(t)
(五)、离散系统函数分析
例13-2
(1)
%P312
题目:
已知因果离散时间序列x(n)的z变换X(z)如下:
X(z)=z^2/[(z+1)*(z-2)]
试利用MATLAB分别求离散时间序列x(n)时域表达式。
(1)程序代码:
%dm13105
%计算逆z变换
symsz;%定义符号变量z
Z=(z^2)/((z+1)*z-2);%定义z变换符号表达式Z
X=iztrans(Z)%计算Z的逆z变换符号表达式X
(2)运行结果:
>>symsz;
Z=(z^2)/((z+1)*z-2);
X=iztrans(Z)
X=
2/3*(-2)^n+1/3
(3)物理含义:
由程序运行结果可得,离散时间序列x
(n)为
x(n)=[
]u(n)
例13-3
P315
题目:
已知某离散的时间系统的系统函数如下所示:
H(z)=z^2/[(z-0.5)*(z-0.25)]
试用MATLAB求该系统的单位序列响应h(n),绘出h(n)的时域波形,观察其时域特性,并根据h(n)的时域波形判断系统是否稳定。
(1)程序代码:
%dm130106
%计算逆z变换
B=[100]%定义z变换分子多项式系数向量B,注意缺项补零
A=plot([00.50.25])%定义z变换分母多项式系数向量A
[r,p,k]=residue(B,A)%计算部分分式展开系数向量r,极点位置向量p
%及多项式系数向量k
n=-10:
20;%定义离散时间向量n
u=[zeros(1,10)ones(1,21)];%产生序列
h=(4*(1/2).^n-2*(1/4).^n).*u;%产生序列响应h
stem(n,h,’filled’)%产生序列响应h时域波形
title(‘单位序列相应h(n)’)%定义标题
xlabel(‘n’)%定义横坐标
(2)运行结果:
>>B=
200
A=
1.0000-0.75000.12500
(3)物理含义:
由图可以看出,系统单位序列响应是随时间增加而按指数规律衰减的因果序列,满足时域绝对可和条件,故该系统是稳定系统。
例13-10
(1)
P340
题目:
已知离散系统函数如下:
H(z)=3/4*(z-1)/(z-1/2)
试用MATLAB绘出系统的幅频特性曲线,观察和分析系统的频率特性。
(1)程序代码:
num1=[1-1];%定义系统分子多项式系数向量
num1=num1*3/4;%定义系统分母多项式系数向量
den1=[1-1/2];
[H1,w1]=freqz(num1,den1);%计算系统频率响应样值
H1m=abs(H1);%计算频率响应样值
w1=w1/pi;%归一化角频率
plot(w1,H1m)%绘制系统幅频特性曲线
title('幅频特性曲线')
xlabel('\theta/\pi')
ylabel('Magnitude')
(2)图形:
(3)物理含义:
对系统幅频响应特性曲线进行观察和分析
,可以看出,该系统呈高通特性,是一数字高通滤波器。
课程设计总结: