Forum: Digitale Signalverarbeitung / DSP / Machine Learning Rauschen generieren


von Ctoly (Gast)


Lesenswert?

Hallo zusammen!
nach dem ich verschiedene Signal softwarmäßig generiert habe und über 
mein Bord (Fpga+Dac) gesendet habe, würde ich gerne weisses Rauschen 
technisch programmieren.
daher habe jede Abtastwerte eine Rauchenwert,die von  einfachene 
Zufallsgenerator erzeugt wird, dazu addiert wie folgendes:
1
int Samples=23456       // Anzahl der abgetasteten Werte
2
 int f=1                              // Frequenz des Signal in  GHZ
3
 int inputrate =12           //  von Dac in GHZ
4
5
 float untere  =-0.21;     // Rauschen untere Grenze
6
  float obere =0.234;       //Rauschen obere Grenze
7
  srand(time(NULL)); 
8
  
9
10
  for(int i=0; i<Samples; i++){
11
                            
12
   Y[i]=sin(2*pi*f*1/inputrate *i)+((obere-untere)*((float)rand()/RAND_MAX))+untere;
13
  
14
  }

was haltet Ihr davon oder gibt es eine andere besser Möglichkeit 
Rauschen zu generiern?

ich bedanke mich für jede Tipps

Gruß
Ctoly

von Knut (Gast)


Lesenswert?


von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Vorausgesetzt der Pseudozufallsgenerator taugt ein bisschen was, und 
die Periode ist nicht zu kurz, bekommst du damit weißes Rauschen. Wenn 
du mehr Kontrolle haben willst, implementiere den Pseudozufallsgenerator 
selber. In Hardware (FPGA?) am besten mit einem rückgekoppelten 
Schieberegister, damit bekommst du eine perfekt unkorrelierte Sequenz 
(Maximum Length Sequence).

von Ingenieur auf Urlaub (Gast)


Lesenswert?

Suche mal nach Marsaglia-Algorithmus. Eignet sich sehr gut für DSPs.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.