MATLAB基础及基本信号产生
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二基于MATLAB的信号表示与运算
一、实训目的
1.掌握用Matlab软件产生基本信号(连续/离散的正弦、方波、锯齿波、Sinc 函数)的方法
2.应用Matlab软件实现信号的加、减、乘、除运算
3.应用Matlab软件实现信号的时移、反折、尺度变换
二、实训仪器与设备
电脑、MATLAB软件
三、实训内容
1.产生常见信号的函数如表1 所示。
表1
a、产生正弦波
t=(0:0.001:50);
y=sin(2*pi*50*t); plot(t(1:50),y(1:50))
b、产生叠加随机噪声的正弦波
t=(0:0.001:50);
y=sin(2*pi*50*t);
s=y+randn(size(t));
plot(t(1:50),s(1:50))
2.连续信号的运算
(1)相加
连续信号的相加,是指两信号的对应时刻值相加,即f(t)= f1(t)+f2(t)。
下面用MATLAB的符号运算命令来表示两连续信号的相加,然后用ezplot 命令绘制出其结果波形图。其中f1,f2是两个用符号表达式表示的连续信号,s为相加得到的和信号的符号表达式。
s=symadd(f1,f2)或s=f1+f2
ezplot(s)
(2)相乘
连续信号的相乘,是指两信号的对应时刻值相乘,即f(t)= f1(t)*f2(t)。
与相加运算类似,我们用下面的MATLAB命令来实现连续信号的相乘及其结果的可视化,其中f1,f2为两个用符号表达式表示的信号,w为相乘得到的积信号的符号表达式。
w=symmul(f1,f2) 或w=f1*f2
ezplot(w)
(3)移位
连续信号的移位也称平移。对于连续信号f(t),若有常数t0>0,延时信号f(t-t0)是将原信号沿正t轴方向平移时间,而f(t+t0)是将原信号沿负t轴方向移动时间t0。我们可用下面的命令来实现连续信号的平移及其结果的可视化,其中f 是用符号表达式表示的连续时间信号,t 是符号变量,subs命令则将连续信号中的时间变量t用t-t0替换:
y=subs(f,t,t-t0);
ezplot(y)
(4)反折
连续信号的反折,是指将信号以纵坐标为轴反折,即将信号f (t)中的自变量t换为- t。与连续信号的平移类似,我们用下面的命令实现连续信号的反折及其结果的可视化,其中f是用符号表达式表示的连续时间信号,t是符号变量:
y=subs(f,t,-t)
ezplot(y)
(5)尺度变换
连续信号的尺度变换,是指将信号的横坐标进行展宽或压缩变换,即将信号f (t)中的自变量t换为at ,当a >1时,信号f (at)以原点为基准,沿横轴压缩到原来的1/ a;当0 < a <1时,信号f (at)将沿横轴展宽至原来的1/ a倍。我们用下面的命令来实现连续信号的尺度变换及其结果的可视化,其中f是用符号表达式表示的连续时间信号,t是符号变量:
y=subs(f,t,a*t)
ezplot(y)
(6)倒相
连续信号的倒相,是指将信号f (t)以横轴为对称轴对折得到- f (t),可用下面的命令实现连续信号的倒相及其结果的可视化, 其中f是用符号表达式表示的连续时间信号。
y=-f
ezplot(y)
注意:两个信号相加,其和信号在任意时刻的信号值等于两信号在该时刻的信号值之和。两个信号相乘,其积信号在任意时刻的信号值等于两信号在该时刻的信号值之积。在Matlab中,矩阵和数组的加减法用符合“+”、“-”实现。矩阵的乘法用“*”实现,要求相乘的矩阵要有相邻公共维。数组的乘除法是指两同维数组间对应元素之间的乘除法,运算符为“.*”、“./”或“.\”。
对于以上的命令,可在画图命令之后加入坐标轴的调整等命令,以使画出的图形更清晰、直观。
下面举例说明如何用MATLAB来实现连续信号的时域运算、变换及其结果的可视化。
例如:
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');
用matlab的符号函数实现信号的时移、反折、尺度变换:由f(t)到
f(-at+b)(a>0)步骤:
调用函数:subs(S,OLD,NEW) 表示用NEW中的符合变量替换表达式S中的OLD的符合变量。
例:已知f(t)=sin(t)/t,试通过反褶、移位、尺度变换由f(t)的波形得到f(-2t+3)的波形。
syms t;
f=sym('sin(t)/t'); %定义符号函数f(t)=sin(t)/t
f1=subs(f,t,t+3); %对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)