СПОСОБ ДЕКОДИРОВАНИЯ СВЕРТОЧНЫХ КОДОВ
METHOD OF DECODING CONVOLUTIONAL CODES

Способ декодирования сверточных кодов относится к области техники связи и может быть использован при передаче цифровых радиосигналов с перемежением символов в условиях воздействия замираний амплитуды сигнала.
Известны различные способы декодирования сверточных кодов, описанные например в кн.: Ипатов В.П., Орлов В.К., Самойлов И.М. Системы мобильной связи - М.: Горячая линия - Телеком, 2003; Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. - М.: Техносфера, 2006. Они основаны на деперемежении после приема цифровых символов, то есть восстановлении исходного порядка их следования, который был переставлен при передаче для борьбы с группированием ошибок в результате воздействия замираний. Далее производится декодирование в соответствии с алгоритмом Витерби. При этом определяются суммарные метрики различных путей по решетке декодирования, и выбирается путь, имеющий минимальную метрику. Этот путь соответствует определенной последовательности символов, она принимается как декодированный вариант переданной последовательности.
Подобный способ не обеспечивает требуемого уровня помехоустойчивости, так как количество оставшихся ошибочно декодированных символов во многих ситуациях (например, невысокого среднего уровня принятого полезного сигнала) оказывается недопустимо высоким.
Наиболее близким к заявляемому является способ, описанный в кн.: Скляр Б. Цифровая связь. Теоретические основы и практическое применение - М.: Изд. дом «Вильямс», 2003. После автоматической регулировки усиления, демодуляции и деперемежения принятых двоичных символов осуществляется декодирование согласно алгоритму Витерби, при этом с принятием группы кодовых символов, соответствующих одному переданному информационному символу, осуществляется очередное вычисление нового набора метрик всех возможных состояний кодера. (Количество символов в группе обратно пропорционально скорости кода).
Новый набор метрик всех состояний вычисляется для каждой метрики сравнением величины метрик двух путей, которые подходят к этому состоянию и соединяют его с определенными двумя предыдущими состояниями. Выбирается тот путь, который обладает минимальной метрикой. (Если метрики одинаковы по уровню, то выбирается любой из путей).
Метрика каждого пути является суммой метрики предыдущего состояния, из которого он исходит, и метрики перехода к данному состоянию. При этом в прототипе осуществляется «мягкое» декодирование. При демодуляции принятых цифровых сигналов величина полученного демодулированного сигнала квантуется на определенное постоянное количество уровней. (Количество этих уровней между двумя возможными максимальными значениями бинарного сигнала из-за автоматической регулировки усиления постоянно, и обычно выбирается равным восьми).
i
i
i
Метрика каждого перехода определяется различием между ожидаемыми значениями каждого символа в группе демодулированных символов и символами каждого конкретного перехода, которые определяются исходным состоянием кодера и его конечным состоянием, которое он приобретает в результате данного перехода. Различия вычисляются с помощью эвклидова расстояния между символами. Операция происходит следующим образом. Пусть двум возможным бинарным значениям каждого символа в группе каждого перехода соответствуют относительные уровни «+1» и «-1». Значения же символов y после декодирования могут принимать любые промежуточные уровни между «+1» и «-1». Тогда, если значение конкретного i-го символа в коде какого-либо перехода равно «+1», то евклидово расстояние между этим символом и соответствующими ему по времени принятым и демодулированным символами будет равно модулю разности (y-1). Если же значение конкретного i-го символа в группе какого-либо перехода равно «-1», то евклидово расстояние между этим символом и соответствующими ему по времени принятым и демодулированным символами будет равно модулю величины (y+1). При использовании данного способа по мере работы количество оставшихся путей постоянно уменьшается, пока не останется единственный путь, соответствующий декодированной переданной последовательности информационных символов.
Недостаток данного способа заключается в следующем. Как известно, успешное декодирование сверточных кодов возможно, если подряд по времени не следует большое число ошибочно демодулированных символов. А в случае воздействия на передаваемый сигнал быстрых глубоких замираний его уровня, что достаточно характерно для многих видов каналов передачи сигналов, как раз большое число подряд следующих символов могут оказаться неправильно демодулированы, из-за того, что качество демодуляции напрямую зависит от уровня принятого полезного сигнала. Чтобы этого не произошло, сигнал на передающей стороне подвергают перемежению, то есть по определенному правилу символы разносят по времени. На приемной стороне принятую последовательность символов подвергают обратной операции, восстанавливая исходный порядок их следования по времени. В результате ошибочные символы, ранее следовавшие подряд, оказываются разнесены, что позволяет успешно применить декодирование.
Однако при этом возможен неправильный выбор наилучшего пути по решетке, и, как следствие, неправильное декодирование какого-то участка передаваемой информационной последовательности. Это происходит по следующей причине. При выборе одного из двух путей, подходящих к каждому состоянию, сравниваются по величине метрики этих путей. А они являются суммами метрик всех переходов по длине каждого пути. Но каждая из этих метрик вычисляется по одному и тому же правилу. По сути это соответствует предположению, что средний уровень шумов (среднее отношение «сигнал/шум») на всем длине пути, который при сравнении различных путей может достигать нескольких десятков символов, остается постоянным.
При отсутствии перемежения символов это предположение является достаточно точным. Однако при перемежении в сравниваемую длину пути попадают символы, достаточно разнесенные по времени передачи. Отношение «сигнал/шум» в моменты их приема может сильно отличаться. Иными словами, «вес» вклада каждого символа в формирование суммарной метрики каждого пути также должен различаться, поскольку «качество» каждого символа различное. А в известном способе подобный учет не производится. В результате не обеспечивается вполне достижимая меньшая вероятность ошибки и большая помехоустойчивость передачи информации.
Задачей предлагаемого способа декодирования сверточных кодов является снижение вероятности ошибки при декодировании и повышение помехоустойчивости передаваемой информации.
Поставленная задача решается тем, что в способ декодирования сверточных кодов, включающий в себя последовательно осуществляемые прием радиосигналов, автоматическую регулировку усиления, демодуляцию, первое деперемежение и декодирование по алгоритму Витерби, представляющее собой пошаговое определение метрик переходов по решетчатой диаграмме, затем получение метрик путей суммированием метрик переходов и метрик состояний предыдущего шага, после чего сравнение по величине метрик путей, подходящих к состояниям последующего шага и выбора пути с минимальной метрикой, переход к следующему шагу с отбрасыванием путей с большими метриками и запоминание оставленных путей и после этого восстановление переданной информационной последовательности по оставшемуся пути, вводят амплитудное детектирование, усреднение, второе деперемежение, нелинейное преобразование и многоканальное перемножение-суммирование, причем амплитудное детектирование, усреднение, второе деперемежение и нелинейное преобразование осуществляют последовательно после приема радиосигналов одновременно с автоматической регулировкой усиления, демодуляцией и первым деперемежением, многоканальное перемножение-суммирование вводят в алгоритм декодирования Витерби между определением метрик переходов и многоканальным суммированием и производят перед суммированием с помощью умножения метрик на выходной сигнал, полученный после нелинейного преобразования.
1
2
На чертежах представлены: на фиг.1 - схематическая последовательность операций предлагаемого способа; на фиг.2 - рисунок, поясняющий причины неравнозначности информации на разных шагах, служащей для определения метрик переходов; на фиг.3 - обобщенная структурная схема получения на передающей стороне сверточного кода со скоростью кодирования /; на фиг.4 - пример укрупненной структурной схемы реализации предлагаемого способа; на фиг.5 - пример детальной реализации предлагаемого способа; на фиг.6 - пример нумерации состояний и переходов в одной ячейке решетчатой диаграммы при декодировании; на фиг.7 - пример вычисления метрик состояний для следующего шага на основе состояния предыдущего шага и метрик переходов данного шага.
На фиг.1 обозначены операции: прием радиосигналов 1; автоматическая регулировка усиления 2; демодуляция 3; первое деперемежение 4; определение метрик переходов 5; многоканальное суммирование 6; сравнение метрик путей и выбор пути с минимальной метрикой 7; переход к следующему шагу с отбрасыванием путей с большими метриками и запоминание оставленных путей 8; восстановление переданной информационной последовательности по оставшемуся пути 9; амплитудное детектирование 10; усреднение 11; второе деперемежение 12; нелинейное преобразование 13; многоканальное перемножение-суммирование 14 и алгоритм Витерби 15.
На фиг.3 обозначены: сдвиговый регистр 44; первый 45 и второй 46 сумматоры по модулю 2; коммутатор 47.
На фиг.4 обозначены: приемник 16; декодер Витерби 17; многоканальный вычитатель 18; многоканальный перемножитель-сумматор 19; амплитудный детектор 20; усреднитель 21; блок автоматической регулировки усиления 22; демодулятор 23; первый 24 и второй 25 блоки деперемежения; нелинейный блок 26.
На фиг.5 обозначены: приемник 27; блок автоматической регулировки усиления 28; демодулятор 29; амплитудный детектор 30; усреднитель 31; первый 32 и второй 33 блоки деперемежения; нелинейный блок 34; многоканальный перемножитель-сумматор 35; детектор Витерби 36; первый 37, второй 38, третий 39 и четвертый 40 блоки памяти; многоканальный вычитатель 41; многоканальный сумматор 42; блок сравнения и выбора 43.
Операции предлагаемого способа осуществляются следующим образом. Осуществляется прием радиосигналов из канала передачи (операция 1), т.е. усиление и перенос сигнала в низкочастотную часть спектра, необходимую для дальнейшей обработки. После этого производится автоматическая регулировка усиления (операция 2), после чего средний уровень принимаемого сигнала становится постоянным, что необходимо для «мягкой» демодуляции и работы алгоритма Витерби. Далее осуществляется демодуляция (операция 3) в соответствии со способом модуляции бинарного сигнала, используемым на передающей стороне. При использовании метода BPSK (двоичная фазовая манипуляция) при демодуляции обычно используется корреляционный прием, когда принятый сигнал, выравненный по уровню, перемножается с опорным синусоидальным колебанием и результат интегрируется на интервале времени, равном длительности одного символа. Причем осуществляется «мягкая» демодуляция, т.е. ее результатом является некоторый уровень напряжения, лежащий между заранее известными постоянными максимальным положительным и максимальным отрицательным уровнями в зависимости от мгновенной реализации шума на конкретном временном интервале длительности данного символа.
i
В последующей операции первого деперемежения 4 порядок следования принятых символов изменяется обратно перемежению, осуществляемому на передающей стороне, и получается последовательность символов y разного уровня. (Этот уровень зависит от реализации суммарного с сигналом шумового процесса на временном интервале данного символа.) В результате этого вновь восстанавливается тот исходный порядок следования кодированных символов, с которым они следовали после кодирования в передатчике.
S
S
Одновременно с демодуляцией и первым деперемежением после приема осуществляется операция 10 амплитудного детектирования принятых символов. В результате вырабатывается последовательность сигналов, пропорциональных уровню принимаемых символов. После этого принятая последовательность усредняется на некотором интервале времени T, определяемом, как T=1/F, где F - максимальная частота замираний (операция 11). Фактически при этом производится усреднение на интервале длительности нескольких символов для устранения влияния компоненты шума, различной на временных интервалах каждого символа.
i
ВХ
ВЫХ
ВХ
ВЫХ
После этого осуществляется второе деперемежение (операция 12), т.е. порядок следования сигналов, полученных после детектирования уровня, изменяется, а далее осуществляется нелинейное преобразование (операция 13) уровней полученных сигналов. В результате этого образуется последовательность значений α напряжения, которая будет использована в качестве весовых коэффициентов в алгоритме Витерби. Нелинейное преобразование производится с помощью нелинейной амплитудной передаточной характеристики вида U=f(U), где U - напряжение после первого деперемежения, U - напряжение после нелинейного преобразования, F - нелинейная функция, определяемая видом используемого метода модуляции-демодуляции. (В случае работы в условиях достаточно больших значений принимаемого сигнала в качестве функции F может быть использовано возведение в квадрат)
i
i
i
i
Второе деперемножение 12 идентично первому деперемежению 4 и производится таким образом, чтобы вырабатываемая в результате последовательность сигналов α соответствовала по времени последовательности y, т.е. в i-й момент времени после первого перемежения 4 получался сигнал, а после второго перемежения 12 и нелинейного преобразования 13 (безынерционного) получался сигнал α определяемый уровнем y после приема из канала передачи.
j
i
i
Алгоритм детектирования Витерби 15 включает в себя несколько операций. Операции 4-9, стандартные для алгоритма Витерби. В частности, на основе кодов переходов δ, которые определяются структурой используемого сверточного кода, заранее известны и остаются постоянными в процессе работы, определяются метрики переходов до внесения коррекции на основе уровней принятых символов (операция 5). Для этого по каждому принятому символу находятся квадраты разностей величины y и кодов для каждого перехода кодера при данном шаге из предыдущего состояния в последующее. Далее осуществляется операция многоканального перемножения-суммирования 14, которая вводится в заявляемом способе в стандартный алгоритм Витерби. В этой операции все полученные метрики по каждому символу домножаются на коэффициенты, равные α для данного символа, и полученные произведения суммируются по всем символам данной кодовой группы. В результате получаются метрики каждого перехода µ для данного шага.
j
j
В операции многоканального суммирования 6 получают метрики путей. Для этого к метрикам Г всех предыдущих состояний кодера прибавляются полученные в предыдущей операции метрики µ тех переходов, которые отходят от каждого состояния. В операции последующей операции 7 анализируются по каждому состоянию те два перехода, которые к нему подходят, в частности полученные в предыдущей операции величины их сумм Г и µ. По каждому состоянию выбирается тот переход, у которого такая сумма меньше по величине. Она становится метрикой данного состояния для последующей обработки. Второй переход с большим значением суммы отбрасывается. Оставленный переход добавляется к той совокупности переходов, которые вели к состоянию, из которого этот переход выходит, образуя один из путей.
В операции 8 все оставшиеся пути запоминаются, а пути, окончившиеся отброшенным на этом шаге переходом, из памяти удаляются. При переходе к следующему шагу после получения группы кодовых символов, соответствующих новому переданному информационному символу, полученные новые метрики переходов используются в операции многоканального суммирования 8 теперь уже в качестве исходных для вычислений следующего шага. Кроме этого, на тех предыдущих шагах, на которых остался только один из путей, номера его переходов в операции 9 соотносятся с соответствующими им символами и полученная декодированная последовательность информационных символов подается на выход для последующего использования.
i
Блоки на фиг.3 работают следующим образом. На последовательный вход сдвигового регистра 44 поступает последовательность S логических информационных символов «0» или «1». При поступлении каждого нового символа вся запомненная последовательность сдвигается вправо на один разряд регистра. В данном примере рассмотрен регистр, состоящий из трех разрядов. В первый сумматор 45 по модулю два поступают сигналы от всех разрядов регистра. Во второй сумматор 46 по модулю два поступают сигналы из первого и третьего разрядов регистра. В обоих сумматорах производится логическая операция суммирования по модулю два, то есть на выходе каждого сумматора появляется логическая единица, если число логических единиц на его входах - нечетное, если же количество логических единиц на его входах четное, то на его выходе появляется логический ноль. Выходные сигналы обоих сумматоров по модулю два подаются на входы коммутатора 47.
i
i1
i2
Коммутатор 47 поочередно подключает на выход сигналы со своих входов. Частота коммутации в данном примере в два раза выше частоты поступления информационных символов на вход регистра, при этом на каждый информационный символ S вырабатывается по два кодированных символа, x и x.
Блоки укрупненной схемы (фиг.4) реализации предлагаемого способа работают следующим образом. В приемнике 16 производится прием радиосигналов, прошедших через канал передачи, необходимое его усиление и перенос спектра сигнала в низкочастотную область для дальнейшей обработки. В блоке автоматической регулировки усиления 22 производится автоматическая регулировка усиления, после чего средний уровень принимаемого сигнала становится постоянным,
В демодуляторе 23 осуществляется демодуляция (фазовое детектирование) с помощью корреляционной обработки, т.е. после выравнивания по среднему уровню сигнал перемножается на синусоидальное напряжение опорного генератора постоянной амплитуды, частота которого совпадает с частотой сигнала, их результат усредняется на интервале времени, равном длительности символа.
В первом блоке деперемежения 24 производится восстановление порядка следования кодированных символов, который был до перемежения в передатчике. В амплитудном детекторе 20 выделяется напряжение, пропорциональное уровню принимаемого радиосигнала. В усреднителе 21 производится усреднение уровней принимаемых символов на интервале времени, равном квазипериоду замираний. Во втором блоке деперемежения 25 производится такое же деперемежение переставлением порядка следования символов, какое производилось в первом блоке деперемежения 24. В нелинейном блоке производится нелинейное преобразование входного напряжения, определяемое видом используемой модуляции-демодуляции в системе передачи.
Декодер Витерби 17 осуществляет сверточное декодирование по «мягкому» алгоритму. В разрыв его цепей, соединяющих многоканальный вычитатель 18 с последующими цепями, помещен многоканальный перемножитель-сумматор 19, в котором производится умножение сигнала каждого из выходов многоканального вычитателя на выходное напряжение второго блока деперемежения 25.
На фиг.5 представлен более детальный пример структурной схемы устройства, реализующего предлагаемый способ. Блоки: приемник 27, блок автоматической регулировки усиления 28, демодулятор 29, амплитудный детектор 30, усреднитель 31, первый 32 и второй 33 блоки деперемежения, нелинейный блок 34 и многоканальный перемножитель-сумматор 35 соответствуют блокам: приемник 16, амплитудный детектор 20, усреднитель 21, блок автоматической регулировки усиления 22, демодулятор 23, первый 24 и второй 25 блоки деперемежения, нелинейный блок 26 и многоканальный перемножитель-сумматор 19 на фиг.4.
i
i
i
j
j
i+1
В детекторе Витерби 36 первый блок памяти 37 содержит коды переходов δ. В многоканальном вычитателе 41 вычисляются квадраты разностей величины y и кода для каждого перехода. Далее в многоканальном перемножителе-сумматоре 35 они для каждого символа умножаются на коэффициент α с выхода нелинейного блока 34, образуя метрики переходов µ. Со второго блока памяти 38 поступают значения метрик состояний Г, полученные на предыдущем шаге. В многоканальном сумматоре 42 они складываются с метриками тех переходов, которые выходят из каждого состояния. После этого в блоке сравнения и выбора 43 производится анализ этих сумм по каждому новому состоянию. В каждое состояние входит два перехода. Сравниваются соответствующие им суммы, и выбирается тот переход, сумма которого меньше по величине, другой переход отбрасывается. Таким образом, получаются новые метрики состояний Г, которые будут использоваться в следующем шаге. Эти метрики запоминаются в третьем блоке памяти 39 и при начале следующего шага передаются во второй блок памяти 38.
Также в третьем блоке памяти 39 запоминаются номера оставшихся переходов для каждого состояния и присоединяются к тем номерам переходов, которые составляли путь до данного состояния. Пути, подходившие к отброшенным на этом шаге переходам, из памяти удаляются. В памяти по каждому шагу хранятся пути, если их остается более одного. Когда остается для каждого шага только один переход, то информационный символ, закодированный на этом шаге, считается декодированным и номера переходов, составляющие этот путь, из третьего блока памяти 39 удаляются и передаются в четвертый блок памяти 40. В нем коды этих переходов сравниваются с соответствующими им значениями информационных символов и раскодированная информационная последовательность с выхода четвертого блока памяти 40 поступает на выход устройства.
Принцип обработки сигналов в соответствии с предлагаемым способом заключается в следующем.
Как известно, основной принцип известного способа «мягкого» декодирования по алгоритму Витерби заключается в выборе того пути по решетчатой диаграмме, который в целом обладает минимальной метрикой, т.е. минимальной суммой евклидовых расстояний по всем принятым символам от варианта кода, соответствующего каждому символу, до значения напряжения, полученного с выхода демодулятора во время прихода этого символа. Каждый вариант пути соответствует определенному варианту последовательности переданных символов, путь с наименьшей метрикой соответствует наиболее вероятной переданной последовательности символов.
q
q
Это правило обусловлено такими соотношениями. Согласно методу максимального правдоподобия, мы из всех возможных вариантов последовательностей принятых символов должны выбрать наиболее вероятную. Пусть вероятность q-го варианта последовательности равна P, т.о. необходимо найти тот номер q, при котором обеспечивается max{P}.
<mrow><msubsup><mi>a</mi><mi>i</mi><mi>q</mi></msubsup></mrow>
q
Пусть длина последовательности символов равна N. Каждый вариант q состоит из своей последовательности логических нолей у единиц. Обозначим через
значение i-го символа в последовательности номера q. Поскольку обычно полагается, что и значения передаваемых символов, и шумовые реализации на временных интервалах разных символов взаимно независимы, то вероятности P равны:
<mrow><msub><mi>P</mi><mi>q</mi></msub><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∏</mo><mi>i</mi><mi>N</mi></munderover><mrow><msubsup><mi>p</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo>{</mo><msub><mi>y</mi><mi>i</mi></msub><mo>/</mo><msubsup><mi>a</mi><mi>i</mi><mi>q</mi></msubsup><mo>}</mo></mrow></mstyle><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>1</mn><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>p</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo>{</mo><msub><mi>y</mi><mi>i</mi></msub><mo>/</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo>}</mo></mrow>
<mrow><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup></mrow>
i
где
- условная вероятность того, что при значении переданного i-го символа, равном
, на выходе демодулятора появится напряжение, равное y.
Первоначально рассмотрим ситуацию, когда замирания уровня принимаемого сигнала отсутствуют, т.е. при передаче перемежения и при приеме деперемежения не производится. Тогда при воздействии шума, имеющего гауссов характер распределения, каждая условная вероятность в формуле (1) будет равна
<mrow><msubsup><mi>p</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo>{</mo><msub><mi>y</mi><mi>i</mi></msub><mo>/</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo>}</mo><mo>=</mo><mfrac><mn>1</mn><mrow><mi>q</mi><msqrt><mn>2</mn></msqrt></mrow></mfrac><mi>exp</mi><mo>{</mo><mo>−</mo><mfrac><mrow><msup><mrow><mo stretchy="false">[</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo stretchy="false">]</mo></mrow><mn>2</mn></msup></mrow><mrow><mn>2</mn><msup><mi>σ</mi><mn>2</mn></msup></mrow></mfrac><mo>}</mo><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>2</mn><mo stretchy="false">)</mo></mrow>
2
где σ - мощность шума, одинаковая для всех принятых символов.
q
q
q
При нахождении последовательности с максимальным значением P будем сравнивать не величины P, а величины ln(P), что даст тот же результат, поскольку логарифм - монотонная функция. Тогда
<mrow><mi>ln</mi><mo stretchy="false">(</mo><msub><mi>P</mi><mi>q</mi></msub><mo stretchy="false">)</mo><mo>=</mo><mo>−</mo><mi>N</mi><mi>ln</mi><mi>σ</mi><mo>−</mo><mn>0,5</mn><mi>N</mi><mi>ln</mi><mn>2</mn><mo>−</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msup><mi>σ</mi><mn>2</mn></msup></mrow></mfrac><msup><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mi>i</mi><mi>N</mi></munderover><mrow><mo stretchy="false">[</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo stretchy="false">]</mo></mrow></mstyle></mrow><mn>2</mn></msup><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>3</mn><mo stretchy="false">)</mo></mrow>
q
i
2
<mrow><mi>min</mi><mo>{</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mi>i</mi><mi>N</mi></munderover><mrow><msup><mrow><mo stretchy="false">[</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo stretchy="false">]</mo></mrow><mn>2</mn></msup></mrow></mstyle><mo>}</mo></mrow>
<mrow><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi></mrow></msubsup></mrow>
Поскольку для всех вариантов q величина - Nlnσ-0,5ln2 остается одна и та же, то при определении максимальной P ее можно не учитывать и также можно не учитывать сомножитель 1/2σ перед суммой. Поскольку знак суммы отрицательный, то максимальное значение Pq будет при минимальном значении этой суммы без знака «минус», т.е. при
. Таким образом, получаем правило алгоритма Витерби, заключающееся в выборе пути с минимальной суммой расстояний между принятыми значениями символов y и их вариантами
для каждого варианта пути.
Другая картина наблюдается при наличии замираний, когда на передающей стороне производится перемежение символов, а на приемной стороне - их обратное деперемежение. В этом случае соседние декодируемые символы при передаче по каналу будут отстоять друг от друга на значительный интервал времени. Уровень принимаемого сигнала при этом может сильно различаться. Таким образом, при постоянном уровне шума входных цепей, который в основном и определяет общий уровень шума, отношение «сигнал/шум» принимаемых сигналов в разные моменты времени может сильно различаться.
Поскольку при фазовой демодуляции из сигнала предварительно убираются изменения амплитуды, то при уменьшении отношения «сигнал/шум» на входе демодулятора, оно уменьшается и на выходе, но при этом уровень выходного сигнала остается постоянным, а уровень шума увеличивается. Поэтому в соседних декодируемых символах уровни шума могут быть различные и формулы (2) и (3) уже не описывают наилучший метод декодирования. В частности, теперь условная вероятность каждого символа равна:
<mrow><msubsup><mi>p</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo>{</mo><msub><mi>y</mi><mi>i</mi></msub><mo>/</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo>}</mo><mo>=</mo><mfrac><mn>1</mn><mrow><msub><mi>σ</mi><mi>i</mi></msub><msqrt><mn>2</mn></msqrt></mrow></mfrac><mi>exp</mi><mo>{</mo><mo>−</mo><mfrac><mrow><msup><mrow><mo stretchy="false">[</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo stretchy="false">]</mo></mrow><mn>2</mn></msup></mrow><mrow><mn>2</mn><msubsup><mi>σ</mi><mi>i</mi><mn>2</mn></msubsup></mrow></mfrac><mo>}</mo><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>4</mn><mo stretchy="false">)</mo></mrow>
i
где σ - среднеквадратическое значения шума на временном интервале i-го символа. Формула (3) также преобразуется в:
<mrow><mi>ln</mi><mo stretchy="false">(</mo><msub><mi>P</mi><mi>q</mi></msub><mo stretchy="false">)</mo><mo>=</mo><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mi>i</mi><mi>N</mi></munderover><mrow><mi>ln</mi><msub><mi>σ</mi><mi>i</mi></msub><mo>−</mo><mn>0,5</mn><mi>N</mi><mi>ln</mi><mn>2</mn><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mi>i</mi><mi>N</mi></munderover><mrow><mfrac><mn>1</mn><mrow><mn>2</mn><msubsup><mi>σ</mi><mi>i</mi><mn>2</mn></msubsup></mrow></mfrac><msup><mrow><mo stretchy="false">[</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo stretchy="false">]</mo></mrow><mn>2</mn></msup><mo>=</mo><mo>−</mo></mrow></mstyle></mrow></mstyle><mstyle displaystyle="true"><munderover><mo>∑</mo><mi>i</mi><mi>N</mi></munderover><mrow><mi>ln</mi><msub><mi>σ</mi><mi>i</mi></msub><mo>−</mo><mn>0,5</mn><mi>N</mi><mi>ln</mi><mn>2</mn><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mi>i</mi><mi>N</mi></munderover><mrow><msub><mi>α</mi><mi>i</mi></msub><msup><mrow><mo stretchy="false">[</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo stretchy="false">]</mo></mrow><mn>2</mn></msup></mrow></mstyle></mrow></mstyle><mo>,</mo><mtext> </mtext><mo stretchy="false">(</mo><mn>5</mn><mo stretchy="false">)</mo></mrow>
<mrow><msub><mi>α</mi><mi>i</mi></msub><mo>=</mo><mn>1</mn><mo>/</mo><mn>2</mn><msubsup><mi>σ</mi><mi>i</mi><mn>2</mn></msubsup></mrow>
<mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mi>i</mi><mi>N</mi></munderover><mrow><mi>ln</mi><msub><mi>σ</mi><mi>i</mi></msub></mrow></mstyle></mrow>
q
где
- некоторые корректирующие коэффициенты. Поскольку длина всех путей одинакова, то составляющая
для всех P будет также одинаковой и при определении номера наибольшей ее можно не учитывать.
<mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mi>i</mi><mi>N</mi></munderover><mrow><msub><mi>α</mi><mi>i</mi></msub><msup><mrow><mo stretchy="false">[</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>a</mi><mi>i</mi><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">)</mo></mrow></msubsup><mo stretchy="false">]</mo></mrow><mn>2</mn></msup></mrow></mstyle></mrow>
Таким образом, в предлагаемом способе правило декодирования состоит в выборе той последовательности символов, которой соответствует минимум суммы
k
k
Действительно, при суммировании для каждого варианта пути всех метрик его переходов нельзя между собой приравнивать их «качество». Сказанное иллюстрируется рисунком на фиг.2. Рассмотрим верхний график на этом рисунке. Он соответствует ситуации, когда до демодуляции отношение «сигнал/шум» имеет большую величину, то есть после демодуляции уровень шума относительно невелик. Уровень y символов после демодуляции при отсутствии шума может принимать значения +1 или -1 в соответствии с логическими значениями «1» и «0» переданных символов x.
k
k
k
k
k
k
k
k
k
Когда присутствует шум, то уровень символов y может принимать любое значение из непрерывного интервала. Условная вероятность Р{y/x=1} того, что при передаче x=1 значение символа после демодуляции будет равно y, имеет плотность распределения, показанную на рисунке сплошной кривой (правый график). Условная вероятность Р{y/x=0} того, что при передаче x=0 значение символа после демодуляции будет равно y, имеет плотность распределения, показанную на рисунке прерывистой кривой (левый график).
q
q
q
q
q
q
q
q
Широкой вертикальной прямой показана ситуация получения в результате демодуляции значения y некоторого конкретного символа. Условная вероятность Р{y/x=1}, что при этом передавался x=1, обозначена точкой под номером 1. Условная вероятность Р{y/x=0}, что при этом передавался x=0, обозначена точкой под номером 2. Условная вероятность первой ситуации существенно выше, чем второй, и когда будет принято решение, что величина символа x=1, такое решение будет достаточно правдоподобным.
Теперь рассмотрим нижний рисунок на фиг.2. Он соответствует ситуации, когда до демодуляции отношение «сигнал/шум» невелико, при этом уровень шума после демодуляции существенно выше, чем в первой ситуации. Соответственно, обе кривые условной плотности распределения существенно более растянуты по горизонтальной оси.
q
q
q
q
q
В этом случае при получении после демодуляции такого же значения символа y, точка 1, соответствующая передаче x=1, также расположена выше точки 2, соответствующей передаче x=0. Однако обе точки расположены существенно ближе между собой, т.е. значения условной вероятности для обоих значений x различаются мало. И, хотя в этом случае также будет принято решение, что передавался символ x=1, но ценность, «качество» такого решения будет существенно ниже, чем в первой ситуации.
Возвращаясь к сравнению различных путей по решетчатой диаграмме с целью выбора пути с минимальной суммарной метрикой переходов, можно отметить, что простое суммирование метрик переходов даст правильное решение только в случае равноправия и одинаковости условий вычисления каждой метрики. Если же условия неодинаковы, то простое суммирование, как производится в случае использования прототипа, может дать неправильный выбор наилучшего пути, а, следовательно, неправильное декодирование принятой последовательности.
В этом случае необходимо учитывать условия работы при вычислении каждой метрики перехода, и проводить взвешенное суммирование для вычисления метрик различных путей, как предлагается в заявляемом способе. Как было показано выше, чтобы решение было максимально правдоподобным, весовые коэффициенты при этом должны определяться в соответствии с приведенными формулами.
В соответствии с необходимостью реализации именно такой обработки сигналов осуществляются операции предлагаемого способа. В операции 1 осуществляется обычная последовательность действий при приеме, т.е. радиосигналы из канала передачи принимаются, усиливаются в линейном тракте приемника и переносятся на промежуточную частоту для дальнейшей обработки. В операции 2 осуществляется автоматическая регулировка усиления, таким образом, средний уровень сигналов поддерживается постоянным для дальнейшей демодуляции. При демодуляции (операция 3) этот сигнал подвергается корреляционной обработке. При этом он перемножается с сигналом опорного генератора, частота которого равна средней частоте, а фаза подстраивается под фазу принимаемого сигнала так, чтобы при передаче логической единицы результат перемножения принимал положительное значение, а при передаче логического нуля - отрицательное значение. Результат перемножения усредняется на интервале Т, равном длительности одного символа.
S
S
S
S
Амплитуда опорного сигнала постоянна и имеет такую величину, чтобы без учета теплового шума результат усреднения равнялся некоторой величине U при передаче логической единицы, и равнялся -U при передаче логического нуля. Величина U принципиального значения не имеет, для удобства изложения будем считать U=1.
Однако присутствие теплового шума в тактах реальных приемников приводит к тому, что результат усреднения после демодуляции принимает не два возможных значения (+1 и -1), а может лежать в некотором непрерывном интервале значений между +1 и -1. Будем считать, что если результат перемножения получается больше +1 или меньше -1, то при демодуляции он принимается равным +1 или -1 соответственно. (Для удобства дальнейшей обработки результат перемножения может оцифровываться, хотя конечная цель предлагаемого способа - повышение помехоустойчивости передачи - достигается и при использовании результата перемножения в аналоговой форме).
i
После этого производится деперемежение символов, то есть восстановление того порядка их следования, который был исходным до перемежения в передатчике. (Именно такой в таком порядке они поступали от источника информации для передачи). В результате получается последовательность символов y, значения которых лежат в интервале от +1 до -1. Эта последовательность подается для дальнейшей обработки по алгоритму Витерби. Набор операций 2-4 является известным и стандартным при осуществлении «мягкого» декодирования.
S
S
В предлагаемом способе параллельно и одновременно с этой последовательностью операции производится другая последовательность операций (операции 10-14). При амплитудном детектировании 10 определяется текущий уровень принимаемого сигнала. Далее производится усреднение результата детектирования (операция 11) для уменьшения влияния помех и шумов. Интервал времени усреднения T определяется скоростью изменения уровня принимаемого сигнала в результате замираний и равен, T=1//F, где F - максимальная частота замираний, т.е. усреднение производится в течение интервала времени, на протяжении которого относительные изменения уровня сигнала невелики.
i
После этого осуществляется второе деперемежение 12, которое полностью идентично первому деперемежению 4 и производится в те же моменты времени. Таким образом, величина сигналов после второго деперемежения в каждый i-й момент времени соответствует по времени уровню символа y сразу после приема до регулировки его уровня и демодуляции.
ВЫХ
ВЫХ
ВХ
ВХ
После этого производится нелинейное преобразование (операция 13) уровней сигналов, получаемых после второго деперемежения. Как известно (см., например, кн. Гоноровский И.С. Радиотехнические цепи и сигналы, - М.: Радио и связь, 1986), после демодуляции, например, фазового детектирования, отношение «сигнал\шум» U/σ связано с этим отношением до детектирования U/σ;
как:
ВЫХ
ВЫХ
ВХ
ВХ
U/σ=f(U/σ),
ВХ
ВЫХ
ВХ
ВЫХ
где U и U - средние уровни полезных сигналов до и после демодуляции; σи σ - среднеквадратический уровень шума до и после демодуляции; f - некоторая монотонно возрастающая нелинейная функция, вид которой зависит от используемого вида модуляции. При больших отношениях «сигнал/шум» до демодуляции эта функция - линейная, т.е.
ВЫХ
ВЫХ
1
ВХ
ВХ
U/σ=k(U/σ),
1
где k - некоторый коэффициент пропорциональности.
ВХ
ВХ
ВХ
ВЫХ
Уровень входного шума σ - величина известная и, как правило, постоянная в течение сеанса передачи, т.е. σ=const. Уровень полезного сигнала после демодуляции определяется параметрами модуляции и для фазовой манипуляции от амплитуды входного сигнала не зависит. Поэтому при уменьшении отношения «сигнал/шум» из-за уменьшения среднего уровня полезного U сигнала до демодуляции в сигнале после демодуляции отношение «сигнал/шум» тоже уменьшается, но за счет возрастания уровня шума σ.
i
ВЫХ
2
Для получения коэффициентов α, требующихся для обработки сигналов в соответствии с формулой (5), необходимо найти величину 1/σ .
<mrow><msub><mi>α</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><msubsup><mi>σ</mi><mrow><mi>В</mi><mi>Ы</mi><mi>Х</mi></mrow><mn>2</mn></msubsup></mrow></mfrac><mo>=</mo><mfrac><mn>1</mn><mrow><msubsup><mi>U</mi><mrow><mi>В</mi><mi>Ы</mi><mi>Х</mi></mrow><mn>2</mn></msubsup></mrow></mfrac><msup><mi>f</mi><mn>2</mn></msup><mo stretchy="false">(</mo><mfrac><mrow><msub><mi>U</mi><mrow><mi>В</mi><mi>Х</mi></mrow></msub></mrow><mrow><msub><mi>σ</mi><mrow><mi>В</mi><mi>Х</mi></mrow></msub></mrow></mfrac><mo stretchy="false">)</mo><mo>=</mo><mi>F</mi><mo stretchy="false">(</mo><msub><mi>U</mi><mrow><mi>В</mi><mi>Х</mi></mrow></msub><mo stretchy="false">)</mo><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>6</mn><mo stretchy="false">)</mo></mrow>
Эта величина меняется только при изменениях среднего уровня входного сигнала, поскольку остальные величины можно считать постоянными. Для больших входных отношений «сигнал/шум» формула (6) приобретает вид:
<mrow><msub><mi>α</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><msubsup><mi>σ</mi><mrow><mi>В</mi><mi>Ы</mi><mi>Х</mi></mrow><mn>2</mn></msubsup></mrow></mfrac><mo>=</mo><mfrac><mrow><msubsup><mi>k</mi><mn>1</mn><mn>2</mn></msubsup></mrow><mrow><msubsup><mi>U</mi><mrow><mi>В</mi><mi>Ы</mi><mi>Х</mi></mrow><mn>2</mn></msubsup><msubsup><mi>σ</mi><mrow><mi>В</mi><mi>Х</mi></mrow><mn>2</mn></msubsup></mrow></mfrac><msubsup><mi>U</mi><mrow><mi>В</mi><mi>Х</mi></mrow><mn>2</mn></msubsup><mo>=</mo><msub><mi>k</mi><mn>2</mn></msub><msubsup><mi>U</mi><mrow><mi>В</mi><mi>Х</mi></mrow><mn>2</mn></msubsup></mrow>
2
где k - некоторый коэффициент.
i
i
Таким образом, после нелинейного преобразования (операция 13) вырабатываются значения коэффициентов α, которые соответствуют символам y. Эти коэффициенты при перемножении-суммировании домножаются на евклидовы расстояния между принятым символом и всеми вариантами в разных переходах, и для каждого перехода полученные произведения складываются по всем символам принятой кодовой группы, образуя метрику данного перехода.
Кроме введеного в заявляемом методе многоканального перемножения-суммирования (операция 14), остальные операции алгоритма Витерби 15 производятся известным способом.
Предлагаемый способ декодирования может быть проиллюстрирован на конкретном примере. Рассмотрим осуществление сверточного кодирования в передатчике на основе фиг.3.
Как известно, при сверточном кодировании каждый получаемый после кодирования символ определяется значениями нескольких информационных символов (в рассматриваемом примере - трех символов). Кроме этого, при получении от источника информации каждого нового информационного символа на его основе и нескольких предыдущих информационных символов вырабатывается не один, а группа подряд идущих кодовых символов (в рассматриваемом примере - группа из двух символов), все они получены различными логическими операциями.
i
Таким образом, в рассматриваемом примере кодер (фиг.3) содержит сдвиговый регистр 44, состоящий из трех разрядов. В него последовательно вводятся информационные символы S (ввод слева направо, нумерация разрядов также слева направо). По мере ввода каждого нового символа вся их комбинация сдвигается на один разряд вправо. Символы вводятся через интервал времени 2T.
i1
i2
i
i1
i2
На первый сумматор 45 по модулю два поступают сигналы со всех трех разрядов сдвигового регистра. На второй сумматор 46 по модулю два поступают сигналы с первого и третьего разрядов сдвигового регистра. Результаты суммирования по модулю два образуют сигналы, соответственно, x и x, которые подаются на входы коммутатора 47. Коммутатор через интервалы времени, равные Т, поочередно подключает на свой выход то один, то другой из этих сигналов. Таким образом, с приходом каждого нового информационного символа S на выход кодера последовательно подается соответствующая ему группа символов x и x.
i
На приемной стороне (фиг.4) сигналы из канала передачи принимаются приемником 16, где производится их предварительная обработка (усиление и перенос спектра сигналов с несущей частоты на соответствующую промежуточную частоту.) С помощью блока автоматической регулировки усиления 22 средний уровень сигнала далее поддерживается постоянным, что необходимо для работы демодулятора. В демодуляторе производится «мягкая» демодуляция и на его выходе каждый символ имеет какую-либо величину между заранее известными максимальным положительным и максимальным отрицательным значениями. После этого в первом блоке деперемежения 24 порядок следования символов по времени изменяется, они переставляются в том порядке, в котором в передатчике следовали с выхода кодера до перемежения. Таким образом, получается последовательность символов y, необходимая для осуществления декодирования.
i
i
i
i
Параллельно с этими процедурами производится получение весовых коэффициентов α, соответствующих каждому символу y, и необходимых для декодирования согласно заявляемому способу. Для этого сигналы с приемника детектируются по амплитуде в амплитудном детекторе 20, и их уровень усредняется в усреднителе 21 с постоянной времени, определяемой скоростью изменения амплитуды входного сигнала приемника. После этого отсчеты выходного напряжения усреднителя переставляются по времени во втором блоке деперемежения 25 таким же образом, как и в первом блоке деперемежения 24. Далее уровень напряжения выходных сигналов второго блока деперемежения в нелинейном блоке 26 изменяется в соответствии с нелинейной функцией передачи амплитуды, определяемой используемым видом модуляции. Таким образом, уровень каждого полученного с выхода нелинейного блока отсчета напряжения α определяется уровнем символа y на выходе приемника и поступает в декодер Витерби 17 одновременно с ним.
Блоки декодера Витерби дополнены многоканальным перемножителем-сумматором 19, который помещен после многоканального вычитателя 18. Более подробно схема декодера Витерби представлена на фиг.5, рисунки, поясняющие его работу, приведены на фиг.6 и фиг.7.
j
Рассмотрим процедуру декодирования по известному алгоритму Витерби. В первом блоке памяти 37 хранятся варианты кодов выходных сигналов кодера δ, которые он вырабатывает при поступлении на его вход очередного информационного символа и с учетом тех символов, которые поступили до этого. В рассматриваемом примере вновь пришедший символ будет записан в первый разряд сдвигового регистра 44 (фиг.3), два предыдущих символа размещаются во втором и третьем разрядах сдвигового регистра.
Эти два предыдущих символа определяют состояние регистра до прихода следующего символа. В зависимости от их логических значений возможны четыре комбинации - 00, 10, 01 и 11 (здесь первая цифра соответствует символу во втором разряде регистра, вторая цифра - символу в третьем разряде регистра). На фиг.6 эти состояния пронумерованы номерами, соответственно, 1, 2, 3 и 4. При приходе очередного информационного символа вся последовательность записанных в регистр символов сдвигается вправо. Вновь пришедший символ помещается в первый разряд, символ из первого разряда перемещается во второй, из второго в третий, а из третьего разряда символ удаляется. Таким образом, комбинация символов во втором и третьем разрядах либо изменяется, либо нет.
На фиг.6 левый столбец жирных точек и номерами 1-4 соответствует предыдущему состоянию кодера, правый столбец точек соответствует его последующему состоянию. Стрелками обозначены возможные варианты переходов из предыдущего состояния в последующее при приходе очередного символа. Сплошные стрелки обозначают переходы в случае, если в первом разряде сдвигового регистра записывается логический ноль, прерывистые стрелки означают, что в первом разряде записывается логическая единица. Таким образом, возможных вариантов переходов - восемь, они соответствуют восьми различным комбинациям содержимого регистра.
i1
i2
Коды, вырабатываемые кодером, определяются той комбинацией, которая записана в регистре. В рассматриваемом примере коды состоят из групп, содержащих по два символа, x и x. Эти символы получаются в результате логических операций вида:
i1
1
2
3
x=S⊕S⊕S,
i2
1
3
x=S⊕S,
1
2
3
j
где S, S, S - символы в первой, второй и третьей ячейках сдвигового регистра соответственно; знаком ⊕ обозначена операция сложения по модулю два. Обозначим группу из значений этих двух символов через δ, j=1÷8, т.е. возможны восемь вариантов кодовых групп, соответствующих восьми вариантам переходов. (На фиг.6 около переходов написаны варианты соответствующих им кодовых групп).
j
i1
j
i2
j
j
i1
i2
i1
i2
2
2
На приемной стороне все варианты известны и хранятся в первом блоке памяти 37, откуда по многоканальной шине поступают на многоканальный вычитатель 41. В многоканальном вычитателе для каждого i-го символа вычисляется набор напряжений вида [δ(1)-y] и [δ(2)-y}, j=1÷8, где δ(1) - значение первого символа в j-том варианте кодовой группы, δ(2) - значение второго символа в этом варианте; y y - принятые символы, соответствующие переданным символам x и x.
Эти напряжения по многоканальной шине поступают на входы многоканального перемножителя-сумматора 35, где вычисляются метрики переходов для каждого j-го варианта перехода по формуле:
i12
i1
j
i1
i2
j
i2
2
2
µ=α[δ(1)-y]+α[δ(2)-y],
1
2
i1
i2
где α и α весовые коэффициенты, соответствующие символам y и y.
1,i
2,i
3,i
4,i
В многоканальном сумматоре 42, эти метрики переходов складываются с метриками состояний Г, Г, Г, Г, соответствующими предыдущему шагу (до принятия текущей кодовой группы). Метрика каждого перехода складывается с метрикой того состояния, откуда выходит этот переход (в соответствии с рисунком на фиг.7).
В блоке сравнения и выбора 43 формируются метрики для следующих состояний i+1. Для этого по каждому из состояний (в каждое из состояний входят два перехода) сравниваются две суммы этих двух переходов. Выбирается тот переход, сумма которого меньше по величине. Другой переход отбрасывается. Эта сумма становится метрикой данного состояния для последующего шага и запоминается в третьем блоке памяти 39.
1,i+1
2,i+1
3,i+1
4,i+1
В рассматриваемом примере новые метрики состояний Г, Г ГГ, определяются по формулам (в них метрики переходов, полученные на данном шаге, пронумерованы по номерам переходов индексом j от 1 до 8,7=1÷8):
<mtable columnalign="left"><mtr><mtd><msub><mi>Г</mi><mrow><mn>1,</mn><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mi>min</mi><mo>{</mo><msub><mi>Г</mi><mrow><mn>1,</mn><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>μ</mi><mn>1</mn></msub><mo>;</mo><mtext> </mtext><msub><mi>Г</mi><mrow><mn>3,</mn><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>μ</mi><mn>5</mn></msub><mo>}</mo><mo>,</mo></mtd></mtr><mtr><mtd><msub><mi>Г</mi><mrow><mn>2,</mn><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mi>min</mi><mo>{</mo><msub><mi>Г</mi><mrow><mn>1,</mn><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>μ</mi><mn>2</mn></msub><mo>;</mo><mtext> </mtext><msub><mi>Г</mi><mrow><mn>3,</mn><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>μ</mi><mn>6</mn></msub><mo>}</mo><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>7</mn><mo stretchy="false">)</mo></mtd></mtr><mtr><mtd><msub><mi>Г</mi><mrow><mn>3,</mn><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mi>min</mi><mo>{</mo><msub><mi>Г</mi><mrow><mn>2,</mn><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>μ</mi><mn>3</mn></msub><mo>;</mo><mtext> </mtext><msub><mi>Г</mi><mrow><mn>4,</mn><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>μ</mi><mn>7</mn></msub><mo>}</mo><mo>,</mo></mtd></mtr><mtr><mtd><msub><mi>Г</mi><mrow><mn>4,</mn><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mi>min</mi><mo>{</mo><msub><mi>Г</mi><mrow><mn>2,</mn><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>μ</mi><mn>4</mn></msub><mo>;</mo><mtext> </mtext><msub><mi>Г</mi><mrow><mn>4,</mn><mi>i</mi></mrow></msub><mo>+</mo><msub><mi>μ</mi><mn>8</mn></msub><mo>}</mo><mo>.</mo></mtd></mtr></mtable>
1,i
2,i
3,i
4,i
1,i+1
2,i+1
3,i+1
4,i+1
При расчетах на данном шаге метрики берутся из второго блока памяти 38. После получения по формулам (7) метрик Г, Г, Г, Г для расчетов на следующем шаге, эти метрики поступают во второй блок памяти 38, где предыдущие метрики удаляются, а вместо них теперь сохраняются метрики Г, Г, Г, Г до проведения аналогичных процедур с приходом следующей кодовой группы. Перед началом сеанса работы метрики всех состояний равны нулю.
В третьем блоке памяти хранятся номера тех переходов, которые остались после сравнения по правилу (7), а также номера предыдущих оставшихся переходов, которые подходили к каждому состоянию и были оставлены, т.к. соответствующие им суммы были минимальны. Если к какому-либо предыдущему состоянию подходил переход, оставленный на (i-1)-м шаге (т.е. на шаге до рассматриваемого сейчас), а теперь переход до этого состояния оказался отброшенным, то отбрасывается и удаляется из третьего блока памяти номер и предыдущего перехода, оставленного на (i-1)-м шаге.
Таким образом, в третьем блоке памяти 39 сохраняются номера переходов, пока для каждого шага остаются запомненными номера более чем одного перехода. Когда же по мере получения новых кодовых групп для предыдущих шагов останется запомненным номер только какого-либо одного перехода, то такие номера передаются в четвертый блок памяти 40. В нем хранится информация о соответствии каждого номера перехода передаче либо логической единицы, либо логического нуля. Тогда логический символ, переданный на таком шаге, считается раскодированным и поступает на выход устройства.
i
Если не вводить поправки путем умножения на весовые коэффициенты α, то описанный алгоритм является стандартной процедурой «мягкого» декодирования Витерби. Но без введения таких поправок в случае работы с перемежением-деперемежением символов при определении наилучшего пути путем выбора пути с минимальной метрикой, будут совершаться ошибки выбора, т.к. в этих условиях правило вычисления минимальных метрик должно быть другое и реализовываться по формулам (4) и (5). А правило вычисления, используемое в известном способе, не соответствует принципу максимального правдоподобия для рассматриваемых условий работы, значит будет порождать неверный выбор и большое количество ошибок при декодировании.
Таким образом, использование предлагаемого способа при работе в условиях перемежения-деперемежения передаваемых закодированных сверточным кодом символов позволяет снизить вероятность ошибки при декодировании и повысить помехоустойчивость передаваемой информации.