【发布时间】:2021-11-28 23:30:54
【问题描述】:
我正在尝试在 gnuradio 中实现一个块。它必须向输出发送消息并控制信号源块的频率。该消息是一个 pmt 对,其中包含 cdr 字段中的频率值。当我将它放入配对时,它的精度会降低很多。例如,使用此代码
import numpy as np
import pmt
freqval = np.float64(123494235.48994166)
msg = pmt.cons(pmt.intern("freq"), pmt.to_pmt(freqval))
print("freqval : ", freqval)
print("msg : ", msg)
freqval = np.float64(123.49423548994166)
msg = pmt.cons(pmt.intern("freq"), pmt.to_pmt(freqval))
print("freqval : ", freqval)
print("msg : ", msg)
我明白了
freqval : 123494235.48994166
msg : (freq . 1.23494e+08)
freqval : 123.49423548994166
msg : (freq . 123.494)
虽然我希望 msg 中的值与 freqval 中包含的值相同。 我试图用 from_float() 和 from_double() 替换 to_pmt(),但没有任何改变,并将值设为字符串,但 gnuradio 引发警告
gr::log :WARN: sig_source0 - frequency value needs to be a number
有没有办法改变 pmt 对值的精度?
【问题讨论】:
标签: python python-3.x numpy gnuradio