2020/2/18
2020/2/17
混波輸出的 IF 分成兩補份:
1. 與距離相關的頻率差
2. 相位 發射與反射 的相位差。
相位差的變法與距離的變化相關。
"相關" 的公式和波長成反比,和 距離變化正比。然後乘上 4pi
相位差和距離成正比,移動物體的距離不斷增加,所以相位差不斷的增加,增加的速度和移動的速度成正比。 因為相位差是360循環,所以相位變化不/增加的速度就是相位差的角速度,就是頻率。 每個中頻 FFT 結果排列在一起,可以看到同一距離的 range cell 都是 high -> 該距離有物體。
該位置的的phase,各結果排列一起,進行 fft,得到的頻率對應速度。
所以 這兩個 FFT 一對 freq,一對 time, 稱作 2D FFT
問題:
1.mixer 的 input 只和頻率,相位有關,和振幅無關? 2.
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
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
但是在 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
訂閱:
文章 (Atom)