一种模数转换方法、装置及一种模数转换器与流程

文档序号:17003087发布日期:2019-03-02 01:53阅读:235来源:国知局
一种模数转换方法、装置及一种模数转换器与流程

本申请涉及电力电子技术领域,尤其涉及一种模数转换方法、装置及一种模数转换器。



背景技术:

在实际应用中,模拟数字转换器(analogtodigitalconverter,adc)的误差源有很多,积分非线性(integralnonlinearity,inl)就是其中一项。inl表示了adc器件在输出每个码值所对应的理想模拟值和真实模拟值之间的误差。一般而言,inl有两种形态,分别如图1所示的随机分布的形态和如图2所示的固定趋势曲线形态。

为了使用方便,现有技术中一般忽略inl的影响,这在一般精度的场合是适用的,这样可以减少设计工作量,降低开发难度。但是在高精度的应用场合,不对inl误差进行修正则会引入较大的误差,影响系统的准确性。



技术实现要素:

有鉴于此,本申请实施例提供了一种模数转换方法、装置及一种模数转换器,能够解决现有技术中高精度应用场景中模数转换的inl误差会引入较大误差的问题。

一种模数转换方法,所述方法包括:

获取待校准adc的inl曲线和输出的码值;所述inl曲线携带有至少两个预先标注的曲线拐点;

根据所述曲线拐点在所述inl曲线上的坐标,获取所述inl曲线的拟合函数;

根据所述拟合函数,对所述输出的码值进行校准后输出。

可选的,所述根据所述曲线拐点在所述inl曲线上的坐标,获取所述inl曲线的拟合函数,具体包括:

将相邻的两个所述曲线拐点的坐标代入预先构建的直线方程求解,得到目标函数,并根据该相邻两个曲线拐点的坐标,确定每个所述目标函数的取值范围;

根据得到的目标函数及其取值范围得到所述拟合函数。

可选的,所述根据所述拟合函数,对所述输出的码值进行校准后输出,具体包括:

将所述输出的码值代入所述拟合函数,得到校准量;

根据所述校准量和所述待校准adc的码值范围,对所述输出的码值进行校准后输出。

可选的,所述将所述输出的码值代入所述拟合函数,得到校准量,具体包括:

根据所述输出的码值和每个所述目标函数的取值范围,确定所述输出的码值所对应的目标函数;

将所述输出的码值代入所述对应的目标函数,得到所述校准量。

本申请另一实施例提供了一种模数转换装置,所述装置包括:数据获取模块、函数获取模块和输出校准模块;

所述数据获取模块,用于获取待校准adc的inl曲线和输出的码值;所述inl曲线携带有至少两个预先标注的曲线拐点;

所述函数获取模块,用于根据所述曲线拐点在所述inl曲线上的坐标,获取所述inl曲线的拟合函数;

所述输出校准模块,用于根据所述拟合函数,对所述输出的码值进行校准后输出。

可选的,所述函数获取模块,具体包括:第一代入子模块和第一确定子模块;

所述第一代入子模块,用于将相邻的两个所述曲线拐点的坐标代入预先构建的直线方程求解,得到目标函数,并根据该相邻两个曲线拐点的坐标,确定每个所述目标函数的取值范围;

所述确定子模块,用于根据得到的目标函数及其取值范围得到所述拟合函数。

可选的,所述输出校准模块,具体包括:第二代入子模块和校准子模块;

所述第二代入子模块,用于将所述输出的码值代入所述拟合函数,得到校准量;

所述校准子模块,用于根据所述校准量和所述待校准adc的码值范围,对所述输出的码值进行校准后输出。

可选的,所述第二代入子模块,具体包括:第二确定子模块和得到子模块;

所述第二确定子模块,用于根据所述输出的码值和每个所述目标函数的取值范围,确定所述输出的码值所对应的目标函数;

所述得到子模块,用于将所述输出的码值代入所述对应的目标函数,得到所述校准量。

本申请实施例提供的一种存储介质,其上存储有程序,该程序被处理器执行时实现如上所述的模数转换方法。

本申请实施例提供的一种模数转换器,包括:处理单元;

所述处理器用于运行程序,其中,所述程序运行时执行如上所述的模数转换方法。

与现有技术相比,本申请至少具有以下优点:

本申请实施例中,先根据待校准adc的inl曲线和曲线上预先标注的曲线拐点的坐标,对inl曲线进行拟合得到该inl曲线的拟合函数。然后,根据该拟合函数,对待校准adc输出的码值进行校准后输出,可以提高待校准adc输出的精度,满足高精度应用场景的需要。并且,在本申请实施例中,仅利用曲线上多个拐点的坐标进行曲线的拟合,在可以保证校准精度的基础上,节约了计算量简化了校准流程,节省了开发时间,使得inl修正更具有可操作性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为随机分布inl曲线的示意图;

图2为固定趋势inl曲线的示意图;

图3为本申请实施例提供的一种模数转换方法的流程示意图;

图4为本申请具体实施例中的inl曲线上曲线拐点的示意图;

图5为本申请实施例提供的一种模数转换装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

方法实施例:

参见图3,该图为本申请实施例提供的一种模数转换方法的流程示意图。

本申请实施例提供的模数转换方法,包括:

s301:获取待校准adc的inl曲线和输出的码值。

在本申请实施例中,待校准adc可以是任意结构、任意型号的adc,这里不进行限定。在实际应用中待校准adc的inl曲线可以从使用手册中获得,一般由厂家在出厂时测试得到。在一些可能的设计中,还可以通过实际测试的方式得到待校准adc的inl曲线,这样得到的inl曲线更加的准确。

还需要说明的是,获得的inl曲线携带有至少两个预先标注的曲线拐点,实际应用中,可以由人工直接在曲线中标出inl曲线中曲线出现大幅变化的节点作为曲线拐点。如图4所示,可以在inl曲线中标出点1-点6共6个明显拐点作为曲线拐点。具体实施时,由于一般inl曲线的变化范围较小,根据经验大致标识出的曲线拐点对校准的准确率影响不大。

s302:根据曲线拐点在inl曲线上的坐标,获取inl曲线的拟合函数。

继续以图4为例,inl曲线上各个曲线拐点的坐标可以分别是(-521288,0)、(-481000,0.35)、(-157000,-0.45)、(203000,0.05)、(472000,-0.55)和(524288,-0.25),由于两点可以确定一条直线,则可以根据这些曲线拐点的坐标获得inl曲线的拟合函数。由于在得到拟合函数时,仅利用曲线上多个拐点的坐标进行曲线的拟合,在可以保证校准精度的基础上,节约了计算量简化了校准流程,节省了开发时间,使得inl修正更具有可操作性。

需要说明的是,在实际应用中,还可以利用任意一种曲线拟合的方式对inl曲线的函数进行拟合,这里不再一一列举。

作为一个示例,步骤s302具体可以包括如下步骤:

s3021:将相邻的两个曲线拐点的坐标代入预先构建的直线方程求解,得到目标函数,并根据该相邻两个曲线拐点的坐标,确定每个目标函数的取值范围。

s3022:根据得到的目标函数及其取值范围得到拟合函数。

在本申请实施例中,直线方程可以是y=ax+b,其中x为码值,y为校准量。例如,可以将(-521288,0)、(-481000,0.35)、(-157000,-0.45)、(203000,0.05)、(472000,-0.55)和(524288,-0.25)中相邻的两个曲线拐点的坐标代入目标函数可以得到每段inl曲线的目标函数,相邻的两个曲线拐点的x(即码值)的取值范围则为这段inl曲线的取值范围。

继续以图4为例,将相邻的两个曲线拐点的坐标代入预先构建的直线方程求解,可以得到如下5个目标函数:

y=8.687*10-6*x+4.529,其中x∈[-524288,-481000)

y=-2.469*10-6*x-0.838,其中x∈[-481000,-157000)

y=1.389*10-6*x-0.232,其中x∈[-157000,203000)

y=-2.231*10-6*x+0.503,其中x∈[203000,472000)

y=5.737*10-6*x-3.258,其中x∈[472000,524288)

将这5个目标函数综合即可得到inl曲线的拟合函数。

s303:根据拟合函数,对输出的码值进行校准后输出。

在本申请实施例中,由于根据拟合函数对输出的码值进行了校准,可以对inl导致的误差进行一定程度的修正,提高了输出码值的准确性和精度,能够使得待校准adc实际输出的码值符合高精度系统的需求。

在本申请实施例一些可能的实现方式中,步骤s303具体可以包括:

s3031:将输出的码值代入拟合函数,得到校准量。

作为一个示例,继续以图4为例,可以根据输出的码值和每个目标函数的取值范围,确定输出的码值所对应的目标函数;再将输出的码值代入对应的目标函数,得到校准量。

例如,当待校准adc输出的码值为472001时,可以根据拟合函数内x的取值范围确定,码值472001对应的拟合函数为y=5.737*10-6*x-3.258。然后,将x=472001代入y=5.737*10-6*x-3.258,就可以得到校准量y=-0.55。

s3032:根据校准量和待校准adc的码值范围,对输出的码值进行校准后输出。

在一些可能的实现方式中,可以根据如下公式对输出的码值进行校准:

codeafter=codebefore+range*y*10-6

式中,codeafter为校准后输出的码值,codebefore为待校准adc输出的码值,range为待校准adc的取值范围,当待校准adc为20位输出时,range=220

继续以上面给出的例子进行说明,由于校准量y=-0.55,则将y=-0.55代入上式就可以得到码值472001对应的校准后输出的码值,为472000,从而实现了对待校准adc输出码值的校准,提高了码值输出的准确率和精度。

本申请实施例中,先根据待校准adc的inl曲线和曲线上预先标注的曲线拐点的坐标,对inl曲线进行拟合得到该inl曲线的拟合函数。然后,根据该拟合函数,对待校准adc输出的码值进行校准后输出,可以提高待校准adc输出的精度,满足高精度应用场景的需要。并且,在本申请实施例中,仅利用曲线上多个拐点的坐标进行曲线的拟合,在可以保证校准精度的基础上,节约了计算量简化了校准流程,节省了开发时间,使得inl修正更具有可操作性。

基于上述实施例提供的模数转换方法,本申请实施例还提供了一种模数转换装置。

参见图5,该图为本申请实施例提供的一种模数转换装置的结构示意图。

本申请实施例提供的模数转换装置,包括:数据获取模块100、函数获模块200和输出校准模块300;

数据获取模块100,用于获取待校准adc的inl曲线和输出的码值;inl曲线携带有至少两个预先标注的曲线拐点;

函数获取模块200,用于根据曲线拐点在inl曲线上的坐标,获取inl曲线的拟合函数;

在本申请实施例一些可能的实现方式中,函数获取模块200,具体可以包括:第一代入子模块和第一确定子模块;

第一代入子模块,用于将相邻的两个曲线拐点的坐标代入预先构建的直线方程求解,得到目标函数,并根据该相邻两个曲线拐点的坐标,确定每个目标函数的取值范围;

确定子模块,用于根据得到的目标函数及其取值范围得到拟合函数。

输出校准模块300,用于根据拟合函数,对输出的码值进行校准后输出。

在本申请实施例一些可能的实现方式中,输出校准模块300,具体可以包括:第二代入子模块和校准子模块;

第二代入子模块,用于将输出的码值代入拟合函数,得到校准量;

校准子模块,用于根据校准量和待校准adc的码值范围,对输出的码值进行校准后输出。

作为一个示例,第二代入子模块,具体可以包括:第二确定子模块和得到子模块;

第二确定子模块,用于根据输出的码值和每个目标函数的取值范围,确定输出的码值所对应的目标函数;

得到子模块,用于将输出的码值代入对应的目标函数,得到校准量。

本申请实施例中,先根据待校准adc的inl曲线和曲线上预先标注的曲线拐点的坐标,对inl曲线进行拟合得到该inl曲线的拟合函数。然后,根据该拟合函数,对待校准adc输出的码值进行校准后输出,可以提高待校准adc输出的精度,满足高精度应用场景的需要。并且,在本申请实施例中,仅利用曲线上多个拐点的坐标进行曲线的拟合,在可以保证校准精度的基础上,节约了计算量简化了校准流程,节省了开发时间,使得inl修正更具有可操作性。

基于上述实施例提供的模数转换方法及装置,本申请实施例还提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现如上述实施例提供的模数转换方法中的任意一种。

基于上述实施例提供的模数转换方法及装置,本申请实施例还提供了一种模数转换器,包括:处理单元;处理器用于运行程序,其中,程序运行时执行如上述实施例提供的模数转换方法中的任意一种。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。

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