今回のエントリは、昨日の「パルス圧縮できてるんじゃないかなぁ」というグラフは、実は生データのグラフだったという、驚愕の事実が発覚するところからのスタートです。
***
上段、生データのRe/Im。下段、生データのMagnと圧縮後。
アクティブリフレクタは内部遅延が12.288ミリ秒で、1波長25マイクロ秒の整数倍じゃないので、パルス間で位相が異なる。
圧縮後のパルスはかなり前に寄ってる。素子の周波数特性の関係で、チャープ信号の中央付近しか見えてないのが原因と思われ。パルスの前端と後端が消えてるので位置が不正なように見えてしまう。ただ、それにしてもちょっと位置が合わない気がするので、別の要因があるのかも。あるいは素子の中心周波数が少しずれてるのか。
今回はとりあえず1000ポイントだけど、実際にはFFTに通さなきゃいけないので1024とか2048ポイントになるはず。
IFが40kspsなので、2048ポイントで51.2ミリ秒のサンプリング期間。距離で10m弱くらい。4096ポイントならその倍の距離だけど、メモリ容量次第か。入力波形と基準波形、両方の複素数データを持たなきゃいけないので、メモリ的にキツイ。表現できる範囲やSIMDとの兼ね合いもあるので、いい感じの落とし所を探さねば。
IF20kspsくらいで相関して、相関後に更に平均(orピーク)を取ってサンプル数を落とせば、長距離分のデータを溜め込む、ということもできるかもしれない。これなら一度のFFTポイント数はある程度減らせるので、2048ポイントで流しながら5kspsでメモリに入る限り取り続ける、みたいなこともできるかも。
せっかく位相を取れるんだから、合成開口モードとかもやってみたい気はする。ただ、合成開口は必要なデータが積で増えていくから、F303REでやるのは無理ゲーっぽい気がする。アナログ周りをF303REで担当して、信号処理とかの一切合切はF7discoveryで担当する、とか?
FT232Hってどれくらいの速度でデータ受けれるんだろうか。PC側ソフトの工夫次第で1MB/sくらい出るなら、IFの複素数なら通せそうな気もする。PCで処理できればパラメータの調整とかもしやすいし、オンボードでの相関処理を作る前に、まずFT232Hの評価をしておくべきか。
えーっと、F303REはアナログ回路ゴリゴリだし、STBee F4miniはアクティブリフレクタに使ってるし、別のマイコンボードを探してこなきゃいけないか。おや? 机の上に仕事してないSTBee F4miniが…… ぐ、ぐうぜんだなー。しょうがないにゃぁ、コイツでFT232Hのテストを……
***
追記
F3でFT232Hのテストをしてみた。FT232Hは12Mbaud、8Mbaudと、6Mbaud以下を設定できる。F3は最大9Mbaudまでなので、12Mbaudは使えない(F4なら使える)。
なんか、一貫性のないテスト結果になってしまって困惑してる。8Mbaudでもロストしないこともあるし、3Mbaudでも盛大にロストすることもある。ある時間ではロストしても、別の時間では時間ではロストしなくなったり、とか。
ロストと言っても、128KiB転送して0.1%前後取りこぼす、くらい。
バッファ足りなかったらもっと盛大に落としそうではあるんだよなぁ。そーいやコイツHSIで動いてるんだっけか。とすると、クロックエラーが原因という説は結構有力かも。ただ、オシロでRXとRTSを見てるとたまにRTSがアサートされるので、クロック以外に、単純にデータ転送が間に合ってないパターンもありそう。
水晶は探せば適当なやつが出てくるだろうから、HSEにすることはできるけど、ピンヘッダにジャンパワイヤ生やしてるので、それを抜かずに(or抜いても元通りに)作業するのが大変そう。早くアナログ系の回路凍結させてユニ基板にしたい。
ところで、STM32の推奨される水晶の配置、って感じの資料が公式にあるんだけど、曰く「最短経路で配線しろ!!」という、弱いアナログ信号の鉄則とも言えるようなことが書いてあるんだが、NucleoのHSEって、結構長距離引き回してるよね。。。
デフォルトで未実装なあたり、使いたきゃ使え、もしくは、製品として売るには看過できない確率で発信不良が起こるので未実装でHSI使わせる、みたいな雰囲気が漂う。
LSEは実装済みなのも不思議。どちらかといえばHSEよりLSEのほうが不要な気がするんだが。LSEはHSE以上に件の資料を無視した配置になってる。
0 件のコメント:
コメントを投稿