Как стать автором
Обновить

Software Defined Radio — как это работает? Часть 9

Время на прочтение 69 мин
Количество просмотров 10K
Привет, Хабр.

В предыдущей части было рассмотрено декодирование сигналов RDS для FM-радиостанций, и идея следующей статьи возникла сама собой — нужно сделать свой собственный FM-трансмиттер.

Вариантов будет два — простой, и более сложный, с RDS.



Как и в предыдущих случаях, сделаем мы все это в GNU Radio, не написав ни одной строчки кода. Для тех кому интересно, продолжение под катом.

Итак, приступим. Разумеется, для тестов нам понадобится SDR с возможностью передачи (HackRF, USRP, LimeSDR).

FM трансмиттер


Схема простого трансмиттера делается практически в два клика, и надеюсь, никаких сложностей в понимании не представляет. В качестве источника я использую WAV-file, хотя при желании можно использовать и другой источник, например вход звуковой карты.



Собственно, ключевых блоков в этой схеме два — WBFM-трансмиттер и Resampler, преобразующий частоту дискретизации потока. Все значения частоты дискретизации должны соответствовать друг другу, иначе будет пропуск семплов, что на слух будет слышно как щелчки. Блок Multiply Const используется для регулировки входного уровня. Также важно не перепутать, в GNU Radio есть два разных блока для FM — WBFM и NBFM. Нам нужен именно первый, Wide Band FM. Модуляция NFM используется для портативных радиостанций.

В общем, все просто, запускаем, работает. Никаких UI-блоков в схеме нет, так что использовать ее можно и из командной строки (подробнее в 4й части).

Кстати, если посмотреть спектр, то можно убедиться, что передается простой моно сигнал, без каких-либо каналов, пилот-тонов и прочего.



Пора перейти к более сложному варианту.

Трансмиттер с RDS


Схема передатчика с RDS будет разумеется, посложнее. Ее оригинал был взят из примеров gr-rds с небольшими изменениями (оригинальная версия под Windows не заработала, «правильная» версия внизу статьи), рассмотрим, из каких компонентов она состоит.



(оригинал в полном разрешении)

Верхяя треть схемы — это передача RDS. На входе имеется RDS-энкодер, который исходя из имеющихся данных (имя станции, код страны и пр) формирует RDS-пакеты. Затем битовый поток подвергается дифференциальному кодированию, идея которого — убрать повторяющиеся последовательности вида 001000001. Затем сигнал обрабатывается, и им модулируется «несущая» на 57КГц. Центральная часть — создание звука. Тут формируются каналы L+R и L-R. Снизу в качестве источника звука указан WAV-файл. И наконец, блок Add складывает все это вместе, также к сигналу добавляется пилот-тон на 19КГц и второй тон на 38КГц. Весь этот суммарный сигнал отправляется на частотный модулятор, все это с помощью SDR отправляется в эфир.

По идее, эта схема не является 100% полной, например нет блока предыскажений, фазы тонов на 19, 38 и 57КГц не синхронизированы. С другой стороны, для понимания того, как вообще звук передается в эфир, такой схемы вполне достаточно, желающие могут доработать ее самостоятельно.

При запуске открывается окно, часть параметров можно менять.



Было желание протестировать RDS с реальным приемником, но оказалось что FM-радио — это уже атавизм, и у меня дома его нет. Даже в смартфоне последней модели оно тоже отсутствует. Так что пришлось использовать RTL-SDR V3 и GQRX в качестве контрольного приемника, результат на КДПВ.

Разумеется, перед тестированием необходимо выбрать свободную частоту, чтобы на ней не было станций, ну и желательно не превышать разрешенную мощность. Для тех же, кто захочет получить максимум дальности можно докупить усилитель, желательно сделать антенну на нужную частоту, чтобы был хотя бы диполь 1/4 длины волны.

Заключение


Как можно видеть, в передаче FM-радио в принципе, нет ничего сверхсложного, все вполне реализуемо в GNU Radio (хотя без наличия примеров повторить такое было бы непросто, учитывая что система не документирована вообще никак). Ну теперь, по крайней мере, работающий пример у читателей есть.

Исходные коды блоков под спойлером.

fm_tx.grc
<?xml version='1.0' encoding='utf-8'?>
<?grc format='1' created='3.7.11'?>
<flow_graph>
  <timestamp>Tue Jun 18 20:27:26 2019</timestamp>
  <block>
    <key>options</key>
    <param>
      <key>author</key>
      <value></value>
    </param>
    <param>
      <key>window_size</key>
      <value></value>
    </param>
    <param>
      <key>category</key>
      <value>[GRC Hier Blocks]</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>(16, 20)</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>top_block</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></value>
    </param>
  </block>
  <block>
    <key>analog_wfm_tx</key>
    <param>
      <key>audio_rate</key>
      <value>80000</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>(592, 76)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>analog_wfm_tx_0</value>
    </param>
    <param>
      <key>max_dev</key>
      <value>75e3</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>fh</key>
      <value>-1.0</value>
    </param>
    <param>
      <key>quad_rate</key>
      <value>320000</value>
    </param>
    <param>
      <key>tau</key>
      <value>75e-6</value>
    </param>
  </block>
  <block>
    <key>blocks_multiply_const_vxx</key>
    <param>
      <key>alias</key>
      <value></value>
    </param>
    <param>
      <key>comment</key>
      <value></value>
    </param>
    <param>
      <key>const</key>
      <value>0.45</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(248, 108)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_multiply_const_vxx_0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</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_wavfile_source</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>file</key>
      <value>D:\MyProjects\GNURadio\sound.wav</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(24, 100)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_wavfile_source_0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>nchan</key>
      <value>1</value>
    </param>
    <param>
      <key>repeat</key>
      <value>True</value>
    </param>
  </block>
  <block>
    <key>rational_resampler_xxx</key>
    <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>3</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>fbw</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(408, 84)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>rational_resampler_xxx_0</value>
    </param>
    <param>
      <key>interp</key>
      <value>5</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>taps</key>
      <value></value>
    </param>
    <param>
      <key>type</key>
      <value>fff</value>
    </param>
  </block>
  <block>
    <key>uhd_usrp_sink</key>
    <param>
      <key>alias</key>
      <value></value>
    </param>
    <param>
      <key>ant0</key>
      <value></value>
    </param>
    <param>
      <key>bw0</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq0</key>
      <value>95.6e6</value>
    </param>
    <param>
      <key>norm_gain0</key>
      <value>False</value>
    </param>
    <param>
      <key>gain0</key>
      <value>30</value>
    </param>
    <param>
      <key>ant10</key>
      <value></value>
    </param>
    <param>
      <key>bw10</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq10</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain10</key>
      <value>False</value>
    </param>
    <param>
      <key>gain10</key>
      <value>0</value>
    </param>
    <param>
      <key>ant11</key>
      <value></value>
    </param>
    <param>
      <key>bw11</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq11</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain11</key>
      <value>False</value>
    </param>
    <param>
      <key>gain11</key>
      <value>0</value>
    </param>
    <param>
      <key>ant12</key>
      <value></value>
    </param>
    <param>
      <key>bw12</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq12</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain12</key>
      <value>False</value>
    </param>
    <param>
      <key>gain12</key>
      <value>0</value>
    </param>
    <param>
      <key>ant13</key>
      <value></value>
    </param>
    <param>
      <key>bw13</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq13</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain13</key>
      <value>False</value>
    </param>
    <param>
      <key>gain13</key>
      <value>0</value>
    </param>
    <param>
      <key>ant14</key>
      <value></value>
    </param>
    <param>
      <key>bw14</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq14</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain14</key>
      <value>False</value>
    </param>
    <param>
      <key>gain14</key>
      <value>0</value>
    </param>
    <param>
      <key>ant15</key>
      <value></value>
    </param>
    <param>
      <key>bw15</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq15</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain15</key>
      <value>False</value>
    </param>
    <param>
      <key>gain15</key>
      <value>0</value>
    </param>
    <param>
      <key>ant16</key>
      <value></value>
    </param>
    <param>
      <key>bw16</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq16</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain16</key>
      <value>False</value>
    </param>
    <param>
      <key>gain16</key>
      <value>0</value>
    </param>
    <param>
      <key>ant17</key>
      <value></value>
    </param>
    <param>
      <key>bw17</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq17</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain17</key>
      <value>False</value>
    </param>
    <param>
      <key>gain17</key>
      <value>0</value>
    </param>
    <param>
      <key>ant18</key>
      <value></value>
    </param>
    <param>
      <key>bw18</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq18</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain18</key>
      <value>False</value>
    </param>
    <param>
      <key>gain18</key>
      <value>0</value>
    </param>
    <param>
      <key>ant19</key>
      <value></value>
    </param>
    <param>
      <key>bw19</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq19</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain19</key>
      <value>False</value>
    </param>
    <param>
      <key>gain19</key>
      <value>0</value>
    </param>
    <param>
      <key>ant1</key>
      <value></value>
    </param>
    <param>
      <key>bw1</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq1</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain1</key>
      <value>False</value>
    </param>
    <param>
      <key>gain1</key>
      <value>0</value>
    </param>
    <param>
      <key>ant20</key>
      <value></value>
    </param>
    <param>
      <key>bw20</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq20</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain20</key>
      <value>False</value>
    </param>
    <param>
      <key>gain20</key>
      <value>0</value>
    </param>
    <param>
      <key>ant21</key>
      <value></value>
    </param>
    <param>
      <key>bw21</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq21</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain21</key>
      <value>False</value>
    </param>
    <param>
      <key>gain21</key>
      <value>0</value>
    </param>
    <param>
      <key>ant22</key>
      <value></value>
    </param>
    <param>
      <key>bw22</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq22</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain22</key>
      <value>False</value>
    </param>
    <param>
      <key>gain22</key>
      <value>0</value>
    </param>
    <param>
      <key>ant23</key>
      <value></value>
    </param>
    <param>
      <key>bw23</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq23</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain23</key>
      <value>False</value>
    </param>
    <param>
      <key>gain23</key>
      <value>0</value>
    </param>
    <param>
      <key>ant24</key>
      <value></value>
    </param>
    <param>
      <key>bw24</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq24</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain24</key>
      <value>False</value>
    </param>
    <param>
      <key>gain24</key>
      <value>0</value>
    </param>
    <param>
      <key>ant25</key>
      <value></value>
    </param>
    <param>
      <key>bw25</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq25</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain25</key>
      <value>False</value>
    </param>
    <param>
      <key>gain25</key>
      <value>0</value>
    </param>
    <param>
      <key>ant26</key>
      <value></value>
    </param>
    <param>
      <key>bw26</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq26</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain26</key>
      <value>False</value>
    </param>
    <param>
      <key>gain26</key>
      <value>0</value>
    </param>
    <param>
      <key>ant27</key>
      <value></value>
    </param>
    <param>
      <key>bw27</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq27</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain27</key>
      <value>False</value>
    </param>
    <param>
      <key>gain27</key>
      <value>0</value>
    </param>
    <param>
      <key>ant28</key>
      <value></value>
    </param>
    <param>
      <key>bw28</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq28</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain28</key>
      <value>False</value>
    </param>
    <param>
      <key>gain28</key>
      <value>0</value>
    </param>
    <param>
      <key>ant29</key>
      <value></value>
    </param>
    <param>
      <key>bw29</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq29</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain29</key>
      <value>False</value>
    </param>
    <param>
      <key>gain29</key>
      <value>0</value>
    </param>
    <param>
      <key>ant2</key>
      <value></value>
    </param>
    <param>
      <key>bw2</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq2</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain2</key>
      <value>False</value>
    </param>
    <param>
      <key>gain2</key>
      <value>0</value>
    </param>
    <param>
      <key>ant30</key>
      <value></value>
    </param>
    <param>
      <key>bw30</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq30</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain30</key>
      <value>False</value>
    </param>
    <param>
      <key>gain30</key>
      <value>0</value>
    </param>
    <param>
      <key>ant31</key>
      <value></value>
    </param>
    <param>
      <key>bw31</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq31</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain31</key>
      <value>False</value>
    </param>
    <param>
      <key>gain31</key>
      <value>0</value>
    </param>
    <param>
      <key>ant3</key>
      <value></value>
    </param>
    <param>
      <key>bw3</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq3</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain3</key>
      <value>False</value>
    </param>
    <param>
      <key>gain3</key>
      <value>0</value>
    </param>
    <param>
      <key>ant4</key>
      <value></value>
    </param>
    <param>
      <key>bw4</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq4</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain4</key>
      <value>False</value>
    </param>
    <param>
      <key>gain4</key>
      <value>0</value>
    </param>
    <param>
      <key>ant5</key>
      <value></value>
    </param>
    <param>
      <key>bw5</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq5</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain5</key>
      <value>False</value>
    </param>
    <param>
      <key>gain5</key>
      <value>0</value>
    </param>
    <param>
      <key>ant6</key>
      <value></value>
    </param>
    <param>
      <key>bw6</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq6</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain6</key>
      <value>False</value>
    </param>
    <param>
      <key>gain6</key>
      <value>0</value>
    </param>
    <param>
      <key>ant7</key>
      <value></value>
    </param>
    <param>
      <key>bw7</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq7</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain7</key>
      <value>False</value>
    </param>
    <param>
      <key>gain7</key>
      <value>0</value>
    </param>
    <param>
      <key>ant8</key>
      <value></value>
    </param>
    <param>
      <key>bw8</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq8</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain8</key>
      <value>False</value>
    </param>
    <param>
      <key>gain8</key>
      <value>0</value>
    </param>
    <param>
      <key>ant9</key>
      <value></value>
    </param>
    <param>
      <key>bw9</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq9</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain9</key>
      <value>False</value>
    </param>
    <param>
      <key>gain9</key>
      <value>0</value>
    </param>
    <param>
      <key>clock_rate</key>
      <value>0.0</value>
    </param>
    <param>
      <key>comment</key>
      <value></value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>dev_addr</key>
      <value>""</value>
    </param>
    <param>
      <key>dev_args</key>
      <value>""</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(848, 68)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>uhd_usrp_sink_0</value>
    </param>
    <param>
      <key>type</key>
      <value>fc32</value>
    </param>
    <param>
      <key>clock_source0</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec0</key>
      <value></value>
    </param>
    <param>
      <key>time_source0</key>
      <value></value>
    </param>
    <param>
      <key>clock_source1</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec1</key>
      <value></value>
    </param>
    <param>
      <key>time_source1</key>
      <value></value>
    </param>
    <param>
      <key>clock_source2</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec2</key>
      <value></value>
    </param>
    <param>
      <key>time_source2</key>
      <value></value>
    </param>
    <param>
      <key>clock_source3</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec3</key>
      <value></value>
    </param>
    <param>
      <key>time_source3</key>
      <value></value>
    </param>
    <param>
      <key>clock_source4</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec4</key>
      <value></value>
    </param>
    <param>
      <key>time_source4</key>
      <value></value>
    </param>
    <param>
      <key>clock_source5</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec5</key>
      <value></value>
    </param>
    <param>
      <key>time_source5</key>
      <value></value>
    </param>
    <param>
      <key>clock_source6</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec6</key>
      <value></value>
    </param>
    <param>
      <key>time_source6</key>
      <value></value>
    </param>
    <param>
      <key>clock_source7</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec7</key>
      <value></value>
    </param>
    <param>
      <key>time_source7</key>
      <value></value>
    </param>
    <param>
      <key>nchan</key>
      <value>1</value>
    </param>
    <param>
      <key>num_mboards</key>
      <value>1</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>320000</value>
    </param>
    <param>
      <key>hide_cmd_port</key>
      <value>False</value>
    </param>
    <param>
      <key>hide_lo_controls</key>
      <value>True</value>
    </param>
    <param>
      <key>stream_args</key>
      <value></value>
    </param>
    <param>
      <key>stream_chans</key>
      <value>[]</value>
    </param>
    <param>
      <key>sync</key>
      <value></value>
    </param>
    <param>
      <key>len_tag_name</key>
      <value></value>
    </param>
    <param>
      <key>otw</key>
      <value></value>
    </param>
  </block>
  <connection>
    <source_block_id>analog_wfm_tx_0</source_block_id>
    <sink_block_id>uhd_usrp_sink_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
    <sink_block_id>rational_resampler_xxx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_wavfile_source_0</source_block_id>
    <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>rational_resampler_xxx_0</source_block_id>
    <sink_block_id>analog_wfm_tx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
</flow_graph>

fm_tx_rds.grc
<?xml version='1.0' encoding='utf-8'?>
<?grc format='1' created='3.7.11'?>
<flow_graph>
  <timestamp>Thu Aug 28 08:28:15 2014</timestamp>
  <block>
    <key>options</key>
    <param>
      <key>author</key>
      <value></value>
    </param>
    <param>
      <key>window_size</key>
      <value>1600, 2048</value>
    </param>
    <param>
      <key>category</key>
      <value>RDS</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>(104, 4)</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_tx</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></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>(352, 4)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>data_rate</value>
    </param>
    <param>
      <key>value</key>
      <value>380000</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>(440, 4)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>fm_max_dev</value>
    </param>
    <param>
      <key>value</key>
      <value>80e3</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>(264, 4)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>freq</value>
    </param>
    <param>
      <key>value</key>
      <value>95.6e6</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>.75</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(544, 4)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>id</key>
      <value>input_gain</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>max</key>
      <value>10</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>notebook</key>
      <value></value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</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>.09</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(928, 4)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>id</key>
      <value>pilot_gain</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>max</key>
      <value>3</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>notebook</key>
      <value></value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</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>.05</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(800, 4)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>id</key>
      <value>rds_gain</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>max</key>
      <value>3</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>notebook</key>
      <value></value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</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>.45</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(672, 4)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>id</key>
      <value>stereo_gain</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>max</key>
      <value>3</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>notebook</key>
      <value></value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
  </block>
  <block>
    <key>blocks_multiply_const_vxx</key>
    <param>
      <key>alias</key>
      <value></value>
    </param>
    <param>
      <key>comment</key>
      <value></value>
    </param>
    <param>
      <key>const</key>
      <value>input_gain</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(392, 764)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_multiply_const_vxx_0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</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_multiply_const_vxx</key>
    <param>
      <key>alias</key>
      <value></value>
    </param>
    <param>
      <key>comment</key>
      <value></value>
    </param>
    <param>
      <key>const</key>
      <value>rds_gain</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_enabled</key>
      <value>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(948, 432)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>270</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_multiply_const_vxx_0_0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</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_multiply_const_vxx</key>
    <param>
      <key>alias</key>
      <value></value>
    </param>
    <param>
      <key>comment</key>
      <value></value>
    </param>
    <param>
      <key>const</key>
      <value>pilot_gain</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(200, 300)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_multiply_const_vxx_0_0_1</value>
    </param>
    <param>
      <key>type</key>
      <value>float</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_multiply_const_vxx</key>
    <param>
      <key>alias</key>
      <value></value>
    </param>
    <param>
      <key>comment</key>
      <value></value>
    </param>
    <param>
      <key>const</key>
      <value>input_gain</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(400, 812)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_multiply_const_vxx_0_1</value>
    </param>
    <param>
      <key>type</key>
      <value>float</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_repeat</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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1080, 172)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_repeat_0</value>
    </param>
    <param>
      <key>interp</key>
      <value>160</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>blocks_socket_pdu</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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(24, 148)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>host</key>
      <value></value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_socket_pdu_0</value>
    </param>
    <param>
      <key>mtu</key>
      <value>10000</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>port</key>
      <value>52001</value>
    </param>
    <param>
      <key>tcp_no_delay</key>
      <value>False</value>
    </param>
    <param>
      <key>type</key>
      <value>"TCP_SERVER"</value>
    </param>
  </block>
  <block>
    <key>blocks_throttle</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>(232, 764)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_throttle_1</value>
    </param>
    <param>
      <key>ignoretag</key>
      <value>True</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>samples_per_second</key>
      <value>48000</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>blocks_throttle</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>(240, 812)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_throttle_2</value>
    </param>
    <param>
      <key>ignoretag</key>
      <value>True</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>samples_per_second</key>
      <value>48000</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>blocks_wavfile_source</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>1</value>
    </param>
    <param>
      <key>file</key>
      <value>D:\MyProjects\GNURadio\sound.wav</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(16, 768)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>blocks_wavfile_source_0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>nchan</key>
      <value>2</value>
    </param>
    <param>
      <key>repeat</key>
      <value>True</value>
    </param>
  </block>
  <block>
    <key>blocks_add_xx</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>(472, 552)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_add_xx_0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>num_inputs</key>
      <value>2</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>blocks_add_xx</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>(840, 640)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>270</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_add_xx_1</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>num_inputs</key>
      <value>4</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>blocks_char_to_float</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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(944, 172)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_char_to_float_0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>scale</key>
      <value>1</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>digital_diff_encoder_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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(400, 172)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_diff_encoder_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>analog_frequency_modulator_fc</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>(944, 764)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_frequency_modulator_fc_0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>sensitivity</key>
      <value>2*math.pi*fm_max_dev/data_rate</value>
    </param>
  </block>
  <block>
    <key>digital_map_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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(824, 172)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_map_bb_0</value>
    </param>
    <param>
      <key>map</key>
      <value>[-1,1]</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>digital_map_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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(576, 172)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_map_bb_1</value>
    </param>
    <param>
      <key>map</key>
      <value>[1,2]</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>blocks_multiply_xx</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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1432, 232)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_multiply_xx_0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>num_inputs</key>
      <value>2</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>blocks_multiply_xx</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>(768, 360)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_multiply_xx_1</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>num_inputs</key>
      <value>2</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>gr_rds_encoder</key>
    <param>
      <key>af1</key>
      <value>89.8e6</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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(160, 96)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_rds_encoder_0</value>
    </param>
    <param>
      <key>ms</key>
      <value>True</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>pi_country_code</key>
      <value>13</value>
    </param>
    <param>
      <key>pi_coverage_area</key>
      <value>0</value>
    </param>
    <param>
      <key>pi_reference_number</key>
      <value>147</value>
    </param>
    <param>
      <key>ps</key>
      <value>SDRRADIO</value>
    </param>
    <param>
      <key>pty_locale</key>
      <value>0</value>
    </param>
    <param>
      <key>pty</key>
      <value>0</value>
    </param>
    <param>
      <key>radiotext</key>
      <value>Hello HABR!</value>
    </param>
    <param>
      <key>ta</key>
      <value>False</value>
    </param>
    <param>
      <key>tp</key>
      <value>True</value>
    </param>
  </block>
  <block>
    <key>analog_sig_source_x</key>
    <param>
      <key>amp</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>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>freq</key>
      <value>38e3</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(24, 372)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_sig_source_x_0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>offset</key>
      <value>0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>data_rate</value>
    </param>
    <param>
      <key>waveform</key>
      <value>analog.GR_SIN_WAVE</value>
    </param>
  </block>
  <block>
    <key>analog_sig_source_x</key>
    <param>
      <key>amp</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>_enabled</key>
      <value>1</value>
    </param>
    <param>
      <key>freq</key>
      <value>57e3</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1264, 100)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_sig_source_x_0_0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>offset</key>
      <value>0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>data_rate</value>
    </param>
    <param>
      <key>waveform</key>
      <value>analog.GR_SIN_WAVE</value>
    </param>
  </block>
  <block>
    <key>analog_sig_source_x</key>
    <param>
      <key>amp</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>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>freq</key>
      <value>19e3</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(24, 268)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_sig_source_x_0_1</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>offset</key>
      <value>0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>data_rate</value>
    </param>
    <param>
      <key>waveform</key>
      <value>analog.GR_SIN_WAVE</value>
    </param>
  </block>
  <block>
    <key>blocks_sub_xx</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>(448, 456)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_sub_xx_0</value>
    </param>
    <param>
      <key>type</key>
      <value>float</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>num_inputs</key>
      <value>2</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
  </block>
  <block>
    <key>blocks_unpack_k_bits_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>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(680, 172)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>gr_unpack_k_bits_bb_0</value>
    </param>
    <param>
      <key>k</key>
      <value>2</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</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>(8, 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>low_pass_filter</key>
    <param>
      <key>beta</key>
      <value>6.76</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>cutoff_freq</key>
      <value>2.5e3</value>
    </param>
    <param>
      <key>decim</key>
      <value>1</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>1</value>
    </param>
    <param>
      <key>type</key>
      <value>interp_fir_filter_fff</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1248, 212)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>gain</key>
      <value>1</value>
    </param>
    <param>
      <key>id</key>
      <value>low_pass_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>samp_rate</key>
      <value>data_rate</value>
    </param>
    <param>
      <key>width</key>
      <value>.5e3</value>
    </param>
    <param>
      <key>win</key>
      <value>firdes.WIN_HAMMING</value>
    </param>
  </block>
  <block>
    <key>low_pass_filter</key>
    <param>
      <key>beta</key>
      <value>6.76</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>cutoff_freq</key>
      <value>15e3</value>
    </param>
    <param>
      <key>decim</key>
      <value>1</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>interp_fir_filter_fff</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(584, 532)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>gain</key>
      <value>1</value>
    </param>
    <param>
      <key>id</key>
      <value>low_pass_filter_0_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>samp_rate</key>
      <value>data_rate</value>
    </param>
    <param>
      <key>width</key>
      <value>2e3</value>
    </param>
    <param>
      <key>win</key>
      <value>firdes.WIN_HAMMING</value>
    </param>
  </block>
  <block>
    <key>low_pass_filter</key>
    <param>
      <key>beta</key>
      <value>6.76</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>cutoff_freq</key>
      <value>15e3</value>
    </param>
    <param>
      <key>decim</key>
      <value>1</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>interp_fir_filter_fff</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(584, 396)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>gain</key>
      <value>1</value>
    </param>
    <param>
      <key>id</key>
      <value>low_pass_filter_0_0_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>samp_rate</key>
      <value>data_rate</value>
    </param>
    <param>
      <key>width</key>
      <value>2e3</value>
    </param>
    <param>
      <key>win</key>
      <value>firdes.WIN_HAMMING</value>
    </param>
  </block>
  <block>
    <key>rational_resampler_xxx</key>
    <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>6</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>fbw</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(168, 444)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>rational_resampler_xxx_0</value>
    </param>
    <param>
      <key>interp</key>
      <value>48</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>taps</key>
      <value></value>
    </param>
    <param>
      <key>type</key>
      <value>fff</value>
    </param>
  </block>
  <block>
    <key>rational_resampler_xxx</key>
    <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>6</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>fbw</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(160, 540)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>rational_resampler_xxx_0_0</value>
    </param>
    <param>
      <key>interp</key>
      <value>48</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>taps</key>
      <value></value>
    </param>
    <param>
      <key>type</key>
      <value>fff</value>
    </param>
  </block>
  <block>
    <key>rational_resampler_xxx</key>
    <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>38</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>1</value>
    </param>
    <param>
      <key>fbw</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1104, 740)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>rational_resampler_xxx_1</value>
    </param>
    <param>
      <key>interp</key>
      <value>50</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>taps</key>
      <value></value>
    </param>
    <param>
      <key>type</key>
      <value>ccc</value>
    </param>
  </block>
  <block>
    <key>uhd_usrp_sink</key>
    <param>
      <key>alias</key>
      <value></value>
    </param>
    <param>
      <key>ant0</key>
      <value>TX/RX</value>
    </param>
    <param>
      <key>bw0</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq0</key>
      <value>freq</value>
    </param>
    <param>
      <key>norm_gain0</key>
      <value>False</value>
    </param>
    <param>
      <key>gain0</key>
      <value>50</value>
    </param>
    <param>
      <key>ant10</key>
      <value></value>
    </param>
    <param>
      <key>bw10</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq10</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain10</key>
      <value>False</value>
    </param>
    <param>
      <key>gain10</key>
      <value>0</value>
    </param>
    <param>
      <key>ant11</key>
      <value></value>
    </param>
    <param>
      <key>bw11</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq11</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain11</key>
      <value>False</value>
    </param>
    <param>
      <key>gain11</key>
      <value>0</value>
    </param>
    <param>
      <key>ant12</key>
      <value></value>
    </param>
    <param>
      <key>bw12</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq12</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain12</key>
      <value>False</value>
    </param>
    <param>
      <key>gain12</key>
      <value>0</value>
    </param>
    <param>
      <key>ant13</key>
      <value></value>
    </param>
    <param>
      <key>bw13</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq13</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain13</key>
      <value>False</value>
    </param>
    <param>
      <key>gain13</key>
      <value>0</value>
    </param>
    <param>
      <key>ant14</key>
      <value></value>
    </param>
    <param>
      <key>bw14</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq14</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain14</key>
      <value>False</value>
    </param>
    <param>
      <key>gain14</key>
      <value>0</value>
    </param>
    <param>
      <key>ant15</key>
      <value></value>
    </param>
    <param>
      <key>bw15</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq15</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain15</key>
      <value>False</value>
    </param>
    <param>
      <key>gain15</key>
      <value>0</value>
    </param>
    <param>
      <key>ant16</key>
      <value></value>
    </param>
    <param>
      <key>bw16</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq16</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain16</key>
      <value>False</value>
    </param>
    <param>
      <key>gain16</key>
      <value>0</value>
    </param>
    <param>
      <key>ant17</key>
      <value></value>
    </param>
    <param>
      <key>bw17</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq17</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain17</key>
      <value>False</value>
    </param>
    <param>
      <key>gain17</key>
      <value>0</value>
    </param>
    <param>
      <key>ant18</key>
      <value></value>
    </param>
    <param>
      <key>bw18</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq18</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain18</key>
      <value>False</value>
    </param>
    <param>
      <key>gain18</key>
      <value>0</value>
    </param>
    <param>
      <key>ant19</key>
      <value></value>
    </param>
    <param>
      <key>bw19</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq19</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain19</key>
      <value>False</value>
    </param>
    <param>
      <key>gain19</key>
      <value>0</value>
    </param>
    <param>
      <key>ant1</key>
      <value></value>
    </param>
    <param>
      <key>bw1</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq1</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain1</key>
      <value>False</value>
    </param>
    <param>
      <key>gain1</key>
      <value>0</value>
    </param>
    <param>
      <key>ant20</key>
      <value></value>
    </param>
    <param>
      <key>bw20</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq20</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain20</key>
      <value>False</value>
    </param>
    <param>
      <key>gain20</key>
      <value>0</value>
    </param>
    <param>
      <key>ant21</key>
      <value></value>
    </param>
    <param>
      <key>bw21</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq21</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain21</key>
      <value>False</value>
    </param>
    <param>
      <key>gain21</key>
      <value>0</value>
    </param>
    <param>
      <key>ant22</key>
      <value></value>
    </param>
    <param>
      <key>bw22</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq22</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain22</key>
      <value>False</value>
    </param>
    <param>
      <key>gain22</key>
      <value>0</value>
    </param>
    <param>
      <key>ant23</key>
      <value></value>
    </param>
    <param>
      <key>bw23</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq23</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain23</key>
      <value>False</value>
    </param>
    <param>
      <key>gain23</key>
      <value>0</value>
    </param>
    <param>
      <key>ant24</key>
      <value></value>
    </param>
    <param>
      <key>bw24</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq24</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain24</key>
      <value>False</value>
    </param>
    <param>
      <key>gain24</key>
      <value>0</value>
    </param>
    <param>
      <key>ant25</key>
      <value></value>
    </param>
    <param>
      <key>bw25</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq25</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain25</key>
      <value>False</value>
    </param>
    <param>
      <key>gain25</key>
      <value>0</value>
    </param>
    <param>
      <key>ant26</key>
      <value></value>
    </param>
    <param>
      <key>bw26</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq26</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain26</key>
      <value>False</value>
    </param>
    <param>
      <key>gain26</key>
      <value>0</value>
    </param>
    <param>
      <key>ant27</key>
      <value></value>
    </param>
    <param>
      <key>bw27</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq27</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain27</key>
      <value>False</value>
    </param>
    <param>
      <key>gain27</key>
      <value>0</value>
    </param>
    <param>
      <key>ant28</key>
      <value></value>
    </param>
    <param>
      <key>bw28</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq28</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain28</key>
      <value>False</value>
    </param>
    <param>
      <key>gain28</key>
      <value>0</value>
    </param>
    <param>
      <key>ant29</key>
      <value></value>
    </param>
    <param>
      <key>bw29</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq29</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain29</key>
      <value>False</value>
    </param>
    <param>
      <key>gain29</key>
      <value>0</value>
    </param>
    <param>
      <key>ant2</key>
      <value></value>
    </param>
    <param>
      <key>bw2</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq2</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain2</key>
      <value>False</value>
    </param>
    <param>
      <key>gain2</key>
      <value>0</value>
    </param>
    <param>
      <key>ant30</key>
      <value></value>
    </param>
    <param>
      <key>bw30</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq30</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain30</key>
      <value>False</value>
    </param>
    <param>
      <key>gain30</key>
      <value>0</value>
    </param>
    <param>
      <key>ant31</key>
      <value></value>
    </param>
    <param>
      <key>bw31</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq31</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain31</key>
      <value>False</value>
    </param>
    <param>
      <key>gain31</key>
      <value>0</value>
    </param>
    <param>
      <key>ant3</key>
      <value></value>
    </param>
    <param>
      <key>bw3</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq3</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain3</key>
      <value>False</value>
    </param>
    <param>
      <key>gain3</key>
      <value>0</value>
    </param>
    <param>
      <key>ant4</key>
      <value></value>
    </param>
    <param>
      <key>bw4</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq4</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain4</key>
      <value>False</value>
    </param>
    <param>
      <key>gain4</key>
      <value>0</value>
    </param>
    <param>
      <key>ant5</key>
      <value></value>
    </param>
    <param>
      <key>bw5</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq5</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain5</key>
      <value>False</value>
    </param>
    <param>
      <key>gain5</key>
      <value>0</value>
    </param>
    <param>
      <key>ant6</key>
      <value></value>
    </param>
    <param>
      <key>bw6</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq6</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain6</key>
      <value>False</value>
    </param>
    <param>
      <key>gain6</key>
      <value>0</value>
    </param>
    <param>
      <key>ant7</key>
      <value></value>
    </param>
    <param>
      <key>bw7</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq7</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain7</key>
      <value>False</value>
    </param>
    <param>
      <key>gain7</key>
      <value>0</value>
    </param>
    <param>
      <key>ant8</key>
      <value></value>
    </param>
    <param>
      <key>bw8</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq8</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain8</key>
      <value>False</value>
    </param>
    <param>
      <key>gain8</key>
      <value>0</value>
    </param>
    <param>
      <key>ant9</key>
      <value></value>
    </param>
    <param>
      <key>bw9</key>
      <value>0</value>
    </param>
    <param>
      <key>center_freq9</key>
      <value>0</value>
    </param>
    <param>
      <key>norm_gain9</key>
      <value>False</value>
    </param>
    <param>
      <key>gain9</key>
      <value>0</value>
    </param>
    <param>
      <key>clock_rate</key>
      <value>0.0</value>
    </param>
    <param>
      <key>comment</key>
      <value></value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>dev_addr</key>
      <value></value>
    </param>
    <param>
      <key>dev_args</key>
      <value>""</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1296, 724)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
    <param>
      <key>id</key>
      <value>uhd_usrp_sink</value>
    </param>
    <param>
      <key>type</key>
      <value>fc32</value>
    </param>
    <param>
      <key>clock_source0</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec0</key>
      <value></value>
    </param>
    <param>
      <key>time_source0</key>
      <value></value>
    </param>
    <param>
      <key>clock_source1</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec1</key>
      <value></value>
    </param>
    <param>
      <key>time_source1</key>
      <value></value>
    </param>
    <param>
      <key>clock_source2</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec2</key>
      <value></value>
    </param>
    <param>
      <key>time_source2</key>
      <value></value>
    </param>
    <param>
      <key>clock_source3</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec3</key>
      <value></value>
    </param>
    <param>
      <key>time_source3</key>
      <value></value>
    </param>
    <param>
      <key>clock_source4</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec4</key>
      <value></value>
    </param>
    <param>
      <key>time_source4</key>
      <value></value>
    </param>
    <param>
      <key>clock_source5</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec5</key>
      <value></value>
    </param>
    <param>
      <key>time_source5</key>
      <value></value>
    </param>
    <param>
      <key>clock_source6</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec6</key>
      <value></value>
    </param>
    <param>
      <key>time_source6</key>
      <value></value>
    </param>
    <param>
      <key>clock_source7</key>
      <value></value>
    </param>
    <param>
      <key>sd_spec7</key>
      <value></value>
    </param>
    <param>
      <key>time_source7</key>
      <value></value>
    </param>
    <param>
      <key>nchan</key>
      <value>1</value>
    </param>
    <param>
      <key>num_mboards</key>
      <value>1</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>500000</value>
    </param>
    <param>
      <key>hide_cmd_port</key>
      <value>False</value>
    </param>
    <param>
      <key>hide_lo_controls</key>
      <value>True</value>
    </param>
    <param>
      <key>stream_args</key>
      <value></value>
    </param>
    <param>
      <key>stream_chans</key>
      <value>[]</value>
    </param>
    <param>
      <key>sync</key>
      <value></value>
    </param>
    <param>
      <key>len_tag_name</key>
      <value></value>
    </param>
    <param>
      <key>otw</key>
      <value></value>
    </param>
  </block>
  <block>
    <key>wxgui_fftsink2</key>
    <param>
      <key>avg_alpha</key>
      <value>0</value>
    </param>
    <param>
      <key>average</key>
      <value>False</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>1</value>
    </param>
    <param>
      <key>fft_size</key>
      <value>1024</value>
    </param>
    <param>
      <key>freqvar</key>
      <value>None</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1104, 520)</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></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>30</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>data_rate</value>
    </param>
    <param>
      <key>title</key>
      <value>FFT Plot</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>20</value>
    </param>
  </block>
  <connection>
    <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
    <sink_block_id>rational_resampler_xxx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_multiply_const_vxx_0_0</source_block_id>
    <sink_block_id>gr_add_xx_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_multiply_const_vxx_0_0_1</source_block_id>
    <sink_block_id>gr_add_xx_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>1</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_multiply_const_vxx_0_1</source_block_id>
    <sink_block_id>rational_resampler_xxx_0_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_repeat_0</source_block_id>
    <sink_block_id>low_pass_filter_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_socket_pdu_0</source_block_id>
    <sink_block_id>gr_rds_encoder_0</sink_block_id>
    <source_key>pdus</source_key>
    <sink_key>rds in</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_throttle_1</source_block_id>
    <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_throttle_2</source_block_id>
    <sink_block_id>blocks_multiply_const_vxx_0_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_wavfile_source_0</source_block_id>
    <sink_block_id>blocks_throttle_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_wavfile_source_0</source_block_id>
    <sink_block_id>blocks_throttle_2</sink_block_id>
    <source_key>1</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_add_xx_0</source_block_id>
    <sink_block_id>low_pass_filter_0_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_add_xx_1</source_block_id>
    <sink_block_id>gr_frequency_modulator_fc_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_add_xx_1</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>gr_char_to_float_0</source_block_id>
    <sink_block_id>blocks_repeat_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_diff_encoder_bb_0</source_block_id>
    <sink_block_id>gr_map_bb_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_frequency_modulator_fc_0</source_block_id>
    <sink_block_id>rational_resampler_xxx_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_map_bb_0</source_block_id>
    <sink_block_id>gr_char_to_float_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_map_bb_1</source_block_id>
    <sink_block_id>gr_unpack_k_bits_bb_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_multiply_xx_0</source_block_id>
    <sink_block_id>blocks_multiply_const_vxx_0_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_multiply_xx_1</source_block_id>
    <sink_block_id>gr_add_xx_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>2</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_rds_encoder_0</source_block_id>
    <sink_block_id>gr_diff_encoder_bb_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_sig_source_x_0</source_block_id>
    <sink_block_id>gr_multiply_xx_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_sig_source_x_0_0</source_block_id>
    <sink_block_id>gr_multiply_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_sig_source_x_0_1</source_block_id>
    <sink_block_id>blocks_multiply_const_vxx_0_0_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_sub_xx_0</source_block_id>
    <sink_block_id>low_pass_filter_0_0_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>gr_unpack_k_bits_bb_0</source_block_id>
    <sink_block_id>gr_map_bb_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>low_pass_filter_0</source_block_id>
    <sink_block_id>gr_multiply_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>1</sink_key>
  </connection>
  <connection>
    <source_block_id>low_pass_filter_0_0</source_block_id>
    <sink_block_id>gr_add_xx_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>3</sink_key>
  </connection>
  <connection>
    <source_block_id>low_pass_filter_0_0_0</source_block_id>
    <sink_block_id>gr_multiply_xx_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>1</sink_key>
  </connection>
  <connection>
    <source_block_id>rational_resampler_xxx_0</source_block_id>
    <sink_block_id>gr_add_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>rational_resampler_xxx_0</source_block_id>
    <sink_block_id>gr_sub_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>rational_resampler_xxx_0_0</source_block_id>
    <sink_block_id>gr_add_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>1</sink_key>
  </connection>
  <connection>
    <source_block_id>rational_resampler_xxx_0_0</source_block_id>
    <sink_block_id>gr_sub_xx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>1</sink_key>
  </connection>
  <connection>
    <source_block_id>rational_resampler_xxx_1</source_block_id>
    <sink_block_id>uhd_usrp_sink</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
</flow_graph>

И как обычно, всем удачных экспериментов. И не создавайте помехи другим радиостанциям.
Теги:
Хабы:
+32
Комментарии 15
Комментарии Комментарии 15

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн