2018年2月10日土曜日

あなろぐ・こんぴゅーたー


 アナログ回路の規模がかなり大きくなってきました。
 とりあえず、DCDCを探してきて安定化電源が不要になったのと、送信側にもオペアンプを入れてみました。
 左下の黒い四角がDCDCコンバータ、左側のオペアンプが受信側、右側のオペアンプが送信側です。


 基本的に、「ノイズ対策は可能な限り早い段階で」というのが鉄則です。後段で信号を増幅しても、目的の波形を増幅しているのか、途中で入ったノイズを増幅しているのか、わけがわからなくなるためです。
 ということで、送信する前に増幅してしまえ、となったわけです。

 今まではマイコンのDACに直結して、約5.5Vpp程度でした。オペアンプを通すと、12Vpp程度になります。電圧的には倍程度ですが、電力的には大きく改善しているはずです。インピーダンスもかなり下がっているはずですしね。



 相関を取ってみると、グラフで見るとかなり低いような感じですが、これは直接波が大きく、相対的に小さく見えているだけで、実際にはかなり強く相関が取れています。2.4m先(14.5msec)の反射波で360くらいですが、送信段で増幅していない時は15程度でした。
 もっとも、相関値は実数なので、15程度でも目で見る分には十分な相関が得られますし、信号が強くなるとその分パルス圧縮幅も大きくなってしまい、距離分解能が悪化するわけですが。
 グラフ中で20msec以降の相関がゼロなのは、データ数が足りなくて相関が取れなくなるためです。


 三重大学大学院の修士論文("パルス圧縮を利用した超音波レーダの開発に関する研究")によると、40kHzの超音波を符号でパルス圧縮した場合、1mと4mの目標で標準偏差2.2mmという結果になるようです。40kHzの波長が8.5mmですから、2.2mmはおよそ位相90度に相当します。FM-CWは数波長ずれても強い相関が出てしまいますが、符号圧縮は1波長ずれると相関が弱くなり、また位相ズレ0度で最大の相関、90度で相関ゼロ、180度でマイナスの相関になりますから、1波長ズレ時の相関が弱くなれば、一気に90度の分解能が得られるようになります。
 ただ、件の論文では、正弦波1個に1bitを割り当てて、これをFSK変調しているようですから、送受信機の応答性がかなり良くないと動作しないような気がします。


 今の段階では、PCに取り込んでからC#で相関を計算していますが、マイコンで計算する場合は、FPUがあるとはいえ、実数では遅くなりそうなので、正数で計算するべきかな、と思います(STM32F4のFPUってどれくらいの速度で動くんだろう?)。
 FPGAで相関器を組む場合や、専用のASICを作る場合(GPS等)、相関器は1bitで作るようです(最近のGPSはマルチビット化してるようですが)。これはbit数が増えればそれだけ回路規模が大きくなるためですが、マイコンの場合はすでにあるALUを使うほかなく、バス幅までなら1bitだろうが複数bitだろうが計算速度に差はありません。
 STM32の場合は32bitなので、結果が32bitに収まる範囲であれば、任意のビット数で計算できます。
 ADCは符号なし12bitですが、結果は負を取るので、符号あり32bitになります。31bit-12bitで19bit分の掛け算を行うことができます。19bit、つまり524288サンプルまで計算できるとして、パルス幅を10msecとする場合、52.4Msps程度までなら、キャリー無しに計算ができます。STM32F4はADC1個で最大2.4Msps、ADC3個でも7.2Mspsまでですから、十分に余裕があります。逆算すると、パルス幅72msecまでなら計算できることになります。実際には、常にADC結果が4095に張り付く、ということはありえないので、その1.5倍程度、100msecくらいなら問題ないはずです。
 とはいえ、相関を取るのは1サンプルずつずらして総当りで計算する必要があるので、それだけの計算量を実用速度で処理できるか、という問題もありますが。あとそんなにRAM無いですし。。。

***

 とりあえず、送信出力を上げたことにより、反射波の強度もかなり高くなりました。ということで、かなり遠くからの反射波でも受信できそうな感じです。
 とりあえず、アナログ回路の大枠はこれで確定かな、という気がします。ということで、ブレッドボードからユニ基板に移植してやれば、後はソフトウェアに専念できます。あと、ユニ基板になってしまえば自由に持ち運びができるので、どれくらいの距離まで計測できるかもテストできます。

 その前に自分で温度を計測できる機能を作る必要がありますね。去年TO-92の1Wire温度センサをいくつか買ったはずなんだけど、どこに仕舞ったかなぁ。探しても出てこない。。。

0 件のコメント:

コメントを投稿