Examples¶
Basic Examples¶
5-bit LFSR with feedback polynomial: x5+ x2+1¶
Default feedback polynomial is p(x) = x5+ x2+ 1 and default initial state is all ones
import numpy as np
from pylfsr import LFSR
L = LFSR()
# print the info
L.info()
5 bit LFSR with feedback polynomial x^5 + x^2 + 1
Expected Period (if polynomial is primitive) = 31
Current :
State : [1 1 1 1 1]
Count : 0
Output bit : -1
feedback bit : -1
Execute cycles (run LFSR by clock)¶
# one cycle
L.next()
# K cycles
k=10
seq = L.runKCycle(k)
#Cycles of a full period, #cycles = expected period of LFSR
# L.runFullCycle() # Depreciated
seq = L.runFullPeriod()
5-bit LFSR with custom state and feedback polynomial¶
state = [0,0,0,1,0]
fpoly = [5,4,3,2]
L = LFSR(fpoly=fpoly,initstate =state, verbose=True)
L.info()
tempseq = L.runKCycle(10)
L.set(fpoly=[5,3])
Fibonacci LFSR¶
By deault, LFSR is in Fibonacci configuration mode, but it can be implicitly set to Fibonacci conf
L = LFSR(fpoly = [5,4,3,2], conf='fibonacci')
L.Viz(show_outseq=False)
Galois LFSR¶
To construct LSFR with Galois configuration , pass conf = ‘galois’
L = LFSR(fpoly = [5,4,3,2], conf='galois')
L.Viz(show_outseq=False)
23-bit LFSR: x23+ x18+1¶
L = LFSR(fpoly=[23,18],initstate ='random',verbose=True)
L.info()
L.runKCycle(10)
L.info()
seq = L.seq
23-bit LFSR: x23+ x5+1¶
fpoly = [23,5]
L1 = LFSR(fpoly=fpoly,initstate ='ones', verbose=False)
L1.info()
23 bit LFSR with feedback polynomial x^23 + x^5 + 1
Expected Period (if polynomial is primitive) = 8388607
Current :
State : [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
Count : 0
Output bit : -1
feedback bit : -1