Скляр Б. Цифровая связь (2003) (1151859), страница 108
Текст из файла (страница 108)
(8.32) Здесь, как было показано в уравнении (8.29), г(Х) содержит 2-символьные ошибки. Если г(Х) окажется правильным кодовым словом, то зто приведет к тому, что все сим- волы синдрома 5, будут равны нулю. В данном примере четыре символа синдрома на- ходятся следующим образом: 5, =г(а) =а'+а'+а'+а'+ам+а'+ан = О 3 б 3 2 1 4 (8.33) 3 =а, 5 ( 2) О 4„3 6 14 13 17 О 4 ! „б О б 3 (8.34) =а', 5,=г(а') =аб+аз+а!6+а'+а" +а" +азз= О 5 3„2 4 4„2 (8.35) с.!6 4) О „б + !2 !2 22 Ю 29 = аб+ а'+ аз+ а'+ а' 4. а'+ а' = (8.36) Результат подтверждает, что принятое кодовое слово содержит ошибку (введенную нами), поскольку Я и О.
Пример 8.3. Повторная проверка значений синдрома Для рассматриваемого кола Рида-Соломона (7, 3) модель ошибки известна, поскольку мы выбрали ее заранее, Вспомним свойства кодов, обсу:кдаемое в разделе 8,4.8.1, когда была введена нормальная матрица. Все элементы класса смежности (строка) нормальной матрицы имеют олин н тот же синдром. Нужно показать, что это свойство справедливо и для кода Рида-Соломона, путем вычисления полинома ошибок е(Х) со значениями корней 8(Х).
Это должно дать те же значения синдрома, по и вычисление г(Х) со значениями корней 8(Х). Лругнмн словами, зто должно дать те же значения, которые были получены в уравнениях (8.33)-(8.36). Глава 8. Канальное кодирование! часть 3 478 Из этой структуры можно видеть, что каждый правильный лелином кодового слова ЩХ) является кратным полиномиальному генератору 8(Х). Следовательно, корни 8(Х) также должны быть корнями Щх). Поскольку г(Х) =()(Х)+ е(Х)„то г(Х), вычисляемый с каждым корнем 8(Х), должен давать нуль, только если г(Х) будет правильным кодовым словом.
Любые ошибки приведут в итоге к ненулевому результату в одном (или более) случае. Вычисления символов синдрома можно записать следующим образом: Решение 5, =г(Х) =г(а') 1ы1,2,...,л-х ~ Х=а' 5, ш [а)(Х) +е(Х)[ ш 1)(а') + е(аз') [х= ' 5, = г(аз') = Ща') + е(а') = О+ е(а') Из уравнения (8.29) следует, что е(Х) = азХз + а'Ха, поэтому 5, же(аз) штат+аз= =а'+а = з =а, 52шЕ(оз)=а" +а' = ! 6 =а+а = 5зше(а') =ам+а'~ш а з =а +ах = 5аше(а)=а +а а за и =а+а = е е Из этих результатов можно заключить, по значения синдрома одинаковы — как получен- ные путем вычисления е(Х) со значениями корней 8(Х), так и полученные путем вычисле- ния г(Х) с теми же значениями корней 8(Х). 8.1.6.2. Локализация ошибки е(Х)=е Хб+е Х'2+...+е Х'".
зз 22 за (8.37) Индексы 1, 2, ..., и обозначают 1-ю, 2-ю, ..., з-ю ошибки, а индекс) — расположение ошибки. Для коррекции искаженного кодового слова нужно определить каждое значение ошибки е, и ее расположение Хз', где 1= 1, 2, ..., и Обозначим номер ло- в 8.1.
Коды Рида-Соломона 479 Допустим, в кодовом слове имеется т ошибок, расположенных на позициях Х з', Х л, ..., Х ь . Тогда полипом ошибок, определяемый уравнениями (8.28) и (8.29), можно записать следующим образом: ки как [3, = а1' . Далее вычисляем и — л = 21 символа синдрома, подставляя ый полинам при !'= 1, 2, ..., 21. 5, = г(а) = е,[31 + е, [32 + " + е, [)„ 52 = г(а) = е р, + е,[3, + "+ е (8.38) 52, = г(аг! ) = е [321 + е [3221 + " + е [32! меется 21 неизвестных (1 значений ошибок и ! расположений) и система 21 Впрочем, эту систему 21 уравнений нельзя решить обычным путем, поавнения в ней нелинейны (некоторые неизвестные входят в уравнение в Методика, позволяюшая решить эту систему уравнений, называется алгоодирования Рида-Соломона. числен ненулевой вектор синдрома (один или более его символов не равны нуначает, что была принята ошибка, Далее нужно узнать расположение ошибки к). Полином локатора ошибок можно определить следуюшим образом: (8.39) о(Х) =(1+ [3,)О(1+ [32Х) ...
(!+ [3„Х) = =1+оХ+оХ'+... +оЛ . ~2 ~1 ~4 ~1 ~1 4! -51+! ~! 42 о, (ЗАО) 51 1 51 81м " 821-1 е21-2 81» 8ыг "' 8и г 8ъ -1 ~21 -1 -5„ 1 122 Мы воспользовались авторегрессионной моделью уравнения (8.40), взяв матрицу наибольшей размерности с ненулевым определителем.
Для кода (7, 3) с коррекцией двухсимвольных ошибок матрица будет иметь размерность 2 х 2, и модель запишется следуюшим образом: (8.41) (8.42) Чтобы найти коэффициенты о, и 02 полинома локатора ошибок п(Х), сначала необходимо вычислить обратную матрицу для уравнения (8.42). Обратная матрица лдя матрицы [А) определяется следуюшим образом: 480 Глава 8.
Канальное кодирование: часть 3 и о(Х) будут 11[31, Урз, ..., 11[3„. Величины, обратные корням п(Х), будут ь номера расположений моделей ошибки е(Х). Тогда, воспользовавшись ионной техникой моделирования [5), мы составим из синдромов матрицу, в которой первые 1 синдромов будут использоваться для предсказания следуюшего синдрома: аьг 1Я~ 1лт А= Следовательно, Г 3 5) бес'а а "=аэаб а5а5=а9+а10 „5 б г =а +а =а5 (8.4З) со(асгог (8.44) "(::::~ ~:."~="~::::~- а' а' сс' а5 ае (3.45) Проверка лоделсности Если обратная матрица вычислена правильно, то произведение исходной и обратной матрицы должно дать единичную матрицу: а' а' ае а5 а'+а' а'+ан 0 1 ' (8.46) С помощью уравнения (8.42) начнем поиск положений ошибок с вычисления коэффициентов полинома локатора ошибок о(Х), как показано далее.
й=~ 1~"1=Ы=й (8.47) (8.43) о(аб) =а +а + аб= а иО о(а) =а оа +а =а иО о(аг) а +ае+ ссо об и О о(сс') = аб+ а'+ аб = 0 ~ ОШИБКА 8.1. Коды Рида-Соломона 481 Из уравнений (8.59) и (8.47) о(Х) = а'+ о,Х+ огХ' = 0+ б,+ 0Х1 Корни а(Х) являются обратными числами к положениям ошибок. После тою как зги корни найдены, мы знаем расположение ошибок. Вообще, корни о(Х) могут быль одним или несколькими элементами поля. Определим зги корни путем полной проверки поли- нома о(Х) со всеми элементами поля, как будет показано ниже. Любой элемент Х, который дает о(Х) = О, является корнем, что позволяет нам определить расположение ошибки.
е(Х)=е Х '+е Х 2. /! 22 (8.49) Здесь были найдены две ошибки на позициях а' и а4. Заметим, что индексация номеров расположения ошибок является сугубо произвольной. Итак, в этом примере мы обозначили величины В! = ал как !)! =ал =а и Вг =а!! =а". 8.1.6.3. Значения ошибок Мы обозначили ошибки е,, где индекс / обозначает расположение ошибки, а индекс ! — !-ю ошибку. Поскольку каждое значение ошибки связано с конкретным месторасположением, систсму обозначений можно упростить, обозначив е/ просто как л е!. Теперь, приготовившись к нахождению значений ошибок е, и е„связанных с позициями !3! = а' и Вг = а4, можно использовать любое из четырех синдромных уравнений.
Выразим из уравнения (8.38) 5, и 52. 5, =г(а)=есй2+ег!32 52 —— г(а )=ес))! +егрг 2 2 2 (8.50) Эти уравнения можно переписать в матричной форме следующим образом: [':1 1 (8.51) (8.52) Чтобы найти значения ошибок е! и е, нужно определить обратную матрицу для уравнения (8.52). [ 1 с~ „3 1 6 4 ! „4 4 3 сс6 ссз 6 оз Глава О. Канальное кодирование: часть 3 482 о(а') = а'+ а" + ае = О =6 ОШИБКА сз(сс!) с!и+ ан + ае ссг и О о(а') = аа+ а" + а' = а' я О Как видно из уравнения (8.39), расположение ошибок является обратной величиной к корням полинома. А значит, о(а') = О означает, по один корень получается при 1фс=аз.
Отсюда Д=1/а'=а4. Аналогично о(а') =О означает, что другой корень появляется при 1/!3!. =1/а =а, где (в данном примере) ! и Г обозначают 1-ю и 2-ю ошибки. Поскольку мы имеем дело с 2-символьными ошибками, полипом ошибок можно записать следующим образом: а7 а4 ао а4 Теперь мы можем найти из уравнения (8.52) значения ошибок. (8.54) 8.1.6.4. Исправление принятого полинома с помощью найденного полиномвошибок Из уравнений (8.49) и (8.54) мы находим полипом ошибок. е(Х) = е,ХО+к Х~з = 2Хз+ ЗХ4 (8.55) Показанный алгоритм восстанавливает принятый полипом, выдавая в итоге предполагаемое переданное кодовое слово и, в конечном счете, деколированное сообщение.
()(Х) = г(Х) + е(Х) = ЩХ) + е(Х) + е(Х) г(Х) (100) + (001)Х + (011)Х2 + (100)Хз + (101)Х» + (Х) (000) + ((а)0)Х + (000)Х2 + (001)Хз + (111)Х4 + ЩХ) = (100) + (001)Х + (011)ХЗ + (101)Х + (010)Х» + = а'+ а'Х+ а'Х'»а'Х'+ а'Х»+ а'Х'+ а'Х' (8.57) (8.56) (110)Х + (111)Х (000) Х + (000) Х (110)ХЗ + (111)Х» = Поскольку символы сообщения содержатся в крайних правых 14 = 3 символах, декодированным будет следующее сообщение: 010 110 111. а' аз аз Это сообщение в точности соответствует тому, которое было выбрано для этого при- мера в разделе 8.1.5.
(Для более детального знакомства с кодированием Рида- Соломона обратитесь к работе 16).) 8.2. Коды с чередованием и каскадные коды 8.2. Коды с чередованием и каскадные коды 483 В предыдущих главах мы подразумевали, что у канала о7ас)»яств)е7л лаля7яь, поскольку рассматривались коды, которые должны были противостоять случайным независимым ошибкам.
Канал с ламягяью — это такой канал, в котором проявляется взаимная зависимость ухудшений передачи сигнала. Канал, в котором проявляется замираяие аследслмие млоюлучееою расЗростралелия, когда сигнал поступает на приемник по двум или более путям различной длины, есть примером канала с памятью. Следствием является различная фаза сигналов, и в итоге, суммарный сигнал оказывается искаженным. Таким эффектом обладают каналы мобильной беспроводной связи, так же как ионосферные и тропосферные каналы. (Более подробно о замирании см. главу 15.) В некоторых каналах также имеются коммутационные и другие импульсные помехи (например, телефонные каналы или каналы с создаваемыми импульсными помехами).