RFワールド読者の掲示板U
 無線と高周波に関することを中心に、それ以外の話題も含めて、何でも書き込みOKの掲示板です。初めての方もネチケットを守って、お気軽にご参加下さい(^^)/
3 / 270 ツリー    ←次へ | 前へ→

RFワールドNo.41 動作確認2 初心者 20/5/20(水) 11:29 [添付]
Re:RFワールドNo.41 動作確認2 森榮 20/5/20(水) 17:01
Re:RFワールドNo.41 動作確認2 初心者 20/5/21(木) 12:33
Re:RFワールドNo.41 動作確認2 森榮 20/5/21(木) 13:25
Re:RFワールドNo.41 動作確認2 初心者 20/5/22(金) 10:27
Re:RFワールドNo.41 動作確認2 森榮 20/5/22(金) 11:47
Re:RFワールドNo.41 動作確認2 初心者 20/5/22(金) 17:21
Re:RFワールドNo.41 動作確認2 森榮 20/5/22(金) 18:37
Re:RFワールドNo.41 動作確認2 初心者 20/5/25(月) 9:27
Re:RFワールドNo.41 動作確認2 森榮 20/5/21(木) 21:59
Re:RFワールドNo.41 動作確認2 初心者 20/5/22(金) 9:58
Re:RFワールドNo.41 動作確認2 森榮 20/5/22(金) 11:50
Re:RFワールドNo.41 動作確認2 初心者 20/5/22(金) 17:45
Re:RFワールドNo.41 動作確認2 森榮 20/5/22(金) 18:58
Re:RFワールドNo.41 動作確認2 初心者 20/5/25(月) 9:29
Re:RFワールドNo.41 動作確認2 森榮 20/5/25(月) 21:22
Re:RFワールドNo.41 動作確認2 初心者 20/5/26(火) 11:53
Re:RFワールドNo.41 動作確認2 森榮 20/5/26(火) 17:48
Re:RFワールドNo.41 動作確認2 初心者 20/5/27(水) 18:20

RFワールドNo.41 動作確認2
 初心者  - 20/5/20(水) 11:29 -
RFワールドNo.41 96ページの動作確認として
送信基板のSW2を押し続ける事で常にインクリメント・データを送信して
受信基板ではパソコン用プログラムでhhmmss.datを書き出しています。

1Mバイトのhhmmss.datの中身を確認しますと1Mバイト中80バイトくらい
データが化けてます。化け方は少し法則があり、9b → ab や 2f → 3f の様になり、out_byte_data[7:0]の[5:4]部分です。

1シンボル中、out_byte_data[7:0]が4個出力されますが、化けるのは4個目です。SignalTapのスクリーンショットを投稿させて頂きます。
どの様な事が考えられますでしょうか?


それと教えて頂きたい点があります。
RFワールドNo.41 98ページのdemodulatorモジュールのaddr_romですが記述から
symbol_cntが240(3us)〜5359(67us)までいくとアドレスが0に戻る様な動きをします。
つまり、シンボル開始の0usからではなく、3usの位置から
波形メモリの先頭を読み出していく様ですが何故でしょうか?

また、積算はシンボル開始から約7us(7+offset)オフセットをとり
波形メモリの先頭位置3usからに対して約4usずらしてますが何故でしょうか?


■接続
送信基板TX-OUT == 簡易アッテネータ基板(同梱) == SMAケーブル(同梱) == 受信基板RX-IN == USBケーブル == PC

■同期チェック
1.送信基板のSW1を押し続けると受信基板のLED1が1秒くらいの周期で点滅、LED2は点灯(キャリア同期)
2.送信基板のSW2を押し続けると受信基板のLED1、LED2は点灯、LED3は短い周期で点滅
 →受信基板側のSMAケーブルと同軸端子の接続をゆるめてLED3の点滅がほぼ無くなる様に調整

■ファームウェア
送信基板:RFW42SのOFDM_QPSK_TX.sof
受信基板:RFW42SのOFDM_QPSK_RX.sof
添付画像【821_エラー位置.png : 213.1KB】
【821_エラー位置.png : 213.1KB】

引用なし

パスワード



37 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/20(水) 17:01 -
頒布基板で実験を進めてくださり、有難うございます。
前半の質問を取り急ぎ回答させていただきます。後半は、確認して追って回答させていただきます。

誌面の限られたページ数でOFDM変復調を説明するために、シンボル同期に簡易的な方式を使っています。絶妙な入力レベルに合わせないと、エラーレートが十分に下がらない欠点があります。多少エラーレートが高いことはご理解頂ければと思います。

私のほうの独自の検証で、シンボル同期を無線LANなどで実績のある相関方式を使うと、エラーレートが大幅に下がることを確認しております。

▼初心者さん:
>RFワールドNo.41 96ページの動作確認として
>送信基板のSW2を押し続ける事で常にインクリメント・データを送信して
>受信基板ではパソコン用プログラムでhhmmss.datを書き出しています。
>
>1Mバイトのhhmmss.datの中身を確認しますと1Mバイト中80バイトくらい
>データが化けてます。化け方は少し法則があり、9b → ab や 2f → 3f の様になり、out_byte_data[7:0]の[5:4]部分です。
>
>1シンボル中、out_byte_data[7:0]が4個出力されますが、化けるのは4個目です。SignalTapのスクリーンショットを投稿させて頂きます。
>どの様な事が考えられますでしょうか?
>
引用なし

パスワード


26 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/21(木) 12:33 -
お返事ありがとうございます。

絶妙な入力レベルの件ですが、有線接続ではなく、誌面の様なアンテナによる無線接続でも同様でしょうか?
こちらの有線接続による実験では、AGCが効いてないのかATT[4:0]が0のままでした。

多少エラーレートが高いのは、シンボル同期に簡易的な方式を使っているとの事で理解しました。恐縮ですが相関方式を教えて頂けないでしょうか?
(sync_symbol.vの入れ替えで可能でしょうか?)

後半の件ですが、ご説明よろしくお願い致します。
引用なし

パスワード


27 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/21(木) 13:25 -
ご確認有難うございます。

今回の実験の様子を拝見させていただきますと、有線接続でもっともシンボル同期が良好にできる入力レベルを探ってくださっていると思います。
1Mバイト中、80バイトエラーは、かなり優秀と思います。

無線接続でも同様になります。有線と違って、外来ノイズが多くなる分、入力レベル調整は、さらに難しくなると思われます。

相関方式として、1つの方式を、誌面に掲載させていただきましたので、ご参照いただければと思います。
複雑なシーケンス制御も入ってきますので、Verilogを書く難易度は上がりますが、ぜひチャレンジされてみてください。sync_symbol.vの入れ替えでOKと思います。
申し訳ありませんが、相関方式のVerilog提示や、詳細な解説は掲示板サポートの対象外とさせていただきたく思います。


▼初心者さん:
>お返事ありがとうございます。
>
> 絶妙な入力レベルの件ですが、有線接続ではなく、誌面の様なアンテナによる無線接続でも同様でしょうか?
>こちらの有線接続による実験では、AGCが効いてないのかATT[4:0]が0のままでした。
>
> 多少エラーレートが高いのは、シンボル同期に簡易的な方式を使っているとの事で理解しました。恐縮ですが相関方式を教えて頂けないでしょうか?
> (sync_symbol.vの入れ替えで可能でしょうか?)
>
> 後半の件ですが、ご説明よろしくお願い致します。
引用なし

パスワード


30 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/21(木) 21:59 -
ご質問の後半部分に回答させていただきます。

積分区間を7μ秒オフセットしている理由ですが、シンボルの開始直後は、
FIRフィルタなどを通過して波形が乱れていており、その部分を避けるためです。7μ秒遅延を調整いただくことで、エラーが改善する可能性はあります。もし宜しければ、お試してくださればと思います。

波形メモリの開始は3μ秒遅らせておりますが、上記と同じことを意図しておりました。しかしながら、冷静に考えますと、積分区間の調整のみで済む話で、波形メモリの開始タイミングを調整は適切ではないと思います。
読者様にも混乱を招きますし、(3μ秒の遅延により誤動作はしませんが)波形メモリの3μ秒遅延は適切ではないと思います。


▼初心者さん:
>
>それと教えて頂きたい点があります。
>RFワールドNo.41 98ページのdemodulatorモジュールのaddr_romですが記述から
>symbol_cntが240(3us)〜5359(67us)までいくとアドレスが0に戻る様な動きをします。
>つまり、シンボル開始の0usからではなく、3usの位置から
>波形メモリの先頭を読み出していく様ですが何故でしょうか?
>
>また、積算はシンボル開始から約7us(7+offset)オフセットをとり
>波形メモリの先頭位置3usからに対して約4usずらしてますが何故でしょうか?
>
>
>■接続
>送信基板TX-OUT == 簡易アッテネータ基板(同梱) == SMAケーブル(同梱) == 受信基板RX-IN == USBケーブル == PC
>
>■同期チェック
>1.送信基板のSW1を押し続けると受信基板のLED1が1秒くらいの周期で点滅、LED2は点灯(キャリア同期)
>2.送信基板のSW2を押し続けると受信基板のLED1、LED2は点灯、LED3は短い周期で点滅
> →受信基板側のSMAケーブルと同軸端子の接続をゆるめてLED3の点滅がほぼ無くなる様に調整
>
>■ファームウェア
>送信基板:RFW42SのOFDM_QPSK_TX.sof
>受信基板:RFW42SのOFDM_QPSK_RX.sof
引用なし

パスワード


22 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/22(金) 9:58 -
お返事ありがとうございます。

シンボル開始位置に対する積分区間の遅延理由の件、承知しました。
現状の7*80+7を6*80+7、3*80+7と調整してみましたが、6*80+7は変化なく、3*80+7はエラーが増える方向でした。


波形メモリの3us遅延は不要だけど誤動作はしないとの事で承知しました。

少し関連する話ですが、symbol_cntが5359の時、addr_romは5119で、次の5360の時、320になってますが、0に戻るが正しいでしょうか?
引用なし

パスワード


25 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/22(金) 10:27 -
お返事ありがとうございます。

有線接続によるデータ転送で1Mバイト中、80バイトのエラーは、かなり優秀との事で、そう言う物なのですね。

誌面写真のアンテナを使った場合、更に難しくなるとの事ですが、現状のファームウェアですと目安としてどれくらいの距離でデータを飛ばせて、エラー数はどれくらいでしょうか?


>相関方式として、1つの方式を、誌面に掲載させていただきましたので、ご参照いただければと思います。

こちらを参照させて頂きたいのですが、誌面とはRFワールドNo.41でしょうか?
引用なし

パスワード


24 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/22(金) 11:47 -
ご確認有難うございます。

無線伝播の場合、-40dBm入力で、10E-3程度のエラーレートが達成できれば、御の字と思います。相関方式のシンボル同期でないと実用には耐えないと思います。

相関方式の1手法を、RFワールドNo.41のp80に掲載させていただきました。

▼初心者さん:
>お返事ありがとうございます。
>
>有線接続によるデータ転送で1Mバイト中、80バイトのエラーは、かなり優秀との事で、そう言う物なのですね。
>
>誌面写真のアンテナを使った場合、更に難しくなるとの事ですが、現状のファームウェアですと目安としてどれくらいの距離でデータを飛ばせて、エラー数はどれくらいでしょうか?
>
>
>>相関方式として、1つの方式を、誌面に掲載させていただきましたので、ご参照いただければと思います。
>
>こちらを参照させて頂きたいのですが、誌面とはRFワールドNo.41でしょうか?
引用なし

パスワード


30 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/22(金) 11:50 -
積分区間を変えてみる実験をしてくださり、有難うございます。

波形メモリは、周期波形がピッタリ収まるように入っていますので、終点から始点にジャンプしても、波形が連続的につながるようになっています。

▼初心者さん:
>お返事ありがとうございます。
>
>シンボル開始位置に対する積分区間の遅延理由の件、承知しました。
>現状の7*80+7を6*80+7、3*80+7と調整してみましたが、6*80+7は変化なく、3*80+7はエラーが増える方向でした。
>
>
>波形メモリの3us遅延は不要だけど誤動作はしないとの事で承知しました。
>
>少し関連する話ですが、symbol_cntが5359の時、addr_romは5119で、次の5360の時、320になってますが、0に戻るが正しいでしょうか?
引用なし

パスワード


24 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/22(金) 17:21 -
お返事ありがとうございます。

無線伝播の目安の件、承知しました。


>相関方式の1手法を、RFワールドNo.41のp80に掲載させていただきました。

RFワールドNo.41の物は、簡易方式との事でしたが、こちらも相関方式の1手法という事で理解しました。

実用に耐えれるシンボル同期を作ってみたいですが、参考になる書籍やWEBなど御座いませんか?
引用なし

パスワード


25 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/22(金) 17:45 -
お返事ありがとうございます。

>波形メモリは、周期波形がピッタリ収まるように入っていますので、終点から始点にジャンプしても、波形が連続的につながるようになっています。

波形メモリは0〜5119番地まで入っていますので、58ページ図6.6のイメージで最後のアドレス5119番地の次はアドレス0番地になるのが正しいと理解してます。
ですが、98ページに記載のaddr_romですと、アドレス5119番地の次が320番地になってまして0番地ではないですが、これは間違いではないでしょうか?

symbol_cntが5359の場合、addr_rom = 15*320 + (5359-3*80)/16 = 5119
symbol_cntが5360の場合、addr_rom = 0*320 + (5360-3*80)/16 = 320
引用なし

パスワード


30 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/22(金) 18:37 -
申し訳ございません、相互相関のオススメできる資料は今すぐには、思いつきません。
誌面p80は、1手法で、他にも精度のよい手法はあります。既存の方式にとらわれずに自己流の方式でもよいと思います。
いきなりFPGAに実装せずに、ソフトウェア方式でアルゴリズムが確立できてから、FPGAに実装するのがオススメです。

▼初心者さん:
>お返事ありがとうございます。
>
>無線伝播の目安の件、承知しました。
>
>
>>相関方式の1手法を、RFワールドNo.41のp80に掲載させていただきました。
>
>RFワールドNo.41の物は、簡易方式との事でしたが、こちらも相関方式の1手法という事で理解しました。
>
>実用に耐えれるシンボル同期を作ってみたいですが、参考になる書籍やWEBなど御座いませんか?
引用なし

パスワード


33 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/22(金) 18:58 -
ご確認有難うございます。

1サブキャリアの波形が320個ごとに固まっておりますので、一見すると不規則にaddr_rom番地が変化してまいります。

確認したいことがございますので、詳細回答は、一旦保留させていただけますでしょうか。

▼初心者さん:
>お返事ありがとうございます。
>
>>波形メモリは、周期波形がピッタリ収まるように入っていますので、終点から始点にジャンプしても、波形が連続的につながるようになっています。
>
>波形メモリは0〜5119番地まで入っていますので、58ページ図6.6のイメージで最後のアドレス5119番地の次はアドレス0番地になるのが正しいと理解してます。
>ですが、98ページに記載のaddr_romですと、アドレス5119番地の次が320番地になってまして0番地ではないですが、これは間違いではないでしょうか?
>
>symbol_cntが5359の場合、addr_rom = 15*320 + (5359-3*80)/16 = 5119
>symbol_cntが5360の場合、addr_rom = 0*320 + (5360-3*80)/16 = 320
引用なし

パスワード


33 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/25(月) 9:27 -
ありがとうございました。
引用なし

パスワード


27 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/25(月) 9:29 -
お返事ありがとうございます。

ご確認お待ちしております。
引用なし

パスワード


31 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/25(月) 21:22 -
回答の内容が二転三転してしまい、申し訳ございません。

積分区間を7μ秒遅れとしておりますが、積分区間に合わせて波形メモリも7μ秒遅れでスタートさせなければならいことが判明いたしました。
add_rom についての正しいコードは、以下のようになると思います。
addr_rom <= symbol_cnt[3:0]*320 +(symbol_cnt-7*80)/16;

現状の公開ファイルですと、67μ秒以降は意図しない波形メモリの番地を読んでしまいます。しかしながら、67μ秒〜71μ秒にかけて積分処理は続いていますから、積分結果のIQ値に誤差を生じていまいます。

出稿直前に、積分区間の調整をしていたため積分区間と波形メモリのタイミングを揃えるのを、忘れてしまったのかと思います。

私のほうで、上記の誤りを実機で十分に確認した後、公開ファイルの訂正を予定しております。
ご質問くださった読者様には、取り急ぎ、誤りのお知らせをさせていただく次第です。
このたびは、誤りを見つけてくださったこと、大変に感謝申し上げます。


▼初心者さん:
>お返事ありがとうございます。
>
>>波形メモリは、周期波形がピッタリ収まるように入っていますので、終点から始点にジャンプしても、波形が連続的につながるようになっています。
>
>波形メモリは0〜5119番地まで入っていますので、58ページ図6.6のイメージで最後のアドレス5119番地の次はアドレス0番地になるのが正しいと理解してます。
>ですが、98ページに記載のaddr_romですと、アドレス5119番地の次が320番地になってまして0番地ではないですが、これは間違いではないでしょうか?
>
>symbol_cntが5359の場合、addr_rom = 15*320 + (5359-3*80)/16 = 5119
>symbol_cntが5360の場合、addr_rom = 0*320 + (5360-3*80)/16 = 320
引用なし

パスワード


29 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/26(火) 11:53 -
お返事ありがとうございます。

実機でのご確認および公開ファイルの訂正をお願い致します。


波形メモリ読み出しと積分区間が1クロックでもズレると
波形メモリのアドレス終点から始点にジャンプした時の
影響が出るかと思います。
またアドレスが5120〜8191になる場合でも実在しない
アドレスを指定する事になるかと思います。

そこでaddr_romの生成に下記の処理を追加してみましたのでご参考下さい。
・終点から始点を5119→320ではなく5119→0にする処理
・アドレス(addr_rom)が5120〜8191にならない処理


wire signed [13:0] w_addr_rom0; //1bit拡張
wire signed [12:0] w_addr_rom1;

//symbol_cntを波形読み出しメモリアドレスに変換

//終点から始点を5119→320ではなく5119→0にする処理
assign w_addr_rom0 = (symbol_cnt >= 64*80+7*80)?
symbol_cnt[3:0]*320+(symbol_cnt-64*80-7*80)/16 :
symbol_cnt[3:0]*320+(symbol_cnt-7*80)/16;

//マイナスと5120以上にしない処理
assign w_addr_rom1 = (w_addr_rom0[13])? w_addr_rom0 + 5120 :
(w_addr_rom0 > 5119)? w_addr_rom0 - 5119 :
w_addr_rom0[12:0];

always@(posedge clk)begin
addr_rom <= w_addr_rom1;
end
引用なし

パスワード


32 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 森榮  - 20/5/26(火) 17:48 -
公開ファイルの誤り内容をご確認くださり、有難うございます。

また、読者様の訂正案をご提案くださり、有難うございます。
訂正の公開ファイルは、既に公開済みのものから大きく変更のない形にしたいと思います。

様々な対処方法が考えられますが、
FPGAのメモリ量に余裕があれば、64μ秒ギリギリではなく余裕長を持った波形メモリにしておく、というのも1手法かと思います。


▼初心者さん:
>お返事ありがとうございます。
>
>実機でのご確認および公開ファイルの訂正をお願い致します。
>
>
>波形メモリ読み出しと積分区間が1クロックでもズレると
>波形メモリのアドレス終点から始点にジャンプした時の
>影響が出るかと思います。
>またアドレスが5120〜8191になる場合でも実在しない
>アドレスを指定する事になるかと思います。
>
>そこでaddr_romの生成に下記の処理を追加してみましたのでご参考下さい。
>・終点から始点を5119→320ではなく5119→0にする処理
>・アドレス(addr_rom)が5120〜8191にならない処理
>
>
>wire signed [13:0] w_addr_rom0; //1bit拡張
>wire signed [12:0] w_addr_rom1;
>
>//symbol_cntを波形読み出しメモリアドレスに変換
>
>//終点から始点を5119→320ではなく5119→0にする処理
>assign w_addr_rom0 = (symbol_cnt >= 64*80+7*80)?
> symbol_cnt[3:0]*320+(symbol_cnt-64*80-7*80)/16 :
> symbol_cnt[3:0]*320+(symbol_cnt-7*80)/16;
>
>//マイナスと5120以上にしない処理
>assign w_addr_rom1 = (w_addr_rom0[13])? w_addr_rom0 + 5120 :
> (w_addr_rom0 > 5119)? w_addr_rom0 - 5119 :
> w_addr_rom0[12:0];
>
>always@(posedge clk)begin
> addr_rom <= w_addr_rom1;
>end
引用なし

パスワード


33 hits
・ツリー全体表示

Re:RFワールドNo.41 動作確認2
 初心者  - 20/5/27(水) 18:20 -
お返事ありがとうございます。

訂正の方法についてはご検討をお願い致します。

引き続きでは御座いますが、よろしくお願い致します。
引用なし

パスワード


31 hits
・ツリー全体表示

3 / 270 ツリー    ←次へ | 前へ→
 40,820
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.01b6