Способ декодирования помехоустойчивых каскадных кодов по наиболее достоверным символам внешнего кода
Изобретение относится к области техники связи и может быть использовано для декодирования помехоустойчивых каскадных кодов в аппаратуре помехоустойчивой связи. Техническим результатом является повышение достоверности восстановленной после декодировании информации. Указанный технический результат достигается тем, что сначала декодируется внутренний код каскадного кода с обнаружением и исправлением ошибок. При декодировании внутреннего кода получают символы внешнего кода, и одновременно для каждого из символов внешнего кода принимается «мягкое» решение об их достоверности. Затем выбираются К+К1≤N наиболее достоверных символов внешнего кода, где N - блоковая длина внешнего кода, К - информационная длина внешнего кода, a К1 - длина проверочной части внешнего кода. Далее внешний код декодируют с исправлением ошибок и стираний и восстанавливают исходную информацию. После декодирования внешнего кода восстановленную исходную информацию заново кодируют внешним кодом, и получают символы внешнего кода, которые сравнивают с соответствующими принятыми N-К-К1 наименее достоверными символами, и при этом получают комбинацию совпадений заново закодированных и принятых символов внешнего кода. Затем, в зависимости от величины вероятности комбинации совпадений, оценивают достоверность восстановленной исходной информации и при превышении достоверности восстановленной исходной информации заданного порогового значения информацию передают ее получателю. 1 з.п. ф-лы.
Реферат
Изобретение относится к области техники связи и может быть использовано для декодирования помехоустойчивых каскадных кодов в аппаратуре помехоустойчивой связи.
Для передачи сообщений небольшого объема (до тысячи бит) в каналах связи различного качества с независимыми и группирующимися ошибками широко используют помехоустойчивые каскадные коды. Помехоустойчивый каскадный код строят на основе нескольких помехоустойчивых кодов. Один из кодов, так называемый внутренний код или код I - ступени, является двоичным блоковым (n, k, d) кодом, например, двоичным кодом Боуза-Чоудхури-Хоквинхема (БЧХ - код). Другой код, называемый внешним кодом или кодом II - ступени, является недвоичным (N, K, D) кодом. В качестве внешнего кода часто используют код Рида - Соломона. Код Рида - Соломона представляет собой наилучший недвоичный помехоустойчивый код с максимально достижимым кодовым расстоянием (МДР-код), равным N-K+1. Декодирование помехоустойчивого каскадного кода состоит их двух этапов: сначала декодируют внутренний код каскадного кода, а затем - внешний код. Декодирование внешнего кода выполняют по наиболее достоверным символам внешнего кода, при этом дополнительную информацию, содержащуюся в менее достоверных символах внешнего кода, получаемую по результатам декодирования внутреннего кода, не используют при декодировании внешнего кода или используют недостаточно эффективно. В предлагаемом способе дополнительную информацию о достоверности символов внешнего кода используют для оценки достоверности восстановленной при декодировании каскадного кода исходной информации.
Известен способ декодирования помехоустойчивого каскадного кода по наиболее достоверным символам внешнего кода, в соответствии с которым сначала декодируют внутренний код каскадного кода с обнаружением и исправлением ошибок. В результате декодирования внутреннего кода получают символы внешнего кода и одновременно для каждого из символов внешнего кода принимают «мягкое» решение об их достоверности. Решение о достоверности символов внешнего кода зависит от количества ошибок, обнаруженных и исправленных при декодировании внутреннего кода. Более достоверными будут символы, в которых не было обнаружено и исправлено ни одной ошибки, следующими по достоверности будут символы с обнаружением и исправлением одиночной ошибки, затем - двойной и так далее. Затем полученные в результате декодирования внутреннего кода символы внешнего кода сортируют по достоверности. Сначала выбирают наиболее достоверные символы, в которых не было обнаружено и исправлено ни одной ошибки, затем символы с одной ошибкой и так далее до тех пор, пока не будет набрано К наиболее достоверных символов внешнего кода, где К - информационная длина внешнего кода. Далее внешний код декодируют с исправлением стираний и восстанавливают исходную информацию (Квашенников В.В. Декодирование внешнего кода каскадного кода по наиболее вероятным символам внутреннего кода с исправлением ошибок и стираний. // Техника средств связи. Сер. ТПС, 1985, вып.7, с.79-83).
Недостатком этого способа является невысокая достоверность восстановленной информации, обусловленная тем, что при декодировании внешнего кода теряют информацию, которая может содержаться в менее достоверных символах этого кода.
Наиболее близким к предлагаемому способу (прототип) является способ декодирования помехоустойчивого каскадного кода по наиболее достоверным символам внешнего кода, при котором сначала декодируется внутренний код каскадного кода с обнаружением и исправлением ошибок. При декодировании внутреннего кода получают символы внешнего кода, и одновременно для каждого из символов внешнего кода принимают «мягкое» решение об их достоверности. Решение о достоверности символов внешнего кода зависит от количества ошибок, обнаруженных и исправленных при декодировании внутреннего кода. Более достоверными будут символы, в которых не было обнаружено и исправлено ни одной ошибки, следующими по достоверности будут символы с обнаружением и исправлением одиночной ошибки, затем - двойной и так далее. Затем полученные в результате декодирования внутреннего кода символы внешнего кода сортируют по достоверности. Сначала выбирают наиболее достоверные символы, в которых не было обнаружено и исправлено ни одной ошибки, затем символы с одной ошибкой и так далее до тех пор, пока не будет набрано K+K1≤N наиболее достоверных символов внешнего кода, где N - блоковая длина внешнего кода, К - информационная длина внешнего кода, а К1 - длина проверочной части внешнего кода, используемой при его декодировании для обнаружения и исправления ошибок. Далее внешний код декодируют с исправлением ошибок и стираний и восстанавливают исходную информацию (Квашенников В.В., Яковлев В.Г. Расчет вероятности правильного приема алгоритма декодирования каскадного кода по наиболее вероятным символам внутреннего кода. // Техника средств связи. Сер. ТПС, 1989, вып.4, с.28-31).
Недостаток способа заключается в невысокой достоверности, восстановленной при декодировании внешнего кода информации из-за того, что декодирование внешнего кода выполняют только по наиболее достоверным символам внешнего кода, а информация, содержащаяся в остальных менее достоверных символах внешнего кода при декодировании, не используется.
Цель изобретения - повышение достоверности восстановленной информации за счет того, что при декодировании внешнего кода по наиболее достоверным символам менее достоверные символы затем используют для подтверждения правильности декодирования.
Для достижения цели предложен способ декодирования помехоустойчивого каскадного кода по наиболее достоверным символам внешнего кода, при котором сначала декодируют внутренний код каскадного кода с обнаружением и исправлением ошибок. При декодировании внутреннего кода получают символы внешнего кода, и одновременно для каждого из символов внешнего кода принимают «мягкое» решение об их достоверности. Решение о достоверности символов внешнего кода зависит от количества ошибок, обнаруженных и исправленных при декодировании внутреннего кода. Более достоверными будут символы, в которых не было обнаружено и исправлено ни одной ошибки, следующими по достоверности будут символы с обнаружением и исправлением одиночной ошибки, затем - двойной и так далее. Затем полученные в результате декодирования внутреннего кода символы внешнего кода сортируют по достоверности. Сначала выбирают наиболее достоверные символы, в которых не было обнаружено и исправлено ни одной ошибки, затем символы с одной ошибкой и так далее до тех пор, пока не будет набрано K+K1≤N наиболее достоверных символов внешнего кода, где N - блоковая длина внешнего кода, K - информационная длина внешнего кода, а K1 - длина проверочной части внешнего кода, используемой при его декодировании для обнаружения и исправления ошибок. Далее внешний код декодируют с исправлением ошибок и стираний и восстанавливают исходную информацию. Новым является то, что после декодирования внешнего кода восстановленную исходную информацию заново кодируют внешним кодом и получают символы внешнего кода, которые сравнивают с соответствующими принятыми N-K-K1 наименее достоверными символами, которые не использовались ранее при декодировании внешнего кода, и при этом получают комбинацию совпадения вновь закодированных символов внешнего кода и N-K-K1 наименее достоверных принятых символов внешнего кода, затем оценивают вероятность этой комбинации совпадения и, в зависимости от величины вероятности комбинации совпадения, оценивают достоверность восстановленной исходной информации и, при превышении достоверности восстановленной исходной информации заданного порогового значения, восстановленную исходную информацию передают получателю информации. Причем при декодировании внутреннего кода, в зависимости от количества ошибок, обнаруженных и исправленных в этом коде, достоверность принятого символа внешнего кода оценивают вероятностью трансформации внутреннего кода при исправлении во внутреннем коде ошибок.
Предлагаемый способ декодирования помехоустойчивого каскадного кода по наиболее достоверным символам внешнего кода реализуют следующим образом.
На передающей стороне формируют помехоустойчивый код, например, каскадный помехоустойчивый код, внешним кодом которого является код Рида - Соломона, а внутренним - двоичный код Боуза-Чоудхури -Хоквинхема (БЧХ - коды). Для этого на передающей стороне исходное сообщение, объемом k m-ичных (m>1) символов, вначале кодируют m-ичным помехоустойчивым кодом Рида-Соломона, определенным над полем Галуа GF(2m). Код Рида-Соломона является внешним кодом или кодом первой ступени помехоустойчивого каскадного кода.
В результате кодирования информации получают кодовое слово кода Рида-Соломона (n, k), информационная длина которого равна k, а блоковая - n символов.
Далее информацию кодируют двоичным кодом БЧХ. Код БЧХ является внутренним кодом или кодом второй ступени помехоустойчивого каскадного кода. Код БЧХ имеет параметры: n1 - блоковая длина кода, k1 - информационная длина кода.
Исходной информацией для каждого слова двоичного кода БЧХ являются символы кода Рида-Соломона, рассматриваемые как последовательность двоичных символов. В результате кодирования кодом БЧХ будет получено n двоичных слов кода БЧХ (n1, k1), которые передают в канал связи.
Далее символы каскадного кода, преобразованные в сигналы, поступают в канал связи. В канале связи под воздействием помех передаваемые сигналы искажаются. Это может привести к тому, что каскадный код будет принят с ошибками.
На приемной стороне осуществляют декодирование каскадного кода. Каскадный код, поступающий на вход приемника, содержит n слов внутреннего кода каскадного кода. Декодирование каскадного кода начинают с декодирования внутреннего кода каскадного кода с обнаружением и исправлением ошибок. Количество ошибок t, которое может исправить внутренний код с минимальным кодовым расстоянием d, определяется соотношением 2·t+1≤d. В результате декодирования внутреннего кода каскадного кода получают символы внешнего кода каскадного кода. Достоверность символов внешнего кода будем определять вероятностью трансформации символов внешнего кода, которая зависит от числа ошибок, исправленных во внутреннем коде. Для канала с независимыми ошибками вероятность трансформации (приема кода с необнаруженной ошибкой) при исправлении i ошибок qi рассчитывается на основе весовой структуры кода по формуле
где A(w) - спектр кода, т.е. количество слов в коде веса w;
р - средняя вероятность ошибки на бит в канале.
Суммарная вероятность трансформации будет равна
и является монотонно возрастающей функцией числа ошибок, исправленных во внутреннем коде. Поэтому более достоверными будут символы внешнего кода, при получении которых было исправлено меньшее число ошибок. Наиболее достоверными будут символы, в которых не было обнаружено и исправлено ни одной ошибки, следующими по достоверности будут символы с обнаружением и исправлением одиночной ошибки, затем - двойной и так далее.
Затем полученные в результате декодирования внутреннего кода символы внешнего кода сортируют по достоверности. Сначала выбирают наиболее достоверные символы, в которых не было обнаружено и исправлено ни одной ошибки, затем символы с одной ошибкой и так далее до тех пор, пока не будет набрано K+K1≤N наиболее достоверных символов внешнего кода, где N - блоковая длина внешнего кода, K - информационная длина внешнего кода, a K1 - длина проверочной части внешнего кода, используемой при его декодировании для обнаружения и исправления ошибок.
При использовании внешнего кода Рида-Соломона количество ошибок Т, которое может исправить этот код, определяется соотношением Т≤INT(K1/2), где INT(K1/2) - целая часть числа. Как показывают расчеты (Квашенников В.В., Кухарев А.Д. «Адаптивное помехоустойчивое кодирование в технике связи», Монография, Изд-во научной литературы Н.Ф.Бочкаревой, Калуга: 2007. - 148 с.) при декодировании внешнего кода по наиболее достоверным символам достаточно исправлять во внешнем коде небольшое число ошибок (1, 2), чтобы обеспечить вероятность доведения сообщения примерно такую же, как и при декодировании кода по всем принятым символам внешнего кода. Для исправления небольшого числа ошибок (1, 2) необходимо небольшое число проверочных символов (K1=2, 4). При декодировании внешнего кода по наиболее достоверным символам с небольшим числом проверочных символов и с исправлением небольшого числа ошибок сложность технической реализации существенным образом уменьшается. Поэтому декодирование кода по наиболее достоверным К+K1 символам обеспечивает высокую вероятность доведения сообщения при незначительной сложности технической реализации.
Оставшиеся N-K-K1 наименее достоверные символы внешнего кода могут быть использованы для оценки достоверности, восстановленной при декодировании информации. Для этого восстановленную исходную информацию заново кодируют внешним кодом и получают символы внешнего кода, которые сравнивают с соответствующими принятыми r=N-K-K1 наименее достоверными символами, которые не использовались ранее при декодировании внешнего кода.
Обозначим a 1 a 2…a r - заново закодированные наименее достоверные символы внешнего кода, а b1b2…br - соответствующие принятые из канала наименее достоверные символы кода. При их сравнении получают двоичную комбинацию совпадения c1c2…cr заново закодированных символов внешнего кода и N-K-K1 наименее достоверных принятых символов внешнего кода по следующему правилу
если a i⊕bi=0, то ci=0, иначе ci=1; i=1…r.
Затем оценивают вероятность этой комбинации совпадения c1c2…cr по закону умножения вероятностей, считая события совпадения или несовпадения символов независимыми
где Pmi вычисляются по формуле (1) в зависимости от числа ошибок, исправленных при декодировании внутреннего кода.
Величина вероятности комбинации совпадения Рс характеризует достоверность восстановленной исходной информации. При превышении достоверности восстановленной исходной информации заданного порогового значения восстановленную исходную информацию передают получателю информации.
В качестве примера рассмотрим декодирование каскадного помехоустойчивого кода, внутренним кодом которого является двоичный код БЧХ(31,16,7), а внешним - код Рида-Соломона(32,16,17) над полем Галуа GF(28). Внутренний код позволяет исправлять ошибки, кратность которых не превосходит 3. Вероятности трансформации внутреннего кода в канале связи со средней вероятностью ошибки на бит 5·10-2 будут соответственно равны
3,052×10-5 - если в коде не было исправлено ни одной ошибки,
9,469×10-3 - при исправлении одиночной ошибки,
0,014 - при исправлении двойной ошибки,
0,159 - при исправлении тройной ошибки.
Допустим, что комбинация совпадения равна 0100 и в первой, третьей и четвертой позиции комбинации совпадения было исправлено по 2 ошибки, а во второй позиции - 3 ошибки. Тогда вероятность комбинации совпадения согласно (3) будет равна
Рс=(1-0,014)3·0,159=0,152
При неправильном декодировании внешнего кода, восстановленные символы этого кода были бы распределены по псевдослучайному закону и только половина позиций в комбинации совпадения была бы равна 1. В этом случае вероятность комбинации совпадения была бы существенно меньше. Пороговое значение достоверности восстановленной информации можно принять равным величине, большей максимально возможной при комбинации совпадения со всеми 1
Рсп=0,1594=0,00064.
Поскольку Рс>Рсп, восстановленная информация в рассмотренном примере передается получателю сообщения для ее дальнейшей обработки. В зависимости от требований по достоверности, можно установить и более высокое пороговое значение достоверности восстановленной информации. Например, допустить один 0 в комбинации совпадения и т.д.
В предлагаемом способе, в отличие от прототипа, менее достоверные символы внешнего кода используют для оценки достоверности восстановленной при декодировании информации. Если достоверность принятой информации менее, чем заранее вычисленное пороговое значение, то такая информация не передается далее ее получателю.
Достигаемым техническим результатом предлагаемого способа декодирования помехоустойчивого каскадного кода по наиболее достоверным символам внешнего кода является повышение достоверности декодированной информации.
1. Способ декодирования помехоустойчивого каскадного кода по наиболее достоверным символам внешнего кода, при котором сначала декодируют внутренний код каскадного кода с обнаружением и исправлением ошибок, при декодировании внутреннего кода получают символы внешнего кода, и одновременно для каждого из символов внешнего кода принимают «мягкое» решение об их достоверности, причем решение о достоверности символов внешнего кода зависит от количества ошибок, обнаруженных и исправленных при декодировании внутреннего кода, и более достоверными будут символы, в которых не было обнаружено и исправлено ни одной ошибки, следующими по достоверности будут символы с обнаружением и исправлением одиночной ошибки, затем - двойной и так далее, затем полученные в результате декодирования внутреннего кода символы внешнего кода сортируют по достоверности, при этом сначала выбирают наиболее достоверные символы, в которых не было обнаружено и исправлено ни одной ошибки, затем символы с одной ошибкой и так далее до тех пор, пока не будет набрано К+К1≤N наиболее достоверных символов внешнего кода, где N - блоковая длина внешнего кода, К - информационная длина внешнего кода, a К1 - длина проверочной части внешнего кода, используемой при его декодировании для обнаружения и исправления ошибок, далее внешний код декодируют с исправлением ошибок и стираний и восстанавливают исходную информацию, отличающийся тем, что после декодирования внешнего кода восстановленную исходную информацию заново кодируют внешним кодом, и получают символы внешнего кода, которые сравнивают с соответствующими принятыми N-К-К1 наименее достоверными символами, которые не использовались ранее при декодировании внешнего кода, и при этом получают комбинацию совпадений вновь закодированных символов внешнего кода и N-К-К1 наименее достоверных принятых символов внешнего кода, затем оценивают вероятность этой комбинации совпадений и в зависимости от величины вероятности комбинации совпадений оценивают достоверность восстановленной исходной информации и при превышении достоверности восстановленной исходной информации заданного порогового значения восстановленную исходную информацию передают получателю информации.
2. Способ по п.1, отличающийся тем, что при декодировании внутреннего кода в зависимости от количества ошибок, обнаруженных и исправленных в этом коде, достоверность принятого символа внешнего кода оценивают вероятностью трансформации внутреннего кода при исправлении во внутреннем коде ошибок.