使用 gnuradio 中的文件将水龙头传递给过滤器

Passing taps to the filter using file in gnuradio

我正在尝试将 2000 次抽头传递给 gnuradio 中的 fft 滤波器。我如何读取文件并将其传递给 fft 过滤器 tap filed?

这是不可能的。但是,您可以使用 GRC 中可用的 Filter Taps 变量在流程图初始化时生成所需的抽头。在 FFT filter 块的 taps 字段传递变量的 ID 就完成了。

如果您的抽头非常具体并且无法从可用的过滤器抽头变量构造,您可以编辑生成的 python 文件并使用 python 数组来存储它们。

编辑: 正如@Marcus 指出的那样,您可以使用 numpy 从文件中加载拍子。只需使用 GRC 中的 Import 元素导入 numpy,然后使用 Variable 元素,使用 numpy.fromfile('filename') 加载所需的拍子。

我很幸运:

  1. 在 Matlab 中创建你的抽头矢量
  2. 如果 h 是带有水龙头的矢量,请按照以下说明将它们打印到文件中:
fileID = fopen('filter_taps.txt', 'w');`
fprintf(fileID, '[%5.3f]+', h);
fclose(fileID);
  1. 使用简单的文本编辑器打开文本文件并删除最后一个“+”

  2. 现在,转到 gnuradio-companion 并打开一个插值 FIR 滤波器块

  3. 突出显示并复制文本文件中的拍子 [0.00]+[0.01]+... 等(我使用 control+c)

  4. 在GRC FIR块的“taps”字段中,粘贴taps(我用的是control+v)

披露:我 运行 Matlab 在我的 Windows 笔记本电脑上,我 运行 GRC 在我的 Linux (Ubuntu) 笔记本电脑上。