Третья практика по информационным сетям.

на прошлом занятии мы не выяснили как можно заменить одну модуляцию другой.
нам необходим способ который позволяет создать созвездие производной формы.

замените модулятор и демодулятор исходной модели устройствами из раздела

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