البرامج المعرفة للراديو - كيف يعمل؟ الجزء 8

مرحباً هبر.

في مقال سابق حول البرامج المحددة للراديو ، سُئل كيف فك تشفير RDS باستخدام راديو جنو. ليس من السهل إنشاء وحدة فك ترميز RDS من البداية ، ولكن لحسن الحظ بالنسبة لنا ، تم تصميمها بالفعل في راديو جنو ، لذلك فمن السهل أن نرى كيف تعمل دون كتابة سطر واحد من الكود ، فقط مستقبل RTL-SDR.



كيف يعمل ، واصلت تحت خفض.

لن أكرر عن راديو جنو وتثبيته ، فقد سبق وصفه من قبل . باختصار ، يمكن العثور على توزيع لنظام Windows هنا . دعنا ننتقل إلى RDS.

إذا لم يكن أحد يعرف فجأة ، RDS (نظام بيانات الراديو) هو بروتوكول يستخدم في البث FM التقليدي لنقل معلومات رقمية إضافية (الوقت وأسعار الصرف والطقس ، وما إلى ذلك). تبلغ سرعة الإرسال 1187.5 بت في الثانية بتردد 57 كيلو هرتز (التوافق التوافقي الثالث للنغمة التجريبية) ، ويتم استخدام تصغير الطور باستخدام تشفير طور BPSK (Keying Shift Keying). تم بالفعل النظر في RDS على مستوى البت على المحور من قبل ، حسنًا ، سوف ننتقل إلى راديو جنو.

تم إنشاء وحدة فك الترميز لراديو جنو منذ حوالي 10 سنوات ، لكن من غير المجدي مشاهدة هذا الإصدار ، وقد تغيرت أسماء العديد من القطع ، ولم تعد الأمثلة المقدمة موجودة. يمكن أن تؤخذ شوكة المحدثة من هنا .

بالمناسبة ، لم ينجح الأمر في جمع grds من المصدر لنظام Windows - cmake يعطي أخطاء لغياب Boost ، على الرغم من تثبيته. من غير المفهوم ، بالمناسبة ، أنه على مدار سنوات من الوجود cmake and boost ، لم يتم تعليم cmake كيفية العثور على مسارات في Windows - مثل العثور على مجلد على القرص ليس علم الصواريخ على الإطلاق (إذا كان أي شخص يعرف الحل ، فاكتب في التعليقات ، رغم الحكم بواسطة Stack Overflow ، فإن المشكلة موجودة منذ سنوات وكلهم لا يهتمون). ولكن كما اتضح فيما بعد ، لسنا في حاجة إليه - تمت إضافة وحدة فك ترميز RDS بالفعل إلى راديو جنو ، لذلك من المشروع على github نحتاج فقط إلى أمثلة موجودة في مجلد التطبيقات .

يعد مخطط الكتلة المضمن في الأمثلة وحشيًا جدًا ، وإلى جانب ذلك ، يتم إنشاء الأخطاء عند فتحها (يتم تمييز الكتل باللون الأحمر).



في الحياة الواقعية ، كل شيء أبسط - ثلثي الدائرة عبارة عن مشغل استريو FM ، حيث يتم استخراج قنوات L + R و LR من الإشارة الأصلية ، ومعالجتها وتغذيتها على بطاقة الصوت. هذا ليس ملائمًا لنا الآن ، لذلك يمكن إزالة هذه الكتل (أكثر من ذلك لأنه لم ينجح لسبب ما ، لكنه كان كسولًا جدًا لفهمه). تنشأ الأخطاء بسبب معلمة وضع الشبكة ، والتي ، على ما يبدو ، غير مدعومة من قبل إصدار Windows ، ولكن يمكن إزالتها دون مشاكل ، ولا تؤثر على الوظيفة.

بعد إزالة "كل ما هو ضروري" ، تبدو دائرة فك تشفير RDS العاملة كما يلي:



دعونا نرى ما هو هناك.

تأتي الإشارة الأولية من مصدر RTL-SDR ، يتم تعيين التردد بواسطة معلمة freq ، والتي هي من النوع WX GUI Slider (نعم ، يمكنك إنشاء واجهة المستخدم الخاصة بك في راديو جنو ، وهناك عناصر تحكم أساسية). لتجنب حدوث ذروة عند التردد صفر في الوسط ، يتم استخدام المعلمة freq_offset ، فكتلة التردد Xlating تنقل التردد بهذه القيمة. تقوم كتلة WBFM Receive ، كما يوحي الاسم ، بتنفيذ إزالة تشكيل FM ، ثم يتم تحويل التردد مرة أخرى لتمييز 57 كيلو هرتز RDS نفسها. تحدد كتلة Root Cosined Filter ترددًا ضيقًا ، لكن وحدة فك تشفير MPSK مع المعلمة 2 تقوم بفك تشفير BPSK (يتم إرسال RDS نفسه باستخدام تشكيل الطور مع حالتين). يستخدم RDS الترميز التفاضلي ، لذلك يسمى مفكك التشفير التفاضلي المقابل ، وأخيراً ، يتم إرسال الدفق الثنائي النهائي إلى كتلة RDS Decoder (يمكن عرض مصدره على جيثب ). بعد وحدة فك الترميز ، جزء مهم بنفس القدر هو محلل RDS - هناك الكثير من أنواع الرزم في RDS ، والمحلل يقوم بكل العمل لفك تشفيرها.

في الواقع هذا كل شيء. نتائج وحدة فك الترميز على KDPV والصور.







إذا كان شخص ما بحاجة إلى استخدام البرنامج في وضع عدم واجهة المستخدم ، فيمكنك استخدام FR Tap block ، وهو وصف أكثر تفصيلاً هنا ، وأنا شخصياً لم أجربه. إذا كانت RDS ذات مستوى البت الأقل مثيرة ، فقد فكرت في وقت سابق ، من أجل المصلحة العامة ، قد يكون ذلك مفيدًا أيضًا.

كالعادة ، كل التجارب الناجحة.

يوجد ملف GRC الأصلي الذي يعمل بنظام Windows تحت المفسد (يجب عليك فقط تغيير تردد محطة الراديو).

rds_rx.grc
<?xml version='1.0' encoding='utf-8'?> <?grc format='1' created='3.7.11'?> <flow_graph> <timestamp>Thu Aug 28 08:24:49 2014</timestamp> <block> <key>options</key> <param> <key>author</key> <value></value> </param> <param> <key>window_size</key> <value>1600, 1600</value> </param> <param> <key>category</key> <value>Custom</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>description</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(14, 9)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>generate_options</key> <value>wx_gui</value> </param> <param> <key>hier_block_src_path</key> <value>.:</value> </param> <param> <key>id</key> <value>rds_rx</value> </param> <param> <key>max_nouts</key> <value>0</value> </param> <param> <key>qt_qss_theme</key> <value></value> </param> <param> <key>realtime_scheduling</key> <value></value> </param> <param> <key>run_command</key> <value>{python} -u {filename}</value> </param> <param> <key>run_options</key> <value>prompt</value> </param> <param> <key>run</key> <value>True</value> </param> <param> <key>thread_safe_setters</key> <value></value> </param> <param> <key>title</key> <value>Stereo FM receiver and RDS Decoder</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(8, 156)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>audio_decim</value> </param> <param> <key>value</key> <value>5</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(112, 156)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>audio_decim_rate</value> </param> <param> <key>value</key> <value>baseband_rate/audio_decim</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(112, 92)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>baseband_rate</value> </param> <param> <key>value</key> <value>samp_rate/bb_decim</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(240, 156)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>bb_decim</value> </param> <param> <key>value</key> <value>4</value> </param> </block> <block> <key>variable_slider</key> <param> <key>comment</key> <value></value> </param> <param> <key>converver</key> <value>float_converter</value> </param> <param> <key>value</key> <value>100.7e6</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(448, 4)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>id</key> <value>freq</value> </param> <param> <key>label</key> <value>Freq</value> </param> <param> <key>max</key> <value>107.9e6</value> </param> <param> <key>min</key> <value>88.1e6</value> </param> <param> <key>notebook</key> <value></value> </param> <param> <key>num_steps</key> <value>99</value> </param> <param> <key>style</key> <value>wx.SL_HORIZONTAL</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(448, 132)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>freq_offset</value> </param> <param> <key>value</key> <value>250000</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(224, 92)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>freq_tune</value> </param> <param> <key>value</key> <value>freq - freq_offset</value> </param> </block> <block> <key>variable_slider</key> <param> <key>comment</key> <value></value> </param> <param> <key>converver</key> <value>float_converter</value> </param> <param> <key>value</key> <value>20</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(336, 4)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>id</key> <value>gain</value> </param> <param> <key>label</key> <value>RF Gain</value> </param> <param> <key>max</key> <value>49.6</value> </param> <param> <key>min</key> <value>0</value> </param> <param> <key>notebook</key> <value></value> </param> <param> <key>num_steps</key> <value>124</value> </param> <param> <key>style</key> <value>wx.SL_HORIZONTAL</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(8, 92)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>samp_rate</value> </param> <param> <key>value</key> <value>1000000</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(336, 132)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>xlate_bandwidth</value> </param> <param> <key>value</key> <value>100000</value> </param> </block> <block> <key>analog_wfm_rcv</key> <param> <key>audio_decimation</key> <value>bb_decim</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(576, 356)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>analog_wfm_rcv_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>quad_rate</key> <value>samp_rate</value> </param> </block> <block> <key>blocks_complex_to_real</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(792, 632)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_complex_to_real_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>blocks_keep_one_in_n</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(280, 788)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_keep_one_in_n_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>n</key> <value>2</value> </param> <param> <key>type</key> <value>byte</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>digital_binary_slicer_fb</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(112, 792)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>digital_binary_slicer_fb_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> </block> <block> <key>digital_diff_decoder_bb</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(424, 788)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>digital_diff_decoder_bb_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>modulus</key> <value>2</value> </param> </block> <block> <key>digital_mpsk_receiver_cc</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(528, 488)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>gain_mu</key> <value>0.05</value> </param> <param> <key>gain_omega</key> <value>0.001</value> </param> <param> <key>id</key> <value>digital_mpsk_receiver_cc_0</value> </param> <param> <key>w</key> <value>1*cmath.pi/100.0</value> </param> <param> <key>M</key> <value>2</value> </param> <param> <key>fmax</key> <value>0.06</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>fmin</key> <value>-0.06</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>mu</key> <value>0.5</value> </param> <param> <key>omega_relative_limit</key> <value>0.005</value> </param> <param> <key>omega</key> <value>samp_rate/bb_decim/audio_decim/ 2375.0</value> </param> <param> <key>theta</key> <value>0</value> </param> </block> <block> <key>freq_xlating_fir_filter_xxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>center_freq</key> <value>freq_offset</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>decim</key> <value>1</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(279, 296)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>freq_xlating_fir_filter_xxx_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>samp_rate</key> <value>samp_rate</value> </param> <param> <key>taps</key> <value>firdes.low_pass(1, samp_rate, xlate_bandwidth, 100000)</value> </param> <param> <key>type</key> <value>ccc</value> </param> </block> <block> <key>freq_xlating_fir_filter_xxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>center_freq</key> <value>57e3</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>decim</key> <value>audio_decim</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(72, 532)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>freq_xlating_fir_filter_xxx_1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>samp_rate</key> <value>baseband_rate</value> </param> <param> <key>taps</key> <value>firdes.low_pass(2500.0,baseband_rate,2.4e3,2e3,firdes.WIN_HAMMING)</value> </param> <param> <key>type</key> <value>fcc</value> </param> </block> <block> <key>gr_rds_decoder</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>debug</key> <value>False</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(632, 780)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>gr_rds_decoder_0</value> </param> <param> <key>log</key> <value>False</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> </block> <block> <key>gr_rds_panel</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>freq</key> <value>freq</value> </param> <param> <key>_coordinate</key> <value>(984, 792)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>id</key> <value>gr_rds_panel_0</value> </param> <param> <key>notebook</key> <value></value> </param> </block> <block> <key>gr_rds_parser</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>debug</key> <value>False</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(800, 772)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>gr_rds_parser_0</value> </param> <param> <key>log</key> <value>True</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>pty_locale</key> <value>0</value> </param> <param> <key>reset</key> <value>0</value> </param> </block> <block> <key>import</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(576, 4)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>import_0</value> </param> <param> <key>import</key> <value>import math</value> </param> </block> <block> <key>notebook</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(184, 6)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>id</key> <value>nb</value> </param> <param> <key>labels</key> <value>['BB', 'Demod', 'L+R', 'Pilot', 'DSBSC', 'RDS', 'L-R', 'RDS constellation','Waterfall']</value> </param> <param> <key>notebook</key> <value></value> </param> <param> <key>style</key> <value>wx.NB_TOP</value> </param> </block> <block> <key>root_raised_cosine_filter</key> <param> <key>alpha</key> <value>1</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>decim</key> <value>1</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>type</key> <value>fir_filter_ccf</value> </param> <param> <key>_coordinate</key> <value>(304, 516)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>gain</key> <value>1</value> </param> <param> <key>id</key> <value>root_raised_cosine_filter_0</value> </param> <param> <key>interp</key> <value>1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>ntaps</key> <value>100</value> </param> <param> <key>samp_rate</key> <value>samp_rate/bb_decim/audio_decim</value> </param> <param> <key>sym_rate</key> <value>2375</value> </param> </block> <block> <key>rtlsdr_source</key> <param> <key>alias</key> <value></value> </param> <param> <key>ant0</key> <value></value> </param> <param> <key>bb_gain0</key> <value>20</value> </param> <param> <key>bw0</key> <value>0</value> </param> <param> <key>dc_offset_mode0</key> <value>0</value> </param> <param> <key>corr0</key> <value>0</value> </param> <param> <key>freq0</key> <value>freq_tune</value> </param> <param> <key>gain_mode0</key> <value>False</value> </param> <param> <key>if_gain0</key> <value>20</value> </param> <param> <key>iq_balance_mode0</key> <value>0</value> </param> <param> <key>gain0</key> <value>gain</value> </param> <param> <key>ant10</key> <value></value> </param> <param> <key>bb_gain10</key> <value>20</value> </param> <param> <key>bw10</key> <value>0</value> </param> <param> <key>dc_offset_mode10</key> <value>0</value> </param> <param> <key>corr10</key> <value>0</value> </param> <param> <key>freq10</key> <value>100e6</value> </param> <param> <key>gain_mode10</key> <value>False</value> </param> <param> <key>if_gain10</key> <value>20</value> </param> <param> <key>iq_balance_mode10</key> <value>0</value> </param> <param> <key>gain10</key> <value>10</value> </param> <param> <key>ant11</key> <value></value> </param> <param> <key>bb_gain11</key> <value>20</value> </param> <param> <key>bw11</key> <value>0</value> </param> <param> <key>dc_offset_mode11</key> <value>0</value> </param> <param> <key>corr11</key> <value>0</value> </param> <param> <key>freq11</key> <value>100e6</value> </param> <param> <key>gain_mode11</key> <value>False</value> </param> <param> <key>if_gain11</key> <value>20</value> </param> <param> <key>iq_balance_mode11</key> <value>0</value> </param> <param> <key>gain11</key> <value>10</value> </param> <param> <key>ant12</key> <value></value> </param> <param> <key>bb_gain12</key> <value>20</value> </param> <param> <key>bw12</key> <value>0</value> </param> <param> <key>dc_offset_mode12</key> <value>0</value> </param> <param> <key>corr12</key> <value>0</value> </param> <param> <key>freq12</key> <value>100e6</value> </param> <param> <key>gain_mode12</key> <value>False</value> </param> <param> <key>if_gain12</key> <value>20</value> </param> <param> <key>iq_balance_mode12</key> <value>0</value> </param> <param> <key>gain12</key> <value>10</value> </param> <param> <key>ant13</key> <value></value> </param> <param> <key>bb_gain13</key> <value>20</value> </param> <param> <key>bw13</key> <value>0</value> </param> <param> <key>dc_offset_mode13</key> <value>0</value> </param> <param> <key>corr13</key> <value>0</value> </param> <param> <key>freq13</key> <value>100e6</value> </param> <param> <key>gain_mode13</key> <value>False</value> </param> <param> <key>if_gain13</key> <value>20</value> </param> <param> <key>iq_balance_mode13</key> <value>0</value> </param> <param> <key>gain13</key> <value>10</value> </param> <param> <key>ant14</key> <value></value> </param> <param> <key>bb_gain14</key> <value>20</value> </param> <param> <key>bw14</key> <value>0</value> </param> <param> <key>dc_offset_mode14</key> <value>0</value> </param> <param> <key>corr14</key> <value>0</value> </param> <param> <key>freq14</key> <value>100e6</value> </param> <param> <key>gain_mode14</key> <value>False</value> </param> <param> <key>if_gain14</key> <value>20</value> </param> <param> <key>iq_balance_mode14</key> <value>0</value> </param> <param> <key>gain14</key> <value>10</value> </param> <param> <key>ant15</key> <value></value> </param> <param> <key>bb_gain15</key> <value>20</value> </param> <param> <key>bw15</key> <value>0</value> </param> <param> <key>dc_offset_mode15</key> <value>0</value> </param> <param> <key>corr15</key> <value>0</value> </param> <param> <key>freq15</key> <value>100e6</value> </param> <param> <key>gain_mode15</key> <value>False</value> </param> <param> <key>if_gain15</key> <value>20</value> </param> <param> <key>iq_balance_mode15</key> <value>0</value> </param> <param> <key>gain15</key> <value>10</value> </param> <param> <key>ant16</key> <value></value> </param> <param> <key>bb_gain16</key> <value>20</value> </param> <param> <key>bw16</key> <value>0</value> </param> <param> <key>dc_offset_mode16</key> <value>0</value> </param> <param> <key>corr16</key> <value>0</value> </param> <param> <key>freq16</key> <value>100e6</value> </param> <param> <key>gain_mode16</key> <value>False</value> </param> <param> <key>if_gain16</key> <value>20</value> </param> <param> <key>iq_balance_mode16</key> <value>0</value> </param> <param> <key>gain16</key> <value>10</value> </param> <param> <key>ant17</key> <value></value> </param> <param> <key>bb_gain17</key> <value>20</value> </param> <param> <key>bw17</key> <value>0</value> </param> <param> <key>dc_offset_mode17</key> <value>0</value> </param> <param> <key>corr17</key> <value>0</value> </param> <param> <key>freq17</key> <value>100e6</value> </param> <param> <key>gain_mode17</key> <value>False</value> </param> <param> <key>if_gain17</key> <value>20</value> </param> <param> <key>iq_balance_mode17</key> <value>0</value> </param> <param> <key>gain17</key> <value>10</value> </param> <param> <key>ant18</key> <value></value> </param> <param> <key>bb_gain18</key> <value>20</value> </param> <param> <key>bw18</key> <value>0</value> </param> <param> <key>dc_offset_mode18</key> <value>0</value> </param> <param> <key>corr18</key> <value>0</value> </param> <param> <key>freq18</key> <value>100e6</value> </param> <param> <key>gain_mode18</key> <value>False</value> </param> <param> <key>if_gain18</key> <value>20</value> </param> <param> <key>iq_balance_mode18</key> <value>0</value> </param> <param> <key>gain18</key> <value>10</value> </param> <param> <key>ant19</key> <value></value> </param> <param> <key>bb_gain19</key> <value>20</value> </param> <param> <key>bw19</key> <value>0</value> </param> <param> <key>dc_offset_mode19</key> <value>0</value> </param> <param> <key>corr19</key> <value>0</value> </param> <param> <key>freq19</key> <value>100e6</value> </param> <param> <key>gain_mode19</key> <value>False</value> </param> <param> <key>if_gain19</key> <value>20</value> </param> <param> <key>iq_balance_mode19</key> <value>0</value> </param> <param> <key>gain19</key> <value>10</value> </param> <param> <key>ant1</key> <value></value> </param> <param> <key>bb_gain1</key> <value>20</value> </param> <param> <key>bw1</key> <value>0</value> </param> <param> <key>dc_offset_mode1</key> <value>0</value> </param> <param> <key>corr1</key> <value>0</value> </param> <param> <key>freq1</key> <value>100e6</value> </param> <param> <key>gain_mode1</key> <value>False</value> </param> <param> <key>if_gain1</key> <value>20</value> </param> <param> <key>iq_balance_mode1</key> <value>0</value> </param> <param> <key>gain1</key> <value>10</value> </param> <param> <key>ant20</key> <value></value> </param> <param> <key>bb_gain20</key> <value>20</value> </param> <param> <key>bw20</key> <value>0</value> </param> <param> <key>dc_offset_mode20</key> <value>0</value> </param> <param> <key>corr20</key> <value>0</value> </param> <param> <key>freq20</key> <value>100e6</value> </param> <param> <key>gain_mode20</key> <value>False</value> </param> <param> <key>if_gain20</key> <value>20</value> </param> <param> <key>iq_balance_mode20</key> <value>0</value> </param> <param> <key>gain20</key> <value>10</value> </param> <param> <key>ant21</key> <value></value> </param> <param> <key>bb_gain21</key> <value>20</value> </param> <param> <key>bw21</key> <value>0</value> </param> <param> <key>dc_offset_mode21</key> <value>0</value> </param> <param> <key>corr21</key> <value>0</value> </param> <param> <key>freq21</key> <value>100e6</value> </param> <param> <key>gain_mode21</key> <value>False</value> </param> <param> <key>if_gain21</key> <value>20</value> </param> <param> <key>iq_balance_mode21</key> <value>0</value> </param> <param> <key>gain21</key> <value>10</value> </param> <param> <key>ant22</key> <value></value> </param> <param> <key>bb_gain22</key> <value>20</value> </param> <param> <key>bw22</key> <value>0</value> </param> <param> <key>dc_offset_mode22</key> <value>0</value> </param> <param> <key>corr22</key> <value>0</value> </param> <param> <key>freq22</key> <value>100e6</value> </param> <param> <key>gain_mode22</key> <value>False</value> </param> <param> <key>if_gain22</key> <value>20</value> </param> <param> <key>iq_balance_mode22</key> <value>0</value> </param> <param> <key>gain22</key> <value>10</value> </param> <param> <key>ant23</key> <value></value> </param> <param> <key>bb_gain23</key> <value>20</value> </param> <param> <key>bw23</key> <value>0</value> </param> <param> <key>dc_offset_mode23</key> <value>0</value> </param> <param> <key>corr23</key> <value>0</value> </param> <param> <key>freq23</key> <value>100e6</value> </param> <param> <key>gain_mode23</key> <value>False</value> </param> <param> <key>if_gain23</key> <value>20</value> </param> <param> <key>iq_balance_mode23</key> <value>0</value> </param> <param> <key>gain23</key> <value>10</value> </param> <param> <key>ant24</key> <value></value> </param> <param> <key>bb_gain24</key> <value>20</value> </param> <param> <key>bw24</key> <value>0</value> </param> <param> <key>dc_offset_mode24</key> <value>0</value> </param> <param> <key>corr24</key> <value>0</value> </param> <param> <key>freq24</key> <value>100e6</value> </param> <param> <key>gain_mode24</key> <value>False</value> </param> <param> <key>if_gain24</key> <value>20</value> </param> <param> <key>iq_balance_mode24</key> <value>0</value> </param> <param> <key>gain24</key> <value>10</value> </param> <param> <key>ant25</key> <value></value> </param> <param> <key>bb_gain25</key> <value>20</value> </param> <param> <key>bw25</key> <value>0</value> </param> <param> <key>dc_offset_mode25</key> <value>0</value> </param> <param> <key>corr25</key> <value>0</value> </param> <param> <key>freq25</key> <value>100e6</value> </param> <param> <key>gain_mode25</key> <value>False</value> </param> <param> <key>if_gain25</key> <value>20</value> </param> <param> <key>iq_balance_mode25</key> <value>0</value> </param> <param> <key>gain25</key> <value>10</value> </param> <param> <key>ant26</key> <value></value> </param> <param> <key>bb_gain26</key> <value>20</value> </param> <param> <key>bw26</key> <value>0</value> </param> <param> <key>dc_offset_mode26</key> <value>0</value> </param> <param> <key>corr26</key> <value>0</value> </param> <param> <key>freq26</key> <value>100e6</value> </param> <param> <key>gain_mode26</key> <value>False</value> </param> <param> <key>if_gain26</key> <value>20</value> </param> <param> <key>iq_balance_mode26</key> <value>0</value> </param> <param> <key>gain26</key> <value>10</value> </param> <param> <key>ant27</key> <value></value> </param> <param> <key>bb_gain27</key> <value>20</value> </param> <param> <key>bw27</key> <value>0</value> </param> <param> <key>dc_offset_mode27</key> <value>0</value> </param> <param> <key>corr27</key> <value>0</value> </param> <param> <key>freq27</key> <value>100e6</value> </param> <param> <key>gain_mode27</key> <value>False</value> </param> <param> <key>if_gain27</key> <value>20</value> </param> <param> <key>iq_balance_mode27</key> <value>0</value> </param> <param> <key>gain27</key> <value>10</value> </param> <param> <key>ant28</key> <value></value> </param> <param> <key>bb_gain28</key> <value>20</value> </param> <param> <key>bw28</key> <value>0</value> </param> <param> <key>dc_offset_mode28</key> <value>0</value> </param> <param> <key>corr28</key> <value>0</value> </param> <param> <key>freq28</key> <value>100e6</value> </param> <param> <key>gain_mode28</key> <value>False</value> </param> <param> <key>if_gain28</key> <value>20</value> </param> <param> <key>iq_balance_mode28</key> <value>0</value> </param> <param> <key>gain28</key> <value>10</value> </param> <param> <key>ant29</key> <value></value> </param> <param> <key>bb_gain29</key> <value>20</value> </param> <param> <key>bw29</key> <value>0</value> </param> <param> <key>dc_offset_mode29</key> <value>0</value> </param> <param> <key>corr29</key> <value>0</value> </param> <param> <key>freq29</key> <value>100e6</value> </param> <param> <key>gain_mode29</key> <value>False</value> </param> <param> <key>if_gain29</key> <value>20</value> </param> <param> <key>iq_balance_mode29</key> <value>0</value> </param> <param> <key>gain29</key> <value>10</value> </param> <param> <key>ant2</key> <value></value> </param> <param> <key>bb_gain2</key> <value>20</value> </param> <param> <key>bw2</key> <value>0</value> </param> <param> <key>dc_offset_mode2</key> <value>0</value> </param> <param> <key>corr2</key> <value>0</value> </param> <param> <key>freq2</key> <value>100e6</value> </param> <param> <key>gain_mode2</key> <value>False</value> </param> <param> <key>if_gain2</key> <value>20</value> </param> <param> <key>iq_balance_mode2</key> <value>0</value> </param> <param> <key>gain2</key> <value>10</value> </param> <param> <key>ant30</key> <value></value> </param> <param> <key>bb_gain30</key> <value>20</value> </param> <param> <key>bw30</key> <value>0</value> </param> <param> <key>dc_offset_mode30</key> <value>0</value> </param> <param> <key>corr30</key> <value>0</value> </param> <param> <key>freq30</key> <value>100e6</value> </param> <param> <key>gain_mode30</key> <value>False</value> </param> <param> <key>if_gain30</key> <value>20</value> </param> <param> <key>iq_balance_mode30</key> <value>0</value> </param> <param> <key>gain30</key> <value>10</value> </param> <param> <key>ant31</key> <value></value> </param> <param> <key>bb_gain31</key> <value>20</value> </param> <param> <key>bw31</key> <value>0</value> </param> <param> <key>dc_offset_mode31</key> <value>0</value> </param> <param> <key>corr31</key> <value>0</value> </param> <param> <key>freq31</key> <value>100e6</value> </param> <param> <key>gain_mode31</key> <value>False</value> </param> <param> <key>if_gain31</key> <value>20</value> </param> <param> <key>iq_balance_mode31</key> <value>0</value> </param> <param> <key>gain31</key> <value>10</value> </param> <param> <key>ant3</key> <value></value> </param> <param> <key>bb_gain3</key> <value>20</value> </param> <param> <key>bw3</key> <value>0</value> </param> <param> <key>dc_offset_mode3</key> <value>0</value> </param> <param> <key>corr3</key> <value>0</value> </param> <param> <key>freq3</key> <value>100e6</value> </param> <param> <key>gain_mode3</key> <value>False</value> </param> <param> <key>if_gain3</key> <value>20</value> </param> <param> <key>iq_balance_mode3</key> <value>0</value> </param> <param> <key>gain3</key> <value>10</value> </param> <param> <key>ant4</key> <value></value> </param> <param> <key>bb_gain4</key> <value>20</value> </param> <param> <key>bw4</key> <value>0</value> </param> <param> <key>dc_offset_mode4</key> <value>0</value> </param> <param> <key>corr4</key> <value>0</value> </param> <param> <key>freq4</key> <value>100e6</value> </param> <param> <key>gain_mode4</key> <value>False</value> </param> <param> <key>if_gain4</key> <value>20</value> </param> <param> <key>iq_balance_mode4</key> <value>0</value> </param> <param> <key>gain4</key> <value>10</value> </param> <param> <key>ant5</key> <value></value> </param> <param> <key>bb_gain5</key> <value>20</value> </param> <param> <key>bw5</key> <value>0</value> </param> <param> <key>dc_offset_mode5</key> <value>0</value> </param> <param> <key>corr5</key> <value>0</value> </param> <param> <key>freq5</key> <value>100e6</value> </param> <param> <key>gain_mode5</key> <value>False</value> </param> <param> <key>if_gain5</key> <value>20</value> </param> <param> <key>iq_balance_mode5</key> <value>0</value> </param> <param> <key>gain5</key> <value>10</value> </param> <param> <key>ant6</key> <value></value> </param> <param> <key>bb_gain6</key> <value>20</value> </param> <param> <key>bw6</key> <value>0</value> </param> <param> <key>dc_offset_mode6</key> <value>0</value> </param> <param> <key>corr6</key> <value>0</value> </param> <param> <key>freq6</key> <value>100e6</value> </param> <param> <key>gain_mode6</key> <value>False</value> </param> <param> <key>if_gain6</key> <value>20</value> </param> <param> <key>iq_balance_mode6</key> <value>0</value> </param> <param> <key>gain6</key> <value>10</value> </param> <param> <key>ant7</key> <value></value> </param> <param> <key>bb_gain7</key> <value>20</value> </param> <param> <key>bw7</key> <value>0</value> </param> <param> <key>dc_offset_mode7</key> <value>0</value> </param> <param> <key>corr7</key> <value>0</value> </param> <param> <key>freq7</key> <value>100e6</value> </param> <param> <key>gain_mode7</key> <value>False</value> </param> <param> <key>if_gain7</key> <value>20</value> </param> <param> <key>iq_balance_mode7</key> <value>0</value> </param> <param> <key>gain7</key> <value>10</value> </param> <param> <key>ant8</key> <value></value> </param> <param> <key>bb_gain8</key> <value>20</value> </param> <param> <key>bw8</key> <value>0</value> </param> <param> <key>dc_offset_mode8</key> <value>0</value> </param> <param> <key>corr8</key> <value>0</value> </param> <param> <key>freq8</key> <value>100e6</value> </param> <param> <key>gain_mode8</key> <value>False</value> </param> <param> <key>if_gain8</key> <value>20</value> </param> <param> <key>iq_balance_mode8</key> <value>0</value> </param> <param> <key>gain8</key> <value>10</value> </param> <param> <key>ant9</key> <value></value> </param> <param> <key>bb_gain9</key> <value>20</value> </param> <param> <key>bw9</key> <value>0</value> </param> <param> <key>dc_offset_mode9</key> <value>0</value> </param> <param> <key>corr9</key> <value>0</value> </param> <param> <key>freq9</key> <value>100e6</value> </param> <param> <key>gain_mode9</key> <value>False</value> </param> <param> <key>if_gain9</key> <value>20</value> </param> <param> <key>iq_balance_mode9</key> <value>0</value> </param> <param> <key>gain9</key> <value>10</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>args</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(24, 272)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>rtlsdr_source_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>clock_source0</key> <value></value> </param> <param> <key>time_source0</key> <value></value> </param> <param> <key>clock_source1</key> <value></value> </param> <param> <key>time_source1</key> <value></value> </param> <param> <key>clock_source2</key> <value></value> </param> <param> <key>time_source2</key> <value></value> </param> <param> <key>clock_source3</key> <value></value> </param> <param> <key>time_source3</key> <value></value> </param> <param> <key>clock_source4</key> <value></value> </param> <param> <key>time_source4</key> <value></value> </param> <param> <key>clock_source5</key> <value></value> </param> <param> <key>time_source5</key> <value></value> </param> <param> <key>clock_source6</key> <value></value> </param> <param> <key>time_source6</key> <value></value> </param> <param> <key>clock_source7</key> <value></value> </param> <param> <key>time_source7</key> <value></value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>nchan</key> <value>1</value> </param> <param> <key>num_mboards</key> <value>1</value> </param> <param> <key>type</key> <value>fc32</value> </param> <param> <key>sample_rate</key> <value>samp_rate</value> </param> <param> <key>sync</key> <value></value> </param> </block> <block> <key>wxgui_fftsink2</key> <param> <key>avg_alpha</key> <value>0.8</value> </param> <param> <key>average</key> <value>True</value> </param> <param> <key>baseband_freq</key> <value>0</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>fft_size</key> <value>1024</value> </param> <param> <key>freqvar</key> <value>None</value> </param> <param> <key>_coordinate</key> <value>(1056, 56)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>id</key> <value>wxgui_fftsink2_0</value> </param> <param> <key>notebook</key> <value>nb, 0</value> </param> <param> <key>peak_hold</key> <value>False</value> </param> <param> <key>ref_level</key> <value>-30</value> </param> <param> <key>ref_scale</key> <value>2.0</value> </param> <param> <key>fft_rate</key> <value>15</value> </param> <param> <key>samp_rate</key> <value>samp_rate</value> </param> <param> <key>title</key> <value>Baseband</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>win_size</key> <value></value> </param> <param> <key>win</key> <value>None</value> </param> <param> <key>y_divs</key> <value>10</value> </param> <param> <key>y_per_div</key> <value>10</value> </param> </block> <block> <key>wxgui_fftsink2</key> <param> <key>avg_alpha</key> <value>0.8</value> </param> <param> <key>average</key> <value>True</value> </param> <param> <key>baseband_freq</key> <value>0</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>fft_size</key> <value>1024</value> </param> <param> <key>freqvar</key> <value>None</value> </param> <param> <key>_coordinate</key> <value>(1056, 280)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>id</key> <value>wxgui_fftsink2_0_0</value> </param> <param> <key>notebook</key> <value>nb, 1</value> </param> <param> <key>peak_hold</key> <value>False</value> </param> <param> <key>ref_level</key> <value>0</value> </param> <param> <key>ref_scale</key> <value>2.0</value> </param> <param> <key>fft_rate</key> <value>15</value> </param> <param> <key>samp_rate</key> <value>baseband_rate</value> </param> <param> <key>title</key> <value>FM Demod</value> </param> <param> <key>type</key> <value>float</value> </param> <param> <key>win_size</key> <value></value> </param> <param> <key>win</key> <value>None</value> </param> <param> <key>y_divs</key> <value>10</value> </param> <param> <key>y_per_div</key> <value>10</value> </param> </block> <block> <key>wxgui_scopesink2</key> <param> <key>ac_couple</key> <value>False</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(1056, 500)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>id</key> <value>wxgui_scopesink2_1</value> </param> <param> <key>notebook</key> <value>nb,7</value> </param> <param> <key>num_inputs</key> <value>1</value> </param> <param> <key>samp_rate</key> <value>2375</value> </param> <param> <key>t_scale</key> <value>0</value> </param> <param> <key>title</key> <value>Scope Plot</value> </param> <param> <key>trig_mode</key> <value>wxgui.TRIG_MODE_AUTO</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>v_offset</key> <value>0</value> </param> <param> <key>v_scale</key> <value>0.4</value> </param> <param> <key>win_size</key> <value></value> </param> <param> <key>xy_mode</key> <value>True</value> </param> <param> <key>y_axis_label</key> <value>Counts</value> </param> </block> <connection> <source_block_id>analog_wfm_rcv_0</source_block_id> <sink_block_id>freq_xlating_fir_filter_xxx_1</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>analog_wfm_rcv_0</source_block_id> <sink_block_id>wxgui_fftsink2_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_complex_to_real_0</source_block_id> <sink_block_id>digital_binary_slicer_fb_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_keep_one_in_n_0</source_block_id> <sink_block_id>digital_diff_decoder_bb_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_binary_slicer_fb_0</source_block_id> <sink_block_id>blocks_keep_one_in_n_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_diff_decoder_bb_0</source_block_id> <sink_block_id>gr_rds_decoder_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_mpsk_receiver_cc_0</source_block_id> <sink_block_id>blocks_complex_to_real_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>digital_mpsk_receiver_cc_0</source_block_id> <sink_block_id>wxgui_scopesink2_1</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>freq_xlating_fir_filter_xxx_0</source_block_id> <sink_block_id>analog_wfm_rcv_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>freq_xlating_fir_filter_xxx_0</source_block_id> <sink_block_id>wxgui_fftsink2_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>freq_xlating_fir_filter_xxx_1</source_block_id> <sink_block_id>root_raised_cosine_filter_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>gr_rds_decoder_0</source_block_id> <sink_block_id>gr_rds_parser_0</sink_block_id> <source_key>out</source_key> <sink_key>in</sink_key> </connection> <connection> <source_block_id>gr_rds_parser_0</source_block_id> <sink_block_id>gr_rds_panel_0</sink_block_id> <source_key>out</source_key> <sink_key>in</sink_key> </connection> <connection> <source_block_id>root_raised_cosine_filter_0</source_block_id> <sink_block_id>digital_mpsk_receiver_cc_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>rtlsdr_source_0</source_block_id> <sink_block_id>freq_xlating_fir_filter_xxx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> </flow_graph> 

Source: https://habr.com/ru/post/ar456184/


All Articles