说明
任何精密的传感器都需要进行校准,校准的目的在于使测量的结果更加准确。车载毫米波雷达作为一个车规级的可能关系到生命安全的传感器,其测量结果的准确性显得尤为重要。但是车载毫米波雷达(或者说任何传感器)的校准这个话题很大,涉及的东西有很多,想要详尽地说清楚并非易事,我规划了至少两篇本话题下的博文以求在我了解和理解的范围内尽量全面和详细地讨论这个话题。我会随着研究和理解的深入不定期丰富和更新这一话题下的内容。
具体到本博文,本文将探讨如何在数据处理端(对雷达接收到的各通道的回波数据进行校准处理)来校准毫米波雷达的各个通道,使其具备一致性。
Blog
20230224 文章第一次写作
文章架构
目录
一、校准问题综述
本话题下后续博文的综述部分与本篇博文一致,后面增加的博文将不再给出本章内容,本博文本章内容会做更新和丰富。
所谓的校准就是因为和实际的(或者说我们所想要的)有偏差,我们需要得到这个偏差,并想办法把这个偏差给去掉。前面这句话直观来说可以让我们产生如下几个问题:1、偏差的来源是什么?有什么特点?2、怎么得到这个偏差?3、怎么去掉这个偏差?除此之外,可能还涉及到:4、有什么外界因素可能会影响我进行前述过程(校准)?5、在对本偏差进行校准的过程中会不会影响系统的其它参数?这几个问题弄清楚了,关于校准问题便能很好的理解了。
前面这段话有点太过口语化..总之,后文对车载毫米波雷达校准问题的论述主要按照前面几个问题所体现的逻辑来做说明。
1.1 车载毫米波雷达中的偏差来源及特点
首先需要明确的是,具体到车载毫米波雷达,我们这里讨论的偏差其实有两个方面:一是实际的与设计的偏差,比如做雷达系统设计时,设计的发射功率是12dBm,但是实际输出的功率只有11dBm,此时我们需要比如提高PA的增益或者其它手段来修补这个偏差;二是通道间一致性的偏差,考虑到毫米波雷达一般都是MIMO的工作方式,这种情况下其实我们更关心是通道之间的一致性,比如各通道之间相位的一致性,具体到每个通道的相位是否与设计的存在偏差此时我们可能并不太关心,这里一致性的要求可以简单理解成要偏一起偏(当然,我们不希望这种情况发生)。
现阶段,车载毫米波雷达芯片的集成度已经很高了,射频和数字部分都已经被集中在了一颗芯片里面,这自然导致了芯片的设计以及制作的工艺更加复杂,所以多发多收芯片其内部各通道之间的工艺差,以及级联情况下的各个芯片之间的工艺差,是毫米波雷达中的一个很重要的偏差来源。这种由于芯片内部和芯片之间工艺导致的偏差一般是相对确定且固定的,随时间的变化少。
偏差另一个主要的来源便是温度了,在雷达工作过程中,受外界环境温度变化以及自身功耗的影响,雷达的温度会发生变化,这个变化在芯片内部(结温)更大,温度的变化会引起芯片内部各器件的性能(比如LNA和PA的增益、ADC的DC偏移、滤波器的截止频率等)发生较大变化。温度变化引起的性能变化一般是非线性且随时间变化的。下图给出的是Ti在其参考资料(见第四章参考资料1)中给的校准前后LNA和PA的温漂对比:
图1.1 温度变化引起的性能变化在校准前后的对比
前文中提到的工艺指芯片内部和芯片之间的工艺,实际在雷达电路板的加工过程中PCB板上各通道之间加工的工艺差也会带来通道间不一致的问题。此外,有过天线设计经验或雷达系统设计经验的应该会较清楚的一点是,雷达天线面板上天线之间的耦合、以及雷达天线罩对不同位置上天线的不同影响,这些都会导致通道间不一致问题的产生。这些影响相对来说也是固定且确定的,不过耦合以及天线罩带来的偏差可能会随着频率发生变化。
图1.2 单天线与该天线位于阵列中时的比较
图1.3 加壳前后天线方向图对比
图1.4 在阵列不同位置处的天线方向图对比
上面的几张图中,阵列都为3T4R均匀阵(接收阵列间隔0.5个波长,发射阵列间隔2个波长,图1.4左边图为最左边发射天线的方向图,右边图为最右边发射天线的方向图,为带天线罩后的仿真结果)。上面几幅图是本人项目研发过程的一些仿真结果,拿过来做示意说明,读者无需深究。
1.2 偏差的获取与校准的方法概述
上一节分析了几种偏差的来源,从本质(或者说源头)上来说,我们自然希望工艺是一致的,性能不随温度改变,没有耦合或者雷达罩的影响。但是在工艺和材料还没有发展到理想的状态之前,这些偏差就和噪声一样,是会一直存在的,我们去做校准的一个基本前提是:我们没法从源头上去解决这些问题,所以我们需要获取偏差并弥补偏差。
先说说我现阶段所理解的两种主要的校准方法(或者说方向)。其一是从芯片端来做校准。芯片端的校准是指改变芯片内部比如LNA、PA等的增益来使得各通道之间保持一致,成熟的毫米波SOC芯片内部都有自校准机制,比如Ti的AWR系列芯片,这部分内容我会在后续另外的博文中给出(这部分的内容其实更偏向于芯片设计者的工作了)。其二是从数据处理端来做校准。数据处理端的校准是指通过设计校准实验,采集回波数据进行分析,通过得到各个通道之间的偏差值来制作校准矩阵,并在雷达后续的使用过程中先对采集的ADC原始数据利用校准矩阵进行校准然后再做数据处理,该方法更细节说明和讨论是本博文的重点,将在后文给出。
这两种方法很难定义其关系,可以简单将数据处理端的校准作为芯片端校准的补充?但是数据处理端的校准没有考虑到温度变化的影响(我们做校准实验并采集数据制作校准矩阵时,必然是限定在一个温度(比如常温25℃)之下的,但是上一节的分析我们知道,通道之间的不一致性是会随着温度而发生非线性变化的,即便这种变化可能很小)。此外,从数据处理端校准的原理来看,芯片端的校准与否不会影响数据处理端的校准,从这个角度来看,这两种方法应该算是相对独立的关系,目前我的理解是这样的。
至于通道间不一致的偏差的获取,这两种方法都需要设计实验来得到校准矩阵,具体的我将在后文展开。对于芯片端,芯片内部一般会有包含比如温度传感器之类的监控机制,这部分内容将在后续的博文中介绍。
1.3 校准的影响概述
校准的目的在于使雷达的实际工作状态尽量符合我们所设计的工作状态,包括但不限于其射频端的收发参数、各通道之间的一致性。校准的好处是显而易见的,收发参数与设计的一致可以保证雷达的比如探测距离等达到设计要求,通道之间的一致性则是雷达测角准确度和精度的保证。
但做任何一件事有其好的一面也必然伴随着一些坏的影响(或者说代价),生活中如是,在科学研究中往往也如是。
校准带来的一个不容忽视的问题是:信号的突变。通过校准我们解决了各个通道间不一致的问题,但是在校准的过程中也带来了各通道自身其前后之间的幅相突变问题。特别是对于芯片端的校准,我们去弥补偏差的方法无非是在某个需要校准的时间点去改变其内部射频器件的参数,而这些参数的突变自然会带来幅度和相位的突变。一些依赖于帧与帧之间相干性或者幅度/相位一致性的处理算法会对校准导致的绝对增益/相位的突变很敏感,特别是对于级联的情况,多个MMIC之间的增益/相位失配变得至关重要,一个MMIC中绝对增益/相位变化可能会导致多个MMIC之间的失配。这个问题是需要被研究并加以解决的,一种被动解决方法是不让这个问题产生:对于芯片端的校准,我们增加校准的周期或提高其触发校准的条件,关于该问题的分析和解决暂不在本博文的讨论范围之内。
1.4其它需要注意的点
本节内容为回应之前的第4个问题:有什么外界因素可能会影响我进行前述过程(校准)?最容易想到的是干扰,关于干扰的相关的内容可以参考我之前写的博文:车载毫米波雷达信号处理中的干扰问题_墨@#≯的博客-CSDN博客,不过在这篇博文中我没有把干扰对校准的影响放进去,但看完这篇博文后应该能很好理解干扰会对校准造成影响。所以校准的过程(设计校准实验获取校准数据的过程)需要全程在无干扰的微波暗室等环境中进行!
二、几种数据处理端的通道校准方法及其校准效果
本章介绍我了解到的几种校准方法,着重说明Ti给的方法,另外两种方法的来源暂不做说明。
2.1方法一 (参考Ti)
该方法包含对通道间幅度、频率、相位的校准。
2.1.1 实验方法
实验建议在暗室中进行,细节不做太多说明,把角反放在雷达的正前方(角反中心尽量与雷达的中心对齐),收发射参数(比如发射带宽、chirp斜率、chirp周期、采样点数、单帧loop数等)的设置没有太多限制(可以让其等于正常使用时的配置,当然也可以不用相等),建议使用TDM-MIMO的模式工作,采集几帧ADC原始数据做备用。
【注:为方便理解和做有实例的说明,本章内容(不限于本节的方法)以Ti的AWR2243级联板为对象,本博文将基于该板子,实际采集数据并实践本章提及的方法,且给出整个校准过程中必要的数据和图片结果】
关于Ti该级联板的介绍读者可以参考Ti的官网:MMWCAS-RF-EVM 评估板 | TI.com.cn。该开发板为4芯片级联,为12T16R,所以TDM-MIMO模式下共有192个虚拟通道(因为布局的原因,有重叠的,不过后文的讨论将针对这全部的192个通道)。博主这里实验条件较为有限,本博文的主要目的在于说清楚与校准相关的内容,并捋清楚所提出的几种校准方法的整个流程,后文给出的实验结果仅供参考。这里一并给出后续实验的收发参数设计:
表2.1 基于AWR2243级联板校准实验的收发参数设计列表
参数 | 值 | 备注 |
收发数量 | 12T16R | Ti级联板为4芯片级联,单芯片为3T4R。 |
发射起始频率 | 76.5GHz | - |
Chirp斜率 | 100MHz/us | - |
Chirp发射时长 | 36us | TDM发射模式 |
ADC采样率 | 8MHz | - |
ADC采样点数 | 256 | - |
单帧Loop数 | 10 | 也即单个天线在单帧的发射次数,不需要做速度维度的处理,所以这里的loop数不需要很多。 |
采集帧数 | 6 | 使用第4帧数据制作校准矩阵,使用第5帧数据实践校准矩阵。 |
设计最远检测距离(从数据处理的角度)12m,设计距离分辨率0.0469m,目标(10dBsm角反)置于距雷达约4m处,实验场景如下:
图2.1 实验场景图
2.1.2 制作校准矩阵
在上一节的实验参数设计下,采集了6帧的数据,并使用第4帧的数据制作校准矩阵,使用第5帧的数据作为校准的试验对象(得到校准矩阵后,校准矩阵可以被用于后续的所有使用过程,这里偷懒直接用第5帧的数据来做校准的试验和说明)。
经过数据解析过程,单帧下可以得到大小为:256*10*192的ADC原始数据(192对应12T16R TDM模式下形成的12*16 = 192个通道)。
校准矩阵的制作流程如下:
(1)针对前面解析得到的192个原始数据矩阵,对于每一个矩阵,在其速度维度取均值得到一个256*1的数组,对该数组进行加窗、做距离维度的FFT(FFT的点数不一定是256,可以延长(比如做1024个点的FFT),这样可以得到更为精确的目标索引值。)
(2)根据设计的收发参数、目标的实际距离、以及FFT实际的长度,在实际距离对应的理论索引值的前后比如10个索引范围内,找到该通道测量得到的目标的实际索引值(能量最大值对应的位置)。
(3) 由该索引值idx、该索引值对应的幅度值Val、该索引值对应的相位值angle,填充该通道对应的rangeMat(iTx,iRx) = idx、peakValmat(iTx,iRx) = Val、AngleMat(iTx,iRx) = angle。
(4)循环进行前述步骤1à3,会得到大小为12*16的三个矩阵:rangeMat、peakValmat、AngleMat。(假如上面的幅度值我们用的是复数而不是绝对值的话,后面的校准过程实际上只需要用到rangeMat和peakValmat即可,因为peakValmat中包含了幅度和相位信息,我们在做相位校准的同时也可以把幅度校准给做了。)
以上完成了校准矩阵的制作。可以来看看这几个校准矩阵:
图2.2 使用校准数据获得的192个通道距离FFT后的结果
图2.3 目标所在位置的局部放大
近处能量大主要原因应该是频率泄露,这个不管。目标位置大概在距离索引为351左右的位置,对应的距离按照计算公式:
式中,S为chirp斜率,该值取8MHz,f对应距离为R处的频率,索引值351处对应频率为:351*(fadc/1024),于是可计算得到R约为4.113m,与实验摆放的位置相吻合,各通道能量最大值处的距离索引如下:
图2.4 使用校准数据获得的192个通道的距离索引值(rangeMat)
各通道的幅值和相位值如下:
图2.5 使用校准数据获得的192个通道目标所在位置的能量值(peakValmat)
图2.6 使用校准数据获得的192个通道目标所在位置的相位值(AngleMat)
从以上三幅图可以看到,通道之间的索引值、幅度、相位值都存在差异。这些差异和我们所进行的实验该有的理想情况下的理论结果是相悖的,这便是通道间不一致的体现。而以上三幅图所示的数据也是我们后面做校准的依据。
2.1.3 使用校准矩阵进行校准
本博文的内容是在数据处理端来校准通道使其具备一致性。一致性的前提自然需要我们有一个参考的标准,这里校准的实施,我们需要选取其中的一个通道作为基准通道。后续的校准操作是将各通道的值都校准到和该通道一致,比如我们选Tx1Rx1作为基准。
1、对频率的校准
因为距离FFT后的索引值表征的便是频率(不同的频率对应不同的距离),所以我们用rangeMat做频率的校准。
对于其它的通道,这些通道相对于Tx1Rx1需要补偿的值为:
式中,∆p为索引值的差值(随通道而改变);fchirp是后面实际使用时(待校准时)的chirp斜率,fcalib是校准时所用的chirp斜率;fschirp是后面实际使用时(待校准时)的采样率,fscalib是校准时所用的采样率;nsamples是校准时单chirp的采样点数;I对应前面求校准矩阵时距离FFT点数的放大倍数(比如我们实际采样了256个点,但是做了1024个点的FFT,则对应的I就是4);n等于(0:N-1),N为后面实际使用时单chirp的采样点数,我们的校准是针对该通道所有的采样点做的,而不同的采样点需要补偿的值自然不一样。
得到F后,用exp(-j*F)乘以该通道采集得到的原始数据即可完成校准(该通道的原始数据是指该通道所有chirp下采集的原始数据)。校准前后对比如下:
图2.7 校准前后192个通道距离FFT后的结果对比
上图较难看出区别,可以把能量最大值处的索引值拿出来:
图2.8 192个通道校准前后能量最大值处(认为是目标所在位置)索引值
从上图可以明显看到目标位置得到了校准,也即各通道之间的频率具备了一致性。
2、对幅度和相位的校准
对数据校准的顺序上来说,我们先校准完频率再校准这里的幅度和相位。如前所述,(假如上面的幅度值我们用的是复数而不是绝对值的话,后面的校准过程实际上只需要用到rangeMat和peakValmat即可,因为peakValmat中包含了幅度和相位信息,我们在做相位校准的同时也可以把幅度校准给做了。)
用peakValmat中Tx1Rx1对应的值除以其余通道的值,便可以得到各个通道需要补偿的值(如果不做幅度校准,那么只需把该值再除以其幅值即可),用该值乘以该通道的接收数据即可完成校准,不同于前面的频率校准,这里每个通道单chirp的所有采样点是补偿同一个值。校准前后的效果对比如下:
图2.9 192个通道校准前后能量最大值处(认为是目标所在位置)能量值
图2.10 192个通道校准前后能量最大值处(认为是目标所在位置)相位值
从上面两幅图来看,通道之间的幅度和相位具备了一致性。此外,我将192个通道中水平向不重叠的86个通道数据拿出来,看看校准前后测角效果的对比:
图2.11 校准前后测角效果对比
实验中,我尽可能地将角反放在了雷达的正前方,也即目标的理论水平角度应该是0°,可以看到在校准之后测角的结果更准确,同时旁瓣也整体下降了很多,这便是校准对测角效果的改善。
2.1.4 小结
纵观该方法的整个过程,其背后的原理其实很简单:以其中一个通道为基准,把其它全部的通道都校准到和它一致。但是这里的前提是,所有通道的数据其理论上应该是一致的才行,也即我们在设计校准实验时需要将目标置于雷达的正前方(且是远场范围下),这时目标之于雷达的每个通道理论上应该是一致的:包括每个通道测得的目标距离索引、信号幅值和相位,如果不一致那就是需要校准了。此外,在此重申,该方法没有考虑温度的影响(没法校准温漂),校准温漂需要在芯片内部实现,更具体的我会在后面的博文中给出。
2.2 方法二
本小节给的方法要简单些(算是对相位的校准,且要求是同一水平面上按顺序排布的那几个通道)。试验方法同上一节,这里不再重复说明,本节给出的中间结果以及校准前后的效果对比基于的是和前一节相同的原始数据(但用的是水平向不重叠的86个通道)。
对本方法下一些中间结果的分析和推论可以参考方法一中的说明,后面就不做细致介绍了。
2.2.1 制作校准矩阵
(1)对于前面解析得到的86个通道下的原始数据矩阵,对于每一个矩阵,在其速度维度取均值得到一个256*1的数组,对该数组加窗、做距离维度的FFT(FFT的点数不一定是256,可以延长(比如做1024个点的FFT),这样可以得到更为精确的目标索引值。)
(2)可以对前述各个通道距离FFT之后的结果在通道维度再取均值,然后根据设计的收发参数、目标的实际距离、以及FFT实际的长度,在实际距离对应的理论索引值的前后比如10个索引范围内,找到该均值之后的结果中目标的实际索引值(能量最大值对应的位置),【该距离门值对全部的通道是确定且相同的,所以这里的方法没有考虑频率是否存在不一致的情况】,随后拿出该距离门下的天线维度的数据86个,做FFT,把远离目标所在索引(目标在雷达正前方,此时做完角度FFT后没有做shift之前,目标的索引应该在1处)的其它位置(比如可以是索引值为10到76的位置)置0,并IFFT回去。
(3)得到86个IFFT后的值(ValueMatrix)和相位(AngleMatrix),并以之作为后续校准的依据。
以下为校准帧下得到的校准数据:
图2.12 IFFT后86个通道对应的能量值
图2.13 IFFT后86个通道对应的相位值
2.2.2 使用校准矩阵进行校准
把前面得到的86个值(相位和幅值),分别重复为N*M*86的大小(N为后续校准使用时单chirp的采样点数,M为loop数):repmat(exp(1i* AngleMatrix)./abs(ValueMatrix(ref)./abs(ValueMatrix)),N,M)。用后续需要校准的86个通道的原始数据除以上述得到的矩阵以完成校准。效果如下:
图2.14 校准前后目标所在位置天线维度能量值对比
幅度的前后对比来看,校准后其一致性有改善,但是效果不理想。
图2.15 校准前后目标所在位置天线维度相位值对比
相位的校准效果还不错,但是相较于之前的方法还是有差距。
其测角效果的对比如下:
图2.16 校准前后的测角效果对比
可以看到测角效果有较大改善,如前本小节开头所述,该方法主要是对相位有较大改善。
【从正规和符合标准的角度来说,建议使用方法一】
2.3 方法三
2.3.1 原理说明
方法三提供一种做校准的新思路。上面的两种方法都是基于目标在雷达正前方这样的基本前提,在这个前提下每个接收天线接收到的数值应该是一样的才对,如果不一样那我们可以籍此得到针对某个通道的偏差值,从而得到校准矩阵,后续是通过对原始数据进行修改来完成校准。
本方法提供的校准限于相位。本方法的校准原理是:在已知被测目标(单个目标)角度的前提下,阵列间各相邻通道之间应该满足的相位关系是:
或者说阵列之间的相位关系应该构成如下的向量:
上述两式中,d为阵列之间间距(假定为均匀阵),θ为目标角度方向。但因为在第一章中提到的各种原因,其相位关系不会如上述两式中那么理想,相较于第一个通道,后续第n个通道的相位更可能如下所示:
式中,∆d是由于工艺等原因造成的固有间距差值, ∆φn为固有相位差值。为消除偏差,前面提供的两种方法都是通过去改变原始数据的相位值来实现,本方法提供的思路则是通过得到各个通道的∆d和∆φn并在后续的角度估计取各个方向的导向矢量时进行补偿而得到更准确的测角结果。
2.3.2 实验方法
博主实验条件有限,该方法不做具体的试验和校准效果说明。但是这里给出试验方法和获取阵列间距值的步骤。
通过前述原理说明可知,校准的依据是各个通道的∆d和∆φn,则实验的设计需围绕如何得到这两值来展开。注意到在小角度范围内,sinθ约等于θ,于是前述式子可以写成:
以常见的通道间间距为λ/2为例,将λ/2替代前式d,得到:
这是一条以θ为自变量,以2*pi*n*d+∆dλ为斜率,以∆φn为截距,以φn→1为因变量的直线表达式。我们可以设计实验测量不同角度下(比如间隔1°测量一次,测量范围可以是±15°范围内)的φn→1值便可以拟合出这条直线并得到这条斜线的截距和斜率,从而得到该通道下补偿使用的∆d和∆φn。实验尽量在暗室内展开,雷达安装在一个旋转台上,目标位于雷达正前方(比如5m左右),且目标在整个实验过程中保持固定,雷达在设定的角度范围内以设定的角度间隔做实验测量,可以多测量几次取相位差的均值以减小测量误差。
三、总结
本博文探讨车载毫米波雷达的校准问题,较为系统地介绍了包括偏差的来源及其特点、偏差的获取与校准方法、校准的影响、以及校准需要注意的点。重点给出和探讨了几种从数据处理端做校准的处理流程与方法,并给出了一些实测数据的效果说明与对比。
四、参考资料
1、《TI 毫米波雷达器件中的自校准功能》自校准毫米波雷达器件 (Rev. C) (ti.com.cn)
2、《Cascade Coherency and Phase Shifter Calibration Application Note》级联一致性和移相器校准应用手册 (ti.com.cn)
3、《采用级联毫米波传感器的成像雷达参考设计》采用级联毫米波传感器的成像雷达参考设计 (Rev. A) (ti.com.cn)
4、《Signal Processing with 4 Chip Cascade》 (但是在官网没找到..)
五、代码和数据说明
很抱歉,虽然我在该毫米波雷达专栏介绍中给的说明是:写博文的主要目的是记录在这个行业的积累与思考。在该行业我本人是一个后闻道者,如果这些文字能帮到比我更后闻道的人就更好了。
本专栏之前的以及往后的文字内容我基本都会作为没有任何门槛的公开内容(这些内容如果读者觉得不错想打赏我自然不会拒绝:))。但是涉及到大量代码和数据的内容我可能将设置成有小幅门槛的内容,这也是对我坚持记录下去的某种激励,很抱歉,但请理解。
上一篇DOA估计的代码为免费内容(看到好多人阅读并下载了但是给博文点赞都不给..让我有点失落,这也是我想要增加门槛的一个原因..),本篇博文涉及的代码以及一些实际采集的数据将作为积分内容,内容包括全部的代码(为防止乱码我转成了txt格式,代码的说明很详细)、其中一组我采集的校准数据:
Code
data
代码中包括从级联板采集的.Bin文件做数据解析一直到生成校准矩阵并完成校准的全部内容。
链接如下: