优化您的设计以管理量化错误

量化是将连续的无限值映射到更小的离散有限值集合的过程。在模拟和嵌入式计算的上下文中,它是关于用数字表示来近似真实世界的值,这对值的精度和范围造成了限制。量化在算法中引入了各种误差来源,如舍入误差、下溢或溢出、计算噪声和极限环。这导致了理想系统行为和计算出的数值行为之间的数值差异。

要管理量化的效果,你需要选择合适的数据类型来表示真实世界的信号。您需要考虑的精度,范围,以及用于将信号进行编码的数据类型的比例,也占了你的算法的数值行为量化的非线性累积效应。当你有结构,如反馈回路此累积效果将进一步加剧。


为什么量化问题

嵌入式硬件的设计转换过程需要考虑量化误差。量化误差影响信号处理、无线、控制系统、FPGA、ASIC、SoC、深度学习等应用。

量化的信号处理和无线应用

在信号处理的应用中,量子化误差会产生噪声并使系统性能下降信噪比(SNR)。的SNR以dB测量和一般被描述为x分贝减少用于每个附加位。为了管理量化噪声,并保持在可接受的水平,则需要选择合适的设置,如数据类型和舍入模式。

优化量化FIR滤波器。

量化的控制系统

在设计控制系统时,特别是为低功耗微控制器设计时,可以使用整数或定点算法来平衡实时性能要求和低功耗约束。在这样的设计中,您需要选择数据类型来适应来自输入传感器的信号的动态范围和精度,同时满足输出信号的精度要求,所有这些都不会因为量化而遇到数值差异。

see example).

" data-toggle="lightbox">

磁场定向控制用永磁同步电动机的量子化模型(见例如)。

量化的FPGA,ASIC和SoC开发

从浮点到定点转换的设计可以帮助降低FPGA资源的利用率,降低了功耗,满足时延要求等降低电力和资源消耗。然而,这种转换引入量化误差,所以你必须预算的量化噪声适当将您的设计时。

see example).

" data-toggle="lightbox">

对于数字下变频器LTE量化模型(见例如)。

量化深学习

量化对于优化深度学习模型非常重要,因为它有助于在部署到嵌入式系统时加速推理。您可以使用8位整数进行混合精度推理,目前正在进行学术研究,探索4位和6位整数的量化。

read article).

" data-toggle="lightbox">

经缩放MNIST的分类率的混淆矩阵(读文章)。


如何量化工作原理

量化误差是非线性操作的累积效应,如信号小数部分的舍入或信号动态范围的溢出。在转换嵌入式硬件设计时,您可以通过观察设计中的关键信号或变量,并对量化错误进行预算,从而使数值差异在可接受的范围内,从而将量化错误考虑在内。

控制系统中各点的量子化误差,表现出量子化的累积非线性性质。


用MATLAB和Simulink进行量化万博1manbetx

随着MATLAB和Simulin万博1manbetxk,您可以:

  • 探索和分析量化误差传播
  • 自动量化您的设计,以有限的精度
  • 调试量子化导致的数值差异

研究和分析量化误差

您可以通过自动模型范围内的工具收集模拟数据和统计数据。此数据的MATLAB可视化使您能够探索和分析您的设计,以了解数据类型的选择如何影响底层信号。

将仿真信号的范围和精度可视化。

自动量子化您的设计

您可以通过选择特定的数据类型来量化您的设计,或者您可以迭代地探索不同的定点数据类型。使用有指导的工作流,您可以看到量化对系统的数值行为的总体影响。

或者,您可以解决优化问题,并为您的设计选择最优的异构数据类型配置,以满足对系统数值行为的容忍约束。

使用定点工具的转换工作流。

了解更多关于定点转换:

调试量子化造成的数值差异

使用MATLAB,您可以识别、跟踪和调试由于量化而导致的数值问题的来源,如设计中的溢出、精度损失和范围或精度的浪费。

跟踪溢出到MATLAB代码中的相应行。

参见:滤波器的设计,电机控制设计的Simulink万博1manbetx,硬件设计与MATLAB和Simulink万博1manbetx