Документация Engee

DQPSK Demodulator Baseband

Демодулирует данные, модулированные с помощью метода DQPSK.

dqpsk demodulator baseband

Системный объект: DQPSK_DemodulatorBaseband()

Описание

Блок DQPSK Demodulator Baseband демодулирует сигнал, который был модулирован с помощью метода дифференциальной квадратурной фазовой манипуляции (differential quadrature phase shift keying, DQPSK). На вход подается базовое представление модулированного сигнала.

Входной сигнал должен быть дискретным комплексным сигналом. Выход зависит от разницы фаз между текущим и предыдущим символом. Первое целое число (или двоичная пара, если для параметра Output type установлено значение Bit) на выходе блока — это начальное состояние нуля, поскольку предыдущего символа нет.

Типы выходных данных и созвездий

Если для параметра Output type установлено значение Integer, то блок отображает разность фаз и , где это значение параметра Phase rotation, а принимает значение 0, 1, 2 или 3.

Если для параметра Output type установлено значение Bit, то на выходе получаются пары двоичных значений.

На справочной странице для блока DQPSK Modulator Baseband показано, какие разности фаз соответствуют каждой двоичной паре, для случаев, когда параметр Constellation ordering имеет значение Binary или Gray.

Порты

Вход

In — входной DQPSK-модулированный сигнал
скаляр | вектор

Входной DQPSK-модулированный сигнал в виде скаляра или вектора.

Типы данных: Float64

Выход

Out — демодулированный сигнал
вектор | скаляр

Демодулированный сигнал в виде скаляра или вектора.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Параметры

Output type — тип выходного сигнала
Integer (по умолчанию) | Bit

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

Constellation ordering — упорядочение созвездия
Gray (по умолчанию) | Binary

Определяет, как блок сопоставляет каждую пару входных битов с соответствующим целым числом, используя либо схему Binary, либо схему Gray.

Phase rotation (rad) — фазовое вращение
pi/4 (по умолчанию)

Разность фаз между предыдущим и текущим модулированными символами, когда на входе ноль.

Системный объект DQPSK_DemodulatorBaseband()

Системный объект DQPSK_DemodulatorBaseband() дублирует работу блока DQPSK Demodulator Baseband и демодулирует данные, модулированные с помощью метода DQPSK.

Параметры системного объекта DQPSK_DemodulatorBaseband(OutputType, ConstellationOrdering, PhaseRotation) соответствуют параметрам блока DQPSK Demodulator Baseband.

Конструктор
import CausalDSP: step!, setup!, reset!, release!
import CausalDSP.PassbandModulator: DQPSK_DemodulatorBaseband
obj = DQPSK_DemodulatorBaseband(OutputType, ConstellationOrdering, PhaseRotation)
Пример использования системного объекта

Для вызова DQPSK_DemodulatorBaseband() и получения выходного сигнала выполните в командной строке Engee построчно следующий код:

import CausalDSP: step!, setup!, reset!, release! # Вызов методов интерфейса
import CausalDSP.PassbandModulator: DQPSK_DemodulatorBaseband # Вызов системного объекта из библиотеки
obj = DQPSK_DemodulatorBaseband("Integer", "Binary", pi/4) # Задание параметров системного объекта
indata = -sqrt(2)/2 -(sqrt(2)/2)im # Входящий сигнал
setup!(obj, indata) # Задание входного размера и инициализация функции
step!(obj, indata)  # Выполнение первого шага симуляции
step!(obj, indata)  # Выполнение второго шага симуляции
reset!(obj) # Сброс внутреннего состояния функции
step!(obj, indata)  # Выполнение первого шага симуляции
release!(obj) # Переход к редактированию аргументов
obj.ConstellationOrdering = "Gray" # Изменение значения аргумента ConstellationOrdering в созданном объекте
obj # Просмотр текущих значений аргументов
obj.PhaseRotation = 0.5 # Изменение значения аргумента PhaseRotation
obj # Просмотр текущих значений аргументов
setup!(obj, indata) # Задание входного размера и инициализация функции (применение измененных параметров)
step!(obj, indata)  # Выполнение третьего шага симуляции

Результат выполнения:

import CausalDSP: step!, setup!, reset!, release!
import CausalDSP.PassbandModulator: DQPSK_DemodulatorBaseband
obj = DQPSK_DemodulatorBaseband("Integer", "Binary", pi/4)
DQPSK_DemodulatorBaseband:
OutputType=Integer
ConstellationOrdering=Binary
PhaseRotation=0.7853981633974483
indata = -sqrt(2)/2 -(sqrt(2)/2)im
-0.7071067811865476 - 0.7071067811865476im
setup!(obj, indata)
step!(obj, indata)
2
step!(obj, indata)
0
step!(obj, indata)
0
reset!(obj)
step!(obj, indata)
2
release!(obj)
obj.ConstellationOrdering = "Gray"
"Gray"
obj
DQPSK_DemodulatorBaseband:
OutputType=Integer
ConstellationOrdering=Gray
PhaseRotation=0.7853981633974483
obj.PhaseRotation = 0.5
0.5
obj
DQPSK_DemodulatorBaseband:
OutputType=Integer
ConstellationOrdering=Gray
PhaseRotation=0.5
setup!(obj, indata)
step!(obj, indata)
3