# PN Sequence Generation

A PN data sequence is an M-sequence that is generated using a linear feedback shift-register circuit, as illustrated below. M is the number of shift registers. D(M) is the mth shift register, and {c1,c2,…,cM} are the coefficients of them. At each clock pulse, the data in the registers will right shift once and one PN datum is output from register D(M). Mathematically, the procedure can be defined by a generator polynomial. {c1,c2,…,cM} becomes the coefficients of the generator polynomial. For instance, the polynomial for PN9 is x9+x5+1, therefore, M=9 and

c9=1, c5=1, ci∈{1~9},and i≠9,i≠5=0

The PN sequence, {an}, 0 ≤ n < 2M, is generated by the equation below. where, the initial state of registers {D1,D2…DM} is the seed. D(M) stores the LSB of the seed, and D1 stores the MSB of the seed. For example, if the seed is 10 (binary form 1010), the initial state in register {D1,D2…DM} is {0 0 0 0 0 1 0 1 0}. The figure below shows the initial state of each register for PN9. It’s obvious that LSB of the seed comes out first.

Afterwards, the registers store previously generated data, Dm=an-m,m∈(1,M). The generator polynomial for PN15 is x15+x14+1, therefore M=15 and c15=1, c14=1, ci∈{1~15},and i≠15,i≠14=0.