В цифровой связи дифференциальное кодирование — это метод, используемый для обеспечения однозначного приема сигнала при использовании некоторых типов модуляции . Он делает передаваемые данные зависимыми как от текущего, так и от предыдущего состояния сигнала (или символа).
Распространенные типы модуляции, которые могут использоваться с дифференциальным кодированием, включают фазовую манипуляцию и квадратурную амплитудную модуляцию .
При передаче данных по сбалансированным линиям легко случайно перепутать полярность в кабеле между передатчиком и приемником.
Аналогично для BPSK . Чтобы демодулировать BPSK, нужно сделать локальный генератор синхронным с удаленным. Это достигается с помощью схемы восстановления несущей . Однако целая часть восстановленной несущей неоднозначна. Существует n действительных, но не эквивалентных фазовых сдвигов между двумя генераторами. Для BPSK n = 2; символы появляются инвертированными или нет.
Дифференциальное кодирование предотвращает влияние инверсии сигнала и символов на данные.
Предполагая, что это бит, предназначенный для передачи, и это был только что переданный символ, тогда символ, который должен быть передан, это
где указывает на двоичное или по модулю 2 сложение. На стороне декодирования восстанавливается как
То есть зависит только от разницы между символами , а не от их значений (инвертированы или нет).
Существует несколько различных линейных кодов, разработанных с учетом полярности [1] — независимо от того, инвертирован поток данных или нет, декодированные данные всегда будут правильными.
К линейным кодам с этим свойством относятся дифференциальное манчестерское кодирование , биполярное кодирование , NRZI , двухфазный код метки , инверсия кодированной метки и кодирование MLT-3 .
Метод, проиллюстрированный выше, может справиться с инверсией потока данных (это называется неоднозначностью 180° ). Иногда этого достаточно (например, если используется BPSK или если другие неоднозначности обнаруживаются другими схемами, такими как декодер Витерби или синхронизатор кадров ), а иногда — нет.
Вообще говоря, дифференциальное кодирование применяется к символам (они не обязательно те же символы, что используются в модуляторе). Для разрешения только 180° неоднозначности в качестве этих символов используются биты. При работе с 90° неоднозначностью используются пары бит, а для разрешения 45° неоднозначности (например, в 8PSK ) используются тройки бит .
Дифференциальный кодер обеспечивает операцию ( 1 ), дифференциальный декодер - операцию ( 2 ).
Оба дифференциальных кодера и декодера являются дискретными линейными инвариантными во времени системами . Первый из них рекурсивный и БИХ , последний нерекурсивный и, следовательно, КИХ . Их можно анализировать как цифровые фильтры .
Дифференциальный энкодер похож на аналоговый интегратор . Он имеет импульсную характеристику.
Таким образом, дифференциальный декодер похож на аналоговый дифференциатор , его импульсная характеристика равна
и его передаточная функция
Обратите внимание, что в двоичной (по модулю 2) арифметике сложение и вычитание (а также положительные и отрицательные числа) эквивалентны.
Использование отношения не является единственным способом выполнения дифференциального кодирования. В более общем случае это может быть любая функция при условии, что уравнение имеет одно и только одно решение для любого и .
Дифференциальное кодирование широко применяется в спутниковой и радиорелейной связи совместно с модуляциями PSK и QAM .
Дифференциальное кодирование имеет один существенный недостаток: оно приводит к умножению ошибок. То есть, если один символ, например, был получен неправильно, на выходе дифференциального декодера будет два неправильных символа и , см.: и . Это примерно удваивает BER при отношениях сигнал/шум, при которых ошибки редко возникают в последовательных символах.
Дифференциальное кодирование — не единственный способ справиться с фазовой неоднозначностью. Другой популярный метод — использовать синхрослова для этой цели. То есть, если синхронизатор кадров обнаруживает повторяющиеся инвертированные синхрослова, он инвертирует весь поток. Этот метод используется в DVB-S .