I find that the valid range for CP4Q_FMTA is between -32,768 and +28621(6FFF).
When i use spt-tools in matlab to decompression data,if the source data in 6FFF-7FFF will be decompressed to 7F FF.
When i use SPT in S32R45 to decompression data,if the source data in 6FFF-7FFF will be decompressed to 80 00.
So the valid data of CP4Q_FMTA is between -32768 and 28671.I's that right?
已解决! 转到解答。
如果我没理解错,你将连续的4个数作为输入来压缩,在跳变处会导致具体幅值差别,建议你做如下测试:
生成4通道复数数组,幅值范围从0x8_0000到0x7_FFFF (24-bit signed number), 通道间加入随机相位变化,将此数据作为输入,对比解压缩结果。
另外, MATLAB SPT TOOLBOX中包含了很多PDMA使用样例,可以参考。
压缩算法采用了“Block floating point” 方法,具体细节确实没有在RM中说明。通常来说,选择合适的压缩算法,建议利用MATLAB TOOLBOX工具,结合实际采样的雷达信号,对比不同压缩模式下SNR和动态范围损失对整个系统的影响,并结合SRAM大小,综合考虑选择出合适的模式。
Hi Shi,
This was not correctly observed, the issue was probably caused by improper test methods or bugs in test software.
1. the input complex data for compression must have a similar Magnitude, otherwise, significant differences between inputs and outputs will be observed.
2. SPT hardware and MATLAB Toolbox give bit-exact outputs, please check your code and PDMA configurations if differences are seen.
是这样的,您可以查看图片最左侧的输入数据,当前我是使用了递增的数据进行压缩后再解压的过程,所以不会存在跳变很大的情况。
当前我有两个问题:
第一个,是硬件解压出的结果,在6FFF到7FFF之间被认为成了8000。但SPT TOOL是将其认成了7FFF,这一点SPT TOOL我认为没问题。下列列出了我的SPT压缩核函数与SPT解压核函数(二合一)与原始数据(ADCdataout.dat)。
第二个,是FMTA的压缩算法正常来说真的是将6FFF到7FFF之间的数据压缩成了7FFF吗?
最后我想请问一下,我看到有很多压缩算法,但是却没有相对应的压缩过程说明,以便我确定适合的压缩方式,能否提供压缩过程说明呢?
如果我没理解错,你将连续的4个数作为输入来压缩,在跳变处会导致具体幅值差别,建议你做如下测试:
生成4通道复数数组,幅值范围从0x8_0000到0x7_FFFF (24-bit signed number), 通道间加入随机相位变化,将此数据作为输入,对比解压缩结果。
另外, MATLAB SPT TOOLBOX中包含了很多PDMA使用样例,可以参考。
压缩算法采用了“Block floating point” 方法,具体细节确实没有在RM中说明。通常来说,选择合适的压缩算法,建议利用MATLAB TOOLBOX工具,结合实际采样的雷达信号,对比不同压缩模式下SNR和动态范围损失对整个系统的影响,并结合SRAM大小,综合考虑选择出合适的模式。