Monday, January 16, 2017

Gr Moving_average Ff

Gnuradio. gr: Filter gnuradio. gr. fftfilterccc (int Dezimierung. std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt Hähne. int NTHREADS 1) rarr grfftfiltercccsptr Schnelle FFT-Filter mit grcomplex Eingang, grcomplex Ausgang und grcomplex Hähne. Grfftfiltercccsptr. Siedlungen (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) grfftfiltercccsptr. Taps (Selbst) rarr std :: vectorlt (grcomplex, std :: allocatorlt (grcomplex) gt) gt gnuradio. gr. Fftfilterfff (int Dezimation floatvektor taps int nthreads 1) rarr grfftfilterfffsptr Schnelles FFT-Filter mit Float-Eingang, Float-Ausgang und Float-Taps. Filter-Verzögerungs-Kombinationsblock. Der Block nimmt einen oder zwei Float-Stream und gibt einen komplexen Strom. Wenn nur ein Floatstrom eingegeben wird, ist der reale Ausgang eine verzögerte Version dieses Eingangs und der imaginäre Ausgang der gefilterte Ausgang. Wenn zwei Schwimmer mit dem Eingang verbunden sind, dann ist der reale Ausgang die verzögerte Version des ersten Eingangs, und der imaginäre Ausgang ist der gefilterte Ausgang. Die Verzögerung in dem realen Pfad berücksichtigt die Gruppenverzögerung, die durch den Filter im imaginären Pfad eingeführt wird. Die Filteranschlüsse müssen vor dem Initialisieren dieses Bausteins berechnet werden. Gnuradio. gr. firfilterccc (int Dezimierung. std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt Taps) rarr grfirfiltercccsptr FIR-Filter mit grcomplex Eingang, grcomplex Ausgang und grcomplex Hähne. Grfirfiltercccsptr. Siedlungen (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) grfirfiltercccsptr. Taps (Selbst) rarr std :: vectorlt (grcomplex, std :: allocatorlt (grcomplex) gt) gt gnuradio. gr. Firfilterccf (int dezimierung floatvector taps) rarr grfirfilterccfsptr FIR Filter mit grcomplex Eingang, grcomplex Ausgang und float taps. Grfirfilterccfsptr. Ansaugsysteme (Selbstschwimmerhähne) grfirfilterccfsptr. Taps (selbst) rarr floatvector gnuradio. gr. Firfilterfcc (int dezim. Std :: vectorlt (grcomplex std :: allocatorlt (grcomplex) gt) gt taps) rarr grfirfilterfccsptr FIR-Filter mit Float-Eingang, grcomplex-Ausgang und grcomplex-Abzweigungen. Grfirfilterfccsptr. Siedlungen (Selbststd: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) grfirfilterfccsptr. Taps (Selbst) rarr std :: vectorlt (grcomplex, std :: allocatorlt (grcomplex) gt) gt gnuradio. gr. Firfilterfff (int decimation floatvector taps) rarr grfirfilterfffsptr FIR-Filter mit Float-Eingang, Float-Ausgang und Float-Taps. FIR-Filter mit Float-Eingang, kurzem Ausgang und Schwimmern. Grfirfilterfsfsptr. Ansaugsysteme (Selbstschwimmern) grfirfilterfsfsptr. Taps (selbst) rarr floatvector gnuradio. gr. Firfilterscc (int dezim. Std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt taps) rarr grfirfiltersccsptr FIR-Filter mit kurzem Eingang, grcomplex-Ausgang und grcomplex-Anzapfungen. Grfirfiltersccsptr. Siedlungen (Selbststd: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) grfirfiltersccsptr. Taps (Selbst) rarr std :: vectorlt (grcomplex, std :: allocatorlt (grcomplex) gt) gt gnuradio. gr. Fractionalinterpolatorcc (float phaseshift, float interpratio) rarr grfractionalinterpolatorccsptr Interpolierender mmse-Filter mit grcomplexem Eingang, grcomplex-Ausgang. Grfractionalinterpolatorccsptr. Interpratio (selbst) rarr float grfractionalinterpolatorccsptr. Mu (selbst) rarr float grfractionalinterpolatorccsptr. Setinterpratio (selbst. Float interpratio) grfractionalinterpolatorccsptr. Setmu (Selbstschwimmer mu) gnuradio. gr. Fractionalinterpolatorff (float phaseshift. Float interpratio) rarr grfractionalinterpolatorffsptr Interpolation von mmse-Filtern mit Float-Eingang, Float-Ausgang. Grfractionalinterpolatorffsptr. Interpratio (selbst) rarr float grfractionalinterpolatorffsptr. Mu (selbst) rarr float grfractionalinterpolatorffsptr. Setinterpratio (selbst. Float interpratio) grfractionalinterpolatorffsptr. Setmu (Selbstschwimmer mu) gnuradio. gr. freqxlatingfirfilterccc (int Dezimierung. std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt Hähne. Doppel centerfreq. Doppel samplingfreq) rarr grfreqxlatingfirfiltercccsptr FIR-Filter mit Frequenzumsetzung kombiniert mit grcomplex Eingang, grcomplex Ausgang und grcomplex tippt Diese Klasse effizient Kombiniert eine Frequenzumsetzung (typischerweise eine Umwandlung von 8220 nach unten) mit einem FIR-Filter (typischerweise Tiefpaß) und Dezimierung. Es eignet sich ideal für ein 8220-Kanal-Auswahlfilter8221 und kann effizient verwendet werden, um ein Schmalband-Signal aus einem breiten Bandbreite-Eingang auszuwählen und zu dezimieren. Verwendet ein einzelnes Eingabefeld, um ein einzelnes Ausgabearray zu erzeugen. Zusätzliche Ein - und Ausgänge werden ignoriert. Konstruieren Sie ein FIR-Filter mit den angegebenen Taps und eine zusammengesetzte Frequenzübersetzung, die die Centerfreq auf Null Hz verschiebt. Die Frequenzumsetzung erfolgt logisch vor dem Filtervorgang. Grreinqxlatingfirfiltercccsptr. Setcenterfreq (self. Double centerfreq) grfreqxlatingfirfiltercccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. freqxlatingfirfilterccf (int Dezimierung. floatvector tippt. Doppel centerfreq. Doppel samplingfreq) rarr grfreqxlatingfirfilterccfsptr FIR-Filter mit Frequenzumsetzung kombiniert mit grcomplex Eingang, grcomplex Ausgang und Schwimmerhähne Diese Klasse effizient eine Frequenzumsetzung kombiniert (typischerweise 8220down conversion8221) mit einem FIR-Filter (in der Regel niedrig - Pass) und Dezimierung. Es eignet sich ideal für ein 8220-Kanal-Auswahlfilter8221 und kann effizient verwendet werden, um ein Schmalband-Signal aus einem breiten Bandbreite-Eingang auszuwählen und zu dezimieren. Verwendet ein einzelnes Eingabefeld, um ein einzelnes Ausgabearray zu erzeugen. Zusätzliche Ein - und Ausgänge werden ignoriert. Konstruieren Sie ein FIR-Filter mit den angegebenen Taps und eine zusammengesetzte Frequenzübersetzung, die die Centerfreq auf Null Hz verschiebt. Die Frequenzumsetzung erfolgt logisch vor dem Filtervorgang. Grfreqxlatingfirfilterccfsptr. Setcenterfreq (selbst. Double centerfreq) grfreqxlatingfirfilterccfsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. freqxlatingfirfilterfcc (int Dezimierung. std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt Hähne. Doppel centerfreq. Doppel samplingfreq) rarr grfreqxlatingfirfilterfccsptr FIR-Filter mit Frequenzumsetzung kombiniert mit float-Eingang, grcomplex Ausgang und grcomplex tippt Diese Klasse effizient Kombiniert eine Frequenzumsetzung (typischerweise eine Umwandlung von 8220 nach unten) mit einem FIR-Filter (typischerweise Tiefpaß) und Dezimierung. Es eignet sich ideal für ein 8220-Kanal-Auswahlfilter8221 und kann effizient verwendet werden, um ein Schmalband-Signal aus einem breiten Bandbreite-Eingang auszuwählen und zu dezimieren. Verwendet ein einzelnes Eingabefeld, um ein einzelnes Ausgabearray zu erzeugen. Zusätzliche Ein - und Ausgänge werden ignoriert. Konstruieren Sie ein FIR-Filter mit den angegebenen Taps und eine zusammengesetzte Frequenzübersetzung, die die Centerfreq auf Null Hz verschiebt. Die Frequenzumsetzung erfolgt logisch vor dem Filtervorgang. Grfreqxlatingfirfilterfccsptr. Setcenterfreq (selbst. Double centerfreq) grfreqxlatingfirfilterfccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. freqxlatingfirfilterfcf (int Dezimierung. floatvector tippt. Doppel centerfreq. Doppel samplingfreq) rarr grfreqxlatingfirfilterfcfsptr FIR-Filter mit Frequenzumsetzung kombiniert mit float-Eingang, grcomplex Ausgang und Schwimmerhähne Diese Klasse effizient eine Frequenzumsetzung kombiniert (typischerweise 8220down conversion8221) mit einem FIR-Filter (in der Regel niedrig - Pass) und Dezimierung. Es eignet sich ideal für ein 8220-Kanal-Auswahlfilter8221 und kann effizient verwendet werden, um ein Schmalband-Signal aus einem breiten Bandbreite-Eingang auszuwählen und zu dezimieren. Verwendet ein einzelnes Eingabefeld, um ein einzelnes Ausgabearray zu erzeugen. Zusätzliche Ein - und Ausgänge werden ignoriert. Konstruieren Sie ein FIR-Filter mit den angegebenen Taps und eine zusammengesetzte Frequenzübersetzung, die die Centerfreq auf Null Hz verschiebt. Die Frequenzumsetzung erfolgt logisch vor dem Filtervorgang. Grfreqxlatingfirfilterfcfsptr. Setcenterfreq (selbst. Double centerfreq) grfreqxlatingfirfilterfcfsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. freqxlatingfirfilterscc (int Dezimierung. std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt Hähne. Doppel centerfreq. Doppel samplingfreq) rarr grfreqxlatingfirfiltersccsptr FIR-Filter mit Frequenzumsetzung kombiniert mit kurzen Eingang, grcomplex Ausgang und grcomplex tippt Diese Klasse effizient Kombiniert eine Frequenzumsetzung (typischerweise eine Umwandlung von 8220 nach unten) mit einem FIR-Filter (typischerweise Tiefpaß) und Dezimierung. Es eignet sich ideal für ein 8220-Kanal-Auswahlfilter8221 und kann effizient verwendet werden, um ein Schmalband-Signal aus einem breiten Bandbreite-Eingang auszuwählen und zu dezimieren. Verwendet ein einzelnes Eingabefeld, um ein einzelnes Ausgabearray zu erzeugen. Zusätzliche Ein - und Ausgänge werden ignoriert. Konstruieren Sie ein FIR-Filter mit den angegebenen Taps und eine zusammengesetzte Frequenzübersetzung, die die Centerfreq auf Null Hz verschiebt. Die Frequenzumsetzung erfolgt logisch vor dem Filtervorgang. Grreinqxlatingfirfiltersccsptr. Setcenterfreq (selbst. Double centerfreq) grfreqxlatingfirfiltersccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. freqxlatingfirfilterscf (int Dezimierung. floatvector tippt. Doppel centerfreq. Doppel samplingfreq) rarr grfreqxlatingfirfilterscfsptr FIR-Filter mit Frequenzumsetzung kombiniert mit kurzen Eingang, grcomplex Ausgang und Schwimmerhähne Diese Klasse effizient eine Frequenzumsetzung kombiniert (typischerweise 8220down conversion8221) mit einem FIR-Filter (in der Regel niedrig - Pass) und Dezimierung. Es eignet sich ideal für ein 8220-Kanal-Auswahlfilter8221 und kann effizient verwendet werden, um ein Schmalband-Signal aus einem breiten Bandbreite-Eingang auszuwählen und zu dezimieren. Verwendet ein einzelnes Eingabefeld, um ein einzelnes Ausgabearray zu erzeugen. Zusätzliche Ein - und Ausgänge werden ignoriert. Konstruieren Sie ein FIR-Filter mit den angegebenen Taps und eine zusammengesetzte Frequenzübersetzung, die die Centerfreq auf Null Hz verschiebt. Die Frequenzumsetzung erfolgt logisch vor dem Filtervorgang. Grfreqxlatingfirfilterscfsptr. Setcenterfreq (selbst. Double centerfreq) grfreqxlatingfirfilterscfsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. Hilbertfc (unsigned int ntaps) rarr grhilbertfcsptr realer Ausgang wird entsprechend verzögert eingegeben. Imaginären Ausgang ist hilbert gefiltert (90 Grad Phasenverschiebung) Version des Eingangs. Gnuradio. gr. Rarr griirfilterffdsptr IIR-Filter mit Float-Eingang, Float-Ausgang und Double-Taps Dieser Filter verwendet die Direct-Form-I-Implementierung, in der die Feed-Forward-Taps und die Feedbacks enthalten sind. Die Eingabe und Ausgabe genügt einer Differenzgleichung der Form yn - sum ak yn - k sum bk xn - k mit der entsprechenden rationalen Systemfunktion. Beachten Sie, dass einige Texte die Systemfunktion mit einem im Nenner definieren. Wenn Sie diese Konvention verwenden, müssen Sie die Feedback-Taps negieren. Griirfilterffdsptr. Dict. cc Wörterbuch:: doublevector:: Deutsch - Englisch - Übersetzung. Interpolation FIR-Filter mit grcomplex-Eingang, grcomplex-Ausgang und grcomplex-Anzapfungen. Interpfirfilterccc (int interpolation. std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt taps) rarr grinterpfirfiltercccsptr Grinterpfirfiltercccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Interpfirfilterccf (int interpolation floatvector taps) rarr grinterpfirfilterccfsptr Interpolierende FIR-Filter mit grcomplex-Eingang, grcomplex-Ausgang und Float-Taps. Grinterpfirfilterccfsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. Interpfirfilterfcc (int interpolation) std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt taps) rarr grinterpfirfilterfccsptr Interpolierende FIR-Filter mit Float-Eingang, grcomplex-Ausgang und grcomplex-Abzweigungen. Grinterpfirfilterfccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Interpfirfilterfff (int interpolation floatvector taps) rarr grinterpfirfilterfffsptr Interpolierende FIR-Filter mit Float-Eingang, Float-Ausgang und Float-Taps. Grinterpfirfilterfffsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. Interpfirfilterfsf (int interpolation floatvector taps) rarr grinterpfirfilterfsfsptr Interpolierende FIR-Filter mit Float-Eingang, kurzem Ausgang und Float-Taps. Grinterpfirfilterfsfsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. Interflirfilterscc (int interpolation) std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt taps) rarr grinterpfirfiltersccsptr Interpolierende FIR-Filter mit kurzem Eingang, grcomplexem Ausgang und grcomplex-Anzapfungen. Grinterpfirfiltersccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Rationalresamplerbaseccc (int interpolation int dezimierung std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt taps) rarr grrationalresamplerbasecccsptr Rational Resampling Mehrphasen-FIR-Filter mit grcomplex Eingang, grcomplex Ausgang und grcomplex Abzweigungen. Grrationalresamplerbasecccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Rationalresamplerbaseccf (int interpolation int dezimierung floatvektor taps) rarr grrationalresamplerbaseccfsptr Rational Resampling Mehrphasen-FIR-Filter mit grcomplex Eingang, grcomplex Ausgang und float taps. Grrationalresamplerbaseccfsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. Rationalresamplerbasefcc (int interpolation int dezimierung std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt taps) rarr grrationalresamplerbasefccsptr Rational Resampling Mehrphasen-FIR-Filter mit Float-Eingang, grcomplex-Ausgang und grcomplex-Anzapfungen. Grrationalresamplerbasefccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Rationalresamplerbasefff (int interpolation int decimation floatvector taps) rarr grrationalresamplerbasefffsptr Rational Resampling Mehrphasen-FIR-Filter mit Float-Eingang, Float-Ausgang und Float-Taps. Grrationalresamplerbasefffsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. Rationalresamplerbasefsf (int interpolation int decimation floatvector taps) rarr grrationalresamplerbasefsfsptr Rational Resampling Mehrphasen-FIR-Filter mit Float-Eingang, kurzem Ausgang und Float-Taps. Grrationalresamplerbasefsfsptr. Siedlungen (Selbstschwimmern) gnuradio. gr. Rationalresamplerbasescc (int interpolation int dezimierung std :: vectorlt (grcomplex. std :: allocatorlt (grcomplex) gt) gt taps) rarr grrationalresamplerbasesccsptr Rational Resampling Mehrphasen-FIR-Filter mit kurzem Eingang, grcomplexem Ausgang und grcomplex-Anzapfungen. Grrationalresamplerbasesccsptr. Siedlungen (selbst std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Singlepoleiirfiltercc (double alpha unsigned int vlen 1) rarr grsinglepoleiirfilterccsptr einpoliges IIR-Filter mit komplexem Eingang, komplexer Ausgang Die Eingabe und Ausgabe erfüllen eine Differenzgleichung der Form yn - (1-alpha) yn-1 alpha xn mit dem entsprechenden rationalen System Funktion Beachten Sie, dass einige Texte die Systemfunktion mit einem im Nenner definieren. Wenn Sie diese Konvention verwenden, müssen Sie den Feedback-Hahn negieren. Grsinglepoleiirfilterccsptr. Siedlungen (self. Double alpha) gnuradio. gr. Singlepoleiirfilterff (double alpha unsigned int vlen 1) rarr grsinglepoleiirfilterffsptr einpoliges IIR-Filter mit Float-Eingang, Float-Ausgang Input und Output erfüllen eine Differenzgleichung der Form yn - (1-alpha) yn-1 alpha xn mit dem entsprechenden rationalen System Funktion Beachten Sie, dass einige Texte die Systemfunktion mit einem im Nenner definieren. Wenn Sie diese Konvention verwenden, müssen Sie den Feedback-Hahn negieren. Grsinglepoleiirfilterffsptr. Siedlungen (self. Double alpha) gnuradio. gr. Rarr grmovingaverageccsptr output ist die Bewegungssumme der letzten N Abtastwerte, skaliert durch den Skalenfaktor maxiter beschränkt, wie lange wir ohne Spülen des Akkumulators gehen Dies ist notwendig, um numerische Instabilität für Float und zu vermeiden Komplex. Grmovingaverageccsptr. Länge (Selbst-) rarr int grmovingaverageccsptr. (Selbst) rarr grcomplex grmovingaverageccsptr. Setlengthandscale (selbst int länge grcomplex scale) gnuradio. gr. Rarr grmovingaverageffsptr output ist die Bewegungssumme der letzten N Abtastwerte, skaliert durch den Skalenfaktor maxiter begrenzt, wie lange wir gehen, ohne den Akkumulator zu spülen Dies ist notwendig, um numerische Instabilität für Float und zu vermeiden Komplex. Ausgang ist die Bewegungssumme der letzten N Abtastwerte, skaliert durch den Skalenfaktor maxiter begrenzt, wie lange wir gehen, ohne den Akkumulator zu spülen Dies ist notwendig, um numerische Instabilität für Float und komplexe zu vermeiden. Ausgang ist die Bewegungssumme der letzten N Abtastwerte, skaliert durch den Skalenfaktor maxiter begrenzt, wie lange wir gehen, ohne den Akkumulator zu spülen Dies ist notwendig, um numerische Instabilität für Float und komplexe zu vermeiden. Grmovingaveragesssptr. Länge (Selbst) rarr int grmovingaveragesssptr. Maßstab (selbst) rarr short grmovingaveragesssptr. Setlengthandscale (int. Länge, kurze Skala) gnuradio. gr. Pfbarbresamplerccf (floatvector taps. Unsigned int filterize 32) rarr grpfbarbresamplerccfsptr Polyphasenfilterbank beliebiger Resampler mit grcomplex Eingang, grcomplex Ausgang und float taps. Dieser Block nimmt einen Signalstrom auf und führt eine beliebige Neuabtastung durch. Die Wiederabtastrate kann jede reelle Zahl sein. Die Neuabtastung wird durch Konstruieren von Filtern durchgeführt, wobei die Interpolationsrate ist. Wir berechnen dann wo. Mit und. Können wir eine rationale Wiederabtastung durchführen, wobei eine rationale Zahl nahe der Eingangsrate liegt, wo wir Filter haben, und wir durchlaufen sie als eine Polyphasenfilterbank mit einem Schritt, so daß. Um die willkürliche Rate zu erhalten, wollen wir zwischen zwei Punkten interpolieren. Für jeden Wert out nehmen wir einen Ausgang aus dem aktuellen Filter. Und den nächsten Filter und dann linear interpolieren zwischen den beiden auf der Grundlage der realen Neuabtastrate, die wir wollen. Die lineare Interpolation liefert uns nur eine Annäherung an die angegebene reale Abtastrate. Der Fehler ist ein Quantisierungsfehler zwischen den beiden Filtern, die wir als Interpolationspunkte verwendet haben. Zu diesem Zweck die Anzahl der Filter. Bestimmt den Quantisierungsfehler um so größer. Je kleiner der Lärm. Sie können für ein bestimmtes Rauschniveau entwerfen, indem Sie die Filtergröße (Parameter) einstellen. Die Größe defaults zu 32 Filtern, die ungefähr so ​​gut ist, wie die meisten Implementierungen Notwendigkeit. Der Trick mit dem Entwerfen dieses Filters ist, wie man die Hähne des Prototypfilters spezifiziert. Wie der PFB-Interpolator werden die Taps unter Verwendung der interpolierten Filterrate spezifiziert. In diesem Fall ist diese Rate die Eingangsabtastrate multipliziert mit der Anzahl der Filter in der Filterbank, die auch die Interpolationsrate ist. Alle anderen Werte sollten relativ zu dieser Rate sein. Zum Beispiel, für einen 32-Filter beliebigen Resampler und mit dem GNU Radio8217s firdes Dienstprogramm, um den Filter zu bauen, bauen wir ein Tiefpassfilter mit einer Abtastrate von. Eine 3-dB-Bandbreite und eine Übergangsbandbreite von. Wir können auch die zu verwendende Out-of-Band-Dämpfung angeben. Und die Filter-Fenster-Funktion (ein Blackman-Harris-Fenster in diesem Fall). Der erste Eingang ist die Verstärkung des Filters, die wir hier als Interpolationsrate () angeben. Die Theorie hinter diesem Block finden Sie in Kapitel 7.5 des folgenden Buches. Erstellen Sie die polyphase filterbank arbitray resampler. Drucken Sie alle Filterbank-Taps auf dem Bildschirm. Grpfbarbresamplerccfsptr. Setrate (Eigenschwimmer) gnuradio. gr. Pfbchannelizerccf (unsigned int numchans floatvektor taps float oversamplerate 1) rarr grpfbchannelizerccfsptr Mehrphasenfilterbank-Kanalisierer mit grcomplex Eingang, grcomplex Ausgang und float taps. Dieser Baustein nimmt komplexe Eingaben auf und kanalisiert ihn auf Kanäle gleicher Bandbreite. Jeder der resultierenden Kanäle wird auf die neue Rate dezimiert, die die Eingangsabtastrate dividiert durch die Anzahl der Kanäle ist. Der PFB-Kanalisierungscode nimmt die oben erzeugten Taps und baut einen Satz von Filtern auf. Das Set enthält Anzahl der Filter und jeder Filter enthält ceil (taps. size () decim) Anzahl der Taps. Jeder Abgriff aus dem Filterprototyp wird nacheinander in den nächsten Filter eingefügt. Wenn alle Eingangsabgriffe verwendet werden, werden die verbleibenden Filter in der Filterbank mit 08217s ausgefüllt, um sicherzustellen, dass jeder Filter die gleiche Anzahl von Anzapfungen aufweist. Jedes Filter arbeitet unter Verwendung der grfir Filterklassen von GNU Radio, die den Eingangsstrom an nimmt und die innere Produktberechnung ausführt, wo die Anzahl der Filterabgriffe ist. Um dies effizient in der GNU-Radio-Struktur zu bewältigen, muß jeder Filtereingang aus seinem eigenen Eingangsstrom kommen. Daher muss der Channelizer mit Streams versehen werden, bei denen der Eingangsstrom entschachtelt wurde. Dies geschieht am einfachsten mit dem grstreamtostreams-Block. Die Ausgabe wird dann als Vektor erzeugt, wobei der Index in dem Vektor der nächste Abtastwert aus dem dritten Kanal ist. Dies wird am einfachsten gehandhabt, indem die Ausgabe an einen Grvectortostreams-Block gesendet wird, um die Konvertierung und die Weitergabe von Datenströmen auszuführen. Die Eingabe - und Ausgabeformatierung erfolgt über einen hierblock2 mit dem Namen pfbchannelizerccf. Dies kann in einem einzigen Stream und gibt Ströme basierend auf dem oben beschriebenen Verhalten. Die Filter des Filter8217s sollten auf der Eingangsabtastrate basieren. Zum Beispiel, mit dem GNU Radio8217s firdes Dienstprogramm zum Bau von Filtern, bauen wir ein Tiefpassfilter mit einer Abtastrate von. Eine 3-dB-Bandbreite und eine Übergangsbandbreite von. Wir können auch die zu verwendende Out-of-Band-Dämpfung angeben. Und die Filter-Fenster-Funktion (ein Blackman-Harris-Fenster in diesem Fall). Die erste Eingabe ist die Verstärkung des Filters, die wir hier als Einheit angeben. Der Filterausgang kann auch übersteuert werden. Die Überabtastrate ist das Verhältnis der tatsächlichen Ausgangsabtastrate zur normalen Ausgangsabtastrate. Sie muss rational mit der Anzahl von Kanälen verknüpft sein, wie Ni für i in 1, N, die eine Abtastrate von fsN, fs ergibt, wobei fs die Eingangsabtastrate und N die Anzahl der Kanäle ist. Beispielsweise beträgt für 6 Kanäle mit fs 6000 Hz die normale Rate 60006 1000 Hz. Die zulässigen Überabtastraten sind 66, 65, 64, 63, 62 und 61, wobei die Ausgangsabtastrate eines 61 Oversample-Verhältnisses 6000 Hz oder 6-fach der normalen 1000 Hz beträgt. Eine Rate von 65 1,2, so dass die Ausgangsleistung 1200 Hz betragen würde. Die Theorie hinter diesem Block finden Sie in Kapitel 6 des folgenden Buches. Bauen Sie den Polyphasenfilterbank-Dezimator auf. Beispielsweise beträgt für 6 Kanäle mit fs 6000 Hz die normale Rate 60006 1000 Hz. Die zulässigen Überabtastraten sind 66, 65, 64, 63, 62 und 61, wobei die Ausgangsabtastrate eines 61 Oversample-Verhältnisses 6000 Hz oder 6-fach der normalen 1000 Hz beträgt. Setzt die Filtertabellen filterbank8217s mit dem neuen Prototypfilter gnuradio. gr zurück. Pfbclocksyncccf (double sps float loopbw floatvektor taps unsigned int filterize 32. float initphase 0. float maxratedeviation 1.5 int osps 1) rarr grpfbclocksyncccfsptr Zeitsynchronizer mit Hilfe von Polyphasenfilterbanken. Dieser Block führt eine Zeitsynchronisation für PAM-Signale durch, indem die Ableitung des gefilterten Signals minimiert wird, was wiederum das SNR maximiert und ISI minimiert. Dieser Ansatz arbeitet durch das Einrichten von zwei Filterbänken, wobei eine Filterbank das signalgestützte Pulsforming-Filter (wie ein Wurzel-Cosinus-Filter) enthält, wobei jeder Zweig der Filterbank eine andere Phase des Filters enthält. Die zweite Filterbank enthält die Ableitungen der Filter in der ersten Filterbank. Denken Sie dies im Zeitbereich, enthält die erste Filterbank Filter, die eine sinc Form zu ihnen haben. Wir wollen das zu analysierende Ausgangssignal genau an der Spitze der Sinusform ausrichten. Die Ableitung des sinc enthält eine Null am Maximalpunkt von sinc (sinc (0) 1, sinc (0) 8217 0). Weiterhin ist der Bereich um den Nullpunkt relativ linear. Wir nutzen diese Tatsache, um das Fehlersignal zu erzeugen. Wenn das Signal aus den Ableitungsfiltern für das i-te Filter din ist und das Ausgangssignal des angepassten Filters xin ist, berechnen wir den Fehler als: en (Re Re Im Im) 2.0 Diese Gleichung misst den Fehler im Real - und Imaginärteil . Es gibt zwei Gründe, die wir mit dem Signal selbst multiplizieren. Zuerst, wenn das Symbol positiv oder negativ sein könnte, aber wir wollen, dass der Fehlerausdruck immer sagt, dass wir in die gleiche Richtung gehen, je nachdem, auf welcher Seite des Nullpunktes wir sind. Das Vorzeichen von xin passt den Fehlerterm an, um dies zu tun. Zweitens skaliert die Größe von xin den Fehlerterm in Abhängigkeit von der Amplitude des Symbols8217s, so dass größere Signale uns einen stärkeren Fehlerterm geben, weil wir mehr Vertrauen in diesen Symbolwert haben. Das Verwenden der Größe von xin anstelle von nur dem Vorzeichen ist besonders gut für Signale mit niedrigem SNR. Das Fehlersignal, en, gibt uns einen Wert proportional zu, wie weit weg von dem Nullpunkt sind wir in der Ableitung Signal. Wir wollen diesen Wert auf Null setzen, also richten wir eine Schleife zweiter Ordnung ein. Wir haben zwei Variablen für diese Schleife dk ist die Filterzahl in der Filterbank, die wir eingeschaltet sind, und drate ist die Rate, die wir durch die Filter im stationären Zustand fahren. Das heißt, aufgrund der natürlichen Taktdifferenzen zwischen dem Sender und dem Empfänger stellt drate die Differenz dar und würde die Filterphasenpfade durchlaufen, um den Empfänger gesperrt zu halten. Wenn man dies als PLL zweiter Ordnung betrachtet, ist der Drat die Frequenz und dk die Phase. So aktualisieren wir drate und dk unter Verwendung der Standardschleifengleichungen, die auf zwei Fehlersignalen, dalpha und dbeta basieren. Wir haben diese beiden Werte für ein kritisch gedämpftes System aufeinander abgestimmt, also bitten wir im Blockkonstruktor um 8220gain, 8221, die dalpha ist, während dbeta gleich (gain2) 4 ist. Die Parameter block8217s sind: Bauen Sie den Synchronizer für die Synchronisation der Polyphasenfilterbank auf. Gibt die Schleifenverstärkung alpha zurück. Gibt die Schleifenverstärkung beta zurück. Grpfbclocksyncccfsptr. Getchanneltaps (interner Kanal) rarr floatvector Gibt die Taps des angepassten Filters für einen bestimmten Kanal zurück Gibt die aktuelle Taktrate zurück. Grpfbclocksyncccfsptr. Getdampingfactor (self) rarr float Gibt den Schleifen-Dämpfungsfaktor zurück. Grpfbclocksyncccfsptr. Getdiffchanneltaps (self. Int channel) rarr floatvector Gibt die Taps im abgeleiteten Filter für einen bestimmten Kanal grpfbclocksyncccfsptr zurück. Getdifftaps (self) rarr dummy5 Gibt alle Taps des abgeleiteten Filters grpfbclocksyncccfsptr zurück. Getdifftapsasstring (self) rarr string Gibt die abgeleiteten Filter-Taps als formatierten String zurück, um grpfbclocksyncccfsptr zu drucken. Getloopbandwidth (self) rarr float Gibt die Schleifenbandbreite zurück. Gibt alle Taps des angepassten Filters grpfbclocksyncccfsptr zurück. Gettapsasstring (self) rarr string Rückgabe der Taps als formatierter String zum Drucken Setzt die Schleifenverstärkung alpha. Set8217s der Schleifenfilter8217s alpha gain Parameter. Dieser Wert sollte eigentlich nur durch Einstellen der Schleifenbandbreite und des Dämpfungsfaktors eingestellt werden. Stellen Sie die Schleifenverstärkung beta ein. Set8217s die Schleife filter8217s Beta-Verstärkung Parameter. Dieser Wert sollte eigentlich nur durch Einstellen der Schleifenbandbreite und des Dämpfungsfaktors eingestellt werden. Den Dämpfungsfaktor einstellen. Stellen Sie den Dämpfungsfaktor der Schleife filter8217s auf. Der Dämpfungsfaktor sollte für kritisch gedämpfte Systeme sqrt (2) 2,0 sein. Setzen Sie es auf alles andere nur, wenn Sie wissen, was Sie tun. Es muss eine Zahl zwischen 0 und 1 sein. Wenn ein neuer Dämpfungsfaktor gesetzt ist, werden die Gewinne, alpha und beta der Schleife durch einen Aufruf von updategains () neu berechnet. Stellen Sie die Schleifenbandbreite ein. Setzen Sie die Schleife filter8217s bandwidth auf. Dies sollte zwischen 2pi200 und 2pi100 (in Radssamp). Es muss auch eine positive Zahl sein. Wenn ein neuer Dämpfungsfaktor gesetzt wird, werden die Verstärkungen alpha und beta der Schleife durch einen Aufruf von updategains () neu berechnet. Legen Sie die maximale Abweichung von 0 drate kann grpfbclocksyncccfsptr haben. (P. grfirccf) gt) gt ourfilter) Setzt die Filterabgriffe filterbank8217s mit dem neuen Prototypfilter gnuradio. gr zurück. Pfbclocksyncfff (double sps float gain, floatvector taps, unsigned int filtern 32. float initphase 0. float maxratedeviation 1.5) rarr grpfbclocksyncfffsptr Zeitsynchronizer mit Hilfe von Polyphasenfilterbanken. Dieser Block führt eine Zeitsynchronisation für PAM-Signale durch, indem die Ableitung des gefilterten Signals minimiert wird, was wiederum das SNR maximiert und ISI minimiert. Dieser Ansatz arbeitet durch das Einrichten von zwei Filterbänken, wobei eine Filterbank das signalgestützte Pulsforming-Filter (wie ein Wurzel-Cosinus-Filter) enthält, wobei jeder Zweig der Filterbank eine andere Phase des Filters enthält. Die zweite Filterbank enthält die Ableitungen der Filter in der ersten Filterbank. Denken Sie dies im Zeitbereich, enthält die erste Filterbank Filter, die eine sinc Form zu ihnen haben. Wir wollen das zu analysierende Ausgangssignal genau an der Spitze der Sinusform ausrichten. Die Ableitung des sinc enthält eine Null am Maximalpunkt von sinc (sinc (0) 1, sinc (0) 8217 0). Weiterhin ist der Bereich um den Nullpunkt relativ linear. Wir nutzen diese Tatsache, um das Fehlersignal zu erzeugen. Wenn das Signal aus den Ableitungsfiltern für das i-te Filter din ist und das Ausgangssignal des angepassten Filters xin ist, berechnen wir den Fehler als: en (Re Re Im Im) 2.0 Diese Gleichung misst den Fehler im Real - und Imaginärteil . Es gibt zwei Gründe, die wir mit dem Signal selbst multiplizieren. Zuerst, wenn das Symbol positiv oder negativ sein könnte, aber wir wollen, dass der Fehlerausdruck immer sagt, dass wir in die gleiche Richtung gehen, je nachdem, auf welcher Seite des Nullpunktes wir sind. Das Vorzeichen von xin passt den Fehlerterm an, um dies zu tun. Zweitens skaliert die Größe von xin den Fehlerterm in Abhängigkeit von der Amplitude des Symbols8217s, so dass größere Signale uns einen stärkeren Fehlerterm geben, weil wir mehr Vertrauen in diesen Symbolwert haben. Das Verwenden der Größe von xin anstelle von nur dem Vorzeichen ist besonders gut für Signale mit niedrigem SNR. Das Fehlersignal, en, gibt uns einen Wert proportional zu, wie weit weg von dem Nullpunkt sind wir in der Ableitung Signal. Wir wollen diesen Wert auf Null setzen, also richten wir eine Schleife zweiter Ordnung ein. Wir haben zwei Variablen für diese Schleife dk ist die Filterzahl in der Filterbank, die wir eingeschaltet sind, und drate ist die Rate, die wir durch die Filter im stationären Zustand fahren. Das heißt, aufgrund der natürlichen Taktdifferenzen zwischen dem Sender und dem Empfänger stellt drate die Differenz dar und würde die Filterphasenpfade durchlaufen, um den Empfänger gesperrt zu halten. Wenn man dies als PLL zweiter Ordnung betrachtet, ist der Drat die Frequenz und dk die Phase. So aktualisieren wir drate und dk unter Verwendung der Standardschleifengleichungen, die auf zwei Fehlersignalen, dalpha und dbeta basieren. Wir haben diese beiden Werte für ein kritisch gedämpftes System aufeinander abgestimmt, also bitten wir im Blockkonstruktor um 8220gain, 8221, die dalpha ist, während dbeta gleich (gain2) 4 ist. Die Parameter block8217s sind: Bauen Sie den Synchronizer für die Synchronisation der Polyphasenfilterbank auf. Grpfbclocksyncfffsptr. channeltaps ( self . int channel ) rarr floatvector Returns the taps of the matched filter grpfbclocksyncfffsptr. diffchanneltaps ( self . int channel ) rarr floatvector Returns the taps in the derivative filter Print all of the filterbank taps of the derivative filter to screen. Print all of the filterbank taps to screen. Set the gain value alpha for the control loop Set the gain value beta for the control loop Set the maximum deviation from 0 drate can have grpfbclocksyncfffsptr. settaps ( self . floatvector taps . dummy5 ourtaps . std::vectorlt(p. grfirfff . std::allocatorlt(p. grfirfff)gt)gt ourfilter ) Resets the filterbank8217s filter taps with the new prototype filter gnuradio. gr. pfbdecimatorccf ( unsigned int decim . floatvector taps . unsigned int channel ) rarr grpfbdecimatorccfsptr Polyphase filterbank bandpass decimator with grcomplex input, grcomplex output and float taps. This block takes in a signal stream and performs interger down - sampling (decimation) with a polyphase filterbank. The first input is the integer specifying how much to decimate by. The second input is a vector (Python list) of floating-point taps of the prototype filter. The third input specifies the channel to extract. By default, the zeroth channel is used, which is the baseband channel (first Nyquist zone). The parameter specifies which channel to use since this class is capable of bandpass decimation. Given a complex input stream at a sampling rate of and a decimation rate of. the input frequency domain is split into channels that represent the Nyquist zones. Using the polyphase filterbank, we can select any one of these channels to decimate. The output signal will be the basebanded and decimated signal from that channel. This concept is very similar to the PFB channelizer (see grpfbchannelizerccf) where only a single channel is extracted at a time. The filter8217s taps should be based on the sampling rate before decimation. For example, using the GNU Radio8217s firdes utility to building filters, we build a low-pass filter with a sampling rate of. a 3-dB bandwidth of and a transition bandwidth of. We can also specify the out-of-band attenuation to use. and the filter window function (a Blackman-harris window in this case). The first input is the gain of the filter, which we specify here as unity. The PFB decimator code takes the taps generated above and builds a set of filters. The set contains number of filters and each filter contains ceil(taps. size()decim) number of taps. Each tap from the filter prototype is sequentially inserted into the next filter. When all of the input taps are used, the remaining filters in the filterbank are filled out with 08217s to make sure each filter has the same number of taps. The theory behind this block can be found in Chapter 6 of the following book. Build the polyphase filterbank decimator. Resets the filterbank8217s filter taps with the new prototype filter gnuradio. gr. pfbinterpolatorccf ( unsigned int interp . floatvector taps ) rarr grpfbinterpolatorccfsptr Polyphase filterbank interpolator with grcomplex input, grcomplex output and float taps. This block takes in a signal stream and performs interger up - sampling (interpolation) with a polyphase filterbank. The first input is the integer specifying how much to interpolate by. The second input is a vector (Python list) of floating-point taps of the prototype filter. The filter8217s taps should be based on the interpolation rate specified. That is, the bandwidth specified is relative to the bandwidth after interpolation. For example, using the GNU Radio8217s firdes utility to building filters, we build a low-pass filter with a sampling rate of. a 3-dB bandwidth of and a transition bandwidth of. We can also specify the out-of-band attenuation to use, ATT, and the filter window function (a Blackman-harris window in this case). The first input is the gain, which is also specified as the interpolation rate so that the output levels are the same as the input (this creates an overall increase in power). The PFB interpolator code takes the taps generated above and builds a set of filters. The set contains number of filters and each filter contains ceil(taps. size()interp) number of taps. Each tap from the filter prototype is sequentially inserted into the next filter. When all of the input taps are used, the remaining filters in the filterbank are filled out with 08217s to make sure each filter has the same number of taps. The theory behind this block can be found in Chapter 7.1 of the following book. Build the polyphase filterbank interpolator. Print all of the filterbank taps to screen. Resets the filterbank8217s filter taps with the new prototype filterDebugging in gnuradio I am having a hard time with a quotsegmentation faultquot error. I am no expert in python (I just started to use it last week) but I find it difficult to believe that a segmentation fault error would appear in python code. However, I am not using any block made by me. So this is the part of my code where there is an segmentation fault: def measurecallback(self, kv): print quotMeasuringquot if self. stateSNRMEASURE: print quotMeasuring SNRquot self. lock() self. disconnect((self. grfilesource0, 0), (self. grthrottle0,0), self. fftsink) self. connect((self. grfilesource0, 0), (self. grcomplextomagsquared0, 0), (self. grmovingaverageff1, 0), (self. grmultiplyconstff0, 0), self. pwrmeasure) self. unlock() time. sleep(5) snrval10math. log(self. pwrmeasure. level()) print quotSNR measured quot, snrval self. lock() self. disconnect((self. grfilesource0, 0),(self. grcomplextomagsquared0, 0), (self. grmovingaverageff1, 0), (self. grmultiplyconstff0, 0), self. pwrmeasure) self. connect((self. grfilesource0, 0), self. grthrottle0, self. fftsink) self. unlock() So basically I am reading a signal from a filesource and showing its FFT on a graphical interface. Then when there is a callback from a button I made, this measurecallback(self, kv) is called and I change my circuit to measure SNR. I used some prints and discovered that the quotsegmentation faultquot happens at quottime. sleep(5)quot. Lol. Furthermore, the error doesnt happen all the times I run this code. Unfortunately, I dont know any type of debugging programs for gnuradio (I dont know if there is one) but it would be very handy because with just a quotSegmentation Faultquot message with no traceback it is difficult to know what to do. So, any suggestion about what might be causing this problem Open this post in threaded view Report Content as Inappropriate Re: Debugging in gnuradio It seems I found the solution, in spite of not knowing the reason. I just have to re-assign a new block to each block variable every time I re-connect them. It seems that connecting and disconnecting the same blocks several times was the cause for the segmentation fault. I am having a hard time with a quotsegmentation faultquot error. I am no expert in python (I just started to use it last week) but I find it difficult to believe that a segmentation fault error would appear in python code. However, I am not using any block made by me. So this is the part of my code where there is an segmentation fault: def measurecallback(self, kv): print quotMeasuringquot if self. stateSNRMEASURE: print quotMeasuring SNRquot self. lock() self. disconnect((self. grfilesource0, 0), (self. grthrottle0,0), self. fftsink) self. connect((self. grfilesource0, 0), (self. grcomplextomagsquared0, 0), (self. grmovingaverageff1, 0), (self. grmultiplyconstff0, 0), self. pwrmeasure) self. unlock() time. sleep(5) snrval10math. log(self. pwrmeasure. level()) print quotSNR measured quot, snrval self. lock() self. disconnect((self. grfilesource0, 0),(self. grcomplextomagsquared0, 0), (self. grmovingaverageff1, 0), (self. grmultiplyconstff0, 0), self. pwrmeasure) self. connect((self. grfilesource0, 0), self. grthrottle0, self. fftsink) self. unlock() So basically I am reading a signal from a filesource and showing its FFT on a graphical interface. Then when there is a callback from a button I made, this measurecallback(self, kv) is called and I change my circuit to measure SNR. I used some prints and discovered that the quotsegmentation faultquot happens at quottime. sleep(5)quot. Lol. Furthermore, the error doesnt happen all the times I run this code. Unfortunately, I dont know any type of debugging programs for gnuradio (I dont know if there is one) but it would be very handy because with just a quotSegmentation Faultquot message with no traceback it is difficult to know what to do. So, any suggestion about what might be causing this problem On Thu, Apr 5, 2012 at 5:11 AM, frankist lthidden email gt wrote: gt gt It seems I found the solution, in spite of not knowing the reason. gt gt I just have to re-assign a new block to each block variable every time I gt re-connect them. It seems that connecting and disconnecting the same blocks gt several times was the cause for the segmentation fault. You shouldnt have to do that. What version of GNU Radio are you using, and are you on a 32-bit platform This might be related to a bug in the disconnectreconnect calls that was patched recently. You can use the following link as a guide to debugging segfaults when they occur: gt frankist wrote: gtgt gtgt Hi, gtgt gtgt I am having a hard time with a quotsegmentation faultquot error. I am no expert gtgt in python (I just started to use it last week) but I find it difficult to gtgt believe that a segmentation fault error would appear in python code. gtgt However, I am not using any block made by me. gtgt gtgt So this is the part of my code where there is an segmentation fault: gtgt gtgt def measurecallback(self, kv): gtgt print quotMeasuringquot gtgt if self. stateSNRMEASURE: gtgt print quotMeasuring SNRquot gtgt self. lock() gtgt self. disconnect((self. grfilesource0, 0), gtgt (self. grthrottle0,0), self. fftsink) gtgt self. connect((self. grfilesource0, 0), gtgt (self. grcomplextomagsquared0, 0), (self. grmovingaverageff1, 0), gtgt (self. grmultiplyconstff0, 0), self. pwrmeasure) gtgt self. unlock() gtgt time. sleep(5) gtgt snrval10math. log(self. pwrmeasure. level()) gtgt print quotSNR measured quot, snrval gtgt self. lock() gtgt self. disconnect((self. grfilesource0, gtgt 0),(self. grcomplextomagsquared0, 0), (self. grmovingaverageff1, gtgt 0), (self. grmultiplyconstff0, 0), self. pwrmeasure) gtgt self. connect((self. grfilesource0, 0), self. grthrottle0, gtgt self. fftsink) gtgt self. unlock() gtgt gtgt So basically I am reading a signal from a filesource and showing its FFT gtgt on a graphical interface. Then when there is a callback from a button I gtgt made, this measurecallback(self, kv) is called and I change my circuit to gtgt measure SNR. gtgt gtgt I used some prints and discovered that the quotsegmentation faultquot happens at gtgt quottime. sleep(5)quot. Lol. Furthermore, the error doesnt happen all the times gtgt I run this code. gtgt gtgt Unfortunately, I dont know any type of debugging programs for gnuradio (I gtgt dont know if there is one) but it would be very handy because with just a gtgt quotSegmentation Faultquot message with no traceback it is difficult to know gtgt what to do. gtgt gtgt So, any suggestion about what might be causing this problem gtgt gtgt Francisco gtgt gt gt -- gt View this message in context: old. nabbleDebugging-in-gnuradio-tp33557751p33568799.html gt Sent from the GnuRadio mailing list archive at Nabble. gt gt gt gt Discuss-gnuradio mailing list gt hidden email gt lists. gnu. orgmailmanlistinfodiscuss-gnuradio In reply to this post by Tom Rondeau-2 Hmm. Danke vielmals. I think the problem may be related to the connectsdisconnects. Even if I am always reconnecting blocks, some freezes happen sometimes in the disconnect() commands. Is the patch you are refering to the new gnu version 3.5.3 Also, I would like to know if there is a better method than the quotsleepquot commands I used for letting the circuit for a short period of time. I mean, I used a head block to select just a few samples at the end of the circuit, but if I dont use the time. sleep(), the python script wont wait until I get the number of samples I need. So what I am asking is a type of semaphore command that lets the python script know when the gnuradio graph has already finished. PS: I am using a x64 ubuntu Tom Rondeau-2 wrote On Thu, Apr 5, 2012 at 5:11 AM, frankist ltfranciscopaisanahotmailgt wrote: gt gt It seems I found the solution, in spite of not knowing the reason. gt gt I just have to re-assign a new block to each block variable every time I gt re-connect them. It seems that connecting and disconnecting the same blocks gt several times was the cause for the segmentation fault. You shouldnt have to do that. What version of GNU Radio are you using, and are you on a 32-bit platform This might be related to a bug in the disconnectreconnect calls that was patched recently. You can use the following link as a guide to debugging segfaults when they occur: gt frankist wrote: gtgt gtgt Hi, gtgt gtgt I am having a hard time with a quotsegmentation faultquot error. I am no expert gtgt in python (I just started to use it last week) but I find it difficult to gtgt believe that a segmentation fault error would appear in python code. gtgt However, I am not using any block made by me. gtgt gtgt So this is the part of my code where there is an segmentation fault: gtgt gtgt def measurecallback(self, kv): gtgt print quotMeasuringquot gtgt if self. stateSNRMEASURE: gtgt print quotMeasuring SNRquot gtgt self. lock() gtgt self. disconnect((self. grfilesource0, 0), gtgt (self. grthrottle0,0), self. fftsink) gtgt self. connect((self. grfilesource0, 0), gtgt (self. grcomplextomagsquared0, 0), (self. grmovingaverageff1, 0), gtgt (self. grmultiplyconstff0, 0), self. pwrmeasure) gtgt self. unlock() gtgt time. sleep(5) gtgt snrval10math. log(self. pwrmeasure. level()) gtgt print quotSNR measured quot, snrval gtgt self. lock() gtgt self. disconnect((self. grfilesource0, gtgt 0),(self. grcomplextomagsquared0, 0), (self. grmovingaverageff1, gtgt 0), (self. grmultiplyconstff0, 0), self. pwrmeasure) gtgt self. connect((self. grfilesource0, 0), self. grthrottle0, gtgt self. fftsink) gtgt self. unlock() gtgt gtgt So basically I am reading a signal from a filesource and showing its FFT gtgt on a graphical interface. Then when there is a callback from a button I gtgt made, this measurecallback(self, kv) is called and I change my circuit to gtgt measure SNR. gtgt gtgt I used some prints and discovered that the quotsegmentation faultquot happens at gtgt quottime. sleep(5)quot. Lol. Furthermore, the error doesnt happen all the times gtgt I run this code. gtgt gtgt Unfortunately, I dont know any type of debugging programs for gnuradio (I gtgt dont know if there is one) but it would be very handy because with just a gtgt quotSegmentation Faultquot message with no traceback it is difficult to know gtgt what to do. gtgt gtgt So, any suggestion about what might be causing this problem gtgt gtgt Francisco gtgt gt gt -- gt View this message in context: old. nabbleDebugging-in-gnuradio-tp33557751p33568799.html gt Sent from the GnuRadio mailing list archive at Nabble. gt gt gt gt Discuss-gnuradio mailing list gt Discuss-gnuradiognu. org gt lists. gnu. orgmailmanlistinfodiscuss-gnuradio Discuss-gnuradio mailing list Discuss-gnuradiognu. org lists. gnu. orgmailmanlistinfodiscuss-gnuradio


No comments:

Post a Comment