comm.QPSKDemodulator

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

Описание

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

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

  1. Задайте и настройте свой объект демодулятора QPSK. Смотрите Конструкцию.

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

Примечание

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

Конструкция

H = comm.QPSKDemodulator создает Системный объект демодулятора, H. Этот объект демодулирует входной сигнал с помощью метода квадратурного манипулирования сдвига фазы (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)

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

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

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

constellation(demod)

Создайте модулятор 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