GLFSR Source

From GNU Radio
Revision as of 20:18, 21 August 2024 by Bigwillis234 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Galois LFSR pseudo-random source generating float outputs -1.0 - 1.0. Generates a maximal length sequence of length 2^degree-1.


Parameters

Degree
Degree of shift register must be in [1, 32]. If mask is 0, the degree determines a default mask (see digital_impl_glfsr.cc for the mapping).
Repeat
Set to repeat sequence.
Mask
Allows a user-defined bit mask for indexes of the shift register to feed back. For example the two fifth-order primitive polynomials, p(x) = x^5 + x^4 + x^3 + x^2 + 1 and p(x) = x^5 + x^2 + 1, will create m-sequences of length 2^n-1 where n is the degree. The mask is in byte format specifying the taps. The "one" in the polynomial does not correspond to a tap – it corresponds to the input to the first bit and is excluded from the mask. So the polynomials would be entered into the mask as 0x1E and 0x12 respectively. Note that these are integers, so after they are enter in the GNURadio block they will show as decimal 30 and 18, respectively.

A Fifth Order LFSR corresponding to p(x)= (5,2,0).

Seed
Initial setting for values in shift register.

Example Flowgraph

Example of the two polynomials, p(x) = x^5 + x^4 + x^3 + x^2 + 1 and p(x) = x^5 + x^2 + 1, to create a Gold Code Sequence.

A Fifth Order LFSR Gold Code Using GFLSR.

A Fifth Order LFSR Gold Code Using GFLSR.

Source Files

C++ files
glfsr_source_b_impl.cc
glfsr.cc
Header files
glfsr_source_b_impl.h
Public header files
glfsr.h
Block definition
digital_glfsr_source_x.block.yml