使用 RasperryPi 解码 FM 频率的声音

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

rtl_fm 是 rtl_sdr 包中的实用程序之一,用于将电视加密狗用作 SDR。如果您需要更多信息,请前往 此处

Direwolf 是一种基于声卡的数据包调制解调器。

根据 Direwolf 文档,它支持使用 rtl_fm 作为输入,所以我想我应该看看如何让它们一起运行。

我以前在我的 Pi 上使用过 rtl_sdr 和 rtl_tcp,但不是 rtl_fm,所以首先要让它工作。

要从 rtl_fm 播放流,您需要通过管道传输到某个音频应用程序中。这与冰原狼读取流的方式相同。按照 rtl_sdr 页面上的建议,此命令适用于 96.9MHz 的本地广播电台:


 rtl_fm -f 96.9M -M wbfm -s 200000 -r 48000 | play -r 48000 -t s16 -L -c 1  -

我不确定所有这些选项是什么,但关键选项似乎是 -s 用于采样率,-r 用于分辨率。 -r 值需要在 rtl_fm 端和播放端匹配。

现在在 Raspbian 上安装冰原狼:

– 根据用户指南,首先安装 libasound-dev:


 rtl_fm -f 96.9M -M wbfm -s 200000 -r 48000 | play -r 48000 -t s16 -L -c 1  -

– 从以下位置下载源 zip: https://home.comcast.net/~wb2osz/site/ ?/page/Download/

– 解压并 cd 到 direwolf 文件夹

– 制作:


 rtl_fm -f 96.9M -M wbfm -s 200000 -r 48000 | play -r 48000 -t s16 -L -c 1  -

在这一点上,我让 Pi 上的 rtl_fm 正常工作,并且在通过 USB 声卡解码来自 2m 无线电输入的音频输入时,冰原狼工作得很好。将两者结合起来虽然给我带来了问题。

我不认为即使使用外部 1/4wave 2m 天线,我也无法在 RTL 棒上的 2m 上获得足够强的接收信号。

这是命令的组合,rtl_fm,管道进入 Direwolf:


 rtl_fm -f 96.9M -M wbfm -s 200000 -r 48000 | play -r 48000 -t s16 -L -c 1  -

我已经允许在这张 RTL 卡上调整偏移 ppm,但也许我计算错了?

无论如何,由于 Pi 上的 Direwolf 本身运行良好,而我需要一个小型数据包项目能够解码 Pi 上的数据包,我将暂时搁置 rtl_fm 并单独使用 Direwolf .

相关文章