MATLAB:绘制随机信号

时间:2012-02-15 16:11:02

标签: matlab random plot signals

我的任务是绘制一个完全随机的信号。

这是我目前的进展:

sig_length = 200; % this task is part of a three plot figure so ignore the subplot part
subplot(2,2,1)
hold on
sig = rand(1,sig_length);
plot(1:sig_length,sig)
axis tight
title('Signal')

我的问题是我希望y轴的间隔为-5到5.我该如何实现?提前谢谢。

2 个答案:

答案 0 :(得分:3)

如果您希望信号从-5变为5,

sig = -5 + 10*rand(1,sig_length);

一般情况下,对于ab之间的随机信号,请使用

a + (b-a)*rand(1,length);

答案 1 :(得分:2)

  1. 要设置轴,请使用axis([xmin xmax ymin ymax])找到更多文档http://www.mathworks.com/help/techdoc/ref/axis.html

  2. 为了创建一个以0为中心的信号,在开放区间-5到5上均匀分布,必须首先将rand缩放10倍(rand在开放区间产生值( 0,1),你需要范围(-5,5)上的值,并将其向上移动5,如下所示:

    shiftedCenteredSig =(10 * rand(1,sig_length)) - 5%缩放并转移到-5到5

  3. 此模式/配方可在文档中的示例中看到:http://www.mathworks.com/help/techdoc/ref/rand.html

      

    示例示例1从统一分布生成值   区间[a,b]:

         

    r = a +(b-a)。* rand(100,1);

    最终代码如下所示:

    sig_length = 200; % this task is part of a three plot figure so ignore the subplot part
    subplot(2,2,1)
    hold on
    %sig = rand(1,sig_length); %note this is a uniform distribution on interval 0,1
    sig = (10*rand(1,sig_length)) - 5 %scaled and shifted to be from -5 to 5
    plot(1:sig_length,sig)
    axis([1,sig_length,-5,5])
    title('Signal')