Sto programmando un LFSR (Linear Feedback Shift Register) nel software per scopi di apprendimento e ho riscontrato alcune limitazioni nel suo uso come generatore di numeri pseudo-casuali (PRNG).
- Se il seed ha pochi bit '1' e pochi tap vengono utilizzati, richiede un "tempo di avvio" elevato per produrre un output apparentemente casuale, con una distribuzione quasi uguale tra '1 e' 0 o brevi '0. Immagino che con più tocchi tale avvio sarebbe molto più veloce, ma tutte le tabelle precalcolate che trovo danno due o quattro tocchi.
- I numeri sequenziali sono altamente correlati, il che è prevedibile, dato che se il bit di uscita è 0, il numero successivo sarà la metà di quello precedente. Per un LFSR a 15 bit con tocchi [15, 14], la stampa di una coppia di numeri sequenziali come punti in un piano fornisce quanto segue. Un PRNG ideale dovrebbe diffondere questi punti in tutto il luogo.

So che gli LFSR sono usati come contatore hardware veloce, ma ho anche visto che è usato come PRNG per creare rumore bianco. Come viene utilizzato in applicazioni del mondo reale con una qualità così scarsa?