Главная страница  Дискретный канал связи 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [ 64 ] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189]

Вычисление компонент синйрома


Нйхожйениелокаторов ошибок

Д,(/=1.....i)

с помощью вычисления корней Л.г-;

Х\ ••

Сш)п

Рис. /.1. Декодер Питерсона-Горенстейиа-Цирлера.

Поскольку число элементов поля конечно, обычно простейшим путем нахождения корней многочлена Л (х) является метод проб и ошибок, известный как процедура Ченя. Эта процедура состоит просто в последовательном вычислении Л (а) для каждого / и проверки полученных значений на нуль. Наиболее простым способом вычисления значения Л (х) в точке 3 является схема Горнера:

Л (3) = (.. .(((Л,3 + Л,. 1) 3 + Л„ ,) 3 +

+ л„ з)р-ь ... +Л„).



Для вычисления Л (Р) по схеме Горнера требуется только v умножений и V сложений.

В качестве примера процедуры декодирования рассмотрим декодирование (15,5)-кода БЧХ, исправляющего три ошибки и имеющего порождающий многочлен

g (х) = х<> + х"" + )fi + + + X + I.

Для примера будем считать принятый многочлен равным v (х) = = л; + х. Ясно, что если бы произошло не более трех ошибок, то кодовое слово должно было бы быть нулевым и v (х) = е (х), но декодер не может сделать такого заключения. Выполним все шаги алгоритма декодирования. Сначала вычислим компоненты синдрома, используя арифметику в поле GF (16):

Si = + = а}\

Ss Se

= а" + а* = а\ = + а« = О, = + а* = а, = а? + а" = а«,

Пусть V = 3, тогда

"Si

a"

Определитель M равен нулю; следовательно, полагаем v = 2. Тогда

"ai2

а»-

.а»

Определитель не равен нулю; следовательно, произошло две ошибки. Далее,

м-1 =

О а"

следовательно,

Л (х) = aV + ах + 1.



7.3. КОДЫ РИДА -СОЛОМОНА 201

Используя процедуру Ченя, получаем разложение

Л (х) = (а-х + 1) (ах + 1) = а» (х - а) (х - а).

Многочлен локаторов ошибок Л (х) имеет корни а® и а, а локаторы ошибок равны элементам, обратным корням. Таким образом, ошибки произошли во второй и седьмой позициях. Поскольку код является двоичным, значения ошибок равны 1 и е (х) = = х + х.

7.3. КОДЫ РИДА-СОЛОМОНА

Важным и широко используемым подмножеством кодов БЧХ являются коды Рида-Соломона. Это такие коды БЧХ, у которых мультипликативный порядок алфавита символов кодового слова делится на длину кода. Таким образом, m = 1 и поле символов GF (q) совпадает с полем локаторов ошибок OF (q"). Обычно мы будем выбирать а примитивным; тогда

п = q - I = q -I.

Минимальный многочлен над GF (q) элемента 3, взятого из того же поля, равен

/р {х) = х- 3.

Поскольку поле символов и поле локаторов ошибок совпадают, все минимальные многочлены линейны. В коде Рида-Соломона, исправляющем t ошибок, обычно полагается /о = 1, и тогда порождающий многочлен записывается в виде

g (х) = (х ~ а) {х - а) ... (х - а-).

Степень этого многочлена всегда равна 2t, откуда следует, что параметры кода Рида-Соломона связаны соотношением

п -k = 2t.

В коде Рида-Соломона можно выбрать также любое другое значение /о, причем с помощью разумного выбора /о иногда удается упростить кодер. Таким образом,

g (х) = {х- а") (х ~ ai+) . . . (х - а/»+=-).

В качестве примера найдем g (х) для (15,П)-кода Рида- Соломона с t = 2 над (16). Может быть выбрано любое j; мы выберем /о = 1. Тогда

g (х) = (X - а) (х - а) (х - а) (х - а*) =

= X* -f (2 + 2 + 1) х + + z)x+zx + (z + z+l)==

= X* Н- aV + aV + ах + а"".

(Здесь использовано приведенное в табл. 7.1 представление элементов поля GF (16) в виде многочленов от г.) Поскольку сте-




[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [ 64 ] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189]

0.0157