Патент на изобретение №2342796
|
||||||||||||||||||||||||||
(54) СПОСОБ КОДОВОЙ ЦИКЛОВОЙ СИНХРОНИЗАЦИИ
(57) Реферат:
Способ кодовой цикловой синхронизации относится к области электросвязи и может быть использован для цикловой синхронизации сообщений в системах передачи дискретной информации, в которых используются корректирующие, в частности каскадные, коды. Технический результат – повышение быстродействия. Сущность изобретения заключается в том, что принятую входную последовательность, представляющую собой сумму по модулю два проверочной части помехоустойчивого кода, нумерующей и синхронизирующей последовательностей, умножают на проверочный полином кода. В результате вычисляют сумму синдрома помехоустойчивого кода и нумерующей и синхронизирующей последовательностей. Затем по сумме синдрома помехоустойчивого кода и синхронизирующей последовательности определяют вектор ошибок и исправляют ошибки в нумерующей последовательности. После этого сравнивают нумерующие и синхронизирующие последовательности с ранее принятыми и получают определенное число совпадений нумерующей и синхронизирующей последовательностей с соответствующими нумерующими и синхронизирующими последовательностями ранее принятых кодовых слов. При этом, если это число совпадений будет превышать некоторое заранее заданное пороговое значение, принимают решение о наличии цикловой синхронизации. Причем входную последовательность разбивают на группы по f символов (f>1) в каждой группе и вычисляют сумму синдрома помехоустойчивого кода, нумерующей и синхронизирующей последовательностей, а также определяют вектор ошибок и исправляют ошибки в нумерующей последовательности в последовательно-параллельном коде с помощью заранее рассчитанных функциональных зависимостей, заданных в табличном виде. 1 з.п. ф-лы.
Изобретение относится к области электросвязи и может быть использовано для цикловой синхронизации сообщений в системах передачи дискретной информации, в которых используются корректирующие, в частности каскадные, коды. Способ кодовой цикловой синхронизации, описанный в настоящей заявке, может применяться для синхронизации сообщений, передаваемых последовательностью слов циклического помехоустойчивого кода. Синхронизирующие последовательности, определяющие начало или конец слов помехоустойчивого кода, передаются словами самого кода. Для синхронизации не требуется передачи специальных дополнительных синхронизирующих символов, а используется избыточность помехоустойчивого кода. После установления синхронизации признаки синхронизации вычитаются из помехоустойчивого кода, не уменьшая при этом корректирующую способность кода. Наиболее эффективно способ кодовой цикловой синхронизации может использоваться в помехоустойчивых каскадных кодах. В этом случае синхронизация обеспечивается путем многократного повторения признаков синхронизации в различных словах внутреннего кода каскадного кода. В настоящее время цифровые каналы связи ультракоротковолновых и дециметровых диапазонов, в частности спутниковые каналы, характеризуются большими массивами передаваемой информации, причем скорость обработки информации во вновь вводимых линиях связи достигает 120 Мбит/с и более. В связи с этим актуальной является задача разработки способа кодовой цикловой синхронизации, обладающего высоким быстродействием и требующего небольшого количества операций при установлении синхронизации. Известен способ кодовой цикловой синхронизации, при котором входную последовательность, представляющую собой сумму по модулю два помехоустойчивого кода и синхронизирующей последовательности, умножают на проверочный полином помехоустойчивого кода и выделяют синхронизирующую последовательность. При обнаружении определенной комбинации выделенной синхронизирующей последовательности принимают решение о наличии цикловой синхронизации [Лосев В.В., Бродская Е.Б., Коржик В.И. Поиск и декодирование сложных дискретных сигналов / Под ред. В.И.Коржика. – М.: Радио и связь, 1988, стр.136]. Однако этот способ имеет недостаточное быстродействие, поскольку попытка обнаружения синхронизирующей последовательности выполняется при каждом сдвиге входной последовательности на один бит и число таких попыток для установления цикловой синхронизации может быть большим. Известен также способ кодовой цикловой синхронизации, при котором принятую входную последовательность, представляющую собой сумму по модулю два помехоустойчивого кода, нумерующей и синхронизирующей последовательностей, умножают на проверочный полином кода, в результате чего выделяют нумерующую и синхронизирующую последовательности. Затем определяют вектор ошибок и осуществляют исправление ошибок в нумерующей последовательности. После этого сравнивают нумерующие и синхронизирующие последовательности с ранее принятыми и получают определенное число совпадений нумерующей и синхронизирующей последовательностей с соответствующими нумерующими и синхронизирующими последовательностями ранее принятых кодовых слов, затем, если это число совпадений будет превышать некоторое заранее заданное пороговое значение, принимают решение о наличии цикловой синхронизации. [Бек Г.В., Богданович В.Н., Киреев О.П. Метод синхронизации сообщений. Сб.: Построение и анализ систем передачи информации. М.: Наука, 1980, стр.84]. Однако этот способ также имеет небольшое быстродействие из-за того, что входную последовательность представляют в последовательном коде и попытка обнаружения синхронизирующей последовательности повторяется при поступлении из канала связи каждого нового бита информации. Наиболее близким к предлагаемому способу является способ (прототип) кодовой цикловой синхронизации, заключающийся в том, что принятую входную последовательность, представляющую собой сумму по модулю два проверочной части помехоустойчивого кода, нумерующей и синхронизирующей последовательностей, умножают на проверочный полином кода. В результате вычисляют сумму синдрома помехоустойчивого кода и нумерующей и синхронизирующей последовательностей. Затем по сумме синдрома помехоустойчивого кода и синхронизирующей последовательности определяют вектор ошибок и исправляют ошибки в нумерующей последовательности. После этого сравнивают нумерующие и синхронизирующие последовательности с ранее принятыми и получают определенное число совпадений нумерующей и синхронизирующей последовательностей с соответствующими нумерующими и синхронизирующими последовательностями ранее принятых кодовых слов, причем, если это число совпадений будет превышать некоторое заранее заданное пороговое значение, принимают решение о наличии цикловой синхронизации [Патент РФ №2214689, МПК7 Н04L 7/08, опубл. 20.10.2003]. Недостатком этого способа является невысокое быстродействие из-за большого числа операций, необходимых для установления цикловой синхронизации, поскольку входная последовательность обрабатывается в последовательном коде и операции по установлению цикловой синхронизации повторяются при сдвиге входной последовательности на один бит в скользящем окне приема. Цель изобретения – увеличение быстродействия способа кодовой цикловой синхронизации за счет представления входной последовательности в последовательно-параллельном коде и выполнении операций цикловой синхронизации в параллельном коде при каждом сдвиге входной последовательности на f бит (f>1) в скользящем окне приема. Для достижения цели предложен способ кодовой цикловой синхронизации, заключающийся в том, что принятую входную последовательность, представляющую собой сумму по модулю два проверочной части помехоустойчивого кода, нумерующей и синхронизирующей последовательностей, умножают на проверочный полином кода. В результате вычисляют сумму синдрома помехоустойчивого кода и нумерующей и синхронизирующей последовательностей. Затем по сумме синдрома помехоустойчивого кода и синхронизирующей последовательности определяют вектор ошибок и исправляют ошибки в нумерующей последовательности. После этого сравнивают нумерующие и синхронизирующие последовательности с ранее принятыми и получают определенное число совпадений нумерующей и синхронизирующей последовательностей с соответствующими нумерующими и синхронизирующими последовательностями ранее принятых кодовых слов, причем, если это число совпадений будет превышать некоторое заранее заданное пороговое значение, принимают решение о наличии цикловой синхронизации. Новым является то, что входную последовательность разбивают на группы по f символов (f>1) в каждой группе, вычисляют сумму синдрома помехоустойчивого кода, нумерующей и синхронизирующей последовательностей, а также определяют вектор ошибок и исправляют ошибки в нумерующей последовательности в последовательно-параллельном коде. При этом вычисление суммы синдрома помехоустойчивого кода и нумерующей и синхронизирующей последовательностей выполняют с помощью заранее рассчитанной функциональной зависимости, аргументом которой является последняя пришедшая из канала группа символов, а значением – сумма синдрома помехоустойчивого кода и нумерующей и синхронизирующей последовательностей. Определение вектора ошибок выполняют с помощью заранее рассчитанной функциональной зависимости, аргументом которой является сумма синдрома помехоустойчивого кода и синхронизирующей последовательности, а значением – вектор ошибок. Причем заранее рассчитанные функциональные зависимости представляют в виде таблиц, входом которых является аргумент функции, а выходом – значение функции. Осуществление способа кодовой цикловой синхронизации рассмотрим на примере синхронизации каскадного кода. На передающей стороне формируют входную последовательность. Для этого на передающей стороне исходное сообщение объемом k m-ичных (m>1) символов вначале кодируют m-ичным помехоустойчивым кодом, например m-ичным помехоустойчивым кодом Рида-Соломона. Код Рида-Соломона является внешним кодом или кодом первой ступени помехоустойчивого каскадного кода. В результате кодирования информации получают кодовое слово кода Рида-Соломона (n,k), информационная длина которого равна k, а блоковая – n символов. Далее информацию кодируют двоичным кодом, например двоичным кодом Боуза – Чоудхури – Хоквингема (БЧХ-коды) с проверочным полиномом h(x). Код БЧХ является внутренним кодом или кодом второй ступени помехоустойчивого каскадного кода. Код БЧХ имеет параметры: n1 – блоковая длина кода, k1 – информационная длина кода. Исходной информацией для каждого слова кода БЧХ являются символы кода Рида-Соломона, рассматриваемые как последовательность двоичных символов. В результате кодирования кодом БЧХ получают n двоичных слов кода БЧХ (n1, k1) или двоичную последовательность c1. Далее осуществляют сложение по модулю два части символов проверочной части кода БЧХ с символами нумерующей последовательности c2. В качестве нумерующей последовательности может выбираться, например, двоичная q-разрядная (qlog2(n)) последовательность, соответствующая двоичной записи целых чисел: 1, 2, 3, и т.д. Первое слово кода БЧХ складывают по модулю два с двоичным представлением 1 и соответствующей проверкой на четность, второе – с 2 и т.д. Такое сложение выполняют со всеми словами кода БЧХ. При выборе соответствующего проверочного полинома h(x) полученный в результате сложения код будет иметь вполне определенное гарантированное минимальное кодовое расстояние и, следовательно, обладать определенными корректирующими свойствами. Оставшиеся символы проверочной части кода БЧХ складывают по модулю два с синхронизирующей последовательностью с3, постоянной для всех слов кода БЧХ. Такой последовательностью может быть любая последовательность подходящей длины с хорошими синхронизирующими свойствами, например последовательность Баркера или последовательность максимальной длины (код Рида – Маллера 1-го порядка). На приемной стороне входную последовательность, сформированную в виде суммы трех последовательностей, причем синхронизирующую и нумерующую последовательности складывают только с проверочными символами кода БЧХ, используют для кодовой цикловой синхронизации. На приемной стороне осуществляют прием входной последовательности в скользящем окне, длина которого равна сумме блоковой длины внутреннего кода и длины группы бит входной последовательности, то есть n1+f. Символы входной последовательности разбиваются на группы бит по f бит (f>7) в каждой группе. Затем осуществляют умножение входной последовательности на проверочный полином кода БЧХ – h(x). Таким образом, вычисляют синдром кода БЧХ. Пусть проверочный полином кода а входная последовательность тогда f разрядов синдрома запишутся в виде свертки Система уравнений (3) задает функциональную зависимость компонент синдрома от разрядов входной последовательности. Эту функциональную зависимость можно рассчитать заранее для всевозможных значений разрядов входной последовательности и представить в табличном виде. Входом или адресом такой таблицы являются разряды входной последовательности, а выходом – компоненты синдрома кода. Число разрядов f входа таблицы определяет необходимый объем памяти запоминающего устройства (ЗУ) для хранения этой таблицы. С увеличением числа разрядов f входа таблицы объем памяти ЗУ возрастает экспоненциально, что ограничивает величину f. Обычно принимают f16. Таким образом, с поступлением очередных f разрядов входной последовательности из канала связи соответствующие разряды синдрома могут быть рассчитаны по таблице. При этом обработка всех f разрядов входной последовательности осуществляется одновременно в параллельном коде. При поступлении безошибочного слова синдром кода равен нулю и в результате вычисления синдрома будет получена комбинация d0, соответствующая нумерующей и синхронизирующей последовательностям: . При поступлении на вход слова с ошибками будет вычислена комбинация из некоторого множества {di}, соответствующая сумме ненулевого синдрома кода и последовательностей . Первые разряды комбинации d0 либо комбинации из множества {di} будут соответствовать нумерующей последовательности с2, а последние – синхронизирующей последовательности c3. Если кратность ошибок во входной последовательности лежит в пределах исправляющей способности кода, то на синхронизирующую последовательность будет наложен ненулевой синдром, значения которого для различных исправляемых комбинаций ошибок будут отличаться друг от друга. Комбинации синдрома для таких ошибок определяются однозначно и, следовательно, могут быть заданы в виде функциональной зависимости которую можно рассчитать заранее и, например, поместить в таблицу, входом или адресом которой является комбинация синдрома с наложенной синхронизирующей последовательностью, а выходом – соответствующий вектор ошибок. Расчет функциональной зависимости (5) осуществляется путем последовательного перебора всех возможных исправляемых комбинаций ошибок и вычисления соответствующих значений суммы синдрома и синхронизирующей последовательности. Таким образом, определение вектора ошибок также выполняется одновременно в параллельном коде. Затем осуществляют исправление ошибок в нумерующей последовательности, если входная последовательность принята с ошибками. Коррекция ошибок в нумерующей последовательности выполняется суммированием по модулю два выделенной нумерующей последовательности и ранее вычисленного вектора ошибок. Эта операция также может выполняться в параллельном коде с помощью совокупности параллельных сумматоров по модулю два. Далее осуществляют сравнение нумерующей и синхронизирующей последовательностей с ранее принятыми. Сравнение нумерующей последовательности с ранее принятыми последовательностями заключается в проверке соответствия принятых номеров естественному порядку следования этих номеров. Также проводится сравнение взаимного расположения синхронизирующих последовательностей для принятых кодовых слов. Синхронизирующие последовательности должны отстоять друг от друга на расстояние, кратное количеству бит n1 в коде БЧХ. Далее осуществляют сравнение числа совпадений с пороговым значением числа совпадений. Если количество совпавших номеров слов БЧХ и синхронизирующих последовательностей окажется больше выбранного порогового значения, то осуществляется цикловая синхронизация. Это означает, что входная информация поступает на дальнейшую обработку. Причем местоположение синхронизирующей последовательности однозначно определяет начало слов кода БЧХ, а нумерующая последовательность определяет положение первого слова БЧХ в каскадном коде или начало сообщения. Пороговое значение числа совпавших номеров и синхронизирующих последовательностей выбирают таким образом, чтобы обеспечить высокую достоверность цикловой синхронизации. Выбор оптимального порогового значения числа совпадений имеет немаловажное значение при реализации предлагаемого способа. Чтобы цикловая синхронизация не снижала вероятность приема сообщения, ее вероятность должна быть близка к 1 и не менее величины вероятности правильного приема сообщения, обеспечиваемой помехоустойчивым каскадным кодом на данном канале без учета цикловой синхронизации. Оценка величины порогового значения получается моделированием предложенного способа цикловой синхронизации на ЭВМ с учетом статистики ошибок канала связи. Для каскадного кода, внутренним кодом которого является расширенный двоичный код БЧХ (32, 16) с исправлением тройных ошибок, а внешним – код Рида-Соломона (32, 16), определенный над полем Галуа GF(28) с исправлением 8-ми кратных ошибок, нумерующая последовательность имела 6 разрядов, а синхронизирующая последовательность – 10 разрядов. Выделение нумерующей и синхронизирующей последовательностей осуществлялось с исправлением одиночной ошибки во внутреннем коде БЧХ. Для канала со средней вероятностью ошибки на бит, равной р=0.05, и коэффициентом группирования ошибок по Пуртову =0.3 оптимальное значение порогового значения лежит в пределах 2…3. Для других параметров каскадного кода и алгоритма декодирования, другого канала связи и другого количества ошибок, исправляемых при выделении нумерующих и синхронизирующих последовательностей, оптимальная величина порогового значения может отличаться от приведенной выше величины. Синхронизирующую и нумерующую последовательности передают в проверочных частях внутреннего кода помехоустойчивого каскадного кода, что не требует введения дополнительной избыточности для их передачи. Для установления синхронизации не требуется передача дополнительных синхронизирующих символов. Цикловая синхронизация осуществляется не только по безошибочным кодовым словам, но и по кодовым словам с ошибками. Это повышает помехоустойчивость цикловой синхронизации и позволяет осуществлять синхронизацию при более высоком уровне помех в канале связи, где количество неискаженных кодовых слов уменьшается. В предлагаемом изобретении, в отличие от известного способа, входная последовательность представляется в последовательно-параллельном коде и ее обработка осуществляется группами по f двоичных символов в каждой группе в параллельном коде с использованием табличных преобразований, что требует меньшего количества операций для цикловой синхронизации, а, значит, имеет примерно в f раз большее быстродействие. Особенно это актуально при программной реализации, поскольку команды микропроцессора также, как и в предлагаемом способе, ориентированы на обработку байтов или слов информации. Достигаемым техническим результатом предлагаемого способа кодовой цикловой синхронизации является повышение быстродействия.
Формула изобретения
1. Способ кодовой цикловой синхронизации, заключающийся в том, что принятую входную последовательность, представляющую собой сумму по модулю два проверочной части помехоустойчивого кода, нумерующей и синхронизирующей последовательностей, умножают на проверочный полином кода и в результате вычисляют сумму синдрома помехоустойчивого кода и нумерующей и синхронизирующей последовательностей, затем по сумме синдрома помехоустойчивого кода и синхронизирующей последовательности определяют вектор ошибок и исправляют ошибки в нумерующей последовательности, после этого сравнивают нумерующие и синхронизирующие последовательности с ранее принятыми и получают определенное число совпадений нумерующей и синхронизирующей последовательностей с соответствующими нумерующими и синхронизирующими последовательностями ранее принятых кодовых слов, причем, если это число совпадений будет превышать некоторое заранее заданное пороговое значение, принимают решение о наличии цикловой синхронизации, отличающийся тем, что входную последовательность разбивают на группы по f символов (f>1) в каждой группе и вычисляют сумму синдрома помехоустойчивого кода, нумерующей и синхронизирующей последовательностей, а также определяют вектор ошибок и исправляют ошибки в нумерующей последовательности в последовательно-параллельном коде, причем вычисление суммы синдрома помехоустойчивого кода и нумерующей и синхронизирующей последовательностей выполняют с помощью заранее рассчитанной функциональной зависимости, аргументом которой является последняя пришедшая из канала группа символов, а значением является сумма синдрома помехоустойчивого кода и нумерующей и синхронизирующей последовательностей, определение вектора ошибок выполняют также с помощью заранее рассчитанной функциональной зависимости, аргументом которой является сумма синдрома помехоустойчивого кода и синхронизирующей последовательности, а значением является вектор ошибок. 2. Способ по п.1, отличающийся тем, что заранее рассчитанную функциональную зависимость представляют в виде таблицы, входом которых является аргумент функции, а выходом – значение функции.
|
||||||||||||||||||||||||||