在 MATLAB 中生成矩形脉冲

Generate a Rectangular Pulse in MATLAB

我需要创建一个 width = 7 和范围 (-T/2, T/2) 的矩形脉冲,其中 T 59 毫秒。

我写了这段代码,但我不确定它是否正确。

w = 7;
T = 59;
t = -T/2:1:T/2;

rect = rectpuls(t, w);
plot(t, rect);

此代码生成一个矩形脉冲,但我不确定它是否正确。另外,我不太确定 t = -T/2:1:T/2; 是什么意思。我的意思是范围是从 -29.5 到 29.5,步长为 1。当我将其设置为 0.10.01 时,我的脉搏更好。为什么这会影响我的输出?

请注意,我要做的第二件事是创建一个周期性的时钟脉冲序列。我不知道这是否会影响我必须实现初始矩形脉冲的方式。

当您增加数值函数(例如 Matlab rectpuls)在其连续离散化过程中使用的增量数时,您将得到的结果是所述函数的准确性将会提高,以增加计算成本为代价(在这种情况下,可以忽略不计)。当您离散化使用较小的 time-steps,从 10.1 再到 0.01.

时,您正是这样做的

要创建相同矩形脉冲的周期序列,您可以在循环中调用该函数:

w = 7;
T = 59;
t = -T/2:1:T/2;
t_size = size(t);
N = 10;
rect = zeros(N, t_size(2));
interval = 20;

figure
plot(t, rectpuls(t, w));
xlim([-20 (N + 1)*interval]);
ylim([0 1.1]);
hold on
for i = 1:N
    t = (-T/2 + i*interval): 1 :(T/2 + i*interval);
    rect(i,:) = rectpuls(t - i * interval, w);
    plot(t, rect(i,:));
    hold on
end

以上应该在 interval * (N + 1) = 220 ms.

的时间长度内每隔 interval = 20 ms 生成相同的矩形脉冲