MATLAB基础及基本信号产生

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档