Расчет оптимального когерентного демодулятора
В демодуляторе осуществляется оптимальная по критерию максимального правдоподобия когерентная обработка принимаемого сигнала z(t)=s(t)+n(t).
Существует 2 разновидности декодирования по критерию максимального правдоподобия: жесткое и мягкое декодирование.
При жестком декодировании максимального правдоподобия по принятому сигналу сначала определяются символы принятой последовательности r , а потом эта последовательность поочередно сравнивается со всеми кодовыми словами данного кода. Решение принимается в пользу кодового слова, максимально похожего на принятую последовательность.
Поскольку в процессе мягкого декодирования информация о сигнале учитывается в большей мере (решение принимается по всему сигналу сразу, а не по частям, для каждого символа в отдельности, и только потом – для всей принятой последовательности), то качество мягкого декодирования должно быть, по идее, выше. Однако реализация жесткого декодера является гораздо более простой – действия выполняются над нулями и единицами. Поэтому такие декодеры используются чаще, хотя и несколько проигрывают мягким декодерам в вероятности правильного декодирования.
При декодировании блочных кодов декодеры максимального правдоподобия применяются достаточно редко из-за их сложности при больших размерах кода. Однако, при современных мощностях микропроцессорных устройств это уже не представляет непреодолимой трудности. Скорее, нужно выбирать между усложнением алгоритма декодирования и выигрышем в повышении вероятности правильного декодирования.
Для сверточных же кодов декодирование с использованием метода максимального правдоподобия – стек-алгоритм, алгоритм Фано и алгоритм Витерби - это основные способы декодирования [3, с 139-142].
Алгоритм работы оптимального по критерию максимального правдоподобия когерентного демодулятора при передаче двоичных сообщений может быть представлен в следующем виде:
если
, (48)
то принятым считается сигнал s0(t),если
, (49)
то принятым считается сигнал s1(t).
Так как Е0=Е1 , то получим:
если
, (50)
то принятым считается сигнал s0(t), если
, (51)
то принятым считается сигнал s1(t).
Пороговый уровень.
(52)
Изобразим структурную схему оптимального демодулятора (для ФМ).
Рисунок 17 – Схема когерентного демодулятора ФМ сигналов на корреляторе
Вероятность ошибки оптимального когерентного демодулятора для канала с аддитивным белым шумом при передаче двоичных сообщений определяется следующим выражением:
, (53)
где - интеграл вероятности.
(54)
Из справочника находим "Интеграл вероятности" Q(x)=8.95*10-3
Определим, как нужно изменить энергию сигнала, чтобы при других видах модуляции и заданном способе приема обеспечить вычисленное значение вероятности ошибки Р.
При АМ, энергию сигнала необходимо увеличить в 4 раза.
При ЧМ, энергию нужно увеличить в 2 раза
Пропускную способность демодулятора найдем, считая, что его выход – является выходом симметричного двоичного канала связи. При этом учтем, что P(0|1) = P(1|0) = P, тогда:
(55)
Можно сделать вывод, что требуемая скорость передачи данных 115 200 бит/с выполняется.
Анализ декодера
Декодер осуществляет процесс декодирования. Процесс происходит в два этапа:
1. Обнаружение ошибок в кодовой комбинации.
2. Если ошибок нет, то из принятой кодовой посылки выделяются k информационных символов, а затем к - разрядный двоичный число, которое передаётся в ЦАП.
В случае обнаружения ошибки исправляется наиболее ненадёжный символ. Информация о степени надёжности поступает в декодер из демодулятора.
Рассмотрим, чем определяется способность блочного кода обнаруживать и исправлять ошибки, возникшие при передаче.
Пусть U = (U0, U1, U2, ...Un-1) – двоичная последовательность длиной n.
Число единиц (ненулевых компонент) в этой последовательности называется весом Хемминга вектора U и обозначается w(U).
Например, вес Хемминга вектора U = (1001011) равен четырем, для вектора U = (1111111) величина w(U) составит 7 и т.д.
Таким образом, чем больше единиц в двоичной последовательности, тем больше ее вес Хемминга.
Далее, пусть U и V будут двоичными последовательностями длиной n.
Количество разрядов, в которых эти последовательности различаются, называется расстоянием Хемминга между U и V и обозначается d(U, V).
Например, если U = (1001011), а V = (0100011), то d(U, V) = 3.
Задав линейный код, то есть определив все 2k его кодовых слов, можно вычислить расстояние между всеми возможными парами кодовых слов. Минимальное из них называется минимальным кодовым расстоянием кода и обозначается dmin.
Доказано, что расстояние между нулевым кодовым словом и одним из кодовых слов, входящих в порождающую матрицу (строки порождающей матрицы линейного блочного кода сами являются кодовыми словами по определению), равно dmin. Но расстояние от любого кодового слова до нулевого равно весу Хемминга этого слова. Тогда dmin равно минимальному весу Хемминга для всех строк порождающей матрицы кода.
Если при передаче кодового слова по каналу связи в нем произошла одиночная ошибка, то расстояние Хемминга между переданным словом U и принятым вектором r будет равно единице. Если при этом одно кодовое слово не перешло в другое (а при dmin > 1 и при одиночной ошибке это невозможно), то ошибка будет обнаружена при декодировании.
В общем случае если блочный код имеет минимальное расстояние dmin, то он может обнаруживать любые сочетания ошибок при их количестве, меньшем или равном dmin – 1, поскольку никакое сочетание ошибок при их числе, меньшем, чем dmin – 1, не может перевести одно кодовое слово в другое.
Но ошибки могут иметь кратность и большую, чем dmin – 1, и тогда они останутся необнаруженными.
Код в данной работе позволяет лишь обнаружить ошибку, но не исправить её.
При кодировании уровней квантованного сообщения был использован простейший систематический код (n,n-1), который получался путем добавления к комбинации k-информационных символов одного проверочного, образованного в результате суммирования по модулю 2 всех информационных символов. После этого получается кодовая комбинация с четным числом единиц, т.е. комбинация с четным весом. Данный код способен обнаружить лишь ошибки нечетной кратности. Для этого в принятой комбинации подсчитывается число единиц и проверяется на четность. Если в принятой комбинации обнаружена ошибка (нечетный вес), то комбинация считается запрещенной.