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

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

Девятиточечная циклическ,йя свертка, 19 умножений

Семиточечиая циклическая свертка, 13 умножений

1 1 г

1 1 1 1 1 1 I

0 0 1

10 1110 0

1 0 0

0 10 1110

1 0 1

0 0 10 1 1 1

«"4

0 1 1

1110 0 10

1 1 0

1 1 0 0 1 0 1

1 1 1

10 0 10 1 1

0 1 0

0 1110 10

0 0 1

10 0 1110

0 1 1

0 0 1110 1

1 1 0

1110 10 0

1 1 1

1 10 10 0 1

1 0 1

10 1001 1

1 1 II 1 1 1 1 г

1 1 1 1 1 1 1 1 г

I (М 10 1 10 1

10 1 10 1 10 1

1 1 0 1 1 0 1 1 0

1 1 0 1 1 0 1 1 0

0 110 110 11

0 110 110 11

10 0 10 0 0 0 0

10 0 10 0 0 0 0

0 0 0 10 0 10 0

0 0 0 10 0 10 0

10 0 0 0 0 10 0

10 0 0 0 0 10 0

1 1 1 1 0 1 0 1 0

1 1 1 1 0 1 0 1 0

0 1 0 1 1 1 1 0 1

98-

0 1 0 1 1 1 I 0 1

<

1 0 1 0 1 0 1 1 1

1 0 1 0 1 0 1 1 1

1 10 10 0 0 10

1 10 10 0 0 10

0 10 1 10 10 0

0 10 110 10 0

1 0 0 0 1 0 1 10

1 0 0 0 1 0 1 10

10 110 10 0 0

10 1 10 10 0 0

0 0 0 10 1 10 1

0 0 0 10 1 1 0

10 10 0 0 10 1

10 10 0 0 10 1

0 0 0 0 1 10 1 1

0 0 0 0 1 1 0 1 1

0 1 10 0 0 0 1 1

0 1 10 0 0 0 1 1

0 110 110 0 0

0 1 10 1 10 0 0.

для полей характеристики 2.

необходимо 15 умножений. Однако поскольку данный частный многочлен g (х) имеет только два отличных от единицы значения коэффициентов, то тривиально просто так организовать вычисление, что понадобится только шесть умножений. Быстрый алгоритм, который будет приведен ниже, превосходит алгоритмы как с 15, так н с шестью умножениями. Заметим также, что молено воспол1,зоБаться приведенным на рис. 11.1 алгоритмом



10 110 0 0 0 1 10 1010 0 10 11010 0 10 0 110 0 110 0 0


"l 11 l

110 0

0 0 11

0 10 1

10 10

1.0 0 р

0 10 0

0 0 10

0 0 0 1

10 0 0 1 о 1 fl 10 10

loot

110 0 1 1 Г1

1 111 1 1 1.1 1111

do d, d2

Рис. 11.2. Алгоритм Винограда для вычисления четырехточечиой свертки.

семиточечной свертки, который, однако, содержит 13 умножений. •

Согласно изложенной выше теории, можно выбрать любой многочлен b (х), степень которого не меньше 7. Выберем b (х) - = а: -f 1; тогда

(х +1) = (х+1)(х + х+ 1) (х + х+1) = = by (х) Ь (х) bs (х).

Можно было бы выбрать также многочлен

b (X) = х{х+ 1)2 (х + х+ 1),

у которого степени взаимно простых делителей несколько ниже, но наш выбор приводит к лучшим результатам.

Прежде всего найдем все необходимые для алгоритма фиксированные многочлены:

g<i) (х) = Rb, (.) Ig (х) 1 - а, gi2) = R,,,i lg(x)] = l, g(3) (д;) = i, [g х)] == + ах+ I.



= a(d2 + dx + do).

= dx.

= C?o.

= аЫ,

= + o?dx.

= аЧх -f a?do.

= o?d + dx.

Выполняемое в таком виде вычисление свертки с (х) требует четырех умножений и 35 сложений в поле GF (8). Несомненно,

Согласно китайской теореме об остатках для многочленов, flC) (х) = xf" + + х + х + х + х + 1, а(2> (х) = х + х + х + I, а(З) х) = а:« + + x« + 1.

Теперь нам надо вычислить три короткие свертки: с(1) (х) = g(i> (х) d(i> {х) = adC) (х),

с(3) (х) = g(3) (х) (х) = (аЗх2 + аЧ f 1) (х).

По заданному многочлену d (х) вычисляем вычеты

dC) (х) = + di + 4.

сГ(2> (х) = dax + dix + c?o.

d(3) (д;) = dx + c?ix + do-

Таким образом, для вычисления (х) требуется одно умножение, для вычисления с<> (х) умножений делать не надо, а для вычисления с> (х) требуется три умножения. Собирая вместе все эти вычисления, получаем следующее выражение для свертки:

с (X) = (Ах + A2 + A + A,+As)x + (Ах + As + A, + А,) г + + (Ах + А2 + А + А, + As) X* + (Ах + А2+ As + + А + А, + Ае) х +

+ (Ах + А2 + As + А + А, + А, + А,) х +

+ (Ах + As + А + А, + А., + As)x + (Ах + А, +

+ А, + As),




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