2016-07-01 8 views
0

Ich benutze einen HackRF, der mit Gnuradio verbunden ist, um das Signal von einer Ein-Tasten-Fernbedienung zu empfangen. Ich brauche nur eine Schätzung der Entfernung zwischen der Fernbedienung und meinem Empfänger (HackRF).Gnuradio: Wie erkennt man den Peak einer FFT-Kurve?

Ich habe die folgende grc-Datei entworfen, die mein Interessengebiet filtert. Ich muss den Spitzenwert finden (der höchste Wert des FFT-Plots, der von der FFT-Senke bereitgestellt wird), und wenn dieser Wert höher als ein Schwellenwert ist (zB -50db), muss ich diesen Wert in eine Datei schreiben (z , eine Textdatei).

enter image description here

Um es zusammenzufassen, ich möchte eine Ausgabedatei haben, die alle Spitzenwerte der FFT enthält, die größer als ein Schwellenwert sind. Im angehängten Bild liegt dieser Wert beispielsweise bei -22db.

enter image description here

+0

Übergeben Sie das Zeitdomänensignal durch einen fft-Block und in eine benutzerdefinierte Out-of-Tree-Modulsenke, die die Beispiele liest und sie mit einem Schwellenwert vergleicht. – iyop45

Antwort

0

In Ihrem Flussgraphen, wenn Sie die DC zu vermeiden, sind versucht, Offset des HackRF, dann ist die Basisbandfrequenz der FFT-Senke sollte auf 917MHz-340kHz eingestellt wird.

Sie könnten rtl_power mit einem rtl-Dongle (kalibriert auf eine bekannte Frequenz im 900 MHz-Band) verwenden, der eine CSV-Datei ausgeben würde.

0

Dies ist ziemlich einfach in GNU Radio. Der folgende Flußgraph kann ein guter Ausgangspunkt sein. Sie müssen jedoch die Parameter des Log Power FFT block beachten. Beachten Sie, dass der Flowgraph 0 für Samples unter dem Schwellenwert speichert, der nicht so richtig ist. Wenn Sie nur die Werte über dem Schwellenwert speichern möchten, haben Sie zwei Möglichkeiten.

  1. Sie verwenden den Valve und Signal Probe Block richtig, aber die Abtastrate in Abhängigkeit kann Ihre Leistung auswirken.
  2. Sie implementieren einen benutzerdefinierten Block, der nur Stichproben ausgibt, wenn der Trigger aktiviert ist. flowgraph

Viel Glück!

+0

Ich habe diese exakte Grafik erstellt, mit einer Zielfernrohrsenke anstatt einer Dateisenke, und ich bekomme keine Proben, die aus dem Maximum kommen. Ich habe eine Menge Dinge ausprobiert, aber es scheint, als hätte der Max-Block einige Probleme in 3.7.9 unter Ubuntu 16.04.2. Hat jemand anderes das gesehen? – portforwardpodcast

+0

@portforwardpodcast Sind Sie sicher? Vielleicht sind sie nur Nullen. – Manos

Verwandte Themen