Третья практика по информационным сетям.
Primary tabs
Forums:
на прошлом занятии мы не выяснили как можно заменить одну модуляцию другой.
нам необходим способ который позволяет создать созвездие производной формы.
замените модулятор и демодулятор исходной модели устройствами из разделаLibrary browser -> Communications Block Set -> Modulation -> Digital Baseband Modulation -> AM
в матлабе напишите:
>> const = [exp(2*pi*i*[0:6]/7)] const = Columns 1 through 4 1.0000 0.6235 + 0.7818i -0.2225 + 0.9749i -0.9010 + 0.4339i Columns 5 through 7 -0.9010 - 0.4339i -0.2225 - 0.9749i 0.6235 - 0.7818i >> scatterplot(const) >> grid on >>
[0:6] - означает что генерируется 7 значений, а "делить" на семь - это генерация дроби .
с помощью этого выражения мы образуем как бы сектора и точки расположенные на комплексной плоскости.
выводы:
- 1) эти точки на единичной окружности
- 2) окружность единична - следовательно для передачи потребуется единичная мощность
поэтому запишем новое выражение - дабы избежать нечётного числа точек - так как для передачи мы будем использовать степень двойки.
Теперь сделаем четыре точки в окружности определим координатфы вручную следующим образом :
>> scatterplot(const) >> grid on >> const = [1 i -1 -i] const = 1.0000 0 + 1.0000i -1.0000 0 - 1.0000i >> scatterplot(const) >>
меняем число символом в передатчике на 4 - число ошибок падает.
Предположим у, что у вас есть некоторое нарисованное созвездие.
В случае квадратурной модуляции часть точек перемещается к центру - помехоустойчивость увеличивается.
В реальном сигнале "расстояние" также зависит от мощности - то есть на окружности - чем больше радиус - тем большая мощность передатчика подразумевается .
В данном случае мощность вычисляется как квадрат амплитуды символов.
Input POwer - мощность относительно которой и добавляется шум , который вы указали.
Например - если эта мощность больше единицы - то эффективное значение сигнал уменьшиться.
Необходимо скорректировать это значение мощности для конкретного созвездия -
первый способ -
сложить квадраты амплитуд точек созвездия - потом разделить на количесво символов и получить средний квадрат.
в нашем случе есть переменная const которая хранит значения координат - то есть мы можем вычислить модуль каждого комплекснгоо вектора с помощью aeyrwbb abs - затем возводим в квадрат - затем суммируем, а затем делим на длину массива (матрицы-вектора ) const /
для того чтобы выоплнять вычисления поэлементно необходимо перед операцией указывать точку - так как иначе будет произведена операция со всем вектором.
с помощью значения:
sum(abs(const).^2)/length(const)
то есть это выражение следует "забить " в Input POwer для блока AWGN
таким образом для любой модуляции мы можем запустить процесс симуляции.
задать созвездие можно :
- 1) перечислением напр. const = [1 i -1 -i]
- 2) в виде экспоненты
однако - в случае "большого" количесва точек можно:
- 1) использовать симметричность созвездия - вычислить координаты точек одного сектора плоскости - а потом проинвертировать по икс и/ил иигрик.
- 2) используя циклы матлаба можно программно задать созвездия.
Со способом можно определиться самостоятельно.
Важно: реализация должна быть в виде файла signal.m - должна возникнуть переменная const c результатами созвездия.
см. файл задач. lab 02.pdf слайд 33
три файла результата:
- 1) модель .mdl
- 2) скрипт .m
- 3) signal.m
- Log in to post comments
- 2199 reads