如何在 gnuradio 中实现 4 象限 atan2 函数

How to implement a 4 quadrant atan2 function in gnuradio

我最近开始尝试使用 SDR 并一直在使用 GNU Radio 平台。

更具体地说是 'gnuradio-companion' 图形界面。

我需要确定一个 4 象限反正切函数,运行 遇到了一些麻烦。在 'GRC' 文件中,我已经能够成功地评估 ATAN 函数,但是,虽然 python 支持 ATAN2,但我无法弄清楚如何实现这个函数。

我读到 GNU Radio 中包含一个名为 fast_atan2f 的查找 table 函数,但我不知道是否可以从标准 gnuradio-companion 设置中包含的块中访问它.我能够从常量源块中访问 python 表达式 'math.atan2(arg1,arg2)' 但我不需要将其作为常量值,我正在寻找具有两个浮点输入(或一个单个复数输入)将适合流程图以正确评估 ATAN2 函数。

我提供了一个示例 'GRC' 文件,如果我的描述不清楚,它可能有助于说明问题。

link to the GNU Radio companion example file

gnuradio.blocks.complex_to_argComplex to Arg in GRC)是一个atan2操作。

如果您需要两个单独的浮点输入,如您所描述的,那么只需在其前面添加一个 Float To Complex 块。

根据您的具体应用,您可能还对gnuradio.analog.quadrature_demod(GRC 中的Quadrature Demod)感兴趣。该块基本上产生 atan2 的 导数 ,但在 180° 或 360° 处没有任何不连续性。这适用于例如正在解调 FM 信号。