ostrosco / comms-rs

A library for building DSP communication pipelines.
MIT License
13 stars 1 forks source link

Make PRNS Generator Node #24

Closed garbagetrash closed 5 years ago

garbagetrash commented 5 years ago

This is a bit different than the random number generator node. The goal here is to use the standard linear-feedback shift register (LFSR) implementation of a PRNS generator. These are commonly used for communications systems for various things like frequency hopping and spread spectrum waveforms.

It's already basically implemented on the feature/prn branch, and supports LFSRs of size 8, 16, 32, 64, and 128 bits, as well as arbitrary polynomial specification for the generators. Reference for what I'm talking about regarding those polynomials. Crypto and coding theory nerds should recognize that Finite and Galois Field stuff. Note that in my implementation I've flipped around the direction that everything is flowing in that graphic, this is because in my mind bit 0 refers to the right most bit, and bit 15 would be the left most bit in that graphic.

image

Work remaining on this one is basically getting some decent documentation on the use written up, and some additional comments for the code. I won't bother explaining the operation of the LFSR, and will instead throw a reference into the docs somewhere.