問題タブ [gnuradio-companion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - カスタム ブロックの問題 GNU RADIO
GNU Radio のフローグラフに問題があります。私のアプリケーションではネイティブ ブロックがうまく機能しなかったため、Delay ブロックとしてカスタム ブロックを作成しました。カスタム ブロックの前に UHD ソースがあります。4M のサンプルレートで動作しています。しかし、シミュレーションを開始すると、オーバーフロー ("O") が生成されます。UHD ソースの出力をファイルに保存し、「オフライン」モードでシミュレーションを再度再生すると、オーバーフローのエラーが発生しないため、これは奇妙だと思います。つまり、「オンライン」モードで作業しているときだけ問題が発生します。UHD ソースで以前に保存されたファイルではなく、UHD ソースで作業している場合のみ。
Delay_amostra_sync ブロック コード:
numpy をインポート
gnuradio import grから
class Delay_amostra_sync(gr.sync_block): """ ブロック Delay_amostra_sync の docstring """ def init (self, var): gr.sync_block. init (self, name="Delay_amostra_sync", in_sig=[numpy.complex64], out_sig=[numpy.complex64]) self.var = var self.cont = 0
self.buffer = numpy.array([])
self.c = 1
return len(output_items[0])
gnuradio-companion - 信号ビット回復
GRCの使用は初めてです。fsk デバイスからデータをデコードしようとしています。rtl_433 -a -t (I/Q 2 チャネル uint8) でデータを取得し、ノイズを除去し、直交復調、ローパス フィルター、中心波、バイナリ スライスを行いました。だから私はこれを得る:
ここから始めて、どうすればビット変換/パケットを取得できますか? クロックの回復も試みましたが成功しませんでした (取得したデータはグラフと一致しません。
ここに私のgrcフローがあります(クロック回復変数もあります)
PS 最初の「ビット」の前に取得したデータをカットするにはどうすればよいですか? ここで私の出力 Demod と Binary slicing を比較します。バイナリをエクスポートすると、多くの 0 が表示されます (シグナルの前の長い行が原因です)。そしてその後...
ありがとう
signal-processing - control_loop を使用した Muller および Mueller クロック リカバリの再実装
現在、シンボル時間回復ブロックを実装しています。アイデアは、さまざまな TED (Gardner、ゼロクロッシング、Early-Late、Maximum-likelihood など) を選択できるようにすることです。M&M リカバリのようなブロックでは、ループのゲイン パラメータが明示的に表現され (gain_omega と gain_mu)、正しく設定するのが難しい場合があります。ただし、contro_loop クラスの方が便利です (ループ特性は「ループ帯域幅」と「ダンピング ファクター」(ゼータ) で指定できます)。そのため、私の最初のテストは、制御ループを使用して MM クロック リカバリを再実装することから始まりました。このブロックの仕事関数を以下に示します (コメントは私のものです)
これが私のコードです。まず、制御ループがコンストラクターで初期化されます
まず最初に、シンボル タイミングの回復、特に位相と周波数の範囲 (ラッピングに使用される) における pll (上記の control_loop) に関するいくつかの疑問を解消したいと思います。Costas ループから類推すると、キャリア位相は -2pi と +2pi の間でラップされ、周波数オフセットは -1 と +1 の間で追跡されます。その理由は簡単にわかります。残念ながら、シンボル復元における位相と周波数の追跡について理解できません。m&m ブロックから、周波数は (1+omega_relative_limit) と (1 - omega_relative_limit)*omega の間で追跡されます。ここで、omega は単にシンボルあたりのサンプル数です。位相は 0 とオメガの間で追跡されます。これがなぜそうなのか、なぜ m&m ブロックがそれをラップしないのか理解できません。ここでのアイデアは大歓迎です。そして、ここに私の仕事関数があります
GFSK 復調器でブロックを使用しようとしましたが、このエラーが発生しました
このエラーに関する最初の Google 検索は、このエラーが API の下のどこかに発生するため、何らかの形でスケジューラを「悪用」していることを示唆しています。制御ループからの d_omega と d_mu の計算は少し単純だと思いますが、残念ながら他の方法は知りません。もう 1 つの方法は、モジュロ 1 カウンター (インクリメントまたはデクリメント) を使用することですが、最初にこのオプションを検討したいと思います。
gnuradio - GNU Radio とサウンドカードを使用してデータを送信する方法
私は、コンピューターのサウンドカード、LED、フォトダイオード、およびレンズを使用してデータを無線で送信する Free-Space-Optics トランシーバーに取り組んでいます。現在、GNU Radio を使用して 2 つのトランシーバーを接続しようとしています。私が知っている GNU Radio のチュートリアルと例は、すべて USB 無線デバイスをカバーしています。
サウンドカードを介したデータ転送に Audio Frequency Shift Keying を使用する Minimodem というソフトウェアを既に試しました。GNU Radio は、Automatic Gain Control (光や気象条件による信号の変更に役立つ) などの便利なブロックを多数提供しているため、実験に使用したいと考えています。
インターフェイスとしてサウンドカードを使用すると、達成可能なデータレートが制限されることを理解しています。
2 台のコンピューターのサウンドカード間のデータ転送を可能にする、GNU Radio コンパニオンで合理的なフロー グラフをセットアップする方法についてアドバイスをいただければ幸いです。ありがとうございました!