1. 校准
由于实际评估板中天线距离的偏差(可能不是半波长)等一些原因的存在,校准在一定程度上对精度的提升是有帮助的。TI的工具包提供的是一次校准,主要针对MIMO和Tx Beamforming,可以参考tiduen5a.pdf 。之前的第一篇文章对于校准描述得比较简陋且存在一些谬误,故此篇文章进行更为详细的阐述。下图为实际校准选用的场景。
2. 天线校准 Inter-channel mismatch calibration
这个是针对RF评估板进行的校准。天线校准校准包括频率,相位和幅度三个方面的校准,这个每个RF板子都是需要校准的,每个Casade RF-EVM评估板校准一次就行,校准之后只要是用该板子采集数据就不需要,通过校准可以提高角度测量的精度表现。具体原理可以参考”signal_processing_4chip_cascade.pdf” 中的“Antenna Calibration” 一节。
实验设备放置:角反(RCS 1~2平方米)放置于空旷环境中(确保附件无强反射物),距离评估板5m左右(可以在代码中更改),角反需要和评估板阵列的方位角和仰角保持在同一直线上(这一点可以用带激光头的水平传感器来实现)。
基本原理就是从192个虚拟通道(12发16收)中分离数据,对每个信道进行FFT,角反对应的峰值识别为[D-1,D+1]m内的局部最大值(D为用户提供的近似目标距离),主要对相位和幅度进行校准。
校准:参数设置和数据采集用MIMO用例下的脚本。更新“cascade_MIMO_antennaCalib.m” 中“dataFolder_calib_data” 的文件,之后运行“cascade_MIMO_antennaCalib.m” 文件,通过程序更新calibrateResults_high.mat矩阵文件。
- 运行Cascade_Configuration_MIMO.lua
- 运行Cascade_Capture.lua
- 更新“cascade_MIMO_antennaCalib.m” 中“dataFolder_calib_data” ,可直接在Cascade_Capture.lua 中修改生成文件名为’MIMO_Calibration_Capture’
- 运行cascade_MIMO_antennaCalib.m
- 生成得到矩阵文件calibrateResults_high.mat,校准后在testList.txt文档中修改校准的矩阵。此前用的都是假的校准矩阵calibrateResults_dummy.mat,要替换成calibrateResults_high.mat,而原本存在的calibrateResults_high.mat是TI校准的一个板子的数据(仅供参考,实际是不能用的),自己的板子需要额外校准。
note: 可以看出上面的校准的结果是针对于MIMO下的,生成calibrateResults_high.mat矩阵文件。对于Beamforming下则应生成phaseMismatchCalibration.mat文件。
3. 相位偏移校准 Phase Shifter Calibration
主要是针对于接收天线Rx,用于Beamforming下生成phaseShifterCalibration.mat文件。此处参考AWRx_TX_Channel_Calibration_Script_User_Guide.pdf 进行校准。
实验装置放置:在空旷处,距离评估板至少5m处放置角反。
校准:
有三种方式,第一种是为了生成phaseShifterCalibration.mat 文件,后面两种还得到了校准和不校准的图片差异,其中第二种是第三种的简化版本:
3.1 Cascade_Phase_Shifter_Calibration_AWRx.lua
这种方式是基于TDMA-MIMO帧结构进行校准,这个脚本程序四个主从芯片均会用到,通过0到63设置6位phase-shifter offset。可修改脚本中对应的一些chirp信号的相关参数。由于以太网传输的限制,可能需要30min来传输数据。默认存储在/mmWaveStudio/Postproc/floder(自己可以命名)/TX_PS_CAL_phaseShiftValueX
- 运行Cascade_Phase_Shifter_Calibration_AWRx.lua,用于RF板卡的设置和采集板的数据采集。
- 运行cascade_TX_Phase_Calibration.m 生成calibrateTXPhaseResults.mat文件,运行前更新dataFolder_calib_data_path的值。该程序调用cascade_Read_TX_Cal_Data.m 读取相关数据。
- 运行TXBF_PS_LUT_Generate.m读取 calibrateTXPhaseResults.mat文件,生成查找表LUT。记得更新phaseShiftCalFile 的路径值。该程序调用TXBF_Calc_Phase_Settings.m。得到csv文件的矩阵信息可以在下面两个例子Cascade_Configuration_TXBF_Simple.lua 和Cascade_Configuration_TXBF_AngleSweep.lua 中使用
- 运行TXBF_Create_PSCal_Advanced_Frame_Config.m,利用calibrateTXPhaseResults.mat文件生成得到phaseShifterCalibration.mat 用于TXBF 例子。
3.2 Cascade_Configuration_TXBF_Simple.lua
这个是简单验证做校准和不做校准的效果差异图对比,说明校准的必要性。
变量psCalLUT 是[9 Tx]x[Number of Angles]的矩阵,这个只用到了测水平角的三个从属devices,测仰角的master没有用,所以是9 Tx。
3.3 Cascade_Configuration_TXBF_AngleSweep.lua
与Cascade_Configuration_TXBF_Simple.lua 基本相同
- 运行Cascade_Configuration_TXBF_AngleSweep.lua
- cascade_TXBF_Verification.m 用于找到peak magnitude 峰值和beam-steering angle
fication.m 用于找到peak magnitude 峰值和beam-steering angle - TXBF_Create_PSCal_Advanced_Frame_Config.m 用于更新phaseShifterCalibration.mat 校准矩阵,如下图所示的phaseShifterCalibration.mat,而phaseMismatchCalibration.mat与上面的mismatch calibration得到的校准矩阵是一样的。