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

时间:2015-02-13 03:46:49

标签: c++ matlab signals

各位,

我需要你的帮助!

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

enter image description here

  1. 定义并绘制以下连续时间信号。并选择与此信号相关的时间间隔。
  2. 2.对于上面的信号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(),但我不知道在哪里使用这个函数。

    请给我一个帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

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

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