如何减慢 GNU Radio 中的文件源?

Posted

技术标签:

【中文标题】如何减慢 GNU Radio 中的文件源?【英文标题】:How to slow down a file source in GNU Radio? 【发布时间】:2015-12-18 23:38:48 【问题描述】:

我正在尝试将 GNU Radio Companion 中输入文件中的字节解压缩为二进制比特流。我的问题是 Unpack K Bits 块以与文件源相同的采样率工作。因此,当字节 1 的第一个位被输出时,字节 2 已经被加载。如何减慢文件源或加快 Unpack K Bits 块的速度?有没有办法告诉 GNU Radio Companion 将文件源中的每个字节重复 8 次?

请注意,“打包后”显示的数据量是“打包前”的 4 倍。

【问题讨论】:

【参考方案1】:

我的问题是 Unpack K Bits 块以与文件源相同的采样率工作

不,它没有。 Unpack K Bits 是一个插值器块。在您的情况下,插值是 8。对于每个字节,都会产生 8 个新字节。

结果是对的,但是你的水槽的时间刻度是错误的。您必须在第二个GUI Time Sink 处更改采样率,以适应Unpack K Bits 之后的流程图的真实采样率。

所以应该是8*32e3,而不是32e3

【讨论】:

所以也许我在常见问题解答中遗漏的是“当遇到任何硬件系统之间的数据流时,我们必须确保所有重新采样完成时会导致相同的采样率”。或者换一种说法,我必须调整接收器的采样率,以匹配流图中其余部分的速率变化。【参考方案2】:

Manos 的回答很好,但我想补充一下:

对于刚刚接触到在样本层进行数字信号处理的人来说,这是一个常见的误解:

GNU Radio 本身没有采样率的概念。术语采样率仅由某些块使用,例如计算正弦的周期(在信号源的情况下:Period = f_signal/f_sample),或计算写在显示轴上的时​​间或频率(如您的情况)。

“减慢”是指“使计算机处理采样变慢”,但不会改变信号。

您需要做的就是将您希望显示接收器显示为时间单位的内容与您配置的内容相匹配。

【讨论】:

我完全同意马库斯。这是一个非常普遍的误解,我试图向 SDR 开发的新生澄清。也许我们可以在 GNU Radio 主页上提供一个教程指南? @Manos 我们应该。你能发邮件到 tutorials~AT~gnuradio.org 吗?我也应该坚持这一点,我认为我们应该 a) 在 gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials 的“Intro”和“Working With GRC”之间添加一个关于该原则的突出条目,以及 b) 更清楚地宣传这一点– 它仍然不是新用户主要发现的资源。 @Manos: 有 gnuradio.org/redmine/projects/gnuradio/wiki/… ,但我认为它可能需要扩展 我会看一下,我会用 cmets 发送电子邮件。

以上是关于如何减慢 GNU Radio 中的文件源?的主要内容,如果未能解决你的问题,请参考以下文章

C++ 中的 GNU Radio QT GUI 接收器

修改 UHD 代码以使用 GNU Radio

[SDR] GNU Radio 系列教程(十四) —— GNU Radio 低阶到高阶用法的分水岭 ZMQ 的使用详解

GNU Radio: Overview of the GNU Radio Scheduler

使用 GNU Radio 进行 FSK 解调

为啥我的自定义块两次进入 GNU Radio 中的 general_work() 函数?