0

GNU Radio (Ettus USRP も使用) を使用して、チャネルの変更による受信信号の変更を追跡および分析しようとしています。受信信号の変化を追跡できるように、GNU Radio を使用してプログラムを作成したいと考えています。

追跡したいものは次のとおりです (ただし、これらに限定されません)。

  • 中心周波数の変化
  • 受信電力の変化
  • 帯域幅の変化
  • パワースパイク

最終的には、非常に小さな変更 (たとえ最小の変更であっても) を追跡したいと考えています。

これが可能かどうか誰にもわかりますか?もしそうなら、どうすれば始められますか? また、これに関する情報はどこにありますか? また、このタイプの情報はベース C++ レイヤーで利用できますか、それとも上位の python レイヤーを介して取得できますか?

ありがとう。

4

1 に答える 1

0

gnuradio 内で分析を行いたい場合は、信号処理ブロックをまとめて行う必要があります。利用可能なブロックのリストはhttp://gnuradio.org/doc/doxygen/modules.htmlにあります。

受信電力の単純なケースでは、複素数のストリームを rms 電力を表す float のストリームに変換するように見える rms_cf ブロックがあります。次に、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 に答える