一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

训练机器学习系统以进行ADC补偿的制作方法

2022-02-21 03:42:51 来源:中国专利 TAG:

训练机器学习系统以进行adc补偿
1.相关申请的交叉引用
2.本技术涉及同在申请中的标题为“使用机器学习系统的adc补偿(adc compensation using machine learning system)”的第16/933,568号美国专利申请,其在此以引用的方式并入本文中。
技术领域
3.本公开大体上涉及模数转换器,并且具体地涉及训练机器学习系统来补偿模数转换器处理信号期间的误差。


背景技术:

4.在电子装置中,模数转换器(“adc”)是一种将例如由麦克风拾取的声音或进入数码相机的光等模拟信号转换成数字信号的系统。adc还可以提供独立测量,例如将输入模拟电压或电流转换成表示电压或电流的量值的数字的电子装置。
5.存在数种adc架构。由于情况复杂并且需要精确匹配的组件,所以绝大多数adc是在集成电路系统内实施的。这些adc可以采用集成模拟电路和数字电路两者的混合信号集成电路(“ic”)的形式。
6.更具体地,adc将连续时间和连续幅度模拟信号转换成离散时间和离散幅度数字信号。所述转换涉及输入的量化,因此其必定会引入少量误差或噪声。此外,代替持续执行转换,adc周期性地进行转换,从而对输入进行采样,因此限制输入信号的可允许带宽。
7.adc的性能的特征主要在于其带宽和信噪失真比(“sndr”)。adc的带宽的特征主要在于其采样率。adc的sndr受许多因素影响,所述因素包括分辨率、线性和准确度(量化电平与真实模拟信号的匹配程度)、混叠和抖动。
8.在ic的设计、布局和制造期间,adc设计中引入了许多误差。例如,由于电路组件是非线性的,因此在设计阶段期间可能会引入误差。adc可能存在由其物理缺陷引起的非线性误差,从而导致所述adc的输出偏离其输入的线性函数(或就有意非线性adc而言的一些其它函数)。这些误差有时可以通过校准来减轻,或通过测试来防止。线性的重要参数是积分非线性和微分非线性。这些非线性引入失真,所述失真可能会降低adc的sndr比性能且因此降低其有效分辨率。
9.在布局阶段期间,可能会由于引起电容性adc(例如,用于三角积分adc或逐次近似寄存器(“sar”)adc中)的布局失衡且因此在所述电容性dac的传递函数中产生非线性的不希望的寄生效应而引入误差。
10.在制造阶段期间,可能会由于组件失配而引入误差,这可能会引起额外非线性以及偏移和增益误差。
11.为了校正此类误差,一种典型方法是增加adc中的电路的布局面积和功率,并且花费大量时间来优化电路设计和布局,这是一个极冗长且耗时的过程。
12.用于校正adc误差的另一种方法是校准。不利的是,通常需要用于每种不同类型的
误差的校准方法,这伴有大量数学分析和模型化,同时还增加了硬件,且因此增加了面积和成本。并且,如果组合了不同校准方法,则可能会发生不同校准循环的收敛问题,从而使情况甚至更加复杂。
13.在测量仪器和传感器市场中,adc发挥了关键作用,其当今表示大部分数字设备的核心。因此,adc的操作在计量准确度方面极大地影响测量或传感器设备的总体性能。为了提高此类仪器的性能,设计改进了线性和准确度的新adc或开发用于补偿adc误差的合适的技术是很重要的。


技术实现要素:

14.本公开的实施例提供一种设备,包括:adc,所述adc被配置成将模拟输入信号转换成数字输出信号;以及机器学习系统,所述机器学习系统被配置成补偿所述adc的电路系统内产生的模数转换误差,其中所述机器学习系统已被训练以通过误差信号补偿所述模数转换误差,所述误差信号是神经网络的输出与所述adc的滤波后输出之间的差。来自所述adc的所述滤波后输出可以由滤波器产生,所述滤波器被配置成从所述数字输出信号重构所述输入信号。所述滤波器可以被配置成从所述数字输出信号滤除一个或多个高次谐波。所述设备可以另外包括量化器,所述量化器被配置成减小所述滤波后输出的字宽。所述设备可以另外包括在所述adc的输出与所述机器学习系统的输入之间的延迟电路,其中所述延迟电路被配置成补偿由所述滤波器引起的传播延迟。所述设备可以另外包括被配置成将pvt参数输入到所述机器学习系统中的电路系统,其中所述adc的输出随所述pvt参数的值而变化,其中所述机器学习系统已被训练以补偿所述模数转换误差,同时考虑所述pvt参数的一个或多个值对所述adc的所述输出的影响。所述pvt参数可以是半导体制造相关过程变化、电压和/或温度。所述机器学习系统可以是已在训练阶段被预先配置成使用接收误差信号的成本函数补偿所述模数转换误差的神经网络,其中所述误差信号是所述训练阶段期间所述神经网络的输出与目标信号之间的差,所述目标信号包括所述adc的未滤波输出与所述adc的所述滤波后输出之间的差。来自所述adc的所述滤波后输出可以由滤波器产生,所述滤波器被配置成从所述数字输出信号中滤除除基频之外的所有频率。所述设备可以另外包括被配置成将pvt参数输入到所述神经网络中的电路系统,其中所述神经网络已被训练以补偿所述模数转换误差,同时考虑所述pvt参数的一个或多个值对所述adc的所述输出的影响。
15.本公开的实施例提供一种方法,包括:将模拟信号输入到adc中,所述adc被配置成将所述模拟信号转换成数字输出信号;以及通过机器学习系统修改所述数字输出信号,其中所述机器学习系统的计算参数被配置成补偿所述模拟信号到所述数字输出信号的转换期间由所述adc产生的失真,其中所述计算参数是在所述机器学习系统的训练阶段期间使用对误差信号进行运算的成本函数预先配置的,所述误差信号由所述机器学习系统的输出与目标信号之间的差产生,所述目标信号是作为来自所述adc的滤波后输出的函数产生的。所述计算参数可以包括分配给所述机器学习系统内的节点的权重和偏差。来自所述adc的所述滤波后输出可以由数字滤波器产生,所述数字滤波器被配置成滤除所述机器学习系统被训练以补偿的预定量的失真。所述方法可以另外包括量化所述滤波后输出以产生所述目标信号。所述目标信号可以是所述adc的未滤波输出与作为所述滤波后输出的函数的信号
之间的差。所述方法可以另外包括将pvt参数输入到所述机器学习系统中,其中所述机器学习系统的所述计算参数已在所述训练阶段被配置成补偿所述失真,同时考虑所述pvt参数对所述失真的影响。
16.本公开的实施例提供一种方法,包括:将第一模拟信号输入到adc中,所述adc被配置成将所述第一模拟信号转换成第一数字输出信号;以及训练机器学习系统以补偿失真误差,所述失真误差是所述第一模拟信号到所述第一数字输出信号的转换期间由所述adc在所述第一数字输出信号内产生的。所述方法可以另外包括:在所述机器学习系统的所述训练之后,将第二模拟信号输入到所述adc中以产生第二数字输出信号;以及通过经过训练的机器学习系统修改所述第二数字输出信号以产生校正后输出信号,其中所述校正后输出信号的失真误差比所述第二数字输出信号少。所述训练可以使用对误差信号进行运算的成本函数来配置所述机器学习系统内的计算参数,所述误差信号是由所述机器学习系统的输出与目标信号之间的差产生的,所述目标信号是作为来自所述adc的滤波后输出的函数而产生的,其中来自所述adc的所述滤波后输出是由被配置成滤除预定量的失真误差的数字滤波器产生的。所述方法可以另外包括将pvt参数输入到所述机器学习系统中,其中所述机器学习系统的所述计算参数在所述训练期间进一步被配置成补偿所述失真误差,同时考虑所述pvt参数对所述第一数字输出信号的影响。
附图说明
17.图1示出了根据本公开的某些实施例的用以补偿adc误差的机器学习系统的训练的示意性框图。
18.图2示出了根据本公开的某些实施例的用以补偿adc误差的机器学习系统的验证的示意性框图。
19.图3示出了根据本公开的某些实施例的被配置成补偿adc误差的机器学习系统的推理阶段的示意性框图。
20.图4示出了根据本公开的某些实施例的用以补偿adc误差的机器学习系统的训练的示意性框图。
21.图5示出了根据本公开的某些实施例的用以补偿adc误差的机器学习系统的验证的示意性框图。
22.图6示出了根据本公开的某些实施例的被配置成补偿adc误差的机器学习系统的推理阶段的示意性框图。
具体实施方式
23.本公开的实施例提供用以补偿adc误差的机器学习系统。本质上,机器学习系统被训练以存储“抗差”,从而理想地产生校正后adc。本公开的实施例由于不需要对adc中的每一个误差进行数学分析、不需要用于实现校准的准确误差模型(每一参数将需要误差模型来进行校准,这会使校准复杂化)并且不需要在adc中实施将用于校准模拟电路误差的电路系统而明显降低了硬件复杂性。此外,在模拟电路系统中添加电路元件以校准这些误差是以可实现的adc性能提高为代价的,这是因为会引入额外的寄生效应。相比而言,本公开的实施例不需要将此类额外模拟电路添加到adc以进行校准,并且因此,可实现的adc性能的
提高不会受影响,而是会替代地提高。例如,不需要增大额外电路的面积来改进匹配,并且不必增大电流来改进线性。另外,如果需要校准多个参数,则传统校准方法可能需要大量增加额外模拟电路来实现此校准;而本公开的实施例不需要额外的模拟电路来进行校准。替代地,只添加一些数字硬件和代表性数据集。
24.本公开的各种所公开实施例另外包括例如以下优点:从adc直接馈送数据而不需要adc与机器学习系统之间的任何存储装置,减小了从adc到机器学习系统的输入字宽而没有性能损失,并且包括所需过程信息以使机器学习系统能够补偿此类参数的变化(例如,温度/电压漂移和过程移位)。adc可以被设计成使其在不针对非线性或其它误差进行优化的情况下具有足够低的电路噪声,并且替代地利用机器学习系统来补偿所有此类误差。
25.此类机器学习系统可以实施一种或多种任何熟知的机器学习算法,包括实施神经网络(例如,人工神经网络、深度神经网络、卷积神经网络、递归神经网络、自动编码器、强化学习等)的算法、模糊逻辑、人工智能(“ai”)、深度学习算法、深度结构学习分层学习算法、支持向量机(“svm”)(例如,线性svm、非线性svm、svm回归等)、决策树学习(例如,分类回归树(“cart”))、集成法(例如,集成学习、随机森林、bagging和pasting、补丁和子空间(patches and subspaces)、boosting、stacking等)、维数约简(例如,投影、流形学习、主要成分分析等)和/或深度机器学习算法,例如在deeplearning.net网站(包括所有软件、公开案和去往此网站内所提到的可用软件的超链接)处所描述且可公开获得的那些算法,所述网站在此以引用的方式并入本文中。可在本公开的实施例内利用的可公开获得的机器学习算法、软件和库的非限制性例子包括python、opencv、inception、theano、torch、pytorch、pylearn2、numpy、blocks、tensorflow、mxnet、caffe、lasagne、keras、chainer、matlab深度学习、cntk、matconvnet(实施卷积神经网络以用于计算机视觉应用的matlab工具箱)、deeplearntoolbox(用于深度学习的matlab工具箱(来自rasmus berg palm))、bigdl、cuda-convnet(卷积(或更笼统地说前馈式)神经网络的快速c /cuda实施方案)、深度信念网络(deep belief networks)、rnnlm、rnnlib-rnnlib、matrbm、deeplearning4j、eblearn.lsh、deepmat、mshadow、matplotlib、scipy、cxxnet、nengo-nengo、eblearn、cudamat、gnumpy、3通道因子(3-way factored)rbm和mcrbm、mpot、convnet、elektronn、opennn、neuraldesigner、theano广义hebbian学习、apache singa、lightnet和simplednn。
26.关于人工神经网络(在本文中也简称为“神经网络”)的利用描述本文所公开的各种实施例。然而,本领域的普通技术人员能够实施根据本公开的实施例的任何恰当的机器学习系统,例如先前公开的用于补偿adc误差的机器学习系统。
27.神经网络通常基于被称为人工神经元的连接单元或节点的集合,所述人工神经元对生物大脑中的神经元进行松散建模。每个连接,例如生物大脑中的突触,可以将信号传输到其它神经元。然后,接收信号的人工神经元可以处理所述信号,并且可以用信号通知连接到所述信号的神经元。在神经网络实施方案中,连接处的“信号”是实数,并且通过每个神经元的输入的总和的某一非线性函数(例如,sigmoid激活)来计算所述神经元的输出。连接被称为边缘。神经元和边缘通常具有随着神经网络的训练进行而调整的权重。权重增大或减小连接处的信号的强度。神经元可以具有阈值,使得只有在集合信号超越所述阈值时才发送信号。通常,神经元聚合成层。不同的层可以对其输入执行不同的变换。信号可能在多次穿过层之后,从第一层(输入层)行进到最后一层(输出层)。神经网络架构可以被配置为具
有一个或多个隐藏层并且具有反向传播学习算法的前馈式网络。神经网络的实施方案可以涉及三个阶段:训练或学习阶段;验证阶段;以及推理或产生阶段。在训练阶段,神经网络基本上通过将其实际输出与正确输出(或至少更接近所需输出的输出)进行比较来进行学习以发现误差。然后,所述神经网络相应地修改模型。在验证阶段,借助于可以与在训练阶段使用的数据不同的数据(“验证集”)来验证经过训练的神经网络。在推理或生产阶段,经过训练和验证的神经网络现在被配置并且能够提供对应于任何输入的输出。
28.前述内容的结果是实施adc的adc电路系统以及已被训练以“知道”模数转换误差是什么并且还“知道”如何补偿所述误差的神经网络。如本文中所提到,模数转换误差可以是由adc内的电路系统引起的任何类型的失真,所述失真使得数字输出信号不是输入模拟信号的真实或“理想”的数字转换。此类模数转换误差可能会由adc电路系统内的非线性或可以产生此类adc误差的任何其它缺陷或处理参数引起,所述误差可以采用噪声、失真、谐波等形式。adc可以是在利用adc的任何类型的装置或电路系统内实施的任何类型的adc。本文中所描述的神经网络可以用任何类型的(如本文中将进一步公开的)硬件和/或软件例如在适用于实施神经网络的数字电路系统的适当集内实施。附图内对神经网络的说明并不限于本公开的实施例的范围。在各种附图内,“(a)”表示信号是模拟信号,并且“(d)”表示信号是数字信号。
29.图1示出了训练阶段的示例性示意图,在所述训练阶段,来自装置adc 101的滤波后输出(标记为目标信号)用于训练神经网络102以补偿装置adc 101的输出信号。滤波后输出是通过使adc 101的输出信号通过数字滤波器103而产生的,所述数字滤波器103用于大体上滤除在模拟输入信号转换期间由adc 101产生的谐波和过度噪声,这在某种意义上重构了输入信号。本质上,滤波器103的输出充分表示通常将由参考adc产生的“理想”数字信号,所述参考adc产生比装置adc 101更少的转换误差。根据本公开的实施例,滤波器103可以被配置成在滤波器103的输出处产生正弦波,所述正弦波充分表示参考adc的输出,所述参考adc产生比装置adc 101更少的所需量转换误差。这可以通过设计滤波器103的参数来完成,以使所述滤波器103滤除神经网络102要被训练以补偿的失真(例如,谐波和过多噪声)量。
30.滤波器103可以是有限脉冲响应(“fir”)滤波器或无限脉冲响应(“iir”)滤波器。取决于训练阶段期间使用的输入信号,滤波器103可以是低通、带通或高通滤波器。可以在训练频率下选择滤波器的增益。就正弦波输入而言,滤波器103可以被配置成使输入信号的基谐波通过,并且阻挡所有高次谐波。取决于输入信号和谐波的频率,可以改变滤波器103的功能。例如,如果输入信号的频率相当高,则可以使用带通滤波器来去除低频和高频噪声以及信号谐波。滤波器103可以是可编程滤波器,其将被配置成允许对神经网络102进行频率相关训练。
31.为了补偿通过滤波器103的传播延迟,可以在adc 101与神经网络102之间引入延迟电路或元件107,所述延迟电路或元件107可以被配置成取决于其需要而具有固定延迟或频率相关延迟。根据本公开的某些实施例,由于滤波器103可能长期取决于通带/阻带要求,从而产生较大字宽,且因此带来在神经网络102内实施的额外硬件,因此可以在滤波器103之后引入任选的量化器106以减少输出位的量。量化是数字信号处理中的过程,其通常通过有限数量的元件将来自大集合的输入值映射到(可数)较小集合中的输出值。量化器106可
以是被配置成执行所需量化(例如,截断、舍入、缩放、最高位数、最低位数等)的任何装置。根据本公开的替代实施例,可以遍及系统使用一个或多个量化器来限制字宽,且因此有可能节省硬件。
32.根据本公开的某些实施例,利用模拟输入信号,通过误差信号训练神经网络102,所述误差信号是来自神经网络102的校正后输出信号与目标信号之间的差。为了实现所述训练,从神经网络102的校正后输出信号减去目标信号。产生的误差信号通过用于训练神经网络102的成本函数104传递(例如,使用列文伯格-马夸尔特算法、反向传播(梯度下降)算法或类似算法)。反向传播关于损失函数计算前馈式神经网络的权重空间中的梯度。使用反向传播来调整神经网络102的计算参数(例如,权重和/或偏差)(例如,遵循最速下降法,也称为梯度下降)。然而,可以利用任何合适的成本函数和训练算法来训练神经网络。可以持续地或反复地执行训练阶段,直到在完成训练阶段之后,神经网络102的校正后输出信号相比于目标信号具有最小误差(或至少较少误差的所需集)为止。可以用于测量误差的一种方式是利用快速傅里叶变换来检查校正后输出信号的频谱中的失真。可替换的是,成本输出可以用于使用任何恰当的方法来确定误差何时减少到可接受的水平。
33.可以在不同情境下执行神经网络102的训练。例如,根据本公开的实施例,可以针对每个单独的adc 101(例如,针对包含adc 101的每个ic,或甚至分别针对在单个ic上实施的多个adc中的每个adc 101)执行训练阶段。此方法产生针对每个adc 101进行特定训练的神经网络102。应注意,由于每个单独的adc的制造存在变化,因此神经网络102的针对一个特定adc的训练对于另一adc可能无法同样很好地起作用,且因此,在此类情况下,可能必须(至少部分地)重新训练另一adc。
34.根据本公开的实施例,可以对一批多个adc(例如,对各自包含adc 101的多个ic)执行训练阶段。以此方式,在训练之后,经过训练的神经网络102将误差概括成一个模型,即神经网络知识库。此知识库现在表示存在于一批多个adc中的所有误差。因此,此知识库可以表示并补偿跨越多个adc进行充分概括的误差。
35.根据本公开的某些实施例,可以任选地并入一个或多个pvt参数105,使得神经网络102可以进一步补偿adc 101的输出,这是因为此类pvt参数会影响或引起adc 101的运作中的误差。
36.如本领域中众所周知的,pvt是过程-电压-温度(process-voltage-temperature)的首字母缩写。过程变化考虑了半导体制造过程中的偏差。过程变化可能是由于例如温度、压力和掺杂剂浓度等制造条件的变化而产生的。ic内利用的各种电压(例如,电源电压、参考电压、装置上的偏置条件)可以不同于在日常操作期间建立的设计值并且还超出其寿命,这可能会影响adc中的电路组件的操作。并且,当ic在操作中时,整个ic的温度可以变化,这可能会因此影响各种电路组件的操作参数。
37.例如,例如被实施以并入有adc的模拟电路已知为电压和/或温度相关的。因此,可以向神经网络102提供电压-温度(“vt”)角点信息作为输入,以使神经网络102能够校正电压和/或温度漂移,所述电压和/或温度漂移可能会引起adc 101的操作中的误差,从而使得神经网络102可以进一步补偿此类电压和/或温度漂移。此外,通常可以容易地获得关于集成电路的温度和电压信息。例如,其上实施有adc 101的集成电路可以包括温度和/或电压传感器,所述温度和/或电压传感器的输出可以连同adc 101的输出一起输入到神经网络
102中。因此,当训练神经网络102时,成本函数104将考虑对由要用于调整神经网络102的节点内的权重和/或偏差的此类处理输入引起的误差的影响。
38.应注意,根据本公开的实施例,可以将任何类型的过程相关信息作为pvt输入添加到神经网络102,所述过程相关信息例如各种技术参数(例如,电子迁移率、晶体管参数(例如,vt、ft、β、掺杂)、电阻器参数(例如,标称电阻器值、电压相依性)或电容器参数(例如,标称电容器值、电压相依性))。只要存在测量过程相关参数的方式,就可以将此测量的输出作为pvt输入提供到神经网络102。此外,即使无法在集成电路上测量特定参数,也可以根据晶片测量获得所述特定参数,然后此类pvt参数可以存储在集成电路上的存储器装置(未示出)中,或作为数字pvt输入从外部源(例如,外部存储器装置或微处理器或微控制器)供应到神经网络102。此外,可以基于所有可用pvt参数或特定单个adc或一批adc的一个或多个pvt参数的任何特定所需集而训练神经网络102。
39.图2示出了验证阶段的示例性示意图,可以执行所述验证阶段,由此使模拟输入信号输入到adc 101,以检查误差现在是否明显较小或至少对于adc 101可能遇到的一组示例性输入最小化或减小。可以与关于图1所描述的方式类似的方式,或通过本领域中众所周知的任何其它恰当的技术来测量误差。当已对一批或多批adc执行训练时,可以利用此验证阶段来确定经过训练的神经网络102是否也符合要求地补偿了另一批adc。如关于图1所描述,如果已通过一个或多个pvt参数训练神经网络102,则可以在验证阶段内利用这些pvt参数。
40.根据本公开的某些实施例,例如在单个样本训练过程中(即,不按adc的批次)训练adc 101的情况下,可以省略验证阶段,这是因为关于图3描述的推理阶段可能是足够的。
41.图3示出了推理或生产阶段,由此(例如,在集成电路100上)实施adc电路系统,即adc 101和神经网络102,以在最终用途应用(例如,集成电路100的最终用途应用)内进行操作。为清楚起见,未示出集成电路100内的其它电路系统。在此推理阶段期间,将模拟输入信号应用于adc 101,所述adc 101产生数字输出信号,所述数字输出信号随后由经过训练的神经网络102修改以产生补偿后或校准的校正后输出信号,所述补偿后或校准的校正后输出信号可以由ic 100内的其它电路系统利用。应注意,根据本公开的某些实施例,推理阶段还可以用于经过训练的神经网络102的最终生产测试。例如,可以通过将来自神经网络102的输出与针对此所设计adc 101指定的参数进行比较来检查所述输出。并且,如关于图1所描述,可以操作神经网络102以在推理阶段期间考虑一个或多个pvt参数105。
42.图4示出了根据本公开的某些实施例的用于补偿装置adc 201内的误差的神经网络202的训练。在此类实施例中,通过adc 201的输出信号(即,无神经网络202的补偿)与adc 203的滤波后输出之间的差来训练神经网络202。接着从输出自神经网络202的预测误差信号减去标记为目标信号的此差,以产生误差信号,所述预测误差信号通过成本函数204进行处理以训练神经网络202(例如,使用反向传播或类似算法)。滤波后输出是通过使输出信号从adc 201通过数字滤波器203而产生的,所述数字滤波器203可以与滤波器103类似的方式进行配置。
43.为了补偿通过滤波器203的传播延迟,可以在adc 201与神经网络202之间引入延迟电路或元件207,所述延迟电路或元件207可以与延迟电路或元件107类似的方式配置。根据本公开的某些实施例,由于滤波器203可能长期取决于通带/阻带要求,从而产生较大字宽,且因此带来在神经网络202内实施的额外硬件,因此可以在滤波器203之后引入任选的
量化器206以减少输出位的量。量化器206可以与量化器106类似的方式配置。
44.这种用于训练神经网络202的方法使得神经网络202只需要提供误差,且因此不必提供完整的adc动态范围(或代码),这可以使得实施神经网络202所需要的硬件更少,这是因为由于adc 201产生的误差通常仅跨越adc 201的较低有效位(“lsb”),因此需要更少的硬件。因此,由于神经网络202仅补偿adc 201内的失真,因此所述神经网络202的输出字宽(和内部计算字宽)可以较小。如关于图1的训练阶段类似地描述的,图4的训练阶段方法可以应用于单个adc 201或一批adc。
45.根据本公开的替代性实施例,可以通过用直接提供误差信号的带阻滤波器阻挡基频来提供目标信号,而不是从延迟的未滤波输出信号减去滤波后输出信号。取决于模拟输入信号,可以使用的滤波器可以是带阻滤波器、(针对极高频输入信号的)低通滤波器或(针对极低频输入信号的)高通滤波器。
46.图5示出了验证阶段的示例性示意图,可以执行所述验证阶段,由此使模拟输入信号输入到adc 201,以检查误差现在是否明显较小或至少对于adc 201可能遇到的一组示例性输入最小化或减小。可以如关于图2类似地描述的方式执行验证阶段。当已对一批或多批adc执行训练时,可以利用此验证阶段来确定经过训练的神经网络202是否也符合要求地补偿了另一批adc。
47.根据本公开的某些实施例,例如在单个样本训练过程中(即,不按adc的批次)训练adc 201的情况下,可以省略验证阶段,这是因为关于图6描述的推理阶段可能是足够的。
48.图6示出了推理阶段的例子,所述推理阶段可以用于adc 201的最终生产测试以及用于实施有adc 201的(例如,集成电路200的)最终用途应用内。为清楚起见,未示出集成电路200内的其它电路系统。根据本公开的某些实施例,从adc 201的输出信号减去输出自神经网络202的预测误差以提供补偿的校正后输出信号。
49.为了降低所添加的神经网络(即,硬件)的复杂性,可以减少馈送到神经网络的adc位的数量,这是因为馈送到神经网络中的位越多,硬件的实施成本就越高。
50.如先前关于图1-6所描述的,可以将例如vt角点信息等pvt参数作为pvt输入提供到神经网络,以使得神经网络能够校正待补偿的误差的电压和温度漂移。为了展现将此类pvt参数提供到补偿adc的神经网络的效果,采用与先前相同的多项式失真函数。可以不同方式添加温度和电压相依性。例如,可以将温度和电压相依性增益添加到如下多项式:
51.y=g(t)
·
h(v)
·
(a1x a2x2 a3x3 a4x4 a5x5)
52.可替换的是,可以将温度和电压相依性添加到高次项(谐波):
53.y=a1x g(t)
·
h(v)
·
(a2x2 a3x3 a4x4 a5x5)
54.任意选择温度相依性以引入随温度变化的线性特性:
[0055][0056]
任意选择电压相依性以引入与电压的二次相依性。
[0057]
h(v)=0.5v2 0.495,
[0058]
选择这些相依性以使其在-40℃到150℃的温度范围以及0.9v到1.1v的电压范围内在a1、a2、a3、a4、a5系数中引入 /-10%的误差。
[0059]
此外,定义九个vt角点:
[0060]
#温度[℃]电压[v]11500.921501.031501.14250.95251.06251.17-400.98-401.09-401.1
[0061]
正如所预期的那样,如果将vt输入提供到神经网络,则两种情况下的结果都会好得多。在无vt补偿的情况下,sndr在补偿之后升高,但未恢复到10位。如果将vt输入添加到神经网络,则sndr恢复到大致9.5位(缺失的0.5位是由于输入信号不是满标度的)。
[0062]
应注意,根据本公开的实施例,本文中关于图1-6所描述的训练、验证和/或阶段可以在ic上或脱离ic实施各种组件或前述内容的组合的方式执行。例如,产生装置adc的测试芯片,并且测量预先选择的数量的样本。通过此数据,在软件中训练神经网络。接着,将(具有固定偏差和权重的)经过训练的神经网络连同装置adc实施到产品(例如,实施有adc电路系统的ic)中。
[0063]
在本公开的某些实施例中,可以使用不同频率的多个输入信号来执行机器学习系统的训练。
[0064]
如本文中已描述,本公开的各种实施例实施被配置成补偿adc误差的机器学习系统。此机器学习系统可以在硬件和/或软件内实施,例如在一个或多个数据处理系统内实施。然而,本文中所描述的功能性不限于实施到任何特定硬件/软件平台中。
[0065]
如本领域技术人员应了解,本公开的各方面可体现为系统、过程、方法和/或程序产品。因此,本公开的各种方面(例如,机器学习系统)可以采用完全硬件实施例以及完全软件实施例(包括固件、常驻软件、微码等)或组合软件和硬件方面的实施例(在本文中可以笼统地称为“电路”、“电路系统”、“模块”或“系统”)的形式。此外,本公开的各方面可以采用程序产品的形式,所述程序产品体现在上面体现有计算机可读程序代码的一个或多个计算机可读存储介质中。(然而,可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。)
[0066]
计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外、生物、原子或半导体系统、设备、控制器或装置,或前述的任何合适组合,其中计算机可读存储介质本身不是暂时性信号。计算机可读存储介质的更具体例子(非详尽列表)可以包括以下各项:具有一个或多个导线的电连接件、便携式计算机磁盘、硬盘、随机存取存储器(“ram”)、只读存储器(“rom”)、可擦除可编程只读存储器(“eprom”或快闪存储器)、光纤、便携式压缩光盘只读存储器(“cd-rom”)、光学存储装置、磁性存储装置或前述的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是可以包含或存储供指令执行系统、设备、控制器或装置使用或者结合指令执行系统、设备、控制器或装置使用的程序的任何有形介质。可以使用任何恰当的介质来传输体现在计算机可读取信号介质上的程序代码,所述介质包括
但不限于无线、导线、光纤光缆、rf等,或前述的任何合适的组合。
[0067]
计算机可读信号介质可以包括其中体现有计算机可读程序代码的所传播数据信号,例如,在基带中或者作为载波的一部分。此所传播信号可以采用多种形式中的任一种,包括但不限于电磁、光学或其任何合适的组合。计算机可读信号介质可以是并非计算机可读存储介质并且可以传达、传播或传输供指令执行系统、设备、控制器或装置使用或者结合指令执行系统、设备、控制器或装置使用的程序的任何计算机可读介质。
[0068]
附图中的框图示出了根据本公开的各种实施例的电路系统、系统、方法、过程和程序产品的可能实施方案的架构、功能性和操作。就此而言,框图中的某些框(例如,神经网络102、202;成本函数104、204;滤波器103、203;量化器106、206;延迟电路107、207)可以表示模块、段或代码的部分,所述模块、区或代码的部分包括用于实施指定逻辑功能的一个或多个可执行程序指令。还应注意,在一些实施方案中,各个框中提及的功能可以不按附图中所提及的次序发生。例如,根据所涉及的功能性,连续示出的两个框实际上可以基本上同时执行,或所述框有时可以按相反次序执行。
[0069]
在软件中实施以供各种类型的处理器执行的模块可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、程序或函数。然而,所标识模块的可执行文件不必在物理上定位在一起,而是可以包括存储在不同位置中的不同指令,所述指令在逻辑上结合在一起时包括所述模块并且实现所述模块的规定目的。实际上,可执行代码的模块可以是单个指令,或许多指令,并且可以甚至分布在不同程序当中的数个不同代码段上,并且跨越数个存储器装置。类似地,可以在本文中在模块内标识和示出操作数据(例如,本文中所描述的已调整权重和/或偏差的知识基础),并且所述操作数据可以任何合适的形式体现并组织在任何合适类型的数据结构内。操作数据可以收集为单个数据集,或可以分布在不同位置上,包括分布在不同存储装置上。数据可以在系统或网络上提供电子信号。
[0070]
这些程序指令可以被提供到通用计算机、专用计算机的一个或多个处理器和/或控制器或其它可编程数据处理设备(例如,控制器)以产生机器,使得经由计算机的处理器或其它可编程数据处理设备执行的指令创建用于实施在框图的一个或多个框中指定的功能/动作的电路系统或方式。
[0071]
还应注意,框图中的每个框和框图中的框(例如,神经网络102、202;成本函数104、204;滤波器103、203;量化器106、206;延迟电路107、207)的组合可以由执行指定功能或动作的专用的基于硬件的系统(例如,其可以包括一个或多个图形处理单元)或专用硬件和计算机指令的组合实施。例如,模块(例如,神经网络102、202;成本函数104、204;滤波器103、203;量化器106、206;延迟电路107、207)可以实施为硬件电路,包括自定义vlsi电路或门阵列,逻辑芯片、晶体管、控制器等现成的半导体,或其它离散组件。模块(例如,神经网络102、202;成本函数104、204;滤波器103、203;量化器106、206;延迟电路107、207)还可以在可编程硬件装置中实施,所述可编程硬件装置例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑装置、专用ic、微控制器、芯片上系统、通用处理器、微处理器等。
[0072]
可以一种或多种编程语言的任何组合来编写用于实现本公开的各方面的操作的计算机程序代码,即指令,所述编程语言包括java、smalltalk、python、c 十等面向对象的编程语言,“c”编程语言或类似的编程语言等常规程序编程语言,或本文中所公开的任一种
机器学习软件。
[0073]
这些程序指令还可以存储在计算机可读存储介质中,所述计算机可读程序指令可以引导计算机系统、其它可编程数据处理设备、控制器或其它装置以特定方式起作用,使得存储在计算机可读介质中的指令产生制品,所述制品包括实施在框图的一个或多个框中指定的功能/动作的指令。
[0074]
程序指令还可以加载到计算机、其它可编程数据处理设备、控制器或其它装置上以使一系列操作步骤在计算机、其它可编程设备或其它装置上执行以产生计算机实施的过程,使得在计算机、其它可编程设备或其它装置上执行的指令提供实施在框图的一个或多个框中指定的功能/动作的过程。
[0075]
本文中参考“配置”装置或“被配置成”执行某些功能的装置。应理解这可以包括选择预定义逻辑块且逻辑上使它们相关联,使得所述预定义逻辑块提供特定逻辑功能,这些逻辑功能包括监测或控制功能。还可以包括改进控制装置的基于编程计算机软件的逻辑、布线离散硬件组件或上述内容中的任一者或全部的组合。此类已配置装置物理地被设计成执行指定功能。可以将各种单元、电路或其它组件(例如,神经网络102、202)描述为“被配置成”执行任务(例如,训练、验证和推理阶段)。在此上下文中,“被配置成”是结构的广义引述,大体上意味着“具有能够”在操作期间执行任务的“电路系统”。因而,即使当单元/电路/组件当前不接通时,所述单元/电路/组件也可以被配置成执行任务。一般来说,形成对应于“被配置成”的结构的电路系统可以包括硬件电路。类似地,为描述的方便起见,各种单元/电路/组件可以被描述为执行任务。这些描述应被解释为包括词组“被配置成”。明显地,叙述被配置成执行一个或多个任务的单元/电路/组件并不旨在援引35u.s.c.
§
112第六段对所述单元/电路/组件的解释。
[0076]
在本文中的描述中,提供许多特定细节,例如以下各项的例子:成本函数、反向传播算法、机器学习系统、神经网络、滤波器、延迟元件、量化器、程序、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片、控制器等,以提供对本公开的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有一个或多个具体细节的情况下或在有其它成本函数、反向传播算法、机器学习系统、神经网络、人工智能系统、滤波器、延迟元件、量化器、方法、组件、材料等的情况下实践本公开。在其它实例中,可能未示出或未详细描述众所周知的结构、材料、神经网络、电路元件、逻辑功能、逻辑减法元件或操作,以免混淆本公开的各方面。至于本文中未描述的方面,关于特定材料、处理动作、电路和电路元件的许多细节是常规的,并且可以在计算、电子装置和软件技术内的教科书和其它来源中找到。
[0077]
本说明书通篇对“一实施例”、“实施例”、“各种实施例”、“某些实施例”或类似语言的引用意味着结合实施例描述的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,本说明书通篇出现的词组“在一个实施例中”、“在实施例中”、“实施例”、“某些实施例”、“各种实施例”和类似语言可以但不一定全都指代相同的实施例。此外,本公开的所描述特征、结构、方面和/或特性可以任何合适的方式在一个或多个实施例中组合。对应地,尽管最初可以将特征要求为以某些组合起作用,但在一些情况下,可以将来自所要求组合的一个或多个特征从组合中删除,并且所要求组合可以涉及子组合或子组合的变化形式。
[0078]
上文已关于特定实施例描述了益处、优点和对问题的解决方案。然而,这些益处、
优点、对问题的解决方案以及可能使任何益处、优点或解决方案出现或变得更明显的任何元件不应被理解为任何或所有权利要求的重要、必要或基本的特征或元件。另外,除非明确地描述为基本或重要的,否则本文中描述的组件并不是实践本公开所必需的。
[0079]
已描述了本公开的数个实施例。然而,应理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其它实施例在所附权利要求书的范围内。
[0080]
应了解,据称将耦合的任何组件可以直接或间接地耦合或连接。在间接耦合的情况下,可以在据称将耦合的两个组件之间定位额外的组件。
[0081]
除非上下文另外明确规定,否则单数形式“一(a/an)”以及“所述”包括多个提及物。如本文中所使用,当在实体列表的上下文中使用时,术语“和/或”是指以单独或组合形式存在的实体。因此,例如,词组“a、b、c和/或d”分别包括a、b、c和d,并且还包括a、b、c和d的任何及所有组合和子组合。
[0082]
本文中所使用的标题仅用于组织目的,并且不意图用于限制说明书的范围。如本技术通篇所使用的,词语“可以”以准许性意义(即,意味着具有......的可能)而非强制性意义(即,意味着必须)来使用。类似地,词语“包括(include、including和includes)”意味着包括但不限于。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献