Matlab:如何在不重新计算信号的情况下重新使用相应的幅度?
Matlab: How to re-using the corresponding amplitude without re-compute the signal?
伙计们,
我需要你的帮助!
Matlab:在 Matlab 上绘制此连续时间信号。
- 定义并绘制以下连续时间信号。并选择与该信号相关的时间间隔。
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
.
伙计们,
我需要你的帮助!
Matlab:在 Matlab 上绘制此连续时间信号。
- 定义并绘制以下连续时间信号。并选择与该信号相关的时间间隔。
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
.