RPi Pico Rauschgenerator          

Elektronik-Labor  Projekte  Mikrocontroller  Raspberry            




Eine Rauschquelle kann man mit einem rückgekoppelten Schieberegister bauen. Das hatte ich schon mal mit einem ATtiny versucht, war aber enttäuscht, denn da kam eher sowas wie ein Ton als ein Rauschen heraus. Jetzt habe ich in der Funkamateur 6/22 einen Artikel vom Martin Oßmann gefunden: Digitale Rauschgeneratoren mit Teensy 4.0 und MAX1000. Da ist mir ein Licht aufgegangen. Wenn das Schieberegister 32 Bit lang ist, kommt ein gutes Ergebnis raus. Also muss es auch mit dem Pico gehen. Damit keine anderen Prozesse das Schieberegister stören, wird es im zweiten Kern betreiben. 

//Pico_Noise1
 
#include "pico/stdlib.h"

void setup() {
  Serial.begin(115200);


void loop() {}

void setup1() {
  uint32_t shiftreg;
  uint32_t newbit;
  gpio_init(0);
  gpio_set_dir(0, 1);
 
  while (true) {
    newbit = 0;
    if (shiftreg & (1<<30)) newbit ^=1;
    if (shiftreg & (1<<27)) newbit ^=1;
    shiftreg =(shiftreg <<1) | newbit;
    gpio_put(0, newbit);
    Serial.println(shiftreg);    
    sleep_ms(500);
  }
}

void loop1() {}

An GP0 ist eine LED angeschlossen, die nun tatsächlich sehr zufällig blinkt. Außerdem habe ich mir für den ersten Test den Inhalt des Schieberegisters mit ausgegeben. Das Ergebnis ist ein Zufallszahlengenerator. Die Ausgabe am digitalen Ausgang ist nur das letzte Bit. Die LED ist also an bei allen ungeraden Zahlen, bei geraden ist sie aus.


Und jetzt das Ganze noch einmal ohne Printausgaben und ohne Wartezeit. Die LED ist dann scheinbar einfach nur an. Tatsächlich wird hier das hochfrequente digitale Rauschen ausgegeben.

//Pico_Noise2
#include "pico/stdlib.h"

void setup() {} 

void loop() {}

void setup1() {
  uint32_t shiftreg;
  uint32_t newbit;
  gpio_init(0);
  gpio_set_dir(0, 1);
 
  while (true) {
    newbit = 0;
    if (shiftreg & (1<<30)) newbit ^=1;
    if (shiftreg & (1<<27)) newbit ^=1;
    shiftreg =(shiftreg <<1) | newbit;
    gpio_put(0, newbit);
  }
}

void loop1() {}



Am Oszilloskop kann ich in der Einstellung 0,5 µs/div gerade so erkennen, dass ein Signal mit rund 10 MHz ausgegeben wird. Der Rest versinkt im Rauschen. Wenn ich einen hochohmigen Lautsprecher an GP0 anschließe, höre ich ein weißes Rauschen.



Der Spectrum Analyzer zeigt ein Rauschen, das bis etwa 4 MHz eine konstante Amplitude hat. Der Generator liefert aber auch noch bis 500 MHz ein entsprechend schwächeres Signal. Martin Oßmann zeigt in seinem Artikel, wie man mit einem solchen Signal einen Rauschgenerator bekannter Rauschleistung baut.



Hier habe ich das Rauschsignal über einen Widerstand von 3,3 k auf den Empfänger-Eingang meines SDR gelegt. Die Antenne war mit angeschlossen. Der Empfänger war im 17-m-Band auf 18100 kHz eingestellt. Man sieht, dass das gleichförmige Rauschen fast alle Antennensignale überdeckt. Nur ein CW-Signal und ein FT8-Signal sind noch schwach erkennbar. Das Rauschen kann verwendet werden, um Filterkurven auszumessen.

https://www.amazon.de/dp/B09ZQPFDPG  
https://www.amazon.de/dp/B0B1BW6LQ5  
https://www.amazon.de/dp/B0B293XD7Q   



Elektronik-Labor  Projekte  Mikrocontroller  Raspberry