2026年用PlutoSDR+GNURadio在Ubuntu 22.04上搭建你的第一个FM收音机(保姆级教程)

用PlutoSDR+GNURadio在Ubuntu 22.04上搭建你的第一个FM收音机(保姆级教程)用 PlutoSDR GNURadio 在 Ubuntu 22 04 上搭建你的第一个 FM 收音机 保姆级教程 刚拿到 PlutoSDR 时 看着这个小巧的硬件和满屏的专业术语 很多人可能会感到无从下手 别担心 今天我们就从最基础的 FM 收音机开始 带你一步步走进软件定义无线电的世界 Ubuntu 22 04 作为当前最稳定的 Linux 发行版之一 配合强大的 GNURadio 工具

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。

# 用PlutoSDR+GNURadio在Ubuntu 22.04上搭建你的第一个FM收音机(保姆级教程)

刚拿到PlutoSDR时,看着这个小巧的硬件和满屏的专业术语,很多人可能会感到无从下手。别担心,今天我们就从最基础的FM收音机开始,带你一步步走进软件定义无线电的世界。Ubuntu 22.04作为当前最稳定的Linux发行版之一,配合强大的GNURadio工具,能让你在30分钟内听到清晰的FM广播——即使你之前从未接触过SDR。

1. 环境准备与驱动安装

在开始之前,请确保你的系统是Ubuntu 22.04 LTS版本。打开终端,输入以下命令检查系统信息:

lsb_release -a 

如果显示不是22.04版本,建议先升级系统。接下来是驱动安装的关键步骤:

  1. 添加ADI库源
    sudo apt-get update sudo apt-get install -y dirmngr sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC echo "deb https://plutodr.analog.com/repo/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/pluto.list 
  2. 安装iio-oscilloscope
    sudo apt-get update sudo apt-get install -y libiio-oscilloscope 

> 注意:如果遇到"无法定位软件包"错误,可能是源地址有变,建议查看Analog Devices官网获取最新安装指南。

  1. 连接设备验证: 用USB线连接PlutoSDR后,执行:
     iio_info -s 
    正常情况应该能看到类似这样的输出:
     Library version: 0.24 (git tag: v0.24) Compiled with backends: local xml ip usb serial Available contexts: 0: 0456:b673 (Analog Devices PlutoSDR (ADALM-PLUTO)), serial=a4d003ea [usb:1.4.4] 

2. GNURadio环境配置

GNURadio是SDR开发的核心工具链,我们使用PyBOMBS进行安装可以避免依赖问题:

sudo apt-get install -y git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 liblog4cpp5-dev libzmq3-dev 

接着安装PyBOMBS:

git clone --recursive https://github.com/gnuradio/pybombs.git cd pybombs sudo python3 setup.py install pybombs auto-config pybombs recipes add-defaults 

创建GNURadio环境(这需要较长时间):

mkdir ~/gr cd ~/gr pybombs prefix init -a default pybombs install gnuradio 

安装完成后,通过以下命令启动GNURadio Companion:

source ~/gr/setup_env.sh gnuradio-companion 

3. FM接收流图搭建

打开GNURadio Companion后,按Ctrl+N新建流图。我们将使用以下关键模块构建FM收音机:

模块 参数设置 作用
Osmocom Source Ch0: Frequency=98.0e6 (当地FM频率) 接收射频信号
Low Pass Filter Cutoff Freq=75e3, Transition Width=25e3 滤除高频噪声
WBFM Receive Quadrature Rate=250e3, Audio Decimation=10 FM解调
Audio Sink Sample Rate=48e3 输出到扬声器

完整的流图连接顺序应该是:

  1. Osmocom Source → Low Pass Filter
  2. Low Pass Filter → WBFM Receive
  3. WBFM Receive → Audio Sink

> 提示:双击模块可以调整参数。如果听到杂音,尝试微调频率(±0.1MHz)并确保Low Pass Filter设置正确。

4. 常见问题排查

问题1:找不到PlutoSDR设备

  • 检查lsusb输出中是否有"Analog Devices"设备
  • 尝试重新插拔USB线
  • 运行iio_info -s确认设备识别

问题2:GNURadio流图报错

gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.9.0.0 built-in source types: file fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy airspyhf soapy redpitaya [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_; UHD_3.15.0.0-3build1 No supported devices found. 

解决方法:

sudo apt-get install gr-iio 

问题3:听到镜像频率干扰 这是PlutoSDR的常见问题,需要在流图中添加额外的滤波:

  1. 在Osmocom Source后添加Frequency Xlating FIR Filter
  2. 设置Decimation=4, Taps=firdes.low_pass(1, samp_rate, 75e3, 25e3)

5. 进阶优化技巧

当基本功能实现后,可以尝试以下优化:

  1. 添加频谱显示
    • 插入QT GUI Frequency Sink模块
    • 设置带宽=2MHz, Ref Level=0
  2. 多电台预设
    import numpy as np stations = { '音乐台': 88.7e6, '新闻台': 93.5e6, '交通台': 103.9e6 } 
  3. 录音功能
    • 添加File Sink模块
    • 设置文件类型为.wav
    • 连接WBFM Receive的输出
  4. 自动增益控制
    self.connect((self.analog_agc_xx_0, 0), (self.blocks_multiply_const_vxx_0, 0)) 

完成这些步骤后,你应该已经能听到清晰的FM广播了。记得保存你的流图(.grc文件),下次可以直接加载使用。

小讯
上一篇 2026-04-19 20:18
下一篇 2026-04-19 20:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/271517.html