0

我正在尝试跟踪和分析由于使用 GNU Radio(也使用 Ettus USRP)的频道变化而导致的接收信号的变化。我想使用 GNU Radio 编写一个程序,以便能够跟踪接收到的信号的变化。

我想跟踪的内容包括(但不限于):

  • 中心频率的变化
  • 接收功率的变化
  • 带宽变化
  • 功率尖峰

最终,我很想跟踪非常小的变化(即使是最小的变化)。

有人知道这是否可能吗?如果是这样,我该如何开始,我在哪里可以找到这方面的信息?另外,这种类型的信息是否可以在基础 C++ 层中获得,或者我可以通过上层 python 获得它?

谢谢。

4

1 回答 1

0

如果您想在 gnuradio 中进行分析,则需要通过将信号处理块放在一起来完成。http://gnuradio.org/doc/doxygen/modules.html中给出了可用块的列表。

对于接收功率的简单情况,有一个 rms_cf 块,它看起来像是将复数流转换为代表 rms 功率的浮点流。然后,您可以将它们与Integrate_ff 块相加,然后输出到文件中。

例如

from gnuradio import gr

incoming_signal = ???
alpha = ???
signal_to_power = gr.rms_cf(alpha) # I have no idea what alpha means here :(.
sumup = gr.integrate_ff(10000) # Decimate by factor of 10000
dst = gr.file_sink_f(gr.sizeof_float, "the_file_name")
tb = gr.top_block()
tb.connect(incoming_signal, signal_to_power, sumup, dst)
tb.run()

对于中心频率和带宽,也许您可​​以将一堆带通滤波器放在一起,查看感兴趣的频率范围的各个部分中包含的功率,然后返回您想要的信息。查看可用块的列表。

于 2011-02-24T02:14:20.577 回答