1、 1 信号与系统上机实验实验指导(11 级试用)说明:上机 16 学时,每次 2 学时,共 8 次。共 7 个实验项目,实验 7 为综合性实验项目,需 4 学时。上机时间:由任课老师、学习委员和实验室管理员共同决定。实验 1 信号变换与系统非时变性质的波形绘制1、实验目的掌握 MATLAB 画连续信号波形的方法,并能绘制信号变换和系统线性非时变性质的输出波形。2、预习阅读内容信号与系统实验教程实验 1、实验 2。 信号与系统分析第 1 章。3、参考程序信号与系统实验教程第 2 章例 2.1-2 程序(如何用 MATLAB 画波形) ,例 2.2-3 程序(如何进行波形变换) ,例 2.2-4
2、程序(如何进行波形分解) 。信号与系统分析第 1 章计算机例题 C1.1(如何用 MATLAB 画波形) ,计算机例题 C1.2(如何进行波形变换) ,4、MATLAB 学习要点 用 MATLAB 画波形的三要素(1)横轴赋值,两种方法t=0:0.1:30; t = 起点:间隔:终点,强调横轴的间隔。t=linspace(0,30,300); t 有 300 点,从起点 0 到终点 30,等间隔自动计算,强调横轴的总点数。(2)纵轴赋值 2 f=sin(pi*t.*sign(t); 根据所给函数写出 MATLAB 表达式(3)波形绘制figure(1),plot(t,f,linewidth,2
3、) MATLAB 的内部函数和外部函数(1)内部函数:MATLAB 软件内部就存在,调用就可以了,本次介绍几个常用函数门函数 rectpuls()调用格式 y=rectpuls(t) 产生高度为 1,宽度为 1 的门函数调用格式 y=rectpuls(t,W) 产生高度为 1,宽度为 W 的门函数三角脉冲函数 tripuls()调用格式 y=tripuls(t) 产生高度为 1,宽度为 1 的三角脉冲函数调用格式 y=tripuls(t,w) 产生高度为 1,宽度为 w 的三角脉冲函数调用格式 y=tripuls(t,w,s) 产生高度为 1,宽度为 w 的三角脉冲函数, -1=0);画图函数
4、myplot( ),函数名为myplot.m,可以自动将波形放在图的中间,使其美观。Matlab程序为function myplot(x,y)% x为横坐标数组,y 为纵坐标数组 .x0=x(1);xe=x(end);max_y=max(y);min_y=min(y);dy=(max_y-min_y)/10;plot(x,y,linewidth,2);grid;axis(x0,xe,min_y-dy,max_y+dy)set(gca,FontSize,8) 建立简单函数的两种方法如 )2()1()()( ttttf (1)自定义外部函数 zdyf.m 见例 2.2-3 程序function y
5、=zdyf(t)y=t.*(u(t)-u(t-1)-(u(t-1)-u(t-2);(2)定义在线函数,见例 C1.2 程序zdyf=inline(t.*(u(t)-u(t-1)-(u(t-1)-u(t-2);5、上机内容 用 MATLAB 画出习题 1-8 的波形。 用 MATLAB 画出习题 1-10 的波形。6、思考题若已知 的波形如图所示。试画出 的波形。)3/2-1(tf )(tf 3 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3-1-0.500.51实验 2 微分方程的符号计算和波形绘制1、实验目的掌握 MATLAB 解微分方程的方法,并能绘制零输入响应、零
6、状态响应和全响应的波形。2、预习阅读内容信号与系统实验教程实验 4。 信号与系统分析第 2 章。3、参考程序信号与系统实验教程第 2 章例 2.4-3 程序(如何用 MATLAB 的符号计算方法解微分方程并画波形) ,信号与系统分析第 2 章计算机例题 C2.1(如何用 MATLAB 的符号计算方法解微分方程) ,计算机例题 C2.2(如何用 MATLAB 的符号计算方法求零输入响应并画波形) ,4、MATLAB 学习要点 微分方程的符号计算用 Matlab 的符号计算方法 dsolve 函数可以计算微分方程的解析式。其调用格式r=dsolve(eq1,eq2,., cond1,cond2,.
7、, v)r=dsolve(eq1,eq2,.,cond1,cond2,.,v)式中,eq1,eq2,.表示常系数微分方程(组) 。cond1,cond2,.表示初始条件。V 表示求解的变量。在缺省情况下,默认变量为 t。参见参考程序,或信号与系统实验教程第 40 页 符号量与数值量的转换函数 subs() 参见参考程序,或信号与系统实验教程第 33 页 4 在一幅图上画多条曲线,并标记图例。plot(t,y_n,t,yzi_n,m:,t,yzs_n,r-.,linewidth,2)legend(全响应 ,零输入响应,零状态响应,0)参见参考程序,或信号与系统实验教程第 20 页 微分和积分的符
8、号计算函数 diff() 信号与系统实验教程第 33 页函数 int() 信号与系统实验教程第 34 页5、上机内容 用 MATLAB 计算习题 2-1,并画出系统响应的波形。 用 MATLAB 计算习题 2-3,并画出系统响应的波形。6、思考题描述某线性时不变系统的方程为 )(82)(65)( tftftytty已知初始条件为 ,输入 ,能否用 MATLAB 的符号计算0,30e方法计算系统全响应的解析解。实验 3 绘制连续系统的四幅图1、实验目的用 MATLAB 绘制连续系统的零极点图、冲激响应和阶跃响应图、频率响应和波特图。四幅图为:零极点图,冲激响应和阶跃响应图(两个响应竖排) ,频率
9、响应(幅频响应和相频响应竖排) ,波特图。2、预习阅读内容信号与系统实验教程实验 9。 信号与系统分析第 3 章。3、参考程序信号与系统实验教程实验 9例 4.2-1 程序(如何用 MATLAB 画零极点图、冲激响应和阶跃响应波形图) ,例 4.2-2 程序(如何用 MATLAB 画频率响应图和波特图) ,信号与系统分析第 3 章计算机例题 C3.5(如何用 MATLAB 画零极点图、冲激响应和阶跃响应波形图) ,计算机例题 C3.10(如何用 MATLAB 画频率响应图) ,计算机例题 C3.11(如何用 MATLAB 画波特图) ,4、MATLAB 学习要点 5 冲激响应和阶跃响应的数值计
10、算Matlab 提供了画系统零极点图的函数。 pzmap( )画系统冲激响应的函数。impulse( )画系统阶跃响应的函数。step( )参见参考程序。 信号与系统实验教程第 107 页 频率响应的数值计算Matlab 提供了专用绘制频率响应的函数。freqs( )波特图的函数, bode( )参见参考程序。 信号与系统实验教程第 108 页 在一幅图上画多幅子图。subplot( );参见参考程序,或信号与系统实验教程第 18 页 多项式的乘法。conv( ) , 信号与系统实验教程 第 8 页5、上机内容 用 MATLAB 计算习题 3-28。画出四幅图 用 MATLAB 计算习题 3-
11、29。画出四幅图6、思考题描述某线性时不变系统的方程为 )(82)(65)( tftftytty已知初始条件为 ,输入 ,能否用 MATLAB 的拉氏变换0,30e方法和时域方法计算系统全响应的解析解。实验 4 离散信号波形绘制和迭代法计算1、实验目的掌握 MATLAB 绘制离散信号波形的方法,用迭代法计算差分方程的方法。2、预习阅读内容信号与系统实验教程实验 11、12。 信号与系统分析第 4 章。3、参考程序信号与系统实验教程实验 11例 5.1-1 程序(如何用 MATLAB 画离散信号波形图) ,例 5.1-2 程序(如何用 MATLAB 进行波形的变换) ,信号与系统实验教程实验 1
12、2例 5.2-1 程序(如何用 MATLAB 进行迭代法计算) , 6 信号与系统分析第 4 章计算机例题 C4.1(如何用 MATLAB 画离散信号波形图) ,计算机例题 C4.2(如何用 MATLAB 进行波形的变换) ,计算机例题 C4.3(如何用 MATLAB 进行迭代法计算) ,4、MATLAB 学习要点 画离散信号波形的三要素与连续信号画图的方法相同,只是画图的函数是 stem( )参见参考程序。 信号与系统实验教程第 121 页 冲激函数的编写(外部函数)delta( )参见参考程序。 信号与系统实验教程第 122 页 循环语句。for.end参见参考程序,或信号与系统实验教程第
13、 42 页 数值与字符串的转换。num2str( ) , str2num( ), 信号与系统实验教程 第 27 页 检测数组的长度,length( ) 。 特殊矩阵,零矩阵 zeros( )等。 5、上机内容 用 MATLAB 计算习题 4-4。 用 MATLAB 计算习题 4-6。并显示前 15 项数值,画出其波形。6、思考题能否用迭代方法研究离散系统的性质?用 MATLAB 分析习题 4-5。实验 5 绘制离散系统的四幅图1、实验目的用 MATLAB 绘制离散系统的零极点图、冲激响应和阶跃响应图、零输入响应和零状态响应图和频率响应。四幅图为:零极点图,冲激响应和阶跃响应图(两个响应竖排)
14、,零输入响应和零状态响应图(两个响应竖排) ,频率响应(幅频响应和相频响应竖排) 。2、预习阅读内容 7 信号与系统实验教程实验 14。 信号与系统分析第 5 章。3、参考程序信号与系统实验教程实验 14例 5.4-1 程序(如何用 MATLAB 画零极点图、冲激响应和频率响应图) ,例 5.4-2 程序(如何用 MATLAB 画全响应图) ,例 5.4-3 程序(如何用 MATLAB 画零输入响应和零状态响应和频率响应图) ,信号与系统分析第 5 章计算机例题 C5.3(如何用 MATLAB 画零极点图、冲激响应和阶跃响应波形图) ,计算机例题 C5.4(如何用 MATLAB 画频率响应图)
15、 ,4、MATLAB 学习要点 冲激响应和阶跃响应的数值计算Matlab 提供了画系统零极点图的函数。 zplane( )画系统冲激响应的函数。impz( )画系统阶跃响应的函数。stepz( )参见参考程序。 信号与系统实验教程第 142 页 频率响应的数值计算Matlab 提供了专用绘制频率响应的函数。freqz( )参见参考程序。 信号与系统实验教程第 143 页 全响应的数值计算。filter( )参见参考程序,或信号与系统实验教程第 144 页5、上机内容 用 MATLAB 计算习题 5-8。画出四幅图 用 MATLAB 计算习题 5-18。画出四幅图6、思考题能否用 MATLAB
16、的 Z 变换方法计算离散系统响应的解析解。如习题 5-17,5-22.实验 6 周期信号的分解与合成1、实验目的用 MATLAB 绘制周期信号的频谱。理解周期信号的傅里叶级数分解。 8 根据频谱用 MATLAB 计算前 N 项之和,理解周期信号的合成。观察吉布斯现象。2、预习阅读内容信号与系统实验教程实验 5。 信号与系统分析第 6 章。3、参考程序信号与系统实验教程实验 5例 3.1-1 程序(如何用 MATLAB 实现周期信号的合成) ,例 3.1-2 程序(如何用 MATLAB 画周期信号的频谱) ,信号与系统分析第 6 章计算机例题 C6.1(画单边频谱图) ,计算机例题 C6.2(用
17、单边频谱合成周期信号) ,计算机例题 C6.3(用双边频谱合成周期信号) ,计算机例题 C6.4(画双边频谱图) ,计算机例题 C6.6(用 FFT 画双边频谱图) 。4、MATLAB 学习要点 求和的数值计算用矩阵相乘可实现求和计算。如 a=1 2 3 4 5; b=5 4 3 2 1。 *51baii参见参考程序。如 x=b_n*sin(omega_0*n*t)y1=A_n*exp(j*omega_0*n*t) 单边频谱的计算数值计算:a(k+1)=2/T*trapz(t,f.*cos(k*w*t);b(k+1)=2/T*trapz(t,f.*sin(k*w*t);符号计算:an=2/pi
18、*int(exp(-t/2)*cos(2*n*t),0,pi);bn=2/pi*int(exp(-t/2)*sin(2*n*t),0,pi);参见参考程序。 双边频谱的计算数值计算:FFT 算法 信号与系统分析305 页符号计算:Fn=1/pi*int(exp(-t/2)*exp(-j*2*n*t),0,pi);参见参考程序。 5、上机内容 用 MATLAB 画出图 1、2 的频谱和谐波次数 N=20 时合成的波形。观察 N 变化时合成波形和吉布斯现象。其中图 1、2 是一个周期的波形。6、思考题用 FFT 函数画出习题 6-5、6-6 的频谱图。参考信号与系统分析402 页 9 0 1 2
19、3 400.511.522.530 1 2 3 400.20.40.60.81图 1 图 2实验 7 滤波器频域分析与卷积分析1、实验目的周期信号输入滤波器的响应可采用频域分析和时域分析方法。通过改变 RC 低通滤波器的时间常数或截止频率,观察滤波器的频域和时域性能。先用频域分析、再用卷积分析的方法验证分析的结果。2、预习阅读内容信号与系统实验教程实验 3、7。 信号与系统分析第 2、6 章。3、参考程序信号与系统实验教程实验 3、7例 2.3-4 程序(如何用 MATLAB 实现卷积积分) ,例 3.3-1 程序(如何用 MATLAB 画滤波器的频率特性) ,例 3.3-2 程序(如何用 M
20、ATLAB 实现频域分析) ,信号与系统分析第 2、6 章计算机例题 C2.4(计算卷积积分) ,计算机例题 C6.5(用频域方法计算周期信号通过滤波器的响应) ,4、上机内容滤波器为 RC 低通滤波器,输入信号为周期锯齿波如图 1 所示。当 RC=0.5、2 时,用MATLAB 分析系统的输入频谱、输出频谱以及系统的时域响应。再用卷积分析的方法画出滤波器输出波形。5、方法 10 (1)确定周期信号 f(t)的频谱 。基波频率 。nF(2)确定系统函数 和冲激响应 。)(jH)(th(3)计算输出信号的频谱nnjY(4)系统的时域响应ntjety)(MATLAB 计算为y=Y_n*exp(j*w0*n*t);(5)系统的时域响应的卷积计算。)()(tfhty6、要求(画出 4 幅图):(1)在一幅图中画输入信号 f(t)和输入信号幅度频谱|F(j )|。用多个子图画出。(2)画出滤波器的幅度频谱|H(j)|。(3)在一幅图中画输出信号 y(t)和输出信号幅度频谱|Y(j )|。用多个子图画出。(4)在一幅图中画输入信号 f(t)、冲激响应波形 h(t)和输出信号 y(t)。