коммуникация. 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