【GNURadio RTL-SDR】双RTL-SDR信号源的FM调频广播接收机

news/2024/10/31 3:31:20/

文章目录

  • 1. 前言
  • 2. 实验过程
    • 2.1 制作流图
    • 2.2 RTL-SDR的设备参数


1. 前言

两个RTL-SDR的dongle“电视棒”,芯片 RTL2832U + R820T ,淘宝50左右那种能收FM和我国DTMB频段,想都接到同一台电脑去用软件无线电(GNURadio)的方式收多个FM调频广播信号。

2. 实验过程

在谷歌搜了不少类似内容,没有标准答案,加上受到了这里的复制粘贴的启发:
软件无线电-它如何工作? 第4部分 中的 多频道接收 部分(单独一个RTL-SDR信号源)
多频道接收
按照刚开始用GNURadio的时候作为实验用的简单宽带FM收音机(找不到图出处,能正常收听):
单个RTL-SDR设备接收FM调频广播

  • RTL-SDR Source :把RTL-SDR设备(电视棒)作为接收信号的设备,可设置接收频率、各种增益等参数
  • QT GUI SInk : 类似示波器,也可以砍掉该模块,不影响FM广播接收机工作
  • QT GUI Chooser(samp_rate):采样率,单选按钮组合,一般选2M
  • QT GUI Range(RF_GAIN):射频增益的值的调整,横向拖动框
  • QT GUI Range(freq):接收频率的值的调整,横向拖动框
  • QT GUI Range(volume):播放接收到的广播信号的音量的值的调整,横向拖动框,一般是1
  • Audio Sink 模块,在电脑上播放接收到的广播信号。
  • Wav File Sink 模块,将接收到的广播信号录制为WAV文件,采样率48KHz。

在GNURadio运行,看GNU的控制台的输出:能正常接收FM广播频率

#0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Exact sample rate is: 2000000.052982 Hz

2.1 制作流图

直接复制粘贴出来第二个RTL-SDR信号源的接收信号处理模块路线:
把射频增益RF_GAIN变成固定值(variable)37.2;
采样率samp_rate变为固定值(variable)2e6(2M);
独立出来两个接收频率:freq_1 和 freq_2,都有横向的滚动条可以改变值;
于是:
双设备接收FM调频广播
运行界面:够简单,只有两个频率可以调
在这里插入图片描述

电脑插上两个电视棒,在GNURadio运行这个流图,发现只能听见一个频率,
查看GNURadio控制台打印:

Using device #0 Generic RTL2832U OEM
usb_open error -3
Please fix the device permissions, e.g. by installing the udev rules file rtl-sdr.rulesFATAL: Failed to open rtlsdr device.Trying to fill up 1 missing channel(s) with null source(s).
This is being done to prevent the application from crashing
due to gnuradio bug #528.

使用设备 #0 Generic RTL2832U OEM
USB打开错误?是不是读取rtlsdr设备失败?
试图用空的信号源去填充一个丢失的频道,防止本应用因为gnuradio的bug而导致崩溃。

2.2 RTL-SDR的设备参数

去翻看模块 RTL-SDR Source 的说明文档,双击模块 RTL-SDR Source - Document:
这里有个设备参数 Device Arguments

  • Device Arguments:
    The device argument is a comma delimited string used to locate devices on your system. Device arguments for multiple devices may be given by separating them with a space.
    Use the device id or name/serial (if applicable) to specify a certain device or list of devices. If left blank, the first device found will be used.

黑体字关键:设备参数字符串用于定位系统中的RTL-SDR设备。同时使用多个RTL-SDR设备时,要填入设备ID或设备名称/序列号,来保证一个确认的设备,或一个设备表。若 Device Arguments 留空不填,则默认使用第一个找到的设备。

此段下面的Examples例子里,发现 rtl=0 和 rtl=1 这些:

  rtl=serial_number ...rtl=0[,rtl_xtal=28.8e6][,tuner_xtal=28.8e6] ...rtl=1[,buffers=32][,buflen=N*512] ...rtl=2[,direct_samp=0|1|2][,offset_tune=0|1][,bias=0|1] ...

回头看单个RTL-SDR信号源的流图的运行GNU控制台输出:

Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner

设备标识符/标志从0开始咯?0-based?

于是:
在第一个 RTL-SDR Source模块 的 Device Arguments 栏写入:rtl=0
在第二个 RTL-SDR Source模块 的 Device Arguments 栏写入:rtl=1
运行,正常,能听到两个频率的声音了!
此时GNU控制台输出:

gr-osmosdr c653754d (0.1.5git) gnuradio 3.7.12.0
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf airspy redpitaya 
gr-osmosdr c653754d (0.1.5git) gnuradio 3.7.12.0
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf airspy redpitaya 
Using device #1 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Exact sample rate is: 2000000.052982 Hz
[R82XX] PLL not locked!gr-osmosdr c653754d (0.1.5git) gnuradio 3.7.12.0
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf airspy redpitaya 
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Exact sample rate is: 2000000.052982 Hz
[R82XX] PLL not locked!
INFO: Audio sink arch: windows
INFO: Audio sink arch: windows
gr::pagesize: no info; setting pagesize = 4096

注意这两句:

Using device #0 Realtek RTL2838UHIDIR SN: 00000001
和
Using device #1 Realtek RTL2838UHIDIR SN: 00000001

说明读取接上的设备 #0 和 #1 正确,我们填入的设备参数OK。

另:
继续实验,在其中一个 RTL-SDR Source 换成填入参数 rtl=2 的话,GNU控制台:

FATAL: Wrong rtlsdr device index given.

说是给错了RTL-SDR设备的标志索引,于是只能听见一个频率的声音,正确。


http://www.ppmy.cn/news/470715.html

相关文章

FM信号测试软件,手机中FM调频性能测试方法简介

原标题:手机中FM调频性能测试方法简介 手机已经成为人们非常重要的通讯工具,相应手机整合的功能也愈来愈多。目前市面上的手机基本上都支持FM收音机功能,而FM收音机性能则主要是通过 、接收频带宽度、解调输出信噪比、解调输出失真度、接收解调输出幅度等指标来给予衡量,摩…

隧道FM调频广播覆盖技术方案

隧道FM调频广播覆盖解决方案详细描述了隧道广播覆盖的技术原理,主要从隧道FM调频广播覆盖的设备组成、信号流程、关键技术等几方面进行描述。 隧道FM调频广播覆盖系统主要由信号选频单元、光纤传输单元、直放站(远端机)、泄/露电缆与天馈系统…

FIR 基础应用 - FM 调频波调制解调(FIR 低通滤波)

本文链接:https://blog.csdn.net/qq_46621272/article/details/125337119 FIR 基础应用 - FM 调频波调制解调(FIR 低通滤波) 文章目录 前言一、 调频波调制1. fm_modulation_dds 模块逻辑框图2. fm_modulation_dds.v verilog 代码 二、 调频波解调1. fm_demodulatio…

地下停车场FM调频广播覆盖方案

地下停车场FM调频广播覆盖方案 北京海特伟业科技有限公司 文/任洪卓 发布时间:2022-06-05 一、项目需求 我国的调频广播传输采用88-108MHz频段,只能在直视和无阻挡的情况下传播,因此地下停车场接收调频广播信号很差,有些甚至…

C++ 教程(16)——字符串

C 字符串 C 提供了以下两种类型的字符串表示形式: C 风格字符串C 引入的 string 类类型 C 风格字符串 C 风格的字符串起源于 C 语言,并在 C 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾…

[转载]无线通信系统中的调制解调基础(一):AM和FM

原文地址:无线通信系统中的调制解调基础(一):AM和FM 作者:逝者如云 第一部分解释了调幅(AM)和调频(FM)的基础,并阐述了优点和缺点。第二部分解析了频移键控&a…

北京调频(FM)无线广播发射频率/频道表 (转载)

发射频率(兆赫)节目省区县发射台名发射功率(千瓦)91.5 中国国际广播电台轻松调频北京市市辖区海淀区中央广播电视发射台1088.7 中国国际广播电台劲曲调频北京市市辖区海淀区中央广播电视发射台1090.5 中国国际广播电台环球资讯广播北京市市辖区海淀区中央广播电视发射台3100.6 …

【Matter】如何在Linux平台下测试Matter应用级通信(虚拟设备)

如何在Linux平台下测试Matter应用级通信(虚拟设备) 准备工作 1. 递归克隆Matter仓库 执行如下命令: git clone --recurse-submodules gitgithub.com:project-chip/connectedhomeip.git如果克隆过程中发生报错,请执行如下命令来同步子模块:…