信号与系统实验教案李欣.docx

上传人:b****6 文档编号:4275407 上传时间:2022-11-28 格式:DOCX 页数:25 大小:145.06KB
下载 相关 举报
信号与系统实验教案李欣.docx_第1页
第1页 / 共25页
信号与系统实验教案李欣.docx_第2页
第2页 / 共25页
信号与系统实验教案李欣.docx_第3页
第3页 / 共25页
信号与系统实验教案李欣.docx_第4页
第4页 / 共25页
信号与系统实验教案李欣.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

信号与系统实验教案李欣.docx

《信号与系统实验教案李欣.docx》由会员分享,可在线阅读,更多相关《信号与系统实验教案李欣.docx(25页珍藏版)》请在冰豆网上搜索。

信号与系统实验教案李欣.docx

信号与系统实验教案李欣

实验项目名称:

实验一连续时间信号与系统时域分析的MATLAB仿真

教学目的要求

1.熟悉MATLAB的运行环境及基本操作命令;

2.掌握连续时间信号的实现、时域基本运算、卷积运算,以及连续时间系统的时域分析,分析运行结果;

3.掌握实现实现时域运算的函数的调用;

4.通过matlab仿真加深对信号与系统时域分析的理解。

教学时数:

2学时,均为实验课时,本实验为验证性实验

教学内容与方法:

教学内容:

实验软件的基本操作和使用方法。

对一些典型连续信号的时域运算(加减乘除,微积分,尺度,反折,移位)的仿

真实现。

编程完成卷积运算。

调用相应的函数实现系统的时域分析(冲激响应,阶跃相应,零状态相应,零输

入相应的求解)。

对实验结果进行分析,并与理论分析结果做对比,加深对理论内容的理解。

教学方法:

先对软件的使用做演示操作,并编例程进行讲解,到每个学生处监督其实验操作

情况。

教学后记:

检查预习报告的完成情况。

作业布置:

完成实验报告的书写。

 

实验一连续时间信号与系统时域分析的MATLAB仿真

(2学时,验证性实验)

一.实验目的

1.熟悉MATLAB的运行环境及基本操作命令;

2.掌握连续时间信号的实现、时域基本运算、卷积运算,以及连续时间系统的时域分析,分析运行结果;

3.掌握实现实现时域运算的函数的调用;

4.通过matlab仿真加深对信号与系统时域分析的理解。

二.基本操作与仪器介绍

1.仪器:

英特尔586配置以上电脑一台,内存512MB以上,windowsxp操作系统。

软件:

MATLAB

2.基本操作:

1)、启动电脑;2)、打开MATLAB编程软件;3)、编写程序;4)、调试运行程序;5)、记录结果。

三.实验内容

1.实现冲激信号,阶跃信号,正弦信号,指数信号,复指数信号

2.实现信号四则基本运算,时移,翻折,尺度变换运算

3.实现系统单位冲激响应,单位阶跃响应,零状态响应,零输入响应的求解

四.实验内容及步骤

1.启动MATLAB软件,新建M文件。

2.基本连续信号的实现。

(1)单位阶跃信号

单位阶跃信是信号分析的基本信号之一,在信号与系统分析中有着十分重要的作用,常用于简化信号的时域表示。

根据单位阶跃信号的特性,我们可以用它来表示时限信号和单边信号(因果信号)。

一种得到单位阶跃信号的方法是在MATLAB的SymbolicMathToolbox中调用单位阶跃函数Heaviside,这样可方便地表示出单位阶跃信号。

但是,在用函数ezplot实现其可视化时,就出现一个问题:

函数ezplot只能画出既存在于SymbolicMath工具箱中,又存在于总MATLAB工具箱中的函数,而Heaviside函数仅存在SymbolicMathToolbox中,因此就需要在自己的工作目录work下创建Heaviside的M文件,该文件如下:

functionf=Heaviside(t)

f=(t>0);%t>0时f为一,否则为零

正确定义出该函数并保存运行后,就可调用该函数了。

如先定义向量:

t=-1:

0.01:

3

然后调用Heaviside函数表示出该信号并绘出波形

f=heaviside(t);

plot(t,f);

axis([-1,3,-0.2,1.2]);

得到波形如图1-1所示。

图1-1单位阶跃信号

(2)单位冲激信号

严格说来MATLAB是不能表示单位冲击信号的,但我们可用时间宽度为dt,高度为1/dt的矩形脉冲来近似地表示冲击信号。

当dt趋近于零时,就较好地近似出冲击信号的实际波形。

下面是绘制单位冲击信号及其在时间轴上的平移信号的MATLAB子程序,其中t1,t2表示信号的起始时刻,t0表示信号沿坐标的平移量,t0>时向左平移,t0<0时向右平移。

绘图命令用stairs,该命一般用于绘制类似楼梯形状的步进图形,在这里使用该命令是因为显示连续信号中的不连续点用stairs命令绘图效果较好。

functionchongji(t1,t2,t0)

dt=0.01;%信号时间间隔

t=t1:

dt:

t2;%信号时间样本点向量

n=length(t);%时间样本点向量长度

x=zeros(1,n);%各样本点信号值赋值为零

x(1,(-t0-t1)/dt+1)=1/dt;%在时间t=-t0处,给样本点赋值为1/dt

stairs(t,x);

axis([t1,t2,0,1.2/dt])

title('单位冲击信号δ(t)')

下面就调用chongji函数绘制d(t),-1≤t≤5的波形

MATLAB调用命令为:

chongji(-1,5,0)

图1-2单位冲激信号

程序执行后,MATLAB自动画出如图1-2所示的波形。

(3)指数信号

用MATLAB命令绘制单边指数信号

在时间

区间的波形。

解:

我们可用两向量f和t来表示信号,用plot命令绘制其波形,具体命令如下:

t=0:

0.05:

3;

f=exp(-1.5*t);

plot(t,f)

axis([0,3,0,1.2])

title('单边指数信号')

text(3.1,0.05,'t')

程序执行后,产生如图1-3所示的波形。

图1-3单边指数信号

(4)正弦信号

f=sym('3*sin((w)*t)');

f1=subs(f,'w','pi/2');

ezplot(f1,[0,4*pi]);

f2=subs(f,'w','pi');

ezplot(f2,[0,4*pi]);

f3=subs(f,'w','3*pi/2');

ezplot(f3,[0,4*pi]);

绘制的正弦信号时域波形如图1-4所示。

图1-4正弦信号时域波形

2.信号的基本运算

信号f(t)=(1+t/2)[u(t+2)-u(t-2)],绘出f(t-2),f(-t),f(2t),-f(t)的时域波形。

根据前面的介绍,我们可用符号运算来实现上述过程,MATLAB命令如下:

symst;

f=sym('(t/2+1)*(heaviside(t+2)-heaviside(t-2))');

subplot(2,3,1),ezplot(f,[-3,3]);

y1=subs(f,t,t+2);

subplot(2,3,2),ezplot(y1,[-5,1]);

y2=subs(f,t,t-2);

subplot(2,3,3),ezplot(y2,[-1,5]);

y3=subs(f,t,-t);

subplot(2,3,4),ezplot(y3,[-3,3]);

y4=subs(f,t,2*t);

subplot(2,3,5),ezplot(y4,[-2,2]);

y5=-f;

subplot(2,3,6),ezplot(y5,[-3,3]);

命令执行后得到f,y1,y2,y3,y4,y5的符号表达式如下:

f=(t/2+1)*(heaviside(t+2)-heaviside(t-2))

y1=(1/2*t+2)*(heaviside(t+4)-heaviside(t))

y2=1/2*t*(heaviside(t)-heaviside(t-4))

y3=(-1/2*t+1)*(heaviside(-t+2)-heaviside(-t-2))

y4=(t+1)*(heaviside(2*t+2)-heaviside(2*t-2))

y5=-(1/2*t+1)*(heaviside(t+2)-heaviside(t-2))

3.卷积计算

连续时间信号如图1-5所示,试用MATLAB求f1(t),f2(t)的卷积,并绘出卷积结果的时域波形图。

图1-5f1(t),f2(t)的波形

实现上述过程的MATLAB命令如下:

p=0.01;

k1=0:

p:

2;

f1=0.5*k1;

k2=k1;

f2=f1;

[f,k]=sconv(f1,f2,k1,k2,p)

4.系统响应求解

(1)单位冲激响应和单位阶跃响应求解

系统微分方程为:

求单位冲激响应。

a=[236];

b=[1];

impulse(b,a);

Step(b,a);

(2)零状态响应的求解

系统的微分方程为:

,求零状态响应。

a=[121];

b=[12];

p=0.5;%定义取样时间间隔

t=0:

p:

5;%定义时间范围

x=exp(-2*t);%定义输入信号

lsim(b,a,x,t);%对系统输出信号进行仿真

Lsim()函数的调用

五.实验中应注意事项

1.求解响应的各函数的使用,求卷积运算的函数;

2.注意编写程序的过程中要求全部为英文下输入;

3.调试修改程序后,一定要重新编译链接才能查看结果。

六.实验思考题

1.还有哪些方法可以实现单位阶跃信号和冲激信号。

2.ezplot和plot有什么区别。

3.MATLAB中实现卷积运算和理论分析中的卷积运算有什么区别。

实验后记:

注意对MATLAB的使用方法做简要说明

 

实验项目名称:

实验二连续时间系统频域分析的MATALAB仿真

教学目的要求

1.掌握连续时间信号与系统的频域分析方法,从频域的角度对信号与系统的特性进行理解;

2.掌握连续时间信号傅里叶变换与傅里叶逆变换的实现方法;

3.掌握连续时间傅里叶变换的数值计算方法及绘制信号频谱的方法,并实现信号的采样、调制和解调;

4.通过实验深入理解理论课中的频域分析的概念。

教学时数:

2学时,均为实验课时,本实验为设计性实验

教学内容与方法:

教学内容:

实现对典型信号的FST和FT,观察信号频域特性。

对一些典型连续信号实现采样,调制和解调的处理。

对实验结果进行分析,并与理论分析结果做对比,加深对理论内容的理解。

教学方法:

先对软件的使用做演示操作,并编例程进行讲解,到每个学生处监督其实验操作

情况。

教学后记:

检查预习报告的完成情况。

作业布置:

完成实验报告的书写。

 

实验二连续时间系统频域分析的MATLAB仿真

(2学时,设计性实验)

一.实验目的

1.掌握连续时间信号与系统的频域分析方法,从频域的角度对信号与系统的特性进;

2.掌握连续时间信号傅里叶变换与傅里叶逆变换的实现方法;

3.掌握连续时间傅里叶变换的数值计算方法及绘制信号频谱的方法,并实现信号的采样、调制和解调;

4.通过实验深入理解理论课中的频域分析的概念。

二.基本操作与仪器介绍

1.仪器:

英特尔586配置以上电脑一台,内存512MB以上,windowsxp操作系统。

软件:

MATLAB

2.基本操作:

1)、启动电脑;2)、打开MATLAB编程软件;3)、编写程序;4)、调试运行程序;5)、记录结果。

三.实验内容

1.实现连续周期信号的傅立叶级数展开(CTFS),完成周期矩形脉冲信号的傅立叶级数展开。

2.用数值法、符号法实现常用信号的傅里叶变换和傅里叶逆变换,并给出幅频特性曲线和相频特性曲线。

3.已知输入信号、载波频率、采样频率,产生输入信号的调相信号、调频信号和调幅信号。

四.设计提示

1.将连续周期信号展开成傅立叶技术的MATLAB代码如下:

[CTFShchsym.m]

function[A_sym,B_sym]=CTFShchsym

%采用符号计算法求一个周期内连续时间函数的三角级数展开系数,并绘出前七次

%谐波合成波形.

%函数的输出是数值量

%a被展开函数的时间区间的左端

%Nf=6谐波的阶数

%Nn输出数据的准确位数

%A_sym第1元素是直流项,其后元素依次是1,2,3...次

%谐波cos项展开系数

%B_sym第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数

%tao=1tao/T=0.2

symstnkx

T=5;tao=0.2*T;a=0.5;

ifnargin<4;Nf=6;end

ifnargin<5;Nn=32;end

x=time_fun_x(t);%调用符号变量写成的周期矩形脉冲

A0=2*int(x,t,-a,T-a)/T;%求出三角函数展开系数A0

As=int(2*x*cos(2*pi*n*t/T)/T,t,-a,T-a);%求出三角函数展开系数As

Bs=int(2*x*sin(2*pi*n*t/T)/T,t,-a,T-a);%求出三角函数展开系数Bs

A_sym

(1)=double(vpa(A0,Nn));

%获取串数组A0所对应的ASC2码数值数组

fork=1:

Nf

A_sym(k+1)=double(vpa(subs(As,n,k),Nn));

B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));

%获取串数组B所对应的ASCⅡ码数值数组

end

ifnargout==0

c=A_sym;disp(c)%输出c为三角级数展开系数:

第1元素是直流项,

%其后元素依次是1,2,3...次谐波cos项展开系数

d=B_sym;disp(d)%输出d为三角级数展开系数:

第2,3,4,...元素

%依次是1,2,3...次谐波sin项展开系数

t=-8*a:

0.01:

T-a;

f1=0.2/2+0.1871.*cos(2*pi*1*t/5)+0.*sin(2*pi*1*t/5);%基波

f2=0.1514.*cos(2*pi*2*t/5)+0.*sin(2*pi*2*t/5);%2次谐波

f3=0.1009.*cos(2*pi*3*t/5)+0.*sin(2*pi*3*t/5);%3次谐波

f4=0.0468.*cos(2*pi*4*t/5)+0.*sin(2*pi*4*t/5);%4次谐波

f5=-0.0312.*cos(2*pi*6*t/5)+0.*sin(2*pi*6*t/5);%6次谐波

f6=f1+f2;%基波+2次谐波

f7=f6+f3;%基波+2次谐波+3次谐波

f8=f7+f4+f5;%基波+2次谐波+3次谐波+4次谐波+6次谐波

subplot(2,2,1);

plot(t,f1);holdon;

y=time_fun_e%调用符号函数写成的连续时间函数-周期矩形脉冲

plot(t,y);

title('周期矩形波的形成—基波');

subplot(2,2,2);

plot(t,f6),holdon;

y=time_fun_e;

plot(t,y);

title('周期矩形波的形成—基波+2次谐波');

subplot(2,2,3);

plot(t,f7);holdon;

y=time_fun_e;

plot(t,y);

title('周期矩形波的形成—基波+2次谐波+3次谐波');

subplot(2,2,4);

plot(t,f8);holdon;

y=time_fun_e;

plot(t,y);

title('周期矩形波的形成—基波+2次谐波+3次谐波+4次谐波+6次谐波');

end

%-------------------------------------------

functionx=time_fun_x(t);

%该函数是CTFShchsym.m的子函数。

它由符号变量和表达式写成。

h=1;

x1=sym('Heaviside(t+0.5)')*h;

x=x1-sym('Heaviside(t-0.5)')*h;

%-------------------------------------------

functiony=time_fun_e

%该函数是CTFShchsym.m的子函数,它形成周期矩形脉冲

a=0.5;T=5;h=1;tao=0.2*T;t=-8*a:

0.01:

T-a;

e1=1/2+1/2.*sign(t+tao/2);

e2=1/2+1/2.*sign(t-tao/2);

y=h.*(e1-e2);%连续时间函数-周期矩形脉冲

编写函数文件CTFStpshsym.m

[CTFStpshsym.m]

function[A_sym,B_sym]=CTFStpshsym

%采用符号计算求[0,T]内时间函数的三角级数展开系数,并绘制其双边频谱。

%函数的输出为数值量

%Nn输出数据的准确位数

%A_sym第1元素是直流项,其后元素依次是1,2,3...次谐波cos项展开系数

%B_sym第2,3,4,...元素依次是1,2,3...次谐波sin项展开系数

%TT=m*tao,信号周期

%Nf谐波的阶数

%Nn输出数据的准确位数

%m(m=T/tao)周期与脉冲宽度之比,如m=4,8,16,100等

%tao脉宽:

tao=T/m

symstny

ifnargin<3;Nf=input('pleasInput所需展开的最高谐波次数:

Nf=');end

T=input('pleasInput信号的周期T=');

ifnargin<5;Nn=32;end

y=time_fun_s(t);

A0=2*int(y,t,0,T)/T;

As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);

Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);

A_sym

(1)=double(vpa(A0,Nn));

fork=1:

Nf

A_sym(k+1)=double(vpa(subs(As,n,k),Nn));

B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));end

ifnargout==0

S1=fliplr(A_sym)%对A_sym阵左右对称交换

S1(1,k+1)=A_sym

(1)%A_sym的1*k阵扩展为1*(k+1)阵

S2=fliplr(1/2*S1)%对扩展后的S1阵左右对称交换回原位置

S3=fliplr(1/2*B_sym)%对B_sym阵左右对称交换

S3(1,k+1)=0%B_sym的1*k阵扩展为1*(k+1)阵

S4=fliplr(S3)%对扩展后的S3阵左右对称交换回原位置

S5=S2-i*S4;%用三角函数展开系数A、B值合成付里叶指数系数

S6=fliplr(S5);

N=Nf*2*pi/T;

k2=-N:

2*pi/T:

N;

S7=[S6,S5(2:

end)];%形成-N:

N的付里叶复指数对称系数

subplot(3,3,3)

x=time_fun_e%调用连续时间函数-周期矩形脉冲

subplot(3,1,3)

stem(k2,abs(S7));%画出周期矩形脉冲的频谱(T=M*tao)

title('连续时间函数周期矩形脉冲的双边幅度谱')

axis([-80,80,0,0.12])

line([-80,80],[0,0])

line([0,0],[0,0.12])

end

%-------------------------------------------

functiony=time_fun_s(t)

%该函数是CTFStpshsym.m的子函数。

它由符号变量和表达式写成。

symsaa1

T=input('pleasInput信号的周期T=');

M=input('周期与脉冲宽度之比M=');

A=1;tao=T/M;a=tao/2;

y1=sym('Heaviside(t+a1)')*A;

y=y1-sym('Heaviside(t-a1)')*A;

y=subs(y,a1,a);

y=simple(y);

%------------------------------

functionx=time_fun_e

%该函数是CTFStpshsym.m的子函数,它形成周期矩形脉冲。

%t是时间数组

%T是周期duty=tao/T=0.2

T=5;t=-2*T:

0.01:

2*T;tao=T/5;

x=rectpuls(t,1);%产生一个宽度tao=1的矩形脉冲

subplot(2,2,2)

plot(t,x)

holdon

x=rectpuls(t-5,1);%产生一个宽度tao=1的矩形脉冲,中心位置在t=5处

plot(t,x)

holdon

x=rectpuls(t+5,1);%产生一个宽度tao=1的矩形脉冲,中心位置在t=-5处

plot(t,x)

title('周期为T=5,脉宽tao=1的矩形脉冲')

axis([-10,10,0,1.2])

2.非周期信号频谱,幅频特性,相频特性

vFourier变换

(1)F=fourier(f)

(2)F=fourier(f,v)

(3)F=fourier(f,u,v)

vFourier逆变换

(1)f=ifourier(F)

(2)f-ifourier(F,u)

(3)f=ifourier(F,v,u)

说明

(1)f=ifourier(F)是函数F的Fourier逆变换。

缺省的独立变量为ω,缺省返回是关于x的函数。

如果F=F(x),则ifourier返回关于t的函数。

(2)f=ifourier(F,u)返回函数f是u的函数,而不是缺省的x的函数。

(3)f=ifourier(F,v,u)对关于v的函数F进行变换,返回关于u的函数f。

注意:

在调用函数fourier()及ifourier()之前,要用syms命令对所用到的变量(如t、u、v、w)等进行说明,即要将这些变量说明成符号变量。

对fourier()中的函数f及ifourier()的函数F,也要用符号定义符sym将f或F说明为符号表达式;若f或F是MATLAB中的通用函数表达式,则不必用sym加以说明。

以下举例说明如何调用该函数来实现傅里叶变换。

命令文件如下:

symstvwx;%生成符号表达式;

x=1/2*exp(-2*t)*sym('Heaviside(t)');

F=fourier(x);

subplot(211);

ezplot(x);

subplot(212);

ezplot(abs(F));

3.采样定理及调幅

MATLAB提供了专门的函数modulate()用于实现信号的调制。

调用格式为:

y=modulate(x,Fc,Fs,'method')

[y,t]=modulate(x,Fc,Fs)

在下面的MATLAB的实现的程序中,为了观察f(t)及y(t)的频谱,在这里介绍一个MATLAB的“信号处理工具箱函数”中的估计信号的功率谱密度函数psd(),其格式是:

[Px,f]=psd(x,Nfft,Fs,window,noverlap,dflag)

用MATLAB完成本例的程序如下:

Fs=1000;%被调信号x的采样频率

Fc=400;%载波信号的载波频率

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1