【问题标题】:How to pipe I/Q data in Linux如何在 Linux 中通过管道传输 I/Q 数据
【发布时间】:2014-12-23 18:02:16
【问题描述】:

我正在开始我的项目,该项目只是从 SDR Radio 软件(如 GNU Radio)读取 I/Q 数据,作为我自己的应用程序的输入。我考虑过使用管道命令来做到这一点,但在这种情况下真的不知道如何使用它。另一个想法是直接从声卡获取 I/Q 数据。

我想问您获取这些数据的最有效方法是什么。谢谢。

【问题讨论】:

  • 如果您使用的是便宜的 RTL 加密狗,您可以使用 rtl_sdr 进行记录,使用任何方式(ftp、ssh 等)复制文件,或者直接读取文件或转换文件以供使用使用 gnu radio、gqrx 等。参见 stackoverflow.com/questions/25587959/… --- 也可参见 ham.stackexchange.com/questions/2113/…
  • 谢谢我去看看:)
  • 如果您需要通过网络移动 I/Q 数据,我建议您使用有线连接。此外,虽然工作量更大,但使用 UDP 可能比当前基于 TCP 的解决方案更优雅、更快。原因是如果你想实时收听,并且你错过了一些 I/Q 样本,最好播放一点噪音或垃圾而不是落后于数据速率。 UDP被打包,到达或没有到达。 TCP 创建有序流,并以延迟为代价重试丢失的数据包。但是 TCP 是高度可靠的,所以大多数传输都是基于它的。
  • 我真的不需要通过 TCP/UDP 通过网络传输它。我需要的是通过我的应用程序在同一台机器上读取 I/Q,该应用程序旨在决定在所选频率上使用哪种调制。例如,我想知道在 98.5 MHz 上使用什么调制。

标签: linux pipe radio gnuradio


【解决方案1】:

命名管道是一种非常常见的方法。这个概念很简单。首先,使用 mkfifo 命令创建一个命名管道:

$ mkfifo my_named_pipe
$ ls -l
prw-rw-r-- 1 user user    0 Dec 16 10:04 my_named_pipe

如您所见,有一个类似文件的新东西,带有 'p' 标志。

接下来,配置您的 GNU Radio 应用程序以写入此管道(即使用文件接收器或文件描述符接收器)。 然后,您需要做的就是配置您的应用程序以从该文件中读取。请注意,GNU Radio 应用程序和您的应用程序需要同时运行。

当然,您可以考虑在 GNU Radio 中简单地编写您的应用程序。使用 Python 块,很容易上手。

【讨论】:

    猜你喜欢
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多