问题标签 [gnuradio-companion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
signal-processing - 在 GNU RADIO 上使用辅助电缆接收数据
我在两台笔记本电脑之间使用辅助电缆和 GNU RADIO 传输和接收数据。
我已经使用 PSK mod 块实现了 DQPSK。
问题是,在接收时我必须提供延迟,一些整数值,例如 0,1,2 等。
每次都不一样。
有没有办法动态检查正确的延迟值或针对这种情况的任何其他解决方法?
我写了“开始”。在数据传输的开始和“结束”。在最后。
我必须为这个项目提供一个演示,我不想在运行时手动更改延迟。
我在 GNU RADIO 中找不到文件接收器的 .cc 文件,我可以根据我的要求更改 C++ 代码,但没有这样的文件。
下面是接收端的 grc 文件截图。
任何帮助将不胜感激。
gnuradio - 使用 GNU Radio 加扰器和解扰器
我正在尝试使用 GNU Radio 解扰块。我有一个由第三方编写的块,需要解扰。使用的多项式是 x 17 + x 12 + 1。
代码如下
现在我想使用 GNU Radio 解扰器块。从
这个链接,我计算了解扰参数如下:Mask-0x0210001;种子 - 0x00; 长度 - 24。
不幸的是,它不能作为上面显示的代码中的对应物。有人可以就为什么这不起作用提供指导吗?
python - 在 GNU Radio 中通过 XMLRPC 服务器块支持在运行时更改变量 `payloadmod=digital.constellation_qpsk()`
我在更改payloadmod
GNURadio 中的变量时遇到问题。我正在远程运行 GNURadio 并在运行时更改变量,这由 XMLRPC Server 块支持。
首先,我可以使用以下 XML 的变体远程轻松地更改运行时场景中的freq
、packetlen
、bandwidth
、ipaddress
、gain
等变量:(确保set_
在每个变量名称之前指定)
但是,我遇到了set_payloadmod
变量问题。
在 gnuradio-companion 中,我设置了以下变量:
我发送以下 XML 来更改payloadmod
变量。
我收到以下错误。
它不喜欢 XML 字符串标记。我尝试将 XML 标记更改为以下内容,但未成功:
在 gnuradio-companion 中,我还尝试创建两个变量,如下所示:
eval(str(……).replace("'","")
in payloadmod 变量将从使用以下 XML 传入的 payloadmodfrnt 变量字符串中删除单引号:
payloadmodfrnt
和中的变量都会发生变化payloadmod
(可在 GUI 中查看)。但是,payloadmod 变量不会更改为 bpsk。它将继续传输 qpsk 而不是 bpsk(我可以看到接收器上的星座没有改变)。
返回/输入或需要按下某些东西。基本上需要踢出有效载荷变量或使其改变。或者(最简单的选项),我需要正确的 XML 标签来正确更改 payloadmod 变量?
gnuradio - gr-osmosdr:加载“osmosdr_sink”“osmosdr_source”“rtlsdr_source”时崩溃
我从源代码安装了 gnuradio(3.7.9.2),没关系,并从源代码安装了rtl-sdr和gr-osmosdr。rtl-sdr 没问题。当我运行cmake ../
for gr-osmosdr 时,它的输出如下:
我运行那些:
一切都好。当我gnuradio-companion
在 CLI 中运行时,它会输出:
当我将 RTL-SDR 源拖到流程图时,它会输出:
并退出。
为什么 gr-osmosdr 破坏了 gnuradio-companion?
gnuradio - 在 GNURadio 块之间移动的数据大小
我正在尝试构建一个基本的 GNURadio 示例,其中我有一个包含一些文本的文本文件,我想向它添加一个序言,以便能够检测接收器处数据的开头。接下来我想用 GMSK 调制它并传输它(用一个 USRP)。在接收器上,另一个 USRP 将对接收到的信号进行采样并将其传递给 GMSK 解调模块,然后相关器将搜索前导码,将其删除,并将文本数据传递到文件接收器,并存储在一个文件接收器中。文本文件。
假设相移和频移得到纠正,我对这将如何工作的理解是 GNURadio 将获取文本文件中的一大块数据并将其传递到将添加前导码的下一个块,然后 GMSK 将调制此序列并将其发送到 USRP(这将重复,直到文本文件中的所有文本都被读取)。我关心的是接收器,接收块如何知道调度程序在每个“循环”上传递的数据的大小(长度)(即,来自文本文件的字节数+前导码的长度)?因为如果接收器的调度程序向块传递的符号少于文本块 + 前导码的长度,那么我可能能够检测到前导码,但我只会收到发送的部分文本(连同该前导码和那个特定的顺序),
不幸的是,我找不到这方面的文档,所以我可能遗漏了一些东西。我的主要问题是:如何使调度程序获取足够数量的符号以便能够找到前导码并提取随附的文本字节,但同时允许块为下一个序列重复相同的步骤文字+序言?
gnuradio-companion - GNURadio:重复选项设置为“否”时未收到文件
我已经构建了一个简单的 GNURadio 项目,我试图发送一个简单的文本文件(称为 txF.txt),其中包含“大家好!”这句话。以下是我使用的块:
文件源 -> 数据包编码器 -> GMSK Mod -> Throuttle -> GMSK 解调 -> 数据包解码器 -> 文件接收器
区块设置如下:
文件来源:txF.txt,重复 = 是
数据包编码器:样本/符号 = 1,位/符号 = 1
GMSK Mod:样本/符号 = 4
文件接收器:rxF.txt,无缓冲 = 开
当我将源文件中的重复选项设置为“是”时,我得到“大家好!” 在接收到的文件 rxF.txt 中重复多次。但是,当我将源文件中的重复选项设置为“否”时,会创建接收到的文件“rxF.txt”,但其中不包含任何内容(无论我在停止项目之前等待多长时间) .
当我用 .png 照片替换源和汇块中的文本文件并将重复选项设置为“否”时,我只收到部分源照片(通常超过照片的四分之三),而其余部分永远不会收到照片(无论我等多久)。
- 为什么会这样?
- 有没有一种方法可以一次发送任何文件(文本或照片)而无需重复发送,即将重复选项设置为“否”但接收源文件一次?
- 另外,有没有办法在完全收到源文件时停止项目?
gnuradio - GNU Radio:为 Python 块设置最小输入/输出缓冲区大小
我正在用 Python 编写自己的 GNU Radio 块,并且我想为该块的输入和输出缓冲区(或其中一个)设置最小缓冲区大小。
有没有可以做到这一点的函数或代码?
python - 如何测量信号的 dB 电平?
有人可以帮我测量接收到的信号的强度/分贝电平,然后再将其传递到解调器块吗?
我需要将信号的 dB 电平与用户定义的“阈值”电平进行比较。原因在下面解释。
使用 GNU Radio Companion(和一些非常基本的 python)我创建了一个程序,它允许用户创建两种类型的扫描,然后运行这些扫描。
频带扫描允许用户指定起始频率、终止频率和步进频率。用 Python 编写的函数告诉 SDR(HackRF One)调谐到起始频率(例如 90MHz),然后依次调谐所有步骤,直到达到终止频率(例如 110MHz)。步频定义了每个调谐步的频率距离。因此,如果步进频率为 50KHz,并且开始和停止频率如上所示,则扫描将从 90MHz、90.05MHz、90.10MHz、90.15MHz 等开始,直到达到停止频率。这工作正常。
频道扫描允许用户指定任意数量的离散频率进行扫描。例如 88.4MHz、98.9Mhz、102.5Mhz 和 103.8Mhz。同样,用 Python 编写的函数告诉 SDR 依次调谐到每个“通道”。这也很好用。
我创建了一个变量来存储用户定义的“阈值”值。用户可以通过使用 GNU RC 生成的 wxGUI FFT Sink 查看频谱来定义合适的阈值,观察本底噪声在垂直轴(Power dB)上的位置,在文本框中输入 dB 读数(例如 -45)并单击按钮设置阈值(将文本框值存储到阈值变量中)。简单的..
我需要做的是测量进入 FFT 接收器的信号的 dB 电平,以便我可以使用一些 python 来检查 SDR 当前调谐到的频率是否具有高于或低于定义阈值的射频能量。如果可以进行比较,那么我可以使扫描具有某些结果,例如将该频率添加到活动频率列表中,或者停止扫描以便用户可以收听信号等。
我在网络上做了很多很多事情,但找不到解决方案。我还尝试了来自 GNU RC 的许多不同的块,但我找不到一个或一个组合来允许我需要做的事情。
我是 GNU RC / SDR 新手,所以希望我遗漏了一些(不太)简单的东西。
谢谢。
gnuradio-companion - 两台计算机之间的 Gnuradio 流式传输?
有没有一种简单的方法可以使用标准块集在运行 GNUradio 的两台计算机之间实现通信?
我现在拥有的是这样的:
在 Linux 计算机上,GNUradio 正在运行并接收来自 Radio 外围设备的输入。在该计算机上,我可以在 WX 示波器上看到接收到的波形。我还可以使用滑块和输入框来更改接收器频率等内容。
我想做的是:
在 Windows 计算机上,我有 WX 示波器和滑块。当我移动滑块或更改输入框时,该数据被发送到 Linux,它仍在 Gnuradio 上运行无线电接收器。接收到的信号通过流返回窗口,并显示在 Windows 的 WX 示波器上。
其他地方有人建议使用 ZMQ 块,但是,当我尝试设置 PUSH/PULL 以将正弦波从 Linux 传输到 Windows 时,没有任何结果。推荐这种方法的人尝试了同样的方法,也无法让它工作,所以我认为这个块可能被打破了?
那么是否有任何替代块可以做我想做的事情?最好有一些有据可查的东西,并且可以在 GNUradio-companion 上找到。