第一次接触HackRF,做了些小实验,记录一下。
运行环境:Ubuntu 16.04,HackRF One
百度说虚拟机不好用,为了方便我直接做U盘系统(不是U盘启动盘),方法如下:
(1)准备两个U盘,一个性能差不多没关系,另一个U盘需要性能更好(用于安装)Ubuntu系统);
(2)先用差点的U盘做一个Ubuntu启动盘;
(3)从U盘开始时提示Try Ubuntu和Install Ubuntu,选择后一个,将系统安装在更好的U盘上,这里一定要注意不要误选电脑硬盘,否则后果会很严重,楼主花了300大洋恢复硬盘数据(引以为戒)。
GNURadio配置:
《HackRF与GNURadio网站如下:
http://www.hackrf.net/hackrf与gnuradio入门指南/
然而,我没有用这种方法成功。我不知道我的网速是否不好。有些东西没有安装好。
我安装了以下网站:
http://bobao.360.cn/learning/detail/405.html
关键命令贴在这里:
sudo
apt-get
install
hackrflibhackrf-devlibhackrf0
sudo
apt-get
install
gnuradiognuradio-devgr-osmosdrgr-osmosdrgqrx-sdrwireshark 我不记得参考哪个视频了。你可以自己看百度。代码如下,保存成grc文件,就可以
用GNURadio打开。
<?xml version='1.0' encoding='utf-8'?> <?grc format='1' created='3.7.9'?> <flow_graph> <timestamp>Sat Oct 15 11:19:45 2016</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>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>(0, 6)</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>variable_slider</key> <param> <key>comment</key> <value></value> </param> <param> <key>converver</key> <value>float_converter</value> </param> <param> <key>value</key> <value>1</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(272, 369)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid_pos</key> <value></value> </param> <param>
<key>id</key>
<value>audio_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>93.6e6</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(856, 377)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>grid_pos</key>
<value></value>
</param>
<param>
<key>id</key>
<value>channel_freq</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>max</key>
<value>110e6</value>
</param>
<param>
<key>min</key>
<value>80e6</value>
</param>
<param>
<key>notebook</key>
<value></value>
</param>
<param>
<key>num_steps</key>
<value>1000</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>(0, 78)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>samp_rate</value>
</param>
<param>
<key>value</key>
<value>10e6</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>audio_gain</value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(696, 343)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>aaa</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>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>center_freq - channel_freq</value>
</param>
<param>
<key>_coordinate</key>
<value>(104, 297)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>analog_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>complex</value>
</param>
<param>
<key>samp_rate</key>
<value>samp_rate</value>
</param>
<param>
<key>waveform</key>
<value>analog.GR_COS_WAVE</value>
</param>
</block>
<block>
<key>analog_wfm_rcv</key>
<param>
<key>audio_decimation</key>
<value>10</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>(696, 246)</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>480e3</value>
</param>
</block>
<block>
<key>audio_sink</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>device_name</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(696, 415)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>audio_sink_0</value>
</param>
<param>
<key>num_inputs</key>
<value>1</value>
</param>
<param>
<key>ok_to_block</key>
<value>True</value>
</param>
<param>
<key>samp_rate</key>
<value>48000</value>
</param>
</block>
<block>
<key>blocks_file_sink</key>
<param>
<key>append</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>file</key>
<value>test</value>
</param>
<param>
<key>_coordinate</key>
<value>(104, 444)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>blocks_file_sink_0</value>
</param>
<param>
<key>type</key>
<value>complex</value>
</param>
<param>
<key>unbuffered</key>
<value>False</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>1</value>
</param>
<param>
<key>_coordinate</key>
<value>(328, 283)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>blocks_multiply_xx_0</value>
</param>
<param>
<key>type</key>
<value>complex</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>parameter</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>(0, 150)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>center_freq</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value></value>
</param>
<param>
<key>value</key>
<value>90e6</value>
</param>
</block>
<block>
<key>parameter</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>(0, 222)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>channel_width</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value></value>
</param>
<param>
<key>value</key>
<value>200e3</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>75e3</value>
</param>
<param>
<key>decim</key>
<value>int(samp_rate/channel_width)</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>(576, 14)</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>samp_rate</value>
</param>
<param>
<key>width</key>
<value>25e3</value>
</param>
<param>
<key>win</key>
<value>firdes.WIN_HAMMING</value>
</param>
</block>
<block>
<key>osmosdr_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>center_freq</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>0</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>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(104, 91)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>osmosdr_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>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>5</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>fbw</key>
<value>0</value>
</param>
<param>
<key>_coordinate</key>
<value>(760, 43)</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>12</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>wxgui_fftsink2</key>
<param>
<key>avg_alpha</key>
<value>0</value>
</param>
<param>
<key>average</key>
<value>True</value>
</param>
<param>
<key>baseband_freq</key>
<value>center_freq</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>(328, 0)</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>15</value>
</param>
<param>
<key>samp_rate</key>
<value>samp_rate</value>
</param>
<param>
<key>title</key>
<value>FFT Plot</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</value>
</param>
<param>
<key>average</key>
<value>True</value>
</param>
<param>
<key>baseband_freq</key>
<value>channel_freq</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>(488, 256)</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></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>samp_rate</value>
</param>
<param>
<key>title</key>
<value>FFT Plot</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_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>0</value>
</param>
<param>
<key>_coordinate</key>
<value>(928, 195)</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_0</value>
</param>
<param>
<key>notebook</key>
<value></value>
</param>
<param>
<key>num_inputs</key>
<value>1</value>
</param>
<param>
<key>samp_rate</key>
<value>samp_rate</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>float</value>
</param>
<param>
<key>v_offset</key>
<value>0</value>
</param>
<param>
<key>v_scale</key>
<value>0</value>
</param>
<param>
<key>win_size</key>
<value></value>
</param>
<param>
<key>xy_mode</key>
<value>False</value>
</param>
<param>
<key>y_axis_label</key>
<value>Counts</value>
</param>
</block>
<connection>
<source_block_id>aaa</source_block_id>
<sink_block_id>audio_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>aaa</source_block_id>
<sink_block_id>wxgui_scopesink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>analog_sig_source_x_0</source_block_id>
<sink_block_id>blocks_multiply_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
<source_block_id>analog_wfm_rcv_0</source_block_id>
<sink_block_id>aaa</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>blocks_multiply_xx_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_multiply_xx_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>low_pass_filter_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>osmosdr_source_0</source_block_id>
<sink_block_id>blocks_file_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>osmosdr_source_0</source_block_id>
<sink_block_id>blocks_multiply_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>osmosdr_source_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>rational_resampler_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>
</flow_graph>
这里都是按视频做的,没什么参考,就不详细介绍了。
代码如下,保存成grc文件,然后用GNURadio打开。
<?xml version='1.0' encoding='utf-8'?>
<?grc format='1' created='3.7.9'?>
<flow_graph>
<timestamp>Mon Oct 17 14:46:32 2016</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>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>(8, 8)</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>variable_slider</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>converver</key>
<value>float_converter</value>
</param>
<param>
<key>value</key>
<value>4.388e6</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(856, 113)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>grid_pos</key>
<value></value>
</param>
<param>
<key>id</key>
<value>FM_samp_rate</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>max</key>
<value>5e6</value>
</param>
<param>
<key>min</key>
<value>3e6</value>
</param>
<param>
<key>notebook</key>
<value></value>
</param>
<param>
<key>num_steps</key>
<value>1000</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>104e6</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(264, 8)</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></value>
</param>
<param>
<key>max</key>
<value>110e6</value>
</param>
<param>
<key>min</key>
<value>80e6</value>
</param>
<param>
<key>notebook</key>
<value></value>
</param>
<param>
<key>num_steps</key>
<value>1000</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>(168, 6)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>samp_rate</value>
</param>
<param>
<key>value</key>
<value>48000</value>
</param>
</block>
<block>
<key>analog_wfm_tx</key>
<param>
<key>audio_rate</key>
<value>48000</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>(536, 3)</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>quad_rate</key>
<value>480000</value>
</param>
<param>
<key>tau</key>
<value>300e-6</value>
</param>
</block>
<block>
<key>audio_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>device_name</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(0, 159)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>audio_source_0</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>num_outputs</key>
<value>1</value>
</param>
<param>
<key>ok_to_block</key>
<value>True</value>
</param>
<param>
<key>samp_rate</key>
<value>samp_rate</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>20</value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(168, 159)</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>fractional_interpolator_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>(320, 150)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>fractional_interpolator_xx_0</value>
</param>
<param>
<key>interp_ratio</key>
<value>875e-3</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>phase_shift</key>
<value>1</value>
</param>
<param>
<key>type</key>
<value>float</value>
</param>
</block>
<block>
<key>osmosdr_sink</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>250e3</value>
</param>
<param>
<key>corr0</key>
<value>0</value>
</param>
<param>
<key>freq0</key>
<value>freq</value>
</param>
<param>
<key>if_gain0</key>
<value>40</value>
</param>
<param>
<key>gain0</key>
<value>10</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>corr10</key>
<value>0</value>
</param>
<param>
<key>freq10</key>
<value>100e6</value>
</param>
<param>
<key>if_gain10</key>
<value>20</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>corr11</key>
<value>0</value>
</param>
<param>
<key>freq11</key>
<value>100e6</value>
</param>
<param>
<key>if_gain11</key>
<value>20</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>corr12</key>
<value>0</value>
</param>
<param>
<key>freq12</key>
<value>100e6</value>
</param>
<param>
<key>if_gain12</key>
<value>20</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>corr13</key>
<value>0</value>
</param>
<param>
<key>freq13</key>
<value>100e6</value>
</param>
<param>
<key>if_gain13</key>
<value>20</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>corr14</key>
<value>0</value>
</param>
<param>
<key>freq14</key>
<value>100e6</value>
</param>
<param>
<key>if_gain14</key>
<value>20</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>corr15</key>
<value>0</value>
</param>
<param>
<key>freq15</key>
<value>100e6</value>
</param>
<param>
<key>if_gain15</key>
<value>20</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>corr16</key>
<value>0</value>
</param>
<param>
<key>freq16</key>
<value>100e6</value>
</param>
<param>
<key>if_gain16</key>
<value>20</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>corr17</key>
<value>0</value>
</param>
<param>
<key>freq17</key>
<value>100e6</value>
</param>
<param>
<key>if_gain17</key>
<value>20</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>corr18</key>
<value>0</value>
</param>
<param>
<key>freq18</key>
<value>100e6</value>
</param>
<param>
<key>if_gain18</key>
<value>20</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>corr19</key>
<value>0</value>
</param>
<param>
<key>freq19</key>
<value>100e6</value>
</param>
<param>
<key>if_gain19</key>
<value>20</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>corr1</key>
<value>0</value>
</param>
<param>
<key>freq1</key>
<value>100e6</value>
</param>
<param>
<key>if_gain1</key>
<value>20</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>corr20</key>
<value>0</value>
</param>
<param>
<key>freq20</key>
<value>100e6</value>
</param>
<param>
<key>if_gain20</key>
<value>20</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>corr21</key>
<value>0</value>
</param>
<param>
<key>freq21</key>
<value>100e6</value>
</param>
<param>
<key>if_gain21</key>
<value>20</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>corr22</key>
<value>0</value>
</param>
<param>
<key>freq22</key>
<value>100e6</value>
</param>
<param>
<key>if_gain22</key>
<value>20</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>corr23</key>
<value>0</value>
</param>
<param>
<key>freq23</key>
<value>100e6</value>
</param>
<param>
<key>if_gain23</key>
<value>20</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>corr24</key>
<value>0</value>
</param>
<param>
<key>freq24</key>
<value>100e6</value>
</param>
<param>
<key>if_gain24</key>
<value>20</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>corr25</key>
<value>0</value>
</param>
<param>
<key>freq25</key>
<value>100e6</value>
</param>
<param>
<key>if_gain25</key>
<value>20</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>corr26</key>
<value>0</value>
</param>
<param>
<key>freq26</key>
<value>100e6</value>
</param>
<param>
<key>if_gain26</key>
<value>20</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>corr27</key>
<value>0</value>
</param>
<param>
<key>freq27</key>
<value>100e6</value>
</param>
<param>
<key>if_gain27</key>
<value>20</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>corr28</key>
<value>0</value>
</param>
<param>
<key>freq28</key>
<value>100e6</value>
</param>
<param>
<key>if_gain28</key>
<value>20</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>corr29</key>
<value>0</value>
</param>
<param>
<key>freq29</key>
<value>100e6</value>
</param>
<param>
<key>if_gain29</key>
<value>20</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>corr2</key>
<value>0</value>
</param>
<param>
<key>freq2</key>
<value>100e6</value>
</param>
<param>
<key>if_gain2</key>
<value>20</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>corr30</key>
<value>0</value>
</param>
<param>
<key>freq30</key>
<value>100e6</value>
</param>
<param>
<key>if_gain30</key>
<value>20</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>corr31</key>
<value>0</value>
</param>
<param>
<key>freq31</key>
<value>100e6</value>
</param>
<param>
<key>if_gain31</key>
<value>20</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>corr3</key>
<value>0</value>
</param>
<param>
<key>freq3</key>
<value>100e6</value>
</param>
<param>
<key>if_gain3</key>
<value>20</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>corr4</key>
<value>0</value>
</param>
<param>
<key>freq4</key>
<value>100e6</value>
</param>
<param>
<key>if_gain4</key>
<value>20</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>corr5</key>
<value>0</value>
</param>
<param>
<key>freq5</key>
<value>100e6</value>
</param>
<param>
<key>if_gain5</key>
<value>20</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>corr6</key>
<value>0</value>
</param>
<param>
<key>freq6</key>
<value>100e6</value>
</param>
<param>
<key>if_gain6</key>
<value>20</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>corr7</key>
<value>0</value>
</param>
<param>
<key>freq7</key>
<value>100e6</value>
</param>
<param>
<key>if_gain7</key>
<value>20</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>corr8</key>
<value>0</value>
</param>
<param>
<key>freq8</key>
<value>100e6</value>
</param>
<param>
<key>if_gain8</key>
<value>20</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>corr9</key>
<value>0</value>
</param>
<param>
<key>freq9</key>
<value>100e6</value>
</param>
<param>
<key>if_gain9</key>
<value>20</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>(704, 110)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>osmosdr_sink_0</value>
</param>
<param>
<key>type</key>
<value>fc32</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>nchan</key>
<value>1</value>
</param>
<param>
<key>num_mboards</key>
<value>1</value>
</param>
<param>
<key>sample_rate</key>
<value>FM_samp_rate</value>
</param>
<param>
<key>sync</key>
<value></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>1</value>
</param>
<param>
<key>_enabled</key>
<value>1</value>
</param>
<param>
<key>fbw</key>
<value>0</value>
</param>
<param>
<key>_coordinate</key>
<value>(536, 139)</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>8</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>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>0</value>
</param>
<param>
<key>_coordinate</key>
<value>(320, 243)</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_0</value>
</param>
<param>
<key>notebook</key>
<value></value>
</param>
<param>
<key>num_inputs</key>
<value>1</value>
</param>
<param>
<key>samp_rate</key>
<value>samp_rate</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>float</value>
</param>
<param>
<key>v_offset</key>
<value>0</value>
</param>
<param>
<key>v_scale</key>
<value>0</value>
</param>
<param>
<key>win_size</key>
<value></value>
</param>
<param>
<key>xy_mode</key>
<value>False</value>
</param>
<param>
<key>y_axis_label</key>
<value>Counts</value>
</param>
</block>
<connection>
<source_block_id>analog_wfm_tx_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>audio_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>blocks_multiply_const_vxx_0</source_block_id>
<sink_block_id>fractional_interpolator_xx_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>wxgui_scopesink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>fractional_interpolator_xx_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>
<connection>
<source_block_id>rational_resampler_xxx_0</source_block_id>
<sink_block_id>osmosdr_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
</flow_graph>
这里做一个简单介绍,很多模块我也不清楚,如有错误,望大神指出。
(1)Audio Source模块:
这个模块是从话筒采集信号,Sample Rate参数可以自己设置,一般音乐的采样率为44.1k,这里的设置为48k。
(2)Multiply模块
对话筒接收的信号进行线性放大,保证信号的清晰度。
(3)Fractionnal Interpolator模块
这个我也不懂,不过需要注意的是,模块上的875m表示875e-3,我当时只看到截图,花了点时间才知道的。
(4)WBFM Transmit模块
300u表示300e-6。
(5)osmocom Sink模块
Sample Rate(sps):决定了音频输出的快慢,我用了一个滑块来调整到合适值。
Ch0:Frequency(Hz):载波频率,决定了你能在哪个频道上收到信号
(注意:注意使用无线电请遵守法律,不要干扰其他无线电设备)。
Ch0:RF Gain(dB):修改这个值可以改变发射信号覆盖的范围。
(6)最后,你可以用你的手机FM接收HackRF电台的信号了。