
Лабы / ОКМвТС лабы / Источники сигналов
.pdf
ИСТОЧНИКИ СИГНАЛОВ
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