MATLAB: график случайного сигнала - PullRequest
0 голосов
/ 15 февраля 2012

Моя задача - построить абсолютно случайный сигнал.

Это мой прогресс на данный момент:

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 ]

3 голосов
/ 15 февраля 2012

Если вы хотите, чтобы ваш сигнал был от -5 до 5,

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

Как правило, для случайного сигнала между a и b используйте

a + (b-a)*rand(1,length);
2 голосов
/ 15 февраля 2012
  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, как показано ниже:

    shifttedCenteredSig = (10 * rand (1, sig_length)) - масштабируется на 5% и сдвигается от -5 до 5

Этот шаблон / рецепт можно увидеть в примерах в документации: 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')
...