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

[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]

Алгоритм Берлекэмпа-Месси для (15, 5)-кода БЧХ, исправляющего тройные ошибки

д(х) = х" +.х« + х + X* + х + X + 1 (.х) = 0

1)(х) = х + х- + х =

= e(x)

= a*

S, = a* + a° + a*

= a>

S4 = a2« + a2o + a«

= a"-

S5 = a" + a" + a"

= a=

»• Дг T(x) B(x) Л(х) Z-

0 . Л- 1 0

1 a* l+a"*x a l + a>*x 1

2 0 1+aV ax l+a*x 1

3 a> l+a>*x + aV a + ax H-a*x + a>V 2

4 0 l+a*x + ax2 a*x + a-V l+ax + ax 2

5 a" l + a*x + a"x4a*x a* + a-\x + ax I+a*x+a"x + aV 3

6 0 r+a*x + ax4aV a*x + aV + ax 1+aV+a"x + aV 3

Л(х)= 1 + a*x + ax + a>*x = (1 + ax)(l +a=x)(l + ax)

возникшие вопросы помогут найти следуюн;ие соображения. На некоторых итерациях, скажем на г-й итерации, наравне с выбранным по алгоритму Берлекэмпа-Месси регистром с линейной обратной связью могут существовать другие регистры минимальной длины с линейной обратной связью, генерирующие требуемые символы. Все эти регистры будут генерировать одну и ту же требуемую последовательность г компонент синдрома; в то же время последующие компоненты, не входящие в г-ю итерацию, у них будут различны. Каждый раз, когда это возможно, на следующей итерации выбирается регистр сдвига с линейной обратной связью с прежней длиной, генерирующий следующую требуемую компоненту синдрома; если такого регистра не оказывается, то длину регистра приходится увеличивать. Однако при решении вопроса о необходимости увеличения длины регистра никак не учитывается значение следующей компоненты синдрома (проверяется лишь выполнение соотношения A+i ф 0).

Таблица 7.4



ЗаЭание тактоо

U уПрй6/1ЯН11М0.Я

логика

Управление ключами ~и. тактовые импульсы Вля кажйого регистра сВвига

Регистр В из lt+ Z) разряйов

PQpomaem только в течение t+i тактов кажйой итерации . /-

ЛоЛЛг...

Регистр Лиз t + \ разряйов


Синйромный регистр из Zt + \ разряйов

Рис. 7.6.- Схема аппаратурной реализации алгоритма Берлекэмпа-Месси. Замечания. Требуется 2t итераций из 2 (4- 1) тактов каждая. Все данные передаются т параллельными битами.

Таким образом, на (г -f 1)-шаге имеется по меньшей мере столько же возможных вариантов регистра сдвига, сколько значений может принимать S,.+i.

Описанный алгоритм может быть реализован в виде программы для универсальных или специализированных ЭВМ, предназначенных для вычислений в полях Галуа. Если требуется очень большая скорость декодирования, то можно воспользоваться специальным жестким исполнением декодера, возможно включающим регистры сдвига.

Схема аппаратурной реализации построенного на регистрах сдвига устройства приведена на рис. 7.6. Три регистра, изображенные на рисунке, используются для хранения значений коэффициентов многочленов S (х), А (х) и В (х); длина каждого регистра должна бьггь не меньше той, которая необходима для хранения соответствующего многочлена наибольшей степени, а иногда выбирается немного большей. Если регистры содержат многочлены со степенями меньше максимальных, то неиспользо-



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

Вычисление A(xj с помощью алгоритма Берлекэмпа-Месси

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

с помощью вычисления {1 = \ )

корней А(х)

Алгоритм Форни SlCx)=S(x)A(x) (modj?**;

K(x) = i(jAj)x-

Рис. 7.7. Быстрое декодирование кодов БЧХ.

ванные разряды заполняются нулями. Регистры S (х) и В (х)

имеют на один разряд больше, чем необходимо для хранения многочленов максимальной степени; отметим наличие дополнительного разряда в регистре 5 (х).

Такой выбор длин регистров вместе с выбором числа тактов работы каждого из регистров в течение одной итерации приводит к тому, что в результате каждой итерации коэффициенты многочленов сдвигаются от своего первоначального положения на одну позицию. Это обеспечивает умножение В (х) на х и такую переиндексацию компонент Sj, чтобы получились компоненты Sr j, входящие в выражение для А,.. Чтобы понять это, снова обратимся к рис. 7.6, на котором регистр S (х) показан в своем исходном состоянии. В результате каждой итерации содержимое этого регистра сдвигается на одну позицию вправо, что позволяет в следующей итерации правильно произвести умножение соответствующих коэффициентов многочленов S (х) и А (х). Регистр Л в течение одной итерации сдвигается на полную длину дважды: когда вычисляется А и когда в этот регистр вводится новое значение Л.

На рис. 7.7 представлена последовательность вычислений, производимых декодером, использующим алгоритм Берлекэмпа- Месси и алгоритм Форни. В случае когда произошло не более /

Ввов i;(x)




[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.0547