常用信号的MATLAB表示

  • 格式:doc
  • 大小:55.00 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5 常用信号的MATLAB表示

5、1单位冲激函数、单位冲激序列

示例7:

t = -5:0、01:5;

y = (t==0);

subplot(121);

plot(t, y, 'r');

n = -5:5;

x = (n==0);

subplot(122);

stem(n, x);

图5

运行结果如图5所示。

程序说明:

(1)由n = -5:5得到一个1×11数组n;而在x = (n==0)中,n==0就是一个向量运算,即向量n中的每一个元素与0比较就是否相等,其比较结果0或1放在x中。这

样得到的向量x也就是1×11数组,且正好就就是单位冲激序列。

(2)在MATLAB中,任何向量x的下标就是从1开始的,不能取零或负值,而x(n)中的时间变量n则不此受限制。因此向量x的下标与时间变量n就是两个概念,如本例中向量x(n)的下标就是从1到11,而时间变量n就是从-5到5。所以必须用一个与向量x等长的定位时间变量n,以及向量x,才能完整地表示序列x(n)。在信号的表示与运算中,这一点请务必注意;只有当序列x(n)的时间变量正好就是从1开始时,才能省去时间变量n,因为此时向量的下标与时间变量相同。

(3)单位冲激函数的实现方法实际上与单位冲激序列就是完全相同的,都就是用序列表示。只不过表示连续时间信号的序列中两相邻元素所对应的时间间

隔更小,如本例中t的间隔为0、01,而表示离散时间信号的序列中两相邻元素所对应的时间间隔一般为1。

由于单位冲激序列在信号与系统中经常使用,我们专门编制一个函数文件delta、m,在后面的实验部分直接调用该函数即可产生需要的波形。

% delta、m

function [x, n] = delta(n1,n2,k)

% 产生冲激序列δ(n-k),其中n1<=n<=n 2, n1<=k<=n2

if nargin ~=3

disp('输入不正确,输入参数要有三个!');

return;

elseif ((kn2)|(n1>n2))

error('输入不正确,输入参数要应满足n1<=k<=n2!')

end

n = n1:n2;

x = ((n-k)==0);

5、2单位阶跃函数、单位阶跃序列

只要将前面冲激函数(示例7)中的关系运算“==”改为“>=”,就可得到单位阶跃函数、单位冲激序列,如图6所示。

图6

我们编制了函数文件stepseq、m来生成单位阶跃序列。

function [x, n] = stepseq(n1,n2,n0)

% 产生序列u(n-n0),其中n1<=n<=n 2, n1<=n0<=n2

if nargin ~=3

disp('输入不正确,输入参数要有三个!');

return;

elseif ((n0n2)|(n1>n2))

error('输入不正确,输入参数要应满足n1<=k<=n2!') end

n = n1:n2;

x = ((n-n0)>=0);

示例8:绘图表示

(1) 门函数;

(2) 序列。

t = -3 :0、05: 3;

z1 = ((t+1) >= 0);

z2 = ((t-1) >= 0);

g = z1 - z2; % 门函数

figure;

subplot(221)

plot(t,g,'r');

axis([-3 3 0 1、1])

x1 = stepseq(-5,10,-3); % 调用函数stepseq

x2 = stepseq(-5,10,5); % 调用函数stepseq

x = x1 - x2;

n = -5:10;

subplot(222)

stem(n,x);

axis([-5,10,0,1、1])

运行结果如图7所示。

图7

5、3其她典型的信号

1.实指数信号

其MATLAB实现为:n = n1: n2; x = a、^n;

1.复指数信号

其MATLAB实现为:n = n1: n2; x = exp(sigma+jw)*n;

1.正(余)弦信号

其MATLAB实现为:n = n1: n2; x = cos(w*n+sita)

5、4工具箱中的信号产生函数

利用MATLAB信号处理工具箱提供的一些函数,可以很方便地产生三角波、方波等函数波形。

1.周期性三角波或锯齿波函数sawtooth

调用格式为:x =sawtooth(t, width)

功能:产生一个周期为2π、幅度在-1到+1之间的周期性三角波信号。其中width 表示最大幅度出现的位置:即在一个周期内,信号从t=0到width×2π时函数值从-1到+1线性增加,而从width×2π到2π又就是从+1到-1线性下降。width取值在0 ~ 1之间。

若x =sawtooth(Ωt, width),则对应的周期为2π/Ω。

示例9:产生周期为0、2的三角波,width取值分别为0、1、0、5。

td = 1/100000; % td为时间间隔

t = 0 : td : 1;

x1 = sawtooth(2*pi*5*t,0);

x2 = sawtooth(2*pi*5*t,1);

x3 = sawtooth(2*pi*5*t,0、5);

subplot(311); plot(t,x1);

subplot(312); plot(t,x2);

subplot(313); plot(t,x3);

运行结果如图8所示。