Цитата(SKov @ May 27 2011, 17:03)

Тут все зыбко. Строго говоря, когда вы добавляете нулевой корень, то у вас просто увеличивается на единицу число проверочных символов кода, а число информационных уменьшается на столько же. А у вас длина меняется? - или я не понял вашей задачи?
Да, от прочитанного у меня какая-то каша в голове.
Добавление множителя (x+1)(x+1) дает не биты четности, а новые синдромы (причем, со значениями из GF(2)).
Добавление множителя к генератору, как я понял, называется "выбрасывание" ("expurgation").
То есть, часть прежних кодовых слов перестают считаться таковыми.
Возможно, это то, что мне нужно (хотя в спеках четко написано "extended code")...
Как мне объяснили, вся эта чехарда с расширениями-укорочениями задумана для обратной совместимости формата кадра с кодом RS(255,239). Думаю, что дописывать проверочные биты, чтобы их сразу выкинуть смысла нет.
Вызывают трудности два момента:
1) Что делать с дополнительным коэффициентом/коэффициентами синдрома, локатора и т.д.
2) Степени корней (с учетом дополнительного множителя) не всегда идут попорядку.
(x+1) - это минимальный многочлен alpha(0) (тут вроде всё нормально, но корень двойной).
Есть еще один код, с генератором
gh(x) = x^30*m1(x^-1)*m3(x^-1)*m5(x^-1)*(x^2+x+1).
Его корни: lcm(min_poly(alpha(1017)), ... , min_poly(alpha(1022))) = lcm(min_poly(alpha(-1)), ... , min_poly(alpha(-6))).
Но дополнительный множитель (x^2+x+1) - это минимальный многочлен alpha(341) и alpha(682).
В определении же кодов БЧХ четко сказано, что степени должны идти попорядку...