comm.QPSKDemodulator

Демодулируйте с использованием QPSK метода

Описание

The QPSKDemodulator объект демодулирует сигнал, который был модулирован с помощью квадратурной фазы сдвига метода манипуляции. Вход является представлением модулированного сигнала в основной полосе частот.

Чтобы демодулировать сигнал, который был модулирован с помощью квадратурных фаз сдвига манипуляции:

  1. Определите и настройте объект демодулятора QPSK. См. «Конструкция».

  2. Функции step для демодуляции сигнала в соответствии со свойствами comm.QPSKDemodulator. Поведение step характерен для каждого объекта в тулбоксе.

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Конструкция

H = comm.QPSKDemodulator создает демодулятор Системного объекта, H. Этот объект демодулирует входной сигнал с помощью квадратурного метода фазы сдвига keying (QPSK).

H = comm.QPSKDemodulator(Name,Value) создает объект демодулятора QPSK, H, с каждым заданным набором свойств до заданного значения. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

H = comm.QPSKDemodulator(PHASE,Name,Value) создает объект демодулятора QPSK, H. Этот объект имеет PhaseOffset значение свойства установлено в PHASE, и другие заданные свойства устанавливаются на заданные значения.

Свойства

PhaseOffset

Фаза нулевой точки в созвездии

Задайте смещение фазы нулевой точки в созвездии, в радианах, как действительное скалярное значение. Значение по умолчанию является pi/4.

BitOutput

Выход данных в виде бит

Задайте, состоит ли выход из групп бит или целочисленных значений символов.

Когда вы устанавливаете это свойство на true, а step метод выводит вектор-столбец из битовых значений с длиной, равной удвоенному количеству демодулированных символов.

Когда вы устанавливаете это свойство на false, а step метод выводит вектор-столбец с длиной, равной вектору входных данных. Этот вектор содержит целочисленные значения символов между 0 и 3. Значение по умолчанию является false.

SymbolMapping

Кодировка созвездия

Задайте, как объект сопоставляет целое число или группу из 2 бит с соответствующим символом как один из Binary | Gray. Значение по умолчанию является Gray.

Когда вы устанавливаете это свойство на Grayобъект использует сигнальное созвездие с кодировкой Грея.

Когда вы устанавливаете это свойство на Binary, целое число m, между 0m3 преобразуется в комплексное число exp (j×PhaseOffset + j×2π×m4).

DecisionMethod

Метод принятия решений о демодуляции

Задайте метод принятия решений, который объект использует как Hard decision | Log-likelihood ratio | Approximate log-likelihood ratio. Значение по умолчанию является Hard decision.

Когда вы устанавливаете BitOutput свойство к falseобъект всегда выполняет демодуляцию с жестким решением. Это свойство применяется, когда вы устанавливаете BitOutput свойство к true.

VarianceSource

Источник отклонения шума

Укажите источник отклонения шума как один из Property | Input port. Значение по умолчанию является Property. Это свойство применяется, когда вы устанавливаете BitOutput свойство к true и DecisionMethod свойство к Log-likelihood ratio или Approximate log-likelihood ratio.

Variance

Шумовые отклонения

Задайте отклонение шума как положительное, действительное скалярное значение. Значение по умолчанию является 1. Если это значение очень мало (то есть ОСШ очень высок), расчеты логарифмического отношения логарифмической правдоподобности (LLR) могут привести к Inf или -Inf. Этот результат происходит, потому что алгоритм LLR вычисляет экспоненциал очень больших или очень малых чисел с помощью арифметики конечной точности. В таких случаях использование приблизительного LLR происходит из-за того, что алгоритм этой опции не вычисляет экспоненциалов.

Это свойство применяется, когда вы устанавливаете BitOutput свойство к true, а DecisionMethod свойство к Log-likelihood ratio или Approximate log-likelihood ratio, и VarianceSource свойство к PropertyСвойство .This настраивается.

OutputDataType

Тип данных выхода

Задайте тип выходных данных следующим Full precision | Smallest unsigned integer | double | single | int8 | uint8 | int16 | uint16 | int32 | uint32. Значение по умолчанию является Full precision.

Это свойство применяется, когда вы устанавливаете BitOutput свойство к false. Свойство также применяется, когда вы устанавливаете BitOutput свойство к true и DecisionMethod свойство к Hard decision. В этом втором случае, когда OutputDataType для свойства задано значение Full precision, и тип входных данных является одинарной или двойной точностью, выходные данные имеют то же самое, что и тип входов.

Когда входные данные имеют тип с фиксированной точкой, тип выходных данных ведет себя так, как если бы вы установили OutputDataType свойство к Smallest unsigned integer.

Когда вы задаете BitOutput на true и DecisionMethod свойство к Hard Decision, затем logical тип данных становится допустимой опцией.

Когда вы устанавливаете BitOutput свойство к true и DecisionMethod свойство к Log-likelihood ratio или Approximate log-likelihood ratioтип выходных данных аналогичен типу входных данных. В этом случае этот тип данных может быть только одинарной или двойной точностью.

 Свойства с фиксированной точкой

Методы

шагДемодулируйте с использованием QPSK метода
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

Примеры

свернуть все

Создайте QPSK модулятор.

mod = comm.QPSKModulator;

Определите ссылочные точки созвездия.

refC = constellation(mod)
refC = 4×1 complex

   0.7071 + 0.7071i
  -0.7071 + 0.7071i
  -0.7071 - 0.7071i
   0.7071 - 0.7071i

Постройте график созвездия.

constellation(mod)

Figure contains an axes. The axes with title Constellation: QPSK,Gray Mapping,PhaseOffset=0.7854rad contains 7 objects of type line, text.

Создайте PSK демодулятор, имеющий 0 смещение фазы.

demod = comm.QPSKDemodulator('PhaseOffset',0);

Постройте график его ссылочного созвездия. The constellation способ работает как для объектов модулятора, так и для объектов демодулятора.

constellation(demod)

Figure contains an axes. The axes with title Constellation: QPSK,Gray Mapping,PhaseOffset=0rad contains 7 objects of type line, text.

Создайте пару модуляторов и демодуляторов QPSK, которые работают с битами.

qpskModulator = comm.QPSKModulator('BitInput',true);
qpskDemodulator = comm.QPSKDemodulator('BitOutput',true);

Создайте объект канала AWGN и счетчик частоты ошибок.

channel = comm.AWGNChannel('EbNo',4,'BitsPerSymbol',2);
errorRate = comm.ErrorRate;

Сгенерируйте случайные двоичные данные и примените QPSK модуляцию.

data = randi([0 1],1000,1);
txSig = qpskModulator(data);

Передайте сигнал через канал AWGN и демодулируйте его.

rxSig = channel(txSig);
rxData = qpskDemodulator(rxSig);

Вычислите статистику ошибок. Отобразите BER.

errorStats = errorRate(data,rxData);

errorStats(1)
ans = 0.0100

Алгоритмы

Этот объект реализует алгоритм, входы и выходы, описанные на QPSK Demodulator Baseband блочных страниц с описанием. Свойства объекта соответствуют параметрам блоков.

Расширенные возможности

.
Введенный в R2012a