
- •Тема 1. Основные понятия и определения в области пдс.
- •1.1.Дискретность.
- •Соответствующие виды сигналов:
- •1.2.Модуляция.
- •1.3.Кодирование.
- •1.4.Упрощенная структурная схема аппаратуры пдс.
- •1.5. Основные параметры и характеристики системы пдс
- •Тема 2. Системные характеристики систем передачи дискретных сообщений.
- •2.1 Понятие об эталонной модели взаимодействия открытых систем.
- •2.2. Понятие о телеуслугах.
- •2.3 Первичные коды в системах пдс
- •2.3.1. Телеграфные коды
- •2.3.2. Коды для передачи данных
- •Тема 3. Основные характеристики физического уровня.
- •3. 1. Понятия об искажениях дискретных сигналов.
- •3.1.1 Классификация искажений
- •3.1.2. Характеристические краевые искажения
- •3.1.3. Краевые искажения типа преобладаний
- •3.1.4. Случайные искажения
- •3.2 Понятие о методах регистрации дискретных сигналов.
- •3.2.1. Метод стробирования
- •3. 2. 2. Интегральный метод
- •Интегрирование в промежутке, меньшем длительности элементарной посылки.
- •3.3. Оценка эффективности методов регистрации
- •3.3.1. Распределение краевых искажений
- •3.3.2 Распределение дроблений
- •3.3.3 Расчет вероятности ошибки при краевых искажениях
- •3.3.4 Расчет вероятности ошибки при дроблениях
- •3.4 Модели дискретных каналов
- •3.4.1 Поток ошибок в дискретном канале
- •3.4.2 Методы выявления и исследования последовательностей ошибок
- •3.4.3 Основные закономерности распределения ошибок в реальных каналах связи
- •3.4.4 Математические модели дискретных каналов с группированием ошибок
- •А. Модель неоднородного канала.
- •Б. Двухпараметрическая модель дискретного канала
- •Тема 4. Устройство синхронизации по элементам (усп).
- •4.1.Назначение и классификация
- •О сновные элементы устройства , реализующего фапч:
- •4.2. Обоснование необходимости устройства синхронизации но элементам. Расчет вероятности удержания синхронизма.
- •4.3.Схема фапч с дискретным управлением.
- •4.4.Основные характеристики системы фапч.
- •4.5.Модели последовательностей ошибок в дискретном канале.
- •1.Классификация ошибок
- •Тема 5. Линейные (n,k)-коды
- •5.1 Определение помехоустойчивых кодов и их общие характеристики
- •5.1.1Принципы построения помехоустойчивых кодов
- •Основные характеристики помехоустойчивых кодов
- •Классификация помехоустойчивых кодов
- •Граничные соотношения между характеристиками помехоустойчивых кодов
- •5.1.5.Задачи
- •5.2. Групповые коды и способы их описания
- •5.2.1 Основные алгебраические системы, используемые в теории кодирования
- •5.2.2Способы представления кодовых комбинаций
- •5.2.3Определение группового кода
- •5.2.4 Матричное описание групповых кодов
- •5.2.5. Задачи
- •5.3. Другие свойства групповых кодов
- •5.3.1Корректирующие свойства групповых кодов
- •5.3.2Процедуры кодирования и декодирование группового кода
- •5.3.3Укорочение кода
- •5.3.4Оценка эффективности групповых кодов
- •5.3.5Смежно-групповые коды
- •5.3.6Задачи
- •5.4 Примеры групповых кодов
- •5.4.1. Коды с единственной проверкой на четность
- •5.4.2. Коды Хэмминга
- •5.4.3Итеративные коды.
- •Тема 6. Двоичные циклические (n,k) - коды
- •6.1 Основные алгебраические системы, используемые в теории кодирования.
- •6.2. Определение циклического кода
- •6.3. Построение порождающей и проверочной матриц циклических кодов.
- •6.4. Коды Боуза-Чоудхури-Хоквингема (бчх).
- •6.5. Выбор порождающего многочлена для кода бчх
- •6.6. Эффективность двоичных кодов бчх
- •6.7 Кодирующие и декодирующие устройства циклических кодов
- •6.7.1 Процедура кодирования и декодирования для циклических кодов
- •6.7.2. Линейные переключательные схемы, используемые в кодирующих и декодирующих устройствах циклических кодов
- •6.7.3. Схемы кодирующих устройств циклических кодов
- •6.7.4. Декодирующие устройства циклических кодов
- •Тема 7. Коды рида соломона (рс)
- •Пример 7.1
- •Пример 7.2
- •1. Расширенные рс-коды
- •Пример 7.3
- •2. Укороченные рс-коды
- •3. Отображение рс-кодов над gf(2m) на двоичные коды
- •7.1. Задачи
- •7.3. Задачи
- •Тема 9. Некоторые специальные классы кодов. Составные коды.
- •9.1. Коды для исправления пачек ошибок
- •9.2. Коды на основе последовательностей максимальной длины
- •9.3. Коды для асимметричных каналов
- •9.4 Каскадные коды
- •1. Принципы построения каскадных кодов
- •2. Режимы использования каскадных кодов
- •3. Построение двоичных каскадных кодов на основе кодов Рида–Соломона и Боуза–Чоудхури–Хоквингема
- •Пример 9.2.
- •Пример 9.3.
- •Тема10. Цикловая синхронизация
- •Назначение и классификация способов цикловой синхронизации
- •10.2.Способ установки фазы приемного распределителя путем сдвига.
- •10.3.Способ мгновенной установки фазы по комбинации фазового запуска
- •10.4. Маркерный способ выделения сигнала фазового запуска
- •10. 5. Способ выделения сигнала фазового запуска по зачетному отрезку
- •Тема 1. Основные понятия и определения в области пдс…………………………………..…...1
- •1.1.Дискретность……………………………………………………………………………………….1
- •Тема 2. Системные характеристики систем передачи дискретных сообщений………………..10
- •Тема 3. Основные характеристики физического уровня…………………………………………21
- •Тема 4. Устройство синхронизации по элементам (усп)……………………………………….47
- •Тема 5. Линейные (n,k)-коды…………………………………………………………………..51
- •Тема 6. Двоичные циклические (n,k) – коды………………………………………… 102
- •Тема 7. Коды рида соломона (рс)………………………………………………………..159
- •Тема 9. Некоторые специальные классы кодов. Составные коды.181
- •Тема10. Цикловая синхронизация193
7.1. Задачи
1. Построить все
циклические коды на основе разложения
двучлена
Ниже приведены сомножители и
последовательности степени их корней.
Сомножитель Степени корней
x+1 0=15
x4+x+1 1 2 4 8
x4+x3 +x2 +x+1 3 6 9 12
x2+x+1 5 10
x4+x3 +1 7 11 13 14
2. Определить корректирующие свойства циклического (15,11) – кода
а) с g(x)=1+x+x4;
б) с g(x)=1+x3+x4;
в) с g(x)=1+x+x2+x3+x4.
3. Определить корректирующие свойства циклического (15,7) – кода
а) с g(x)=(1+x+x4)(1+x3+x4);
б) с g(x)=(1+x+x4)(1+x+x2+x3+x4)
в) с g(x)=(1+x3+x4)(1+x+x+x2+x3+x4)
4. Построить порождающую матрицу и матрицу проверок для укороченного циклического (10,5) – кода, полученного из (15,10) – кода с g(x)=(1+x)(1+x+x4).
Определить dmin (10,5) – кода.
5. Привести матрицу проверок H(7,4),построенную в примере 5.5 к канонической форме.
6. Показать, что поле GF(23) с примитивным элементом α, являющимся корнем неприводимого многочлена π(x)=1+x+x3 , может быть представлено в следующем виде:
Степень |
Многочлен |
Вектор |
0 1 α α2 α3 α4 α5 α6 α7=1 |
0 1 α α2 1 + α α + α2 1 + α + α2 1 + α2 1 |
000 100 010 001 110 011 111 101 100 |
7.2. Быстрое декодирование кодов БЧХ
1). Ключевое уравнение
Рассмотрим процедуру быстрого декодирования применительно к кодам Рида-Соломона (PC). Для этих кодов справедлива граница Синглтона:
n-k= d-1=2t,
где n-k — избыточность кодовой комбинации,
d - минимальное кодовое расстояние,
t - кратность гарантированно исправляемых ошибок.
Будем полагать, что код используется в режиме исправления ошибок. Пусть в приемник АПД поступила кодовая комбинация PC-кода
С(x)=f (x)+e(x),
где f(x) - переданная передатчиком АПД кодовая комбинация, в которой в процессе передачи по каналу связи произошло υ ошибок, отображаемых многочленом е(х). Здесь 0≤v≤t.
Многочлен ошибок можно представить в виде
e(x)=ei1 xi1 +ei2xi2+…+eivxiv=∑eilxil,
где eil - значение ошибки, il - номер позиции кодовой комбинации, в которой произошла ошибка. Для исправления ошибок необходимо определить eil и il. Это возможно выполнить на основе синдрома. Введем понятие синдромного многочлена:
S(x)=S1x0+S2x1+…+Sn-k=2tx2t-1 .
Коэффициенты Si определяются подстановкой в С(х) корней αl порождающего многочлена кода PC.
S1=C(x= αl)=f(x= αl)+е(х= αl)=e(αl),
где l≤l≤2t.
Теперь получим, S1=e1αi1 +e2αi2+…+eivαiv и т.д.
Для упрощения записи компонентов синдромного многочлена определим для всех l=1,...,v значения ошибки Уl= eil ,и локаторы ошибок Хl= ail=l, где il=l - истинное положение l-й ошибки.
В этих новых обозначениях S1 запишется в виде:
S1=Y1X1+ Y2X2+…+ YyXy.
Здесь Yl и Хl - элементы поля GF(q) над которым построен PC-код, а α - примитивный элемент этого поля. В результате получим следующую систему из 2t уравнений относительно υ неизвестных локаторов X1,..., Xv и v неизвестных значений ошибок Y1,...,Yυ:
S1=Y1X1+ Y2X2+…+ YvXv,
S2=Y1X12+ Y2X22+…+ YvXv2,
. . .
S2t=Y1X12t+ Y2X22t+…+ YvXv2t.
В силу определения синдрома эта система уравнений должна иметь хотя бы одно решение. В теории кодирования доказано, что это решение единственно. Изложение известных алгоритмов поиска этого решения базируется на понятии ключевого уравнения.
Для его формирования вводятся еще два многочлена:
1. Многочлен локаторов ошибок
Λ(х)=1+ Λ1х+Λ2 х2+ Λvxv, имеющий корни, обратные локаторам ошибок Xl-1, l=1…,v. Это позволяет представить Λ(x) в следующем виде:
2. Многочлен значений ошибок. Он определяется через S(x) и Λ(х) в соответствии с видом введенного выше многочлена ошибок
Ω(x)=S(x)* Λ (x) (mod x2t)
Выражение для Ω(х) определяет множества из 2t-v уравнений и называется ключевым уравнением, так как оно является ключом решения задачи декодирования.
Ключевое уравнение позволяет получить v уравнений для v неизвестных коэффициентов Λ(x). Эти уравнения являются линейными. Они могут быть решены обычными методами, либо с помощью итерационных процедур. После нахождения Λ(х) ключевое уравнение позволяет найти неизвестные компоненты многочлена е(х) и по ним переданную кодовую комбинацию f(x)=C(x)+e(x).
Из изложенного можно сделать вывод, что декодирование кодов БЧХ на основе решения ключевого уравнения распадается на два этапа.
I этап — вычисление многочлена локатора ошибок Λ(х). Для двоичных кодов БЧХ этим этапом декодирование завершается.
II этап - для недвоичных кодов, какими являются РС-коды, вычисление многочлена значений ошибок Ω(х), позволяющего вычислять значение каждой из υ ошибок в принятой комбинации.
Для нахождения многочлена локаторов ошибок из литературы известны три алгоритма:
1. Алгоритм Питерсона.
2 .Алгоритм Берлекемпа-Месси.
3- Алгоритм Евклида - алгоритм СКХН.
Авторы первого и второго алгоритмов указаны в их названии. Алгоритм Евклида для целей решения ключевого уравнения был впервые предложен четырьмя авторами: Сугияма, Касахара, Хирасава и Намекава. В дальнейшем для краткости будем называть алгоритмом Евклида.
Алгоритм Питерсона может быть использован как самостоятельная процедура декодирования недвоичных циклических кодов и на II этапе.
Алгоритм Берлекемпа-Месси и алгоритм Евклида на II этапе декодирования для недвоичных циклических кодов дополняют алгоритмом Форни, позволяющим по корням Λ (х) и многочлену Ω(x) найти значения ошибок. Сочетание алгоритма Берлекемпа-Месси и алгоритма Форни получило название быстрого декодирования кодов БЧХ.
Рассмотрим сущность изложенных алгоритмов декодирования
2). Решение ключевого уравнения
а). Алгоритм Питерсона.
У. Питерсон [1] представил ключевое уравнение в матричной форме:
Таким образом, задача определения коэффициентов многочлена локаторов ошибок сводится к прямому решению системы v линейных уравнений с v неизвестными.
Известно, что, если существует наибольший общий делитель d(x) двух многочленов а(х) и b(х), то существуют многочлены f(x) и g(x) такие, что справедливо: a(x)f{x)+b(x)g(x)=d(x).
Многочлен d(x) может быть найден по алгоритму Евклида, который состоит в последовательном делении с остатком а(х) на b(х), затем b(х) на первый остаток r1(х), затем r1(х) на второй остаток r2(х) и т.д.
При декодировании кодов БЧХ интересуются не конечным результатом алгоритма Евклида, а промежуточными результатами, которые можно представить в виде: a(x)f(x)+b(x)g(x)=r(x).
У. Сугияма и его соавторы [3] использовали этот результат для решения ключевого уравнения следующим образом: b(x)g(x)= ri(x) (mod a(x)), полагая,
а(х)=х2t, b(x)=S(x), gl(x)=Λi(x), ri(x)=Ωi(x).
При этом используется свойство алгоритма Евклида:
deg[gi(x)]+deg[ri-l(x)]=deg[a(x)].
Если а(х)=х2t, то deg[Λi(x)]+deg[Ωi-l(x))=2t,
deg[Λi(x)]+deg[Ωi(x))<2t.
При появлении v≤t ошибок имеем: deg[Ω(x)]< deg[Λ (x)] ≤t.
Существует единственный с точностью до постоянного множителя (элемента поля) многочлен Λ(х) степени ≤t, удовлетворяющий уравнению:
Ωi(x) =S(x) Λi(x) (mod x2t),
если deg[Ωi-1(x)]≥t при deg[Λi(x)]≤t
и deg[Ωi(x)]<t при deg[Λi+1,(x)]>t.
Поэтому промежуточные результаты на I-ом шаге дают единственное интересующее нас решение ключевого уравнения.
Таким образом, для решения ключевого уравнения следует применять алгоритм Евклида до тех пор, пока не будет выполнено условие
deg[Ωi(x)]<t.
Итак, алгоритм Евклида решения ключевого уравнения по методу У. Сугиямы и др. сводится к следующему:
1. Применить алгоритм Евклида к а(х)=х2t и b(x)=S(x).
2. Использовать начальные условия:
Λ-1(х)=0,
Λ0(х)=1,
Ω-1(x)=x2t,
Ω0(x)=S(x).
3. Остановиться, если deg[Ωi(x)]<t.
4. Положить Λ(х)= Λi(x) и Ω(x)= Ωi(x).
При вычислении значений Λi(x) и Ωi(x) следует использовать свойство алгоритма Евклида: каждое из значений Λi(x) и Ωi(x) получается из двух предшествующих значений по следующей общей формуле:
Ei(x)=Ei-2(x)+qiEi-1(x),где
от деления указанных многочленов т,е. многочлен степени 0 и более.
3) Алгоритм Берлекемпа-Месси.
Этот алгоритм был предложен Э. Берлекемпом и Дж. Месси[4] как итеративный процесс построения минимального линейного регистра сдвига с обратной связью, аналогичного схеме решения разностных уравнений, генерирующего все компоненты синдромного многочлена S(x) no υ первым.
Целью алгоритма является нахождение коэффициентов многочлена локаторов ошибок Λ(х), значение которых определяет вид обратных связей регистра.
На рис.7.1 представлен доработанный алгоритм, позволяющий кроме А(х) получать также и многочлен значений ошибок и Ω(x).
Рис.7.1 Алгоритм Берлекемпа-Месси.
г) Алгоритм Форни.
Д. Форни[4] получил выражение для вычисления значения ошибки, если известны многочлены значения ошибки Ω(x) и локаторов ошибок Λ(х):
Где Хl-1- корень многочлена Λ(х), обратный локатору ошибки Хl, Λl(Х ) –производная от Λ(x).
В. Примеры решения ключевого уравнения
Рассмотрим примеры применения рассмотренных алгоритмов для декодирования с исправлением ошибок кодами Рида-Соломона.
Пусть над полем GF(23) с элементами 000, α=1=100, α1=010, α2=001,
α3=110, α4=011, α5=111, α6=101 построен код Рида-Соломона (7,3) с dmin=5, способный исправлять 2-х кратные ошибки. Корнями порождающего многочлена являются следующие элементы GF(23): α1=010, α2=110,α3=110,α4=011.. Порождающий многочлен кода имеет вид;
g(x)=(x+α)(x+α2)(x+α3)(x+α4)=α3+α1x+α0x2+α3x3+x4
Предположим, что по каналу связи была передана комбинация (0000000),а на вход декодера поступила комбинация. f(x)=а2х3+а5х4. Схема вычисления синдрома определила компоненты синдромного многочлена:
S1=f(x=α)=α5+α2=α3
S2=f(x=α2)=α1+α6=α5
S3=f(x=α3)=α4+α3=α6
S4=f(x=α4)=α0+α0=0
При вычислении значений элементов Si, показатели степеней элементов поля приводятся по mod 7, т.к. для GF(23) а=а7=1. Итак, для принятой комбинации синдромный многочлен имеет вид:
S(x)=α3+α5x+α6x2
Определим для принятой комбинации многочлен локаторов ошибок Λ(х).
Алгоритм Питерсона. Матричное уравнение для нахождения компонентов Λ(х) по S(х) имеет вид:
В предложении, что произошло максимальное число исправляемых кодом ошибок t=2 воспользуемся теоремой Крамера [5] для решения системы линейных уравнений, представленных в матричной форме Ах=С, в случае, когда det А существует и отличен от нуля, В этом случае система имеет одно определенное решение , и каждое из неизвестных выражается частным двух определителей, причем в знаменателе стоит определитель |А|, а в числителе, определитель который из него получается заменой коэффициентов при определяемом неизвестном соответствующими свободными членами:
Применяя теорему Крамера для нахождения λi получаем:
Таким образом, многочлен локаторов ошибок имеет вид:
Λ(x)=1+α6x+α0x2
Корнями многочлена Λ{х) являются элементы GF(23): α3 и α4, т.е. локаторы ошибок
Это дает возможность представить многочлен локаторов ошибок и виде;
Λ(х)=(1+α3х)(1+α4х)\
Алгоритм Питерсона позволяет найти также и значения ошибок. Для этого выразим компоненты синдромного многочлена S1 и S2 через локаторы ошибок Xl, и значения ошибок Yl:
S1=Y1X1 + Y2X2
S2=Y1X12 + Y2X2
Представим эти уравнения в матричной форме:
или
Решим это уравнение тем же способом, каким были найдены λ1 λ2 .Вычислим определитель:
Теперь находим:
=α(α4+α2)=α5+α3=α2
,
=α(α+α2)=α2+α3=α5
Полученные значения Y1 и Y2 соответствуют коэффициентам многочлена ошибок.
2.Алгоритм Евклида
Поиск значений Λi(x) в Ωi(x), удовлетворяющих приведенным выше критериям, представим в виде таблицы.
i |
-1 |
0 |
1 |
Λi(x) |
0 |
1 |
α+х+αx2=α(1+α6x+x2) |
Ωi(x) |
х4 |
S(x) |
α 4+α 4х=α(α3+α3х) |
qi(x) |
___ |
___ |
[X4 /S(x)]=α+x+αx2 |
Из приведенной таблицы видно, что найденное значение Λ(х)=α(1+ α6x+x2) отличается от Λ (х), подученного по алгоритму Питерсона постоянным сомножителем α. Понятно, что корни этих многочленов совпадают, т,е, постоянный сомножитель не влияет на определение локаторов ошибок.
3, Алгоритм Берлекемпа-Месси. Вычисление Λ(х) и Ω(x) в соответствии с доработанным алгоритмом Берлекемпа-Месси представим ввиде следующей таблицы:
r |
Sr |
Δr |
M(x) |
B(x) |
Λ(x) |
L |
Ω(x) |
A(x) |
0 |
|
|
|
1 |
1 |
0 |
0 |
1 |
1 |
α3 |
Α3 |
1+α3x |
α4 |
1+α3x |
1 |
α3 |
0 |
2 |
α5 |
Α |
1+α2x |
a4x |
1+α2x |
1 |
α3 |
0 |
3 |
α6 |
Α2 |
1+α2x+α6x |
α5+x |
1+α2x+a6x2 |
2 |
α3 |
αx |
4 |
0 |
Α2 |
1+α6x+x2 |
α5x+x2 |
1+α6x+x2 |
2 |
α3+ α3x |
αx |
Найденному значению Λ(х) соответствует регистр сдвига с обратными связями, определенными Λ(х), длины L=2, способный вычислять лее компоненты симдромного многочлена по 2-м младшим.
Этот регистр имеет вид:
В исходном состоянии в ячейках памяти регистра записаны компоненты синдрома S1=α3 и S2=α5. По второму такту S2=α5 поступает на выход, а в ячейках остаются S3=α6 и S4=0, которые за два следующих такта поступают на выход.
4. Алгоритм Форни.
Для вычисления значений ошибок необходимо знание Λ(х) и его корней, а также должен быть известен многочлен Ω(x). Непосредственным вычислением находим: ■
Ω(x)=S(x)Λ(x)(modx2t)=(α3+α5x+а6х2)(1+α6x+x2)(modx4)=α3+α3х. Расчетные значения Λ(х) и Ω(x) полностью совпадают с полученными по алгоритму Берлекемпа-Месси и отличаются постоянным сомножителем при вычислении по алгоритму Евклида.
Для нахождения значений ошибок по алгоритму Форни найдем Λ (х)=а6. Подставляя в Ω(х) вместо x значения корней Λ(x)получаем:
Итак,вычисленное значение многочлена ошибок е(х)= α2x3+α5x4 полностью совпадает с принятой комбинацией f(х) и, следовательно, по каналу связи передавалась комбинация (0000000).