信号与系统实验报告终极模版.doc
《信号与系统实验报告终极模版.doc》由会员分享,可在线阅读,更多相关《信号与系统实验报告终极模版.doc(27页珍藏版)》请在装配图网上搜索。
《信号与系统仿真实验》实验报告 课程名称 信号与系统 院 别 物理与电子学院 班 级 电子11-1BF 姓 名 唐新军 学 号 14112500121 任课教师 曾业战 2013年6 月22 日 实验一 信号的产生与时域运算 1、 实验目的 1. 掌握用matlab软件产生基本信号的方法. 2.应用matlab软件实现信号的加、减、乘、反褶、移位、尺度变换及卷积运算。 二、实验原理 (一)产生信号波形的方法 利用Matlab软件的信号处理工具箱(Signal Processing Toolbox)中的专用函数产生信号并 绘出波形。 a.产生正弦波 t=0:0.01:3*pi; y=sin(2*t); plot(t,y) b.产生叠加随机噪声的正弦波 t=0:0.01:3*pi; y=10*sin(2*t); s=y+randn(size(t)); plot(t,s) c. 产生周期方波 t=0:0.01:1; y=square(4*pi*t); plot(t,y) 1 d. 产生周期锯齿波 t=(0:0.001:2.5); y=sawtooth(2*pi*30*t); plot(t,y),axis([0 0.2 -1 1]) 0.5 0 -0.5 -1 0 0.05 0.1 0.15 0.2 Since.产生SincSinc函数 x=linspace(-5,5); y=sinc(x); plot(x,y) 1 0.5 0 2 f.产生指数函数波形 x=linspace(0,1,100); (或x=0:0.01:1;) y=exp(-x); plot(x,y) (二)信号的运算 1.加(减)、乘运算 要求二个信号序列长度相同.例 t=0:0.01:2; f1=exp(-3*t); f2=0.2*sin(4*pi*t); f3=f1+f2; f4=f1.*f2; subplot(2,2,1);plot(t,f1);title(f1(t)); subplot(2,2,2);plot(t,f2);title(f2(t)); subplot(2,2,3);plot(t,f3);title(f1+f2); subplot(2,2,4);plot(t,f4);title(f1*f2); .2. 信号的反褶、移位、尺度变换. 由f(t)到f(-at+b)(a>0)步骤: f(t)→f(t + b)→f(at + b)→f(−at + b)⎯⎯⎯ 例:已知f(t)=sin(t)/t,试通过反褶、移位、尺度变换由 f(t)的波形得到f(-2t+3) 的波形. syms t; f=sym(sin(t)/t); f1=subs(f,t,t+3); %定义符号函数f(t)=sin(t)/t %对f进行移位 f2=subs(f1,t,2*t); %对f1进行尺度变换 f3=subs(f2,t,-t);%对f2进行反褶 subplot(2,2,1);ezplot(f,[-8,8]);grid on; % ezplot是符号函数绘图命令 subplot(2,2,2);ezplot(f1,[-8,8]);grid on; subplot(2,2,3);ezplot(f2,[-8,8]);grid on; subplot(2,2,4);ezplot(f3,[-8,8]);grid on; (注:也可用一条指令:subs(f,t,-2*t+3)实 现f(t)到f(-2t+3)的变换) 3 (三) 卷积运算) Y=conv(x,h) 实现x,h二个序列的卷积,假定都是从n=0开始.Y序列的长度为x,h序列的长度之和再减1. 例1: 二个方波信号的卷积. y1=[ones(1,20),zeros(1,20)]; y2=[ones(1,10),zeros(1,20)]; y=conv(y1,y2); n1=1:length(y1); n2=1:length(y2); L=length(y) subplot(3,1,1);plot(n1,y1);axis([1,L,0,2]); subplot(3,1,2);plot(n2,y2);axis([1,L,0,2]); n=1:L; subplot(3,1,3);plot(n,y);axis([1,L,0,20]); 例2:二个指数信号的卷积. t=0:0.01:1; y1=exp(-6*t); y2=exp(-3*t); y=conv(y1,y2); l1=length(y1) l2=length(y2) l=length(y) subplot(3,1,1);plot(t,y1); subplot(3,1,2);plot(t,y2); t1=0:0.01:2; subplot(3,1,3);plot(t1,y); 三、实验内容 1. 自选二个简单的信号,进行加、乘、卷积运算. 2. 自选一个简单的信号进行反褶、平移、尺度变换运算 . 四、实验要求 1.预习实验原理; 2.对实验内容编写程序(M文件),上机运行; 3.绘出运算或变换后信号的波形. 4 实验二(综合性实验) 线性连续时间系统的分析 一、实验目的 1.掌握用matlab分析系统时间响应的方法 2.掌握用matlab分析系统频率响应的方法 3.掌握系统零、极点分布与系统稳定性关系 二、实验原理 1. 系统函数H(s) 系统函数:系统零状态响应的拉氏变换与激励的拉氏变换之比. H(s)=R(s)/E(s) 在matlab中可采用多种方法描述系统 ,本文采用传递函数(系统函数)描述法. 在matlab 中, 传递函数描述法是通过传递函 数分子和分母关于s降幂排列的多项式系数来表示的.例 如,某系统传递函数如下 num=[1,1] (1) 则可用如下二个向量num和den来表示: den=[1,1.3,0.8] 2. 用matlab分析系统时间响应 1)脉冲响应 y=impulse(num,den,T) T:为等间隔的时间向量,指明要计算响应的时间点. 2)阶跃响应 y=setp(num,den,T) T同上. 3)对任意输入的响应 y=lsim(num,den,U,T) U:任意输入信号. T同上. 例:对式(1)系统,分别求脉冲响应、阶跃响应及对输入u(t)=sin(t)的响应. num=[1,1]; den=[1,1.3,0.8]; T=0:0.1:3; y1=impulse(num,den,T); y2=step(num,den,T); U=sin(T); y3=lsim(num,den,U,T); 5 subplot(2,2,1);plot(T,y1);title(脉冲响应) subplot(2,2,2);plot(T,y2);title(阶跃响应) subplot(2,2,3);plot(T,y3);title(输入为u=sint的响应) 3.用matlab分析系统频率响应特性 频响特性: 系统在正弦激励下稳态响应随信号频率变化的特性. H ( jω ) = H (s) s = jω = H ( j ω ) e jϕ ( ω ) |H(jω)|:幅频响应特性. ϕ(ω):相频响应特性(或相移特性). Matlab 求系统频响特性函数freqs的调用格式: h=freqs(num,den,ω) ω:为等间隔的角频率向量,指明要计算响应的频率点. 例:求式(1)系统的频响特性. num=[1,1]; den=[1,1.3,0.8]; W=0:0.1:100; h=freqs(num,den,W); subplot(1,2,1);plot(W,abs(h));title(幅频特性) axis([0,20,0,1.5]); set(gca,xtick,[0,10,20]);set(gca,ytick,[0,1/sqrt(2),1.25]);grid on; subplot(1,2,2);plot(W,angle(h));title(相频特性) axis([0,20,-pi/2,0.2]); set(gca,xtick,[0,10,20]);set(gca,ytick,[-pi/2,-pi/4,0]);grid on; 6 4.系统零、极点分布与系统稳定性关系 系统函数H(s)集中表现了系统的性能,研究H(s)在S平面中极点分布的位置,可很方面地 判断系统稳定性. 1) 稳定系统: H(s)全部极点落于S左半平面(不包括虚轴),则可以满足 lim [h(t )] = 0 t →∞ 系统是稳定的. 2)不稳定系统: H(s)极点落于S右半平面,或在虚轴上具有二阶以上极点 ,则在足够长时 间后,h(t)仍继续增长, 系统是不稳定的. 3)临界稳定系统: H(s)极点落于S平面虚轴上,且只有一阶,则在足够长时间后,h(t)趋于 一个非零数值或形成一个等幅振荡. 系统函数H(s)的零、极点可用matlab的多项式求根函数roots()求得. 极点:p=roots(den) 零点:z=roots(num) 根据p和z用plot()命令即可画出系统零、极点分布图 ,进而分析判断系统稳定性. 例: 系统函数H(s)如下,画出系统零、极点分布图, 判断该系统稳定性. num=[1,0,-4]; den=[1,2,-3,2,1]; p=roots(den); z=roots(num); plot(real(p),imag(p),*);hold on; ( 2) plot(real(z),imag(z),o);grid on % 极点: p = -3.1300、 0.7247 + 0.6890i 、0.7247 - 0.6890i 、-0.3195 % 零点: z = 2.0000、 -2.0000 7 由系统零、极点分布图可知,该系统有一极点位于s右半平面,故系统是不稳定的. 三、实验内容 设①p1=-2,p2=-30; ②p1=-2,p2=3 1.针对极点参数①②, 画出系统零、极点分布图, 判断该系统稳定性. 2.针对极点参数①②,绘出系统的脉冲响应曲线,并观察t→∞时, 脉冲响应变化趋势. 3.针对极点参数①, 绘出系统的频响曲线. 四、实验要求 1.预习实验原理; 2. 对实验内容编写程序(M文件),上机运行; 3.绘出实验内容的各相应曲线或图,回答相应问题. 8 实验三 离散时间信号与系统 一、实验目的 1.掌握用matlab软件产生离散时间信号的方法; 2.进一步理解离散时间信号常见运算的方法; 3.掌握求离散时间系统冲激响应的方法. 4.掌握Simulink是面向框图的仿真软件。 二、实验原理 (一)离散时间信号的产生与运算 1.离散时间信号的产生 (1)单位抽样序列 ⎧1, n = n 0 δ (n - n 0 ) = ⎨ ⎩0, n ≠ n0 先定义delta函数,并保存. function[x,n]=delta(n0,n1,n2) n=[n1:n2]; x=[(n-n0)==0]; 然后执行下面程序.(以δ(n-3)为例) [x,n]=delta(3,-1,10); stem(n,x); (2)单位阶跃序列 ⎧1, n ≥ n0 u (n - n 0 ) = ⎨ ⎩0, n < n0 先定义step-seq函数,并保存. function[x,n]=step-seq(n0,n1,n2) n=[n1:n2]; x=[(n-n0)>=0]; 然后执行下面程序.(以u(n-3)为例) [x,n]=step-seq (3,-1,10); stem(n,x); (3)矩形序列 ⎧1, ( 0 ≤ n ≤ N − 1) R N ( n) = ⎨ ⎩ 0, (n < 0, n ≥ N ) 先定义aaa函数,并保存. function[x,n]=aaa(N,n1,n2) n=[n1:n2]; x=[(N>n)&(n>=0)]; 9 然后执行下面程序.(以R3)为例) [x,n]=aaa (3,-1,10); stem(n,x); (4)单位斜坡序列 ⎧n, n ≥ 0 x(n) = ⎨ ⎩0, n < 0 先定义ramp函数,并保存. function[x,n]=ramp(n1,n2) n=[n1:n2]; x=n; 然后执行下面程序 [x,n]=ramp (0,10); Stem(n,x); (5)正弦序列 例:X(n)=5sin(0.5πn+ π/4) n=-pi:0.1:pi; x=5*sin(0.5*pi*n+pi/4); stem(n,x) (6)指数序列 例:X(n)=exp(-0.5n). n=-1:0.1:1; x=5*exp(-0.5*n); stem(n,x) (7)任意序列 例: x=[1,5,-4,2,5,-1,5]; n=1:length(x); stem(n,x) 2.离散时间信号的运算 (1)二序列相加、乘 例: x1=[1,5,-4,2,5,-1,5]; x2=[1,2,3,4,5,6,7]; n=1:length(x1); 10 subplot(2,2,1);stem(n,x1); subplot(2,2,2);stem(n,x2); subplot(2,2,3);stem(n,x1+x2); subplot(2,2,4);stem(n,x1.*x2); (2)二序列卷积 例: x1=[1,1,1,1,0,0,0]; x2=[0,0,1,1,1,0,0]; Y=conv (x1,x2), n1=1:length(x1); n2=1:length(x2); n=1:length(Y); subplot(3,1,1);stem(n1,x1); subplot(3,1,2);stem(n1,x2); subplot(3,1,3);stem(n,Y); (3) 演示一个Simulink的简单程序 例: x=[1,5,-4,2,5,-1,5]; N=length(x); Y=fft(x,N), n=1:N; subplot(2,1,1);stem(n,x1); subplot(2,1,2);stem(n,abs(Y)); (1)创建一个正弦信号的仿真模型。 步骤如下: 在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(Simulink Library Browser) 窗口,如图所示。 11 Simulink界面 (2) 单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。 (3) 在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击 Simulink下的Source子模块库,便可看到各种输入源模块。 (4) 用鼠标单击所需要的输入信号源模块“Sine Wave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“Sine Wave” 模块就被添加到untitled窗口;也可以用鼠标选中“Sine Wave”模块,单击鼠标右键,在快捷菜单中选择“add to untitled” 命令,就可以将“Sine Wave”模块添加到untitled窗口,如图所示。 Simulink界面 (5)用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到“untitled”窗口中。 (6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的 输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图所示。 (7) 开始仿真,单击“untitled”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。双 击“Scope”模块出现示波器显示屏,可以看到黄色的正弦波形。如图所示。 Simulink模型窗口 示波器窗口 (8) 保存模型,单击工具栏的图标,将该模型保存为“Ex0701.mdl”文件。 (2)建立二阶系统的仿真模型。 例: 输入信号源使用阶跃信号,系统使用开环传递函数,接受模块使用示波器来构成模型。 (1) 在“Sources”模块库选择“Step”模块,在“Continuous”模块库选择“Transfer Fcn”模块,在“Math Operations”模 块库选择“Sum”模块,在“Sinks”模块库选择“Scope”。 (2) 连接各模块,从信号线引出分支点,构成闭环系统。 Sum参数设置 (3) 设置模块参数,打开“Sum”模块参数设置对话框,如图7.26所示。将“Icon shape”设置为“rectangular”,将“List of signs” 设置为“|+-”,其中“|”表示上面的入口为空。 “Transfer Fcn”模块的参数设置对话框中,将分母多项式“Denominator”设置为“[1 0.6 0]”。 将“Step”模块的参数设置对话框中,将“Step time”修改为0。 (4) 添加信号线文本注释 双击信号线,出现编辑框后,就输入文本。则模型如图7.27所示。 二阶系统模型 (5) 仿真并分析 单击工具栏的“Start simulation”按钮,开始仿真,在示波器上就显示出阶跃响应。 在Simulink模型窗口,选择菜单“Simulation”——“Simulation parameters…”命令,在“Solver”页将“Stop time”设置为 15,然后单击“Start simulation”按钮,示波器显示的就到15秒结束。 打开示波器的Y坐标设置对话框,将Y坐标的“Y-min”改为0,“Y-max”改为2,将“Title”设置为“二阶系统时域响应”,则示 波器如图所示。 实验一作业1.利用MATLAB产生下列信号并作图。 (1) t= -1: 0.02: 5; x=(t>=1); m=-3*x; plot(t,m); axis([-1,5,-4,0]); (2) t = 0:0.007:30; x = exp(-0.1*t); omega=2/3; y = sin(omega*t); z=x.*y %加点表矢量运算 plot(t,z); (3) t = -0.1:0.000006:0.1; x = cos(100*t); y = cos(2000*t); z=x+y; plot(t,z); (4) k=-15:0.02:15; x=(k>=-5&k<=5); plot(k,x); axis([-15,15,0,2]); (5) k=-20:20; x=(0.9.^k).*(sin(0.25.*pi.*k)+cos(0.25.*pi.*k)); stem(k,x); 实验二作业1.描述某线性时不变系统的微分方程为: 且f(t)=t2,y(0-)=1,y’(0-)=1;试求系统的单位冲激响应、单位阶跃响应、全响应、零状态响应、零输入响应、自由响应和强迫响应。编写相应MATLAB程序,画出各波形图。 b=[1 2]; a=[1 3 2]; sys=tf(b,a) t=0:0.02:4; figure(1) impulse(sys,t); title(‘单位冲激响应’) figure(2) step(sys,t) title(‘单位阶跃响应’) y=dsolve(D2y+3*Dy+2*y=2*t+2*t^2,y(0)=1,Dy(0)=1); y1=dsolve(D2y+3*Dy+2*y=0); y2=dsolve(D2y+3*Dy+2*y=2*t+2*t^2); y3=y2-y1; y4=y-y3; yzi=dsolve(D2y+3*Dy+2*y=0,y(0)=1,Dy(0)=1); yzs=dsolve(D2y+3*Dy+2*y=2*t+2*t^2,y(0)=0,Dy(0)=0); t=linspace(0,2,200); figure(1) all=subs(y); plot(t,all) xlabel(t(s)) title(全响应) figure(2) y_4=subs(y4); plot(t,y_4) xlabel(t(s)) title(自由响应) figure(3) y_3=subs(y3); plot(t,y_3) xlabel(t(s)) title(强迫响应) figure(4) yzi_n=subs(yzi); plot(t,yzi_n) xlabel(t(s)) title(零输入响应) figure(5) yzs_n=subs(yzs); plot(t,yzs_n) xlabel(t(s)) title(零状态响应) 2.给定一个连续线性时不变系统,描述其输入输出之间关系的微分方程为: 编写MATLAB程序,绘制系统的幅频响应、相频响应、频率响应的实部和频率响应的虚部的波形,确定滤波器的类型。 b = [1]; a = [1 3 2]; [H,w] = freqs(b,a); Hw = abs(H); plot(w,Hw) title(幅频响应), xlabel(频率(rad/sec)) b = [1]; a = [1 3 2]; [H,w] = freqs(b,a); phai = angle(H); plot(w,phai), title(相频响应), xlabel(频率(rad/sec)) b = [1]; a = [1 3 2]; [H,w] = freqs(b,a); real= real(H); plot(w,real) title(频率响应的实部) ,xlabel(频率(rad/sec)) b = [1]; a = [1 3 2]; [H,w] = freqs(b,a); imag= imag(H); plot(w,imag) title(‘频率响应的虚部), xlabel(频率(rad/sec)) 该系统是低通滤波器 3.已知系统函数为,试用MATLAB画出系统的零极点分布图,冲激响应波形、阶跃响应波形、幅频响应曲线和相频响应曲线,并判断系统的稳定性。 b=[0 1 -2 0.8]; a=[1 2 2 1]; sys=tf(b,a) t=0:0.02:4; figure(1) impulse(sys,t); title(‘单位冲激响应’) figure(2) step(sys,t) title(‘单位阶跃响应’) a=[1 2 2 1]; b=[0 1 -2 0.8]; freqs(b,a) a=[1 2 2 1]; b=[0 1 -2 0.8]; p=roots(a); q=roots(b); hold on plot(real(p),imag(p),x); plot(real(q),imag(q),o); title(H(s)的零极点图);- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 系统 实验 报告 终极 模版

链接地址:https://www.zhuangpeitu.com/p-8868021.html