实验指导书定稿

上传人:仙*** 文档编号:88889262 上传时间:2022-05-11 格式:DOC 页数:147 大小:3.62MB
返回 下载 相关 举报
实验指导书定稿_第1页
第1页 / 共147页
实验指导书定稿_第2页
第2页 / 共147页
实验指导书定稿_第3页
第3页 / 共147页
点击查看更多>>
资源描述
南方医科大学信号采集综合实验讲义(一)陈姿羽 喻德旷 杨丰 编生物医学工程学院 电子技术系2013年 9月141 / 147文档可自由编辑打印目录信号与系统部分1实验一 基本信号的表达与绘图2一、实验目的:2二、 实验原理:2三、实验内容5四、思考题5实验二 连续时间系统的时域分析7一、实验目的7二、实验原理7三、实验内容11四、思考题12实验三 周期信号的傅里叶级数分析13一、实验目的13二、实验原理13三、实验内容17四、思考题18实验四 连续时间信号的傅里叶变换19一、实验目的19二、实验原理19三、实验内容22四、思考题23实验五 拉普拉斯变换、连续时间系统的S域分析25一、实验目的:25二、实验原理25三、实验内容32四、思考题33实验六 离散时间系统的时域分析34一、实验目的34二、实验原理34三、实验内容36四、思考题37实验七 Z变换38一、实验目的38二、实验原理38三、实验内容40四、思考题40数字信号处理部分42实验八 常见离散信号43一、实验目的43二、实验原理43三、实验内容49四、思考题49实验九 离散时间信号的频域分析51一、实验目的51二、实验原理51三、实验内容60四、思考题61实验十 时域采样与频域采样62一、实验目的62二、实验原理62三、实验内容64四、思考题65实验十一 离散傅立叶变换快速算法及应用66一、实验目的66二、实验原理66三、实验内容75四、思考题75实验十二 IIR数字滤波器76一、实验目的76二、实验原理76三、实验内容96四、思考题97实验十三 FIR数字滤波器设计98一、实验目的98二、实验原理98三、实验内容108四、思考题108实验十四 Simulink仿真实验109一、实验目的109二、实验原理109三、实验内容116四、思考题117附录 MATLAB简介118信号与系统部分实验一 基本信号的表达与绘图一、实验目的:1. 熟练Matlab的基本操作2. 熟悉信号处理课程中的基本信号,包括基本的连续信号和离散信号,学会利用Matlab仿真软件产生这些基本信号。二、 实验原理:1. Matlab绘图基础1) 基本绘图常用函数 plot( ) subplot( )figurehold on/offstem( )ezplot( ) 该函数可以便捷地绘出符号函数的波形,但它的缺点是不够灵活,比如不能指定线型和颜色等。2) 交互式绘图 先建图,之后打开图像窗口菜单栏中view里的所有选项。2. 基本信号的表达与描述1) 连续信号和常用奇异信号的产生l 正弦信号:其表达式为,其信号的参数:振幅、角频率、与初始相位。其波形如下图所示:图 1 正弦信号利用Matlab提供的函数cos和sin可产生正弦和余弦信号,弧度制。l 指数信号: 指数信号可表示为。对于不同的取值,其波形表现为不同的形式,如下图所示: 图 2 指数信号 利用Matlab提供的函数exp( )描述指数函数。l 抽样信号:其表达式为:。是一个偶函数,时,函数值为零。该函数在很多应用场合具有独特的运用。图3 抽样信号使用Matlab提供的函数sinc(x)可计算抽样信号,函数sinc(x)的定义为。l 矩形脉冲信号函数rectpulse(t)可产生高度为1、宽度为1、关于t=0对称的矩形脉冲信号。函数rectpulse(t,w)可产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号。l 周期方波函数产生基本频率为(周期)的周期方波。函数产生基本频率为(周期)、占空比的周期方波。为一个周期中信号为正的时间长度。,等同于。l 周期三角波和锯齿波Sawtooth是Matlab中产生锯齿波或三角波的函数。x = sawtooth(t)x = sawtooth(t,width)第一种调用方式,将产生周期为2的锯齿波。以02这个周期内为例,当t=0时,x=-1,当t=2时,x=1。由此可见,在02这个周期内,x(t)是关于t的以1/为斜率的线段。第二种调用方式中,width是0到1之间的标量。在0到2width区间内,x的值从-1线性变化到1;在2width2区间内,x的值又从1线性变化到-1。sawtooth(t,1)和sawtooth(t)是等价的。l 阶跃信号产生方式有两种,一种是直接生成,另一种方式是利用Matlab里自带的函数heaviside()l 冲激信号的产生dirac函数为Matlab中产生冲击信号的函数。2) 离散信号的产生l 单位脉冲序列和单位阶跃序列Matlab中的函数ones(1,n)和zeros(1,n)可以生成单位脉冲序列和单位阶跃序列。l 指数序列l 正弦序列l 离散周期方波l 白噪声序列白噪声序列在信号处理中是常用的序列。函数rand可产生在0,1区间均匀分布的白噪声序列,函数randn可产生均值为0,方差为1的高斯分布的白噪声序列。三、实验内容1. 熟悉matlab的使用,特别是绘图相关和描述信号的函数。2. 编写matlab程序,产生下列连续信号和奇异信号:1) 产生一个幅度为2,频率为4HZ,相位为的正弦信号。2) 产生随时间衰减的指数信号。3) 产生信号4) 产生高度为1、宽度为4、延时2s的矩形脉冲信号5) 产生一个幅度为1,基频为2Hz,占空比为50%的周期方波6) 通过下列程序观察输出图形: x=-2*pi:0.01:2*pi;plot(x,sawtooth(x,0.5);title(周期三角波)7) 用两种方式在Matlab中产生阶跃信号8) 用dirac函数在Matlab中产生冲击信号3. 编写matlab程序,产生下列离散信号:1) 产生单位脉冲序列和阶跃序列2) 产生离散序列3) 产生正弦序列4) 产生幅度为1,基频、占空比为50%的周期方波5) 产生均值为0,方差为1的高斯分布的白噪声序列四、思考题1. 产生并画出以下离散序列:a、离散正余弦序列: b、单位采样序列:c、单位阶跃序列:d、实数指数序列:2. 产生复数值离散信号:在四个子图中画出其幅度、相位、实部和虚部的波形。3. 总结在实验中使用的主要函数及其功能。实验二 连续时间系统的时域分析一、实验目的1. 掌握用Matlab描述线性时不变(LTI)系统的方法。2. 掌握用Matlab实现零输入响应、零状态响应、冲激响应和阶跃响应的方法。3. 掌握用Matlab实现连续时间卷积运算。二、实验原理1. 描述线性时不变(LTI)系统的方法连续时间系统的研究方法包括输入-输出法和系统状态变量分析法。首先介绍输入-输出法。“信号与系统”研究的大部分是LTI系统,可以用一元高阶微分方程描述。设激励信号f(t),系统响应y(t),则系统表示为 (2.1)在Matlab中,上述系统可用tf函数建立,使用方法为sys=tf(b,a),其中a,b即和,是两个行矢量,分别由系统响应和激励信号的各阶导数项系数由搞至低排列而成;返回值sys即为上述LTI系统的模型。系统状态变量分析法在主教材中已详细讲解。前述系统是一个一元高阶微分方程,必然可以化成两个多元一阶微分方程组,其中一个描述系统状态在激励信号作用下的变化,称为状态方程 (2.2)另一个描述输出信号和系统状态及激励信号的关系,称为输出方程 (2.3)其中表示状态变量矢量,表示输入激励矢量,表示输出矢量。分别表示四个系数矩阵。对于用状态方程和输出方程描述的系统模型,在Matlab中用ss函数建立。使用方法为sys=ss(a,b,c,d),其中四个参数即为上述四个矩阵,返回值sys表示该系统模型。 2. 微分方程式的建立与求解微分方程的解包括齐次解和特解两部分。齐次解即系统特征方程的根,用roots函数计算。使用方法a=roots(p),其中p为特征方程的系数由高至低排列构成的行矢量,返回值a是特征组成的列矢量。例2.1 求微分方程的齐次解。 对应程序如下: p=1 7 16 12; a=roots(p); a输出结果: a = -3.0000 -2.0000 + 0.0000i -2.0000 - 0.0000i注意有一个二重跟-2,从而写出齐次解为特解即系统函数在给定激励信号作用下的输出。Matlab提供lsim函数对LTI系统进行仿真。使用方法为y=lsim(sys,u,t),其中sys表示LTI系统,矢量u和t分别表示激励信号的抽样值和抽样时间,返回值y 为对应于上述抽样时间的系统响应值。例2.2 给定方程式如果已知:1); 2) ,分别求两种情况下方程的特解。解: 首先建立系统模型sys,然后生成10s的抽样时间t及两种输入信号f1, f2,再分别激励sys得到响应信号y1和y2,最后在两个子图上分别绘制两种输入信号及其响应。对应程序如下:a=1 2 3;b=1 1;sys=tf(b,a);t=0:0.1:10;f1=t.2;y1=lsim(sys,f1,t);f2=exp(t);y2=lsim(sys,f2,t);subplot(2,2,1)plot(t,f1)subplot(2,2,2)plot(t,f2)subplot(2,2,3)plot(t,y1)subplot(2,2,4)plot(t,y2)可以将上述脚本中抽样间隔改为1s,再运行程序,对比两次绘图结果有何不同。一般来说,随着抽样率的提高,仿真结果和理论值会越来越接近。3. 零输入响应和零状态响应在Matlab中,lsim函数还可以对带有非零起始状态的LTI系统进行仿真,使用方法为y=lsim(sys,u,t,x0),其中sys表示LTI系统,矢量u和t分别表示激励信号的抽样值和抽样时间,矢量x0表示该系统的初始状态,返回值y是系统响应值。如果只有起始状态而没有激励信号,或者令激励信号为0,则得到零输入响应。如果既有初始状态也有激励信号,则得到完全响应。请注意lsim函数只能对用状态方程描述的LTI系统仿真非零起始状态响应,函数ss(对传递函数描述的LTI系统将失效,函数tf)。4. 冲激响应与阶跃响应如果分别用冲激信号和阶跃信号作激励,lsim函数可仿真出冲激响应和阶跃响应。但鉴于这两种响应的重要性,为简化操作,Matlab专门提供了impulse(sys)和step(sys)两个函数分别直接产生LTI系统的冲激响应和阶跃响应,其中sys表示LTI系统模型。1) 连续系统的单位冲激响应h(t)的计算impulse(sys)计算并画出连续系统的冲激响应,sys可由函数tf(b,a)获得,其中b和a分别是系统函数H(s)的分子多项式和分母多项式的系数矩阵。h=impulse(sys,t)计算并画出系统在向量t定义的时间范围内的冲激响应,向量h保存对应时间的系统冲激响应的输出值。2) 连续系统单位阶跃响应g(t)的计算step(sys)计算并画出连续系统的阶跃响应。g=step(sys,t)计算并画出连续系统在向量t定义的时间范围内的阶跃响应。向量g保存对应时间的系统阶跃响应的输出值。5. 连续时间卷积的计算在Matlab中,连续时间的卷积运算可以用数值方法计算近似值。首先对卷积公式 两侧以T为间隔抽样,再将积分拆成长度为T的若干小段,得到 假设抽样间隔足够小,以至于两个函数相邻抽样点上的值几乎不变,则近似有 (2.1)Matlab中定义了w=conv(u,v) 函数实现卷积和 (2.2)下面讨论如何利用conv函数实现连续时间卷积。首先假设序列u(m)是函数从时刻开始,以T为间隔采样的结果,则 (2.3)假设是T的整数倍。同理假设v(m)是对函数从时刻开始以相同间隔抽样得到的序列,即 (2.4)将式(2.3)和(2.4)带入式(2.1),有 (2.5)定义,并带入式(2.5)得到 (2.6)对比式(2.2)和(2.6)有 (2.7)即w(n)近似为从时刻开始以T为间隔对f(t)抽样得到的序列,从而可以用conv函数实现连续时间卷积。在以上推导的基础上,定义了一个函数conv1实现连续时间卷积: 文件名为conv1.mfunctionw,tw=conv1(u,tu,v,tv)%输入参数:u和v表示两个序列,tu和tv分别表示他们的抽样时间返回值,即输出参数:w和tw分别表示卷积结果及其抽样时间。T=tu(2)-tu(1);%以T为间隔抽样,再将积分拆成长度为T的若干小段,相当于dtw=T*conv(u,v);tw=tu(1)+tv(1)+T*0:length(u)+length(v)-2; %抽样时间tw=tu(1)+tv(1), tu(1)+tv(1)+T, tu(1)+tv(1)+2T, tu(1)+tv(1)+T(length(u)-1+length(v)-1) 卷积的时间为两序列起点的和到两序列终点的和三、实验内容1. 用Matlab传递函数描述如下系统 2. 用matlab描述如下系统输出方程3. 给定如图所示电路,t0时i(t)的零状态响应和零输入响应。 图2.1 电路图解:由所示电路写出回路方程和结点方程分别得到状态方程和输出方程:下面将用两种方法计算完全响应。第一种方法:首先仿真2V电压e作用足够长时间(10s)后系统进入稳态,从而得到稳态值x0,再以该值作为初始值仿真4V电压e作用下的输出rf,即是系统的完全响应,为充分掌握lsim函数的使用方法,还仿真了系统的零状态响应rzs和零输入响应rzi。第二种方法:构造一个激励信号,先保持2V足够长时间再跳变为4V,然后即可以零初始状态一次仿真得到系统的完全响应r1。对应程序如下:C=1;L=1/4;R1=1;R2=3/2;A=-1/R1/C,-1/C;1/L,-R2/L;B=1/R1/C;0;C=-1/R1,0;D=1/R1;sys=ss(A,B,C,D); %建立LTI系统systn=-10:0.01:-0.01; %生成-10s到-0.01s的抽样时间,间隔为0.01sen=2*(tn0); %生成机理信号的抽样值e(t)=2rn tn xn=lsim(sys,en,tn); %仿真t=0); %生成激励信号的抽样值e(t)=4ezi=0*(t=0); %生成零输入信号的抽样值e(t)=0rzs=lsim(sys,e,t); %仿真零状态响应rzi=lsim(sys,ezi,t,x0); %仿真零输入响应rf=lsim(sys,e,t,x0); %仿真完全响应r1=lsim(sys,en;e,tn;t); %用另一种方法仿真完全响应4. 已知描述某连续系统的微分方程为计算该系统的单位冲激响应h(t).统的单位冲激响应h(t).对应程序如下: a=1,5,6; b=2,8; sys=tf(b,a); t=0:0.1:10; h=impulse(sys,t); plot(h); xlabel(t); title(h(t)5. 已知描述某连续系统的微分方程为计算该系统的单位冲激响应h(t).例2.7 已知某系统冲激响应为,0t0&t=-1&t1=-1&t1-T1/4&t0);4. 请绘制矩形脉冲的波形和频谱 ,并利用你计算得到的频谱恢复时域信号,比较和原信号的差别。对应程序:clcclear allT=2; %定义时域抽样区间长N=200; %定义时域抽样点数t=linspace(-T/2,T/2-T/N,N); %定义时域抽样点f=0*t; %初始化时域信号f(t-1/2&t1/2)=1;OMG=16*pi; %定义频域抽样时间长度K=100; %定义频域抽样点数k=1:K;omg=linspace(-OMG/2,OMG/2-OMG/K,K); %定义频域抽样点F=0*omg; %初始化频谱F=T/N*exp(-j*kron(omg,t.)*f;fs=0*f; %初始化合成信号fs=OMG/2/pi/K*exp(j*kron(t,omg.)*F;subplot(2,1,1)plot(t,f,t,fs,-)subplot(2,1,2)plot(k,F)5. 设,用Matlab求的频谱,并与f(t)的频谱进行比较。对应程序:clcclear allsyms tf1=heaviside(t+1)- heaviside(t-1);f=heaviside(2*t+1)- heaviside(2*t-1);F=fourier(f1,t);Y=fourier(f,t);subplot(211);ezplot(F);subplot(212);ezplot(Y);图4.2 尺度变换例子通过上图比较可见,将展宽了一倍,而幅度将为的一半。解:求解f(t)程序命令如下:r=0.02;%抽样间隔T/Nt=-5:r:5;N=200;W=2*pi*1;K=-N:N;w=k*W/N;fl=1/2*exp(-2*t).*heaviside(t);F=r*fl*exp(-j*t*w);F1=abs(F);P1=angle(F);subplot(311);plot(t,fl);grid;xlabel(t);ylabel(f(t);title(f(t);subplot(312);plot(w,F1);xlabel(w);grid;ylabel(F(jw);subplot(313);plot(w,P1*180/pi);grid;xlabel(w) ;ylabel(P(度) ;6. 设,试用Matlab绘出f(t),y(t)及其频谱(幅度谱和相位谱),并对二者频谱进行比较。解:用Matlab实现的程序如下:R=0.02;t=-2:R:2;f=heaviside(t+1)-heaviside(t-1);fl=f.*exp(-j*20*t);f2=f.*exp(j*20*t);W1=2*pi*5;N=500;K=-N:N;W=k*W1/N;F1=fl*exp(-j*t*W)*R;F2=f2*exp(-j*t*W)*R;F1=real(F1);F2=real(F2);subplot(121);plot(W,F1);xlabel(w);ylabel(F1(jw);title(F(w)左移到w=20处的频谱F1(jw);subplot(122);plot(W,F2);xlabel(w);ylabel(F2(jw);title(F(w) 右移到w=20处的频谱F2(jw);运行结果如下图所示:图4.5 傅里叶变换的频移特性7. 设f(t)=u(t+1)-u(t-1),试用Matlab绘出及的频谱和,并与f(t)的频谱进行比较。解:用Matlab实现的程序如下:R=0.02;t=-2:R:2;f=heaviside(t+1)-heaviside(t-1);fl=f.*exp(-j*20*t);f2=f.*exp(j*20*t);W1=2*pi*5;N=500;K=-N:N;W=k*W1/N;F1=fl*exp(-j*t*W)*R;F2=f2*exp(-j*t*W)*R;F1=real(F1);F2=real(F2);subplot(121);plot(W,F1);xlabel(w);ylabel(F1(jw);title(F(w)左移到w=20处的频谱F1(jw);subplot(122);plot(W,F2);xlabel(w);ylabel(F2(jw);title(F(w) 右移到w=20处的频谱F2(jw);运行结果如下图所示:图4.5 傅里叶变换的频移特性8. 设f(t)=u(t+1)-u(t-1),y(t)=f(t)*f(t),试用Matlab绘出f(t),y(t),及,验证式(4.13)解:Matlab程序如下:clcclearR=0.05;t=-2 :R :2 ;f=heaviside(t+1)-heaviside(t-1) ;subplot(321)plot(t,f)xlabel(t);ylabel(f(t) ;y=R*conv(f,f) ;n=-4 :R :4 ;subplot(322);plot(n,y);xlabel(t)ylabel(y(t)=f(t)*f(t) ;axis(-3 3 -1 3) ;W1=2*pi*5;N=200;k=-N :N ;W=k*W1/N ;F=f*exp(-j*t*W)*R ;F=real(F);Y=y*exp(-j*n*W)*R ;Y=real(Y);F1=F.*F ;subplot(323);plot(W,F);xlabel(w) ;ylabel(F(jw) ;subplot(324)plot(W,F1) ;xlabel(w) ;ylabel(F(jw).F(jw);axis(-20 20 0 4) ;subplot(325);plot(W,Y) ;xlabel(w) ;ylabel(Y(jw) ;axis(-20 20 0 4) ;运行结果如下:图4.6 傅里叶变换的时域卷积定理9. 设f(t)=Sa(t),已知信号f(t)的傅里叶变换为,利用Matlab求的傅里叶变换,验证对称性.解:MATLAB程序为:r=0.01;t=-15:r:15;f=sin(t)./t;fl=pi*(heaviside(t+1)-heaviside(t-1) ;N=500;W=5*pi*1;k=-N:N;w=k*W/N;F=r*sinc(t/pi)*exp(-j*t*w);F1=r*fl*exp(-j*t*w);subplot(221);plot(t,f);xlabel(t);ylabel(f(t);subplot(222);plot(w,F);axis(-2 2 -1 4);xlabel(w);ylabel(F(w);subplot(223);plot(t,fl);axis(-2 2 -1 4);xlabel(t);ylabel(fl(t);subplot(224);plot(w,F1);axis(-20 20 -3 7);xlabel(w);ylabel(F1(w);运行结果如下:四、思考题1. 在实验内容第一题,设f(t)=u(t+1)-u(t-1), f1(t)=f(t)*cos(10*pi*t),试用matlab画出f(t)、f1(t)的时域波形及其频谱,并观察傅里叶变换的频移特性。2. 已知f(t)波形如图所示,试用Matlab求f(t)及df(t)/dt的傅里叶变换F(jw)及F1(jw),并验证时域微分特性实验五 拉普拉斯变换、连续时间系统的S域分析一、实验目的:1. 熟悉拉普拉斯变换与逆变换的Matlab实现方法2. 掌握拉普拉斯变换曲面图的绘制3. 了解拉普拉斯曲面图里频域与复频域的关系4. 了解拉普拉斯变换零极点分布对曲面图的影响5. 掌握系统零极点图的绘制二、实验原理1. 拉普拉斯变换与逆变换连续时间信号的拉普拉斯变换定义为: (6.1)其中,若以为横坐标(实轴),为纵坐标(虚轴),复变量就构成了一个复平面,称为平面。显然,是复变量的复函数,为了便于理解和分析随的变化规律,可以将写成: (6.2)其中,称为复信号的模,而则为的幅角。连续信号的拉普拉斯变换具有如下一般形式: 若,则可以分解为有理多项式与真分式
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!