如何使用Matlab创建脉冲序列



我有一个脉冲形状,它是t的函数,叫它h(t),它的形式是:

h = @(t) function of t

我想创建一个由N个脉冲h(t)组成的脉冲序列。我这样做了:

for n=0:N-1
comb = comb + h(t - n);
end

然而,一旦我这样做了,我就不能在火车上改变了。我怎样才能使这个序列成为t的函数呢?谢谢。

您只需要使comb也成为一个匿名函数。你可以将它初始化为一些简单的函数(即它总是输出0),然后反复修改它。因为在匿名函数声明之前声明的变量,包括匿名函数,都是"冻结"的;对于那个点的定义,这将工作。

h = @(t) _______ % some function of 't'
comb = @(t) 0;
for n = 0:N-1
comb = @(t) comb(t) + h(t - n);
end

我们可以用h = @(t) sin(t)N=3来测试:

>> comb(pi/2)
ans = 1.1242
>> h(pi/2) + h(pi/2-1) + h(pi/2-2)
ans = 1.1242

注意,仅仅显示comb可能会有一点误导,因为关于递归定义的信息在一定程度上丢失了

disp(comb)
@(t)comb(t)+h(t-n)