HackRF WBFM发射
FM介绍
就是FM啦。WBFM是指宽带FM,现在我们的收音机大多是用WBFM,例如103.9MHz北京交通台,87.6MHz音乐台等。
值得一提的是,对讲机使用的是NBFM(窄带调频)。
发射WAV文件
制备WAV文件
随便找一个mp3文件什么的,转换成WAV文件。在此建议转换成44.1kHz,双声道。
例如使用ffmpeg转换:
ffmpeg -i source.mp3 music.wav
转换后的结果:
$mediainfo jen_ai_marre.wav General Complete name : jen_ai_marre.wav Format : Wave File size : 47.0 MiB Duration : 4mn 39s Overall bit rate mode : Constant Overall bit rate : 1 411 Kbps Audio Format : PCM Format settings, Endianness : Little Format settings, Sign : Signed Codec ID : 1 Duration : 4mn 39s Bit rate mode : Constant Bit rate : 1 411.2 Kbps Channel count : 2 channels Sampling rate : 44.1 KHz Bit depth : 16 bits Stream size : 47.0 MiB (100%)
搭框图
打开gnuradio-companion
把以下框图搭起来。不想搭的可以下载我搭好的。
Wav source
- samp_rate采样率要设置为250kHz,这个与我们的wav文件采样率为44.1kHz有关。实际试验,如果samp_rate设置为500kHz,放出来的声音会加速一倍。
- N Channels表示Wav文件的声道数,填2
- File里填写你在上一步制备的Wav文件地址
Stream Mux
把两条数据流合并为一条流,例如N0是来自第一条流的采样点,N1来自第二条流采样点,则Stream Mux会将两条流以如下方式输出:
[N0, N1, N0, N1, N0, N1, ...]
值得注意的是此处的Type需要填为Float,GNURadio里的数据类型是以颜色表示的。
osmocom_sink
在GNURadio里,Sink表示信号输出,Source表示信号输入。
- Device Arguments可以填上
hackrf=0
- sample rate设置为samp_rate*4
- Ch0 Freq Corr (ppm)
- HackRF的频率较正值,在没有经过仪表校正时,可以直接先填0,有条件的同学可以使用频谱仪或信号源进行标定,或者给我留言,我这里可以帮你标定。
- Ch0 Frequency
- 要发射的频率,此处我填了93e6,表示93MHz
- Ch0 RF Gain(dB)
- 表示HackRF放大器是否开启
- 尽管此处Gain可任意输入,但事实上只有两档,0和14dB,并不是连续可调的,在此我们填14
- Ch0 IF Gain(dB)
- 表示HackRF的中频增益
- 从电路上来看,应试指的是进入MAX2837收发器后给的增益
- 在此我们填40
- Ch0 BB Gain(dB)
- 表示HackRF的基带增益
- 可能指是的进入ADC/DAC芯片后给的增益
- 在此我们填20
- Ch0 BandWidth,填250e3
进一步:通过话筒进行直播发射
只需要把Wav File Source改为Audio Source即可,注意按照图中标注修改采样率。
不想搭的可以下载我搭好的
我制备好的WAV文件百度云盘