GLFSR Source: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(Add interesting note from the header file.)
No edit summary
 
Line 12: Line 12:


; Mask
; Mask
: Allows a user-defined bit mask for indexes of the shift register to feed back.
: 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.
 
[[File:FifthOrder.png|800px|A Fifth Order LFSR corresponding to p(x)= (5,2,0).]]


; Seed
; Seed
Line 19: Line 21:
== Example Flowgraph ==
== Example Flowgraph ==


Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI. Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately. The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.
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.
 
[[File:FifthOrderGoldGenerator.png|800px|A Fifth Order LFSR Gold Code Using GFLSR.]]
 
[[File:FifthOrderGoldGeneratorOutput.png|800px|A Fifth Order LFSR Gold Code Using GFLSR.]]


== Source Files ==
== Source Files ==

Latest revision as of 20:18, 21 August 2024

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