Главная страница Дискретный канал связи [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] Построение начнем с более компактной организации алгоритма Берлекэмпа-Месси. Заменим многочлены Л<> (х) и В<") (х) (2 X 2)-матрицей из многочленов > [ Л) (х) (х). • Для обозначения элементов матрицы Л<) (х) нам понадобится несколько индексов; символ Л<) . будет означать j-и коэффициент многочлена, стоящего на пересечении строки а и столбца b в г-й итерации. Напомним, что вычисления алгоритма Берлекэмпа-Месси основываютсяна двух равенствах: Л--) (х) 1 -А,х 1 Г (х) Второе равенство можно записать в виде
Определим матрицу Л**") {х) равенством Через эту матрицу можно выразить многочлены Л<) [х) и (х): = Л<-) {х) Л) (х) + ЛИ (X) LAH(x)~fA<?) (X) Полученное равенство может быть использовано как для вычисления Л<) [х), так и для вычисления многочленов Л) {х) и B*" [х). Непосредственное вычисление матрицы Л< [х) содержит вдвое больше умножений, так как вместо двух элементов в вычислениях участвуют четыре. Поэтому замена итераций многочленов Л) (д;) и В*") [х) итерациями матрицы Л*" (х) удваивает необходимое число умножений. Это ухудшение будет затем устранено реорганизацией вычислений. В перестроенном виде алгоритм Берлекэмпа-Месси основывается на двух уравнениях, а именно на уравнениях А.=5 л1г;5. ;+Is л}г;х-/ /=0 /=0 Л--) (X) = 1 -АгХ А;дг (1 -S)x. Теперь мы хотим уменьшить число вычислений, группируя итерации в пакеты. Определим матрицу I - [ А;б, (1 - S,) X J М*--) (х) = так что Л«) (X) = МС) (х) (х) ... М<) (х). Это произведение должно вычисляться последовательно по одному члену, начиная справа, так как М*) (х) нельзя вычислить до тех пор, пока не вычислена Л-> (х). Определим следующие частичные произведения рассматриваемых матриц: Л(г. Г) (х) = МС) (х) М-1) {X) ... М(-+1) (X); тогда АС) (х) = АС-.о) {х) А<-) (х) = А*-- ) (х) Л"") (х). Определим также вектор модифицированных синдромных многочленов S*) (х): S(x) [S(x)j S(-) (х) = Л() (х) = А(- (х) S<) (х). Невязка /=0 /=0 становится равной г-му члену свертки и может быть записана через многочлены: А (X) = Air" (х) 5 (X) -L Л1Г" W 5 (X) = = [АГWЛ}Г> (х) + Л1Г-W А;> (х)] S (X) + + [Air - WAir (х) f Air- (х) AiP ix)] S (X). Группируя члены, получаем А (х) = Air- (х) [aV (х) S (X) I- А{Г (X) S (х)] + j- Air- (X) [Ar W S (X) 1- (X) S (X)]. Стоящие в квадратных скобках многочлены являются компонентами вектора S*") {х) модифицированных синдромных многочленов. Следовательно, выражение для невязки можно переписать Б виде где Si/ и Ss/ обозначают соответственно /-е коэффициенты многочленов в первой и второй компонентах вектора S**") (х). Для ускорения алгоритма Берлекэмпа-Месси сформируем пакеты но т итераций в каждом. Если т делит 2/, то обращение к каждому из 2 т пакетов одинаково. В противном случае последний пакет содержит меньше т итераций, но мы полагаем его таким же. Индекс г теперь пробегает значения г = 1, 2, т, т -f 1, 2т, 2т -f 1, Зт, Зт + 1, ... . На г-й итерации -го пакета модифицированный алгоритм Берлекэмпа-Месси вычисляет А**"- [х) согласно равенству 1 - [А;б, {\-Ь,)х\ где г = /гт, а Д вычисляется по формуле В конце -го пакета, когда г равно (k -f 1) т, матрица локаторов ошибок и вектор модифицированных синдромных многочленов даются соответственно равенствами А() {х) = Л(- {х) Л() {х) и S(-) (х) = Л(. (х) SC") (х), где г = kx к г {k + \) X. Теперь ускоренный алгоритм готов начать {k + 1)-й пакет. На рис. 11.7 приведена блок-схема ускоренного алгоритма Берлекэмпа-Месси с некоторыми очевидными сокращениями. В левой части рисунка приведен стандартный алгоритм, расписанный для т итераций, а в правой показаны блоки, осуществляющие связку пакетов по т итераций каждый. Если правая часть алгоритма выполняется так, как она выписана, то мы не получаем никакой экономии вычислений. Однако умножения многочленов в блоках правой части эквивалентны сверткам, которые могут быть эффективно вычислены с помощью описанных в § 11.1 и 11.3 методов или с помощью быстрого преобразования Фурье и теоремы о свертке. Некоторые возможности иллюстрируются следующим примером. [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.017 |