收藏 分销(赏)

信号与系统实验报告终极模版.doc

上传人:精**** 文档编号:2670010 上传时间:2024-06-04 格式:DOC 页数:27 大小:835.54KB 下载积分:10 金币
下载 相关 举报
信号与系统实验报告终极模版.doc_第1页
第1页 / 共27页
信号与系统实验报告终极模版.doc_第2页
第2页 / 共27页


点击查看更多>>
资源描述
个人收集整理 勿做商业用途 《信号与系统仿真实验》实验报告 课程名称 信号与系统 院 别 物理与电子学院 班 级 电子11-1BF 姓 名 唐新军 学 号 14112500121 任课教师 曾业战 2013年6 月22 日 实验一 信号的产生与时域运算 一、 实验目的 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)的零极点图');
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服