mikrocontroller.net

Forum: FPGA, VHDL & Co. RNG - exponentiell verteilte impulselängen


Autor: Maik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hatte gestern schon mal im DSP Forum gepostet, aber mittlerweile 
gemerkt, dass die Frage hier besser aufgehoben ist. Ich such einen Weg 
zufällige Impulslängen zu erzeugen. Die Länge der Impulsfolgen bezogen 
auf eine Clock sollte exponetiell verteilt sein, d.h lange Folgen von 
Pulsen kommen seltener vor wie kurze.  Hat jemand ne Idee wie man so 
etwas realisieren könnte ? Das ganze sollte FPGA tauglich zu 
implementieren sein. Vielen Dank & Gruss, Maik

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da es keine halben Impulse gibt, geht es also um Integerarithmetik. Über 
wieviele Dekaden soll sich diese exponentielle Verteilung denn 
erstrecken? Ich würde von einer (linearen) Gleichverteilung ausgehen und 
dann irgendwie eine Exponentialfunktion auf die Werte anwenden, damit 
sie exponentiell gleichverteilt werden. Ich nehme an, Pseudozufall aus 
einem rückgekoppelten Schieberegister ist gleichmäßig genug?

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mich verwirrt allerdings die Aussage, zuerst gehts um Impulslängen ( die 
könnten beliebig gestuft sein) und dann die Länge einer Impulsfolge, das 
hieße die Anzahl der Impulse, die in einem Paket enthalten ist - darauf 
bezieht sich meine erste Antwort. Was denn nun?

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viel zu kompliziert gedacht, Christoph ;)

Zunächst stimmt es schon, was Chrstoph gesagt hat: Die Frage ist nicht 
ganz klar gestellt. Ich gehe deshalb hier davon aus, dass eine zufällige 
Impulslänge gemeint ist. Soll heißen: Lange Impulse kommen seltener 
vor als kurze, und die Impulslängen sind Exponentiell abnehmend 
verteilt.

Dazu brauchst du:
- Einen Zufallsgenerator (z.B. LFSR), ausreichende Breite sowohl für die 
Kettenlänge der Zufallswerte als auch für die Genauigkeit des Exponenten 
-> einfach "lang genug"
- Einen Vergleicher, der besagt, ob der aktuelle Zufallswert größer als 
eine vorgegebene Konstante ist
- eine trivial-einfache State Machine: Zwei Zustände. Zustand 0 ist 
Ruhe, Zustand 1 ist aktiver Impuls (d.h. dieser Zustandswert ist auch 
gleich das Ausgangssignal).

Zunächst löst ein bestimmtes Ereignis einen Impuls aus (aus unserer 
Sicht ein Eingangssignal). Der Zustand wechselt zu 1. Danach wird in 
jedem Takt eine neue Zufallszahl erwürfelt und durch den Vergleicher 
geschickt. Ist die Zahl zu groß, wechselt der Zustand zu 0. Das wars.

Der Trick: Bei N möglichen Zufallszahlen und Vergleicherkonstante K 
besteht in jedem Takt eine Wahrscheinlichkeit von K/N, dass der Puls 
weitergeht. Die Wahrscheinlichkeit, dass der Puls mindestens i Takte 
lang geht, ist also (K/N)^i -> exponentielle Abnahme. Etwas Rechnerei 
sollte dann auch die gewünschten K, N für die gewollte Exponentialkurve 
liefern.

Autor: Philip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alternativ über zentralen Grenzwertsatz:
eine Summe von n unabhängigen, identisch verteilten Zufallsvariablen im 
Grenzwert [math]n\rightarrow\infty[math] folgt der Normalverteilung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.