Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / ОКМвТС лабы / Источники сигналов

.pdf
Скачиваний:
90
Добавлен:
24.03.2015
Размер:
243.83 Кб
Скачать

ИСТОЧНИКИ СИГНАЛОВ

randerr - создание матрицы с заданным количеством случайно расположенных единиц

randint - создание матрицы случайных целых чисел, равномерно распределенных в заданном диапазоне

randsrc - создание матрицы случайных символов из заданного алфавита wgn - генерация белого нормального шума

Синтаксис:

out = randerr(m); out = randerr(m,n);

out = randerr(m,n,errors);

out = randerr(m,n,errors,state);

Описание:

1)При любом варианте синтаксиса все строки матрицы А создаются функцией randerr независимо. Сначала задаем значение m.

>> m=2; A = randerr(m)

A =

 

1

0

0

1

Возвращает двоичную матрицу размером m на m, в каждой строке которой имеется ровно один случайно расположенный ненулевой элемент. Все возможные положения этого элемента равновероятны.

----------------------------------------------------------------------------------------------------------------------------

2) А = randerr(m,n)

Возвращает двоичную матрицу размером m на n, в каждой строке которой имеется ровно один случайно расположенный ненулевой элемент. Все возможные положения этого элемента равновероятны.

>> m=2;n=3; A = randerr(m, n)

A =

 

 

0

0

1

1

0

0

----------------------------------------------------------------------------------------------------------------------------

3) А = randerr(m,n,errors)

Возвращает двоичную матрицу размером m на n, количество ненулевых элементов в каждой строке которой определяется параметром errors следующим образом:

если errors — скаляр, то он задает число ненулевых элементов для всех строк матрицы;

>>m=2;n=3; A = randerr(m, n,2)

A =

1

1

0

1

1

0

1

если errors — вектор-строка, то он задает несколько возможных равновероятных вариантов числа ненулевых элементов для всех строк матрицы;

>> m=4;n=5; A = randerr(m, n, [0 3])

A =

 

 

 

 

0

0

0

0

0

0

0

0

0

0

1

0

0

1

1

0

0

1

1

1

Т.е. в строке матрицы должно быть 3 одинаковых элемента.

>> m=4;n=5; A = randerr(m, n, [1 2 4])

A =

 

 

 

 

1

1

0

1

1

1

1

0

1

1

0

1

1

1

1

0

1

0

0

1

Если использовать массив: [1 2 4] в строке будет либо 1, либо 2, либо 4 одинаковых элемента, и эти строки будут располагаться в матрице независимо друг от друга.

----------------------------------------------------------------------------------------------------------------------------

если errors — матрица, содержащая две строки, то первая строка содержит возможные значения числа ненулевых элементов, а вторая — соответствующие вероятности (сумма элементов второй строки должна быть равна единице).

Сначала функция randerr определяет число ненулевых элементов для каждой строки создаваемой матрицы, а затем эти элементы случайным образом размещаются в строке, так что все возможные варианты их расположения равновероятны.

>> m=4;n=5; A = randerr(m, n, [1, 2 ; 0, 1])

A =

 

 

 

 

1

0

1

0

0

1

0

1

0

0

1

0

0

0

1

1

1

0

0

0

 

 

 

 

 

А = randerr(m,n,errors,state)

2

То же, что и предыдущий вариант синтаксиса, но в данном случае дополнительно можно задавать начальное состояние генератора случайных чисел MATLAB (функция rand) с помощью целочисленного параметра state.

>> m=4;n=5; A = randerr(m, n, [1, 2 ; 0, 1],2)

A =

 

 

 

 

1

0

0

0

1

0

1

0

1

0

1

0

1

0

0

0

1

0

0

1

--------------------------------------------------------------------------------------------------------

Функция randint – генерирует матрицу случайно расположенных чисел

Ф=randint(m) генерирует матрицу случайных чисел с равновероятным распределением нулей и единиц.

>> A=randint(3)

A =

 

 

1

0

1

1

0

1

1

0

0

А = randint(m,n)

>> m=2; n=4;A=randint(m,n)

A =

 

 

 

0

1

1

0

1

0

0

0

Генерируется матрица m x n, а число нулей и единиц в строке матрицы – случайное.

А = randint(m,n,b)

Гененрируется матрица не только с нулями, но и с целыми числами, меньшими b. Если b положительное – будет матрица с нулями и положительными целыми числами, если отрицательное – с нулями и тримцательными числами.

>> m=6; n=4; b=5; A = randint(m,n,-b)

A =

 

 

 

-2

-1

-3

-4

0

-2

-3

-2

0

-2

0

0

-4

-2

-1

0

-3

-4

0

-3

-2

-2

-2

-1

 

 

 

 

3

Функция randsrc

A = randsrc(m) – генерируется матрица только из 1 и -1. Число единиц и -1 равновероятно.

>> m=3; A = randsrc(m)

A =

 

 

1

-1

1

1

1

1

-1

-1

1

 

 

 

А = randsrc(m,n)

Генерируется матрица (m,n), число единиц и -1 равновероятно.

>> m=3; n=4; A = randsrc(m,n)

A =

 

 

 

-1

-1

1

1

-1

-1

1

-1

1

-1

1

-1

 

 

 

 

Пример: сгенерировать матрицу 5 на 5 , состоящую из чисел {-3,-1,1,3}: A = randsrc(5,5,[-3 -1 1 3])

A =

 

 

 

 

1

3

3

3

3

1

-1

1

-1

1

1

1

-3

-3

1

1

-3

1

-1

3

3

-1

-1

3

-3

Чтобы задать вероятности появления тех или иных чисел в матрице:

A = randsrc(5,5,[-3 -1 1 3; .2 .3 .3 .2])

out =

 

 

 

 

1

-3

-1

-1

-1

1

1

-1

1

-1

3

3

1

-3

1

1

3

-3

-1

3

-1

3

-1

1

-3

 

 

 

 

 

Функция wgn – для генерации гауссова распределения y1 = wgn(100,1,0)

Будет 100 чисел, расположенные с столбик, со случайным гауссовым распределением. Числа действительные

y2 = wgn(100,1,0,'complex')

Будет 100 чисел, расположенные с столбик, со случайным гауссовым распределением. Числа комплексные

Rand, randn

4