Forum: Digitale Signalverarbeitung / DSP / Machine Learning Pseude-Rauschen für Array berechnen?


von Matt B. (mattb)


Lesenswert?

Hallo,

für kleinere Audiotest will ich mir einen kleinen Atmega-Rauschgenerator 
bauen. Um es so einfach wie möglich zu halten reicht ein Pseudorauschen 
völlig aus.

Soll heissen, dass ich die Werte eines Rauschsignals in einem Array 
ablege. Die einzelnen Werte werden dann nacheinander ausgeben (evtl. 
R2R-Netzwerk).

Gibt es etwas bei den Werten des Rauschens zu beachten?

Ich hätte jetzt einfach mal die folgende Formel für die Berechnung 
verwendet:

Die Obergrenze von Unendlich ist natürlich nur theoretisch. Zudem würde 
ich nicht mit x = 0 beginnen, da hier die Amplituden aller Sinus gleich 
Null sind.

Spricht was gegen meine Überlegung?

Danke

von Detlef _. (detlef_a)


Lesenswert?

>>Spricht was gegen meine Überlegung?

Yo, so geht das nur schlecht, 'never choose a pseudo random number 
generator by random' . Dieser hier
Beitrag "Random"
ist ok, ansonsten hier mal kucken
http://apps.nrbook.com/empanel/index.html#
Nimm nicht irgendwas aus dem Netz, schlechte oder unbrauchbare 
Generatoren sind oft nicht einfach zu erkennen.

Cheers
Detlef

von Tom W. (Gast)


Lesenswert?

Woran erkennt man einen guten Generator?

von Mr. X (Gast)


Lesenswert?

T. W. schrieb:
> Woran erkennt man einen guten Generator?

An den statistischen Eigenschaften der erzeugten Zufallszahlenfolge ;-)

von Yalu X. (yalu) (Moderator)


Lesenswert?

Matt B. schrieb:
> Ich hätte jetzt einfach mal die folgende Formel für die Berechnung
> verwendet:

Ja, man kann Sinussignale unterschiedlicher Frequenz zusammenaddieren,
um weißes Rauschen zu generieren. Dazu müssen aber die Frequenzen aber
ausreichend dicht beieinander liegen, was viel Rechenzeit benötigt.

Genausogut kannst du den Zufallsgenerator von C verwenden. Der generiert
ebenfalls weißes Rauschen und braucht im Vergleich zur Sinussumme fast
keine Rechenzeit.

Vor Kurzem gab es hier einen Thread mit einem ähnlichen Thema:

  Beitrag "1/f-Rauschen: Zahlenwerte berechnen"

Dort erfährst du, wie man neben dem weißem auch rotes und rosa Rauschen
softwaremäßig erzeugt.

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Einen schönen Rausch erzeugt auch folgender Code:

void make_audio_buf(void)
{
unsigned int i,temp1;
temp1=0x7FFF; //Startwert
for(i=0;i<0x4000;i++){temp1=(temp1*5+3);

    audio_buf[i]=temp1/32;
    }

}

das Rauschen hat hierbei (16kHz Rate) keine hörbare Periodizität mehr.

Grüsse

von Tom W. (Gast)


Lesenswert?

Wie bist Du denn darauf gekommen?
Wieso läsuft das nur bis 4000?

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.