GNU Radio GRC HackRF实现FM接收
2016-09-23 10:07
183 查看
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
实验环境:
硬件平台---HackRF One、天线(40-860MHz)
软件环境---Ubuntu运行HackRF环境
系统版本信息---Ubuntu-14.04 (64-bit),内核:3.13.0-32-generic
实验步骤:
按照下图所示搭建一个WBFM接收的GRC程序。
1. HackRF接收信号
HackRF用osmocom Source模块来接收FM信号,其中采样率设置为变量samp_rate,
Ch0:Frequency (Hz)设置为变量center_freq。
用一个Signal Source产生一个频率为center_freq-channel_freq的余弦波来与osmocom Source模块的输出相乘,进行频谱搬移。
2. 低通滤波
低通滤波器的截止频率设置为100kHz,过渡带宽为25kHz,Decimation抽取值为100,经过此模块后的采样率由20MHz变为了200kHz。
3. 重采样
使用Rational Resampler模块来继续调整采样率,以此来满足后续Audio Sink模块需要的48kHz做准备。
经过Rational Resampler模块作用,采样率变化过程为200kHz—>200k*12/5=480kHz。
4. WBFM接收
使用WBFM接收模块来进行WBFM解调,其中Audio Decimation为10,表示将采样率480kHz要变为480k/10=48kHz,以此来适应Audio Sink所要求的48kHz。
Quadrature Rate表示的是WBFM Receive模块所期望的输入采样率为480kHz。
5. 音量调节
使用一个Multiply Constant模块来调节声音音量大小。这个数值的取值设定为一个可调节的变量volume_gain(QT GUI Range)。
运行该GRC程序后,你会看到以下界面,并且你会听到北京的103.915MHz的北京交通广播电台。如果你在别的地方的话,你可以通过调节Channel Frequency的值来找到你所在位置的电台。(这里,在找FM电台的时候,有一个技巧,就是你先通过gqrx来找到你那里能听到的电台的频率值,然后再用这个程序来有针对性的调节Channel Frequency,等找到电台后,如果有杂音的话,可以再慢慢微调Center Frequency和Volume,此外,Volume并不是越大越好,比如我这里我用Volume是1是最清楚的,如果有杂音,可以带上耳机寻找FM电台会更好一些。)
相关文章推荐
- GNU Radio GRC HackRF实现FM接收
- Gnuradio结合hackrf 通过FSK调制实现文本文件的发送与接收
- 【Gnuradio结合hackrf 通过FSK调制实现文本文件的发送与接收】
- Day1:GNU radio实现FM收音机
- 定义消息的发送与接收的方法实现
- 使用开放源代码框架的 Java 应用程序的 Web 服务集成模式,第 2 部分: 实现接收模式
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明
- 定义消息的发送与接收的方法实现
- net2.0下实现串口接收GPS数据读写(-)
- SOCKET实现广播(BoardCast)的发送和接收
- 如何使用JMAIL组件实现邮件的发送与接收
- C#实现文件的发送和接收
- 单片机C51串口中断接收和发送测试例程(含通信协议的实现)
- windows moblie 5.0在托管程序中实现短信接收和拦截
- 用Visual C#实现POP3邮件接收程序
- windows moblie 5.0在托管程序中实现短信接收和拦截
- 在VB.NET下利用Socket实现简单的字符串发送接收程序
- 单片机C51串口中断接收和发送测试例程(含通信协议的实现)
- 数字电视条件接收卡SoC SM1658的硬件结构及实现方法
- socket 接收线程实现(帖子)