2020/2/17

混波輸出的 IF 分成兩補份:
1. 與距離相關的頻率差
2. 相位 發射與反射 的相位差。

相位差的變法與距離的變化相關。
"相關" 的公式和波長成反比,和 距離變化正比。然後乘上 4pi
d(Phi) = (4 * pi * d(dist))/lamda
所以角度變化大幅

相位差和距離成正比,移動物體的距離不斷增加,所以相位差不斷的增加,增加的速度和移動的速度成正比。 因為相位差是360循環,所以相位變化不/增加的速度就是相位差的角速度,就是頻率。 每個中頻 FFT 結果排列在一起,可以看到同一距離的 range cell 都是 high -> 該距離有物體。
該位置的的phase,各結果排列一起,進行 fft,得到的頻率對應速度。

所以 這兩個 FFT 一對 freq,一對 time, 稱作 2D FFT

問題:
1.mixer 的 input 只和頻率,相位有關,和振幅無關? 2.

2020/2/14

內含三部份: * BSS : Radar (Cortex R4F 200MHz) * MSS : Master (Cortex R4F 200MHz) * DSS : DSP (C674x 600MHz)

2020/2/4

pytorch cudatoolkit

這一篇 說, pytorch 有自己的 cuda lib,所以conda 安裝時,指定要用的 cuda 版本 (可以用的)。
 conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
裝完,測試看:
>>> import torch
prin>>> 
>>> print(torch.cuda.is_available())
True
初步看起來 OK


另外,這一篇 的說明更完整(多):
In [1]: import torch

In [2]: torch.cuda.current_device()
Out[2]: 0

In [3]: torch.cuda.device(0)
Out[3]: 

In [4]: torch.cuda.device_count()
Out[4]: 1

In [5]: torch.cuda.get_device_name(0)
Out[5]: 'GeForce GTX 950M'

In [6]: torch.cuda.is_available()
Out[6]: True

2020/2/3

android hardware hidl ioctl return fail

kernel driver 用 standalone C program 寫 ioctl 是 OK 的。
但是在 hardware module hidl c program 中用一樣的方法,卻 return fail
在 driver 放 printk, 發現根本沒 call 到。

最後有人發現,android hardware module call ioctl 會 call 到 compact_ioctl, 和 standalone c program call 的 unlocked_ioctl 不一樣。
所以在 driver 層 implement compact_ioctl 後 (其實就是跟 unlocked_ioctl 一樣,只有 function name 不一樣),舊 OK了。

這樣說來,android hardware module 是 compile 成 32bit?

用 ninja -v command 把 該 module build 的 command 列出,發現,同一個 shared library, build 了兩次,
一次target 是 aarch64-linux-android,一次是 arm-linux-androideabi 同時 enable thumb.

所以 android 有可能 load 32bit shared library