СПОСОБ КОДОВОЙ ЦИКЛОВОЙ СИНХРОНИЗАЦИИ С МЯГКИМИ РЕШЕНИЯМИ
SOFT DECISION CODE FRAME SYNCHRONISATION METHOD

Изобретение относится к способам кодовой цикловой синхронизации сообщений при передаче цифровой информации и может быть использовано для цикловой синхронизации каскадных кодов, турбокодов и каскадных сигнально-кодовых конструкций.
Для повышения вероятности доведения сообщения в каналах связи с ошибками применяют помехоустойчивое кодирование. Наиболее эффективным с точки зрения соотношения помехоустойчивости приема сообщений и сложности технической реализации является применение каскадного помехоустойчивого кода. Для правильного декодирования каскадного кода необходимо знать границы этого кода. На приемной стороне для определения начала кода применяют кодовую цикловую синхронизацию. При кодовой цикловой синхронизации синхронизирующую последовательность передают в проверочной части каскадного кода. Кодовая цикловая синхронизация может быть установлена при наличии искажений в принятом каскадном коде, не превышающем определенного порогового значения. После установления кодовой цикловой синхронизации синхронизирующую последовательность вычитают из проверочной части каскадного кода, не уменьшая при этом его корректирующую способность. Повысить вероятность установления синхронизации возможно за счет мягких решений при установлении синхронизации каскадного кода. В этом случае пороговое значение числа неискаженных символов каскадного кода, при котором устанавливается кодовая цикловая синхронизация, учитывает мягкие веса символов кода, характеризующие достоверность этих символов. Кодовая цикловая синхронизация с мягкими решениями может также использоваться в других кодах с каскадированием составных кодов, например в турбокодах и в сигнально-кодовых конструкциях (СКК) на основе блоковых или сверточных кодов.
Известен способ кодовой цикловой синхронизации сообщений, при котором на передающей стороне формируют выходную последовательность, состоящую из следующих друг за другом информационных и проверочных символов помехоустойчивого кода, которую затем вместе с синхронизирующей последовательностью передают по каналу связи. На приемной стороне в скользящем окне приема принятую синхронизирующую последовательность сравнивают с переданной синхронизирующей последовательностью и при совпадении принятой синхронизирующей последовательности и переданной синхронизирующей последовательности устанавливают цикловую синхронизацию, совпадающую с местоположением начала скользящего окна приема. При несовпадении принятой синхронизирующей последовательности и переданной синхронизирующей последовательности скользящее окно приема смещают на один символ по входной последовательности и опять сравнивают принятую синхронизирующую последовательность и переданную синхронизирующую последовательность и так повторяют до тех пор, пока принятая синхронизирующая последовательность не совпадет с переданной синхронизирующей последовательностью [Передача дискретных сообщений. Под ред. В.П.Шувалова. - М.: Радио и связь. 1990. Стр.348-349].
Однако этот способ снижает объем полезной информации, передаваемой по каналу связи, из-за необходимости отдельной передачи специальной служебной синхронизирующей последовательности.
Известен способ кодовой цикловой синхронизации, заключающийся в том, что принятую входную последовательность, состоящую из нескольких следующих друг за другом слов, каждое из которых представляет собой поразрядную сумму по модулю два помехоустойчивого циклического кода, синхронизирующей последовательности и нумерующей последовательности, умножают на проверочный полином помехоустойчивого циклического кода и на проверочный полином нумерующей последовательности и получают сумму синдрома помехоустойчивого циклического кода и синхронизирующей последовательности. Затем выделяют нумерующую последовательность принятого помехоустойчивого циклического кода, сравнивают ее с нумерующими последовательностями ранее принятых помехоустойчивых циклических кодов и запоминают число совпадений нумерующей последовательности с ранее принятыми нумерующими последовательностями в одном из счетчиков совпадений. Причем при совпадении нумерующей последовательности с ранее принятыми нумерующими последовательностями число в соответствующем счетчике совпадений увеличивают на 1 и в случае превышения числа, записанного в соответствующем счетчике совпадений порогового значения, принимают решение о кодовой цикловой синхронизации входной последовательности (патент РФ №2401512, МПК H04L 7/08. Квашенников В.В., Сосин П.А. Способ кодовой цикловой синхронизации. Приор. 16.03.2009, опубл. 10.10.2010, бюл. №28).
Однако при этом способе вероятность установления цикловой синхронизации недостаточно высокая из-за того, что не учитываются достоверности символов синхронизирующей последовательности, которые зависят от качества приема символов и состояния канала связи.
Наиболее близким к предлагаемому способу является способ кодовой цикловой синхронизации сообщений с мягкими решениями (прототип), заключающийся в том, что на передающей стороне формируют последовательность кодовых слов в виде следующих друг за другом внутренних слов каскадного кода, каждое из которых представляет собой сумму по модулю два помехоустойчивого циклического кода и синхронизирующей последовательности. На приемной стороне входную последовательность, принятую в скользящем окне приема, делят на порождающий полином помехоустойчивого циклического кода. В результате деления получают сумму синдрома помехоустойчивого циклического кода и синхронизирующей последовательности. Далее из полученной суммы вычитают синхронизирующую последовательность и выделяют синдром помехоустойчивого циклического кода. Затем по синдрому помехоустойчивого циклического кода вычисляют комбинацию ошибок в помехоустойчивом циклическом коде и оценивают ее вес. Далее по весу комбинации ошибок вычисляют достоверности следующих друг за другом слов помехоустойчивого циклического кода. Затем эти достоверности суммируют вместе и далее сравнивают суммарную достоверность слов помехоустойчивых циклических кодов с пороговым значением. При суммарной достоверности слов помехоустойчивых циклических кодов больше порогового значения устанавливают цикловую синхронизацию, совпадающую с началом скользящего окна приема, при суммарной достоверности слов помехоустойчивых циклических кодов больше либо равном, чем пороговое значение, скользящее окно приема смещают на один символ по входной последовательности и вычисление суммарной достоверности слов помехоустойчивых циклических кодов повторяют (патент РФ №2295198, МПК7 H04L 7/08. Зимихин Д.А., Квашенников В.В. Способ кодовой цикловой синхронизации. Приор. 08.06.2005, опубл. 10.03.2007, бюл. №7).
Недостатком этого способа является недостаточно высокая вероятность установления синхронизации, обусловленная тем, что цикловую синхронизацию каскадного кода устанавливают по суммарной достоверности внутренних слов каскадного кода, которая не учитывает мягкие решения относительно числа и конфигурации ошибок внутреннего кода каскадного кода, а значит и синхронизирующей последовательности.
Цель изобретения - увеличение вероятности установления синхронизации за счет того, что суммарная достоверность принятой синхронизирующей последовательности учитывает число и конфигурацию ошибок в синхронизирующей последовательности и в словах внутреннего кода каскадного кода, а также учитывает достоверности отдельных символов синхронизирующей последовательности.
Для достижения цели предложен способ кодовой цикловой синхронизации сообщений с мягкими решениями, заключающийся в том, что на передающей стороне формируют последовательность кодовых слов в виде следующих друг за другом внутренних слов каскадного кода, каждое из которых представляет собой сумму по модулю два помехоустойчивого циклического кода и синхронизирующей последовательности. На приемной стороне входную последовательность, принятую в скользящем окне приема, делят на порождающий полином помехоустойчивого циклического кода. В результате деления получают сумму синдрома помехоустойчивого циклического кода и синхронизирующей последовательности. Далее из полученной суммы вычитают синхронизирующую последовательность и выделяют синдром помехоустойчивого циклического кода. Затем по синдрому помехоустойчивого циклического кода вычисляют комбинацию ошибок в помехоустойчивом циклическом коде и оценивают ее вес. Далее по весу комбинации ошибок вычисляют достоверности следующих друг за другом слов помехоустойчивого циклического кода. Затем эти достоверности суммируют вместе и далее сравнивают суммарную достоверность слов помехоустойчивых циклических кодов с пороговым значением. При суммарной достоверности слов помехоустойчивых циклических кодов больше порогового значения устанавливают цикловую синхронизацию, совпадающую с началом скользящего окна приема, при суммарной достоверности слов помехоустойчивых циклических кодов меньше либо равной, чем пороговое значение, скользящее окно приема смещают на один символ по входной последовательности и вычисление суммарной достоверности слов помехоустойчивых циклических кодов повторяют. Новым является то, что на приемной стороне из принятой в скользящем окне приема входной последовательности вычитают синхронизирующую последовательность и получают последовательность слов помехоустойчивых циклических кодов, далее выполняют декодирование этой последовательности слов помехоустойчивых циклических кодов с мягкими решениями и в результате такого декодирования получают комбинации ошибок последовательности слов помехоустойчивых циклических кодов. Далее оценивают вес полученных комбинаций ошибок последовательности слов помехоустойчивых циклических кодов, после этого оценивают вес комбинаций ошибок, наложенных на синхронизирующую последовательность и только затем определяют суммарную достоверность слов помехоустойчивых циклических кодов, которую сравнивают с пороговым значением. При этом суммарную достоверность слов помехоустойчивых циклических кодов вычисляют как взвешенную сумму достоверностей слов помехоустойчивых циклических кодов, достоверности синхронизирующей последовательности в зависимости от наложенных на нее комбинаций ошибок и достоверностей символов синхронизирующей последовательности. Декодирование последовательности слов помехоустойчивых циклических кодов с «мягкими» решениями осуществляют по алгоритму декодирования Чейза. При этом на передающей стороне только проверочные символы внутреннего кода каскадного кода суммируют по модулю два с символами синхронизирующей последовательности и затем полученную последовательность передают по каналу связи, причем длина скользящего окна приема выбирается равной длине каскадного помехоустойчивого кода, соответствующего передаваемому сообщению.
Осуществление способа кодовой цикловой синхронизации сообщений с мягкими решениями рассмотрим на примере синхронизации помехоустойчивого каскадного кода, внутренним кодом которого является помехоустойчивый циклический двоичный код Боуза-Чоудхури-Хоквингема (БЧХ-код), а внешним - код Рида-Соломона. Для этого на передающей стороне исходное сообщение объемом К m-ичных (m>1) символов вначале кодируют m-ичным помехоустойчивым кодом Рида-Соломона. Код Рида-Соломона является кодом первой ступени помехоустойчивого каскадного кода. В результате кодирования информации получают кодовое слово кода Рида-Соломона (N, K), информационная длина которого равна К, а блоковая - N символов.
Далее информацию кодируют двоичным циклическим кодом БЧХ с порождающим многочленом g(x). Код БЧХ является внутренним кодом или кодом второй ступени помехоустойчивого каскадного кода. Код БЧХ имеет параметры: n - блоковая длина кода, k - информационная длина кода. Кодирование кода БЧХ выполняется по формуле
<mrow><msub><mi>p</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>ƒ</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><msup><mi>x</mi><mrow><mi>n</mi><mo>−</mo><mi>k</mi></mrow></msup><mo>+</mo><mi>ƒ</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><msup><mi>x</mi><mrow><mi>n</mi><mo>−</mo><mi>k</mi></mrow></msup><mi>mod</mi><mi>g</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>.</mo><mtext> </mtext><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>
В результате кодирования кодом БЧХ всех символов кода Рида-Соломона получают N двоичных слов кода БЧХ(n,k) или двоичную последовательность, длина которой составляет nN бит.
10
2
3
2
2
Далее складывают по модулю два символы двоичной последовательности кодов БЧХ с символами двоичной синхронизирующей последовательности. В качестве синхронизирующей последовательности выбирают последовательность с хорошими синхронизирующими свойствами, например код Рида-Маллера (РМ) 1-го порядка (последовательность максимального периода). Синхронизирующая последовательность генерируется заранее в линейном сдвиговом регистре с обратными связями, описываемыми примитивным порождающим полиномом подходящей степени. Например, для порождающего полинома степени 10 будем иметь синхронизирующую последовательность длины 2-1=1023 бит. При этом синхронизирующую последовательность делят на части р(х) длины n-k символов каждая и символы этих частей синхронизирующей последовательности суммируют с соответствующими n-k символами проверочной части соответствующего кода БЧХ: р(х)=р(х)+р(х). Для выполнения этой операции длина синхронизирующей последовательности должна быть не менее V=(n-k)N. Между словами БЧХ в каскадном коде и отрезками синхронизирующей последовательности (кода РМ) устанавливается взаимно однозначное соответствие. Проверочная часть первого слова БЧХ складывается с первым отрезком синхронизирующей последовательности, проверочная часть второго - со вторым отрезком синхронизирующей последовательности и так далее. Такое сложение выполняется со всеми словами кода БЧХ каскадного кода.
3
На приемной стороне входную последовательность, сформированную в виде суммы по модулю два помехоустойчивого циклического кода БЧХ и синхронизирующей последовательности, используют для кодовой цикловой синхронизации. В канале связи из-за искажений сигнала возникают ошибки и на кодовые слова кода БЧХ р(х) накладывается комбинация ошибок е(х). Поэтому входную последовательность на приемной стороне можно представить в виде:
<mrow><msub><mi>p</mi><mn>4</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>p</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>p</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><mi>e</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>.</mo><mtext> </mtext><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>
2
Затем на приемной стороне из принятой в скользящем окне приема входной последовательности вычитают синхронизирующую последовательность р(х) и получают последовательность слов помехоустойчивых циклических кодов с ошибками
<mrow><msub><mi>p</mi><mn>5</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>p</mi><mn>4</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>−</mo><msub><mi>p</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>p</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><mi>e</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>.</mo><mtext> </mtext><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>
1
2
n
1
2
n
Далее выполняют декодирование этой последовательности слов помехоустойчивых циклических кодов с «мягкими» решениями. Декодирование может осуществляться, например, по одному из алгоритмов декодирования Чейза. Известны три алгоритма декодирования Чейза, используемые обычно для декодирования двоичных помехоустойчивых кодов за пределами их минимального кодового расстояния D (Кларк Дж., мл., Кейн Дж. Кодирование с исправлением ошибок в системах цифровой связи. Пер. с англ. - М.: Радио и связь, 1987. - 392 с.). Для малошумящих каналов при использовании алгоритмов Чейза вероятность ошибки для кода с кодовым расстоянием D ведет себя примерно так же, как для кода с коррекцией D-1 ошибок, что позволяет записать приближенные оценки для помехоустойчивости кода. Расширение корректирующей способности кода в алгоритмах Чейза достигается следующим образом. Предположим, что принята последовательность символов кода y, y,…, y с  признаками достоверности соответственно α, α,…, α, характеризующими вероятность ошибки в символах кода. По определенным правилам сформируем образец ошибок Т, который складывается по модулю два с принятым словом Y. Слово Y+T декодируется в «жестком» декодере, на выходе которого можно определить корректируемую ошибку Z. В жестком декодере можно использовать синдромное декодирование, при котором кодовое слово сначала делится на порождающий многочлен кода и вычисляется синдром ошибок. Затем по синдрому помехоустойчивого циклического кода вычисляют комбинацию ошибок в помехоустойчивом циклическом коде. Минимальное значение веса ошибки w(Z) по всему набору образцов ошибок Т дает наиболее вероятную ошибку Z, которая позволяет определить принятое кодовое слово X=Y+Z.
Известны три алгоритма Чейза, отличающиеся правилами выбора образцов ошибок Т.
Алгоритм 1
Образец ошибок T содержит ошибки на s=INT(D/2) местах. Число таких наборов ошибок будет
<mrow><mi>M</mi><mo>=</mo><msup><mrow><mrow><mo>(</mo><mrow><mi>q</mi><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>s</mi></msup><mo>⋅</mo><msubsup><mi>C</mi><mi>N</mi><mi>s</mi></msubsup><mo>,</mo><mtext> </mtext><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>
где q - основание кода.
Алгоритм 2
Образец ошибок Т содержит или не содержит ошибки только на s=INT(D/2) наименее надежных местах. Число таких наборов ошибок будет
<mrow><mi>M</mi><mo>=</mo><msup><mi>q</mi><mi>s</mi></msup><mo>.</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>
Алгоритм 3
Образец ошибок Т содержит ошибки на i местах. При D четном i=1,3,…,D-1, при D нечетном; i=2,4,…,D-1. Число таких наборов ошибок будет
<mrow><mi>M</mi><mo>=</mo><msup><mi>q</mi><mrow><mi>I</mi><mi>N</mi><mi>T</mi><mrow><mo>(</mo><mrow><mi>D</mi><mo>/</mo><mn>2</mn><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msup><mo>.</mo><mtext> </mtext><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>
По вероятности правильного приема кодового слова алгоритмы 1, 2, 3 расположены в убывающем порядке. Число наборов ошибок во всех алгоритмах возрастает для двоичных кодов экспоненциально в зависимости от числа позиций ошибок.
В результате такого декодирования получают комбинации ошибок е(х) принятой последовательности слов помехоустойчивого циклического кода. Далее оценивают вес, то есть число ошибок в полученной комбинации ошибок последовательности слов помехоустойчивого циклического кода
<mrow><msub><mi>W</mi><mn>1</mn></msub><mo>=</mo><mi>w</mi><mrow><mo>(</mo><mrow><mi>e</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow><mo>.</mo><mtext> </mtext><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>
После этого оценивают вес комбинаций ошибок, наложенных на синхронизирующую последовательность
<mrow><msub><mi>W</mi><mn>2</mn></msub><mo>=</mo><mi>w</mi><mrow><mo>(</mo><mrow><msub><mi>e</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow><mo>.</mo><mtext> </mtext><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>
Это те комбинации ошибок, которые наложены на проверочную часть помехоустойчивых циклических кодов.
Веса комбинаций ошибок определяют достоверность слов помехоустойчивых циклических кодов
<mrow><msub><mi>γ</mi><mn>1</mn></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mstyle displaystyle="true"><munder><mo>∑</mo><mrow><msub><mi>W</mi><mn>1</mn></msub></mrow></munder><mrow><msubsup><mi>C</mi><mi>n</mi><mrow><msub><mi>W</mi><mn>1</mn></msub></mrow></msubsup></mrow></mstyle></mrow></mfrac><mtext> </mtext><msub><mi>γ</mi><mn>2</mn></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mstyle displaystyle="true"><munder><mo>∑</mo><mrow><msub><mi>W</mi><mn>2</mn></msub></mrow></munder><mrow><msubsup><mi>C</mi><mi>n</mi><mrow><msub><mi>W</mi><mn>2</mn></msub></mrow></msubsup></mrow></mstyle></mrow></mfrac><mtext> </mtext><msub><mi>γ</mi><mn>3</mn></msub><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mi>N</mi></mrow></munderover><mrow><msub><mi>α</mi><mi>i</mi></msub></mrow></mstyle><mo>.</mo><mtext> </mtext><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>
Суммарную достоверность слов помехоустойчивых циклических кодов вычисляют как взвешенную сумму достоверностей слов помехоустойчивых циклических кодов, достоверности синхронизирующей последовательности в зависимости от наложенных на нее комбинаций ошибок и достоверностей символов синхронизирующей последовательности.
max
Затем определяют суммарную достоверность слов помехоустойчивых циклических кодов, которую сравнивают с пороговым значением. Если суммарная достоверность кодовых слов превысит некоторое заранее выбранное пороговое значение достоверности γ
<mrow><mstyle displaystyle="true"><mo>∑</mo><mrow><msub><mi>γ</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>></mo><msub><mi>γ</mi><mrow><mi>max</mi></mrow></msub></mrow></mstyle><mo>,</mo><mtext> </mtext><mrow><mo>(</mo><mrow><mn>10</mn></mrow><mo>)</mo></mrow></mrow>
то устанавливается цикловая синхронизация. Это означает, что входная информация поступает на дальнейшую обработку. Местоположение синхронизирующей последовательности однозначно определяет начало первого помехоустойчивого циклического кода БЧХ в каскадном коде или начало сообщения.
В предлагаемом способе на приемной стороне после снятия синхронизирующей последовательности с входной последовательности слов помехоустойчивых циклических кодов выполняют декодирование помехоустойчивых циклических кодов с использованием мягких решений, что увеличивает число корректируемых ошибок по сравнению с жестким алгоритмом, применяемым в прототипе. Это позволяет сформировать более точную оценку достоверности последовательности слов помехоустойчивых циклических кодов. Затем формируется суммарная достоверность слов помехоустойчивых циклических кодов, учитывающая достоверности отдельных символов кода, что также увеличивает точность и надежность оценок достоверности последовательности слов помехоустойчивых циклических кодов, а значит и увеличивает точность и надежность определения синхронизирующей последовательности. Это позволяет повысить вероятность установления цикловой синхронизации каскадного кода и других кодов, в основе построения которых лежит принцип каскадирования.
Достигаемым техническим результатом предлагаемого способа кодовой цикловой синхронизации сообщений с мягкими решениями является повышение вероятности установления цикловой синхронизации, а значит и увеличение вероятности приема всего сообщения.