车载毫米波雷达信号处理中的数据压缩问题

说明:

 本篇博文探讨毫米波雷达SOC芯片在数据处理过程中的数据压缩(data compression)问题,受众可以包括芯片设计工程师,或使用NXP/Ti等商家芯片做开发时涉及到数据压缩功能的使用时要做一些理解时的软件开发人员,或者对这方面有兴趣的其他人员。本篇博文会基于对这方面知识理解的加深以及读者的反馈长期更新内容和所附资料,有不当之处或有其它有益的参考资料可以在评论区给出,我们一起维护,我会定期完善。

Blog

20220909,文章第一次写作。本篇博文主要的内容来源于Ti的《Memory Compression and Decompression Engine for TI mmWave Radar》,此外还有NXP《S32R RADAR Signal Compression》部分内容,但是NXP给的资料里几乎没有细节。

文章架构:

目录

说明:

文章架构:

一、关于数据压缩的说明

二、数据压缩可以带来哪些益处

三、数据压缩的可行性/理论依据

四、数据压缩的实现方式

五、实测结果

六、总结

七、参考资料


一、关于数据压缩的说明

    数据压缩,指的是在不影响(或影响较小)后端数据处理效果的前提下,将数据进行压缩,以使RAM中可以存储更多的有用数据。毫米波雷达在数据处理的过程中,主要是跟radar cube打交道,其大小为:range-bins*chirps*channels,所以雷达数据的压缩,也主要针对该radar cube做操作。

    数据压缩在车载毫米波雷达的SOC芯片中应该算是一个比较新的概念?得出该结论基于两点观察:1、加特兰、岸达等厂家的最新的芯片并没有这项功能(当然,可能与信号处理的架构不一样有关?)  2、Ti前期的芯片也没这项功能(It is included in the IWR6843 and other upcoming radar devices that contains hardware accelerator (HWA) version 1.1 or above)。

二、数据压缩可以带来哪些益处

    数据压缩很直观的理解就是:同样的内存大小下你可以存储更多的数据。对于车载毫米波雷达而言,我们暂不考虑射频前端具体是怎么实现的,以及雷达系统设计是如何取舍各种参数关系的,这些更多的数据,可以来自:单chirp下更多的采样点数、或者单天线单帧下发射的chirp个数、或者通道个数。这些更多的数据,可以带来:更高的距离分辨率(假定数据处理角度来说的最大测量距离不变)、从数据处理的角度来说更远的探测距离(假定距离分辨率不变)、更高的速度分辨率(假定测速范围不变)、更高的测速范围(假定速度分辨率不变)、以及更高的角度分辨率。 关于这些数据增加导致的性能增加的原理,结合着测距、测速、测角公式即可容易理解。

    总之,数据压缩可以让我们使用较小的内存空间得到更好的雷达性能,这是做数据压缩的缘由。(至于做这件事情的迫切性,暂且不表… 不管怎么说,这是一项有意思的且能节省硬件资源的工作,值得研究一番。)

三、数据压缩的可行性/理论依据

    数据压缩的理论依据用一句话来解释就是:在绝大多数情况下,单个距离门下数据的动态范围是有限的,且该动态范围远小于我们给单个距离门下数据存储时设置的比特数对应的动态范围。下面对这句话做细节解释。

A、单个距离门下信号数据的动态范围:

    动态范围是指信号中最强的目标能量与底噪的比值,为了探测到一个信号,我们一般需要SNR在15dB左右。在单个距离门里,雷达探测到的东西(感兴趣的目标)要么是人,要么是车,人和车对雷达而言其主要区别是RCS,体现在电磁波上就是反射的能量大小,体现在距离门存储的数据上就是数据值的大小,而人和车的RCS是有限的,一般来说人的RCS取-5dBsm,卡车的RCS取25dBsm,也即有用信号的动态波动范围只在30dB左右,再加上15dB的SNR阈值,单个距离门下数据只有约45dB的动态范围需求

动态范围示意图

B、我们给单个距离门数据存储时设置的比特数,及其对应的动态范围:

    比特数Nbits可以覆盖的动态范围可以用公式:Nbits*6 dB 大致估计得到,或者使用20*log10(2^Nbits) dB。比如Nbits = 16,则对应可以覆盖的动态范围约96dB,而前述45dB的动态范围需求大概只需要8bit就可以完成覆盖了。

    很多的芯片在1D fft之后存储数据的bit数就已经到了16bit甚至32bit,从动态范围的角度来说,是有很大冗余的,这便也是我们做数据压缩的理论依据所在。但是这里需要说明的一点是:动态范围要区别于每个数据的具体值大小,动态范围体现的是差值或比值,它不关注做差/做比的两边数值的具体大小,所以不是说如果我们用8bit的数据可以体现单距离门下数据动态范围了,那么我们就只需要用8bit数据去装载那些16bit的数据就可以了。需要搞清楚先后的逻辑关系: 我们首先是拿到了16bit装载的数据,然后将之压缩成8bit的去存储,我们更后端的处理过程还是要把它解压缩至16bit去做后面的处理。压缩的步骤中我们改变了原始数据大小,但是保留了其动态范围,且通过上面的论证我们知道我们可以在基本不影响动态范围的前提下增加这个压缩的步骤。

四、数据压缩的实现方式

   这里的具体实现方式又可以分成三个小的问题:

A、在数据处理流程中的什么时候进行压缩:

    以Ti为例,首先谈一谈我们在整个数据处理的流程中是在哪个部分进行数据压缩的:Ti的信号处理,它各个通道拿到ADC的数据后就立刻做距离fft了,没有存储的需求,所以没有必要说把拿到的adc数据做压缩,Ti在后端的处理过程中是一个一个的距离门去做处理的(对单个距离门的数据做完多普勒维度的fft后直接CFAR以及求角度得到目标信息了),所以也没有必要对2Dfft后的数据做压缩和存储。需要做压缩和存储的地方是1D-fft之后的数据,因为需要等一帧中所有的chirp完成了收发和1D-fft处理后才能做多普勒维度的fft。

    Ti的给的数据压缩和解压缩过程如下图所示(后面黄框里的应该是decompression):

Ti数据压缩的处理流程

B、在哪个维度压缩:

    Ti做数据压缩时,是将一部分的数据放在一起构成一个block,模块化进行处理,紧接着的一个问题是,距离、速度、天线这几个维度,我们拿哪个维度的数据放在一起做压缩好?其实哪个维度都可以实用性来说我们一般取距离维度和天线维度,因为这两维度在1D-fft之后数据就马上有了,如果在速度维度那么我们需要增加一个缓存区,因为还需要等后续的几个chirp完成了处理才能把数据拿到一起做压缩,不过在后续的解压缩过程中,在速度维度做压缩的就很轻松了,因为解压缩后数据就可以直接用,而对于在距离维度做压缩的,我们解压缩时也需要一个数据缓存区,因为我们后续的处理是在同一个距离门下的多普勒维度做的,我们一次只需要拿出解压缩后的其中一个距离门的数据。

    在距离维度做压缩的另外一个好处是:在距离维度压缩后,不同距离门下的数据值大小是离散的(大小不一,而在其它两维度则不一样了,数值大小基本是相似的),后续的编码算法可以受益于这一特性而有更好的压缩效果(Allowing the compressed block to include data across multiple range-bins enables the compression algorithm to benefit from this sparsity)。

C、具体如何实现压缩:

    方法:Exponential Golomb Encoding (EGE), 指数哥伦布编码(这只是Ti给的一种方法,方法不一)。该具体方法可以参见百度百科(指数哥伦布码_百度百科 (baidu.com))或其它的资料(方法似乎不止一种?)。编码过程中最优K值的选取暂不在本篇博文的讨论范围,总之,这里使用该方法进行压缩的目的在于针对不同的值可以实现不同长度的存储。对选取好的一个block中的数据一个个进行编码并存储到限定数量的Bit中完成压缩。

    关于数据的压缩率:定义为压缩后的每个数据平均占用的bit数比上其原始数据所占用的bit数。(Compression ratio is defined as the ratio of average bit-width per sample after compression and the original bit-width before compression)。数据的压缩是在压缩率和信号质量之间取舍的结果。

五、实测结果

补充几个TI给的实测和仿真的结果:

未经压缩的数据做2D-fft后的结果

在距离维度做压缩并解压缩后做2D-fft后的结果(压缩比率33%)

    肉眼上直观来看没有什么太大的差别,这里压缩比率33%是指将数据大小压缩为原始的33%,我们可以拿出对应距离门下的数据,看看该距离门下压缩前后做多普勒fft后的结果对比:

不同距离维度压缩比下同一个距离门下的能量值对比

    可以看到噪底能量会随着压缩比率的增加(从0到40%到33%)而恶化,这对于能量低的目标有可能有影响,但似乎也能接收,做任何事情都是有代价的.. 在设计后续的CFAR参数时需要考虑这里噪底增加的问题。(下同)

看看使用天线维度的数据构成block后做压缩的效果:

 天线维度压缩并解压缩后做2D-fft后的结果,压缩比率33%

不同天线维度的压缩比下同一距离门下的能量值对比

    可以看到噪底能量会随着压缩比率的增加(从0到40%到33%)而增加,且这里的恶化程度要高于前面的同压缩比率下的距离维度的压缩结果。

此外,Ti还有仿真的代码,但是我没有在对应的地方找到..: Memory Compression (ti.com)

从该目录中找到的Users Guide中看到的仿真结果中噪底增加还是很严重的:

六、总结

    本篇博文探讨车载毫米波雷达SOC芯片在数据处理过程中的数据压缩(data compression)问题,对数据压缩做了基本介绍,论述了数据压缩的可以给信号处理带来的改善,并给出了数据压缩的可行性/理论依据的说明以及数据压缩的实现方式,文章最后列出了Ti给的数据实测结果。本篇博文会基于对这方面知识理解的加深以及读者的反馈长期更新内容和所附资料,有不当之处或有其它有益的参考资料可以在评论区给出,我们一起维护,我会定期完善。

七、参考资料

1、Memory Compression and Decompression Engine for TI mmwave Radar

2、Radar Memory Compression Model IWR6843 Users Guide (ti.com)

3、AN5375, S32R RADAR Signal Compression (nxp.com.cn)

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨@#≯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值