一种提高数模转换器的输出精度的方法和装置与流程

文档序号:12067613阅读:330来源:国知局
一种提高数模转换器的输出精度的方法和装置与流程

本发明涉及数模转换器技术领域,尤其涉及一种提高数模转换器的输出精度的方法和装置。



背景技术:

数模转换器,又称D/A转换器,简称DAC,是一种将二进制数字量形式的离散信号转换成以标准量(或参考量)为基准的模拟量的转换器。由数模转换器的工作原理可知,n位的数模转换器输出的分辨率为1/2n,输入精度为1。若实际应用中需要用到更小的分辨率,由于输入精度不能修改,则需要选择分辨率更高的数模转换器。但是分辨率越高的数模转换器越昂贵,并且数模转换器的分辨率不能无限地提高。

并且,因为数模转换器的输入是二进制的,所以能够输入一个整型数值,但不能输入浮点型数值。通常,在输入浮点型数值的时候,小数部分将被忽略,于是,小数部分成为输入误差。输入误差在短时间内的影响是小的,但是多次输入后,将会累计成为一个巨大的积分输出误差。



技术实现要素:

本发明的目的在于提出一种提高数模转换器的输出精度的方法和装置,能够利用低分辨率的数模转换器获得较高的输出精度。

为达此目的,本发明采用以下技术方案:

一方面,本发明提供一种提高数模转换器的输出精度的方法,包括:

根据数模转换器的输出精度和输入误差,计算数模转换器的输出误差;

获取至少一个所述输出误差,与预设阈值进行比较;

根据比较结果对数模转换器的整型输入值进行调整。

其中,获取至少一个所述输出误差,与预设阈值进行比较,根据比较结果对数模转换器的整型输入值进行调整,包括:

将多个连续的输出误差累加得到累计输出误差;

若所述累计输出误差大于第一阈值,则将数模转换器的整型输入值设置为浮点输入值取整,直到所述累计输出误差小于第二阈值;

若所述累计输出误差小于第二阈值,则将数模转换器的整型输入值设置为浮点输入值取整后加1,直到所述累计输出误差大于第一阈值。

其中,获取至少一个所述输出误差,与预设阈值进行比较,根据比较结果对数模转换器的整型输入值进行调整,包括:

根据数模转换器的输出精度和期望的精度,计算调整次数,所述调整次数≥数模转换器的输出精度/期望的精度;

若一个所述输出误差的绝对值大于预设阈值,则向数模转换器输入与调整次数相应数量的整型输入值;

其中一个所述整型输入值设置为浮点输入值取整,其他所述整型输入值设置为浮点输入值取整后加1。

其中,根据数模转换器的输出精度和输入误差,计算数模转换器的输出误差,包括:

获取浮点输入值;

对所述浮点输入值进行取整运算得到整型输入值;

计算输入误差,所述输入误差=整型输入值-浮点输入值;

所述整型输入值输入数模转换器后得到的输出误差=输出精度*输入误差。

进一步的,所述第一阈值的绝对值等于所述第二阈值的绝对值。

另一方面,本发明提供一种提高数模转换器的输出精度的装置,包括:

输出误差计算模块,用于根据数模转换器的输出精度和输入误差,计算数模转换器的输出误差;

误差比较模块,用于获取至少一个所述输出误差,与预设阈值进行比较;

输入调整模块,用于根据比较结果对数模转换器的整型输入值进行调整。

其中,输入调整模块具体用于:

将多个连续的输出误差累加得到累计输出误差;

若所述累计输出误差大于第一阈值,则将数模转换器的整型输入值设置为浮点输入值取整,直到所述累计输出误差小于第二阈值;

若所述累计输出误差小于第二阈值,则将数模转换器的整型输入值设置为浮点输入值取整后加1,直到所述累计输出误差大于第一阈值。

其中,输入调整模块具体用于:

根据数模转换器的输出精度和期望的精度,计算调整次数,所述调整次数≥数模转换器的输出精度/期望的精度;

若一个所述输出误差的绝对值大于预设阈值,则向数模转换器输入与调整次数相应数量的整型输入值;

其中一个所述整型输入值设置为浮点输入值取整,其他所述整型输入值设置为浮点输入值取整后加1。

其中,输出误差计算模块具体用于:

获取浮点输入值;

对所述浮点输入值进行取整运算得到整型输入值;

计算输入误差,所述输入误差=整型输入值-浮点输入值;

所述整型输入值输入数模转换器后得到的输出误差=输出精度*输入误差。

进一步的,所述第一阈值的绝对值等于所述第二阈值的绝对值。

本发明的有益效果为:

本发明通过计算输入浮点型数值时数模转换器的输出误差,并与预设阈值进行比较,从而根据比较结果对数模转换器的整型输入值进行调整,实现了在不更换高分辨率数模转换器且重新设计电路的情况下,得到等效的更高的输出精度。

附图说明

图1是本发明实施例一提供的提高数模转换器的输出精度的方法的流程图;

图2是本发明实施例一提供的对数模转换器的整型输入值进行调整的流程图;

图3是本发明实施例二提供的对数模转换器的整型输入值进行调整的流程图;

图4是本发明实施例三提供的提高数模转换器的输出精度的方法的流程图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

实施例一

本实施例提供一种提高数模转换器的输出精度的方法,适用于在数模转换器存在输出误差时,对其输入值进行调整,以消除输入浮点值时产生的输入误差。

图1是本发明实施例一提供的提高数模转换器的输出精度的方法的流程图。如图1所示,所述方法包括如下步骤:

S11,根据数模转换器的输出精度和输入误差,计算数模转换器的输出误差。

获取浮点输入值;对所述浮点输入值进行取整运算得到整型输入值,所述取整运算为取浮点输入值的整数部分,将小数部分省略;计算输入误差,所述输入误差=整型输入值-浮点输入值;所述整型输入值输入数模转换器后得到的输出误差=输出精度*输入误差,输出精度=1/2n,n为数模转换器的位数。

例如,要输入浮点数值1.5,取整得到整型值为1,输入误差=1-1.5=-0.5;三位的数模转换器的输出精度为1/23=1/8=0.125,则输出误差=-0.5*0.125=-0.0625。

S12,获取至少一个所述输出误差,与预设阈值进行比较,根据比较结果对数模转换器的整型输入值进行调整。

图2是本发明实施例一提供的对数模转换器的整型输入值进行调整的流程图,如图2所示,步骤S12包括:

S121,将多个连续的输出误差累加得到累计输出误差。

S122,若所述累计输出误差大于第一阈值,则将数模转换器的整型输入值设置为浮点输入值取整,直到所述累计输出误差小于第二阈值。

S123,若所述累计输出误差小于第二阈值,则将数模转换器的整型输入值设置为浮点输入值取整后加1,直到所述累计输出误差大于第一阈值。

本实施例中,所述预设阈值包括第一阈值和第二阈值,根据需要调整的频率来设定,预设阈值的绝对值越小,调整越频繁,一般情况下,|预设阈值|<1,第一阈值≥0,第二阈值≤0,优选的,可设置所述第一阈值的绝对值等于所述第二阈值的绝对值。

数模转换器的等效输出精度=最大的累计输出误差/调整方法执行时间。例如,第一阈值=0.5,第二阈值=-0.5,假设第x次输入后,累计输出误差=0.5625,大于第一阈值,则开始进行调整,调整方法执行时间为40秒时,等效输出精度=0.5265/40=0.014,调整方法执行时间为200秒时,等效输出精度=0.5265/200=0.0028。调整方法执行时间越长,数模转换器的等效输出精度越高。

另外,还可通过增加调整频率达到更高的等效输出精度,一秒输入40个整型输入值,等效输出精度=0.5265/40=0.014,一秒输入200个整型输入值,等效输出精度=0.5265/200=0.0028。

根据具体应用的需求,可以将调整设置为不规则的输入,两次输入之间的时间间隔不相等也是可以的。

本实施例适用于对累计的输出误差进行调整的情况,通过调整数模转换器的整型输入值,将输出误差抹平,达到等效提高数模转换器的输出精度的效果。

实施例二

本实施例对实施例一的部分步骤进行替换,通过相近的技术手段,达到近似的技术效果,解决相同的技术问题。

S21,根据数模转换器的输出精度和输入误差,计算数模转换器的输出误差。

S22,获取至少一个所述输出误差,与预设阈值进行比较,根据比较结果对数模转换器的整型输入值进行调整。

图3是本发明实施例二提供的对数模转换器的整型输入值进行调整的流程图,如图3所示,步骤S22还可以包括:

S221,根据数模转换器的输出精度和期望的精度,计算调整次数。

将数模转换器的输出精度除以期望的精度得到的值进行四舍五入得到调整次数,调整次数≥输出精度/期望的精度。

S222,若一个所述输出误差的绝对值大于预设阈值,则向数模转换器输入与调整次数相应数量的整型输入值。

其中一个所述整型输入值设置为浮点输入值取整,其他所述整型输入值设置为浮点输入值取整后加1。

例如,要使用输出精度为1/8的3位数模转换器输出1/32精度的数据,根据上述公式可计算出调整次数至少为4次,浮点输入值为1.5,取整后得到整型输入值为1,输入误差为-0.5,输出误差为-0.0625,输出误差的绝对值大于预设阈值1/32,第一次已经输入1,则接下来的3次输入,每次输入为1.5取整后加1,即2;4次输入完成后,累计输出误差为0.125,平均到每次输入上0.125/4=0.03125,在4次输入做到了等效1/32,等效的提高了精度。同理可得,如果期望获得更高的等效精度,只是需要更多的时间,或者相同时间内执行更多次的输入,这样可以通过计算,精确的控制数模转换器的输入和输出。

本实施例适用于需要利用低分辨率的数模转换器输出高精度数据的情况,低分辨率的数模转换器由于精度达不到要求,只要一次输入的输入误差就会造成输出误差超过预设阈值,则需要对接下来的几次输入进行调整。根据期望的精度和数模转换器的输出精度,计算需要输入整型值的个数,并且按照预设的规则对整型输入值赋值,以达到多次低精度输入等效一次高精度输入的结果。

实施例三

本实施例提供一种提高数模转换器的输出精度的装置,用于执行上述实施例所述的方法,解决相同的技术问题,达到相同的技术效果。

所述装置包括:输出误差计算模块31,误差比较模块32和输入调整模块33。

输出误差计算模块31,用于根据数模转换器的输出精度和输入误差,计算数模转换器的输出误差;

误差比较模块32,用于获取至少一个所述输出误差,与预设阈值进行比较;

输入调整模块33,用于根据比较结果对数模转换器的整型输入值进行调整。

其中,输入调整模块33具体用于:

将多个连续的输出误差累加得到累计输出误差;

若所述累计输出误差大于第一阈值,则将数模转换器的整型输入值设置为浮点输入值取整,直到所述累计输出误差小于第二阈值;

若所述累计输出误差小于第二阈值,则将数模转换器的整型输入值设置为浮点输入值取整后加1,直到所述累计输出误差大于第一阈值。

其中,输入调整模块33具体用于:

根据数模转换器的输出精度和期望的精度,计算调整次数,所述调整次数≥数模转换器的输出精度/期望的精度;

若一个所述输出误差的绝对值大于预设阈值,则向数模转换器输入与调整次数相应数量的整型输入值;

其中一个所述整型输入值设置为浮点输入值取整,其他所述整型输入值设置为浮点输入值取整后加1。

其中,输出误差计算模块31具体用于:

获取浮点输入值;

对所述浮点输入值进行取整运算得到整型输入值;

计算输入误差,所述输入误差=整型输入值-浮点输入值;

所述整型输入值输入数模转换器后得到的输出误差=输出精度*输入误差。

进一步的,所述第一阈值的绝对值等于所述第二阈值的绝对值。

本实施例通过计算输入浮点型数值时数模转换器的输出误差,并与预设阈值进行比较,从而根据比较结果对数模转换器的整型输入值进行调整,实现了在不更换高分辨率数模转换器且重新设计电路的情况下,得到等效的更高的输出精度。

以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1