实验1 时域连续信号的表示及运算
一、 实验目的
1.掌握常用时域连续信号的MA TLAB 表示方法。
2.掌握连续信号的基本运算,包括信号相加与相乘、微分与积分、平移、反转、尺度变换、奇偶分解、卷积积分等。
二、 实验原理及方法
MATLAB 利用连续信号在等时间间隔点的采样值来近似表示连续信号。 1. 常用连续信号的MA TLAB 表示
(1) 单位阶跃信号u (t ) ,MA TLAB 中用Heaviside 表示,如图1-1所示;
MATLAB 源程序:
t=sym('t' )
y=heaviside(t); ezplot(y,[-1 1]); grid on
axis([-1 1 -0.1 1.1]);
或者
function f=u(t) %自定义阶跃函数
f=(t>=0);
(2) 单位冲激信号 (t ) ,MA TLAB 中用Dirac 表示,如图1-2所示;
MATLAB 源程序: t=-1:0.01:1; t=sym('t' ) y=dirac(t); ezplot(y,t); grid on
t
图1-1 单位阶跃信号
图1-2 单位冲激信号
(3) 符号函数sgn(t ) ,MA TLAB 中用Sign 表示,如图1-3所示;
MATLAB 源程序: t=-1:0.01:1; y=sign(t); plot(t,y); grid on
axis([-1 1 -1.1 1.1]);
t
图1-3 符号函数
(4) 取样信号Sa (t ) ,如图1-4所示;
MATLAB 源程序: t=-10*pi:0.1:10*pi; y= sinc(t/pi); plot(t,y); grid on
axis([-10 10 -0.3 1.1]);
t
图1-4 取样信号
(5) 常用连续信号及其MATLAB 表示如表1-1所示。 表1-1 常用连续信号及其MA TLAB 函数
2. 连续信号的基本运算
(1) 信号的微分与积分
对于连续时间信号,其微分运算是用diff 函数来完成的。
diff (function,’variable’,n):function 表示需要进行求导运算的信号,或者被赋值的符号表
达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。
连续信号的积分运算用int 函数来完成。
int (function,’variable’,a,b):function 表示被积信号,或者被赋值的符号表达式;variable 为积分变量;a,b 为积分上、下限;a 和b 默认时求不定积分。 例题:
MATLAB 源程序:%信号的微分
syms t f2;
f2=t*(heaviside(t)-heaviside(t-1))+heaviside(t-1); f=diff(f2,'t' ,1); t=-1:0.01:2; ezplot(f,t) grid on
heaviside(t)-heaviside(t-1)+t*(dirac(t)-t
图1-7 信号的微分
MATLAB 源程序:%信号的积分 syms t f1;
f1=heaviside(t)-heaviside(t-1); f=int(f1,'t' ); t=-1:0.01:2; ezplot(f,t) grid on
t
图1-8 信号的积分
(2) 卷积积分
连续信号的卷积积分定义为:
f (t ) =f 1(t ) *f 2(t ) =⎰f 1(τ) f 2(t -τ) d τ
-∞
∞
MATLAB 进行卷积积分可以通过符号运算和数值计算两种方法实现。 1. 符号运算:int (),但要注意积分变量和积分限的选取。 2. 数值计算方法:conv ()函数近似地求解连续信号的卷积积分。 例题:计算f (t ) =f 1(t ) *f 2(t ) =[u (t ) -u (t -1)]*[u (t ) -u (t -1)]。
t*Heaviside(t )-2(t-1)*Heaviside(t-t
MATLAB 源程序:(符号运算方法) syms tao ;
t=sym('t' , 'positive' );
ft1=sym('heaviside(t)-heaviside(t-1)'); ft2=sym('heaviside(t)-heaviside(t-1)'); ft_tao=subs(ft1,t,tao)*subs(ft2,t,t-tao); ft=int(ft_tao,tao,0,t); ft=simplify(ft);
ezplot(ft,[0 2]);grid on
图1-14 卷积积分的符号运算结果
数值运算方法: t=-1:0.01:3; f1=u(t)-u(t-1); f=conv(f1,f1); tmin=-2;tmax=6; t1=tmin:0.01:tmax; plot(t1,f);grid on
function f=u(t) %自定义阶跃函数 f=(t>=0);
三、 实验内容
1. 利用函数square 产生幅值为±1的周期性方波,(1)周期为1s ,脉宽为0.5s ;(2)周期为1s ,脉宽为0.1s 。
2.利用函数sawtooth (1)产生幅值为±1的周期锯齿波,周期为1s ;(2)产生幅值为±1的周期正三角波,周期为1s 。
3. (1) 产生非周期单个矩形脉冲;(2)产生锯齿波脉冲串和矩形波脉冲串,脉宽为0.1s ,脉冲重复频率为3Hz ,采样频率为1kHz ,信号长度为1s 。
附函数说明:
(1)square :产生周期为2π,幅值为±1的方波信号 调用格式: x=square(t) X=square(t,duty)
其中,t 为时间向量,duty 为正幅值部分占周期的百分数。 (2)sawtooth:产生锯齿波或三角波 调用格式: x=sawtooth(t) x=sawtooth(t,width)
产生时间向量为t, 周期为2π,宽度为width 的三角波。Width 为0和1之间的数。Width=0.5时,产生标准正三角波。
(3)rectpuls:在采样点产生非周期单位高度的矩形信号 调用格式:x=rectpuls(t) X=rectpuls(t,w)
其中,t 为时间向量,w 为矩形脉宽。以t =0为中心产生宽度为w ,高度为1的矩形幸好。
(4) pulstran:产生脉冲串信号
调用格式: x=pulstran(t,d,’func ’,P1,P2)
其中,t 为时间向量,d 为脉冲串位置向量,P1,P2为脉冲有关参数设置,func 为脉冲函数类型,提供三种脉冲类型: gauspuls 高斯调制正弦脉冲 rectpuls 非周期矩形脉冲 tripuls 非周期三角形脉冲
四、 实验报告要求
1. 2.
编程实现实验内容,要求附上源程序。 总结实验中的主要结论,你的收获和体会。
3. 提交word 电子文档,文件命名格式:学号姓名实验1.doc
实验1 时域连续信号的表示及运算
一、 实验目的
1.掌握常用时域连续信号的MA TLAB 表示方法。
2.掌握连续信号的基本运算,包括信号相加与相乘、微分与积分、平移、反转、尺度变换、奇偶分解、卷积积分等。
二、 实验原理及方法
MATLAB 利用连续信号在等时间间隔点的采样值来近似表示连续信号。 1. 常用连续信号的MA TLAB 表示
(1) 单位阶跃信号u (t ) ,MA TLAB 中用Heaviside 表示,如图1-1所示;
MATLAB 源程序:
t=sym('t' )
y=heaviside(t); ezplot(y,[-1 1]); grid on
axis([-1 1 -0.1 1.1]);
或者
function f=u(t) %自定义阶跃函数
f=(t>=0);
(2) 单位冲激信号 (t ) ,MA TLAB 中用Dirac 表示,如图1-2所示;
MATLAB 源程序: t=-1:0.01:1; t=sym('t' ) y=dirac(t); ezplot(y,t); grid on
t
图1-1 单位阶跃信号
图1-2 单位冲激信号
(3) 符号函数sgn(t ) ,MA TLAB 中用Sign 表示,如图1-3所示;
MATLAB 源程序: t=-1:0.01:1; y=sign(t); plot(t,y); grid on
axis([-1 1 -1.1 1.1]);
t
图1-3 符号函数
(4) 取样信号Sa (t ) ,如图1-4所示;
MATLAB 源程序: t=-10*pi:0.1:10*pi; y= sinc(t/pi); plot(t,y); grid on
axis([-10 10 -0.3 1.1]);
t
图1-4 取样信号
(5) 常用连续信号及其MATLAB 表示如表1-1所示。 表1-1 常用连续信号及其MA TLAB 函数
2. 连续信号的基本运算
(1) 信号的微分与积分
对于连续时间信号,其微分运算是用diff 函数来完成的。
diff (function,’variable’,n):function 表示需要进行求导运算的信号,或者被赋值的符号表
达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。
连续信号的积分运算用int 函数来完成。
int (function,’variable’,a,b):function 表示被积信号,或者被赋值的符号表达式;variable 为积分变量;a,b 为积分上、下限;a 和b 默认时求不定积分。 例题:
MATLAB 源程序:%信号的微分
syms t f2;
f2=t*(heaviside(t)-heaviside(t-1))+heaviside(t-1); f=diff(f2,'t' ,1); t=-1:0.01:2; ezplot(f,t) grid on
heaviside(t)-heaviside(t-1)+t*(dirac(t)-t
图1-7 信号的微分
MATLAB 源程序:%信号的积分 syms t f1;
f1=heaviside(t)-heaviside(t-1); f=int(f1,'t' ); t=-1:0.01:2; ezplot(f,t) grid on
t
图1-8 信号的积分
(2) 卷积积分
连续信号的卷积积分定义为:
f (t ) =f 1(t ) *f 2(t ) =⎰f 1(τ) f 2(t -τ) d τ
-∞
∞
MATLAB 进行卷积积分可以通过符号运算和数值计算两种方法实现。 1. 符号运算:int (),但要注意积分变量和积分限的选取。 2. 数值计算方法:conv ()函数近似地求解连续信号的卷积积分。 例题:计算f (t ) =f 1(t ) *f 2(t ) =[u (t ) -u (t -1)]*[u (t ) -u (t -1)]。
t*Heaviside(t )-2(t-1)*Heaviside(t-t
MATLAB 源程序:(符号运算方法) syms tao ;
t=sym('t' , 'positive' );
ft1=sym('heaviside(t)-heaviside(t-1)'); ft2=sym('heaviside(t)-heaviside(t-1)'); ft_tao=subs(ft1,t,tao)*subs(ft2,t,t-tao); ft=int(ft_tao,tao,0,t); ft=simplify(ft);
ezplot(ft,[0 2]);grid on
图1-14 卷积积分的符号运算结果
数值运算方法: t=-1:0.01:3; f1=u(t)-u(t-1); f=conv(f1,f1); tmin=-2;tmax=6; t1=tmin:0.01:tmax; plot(t1,f);grid on
function f=u(t) %自定义阶跃函数 f=(t>=0);
三、 实验内容
1. 利用函数square 产生幅值为±1的周期性方波,(1)周期为1s ,脉宽为0.5s ;(2)周期为1s ,脉宽为0.1s 。
2.利用函数sawtooth (1)产生幅值为±1的周期锯齿波,周期为1s ;(2)产生幅值为±1的周期正三角波,周期为1s 。
3. (1) 产生非周期单个矩形脉冲;(2)产生锯齿波脉冲串和矩形波脉冲串,脉宽为0.1s ,脉冲重复频率为3Hz ,采样频率为1kHz ,信号长度为1s 。
附函数说明:
(1)square :产生周期为2π,幅值为±1的方波信号 调用格式: x=square(t) X=square(t,duty)
其中,t 为时间向量,duty 为正幅值部分占周期的百分数。 (2)sawtooth:产生锯齿波或三角波 调用格式: x=sawtooth(t) x=sawtooth(t,width)
产生时间向量为t, 周期为2π,宽度为width 的三角波。Width 为0和1之间的数。Width=0.5时,产生标准正三角波。
(3)rectpuls:在采样点产生非周期单位高度的矩形信号 调用格式:x=rectpuls(t) X=rectpuls(t,w)
其中,t 为时间向量,w 为矩形脉宽。以t =0为中心产生宽度为w ,高度为1的矩形幸好。
(4) pulstran:产生脉冲串信号
调用格式: x=pulstran(t,d,’func ’,P1,P2)
其中,t 为时间向量,d 为脉冲串位置向量,P1,P2为脉冲有关参数设置,func 为脉冲函数类型,提供三种脉冲类型: gauspuls 高斯调制正弦脉冲 rectpuls 非周期矩形脉冲 tripuls 非周期三角形脉冲
四、 实验报告要求
1. 2.
编程实现实验内容,要求附上源程序。 总结实验中的主要结论,你的收获和体会。
3. 提交word 电子文档,文件命名格式:学号姓名实验1.doc