exponenta event banner

коммуникация. QPSKDemodulator

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

Описание

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

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

  1. Определите и настройте объект демодулятора QPSK. См. раздел Строительство.

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

Примечание

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

Строительство

H = comm.QPSKDemodulator создает объект системы демодулятора, H. Этот объект демодулирует входной сигнал с использованием метода квадратурной фазовой манипуляции (КФМ).

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, между 0≤m≤3 картами к комплексному значению exp (j ×PhaseOffset + j × × 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. Если это значение очень мало (т.е. SNR очень высокое), вычисления логарифмического отношения правдоподобия (LLR) могут дать Inf или -Inf. Этот результат возникает, потому что алгоритм LLR вычисляет экспоненту очень больших или очень малых чисел, используя арифметику конечной точности. В таких случаях использование приблизительного LLR связано с тем, что алгоритм этой опции не вычисляет экспоненты.

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

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);

Постройте график его опорного созвездия. 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. Свойства объекта соответствуют параметрам блока.

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

.
Представлен в R2012a