Gnuradio Verständnisfrage

OP #7366218
Lesenswert?

Hallo! Ich versuche gerade, im Gnuradio Streams und Vektoren besser zu verstehen, und habe mir dazu das Beispielprogramm (siehe Bild) gebaut. Die Streams der beiden Signale werden in einen Vektor umgewandelt, und diese wieder retour, allerdings in einen Stream, der daher ja wohl logischerweise mit der doppelten Sample-Rate Daten liefern müsste. Allerdings sehe ich hinten in der QT-Gui die Daten mit derselben Sample-Rate. Daher die Frage: wer wirft hier Daten weg? Muss ja wohl der "Vektor to Stream"-Block sein, allerdings müsste er dann immer abwechselnd den ersten und dann den zweiten Wert im Vektor ausgeben, oder der zweite Wert im Vektor kommt zeitverzögert raus. Ist meine Vermutung richtig, dass Gnuradio sozusagen mit mit der Geschwindigkeit der sample-rate getaktet, jedesmal den Flowchart durchrechnet? Oder kann mir jemand erklären, wie die Berechnung da stattfindet? Danke für die Hilfe!

Angehängte Dateien:
OP #7371366
Lesenswert?

Weitere Beobachtung meinerseits: wenn ich im QT Gui Sink die Bandbreite erhöhe, z.B. auf das Achtfache, dann erhalte ich in der Ausgabe die achtmalige Datenmenge, d.h. die beiden Sinussignale vorher liefern plötzlich mit einer höheren Samplerate Daten, als eigentlich bei ihnen eingestellt ist.

#7391982
Lesenswert?

Ich habe Dein Experiment nachgebaut. Dabei untersuchte ich aber nicht den Zeitbereich, sondern habe mir das FFT-Ergebniss angeschaut. Die originalen 100/200 Hz Signale werden bei 1k Bandbreite (entspricht Samplerate der FFT) als 50/100 Hz abgebildet. Bei 2*samp_rate sind auch die 100/200 Hz Komponenten richtig. Ich bin erst seit kurzer Zeit User von gnuradio (leider) und kann nur vermuten das durch die Vector/Stream Verdrahtung die Datenmenge verdoppelt wird.

Angehängte Dateien:
(Firma: matzetronics) #7392897
Lesenswert?

Hänge dir mal ein Oszi (QT GUI Time Sink) mit an den Ausgang. Da siehst du schon, das ein 200Hz Signal mit 1kHz Sample Rate nur aus 5 Punkten zusamengebaut wird und alles andere als ein Sinus ist. Beim Oszi schalte am besten das Control Panel mit an, damit du es sinnvoll skalieren kannst.

#7393325
Lesenswert?

Erwin U. schrieb:

Bandbreite im QT GUI Sink auf 10 KHz geändert und sehe jetzt das folgende Bild. Man sieht im Zeitdisplay, dass jetzt 10 Werte pro Millisekunde angezeigt werden.

Damit ist die Bandbreite aber nur 5kHz.
Solange du am Eingang nur einen Sinus bis knapp 5kHz anliegen hast, kann man damit leben, aber wenn dein Eingangssignal Oberwellen aufweist, brauchst du vor dem ADC ein analoges(!) Filter, das alles ab 5kHz völlig abtötet. Sonst werden die Frequenzanteile oberhalb 5kHz ebenfalls im Spektrum dargestellt und zwar teilweise spiegelverkehrt. Da solch steilflankige analoge Filter schwer zu bauen sind, wählt man Eckfrequenzen und Samplingraten, die sehr weit über der maximalen Nutzfrequenz liegen, sodass oberhalb fs/2 tatsächlich nichts mehr zum ADC gelangt.

OP #7395828
Lesenswert?

Hallo! Mein Experiment sollte ja dazu dienen, die interne Verarbeitung im Gnuradio besser zu verstehen. In der Zwischenzeit habe ich gelernt, dass der Gnuradio Scheduler anscheinend hochkomplex ist. Siehe Link http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.html Ich kann derzeit die Präsentation da drinnen nicht komplett durchschauen, aber irgendwo ab Seite 27 ist der Scheduler Flow Chart beschrieben, und da gibt es die Aussage, dass jeder Block seinen eigenen Thread bekommt, und das verstehe ich so, dass es keine "generelle" Durchrechnung des Flowcharts gibt, sondern jeder Block für sich rechnet, und das mit der Geschwindigkeit seiner Vorgaben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren