Как можно найти многочлен для подкошенного LFSR?

Мои рекомендации:

  1. Перепишите его как генератор, использующий yield, а не цикл, который объединяет глобальную переменную на каждой итерации.
  2. Сохраните текущую сумму вместо вычисления суммы некоторого подмножества представления массива числа.
  3. Работайте с одним экземпляром своего представления рабочего числа вместо того, чтобы склеивать его копию во временную переменную на каждой итерации.

Обратите внимание, что никакой конкретный порядок не подразумевается.

8
задан Bill the Lizard 19 September 2012 в 22:02
поделиться

1 ответ

Недавно прочитали эту статью и подумали об этом, увидев ваш вопрос, надеюсь, это поможет ..: oÞ

Дано примитивный многочлен над GF (q), можно получить другой примитивный многочлен, прореживая последовательность LFSR, полученную из исходного многочлена. Это продемонстрировано в коде ниже.

K: = GF (7); C: = примитивный полином (K, 2); C; D ^ 2 + 6 * D + 3 Чтобы сгенерировать последовательность LFSR, мы должны сначала умножить этот многочлен на подходящую константу так, чтобы конечный коэффициент стал равен 1.

C: = C * Коэффициент (C, 0) ^ - 1; C; 5 * D ^ 2 + 2 * D + 1 Теперь мы можем сгенерировать последовательность LFSR длиной 72-1. Начальное состояние может быть любым, кроме [0, 0].

t: = LFSRSequence (C, [K | 1,1], 48); т; [1, 1, 0, 2, 3, 5, 3, 4, 5, 5, 0, 3, 1, 4, 1, 6, 4, 4, 0, 1, 5, 6, 5, 2, 6 6, 0, 5, 4, 2, 4, 3, 2, 2, 0, 4, 6, 3, 6, 1, 3, 3, 0, 6, 2, 1, 2, 5] Мы прореживаем последовательность значением d, имеющим свойство gcd (d, 48) = 1.

t: = прореживание (t, 1, 5); т; [1, 5, 0, 6, 5, 6, 4, 4, 3, 1, 0, 4, 1, 4, 5, 5, 2, 3, 0, 5, 3, 5, 1, 1, 6 , 2, 0, 1, 2, 1, 3, 3, 4, 6, 0, 3, 6, 3, 2, 2, 5, 4, 0, 2, 4, 2, 6, 6] B: = BerlekampMassey (т); B; 3 * D ^ 2 + 5 * D + 1 Чтобы получить соответствующий примитивный полином, мы умножаем на константу, чтобы сделать ее моничной.

B: = B * Коэффициент (B, 2) ^ - 1; B; D ^ 2 + 4 * D + 5 IsPrimitive (В); true

1
ответ дан 6 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: