文档视界 最新最全的文档下载
当前位置:文档视界 › 信号与系统实验(MATLAB版) (1)

信号与系统实验(MATLAB版) (1)

信号与系统实验(MATLAB版) (1)
信号与系统实验(MATLAB版) (1)

《信号与系统MATLAB实现》实验指导书

电气信息工程学院

2014年2月

长期以来,《信号与系统》课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是由于本课程数学公式推导较多,概念抽象,常需画各种波形,作题时难免花费很多时间,现在,我们给同学们介绍一种国际上公认的优秀科技应用软件MA TLAB,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。

MATLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MATLAB 再多了解一些。

MATLAB究竟有那些特点呢?

1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来;

2.完备的图形处理功能,实现计算结果和编程的可视化;

3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握;

4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具;

MATLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。正是基于这些背景,我们编写了这本《信号与系统及MATLAB实现》指导书,内容包括信号的MA TLAB表示、基本运算、系统的时域分析、频域分析、S域分析、状态变量分析等。通过这些练习,同学们在学习《信号与系统》的同时,掌握MATLAB的基本应用,学会应用MATLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。另外同学们在进行实验时,最好事先预习一些MATLAB的有关知识,以便更好地完成实验,同时实验中也可利用MATLAB的help命令了解具体语句以及指令的使用方法。

实验一:基本信号在MATLAB中的表示和运算(综合) 实验二:连续时间LTI系统的时域分析(设计)

实验三:傅里叶变换、系统的频域分析(设计)

实验四:信号抽样与恢复(设计)

实验五:信号与系统复频域(S域和Z域)分析(设计)

实验一 基本信号在MATLAB 中的表示和运算

(综合型) 一、实验目的

1. 学会用MA TLAB 表示常用连续信号的方法; 2. 学会用MA TLAB 进行信号基本运算的方法; 二、实验原理

1. 连续信号的MATLAB 表示

MATLAB 提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。

表示连续时间信号有两种方法,一是数值法,二是符号法。数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MA TLAB 的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。

例1-1指数信号 指数信号在MATLAB 中用exp 函数表示。

如at Ae t f =)(,调用格式为 ft=A*exp(a*t) 程序是

A=1; a=-0.4;

t=0:0.01:10; %定义时间点

ft=A*exp(a*t); %计算这些点的函数值

plot(t,ft); %画图命令,用直线段连接函数值表示曲线 grid on; %在图上画方格

例1-2 正弦信号 正弦信号在MATLAB 中用 sin 函数表示。

调用格式为 ft=A*sin(w*t+phi) A=1; w=2*pi; phi=pi/6;

t=0:0.01:8; %定义时间点

ft=A*sin(w*t+phi); %计算这些点的函数值 plot(t,ft); %画图命令 grid on; %在图上画方格

例1-3 抽样信号 抽样信号Sa(t)=sin(t)/t 在MA TLAB 中用 sinc 函数表示。

定义为 )/(sin )(πt c t Sa =

t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft); grid on;

axis([-10,10,-0.5,1.2]); %定义画图范围,横轴,纵轴

title('抽样信号') %定义图的标题名字

例1-4 三角信号三角信号在MATLAB中用tripuls 函数表示。

调用格式为ft=tripuls(t,width,skew),产生幅度为1,宽度为width,且以0为中心左右各展开width/2大小,斜度为skew的三角波。width的默认值是1,skew的取值范围是-1~+1之间。一般最大幅度1出现在t=(width/2)*skew的横坐标位置。

t=-3:0.01:3;

ft=tripuls(t,4,0.5);

plot(t,ft); grid on;

axis([-3,3,-0.5,1.5]);

例1-5虚指数信号调用格式是f=exp((j*w)*t)

t=0:0.01:15;

w=pi/4;

X=exp(j*w*t);

Xr=real(X); %取实部

Xi=imag(X); %取虚部

Xa=abs(X); %取模

Xn=angle(X); %取相位

subplot(2,2,1),plot(t,Xr),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),

title('实部');

subplot(2,2,3),plot(t,Xi),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),

title('虚部');

subplot(2,2,2), plot(t,Xa),axis([0,15,0,max(Xa)+1]),title('模');

subplot(2,2,4),plot(t,Xn),axis([0,15,-(max(Xn)+1),max(Xn)+1]),title('相角');

%subplot(m,n,i) 命令是建立m行n列画图窗口,并指定画图位置i

例1-6复指数信号调用格式是f=exp((a+j*b)*t)

t=0:0.01:3;

a=-1;b=10;

f=exp((a+j*b)*t);

subplot(2,2,1),plot(t,real(f)),title('实部')

subplot(2,2,3),plot(t,imag(f)),title('虚部')

subplot(2,2,2),plot(t,abs(f)),title('模')

subplot(2,2,4),plot(t,angle(f)),title('相角')

例1-7 矩形脉冲信号矩形脉冲信号可用rectpuls函数产生,

调用格式为y=rectpuls(t,width),幅度是1,宽度是width,以t=0为对称中心。

t=-2:0.01:2;

width=1;

ft=2*rectpuls(t,width);

plot(t,ft)

grid on;

例1-8 单位阶跃信号单位阶跃信号u(t)用“t>=0”产生,调用格式为ft=(t>=0)

t=-1:0.01:5;

ft=(t>=0);

plot(t,ft); grid on;

axis([-1,5,-0.5,1.5]);

例1-9 正弦信号符号算法

syms t %定义符号变量t

y=sin(pi/4*t) %符号函数表达式

ezplot(y,[-16,16]) %符号函数画图命令

或者

f=sym('sin(pi/4*t)') %定义符号函数表达式

ezplot(f,[-16,16])

例1-10单位阶跃信号MA TTLAB符号数学函数Heaviside表示阶跃信号,但要画图需在工作目录创建Heaviside的M文件

function f=Heaviside(t)

f=(t>0);

保存,文件名是Heaviside ,调用该函数即可画图,例

t=-1:0.01:3;

f=heaviside(t);

plot(t,f)

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

或者

y=sym('Heaviside(t)');

ezplot(y,[-1,5]);grid on

2.信号基本运算的MATLAB实现

信号基本运算是乘法、加法、尺度、反转、平移、微分、积分,实现方法有数值法和符号法

例1-11 以f(t)为三角信号为例,求f(2t) , f(2-2t)

t=-3:0.001:3;

ft=tripuls(t,4,0.5);

subplot(3,1,1);

plot(t,ft); grid on;

title ('f(t)');

ft1= tripuls(2*t,4,0.5);

subplot(3,1,2);

plot(t,ft1); grid on;

title ('f(2t)');

ft2= tripuls(2-2*t,4,0.5);

subplot(3,1,3);

plot(t,ft2); grid on;

title ('f(2-2t)');

例1-12 已知f1(t)=sinwt , f2(t)=sin8wt , w=2pi , 求f1(t)+f2(t)和f1(t)f2(t) 的波形图 w=2*pi;

t=0:0.01:3; f1=sin(w*t); f2=sin(8*w*t); subplot(211)

plot(t,f1+1,':',t,f1-1,':',t,f1+f2) grid on,title('f1(t)+f2(t))') subplot(212)

plot(t,f1,':',t,-f1,':',t,f1.*f2) grid on,title('f1(t)*f2(t)')

符号算法也可实现上述运算,以信号的微积分运算为例说明符号算法应用 微分的调用格式为 diff(function,’variable’,n) 积分的调用格式为 int(function,’variable’,a,b)

式中function 表示要微分或积分的函数,variable 表示运算变量,n 表示求导阶数,默认值是求一阶导数,a 是积分下限,b 是积分上限,a b 默认是求不定积分。 例1-13 求一阶导数的例题,已知)sin(21ax y =,x x x y ln sin 2= clear

syms a x y1 y2 %定义符号变量a , x ,y1, y2 y1=sin(a*x^2); %符号函数y1 y2=x*sin(x)*log(x); %符号函数y2

dy1=diff(y1,’x’) %无分号直接显示结果 dy2=diff(y2) %无分号直接显示结果

例1-14 求积分的例题,dx x ax x )2

(5

+-?,?+102)1(dx x xe x

clear

syms a x y3 y4

y3=x^5-a*x^2+sqrt(x)/2; y4=(x*exp(x))/(1+x)^2; iy3=int(y3,'x') iy4=int(y4,0,1) 三、上机实验内容

1. 调试实验原理中的程序。 2. 画出信号波形

(1))()2()(2t u e t f t

--= (2))]2()()[cos 1()(--+=t u t u t t f π

3.信号)()2()(2t u e

t f t

--=,求)2(t f 、)2(t f -波形

实验二 连续时间LTI 系统的时域分析

(设计型)

一、实验目的

1.学会用MA TLAB 求解连续系统的零状态响应; 2. 学会用MATLAB 求解冲激响应及阶跃响应; 3.学会用MA TLAB 实现连续信号卷积的方法; 二、实验原理

1.连续时间系统零状态响应的数值计算

我们知道,LTI 连续系统可用如下所示的线性常系数微分方程来描述,

()

()0

()()N

M

i j i j i j a y

t b f t ===∑∑

在MA TLAB 中,控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数lsim 。其调用格式

y=lsim(sys,f,t)

式中,t 表示计算系统响应的抽样点向量,f 是系统输入信号向量,sys 是LTI 系统模型,用来表示微分方程,差分方程或状态方程。其调用格式

sys=tf(b,a)

式中,b 和a 分别是微分方程的右端和左端系数向量。例如,对于以下方程:

''''''''''''32103210()()()()()()()()a y t a y t a y t a y t b f t b f t b f t b f t +++=+++

可用32103210[,,,];[,,,];a a a a a b b b b b == (,)sys tf b a = 获得其LTI 模型。

注意,如果微分方程的左端或右端表达式中有缺项,则其向量a 或b 中的对应元素应为零,不能省略不写,否则出错。

例3-1 已知某LTI 系统的微分方程为 y’’(t)+ 2y’(t)+100y(t)=f(t)

其中,'

(0)(0)0,()10sin(2)y y f t t π===,求系统的输出y(t).

解:显然,这是一个求系统零状态响应的问题。其MATLAB 计算程序如下: ts=0;te=5;dt=0.01; sys=tf([1],[1,2,100]); t=ts:dt:te;

f=10*sin(2*pi*t); y=lsim(sys,f,t); plot(t,y);

xlabel('Time(sec)'); ylabel('y(t)');

2.连续时间系统冲激响应和阶跃响应的求解

在MATLAB 中,对于连续LTI 系统的冲激响应和阶跃响应,可分别用控制系统工具箱提供的函数impluse 和step 来求解。其调用格式为 y=impluse(sys,t) y=step(sys,t)

式中,t 表示计算系统响应的抽样点向量,sys 是LTI 系统模型。 例3-2已知某LTI 系统的微分方程为 y’’(t)+ 2y’(t)+100y(t)=10f(t)

求系统的冲激响应和阶跃响应的波形. 解:ts=0;te=5;dt=0.01; sys=tf([10],[1,2,100]);

t=ts:dt:te;

h=impulse(sys,t); figure; plot(t,h);

xlabel('Time(sec)'); ylabel('h(t)');

g=step(sys,t); figure; plot(t,g);

xlabel('Time(sec)');

ylabel('g(t)');

3. 用MATLAB 实现连续时间信号的卷积

信号的卷积运算有符号算法和数值算法,此处采用数值计算法,需调用MA TLAB 的conv( )函数近似计算信号的卷积积分。连续信号的卷积积分定义是 τττd t f f t f t f t f ?

--=

*=)()()()()(2121

如果对连续信号)(1t f 和)(2t f 进行等时间间隔?均匀抽样,则)(1t f 和)(2t f 分别变为离散时间信号)(1?m f 和)(2?m f 。其中,m 为整数。当?足够小时,)(1?m f 和)(2?m f 既为连续时间信号)(1t f 和)(2t f 。因此连续时间信号卷积积分可表示为

∑?∞

-∞

=→?∞

-?

??-??=-=*=m m t f

m f d t f f t f t f t f )()()()()()()(2

1

02121lim

τ

ττ

采用数值计算时,只求当?=n t 时卷积积分)(t f 的值)(?n f ,其中,n 为整数,既

∑∑∞

-∞

=∞

-∞

=?-???=?

??-???=

?m m m n f m f m n f

m f n f ]

)[()()()()(212

1

其中,

∑∞

-∞

=?-??m m n f

m f ])[()(2

1

实际就是离散序列)(1?m f 和)(2?m f 的卷积和。当?足

够小时,序列)(?n f 就是连续信号)(t f 的数值近似,既 )]()([)()(21n f n f n f t f *?=?≈

上式表明,连续信号)(1t f 和)(2t f 的卷积,可用各自抽样后的离散时间序列的卷积再乘以抽样间隔?。抽样间隔?越小,误差越小。

例3-3用数值计算法求)2()()(1--=t u t u t f 与)()(32t u e t f t -=的卷积积分。

解:因为)()(32t u e t f t -=是一个持续时间无限长的信号,而计算机数值计算不可能计算真正的无限长信号,所以在进行)(2t f 的抽样离散化时,所取的时间范围让)(2t f 衰减到足够小就可以了,本例取5.2=t 。程序是 dt=0.01; t=-1:dt:2.5;

f1=Heaviside(t)-Heaviside(t-2); f2=exp(-3*t).*Heaviside(t);

f=conv(f1,f2)*dt; n=length(f); tt=(0:n-1)*dt-2; subplot(221), plot(t,f1), grid on;

axis([-1,2.5,-0.2,1.2]); title('f1(t)'); xlabel('t') subplot(222), plot(t,f2), grid on;

axis([-1,2.5,-0.2,1.2]); title('f2(t)'); xlabel('t') subplot(212), plot(tt,f), grid on; title('f(t)=f1(t)*f2(t)'); xlabel('t')

由于)(1t f 和)(2t f 的时间范围都是从t=-1开始,所以卷积结果的时间范围从 t=-2开始,增量还是取样间隔?,这就是语句tt=(0:n-1)*dt-2的由来。 三、上机实验内容

1. 调试实验原理中所述的相关程序。

2. 已知描述系统的微分方程和激励信号f(t)如下,试用解析法求系统的零状态响应y(t),并用MATLAB 绘出系统零状态响应的时域仿真波形,验证结果是否相同 y’’(t)+ 4y’(t)+4y(t)=f’(t)+3f(t) f(t)= exp(-t)u(t)

3.已知描述系统的微分方程如下,试用MA TLAB 求系统在0~10秒范围内冲激响应和阶跃响应的数值解,并用绘出系统冲激响应和阶跃响应的时域波形

y’’(t)+3y’(t)+2y(t)=f(t) y’’(t)+ 2y’(t)+2y(t)=f’(t) 4.画出信号卷积积分)()(21t f t f *的波形,)1()()()(21--==t u t u t f t f

实验三 傅里叶变换、系统的频域分析

(设计型)

一、 实验目的

1、学会用MA TLAB 实现连续时间信号傅里叶变换

2、学会用MA TLAB 分析LTI 系统的频域特性

3、学会用MA TLAB 分析LTI 系统的输出响应 二、实验原理

1.傅里叶变换的MATLAB 求解

MA TLAB 的symbolic Math Toolbox 提供了直接求解傅里叶变换及逆变换的函数fourier()及ifourier()两者的调用格式如下。 Fourier 变换的调用格式

F=fourier(f):它是符号函数f 的fourier 变换默认返回是关于w 的函数。

F=fourier(f ,v):它返回函数F 是关于符号对象v 的函数,而不是默认的w ,即

()()jvx F v f x e dx +∞

--∞

=?

Fourier 逆变换的调用格式

f=ifourier(F):它是符号函数F 的fourier 逆变换,默认的独立变量为w ,默认返回是

关于x 的函数。

f=ifourier(f,u):它的返回函数f 是u 的函数,而不是默认的x.

注意:在调用函数fourier()及ifourier()之前,要用syms 命令对所用到的变量(如t,u,v,w )进行说明,即将这些变量说明成符号变量。 例4-1 求2()t

f t e

-=的傅立叶变换

解: 可用MA TLAB 解决上述问题: syms t

Fw=fourier(exp(-2*abs(t)))

例4-2 求2

1

()1F jw ω=

+的逆变换f(t) 解: 可用MA TLAB 解决上述问题 syms t w

ft=ifourier(1/(1+w^2),t)

2.连续时间信号的频谱图

例4-3 求调制信号t t AG t f 0cos )()(ωτ=的频谱,式中

)2

()2()(,21,12,40τττπωτ--+==

==t u t u t G A 解:MATLAB 程序如下所示

ft=sym('4*cos(2*pi*6*t)*(Heaviside(t+1/4)-Heaviside(t-1/4))');

Fw=simplify(fourier(ft)) subplot(121)

ezplot(ft,[-0.5 0.5]),grid on subplot(122)

ezplot(abs(Fw),[-24*pi 24*pi]),grid

用MA TLAB 符号算法求傅里叶变换有一定局限,当信号不能用解析式表达时,会提示出错,这时用MATLAB 的数值计算也可以求连续信号的傅里叶变换,计算原理是

∑?∞

-∞

=-→-∞

-==n n j t

j e n f dt e

t f j F ττωτωτω)(lim )()(0

当τ足够小时,近似计算可满足要求。若信号是时限的,或当时间大于某个给定值时,信号已衰减的很厉害,可以近似地看成时限信号时,n 的取值就是有限的,设为N ,有

k N N

k e n f k F k N n n j k τ

π

ωτ

ττω2,0,)()(1

=

≤≤=∑-=- 是频率取样点 时间信号取样间隔τ应小于奈奎斯特取样时间间隔,若不是带限信号可根据计算精度要求确定一个频率 W0为信号的带宽。

例4-4 用数值计算法求信号)1()1()(--+=t u t u t f 的傅里叶变换

解,信号频谱是)(2)(ωωSa j F =,第一个过零点是π,一般将此频率视为信号的带宽,若将精度提高到该值的50倍,既W0=50π,据此确定取样间隔,02.00

21

=

f=Heaviside(t+1)-Heaviside(t-1); W1=2*pi*5;

N=500;k=0:N;W=k*W1/N; F=f*exp(-j*t'*W)*R; F=real(F);

W=[-fliplr(W),W(2:501)]; F=[fliplr(F),F(2:501)]; subplot(2,1,1);plot(t,f); xlabel('t');ylabel('f(t)'); title('f(t)=u(t+1)-u(t-1)'); subplot(2,1,2);plot(W,F); xlabel('w');ylabel('F(w)'); title('f(t)的付氏变换F(w)');

3.用MA TLAB 分析LTI 系统的频率特性

当系统的频率响应H (jw )是jw 的有理多项式时,有

11101

110

()(

)()()()()()()()M M M M N N N N b jw b jw b jw b B w H jw A w a jw a jw a jw a ----++++==++++L L

MATLAB 信号处理工具箱提供的freqs 函数可直接计算系统的频率响应的数值解。其调用格式如下

H=freqs(b,a,w)

其中,a 和b 分别是H(jw)的分母和分子多项式的系数向量,w 为形如w1:p:w2的向量,定义系统频率响应的频率范围,w1为频率起始值,w2为频率终止值,p 为频率取样间隔。H 返回w 所定义的频率点上,系统频率响应的样值。

例如,运行如下命令,计算0~2pi 频率范围内以间隔0.5取样的系统频率响应的样值 a=[1 2 1]; b=[0 1];

h=freqs(b,a,0:0.5:2*pi)

例 4-5 三阶归一化的butterworth 低通滤波器的频率响应为

32

1

()()2()2()1

H jw jw jw jw =

+++ 试画出该系统的幅度响应()H jw 和相位响应()?ω。

解 其MA TLAB 程序及响应的波形如下 w=0:0.025:5; b=[1];a=[1,2,2,1]; H=freqs(b,a,w); subplot(2,1,1);

plot(w,abs(H));grid; xlabel('\omega(rad/s)'); ylabel('|H(j\omega)|'); title('H(jw)的幅频特性'); subplot(2,1,2);

plot(w,angle (H));grid; xlabel('\omega(rad/s)'); ylabel('\phi(\omega)'); title('H(jw)的相频特性');

4.用MA TLAB 分析LTI 系统的输出响应

例 4-6已知一RC 电路如图所示 系统的输入电压为f(t),输出信号为电阻两端的电压y(t).当RC=0.04,f(t)=cos5t+cos100t, t -∞<<+∞ 试求该系统的响应y(t)

解 由图可知 ,该电路为一个微分电路,其频率响应为 ()11R jw

H jw R jwC jw RC

=

=

++ 由此可求出余弦信号0cos t ω通过LTI 系统的响应为

000()()c o s (())

y t H j w t ω?ω=+ 计算该系统响应的MATLAB 程序及响应波形如下

RC=0.04;

t=linspace(-2,2,1024); w1=5;w2=100;

H1=j*w1/(j*w1+1/RC); H2=j*w2/(j*w2+1/RC); f=cos(5*t)+cos(100*t);

y=abs(H1)*cos(w1*t+angle(H1))+ abs(H2)*cos(w2*t+angle(H2)); subplot(2,1,1); plot(t,f); ylabel('f(t)'); xlabel('Time(s)'); subplot(2,1,2); plot(t,y); ylabel('y(t)'); xlabel('Time(s)'); 三、 上机实验内容

1. 调试实验原理中所述的相关程序;

2.试用MA TLAB 求单边指数数信号()()at

f t e u t -=的傅立叶变换,并画出其波形;

3.设2

1

()0.08()0.41

H jw jw jw =

++,试用MA TLAB 画出该系统的幅频特性()H jw 和相频特性()?ω,并分析系统具有什么滤波特性。

实验四 信号抽样与恢复

(设计型)

一、实验目的

学会用MA TLAB 实现连续信号的采样和重建 二、实验原理 1.抽样定理

若)(t f 是带限信号,带宽为m ω, )(t f 经采样后的频谱)(ωs F 就是将)(t f 的频谱

)(ωF 在频率轴上以采样频率s ω为间隔进行周期延拓。因此,当s ω≥m ω时,不会发生频

率混叠;而当 s ω

2.信号重建

经采样后得到信号)(t f s 经理想低通)(t h 则可得到重建信号)(t f ,即:

)(t f =)(t f s *)(t h

其中:)(t f s =)

(t f ∑∞∞

--)(s

nT t δ=∑∞

--)()(s

s

nT t nT f δ

)()(t Sa T t h c c

s ωπ

ω=

所以:

)(t f =)(t f s *)(t h =∑∞

--)()(s s nT t nT f δ*)(t Sa T c c

s

ωπ

ω =π

ω

c

s T ∑∞

--)]([)(s

c

s

nT t Sa nT f ω

上式表明,连续信号可以展开成抽样函数的无穷级数。

利用MA TLAB 中的t t t c ππ)

sin()(sin =

来表示)(t Sa ,有 )(sin )(π

t c t Sa =,所以可以得到在MA TLAB 中信号由)(s nT f 重建)(t f 的表达式如下:

)(t f =π

ω

c

s T ∑∞

--)]([sin )(s c

s nT t c nT f πω 我们选取信号)(t f =)(t Sa 作为被采样信号,当采样频率s ω=2m ω时,称为临界采样。

我们取理想低通的截止频率c ω=m ω。下面程序实现对信号)(t f =)(t Sa 的采样及由该采样信号恢复重建)(t Sa :

例5-1 Sa(t)的临界采样及信号重构;

wm=1; %信号带宽

wc=wm; %滤波器截止频率 Ts=pi/wm; %采样间隔

ws=2*pi/Ts; %采样角频率 n=-100:100; %时域采样电数 nTs=n*Ts %时域采样点 f=sinc(nTs/pi);

Dt=0.005;t=-15:Dt:15;

fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t)))); %信号重构 t1=-15:0.5:15; f1=sinc(t1/pi); subplot(211); stem(t1,f1); xlabel('kTs'); ylabel('f(kTs)');

title('sa(t)=sinc(t/pi)的临界采样信号'); subplot(212); plot(t,fa) xlabel('t'); ylabel('fa(t)');

title('由sa(t)=sinc(t/pi)的临界采样信号重构sa(t)'); grid;

例5-2 Sa(t)的过采样及信号重构和绝对误差分析

程序和例4-1类似,将采样间隔改成Ts=0.7*pi/wm , 滤波器截止频率该成wc=1.1*wm , 添加一个误差函数 wm=1;

wc=1.1*wm; Ts=0.7*pi/wm; ws=2*pi/Ts; n=-100:100; nTs=n*Ts

f=sinc(nTs/pi);

Dt=0.005;t=-15:Dt:15;

fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t)))); error=abs(fa-sinc(t/pi)); %重构信号与原信号误差 t1=-15:0.5:15; f1=sinc(t1/pi); subplot(311);

stem(t1,f1);

xlabel('kTs');

ylabel('f(kTs)');

title('sa(t)=sinc(t/pi)的采样信号');

subplot(312);

plot(t,fa)

xlabel('t');

ylabel('fa(t)');

title('由sa(t)=sinc(t/pi)的过采样信号重构sa(t)');

grid;

subplot(313);

plot(t,error);

xlabel('t');

ylabel('error(t)');

title('过采样信号与原信号的误差error(t)');

例5-3 Sa(t)的欠采样及信号重构和绝对误差分析

程序和例4-2类似,将采样间隔改成Ts=1.5*pi/wm , 滤波器截止频率该成wc=wm=1

三、上机实验内容

1.调试实验原理中所述的相关程序;

2.设f(t)=0.5*(1+cost)*(u(t+pi)-u(t-pi)) ,由于不是严格的频带有限信号,但其频谱大部分集中在[0,2]之间,带宽wm可根据一定的精度要求做一些近似。试根据以下两种情况用MATLAB实现由f(t)的抽样信号fs(t)重建f(t) 并求两者误差,分析两种情况下的结果。

(1) wm=2 , wc=1.2wm , Ts=1;

(2) wm=2 , wc=2 , Ts=2.5

实验五 信号与系统复频域(S 域和Z 域)分析

(设计型)

一、实验目的

1.学会用MATLAB 进行部分分式展开;

2.学会用MATLAB 分析LTI 系统的特性;

3.学会用MATLAB 进行Laplace 正、反变换。

4.学会用MATLAB 画离散系统零极点图;

5.学会用MATLAB 分析离散系统的频率特性;

二、实验原理及内容

1.用MA TLAB 进行部分分式展开

用MA TLAB 函数residue 可以得到复杂有理分式F(s)的部分分式展开式,其调用格式为 [],,(,)r p k residue num den =

其中,num,den 分别为F(s)的分子和分母多项式的系数向量,r 为部分分式的系数,p 为极点,k 为F(s)中整式部分的系数,若F(s)为有理真分式,则k 为零。

例6-1 用部分分式展开法求F(s)的反变换 32

2

()43s F s s s s

+=

++ 解:其MA TLAB 程序为 format rat; num=[1,2]; den=[1,4,3,0];

[r,p]=residue(num,den)

程序中format rat 是将结果数据以分数形式显示

F(s)可展开为 2

10.536()13

F s s s s --=++

++ 所以,F(s)的反变换为 321

1()()32

6t

t f t e e

u t --??

=--????

2.用MA TLAB 分析LTI 系统的特性

系统函数H (s )通常是一个有理分式,其分子和分母均为多项式。计算H (s )的零极点可以应用MA TLAB 中的roots 函数,求出分子和分母多项式的根,然后用plot 命令画图。

在MA TLAB 中还有一种更简便的方法画系统函数H (s )的零极点分布图,即用pzmap 函数画图。其调用格式为

pzmap(sys)

sys 表示LTI 系统的模型,要借助tf 函数获得,其调用格式为

sys=tf(b,a)

式中,b 和a 分别为系统函数H (s )的分子和分母多项式的系数向量。

如果已知系统函数H (s ),求系统的单位冲激响应h(t)和频率响应H ω(j )可以用以前介绍过的impulse 和freqs 函数。 例6-2 已知系统函数为 321

221

s s s +++H(s)=

试画出其零极点分布图,求系统的单位冲激响应h(t)和频率响应H ω(j ),并判断系统

是否稳定。

解:其MA TLAB 程序如下: num=[1]; den=[1,2,2,1]; sys=tf(num,den); figure(1);pzmap(sys); t=0:0.02:10;

h=impulse(num,den,t); figure(2);plot(t,h)

title('Impulse Response') [H,w]=freqs(num,den); figure(3);plot(w,abs(H)) xlabel('\omega')

title('Magnitude Response')

3.用MA TLAB 进行Laplace 正、反变换

MATLAB 的符号数学工具箱提供了计算Laplace 正、反变换的函数Laplace 和ilaplace,其调用格式为

()

()

F laplace f f ilaplace F ==

上述两式右端的f 和F 分别为时域表示式和s 域表示式的符号表示,可以应用函数sym 实现,其调用格式为

S=sym(A)

式中,A 为待分析表示式的字符串,S 为符号数字或变量。 例6-3 试分别用Laplace 和ilaplace 函数求 (1)()sin()()t

f t e at u t -=的Laplace 变换;

(2)2

2()1

s F s s =+的Laplace 反变换。

解:(1)其程序为

f=sym('exp(-t)*sin(a*t)'); F=laplace(f) 或

syms a t

F=laplace(exp(-t)*sin(a*t))

(2)其程序为

F=sym('s^2/(s^2+1)'); ft=ilaplace(F) 或 syms s

ft= ilaplace(s^2/(s^2+1)) 4.离散系统零极点图

离散系统可以用下述差分方程描述:

∑∑==-=-M

m m

N i i m k f b

i k y a 0

)()(

Z 变换后可得系统函数:N

N M

M z a z a a z b z b b z F z Y z H ----++++++=

=......)()()(110110 用MA TLAB 提供的root 函数可分别求零点和极点,调用格式是

p=[a0,a1…an],q=[b0,b1…bm,0,0…0], 补0使二者维数一样。画零极点图的方法有多种,可以用MA TLAB 函数[z,p,k]=tf2zp(b,a)和zplane(q,p),也可用plot 命令自编一函数ljdt.m,画图时调用。

function ljdt(A,B)

% The function to draw the pole-zero diagram for discrete system

p=roots(A); %求系统极点 q=roots(B); %求系统零点 p=p'; %将极点列向量转置为行向量 q=q'; %将零点列向量转置为行向量 x=max(abs([p q 1])); %确定纵坐标范围 x=x+0.1; y=x ; %确定横坐标范围 clf hold on

axis([-x x -y y]) %确定坐标轴显示范围 w=0:pi/300:2*pi ; t=exp(i*w); plot(t) %画单位园 axis('square') plot([-x x],[0 0]) %画横坐标轴 plot([0 0],[-y y]) %画纵坐标轴 text(0.1,x,'jIm[z]') text(y,1/10,'Re[z]')

plot(real(p),imag(p),'x') %画极点 plot(real(q),imag(q),'o') %画零点 title('pole-zero diagram for discrete system') %标注标题 hold off

例6-4 求系统函数零极点图1

31)(4

5+-+=z z z z H

信号与系统matlab实验及答案

产生离散衰减正弦序列()π0.8sin 4n x n n ?? = ??? , 010n ≤≤,并画出其波形图。 n=0:10; x=sin(pi/4*n).*0.8.^n; stem(n,x);xlabel( 'n' );ylabel( 'x(n)' ); 用MATLAB 生成信号()0sinc at t -, a 和0t 都是实数,410t -<<,画波形图。观察并分析a 和0t 的变化对波形的影响。 t=linspace(-4,7); a=1;

t0=2; y=sinc(a*t-t0); plot(t,y); t=linspace(-4,7); a=2; t0=2; y=sinc(a*t-t0); plot(t,y);

t=linspace(-4,7); a=1; t0=2; y=sinc(a*t-t0); plot(t,y);

三组对比可得a 越大最大值越小,t0越大图像对称轴越往右移 某频率为f 的正弦波可表示为()()cos 2πa x t ft =,对其进行等间隔抽样,得到的离散样值序列可表示为()()a t nT x n x t ==,其中T 称为抽样间隔,代表相邻样值间的时间间隔,1 s f T = 表示抽样频率,即单位时间内抽取样值的个数。抽样频率取40 Hz s f =,信号频率f 分别取5Hz, 10Hz, 20Hz 和30Hz 。请在同一张图中同时画出连续信号()a x t t 和序列()x n nT 的波形图,并观察和对比分析样值序列的变化。可能用到的函数为plot, stem, hold on 。 fs = 40; t = 0 : 1/fs : 1 ; % ?μ?ê·?±e?a5Hz,10Hz,20Hz,30Hz f1=5; xa = cos(2*pi*f1*t) ; subplot(1, 2, 1) ;

matlab信号与系统实验报告

实验一 基本信号的产生与运算 一、 实验目的 学习使用MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用MATLAB 产生下列连续信号并作图。 (1)51),1(2)(<<---=t t u t x (2)300),3 2sin()(3.0<<=-t t e t x t (3)1.01.0,3000cos 100cos )(<<-+=t t t t x (4)2000),8.0cos()1.0cos()(<<=t t t t x ππ 答:(1)、 >> t=-1:0.02:5; >> x=(t>1); >> plot(t,-2*x); >> axis([-1,5,-3,1]); >> title('杨婕婕 朱艺星'); >> xlabel('x(t)=-2u(t-1)'); (2)、 >> t=0:0.02:30; >> x=exp(-0.3*t).*sin(2/3*t); >> plot(t,x);

>> title('杨婕婕朱艺星'); >> xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)'); 因为原函数在t=15后x(t)取值接近于零,所以将横坐标改成0到15,看得更清晰 axis([0,15,-0.2,0.6]); (3)>> t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); >> title('杨婕婕朱艺星'); >>xlabel('x=cos(100*t)+cos(3000*t)'); 因为t的间隔取太大,以至于函数不够准确,缩小t的间隔: t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t); plot(t,x);title('杨婕婕') >> t=-0.1:0.0001:0.1; x=cos(100*t)+cos(3000*t); >> plot(t,x);title('杨婕婕朱艺星'); >> xlabel('x=cos(100*t)+cos(3000*t)');

信号(MATLAB)实验指导书

《信号与系统》实验指导书 张建奇骆崇编写 浙江工业大学之江学院信息工程分院 2012年2月

目录 实验一MATLAB的基本使用 (1) 一、实验目的 (1) 二、实验原理 (1) 三、实验内容与要求 (8) 四、实验报告 (9) 实验二时域波形的MATLAB实现 (10) 一、实验目的 (10) 二、预习要求 (10) 三、实验原理 (10) 四、实验内容与要求 (18) 五、实验报告 (19) 实验三用MATLAB对系统时域分析 (20) 一、实验目的 (20) 二、预习要求 (20) 三、实验原理 (20) 四、实验内容与要求 (29)

实验一MATLAB的基本使用 一、实验目的 1、了解和掌握MATLAB的基本操作 2、了解MATLAB的库函数 3、会用MATLAB进行简单的操作。 二、实验原理 1、界面操作 MATLAB是“MATrix LABoratory”的缩写(矩阵实验室),它是由美国Mathworks公司于1984年正式推出的一种科学计算软件,由于其强大的功能,在欧美的一些大学里MATLAB已经成为许多诸如数字信号处理、自动控制理论等高级教程的主要工具软件,同时也成为理工科学生,必须掌握的一项基本技能。 当需要运行程序时,只需选择桌面上(或开始)中的MATLAB6.5应用程序图标即可 通常情况下,MATLAB的工作环境主要由一下几个窗口组成: 命令窗口(Command Window)

工作区间浏览器(Workspace) 历史命令窗口(Command History) 图形窗口(Figure) 文本编辑窗口(Editor) 当前路径窗口(Current Directory) MATLAB的命令窗与命令操作 当用户使用命令窗口进行工作时,在命令窗口中可以直接输入相应的命令,系统将自动显示信息。 例如在命令输入提示符“>>”后输入指令: >>t=[1,2,3;4,5,6;7,8,9]; 按回车键(Enter)后,系统即可完成对变量t的赋值。 MATALB提供了非常方便的在线帮助命令(help),它可提供各个函数的用法指南,包括格式、参数说明、注意事项及相关函数等内容。 2、图形窗 MATLAB图形窗(Figure)主要用于显示用户所绘制的图形。 通常,只要执行了任意一种绘图命令,图形窗就会自动产生。

信号与系统 MATLAB实验报告

《信号与系统》MATLAB实验报告 院系:专业: 年级:班号: :学号: 实验时间: 实验地点:

实验一 连续时间信号的表示及可视化 实验题目: )()(t t f δ=;)()(t t f ε=;at e t f =)((分别取00<>a a 及); )()(t R t f =;)()(t Sa t f ω=;)2()(ft Sin t f π=(分别画出不同周期个数的波形)。 解题分析: 以上各类连续函数,先运用t = t1: p:t2的命令定义时间围向量,然后调用对应的函数,建立f 与t 的关系,最后调用plot ()函数绘制图像,并用axis ()函数限制其坐标围。 实验程序: (1))()(t t f δ= t=-1:0.01:3 %设定时间变量t 的围及步长 f=dirac(t) %调用冲激函数dirac () plot(t,f) %用plot 函数绘制连续函数 axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的围 (2))()(t t f ε= t=-1:0.01:3 %设定时间变量t 的围及步长 f=heaviside(t) %调用阶跃函数heaviside () plot(t,f) %用plot 函数绘制连续函数 title('f(t)=heaviside(t)') %用title 函数设置图形的名称 axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的围 (3)at e t f =)( a=1时:

t=-5:0.01:5 %设定时间变量t 的围及步长 f=exp(t) %调用指数函数exp () plot(t,f) %用plot 函数绘制连续函数 title('f=exp(t)') %用title 函数设置图形的名称 axis([-5,5,-1,100]) %用axis 函数规定横纵坐标的围 a=2时: t=-5:0.01:5 f=exp(2*t) % 调用指数函数exp () plot(t,f) title('f=exp(2*t)') axis([-5,5,-1,100]) a=-2时: t=-5:0.01:5 f=exp(-2*t) plot(t,f) title('f=exp(-2*t)') axis([-5,5,-1,100]) (4))()(t R t f = t=-5:0.01:5 f=rectpuls(t,2) % 用rectpuls(t,a)表示门函数,默认以零点为中心,宽度为a plot(t,f) title('f=R(t)') axis([-5 5 -0.5 1.5]) (5))()(t Sa t f ω= ω=1时: t=-20:0.01:20 f=sin(t)./t % 调用正弦函数sin (),并用sin (t )./t 实现抽 样函数 plot(t,f)

实验1 用MATLAB进行信号频谱分析(推荐文档)

实验1 用MATLAB 进行信号频谱分析 一、实验目的 ㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。 ㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。 ㈢ 观察离散时间信号频谱的特点。 二、实验原理 ㈠ 常用的离散时间信号 在 MATLAB 语言主要是研究离散信号的。常用的离散信号有: 1.单位取样序列 ???≠==000 1)(n n n δ 2.单位阶跃序列 ?? ?<≥=0 01 )(n n n u 3.实指数序列 R a n a n x n ∈?=;)( 4.复指数序列 n e n x n j ?=+)(0)(ωσ 5.正(余)弦序列 )c o s ()(0θω+=n n x n ? 6.周期序列 n N n x n x ?+=)()( ㈡ 离散信号的产生 离散信号的图形显示使用stem 指令。 在 MATLAB 中的信号处理工具箱中,主要提供的信号是离散信号。

由于MATLAB 对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3… 因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=[-3,-2,-1,0,l ,2,3,4,5]; x=[1,-l ,3,2,0,4,5,2,1]; 这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。 1.单位取样序列 ?? ?≠==δ0 001)(n n n 这一函数实现的方法有二: 方法一:可利用MATLAB 的zeros 函数。 x=zeros(1,N); %建立一个一行N 列的全零数组 x(1)=1; %对X (1)赋1 方法二:可借助于关系操作符实现 n=1:N; x=[n==1]; %n 等于1时逻辑关系式结果为真,x=1;n 不等于1时为假,x=0 如要产生 ?????≤<<=≤≤=-δ2 0210 100)(10)(n n n n n n n n n n n n 则可采用MATLAB 实现: n=n1:n2; x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;n ≠n0时为

(完整word版)信号与系统matlab实验

习题三 绘制典型信号及其频谱图 1.更改参数,调试程序,绘制单边指数信号的波形图和频谱图。观察参数a对信号波形 及其频谱的影响。 程序代码: close all; E=1;a=1; t=0:0.01:4; w=-30:0.01:30; f=E*exp(-a*t); F=1./(a+j*w); plot(t,f);xlabel('t');ylabel('f(t)'); figure; plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|';

E=1,a=1,波形图频谱图更改参数E=2,a=1;

更改参数a,对信号波形及其频谱的影响。(保持E=2)上图为a=1图像 a=2时

a=4时 随着a的增大,f(t)曲线变得越来越陡,更快的逼近0,而对于频谱图,随着a增大,图像渐渐向两边张开,峰值减小,陡度减小,图像整体变得更加平缓。 2.矩形脉冲信号 程序代码: close all; E=1;tao=1; t=-4:0.1:4; w=-30:0.1:30;

f=E*(t>-tao/2&tao/2)+0*(t<=-tao/2&t>=tao/2); F=(2*E./w).*sin(w*tao/2); plot(t,f);xlabel('t');ylabel('f(t)'); figure; plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|') ; figure; plot(w,20*log10(abs(F))); xlabel('\omega');ylabel('|F(\omega)| in dB'); figure; plot(w,angle(F));xlabel('\omega');ylabel('\phi(\omega )');

matlab信号与系统实验报告

实验一 基本信号的产生与运算 一、 实验目的 学习使用MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用MATLAB 产生下列连续信号并作图。 (1)51),1(2)(<<---=t t u t x (2)300),3 2 sin()(3.0<<=-t t e t x t (3)1.01.0,3000cos 100cos )(<<-+=t t t t x (4)2000),8.0cos()1.0cos()(<<=t t t t x ππ 答:(1)、 >> t=-1:0.02:5; >> x=(t>1); >> plot(t,-2*x); >> axis([-1,5,-3,1]); >> title('杨婕婕 朱艺星'); >> xlabel('x(t)=-2u(t-1)');

(2)、 >> t=0:0.02:30; >> x=exp(-0.3*t).*sin(2/3*t); >> plot(t,x); >> title('杨婕婕朱艺星'); >> xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)');

因为原函数在t=15后x(t)取值接近于零,所以将横坐标改成0到15,看得更清晰 axis([0,15,-0.2,0.6]);

(3)>> t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); >> title('杨婕婕朱艺星'); >>xlabel('x=cos(100*t)+cos(3000*t)'); 因为t的间隔取太大,以至于函数不够准确,缩小t的间隔:t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t); plot(t,x);title('杨婕婕')

MATLAB实验报告

实验一 名称:连续时间信号分析 姓名:王嘉琦 学号:201300800636 班级:通信二班 一、实验目的 (一)掌握使用Matlab 表示连续时间信号 1、学会运用Matlab 表示常用连续时间信号的方法 2、观察并熟悉常用信号的波形和特性 (二)掌握使用Matlab 进行连续时间信号的相关运算 1、学会运用Matlab 进行连续时间信号的时移、反褶和尺度变换 2、学会运用Matlab 进行连续时间信号微分、积分运算 3、学会运用Matlab 进行连续时间信号相加、相乘运算 4、学会运用Matlab 进行连续时间信号卷积运算 二、实验条件 Matlab 三、实验内容 1、利用Matlab 命令画出下列连续信号的波形图。 (1))4/3t (2cos π+ 代码: k=2;w=3;phi=pi/4; t=0:0.01:3; ft=k*cos(w*t+phi); plot(t,ft),grid on; axis([0,3,-2.2,2.2]) title('余弦信号')

(2) )t (u )e 2(t -- 代码: k=-1;a=-1; t=0:0.01:3; ft=2-k*exp(a*t); plot(t,ft),grid on axis([0,3,2,3]) title('指数信号')

(3))]2()(u )][t (cos 1[--+t u t π 代码: k=1;w=pi;phi=0; t=0:0.01:2; ft=1+k*cos(w*t+phi); plot(t,ft),grid on; axis([0,3,0,2]) title('余弦信号')

信号与系统MATLAB实验

2016-2017学年第一学期 信号与系统实验报告 班级: 姓名: 学号: 成绩: 指导教师:

实验一常见信号的MATLAB 表示及运算 一.实验目的 1.熟悉常见信号的意义、特性及波形 2.学会使用MATLAB 表示信号的方法并绘制信号波形 3. 掌握使用MATLAB 进行信号基本运算的指令 4. 熟悉用MATLAB 实现卷积积分的方法 二.实验原理 信号一般是随时间而变化的某些物理量。按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用()f t 和()f k 来表示。若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。MATLAB 强大的图形处理功能及符号运算功能,为实现信号的可视化及其时域分析提供了强有力的工具。 根据MATLAB 的数值计算功能和符号运算功能,在MATLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。在采用适当的MATLAB 语句表示出信号后,就可以利用MATLAB 中的绘图命令绘制出直观的信号波形了。下面分别介绍连续时间信号和离散时间信号的MATLAB 表示及其波形绘制方法。 1.连续时间信号 所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。从严格意义上讲,MATLAB 并不能处理连续信号。在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在MATLAB 中连续信号可用向量或符号运算功能来表示。 ⑴ 向量表示法 对于连续时间信号()f t ,可以用两个行向量f 和t 来表示,其中向量t 是用形如12::t t p t 的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。向量f 为连续信号()f t 在向量t 所定义的时间点上的样值。 说明:plot 是常用的绘制连续信号波形的函数。 严格说来,MATLAB 不能表示连续信号,所以,在用plot()命令绘制波形时,要对自变量t 进行取值,MATLAB 会分别计算对应点上的函数值,然后将各个数据点通过折线连接起来绘制图形,从而形成连续的曲线。因此,绘制的只是近似波形,而且,其精度取决于t 的取样间隔。t 的取样间隔越小,即点与点之间的距离越小,则近似程度越好,曲线越光滑。例如:图1-1是在取样间隔为p=0.5时绘制的波形,而图1-2是在取样间隔p=0.1时绘制的波形,两相对照,可以看出图1-2要比图1-1光滑得多。

信号与系统MATLAB实验总汇

实验一、MATLAB 编程基础及典型实例 一、实验目的 (1)熟悉MATLAB 软件平台的使用; (2)熟悉MATLAB 编程方法及常用语句; (3)掌握MATLAB 的可视化绘图技术; (4)结合《信号与系统》的特点,编程实现常用信号及其运算。 示例一:在两个信号进行加、减、相乘运算时,参于运算的两个向量要有相同的维数,并且它们的时间变量范围要相同,即要对齐。编制一个函数型m 文件,实现这个功能。function [f1_new,f2_new,n]=duiqi(f1,n1,f2,n2) a=min(min(n1),min(n2)); b=max(max(n1),max(n2)); n=a:b; f1_new=zeros(1,length(n)); f2_new=zeros(1,length(n)); tem1=find((n>=min(n1))&(n<=max(n1))==1); f1_new(tem1)=f1; tem2=find((n>=min(n2))&(n<=max(n2))==1); f2_new(tem2)=f2; 四、实验内容与步骤 (2)绘制信号x(t)=)3 2sin(2t e t ?的曲线,t 的范围在0~30s ,取样时间间隔为0.1s 。t=0:0.1:30; y=exp(-sqrt(2)*t).*sin(2*t/3); plot(t,y);

(3)在n=[-10:10]范围产生离散序列:?? ?≤≤?=Other n n n x ,033,2)(,并绘图。n=-10:1:10; z1=((n+3)>=0); z2=((n-3)>=0); x=2*n.*(z1-z2); stem(n,x);(4)编程实现如下图所示的波形。 t=-2:0.001:3; f1=((t>=-1)&(t<=1)); f2=((t>=-1)&(t<=2)); f=f1+f2; plot(t,f); axis([-2,3,0,3]);

基带信号眼图实验——matlab仿真

基带信号眼图实验——matlab 仿真

————————————————————————————————作者:————————————————————————————————日期: ?

数字基带信号的眼图实验——matla b仿真 一、实验目的 1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法; 2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ 基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度; 3、熟悉MATL AB 语言编程。 二、实验预习要求 1、复习《数字通信原理》第七章7.1节——奈奎斯特第一准则内容; 2、复习《数字通信原理》第七章7.2节——数字基带信号码型内容; 3、认真阅读本实验内容,熟悉实验步骤。 三、实验原理和电路说明 1、基带传输特性 基带系统的分析模型如图3-1所示,要获得良好的基带传输系统,就应该 () n s n a t nT δ-∑() H ω() n s n a h t nT -∑基带传输抽样判决 图3-1?基带系统的分析模型 抑制码间干扰。设输入的基带信号为()n s n a t nT δ-∑,s T 为基带信号的码元周期,则经过基 带传输系统后的输出码元为 ()n s n a h t nT -∑。其中 1 ()()2j t h t H e d ωωωπ +∞ -∞ = ? ?(3-1) 理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足: 10()0,s k h kT k =?=? ? , 为其他整数 ?? ?(3-2) 频域应满足:

信号与系统 MATLAB实验报告

《信号与系统》MATLAB 实验报告 院系: 专业: 年级: 班号: 姓名: 学号: 实验时间: 实验地点: 实验一 连续时间信号的表示及可视化 实验题目: )()(t t f δ=;)()(t t f ε=;at e t f =)((分别取00<>a a 及); )()(t R t f =;)()(t Sa t f ω=;)2()(ft Sin t f π=(分别画出不同周期个数的波形)。 解题分析: 以上各类连续函数,先运用t = t1: p:t2的命令定义时间范围向量,然后调用对应的函数,建立f 与t 的关系,最后调用plot ()函数绘制图像,并用axis ()函数限制其坐标范围。 实验程序: (1))()(t t f δ= t=-1:0.01:3 %设定时间变量t 的范围及步长 f=dirac(t) %调用冲激函数dirac () plot(t,f) %用plot 函数绘制连续函数 axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的范围 (2))()(t t f ε= t=-1:0.01:3 %设定时间变量t 的范围及步长 f=heaviside(t) %调用阶跃函数heaviside () plot(t,f) %用plot 函数绘制连续函数

title('f(t)=heaviside(t)') %用title 函数设置图形的名称 axis([-1,3,-0.5,1.5]) %用axis 函数规定横纵坐标的范围 (3)at e t f =)( a=1时: t=-5:0.01:5 %设定时间变量t 的范围及步长 f=exp(t) %调用指数函数exp () plot(t,f) %用plot 函数绘制连续函数 title('f=exp(t)') %用title 函数设置图形的名称 axis([-5,5,-1,100]) %用axis 函数规定横纵坐标的范围 a=2时: t=-5:0.01:5 f=exp(2*t) %调用指数函数exp () plot(t,f) title('f=exp(2*t)') axis([-5,5,-1,100]) a=-2时: t=-5:0.01:5 f=exp(-2*t) plot(t,f) title('f=exp(-2*t)') axis([-5,5,-1,100]) (4))()(t R t f = t=-5:0.01:5 f=rectpuls(t,2) %用rectpuls(t,a)表示门函数,默认以零点为中心,宽度为a plot(t,f) title('f=R(t)') axis([-5 5 -0.5 1.5]) (5))()(t Sa t f ω= ω=1时:

根据Matlab的信号与系统实验指导材料

基于Matlab 的信号与系统实验指导 实验一 连续时间信号在Matlab 中的表示 一、实验目的 1、学会运用Matlab 表示常用连续时间信号的方法 2、观察并熟悉这些信号的波形和特性 二、实验原理及实例分析 1、信号的定义与分类 2、如何表示连续信号? 连续信号的表示方法有两种;符号推理法和数值法。 从严格意义上讲,Matlab 数值计算的方法不能处理连续时间信号。然而,可利用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能被Matlab 处理,并且能较好地近似表示连续信号。 3、Matlab 提供了大量生成基本信号的函数。如: (1)指数信号:K*exp(a*t) (2)正弦信号:K*sin(w*t+phi)和K*cos(w*t+phi) (3)复指数信号:K*exp((a+i*b)*t) (4)抽样信号:sin(t*pi) 注意:在Matlab 中用与Sa(t)类似的sinc(t)函数表示,定义为:)t /()t (sin )t (sinc ππ= (5)矩形脉冲信号:rectpuls(t,width) (6)周期矩形脉冲信号:square(t,DUTY),其中DUTY 参数表示信号的占空比

DUTY%,即在一个周期脉冲宽度(正值部分)与脉冲周期的比值。占空比默认为0.5。 (7)三角波脉冲信号:tripuls(t, width, skew),其中skew 取值范围在-1~+1之间。 (8)周期三角波信号:sawtooth(t, width) (9)单位阶跃信号:y=(t>=0) 三、实验内容 1、验证实验内容 直流及上述9个信号 2、程序设计实验内容 (1)利用Matlab 命令画出下列连续信号的波形图。 (a ))4/3t (2cos π+ (b ) )t (u )e 2(t -- (c ))]2()(u )][t (cos 1[--+t u t π (2)利用Matlab 命令画出复信号) 4/t (j 2e )t (f π+=的实部、虚部、模和辐角。 四、实验报告要求 1、格式:实验名称、实验目的、实验原理、实验环境、实验内容、实验思考等 2、实验内容:程序设计实验部分源代码及运行结果图示。

实验一----信号的MATLAB表示及信号的运算

实验一----信号的MATLAB表示及信号的运算

信号的MATLAB表示及信号的运算 一、实验目的 1.掌握的MATLAB使用; 2.掌握MATLAB生成信号的波形; 3.掌握MATLAB分析常用连续信号; 4.掌握信号的运算的MATLAB实现。 二、实验工具 1.台式电脑一台; 2.MATLAB7.1软件环境; 三、实验内容 编写程序实现下列常用函数,并显示波形。 1.正弦函数 f(t)=Ksin(wt+a); 2.矩形脉冲函数f(t)=u(t)-u(t-t0); 3.抽样函数 sa(t)=sint/t; 4.单边指数函数 f(t)=Ke-t; 5.已知信号f1(t)=u(t+2)-u(t-2), f2(t)=cos(2pt),用MATLAB绘制f1t)+f2(t)和f1(t)*f2(t)的波形。

四、实验要求 预习信号的时域运算和时域变换(相加、相乘、移位、反折、尺度变化、例项)相关知识。 五、实验原理 在某一时间区间内,除若干个不连续的点外,如果任意时刻都可以给出确定的函数值,则称信号为连续时间信号,简称为连续信号。MATLAB提供了大量生成基本信号的函数,所以可利用连续信号在等时间间隔点的取值来近似表示连续信号,这些离散的数值能被MATLAB处理,并显示出来。 六、实验步骤 1.打开MATLAB7.1软件,并在老师的指导和带领下逐步熟悉此软件; 2.编写正弦函数程序: clear all; t=-8:.01:8; k=2;w=1;a=pi/4; f=k*sin(w*t+a); plot(t,f);

grid; xlabel('t'); ylabel('f(t)'); axis([-8 8 -3 3]); 3.编写矩形脉冲信号函数程序: clear all; t=-4:0.001:4; T=1; f1=rectpuls(t,4*T); f2=cos(2*pi*t); plot(t,f2+f1); axis([-4 4 -1.5 2.5]); grid on; figure plot(t,f2.*f1); axis([-4 4 -1.5 1.5]); grid on;

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2:

信号与系统实验(MATLAB版) (1)

《信号与系统MATLAB实现》实验指导书 电气信息工程学院 2014年2月

长期以来,《信号与系统》课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是由于本课程数学公式推导较多,概念抽象,常需画各种波形,作题时难免花费很多时间,现在,我们给同学们介绍一种国际上公认的优秀科技应用软件MA TLAB,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。 MATLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MATLAB 再多了解一些。 MATLAB究竟有那些特点呢? 1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来; 2.完备的图形处理功能,实现计算结果和编程的可视化; 3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握; 4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具; MATLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。正是基于这些背景,我们编写了这本《信号与系统及MATLAB实现》指导书,内容包括信号的MA TLAB表示、基本运算、系统的时域分析、频域分析、S域分析、状态变量分析等。通过这些练习,同学们在学习《信号与系统》的同时,掌握MATLAB的基本应用,学会应用MATLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。另外同学们在进行实验时,最好事先预习一些MATLAB的有关知识,以便更好地完成实验,同时实验中也可利用MATLAB的help命令了解具体语句以及指令的使用方法。

数字信号处理实验报告MATLAB

1文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

2文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持. 00.2 0.4 0.6 0.8 1 1.2 1.4 再在命令窗口输入:[y,n] = segshift(x,n,n0);n=0:5;n0=3;stem(n,y)按ENTER 键出图如下图1。 2. 在命令窗口输入: m = -fliplr(n); m1 = min([m,n]); m2 = max([m,n]); m = m1:m2; x1 =[ zeros(1,(length(m)-length(n))),x]; xe = 0.5*(x1 + fliplr(x1)) xo = 0.5*(x1 - fliplr(x1)) subplot(1,2,1),stem(m,xe), ylabel(xe), subplot(1,2,2),stem(m,xo), ylabel(xo), 得下图二, 图 二 图 一 3.将如下文件另存为: sigadd.m 文件 function [y,n] = sigadd(x1,n1,x2,n2) % 实现 y(n) = x1(n)+x2(n) % ----------------------------- % [y,n] = sigadd(x1,n1,x2,n2) % y = 在包含n1 和 n2 的n 点上求序列和, % x1 = 在 n1上的第一序列 % x2 = 在 n2上的第二序列(n2可与 n1不等) n = min(min(n1),min(n2)):max(max(n1),max(n2)); % y(n)的长度 y1 = zeros(1,length(n)); y2 = y1; % 初始化 y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % 具有y 的长度的 x1 y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % 具有y 的长度的x2 y = y1+y2; 在命令窗口输入:x1=[1,0.5,0.3,0.4];n1=-1:2;x2=[0.2,0.3,0.4,0.5,0.8,1];n2=-2:3; [y,n] = sigadd(x1,n1,x2,n2) 得:y = 0.2000 1.3000 0.9000 0.8000 1.2000 1.0000 n = -2 -1 0 1 2 3 再在命令窗口输入:

信号matlab仿真实验复习

一. 生成一个基频为20Hz ,幅度为±1的周期方波信号; (1)试确定该信号的周期? (2)画出该信号5个周期内的波形;画出该信号的幅度频谱图; (3)该信号谱线间隔和频带宽度是多少,对它进行时域采样,采样频率Fs 至少为多少? (4)设计一个IIR/FIR 低通滤波器,滤去该周期信号中80Hz 以后的频率成分,要求通带截止频率80Hz ,阻带截止频率90Hz ,通带纹波小于3dB ,阻带衰减大于50dB ,用matlab 命令画出滤波器的频率响应,以及滤波后的信号波形和频谱。 答:1.周期为0.05秒; 3.谱线间隔为20Hz, 带宽为40Hz ,采样频率至少为80Hz 。 Fs=1000; N=256; % 时域/频率采样点 t=0:1/Fs:(N-1)/Fs; x=square(2*pi*20*t); %产生幅度为[-1,1],频率为20Hz 的方波 subplot(2,1,1) %方波绘图 plot(t,x); title('5个周期的矩形波') axis([0,0.1,-1.5,1.5]) T=0.05; %求方波的频谱 t1=0:1/Fs:(T-1/Fs); xn=square(2*pi*20*t1); Xk=fft(xn,N); Xk=fftshift(abs(Xk)); Xkl=Xk/N; subplot(2,1,2) plot(Fs/N*[0:1:N-1],Xkl) title('方波信号的频谱') [n,Wn]=buttord(80/500,90/500,3,50); %确定butterworth 滤波器的阶次 butterworth 低通滤波 %器:通带截止频率80Hz ,阻带截止频率90Hz ,通带纹波小于3dB ,阻带衰减大于50dB , %以上参数可以变化 [b,a]=butter(n,Wn); %确定滤波器传递函数 y=filter(b,a,x); %滤波 figure %滤波器频率特性 freqs(b,a); title('低通滤波器频率特性') ; figure subplot(2,1,1) plot(t,y) ;title('矩形波通过低通滤波器后的波形') ;axis([0,0.1,-1.5,1.5]) subplot(2,1,2) N=512; %可适当增减 fy=fftshift(fft(y,N)); %矩形波通过低通滤波器后的频谱 f=(-N/2:(N/2-1))*2; f=f*Fs/N; plot(f,abs(fy)/N) ;title('矩形波通过低通滤波器后的频谱') 二.设有连续信号()cos(240)f t t π=??, (1)利用DFT 计算该连续时间信号的频谱,采样频率至少应取多少?80HZ (2)以采样频率Hz F s 1000=对信号)(t f 采样得)(t f a ,请画出两个周期内的离散 信号)(t f a 的波形;[要求横

信号与系统MATLAB实验报告

实验报告 实验课程:信号与系统—Matlab综合实验学生姓名: 学号: 专业班级: 2012年5月20日

基本编程与simulink仿真实验 1—1编写函数(function)∑=m n k n 1并调用地址求和∑∑∑===++100 11-8015012 n n n n n n 。实验程序: Function sum=qiuhe(m,k)Sum=0For i=1:m Sum=sum+i^k End 实验结果; qiuhe(50,2)+qiuhe(80,1)+qiuhe(100,-1) ans=4.6170e+004。 1-2试利用两种方式求解微分方程响应 (1)用simulink对下列微分方程进行系统仿真并得到输出波形。(2)编程求解(转移函数tf)利用plot函数画图,比较simulink图和plot图。)()(4)(6)(5)(d 22t e t e d d t r t r d d t r d t t t +=++在e(t)分别取u(t)、S(t)和sin(20пt)时的情况! 试验过程 (1)

(2) a=[1,5,6]; b=[4,1]; sys=tf(b,a); t=[0:0.1:10]; step(sys)

连续时间系统的时域分析3-1、已知某系统的微分方程:)()()()()(d 2t e t e d t r t r d t r t t t +=++分别用两种方法计算其冲激响应和阶跃响应,对比理论结果进行验证。 实验程序: a=[1,1,1];b=[1,1];sys=tf(b,a);t=[0:0.01:10];figure;subplot(2,2,1);step(sys);subplot(2,2,2);x_step=zeros(size(t));x_step(t>0)=1;x_step(t==0)=1/2;lsim(sys,x_step,t);subplot(2,2,3);impulse(sys,t);title('Impulse Response');xlabel('Time(sec)');ylabel('Amplitude');subplot(2,2,4);x_delta=zeros(size(t));x_delta(t==0)=100;[y1,t]=lsim(sys,x_delta,t);y2=y1;plot(t,y2);title('Impulse Response');

相关文档
相关文档 最新文档