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

C++ Matlab:如何在不重新计算信号的情况下重新使用相应的振幅?,c++,matlab,signals,C++,Matlab,Signals,伙计们 我需要你的帮助 Matlab:在Matlab上绘制此连续时间信号 定义并绘制以下连续时间信号。并选择与此信号相关的时间间隔 2.对于上述信号x(t),通过重用问题#1中定义的相应振幅检测器并定义适当的时间向量,定义y(t)=1+2x(-2t+3)。在同一个图上绘制x(t)和y(t)。。请注意,不允许您重新计算信号,您必须使用有关移位、缩放等的知识(提示:fliplr()或flipud()) 问题#2真的阻止了我继续,我如何在不重新计算信号的情况下得到y(t)=1+2x(-2t+3)?我

伙计们

我需要你的帮助

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

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

    请给我一个帮助,谢谢

    plot((t+3)/2,1+2*fliplr(y),'k')
    
    您已经拥有的
    1+2*y
    。您需要使用
    fliplr
    来执行
    x(-t)
    而不是
    x(t)
    。然后,您需要反转t上的关系:
    x(2t)
    将以比
    x(t)
    快两倍的速度“移动”,因此,如果您绘制相同的数据,它必须以两倍更小的间隔绘制,因此
    /2