
- •Лабораторная работа № 6
- •Дополнительный материал к выполнению лабораторной работы:
- •Помехоустойчивое кодирование
- •1. Помехоустойчивые коды и их основные параметры
- •1.1 Принцип построения помехоустойчивых кодов
- •1.2 Основные параметры помехоустойчивых кодов
- •1.3 Граничные соотношения между параметрами помехоустойчивых кодов
- •2. Линейные блоковые коды
- •2.1 Способы задания линейных кодов
- •2.2 Основные свойства линейных кодов
- •2.3 Стандартное расположение группового кода
- •3. Коды Хэмминга
- •4. Циклические коды
- •4.1 Основные понятия
- •4.2 Матричное задание кодов
- •4.3 Коды бчх
- •4.4 Способы кодирования и схемная реализация кодирующих устройств
- •4.5 Способы декодирования с обнаружением ошибок и схемная реализация декодирующих устройств
- •4.6 Способы декодирования с исправлением ошибок и схемная реализация декодирующих устройств
- •4.7 Коды Рида-Соломона (рс)
4.4 Способы кодирования и схемная реализация кодирующих устройств
Задача кодирования заключается в формировании по информационным словам a(x) кодовых слов v(x) циклического (n,k)-кода, который по своей структуре может быть несистематическим и систематическим.
Формирование кодовых слов несистематического кода заключается в умножении многочлена a(x), отображающего информационную последовательность длины k, на порождающий многочлен, т.е. v(x)=a(x)(g(x). Формирование кодовых слов систематического кода заключается в преобразовании информационной последовательности a(x) в соответствии с выражением v(x)=a(x)xr+r(x). Проверочная последовательность r(x) определяется двумя способами: при использовании "классического" способа кодирования r(x)=Rg(x)|a(x)xr|; при использовании способа кодирования, рекомендованного МККТТ r(x)=Rg(x)|a(x)xr+x(1)r-1xk|, где x(1)r-1 - единичный многочлен степени (r-1).
Основой кодеров являются регистры сдвига с обратными связями, структура которых определяется порождающим многочленом g(x)=i=0n-kgixi; где gi - коэффициенты, которые могут принимать значения 0 или 1. Регистры содержат n-k разрядов, n-k сумматоров по mod2, n-k+1 условных связей в кодере и n-k условных связей в кодере. Наличие связей в схеме регистров определяется единичным значением коэффициентов gi в многочлене g(x). Если в многочлене g(x) коэффициент gi=1, то i-я связь и соответствующий сумматор входят в схему, в противном случае i-я связь и соответствующий сумматор исключаются. Работа кодера несистематического кода завершается за n тактов. За первые k тактов на вход кодера поступает информационное слово, а затем n-k нулевых элементов. В кодере систематического кода за первые k тактов на вход и одновременно на выход поступает информационное слово a(x). В течение этого времени замкнута обратная связь через И1 и в регистре формируется остаток r(x), элементы которого поступают на выход через И2 за последующие n-k тактов.
4.5 Способы декодирования с обнаружением ошибок и схемная реализация декодирующих устройств
Процедура декодирования циклического кода с обнаружением ошибок, по аналогии с процессом кодирования, использует два способа:
- при кодировании "классическим" способом декодирование основано на использовании свойства делимости без остатка кодового многочлена v(x) циклического (n,k)-кода на порождающий многочлен g(x). Поэтому алгоритм декодирования включает в себя деление принятого кодового слова, описываемого многочленом vi'(x) на g(x), вычисление и анализ остатка r(x). Если r(x)=0, то принятое кодовое слово считается неискаженным. Если r(x)0, то принятое кодовое слово стирается и формируется сигнал "ошибка".
- при кодировании способом МККТТ декодирование основано на свойстве получения определенного контрольного остатка R0(x) при делении принятого кодового многочлена v(x) на порождающий многочлен. Поэтому, если полученный при делении остаток r(x)=R0(x), то принятое кодовое слово считается неискаженным. Если остаток r(x)R0(x), то принятое кодовое слово стирается и формируется сигнал "ошибка".
Значение контрольного остатка определяется из выражения R0(x)=Rg(x)|x(1)r-1xk|. Основой декодеров являются регистры сдвига с обратными связями, структура которых, как и в кодерах, определяется выбранным многочленом g(x).
В декодере несистематического кода за первые n-k тактов происходит заполнение регистра символами, поступившего из канала связи кодового слова, а затем в течение последующих k тактов осуществляется процесс деления, выдачи через И1 на выход информационного слова и формирования остатка r(x) от деления. После этого сформированный остаток считывается через элемент ИЛИ. В декодере систематического кода за первые k тактов информационные символы кодового слова поступают одновременно в регистр, а через элемент И1 на выход декодера. В течение последующих тактов в регистре заканчивается процесс деления v'(x) на g(x) и формирование остатка r(x).
В схеме декодера систематического кода, работа которого основана на формировании остатка r(x)=R0(x) в случае отсутствия ошибки в принятом кодовом слове, вместо элемента ИЛИ предусматривается элемент И-НЕ, входная часть которого настраивается на R0(x).