Matlab:如何在不重新计算信号的情况下重新使用相应的幅度?

Matlab: How to re-using the corresponding amplitude without re-compute the signal?

伙计们,

我需要你的帮助!

Matlab:在 Matlab 上绘制此连续时间信号。

  1. 定义并绘制以下连续时间信号。并选择与该信号相关的时间间隔。

2.For 上面的信号 x(t),通过重新使用问题 #1 中定义的相应振幅矢量并定义适当的时间矢量来定义 y(t) =1+2x(-2t+3) .在同一张图上绘制 x(t) 和 y(t)。请注意,您不能重新计算信号,您必须使用有关移位、缩放等的知识。(提示:fliplr() 或 flipud() ).

问题 #2 真的让我无法继续,我怎样才能在不重新计算信号的情况下得到 y(t) =1+2x(-2t+3)?我知道如何使用重新计算信号让它工作,但它要求我不要重新计算信号。下面是我的代码:

 figure;
 t = -5:0.01:5;
 y = exp(-t).* heaviside(t) + (exp(-t) .* (exp((2*t)-4)-1) .* heaviside(t-2)) - (exp(t-4) .* heaviside(t-4));

 t2 = (-2*t) + 3;
 y2 = exp(-t2).* heaviside(t2) + (exp(-t2) .* (exp((2*t2)-4)-1) .* heaviside(t2-2)) - (exp(t2-4) .* heaviside(t2-4));
 y3 = 1 + (2*y2);

    plot(t,y,'g');
    hold on;
    plot(t,y3,'r')

并且我尝试在不使用以下代码重新计算信号的情况下使用编码:

figure;
clear all
t = -5:0.01:5;
y = exp(-t).* heaviside(t) + (exp(-t) .* (exp((2*t)-4)-1) .* heaviside(t-2)) - (exp(t-4) .* heaviside(t-4));
    plot(t,y,'g');
    hold on;

t2 = -t.* 2 + 3;
y2 =  1 + 2 * y;

    plot(t2,y2,'r');

没有重新计算信号的图形将大小增加2,并向左移动3,这与上面不同。所以,我认识到我的代码是错误的。另外,它说让我们需要使用fliplr()或flipud(),但我不知道在哪里使用这个功能。

请帮帮我,谢谢!

plot((t+3)/2,1+2*fliplr(y),'k')

您已经拥有的1+2*y。您需要 fliplr 来执行 x(-t) 而不是 x(t)。然后你需要反转 t 上的关系:x(2t) 将 "move" 比 x(t) 快两倍,所以如果你绘制相同的数据,它必须在更小的间隔上绘制两倍,因此 /2.