具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例双通道模数转换系统示意图。如图所示,该双通道模数转换系统具体包括:采样/保持器11、第一模数转换模块12、第二模数转换模块13和校准装置14。
采样/保持器11用于对输入模拟信号想进行采样保持,并将采样后的信号发送到第一模数转换通道12和第二模数转换通道13。
第一模数转换通道12用于对接收到的信号进行模数转换,该通道分为8级,第一级、第二级...第八级,前七级皆为2.5bit,第八级为3bit。每一级的数字输出作为校准装置的输入信号。
第二模数转换通道13用于对接收到的信号进行模数转换,该通道分为8级,第一级、第二级...第八级,前七级皆为2.5bit,第八级为3bit。每一级的数字输出作为校准装置的输入信号。
校准装置14用于计算接收到的第一模数转换通道12输出信号和第二模数转换通道13输出信号的差值,并用比例积分方法缩小差值,输出校准后的第一模数转换信号、校准后的第二模数转换信号以及校准后的第一模数转换信号和校准后的第二模数转换信号的差值。
因此,双通道流水线型ADC可根据第一模数转换通道和第二模数转换通道的输出关系列出多元一次方程组。根据定理“n元一次方程组有唯一一组解的必要条件是有n个不相关联的n元一次方程式”,当列出n个不相关的多元一次方程,就会找到方程的唯一解。另一方面,双通道流水线型ADC中,当第一模数转换通道和第二模数转换通道都为精确时,当输入第一模数转换通道和第二模数转换通道的信号为相同值时,则第一模数转换通道和第二模数转换通道的输出值一定相同。从而得出根据第一模数转换通道和第二模数转换通道列出的n个不相关的多元一次方程的唯一解一定是第一模数转换信号和第二模数转换信号的精确值。所以缩小第一模数转换信号和第二模数转换信号之间的差值(Diff)是减小双通道流水线结构模数转换中产生的误差的途径。
图2为本发明实施例公开的双通道模数转换校准方法流程图。如图所示,本实施例包括如下步骤:
步骤201:接收双通道即第一模数转换通道和第二模数转换通道中每一级的输出数据和确定每一级的对应调整值。
具体地,第一模数转换通道分为8级,第一级、第二级...第八级,前七级皆为2.5bit,第八级为3bit。其中,第一级、第二级......第七级的每一级皆有7种数字输出,分别为1、2、3、4、5、6、7;第八级有8种数字输出,分别为1、2、3、4、5、6、7、8。
在本发明实施例的设计中采用独热码来表示每一级的数字输出。独热码,直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。
其中,第一模数转换通道的第一级输出为{D7_A1、D6_A1、D5_A1、D4_A1、D3_A1、D2_A1、D1_A1},其中只有一位为1,则用0000001代表1,0000010代表2,...,1000000代表7。第二级到第七级与第一级相同。第一模数转换通道的第八级输出为{D8_A8、D7_A8、D6_A8、D5_A8、D4_A8、D3_A8、D2_A8、D1_A8},其中只有一位为1,则用00000001代表1,00000010代表2,...,10000000代表8。在本发明实施例中,第一模数转换通道中每级输出的每位表示为:Dn_Am。n的取值可以为1、2,......,8中的任意值,Dn代表每一级的第n位二级制值,m的取值为1、2,......,8中的任意值,Am代表第一模数转换通道的第m级。
与第一模数转换通道类似,第二模数转换通道的第一级输出为{D7_B1、D6_B1、D5_B1、D4_B1、D3_B1、D2_B1、D1_B1},其中只有一位为1,则用0000001代表1,0000010代表2,...,1000000代表7。第二级到第七级与第一级相同。第八级输出为{D8_B8、D7_B8、D6_B8、D5_B8、D4_B8、D 3_B8、D2_B8、D1_B8},其中只有一位为1,则用00000001代表1,00000010代表2,...,10000000代表8。在本发明实施例中,在本发明实施例中,第二模数转换通道中每级输出的每位表示为:Dn_Bm,n的取值可以为1、2,...,8中的任意值,Dn代表每一级的第n位二级制值,m的取值为1、2,...,8中的任意值,Bm代表第二模数转换通道的第m级。
本发明实施例中规定代表第一模数转换通道和第二模数转换通道中每一级的输出数字所对应的调整值为Nn_Am、Nn_Bm,其中,Nn_Am和Nn_Bm的初始值为:
Nn_Am=n×2((8m)×2) (1)
Nn_Bm=n×2((8m)×2) (2)
其中,n为每一级的输出数字,其取值可以为1、2、...、8中的任意值,m的取值为1、2,...,8中的任意值。例如,第一模数转换通道的第八级输出数字为1,则对应的调整值初始值为N1_A8=1×2((8-8)×2)=1;第一模数转换通道的第七级输出数字为2,则对应的调整值初始值为N2_A7=2×2((8-7)×2)=8;第一模数转换通道的第一级输出数字为5,则对应的调整值初始值为N5_A1=5×2((8-1)×2)=81920。
其中,调整值的初始值为理想值,实际值可能跟理想值不一致需要做调整得到。比如N1_A8的理想值为1,实际值可能为1.00000001,N5_A1的理想值为81920,实际值可能为81900.7456。经过调整后的Nn_Am、Nn_Bm的实际值是一个带有小数的值,在本申请实施例中采用了16位整数加上8位小数,一共24位位长的二进制数表示Nn_Am、Nn_Bm最后的实际值。
其中,第一模数转换通道的第一级的七种可能输出的调整值为:N7_A1、N6_A1、N5_A1、N4_A1、N3_A1、N2_A1、N1_A1,第二级的七种可能输出的调整值为:N7_A2、N6_A2、N5_A2、N4_A2、N3_A2、N2_A2、N1_A2,...,第七级的七种可能输出的调整值为:N7_A7、N6_A7、N5_A7、N4_A7、N 3_A7、N2_A7、N1_A7,第八级的八种可能输出的调整值为:N8_A8、N7_A8、N6_A8、N5_A8、N4_A8、N3_A8、N2_A8、N1_A8。
同理可知,第二模数转换通道的第一级的七种可能输出的调整值为:N7_B1、N6_B1、N5_B1、N4_B1、N3_B1、N2_B1、N1_B1,第二级的七种可能输出的调整值为:N7_B2、N6_B2、N5_B2、N4_B2、N3_B2、N2_B2、N1_B2,...,第七级的七种可能输出的调整值为:N7_B7、N6_B7、N5_B7、N4_B7、N3_B7、N2_B7、N1_B7,第八级的八种可能输出的调整值为:N8_B8、N7_B8、N6_B8、N5_B8、N4_B8、N3_B8、N2_B8、N1_B8。
步骤202:计算第一模数转换信号和第二模数转换信号的差值
具体地,第一模数转换信号Ya的计算公式为:
其中,n的取值可以为1、2,......,8中的任意值,Dn代表每一级的第n位的值,Nn代表每一级的第n位的值所对应的调整值。m的取值可以为1、2,......,8中的任意值,Am代表第一模数转换通道的第m级。
第二模数转换信号Yb 的计算公式为:
其中,n的取值可以为1、2,......,8中的任意值,Dn代表每一级的第n位的值,Nn代表每一级的第n位的值所对应的调整值。m的取值可以为1、2,......,8中的任意值,Bm代表第二模数转换通道的第m级。
其中,n的取值可以为1、2,......,8中的任意值,Dn代表每一级的第n位的值,Nn代表每一级的第n位的值所对应的调整值。m的取值为1、2,...,8中的任意值,Bm代表第二模数转换通道的第m级。
第一模数转换信号和第二模数转换信号的差值的计算公式为:
Diff=Ya-Yb (5)
第一模数转换信号和第二模数转换信号的差值的绝对值的计算公式为:
|Diff|=|Ya-Yb| (6)
步骤203:输出第一模数转换信号、第二模数转换信号以及第一模数转换信号和第二模数转换信号的差值。
步骤204:根据差第一模数转换信号和第二模数转换信号的差值修改第一模数转换信号和第二模数转换信号的每一级的输出数据。步骤203和步骤204不分顺序实现,也可以并行实现。
具体地,设变量Cn_Am、Cn_Bm为根据差值对第一模数转换信号和第二模数转换信号的每一级的输出数据的修改值,该值用于统计Nn_Am,Nn_Bm对差值的影响。其中,Cn_Am、Cn_Bm所有的初始值为0,并且每隔一个预设的周期值清空一次,比如预设的周期值为1000,也就是每到1000个周期重新从零开始计算Cn_Am、Cn_Bm。
具体计算过程如下:若Diff为正值,即Ya>Yb时,则
Cn_Am(n)=Cn_Am(n-1)+Dn_Am (7)
Cn_Bm(n)=Cn_Bm(n-1)-Dn_Bm (8)
若Diff为负值,即Ya<Yb,则
Cn_Am(n)=Cn_Am(n-1)-Dn_Am (9)
Cn_Bm(n)=Cn_Bm(n-1)+Dn_Bm (10)
若Diff=0,即Ya=Yb,则
Cn_Am(n)=Cn_Am(n-1) (11)
Cn_Bm(n)=Cn_Bm(n-1) (12)
值得指出的是,当Ya=Yb时,说明在当前的情况下,两个数转换通道输出一致,所以Cn_Am、Cn_Bm不用做调整。
上述公式(5)、(6)、(7)、(8)、(9)和(10)的n可以为1、2,......,8中的任意值,Dn代表每一级的第n位的值,m可以为1、2,......,8中的任意值,Am、Bm分别代表第一、第二模数转换通道的第m级。
步骤205:存储各级输出数据的修改值、每一级的对应调整值以及第一模数转换信号和第二模数转换信号的差值的绝对值。
具体地,存储各级输出数据的修改值为Cn_Am,Cn_Bm,每一级的对应调整值为Nn_Am、Nn_Bm,第一模数转换信号和第二模数转换信号的差值的绝对值为|Diff|。
步骤206:判断接收到的第一模数转换信号和第二模数转换信号的周期数是否等于预设的周期值。
具体地,在本发明实施例中不是对双通道模数转换中每一个周期的信号都进行误差校准,而是基于多个周期的积累误差以及系数统计每隔一个预设的周期值做一次校准,所以根据实际需要来设定一个周期值。比如,预设的周期值为1000。若接收第一模数转换信号和第二模数转换信号的周期数等于预设的周期值时,则进行步骤207;若接收第一模数转换信号和第二模数转换信号的周期数小于预设的周期值时,则进行步骤201。其中,接收第一模数转换信号和第二模数转换信号的周期数达到预设周期值后,接收到下一个信号时,周期数自动为1。
值得指出的是,在本发明实施例中仍然包括对双通道模数转换中每一个周期的信号都进行误差校准的情况,即不需要步骤206判断接收到的第一模数转换信号和第二模数转换信号的周期数是否等于预设的周期值,直接对双通道模数转换中每一个周期的信号都进行误差校准的情况。但是,步骤206也能达到同样的效果,也就是预设的周期值取值为1时就能实现对双通道模数转换中每一个周期的信号都进行误差。
步骤207:计算累计差值。
具体地,将预设的周期值内的所有第一模数转换信号和第二模数转换信号的差值的绝对值Diff相加,得到累计差值Diff_sum,如公式(13)所示。
步骤208:判断累计差值是否小于或等于预设的累计差值。
具体地,理论上预设的累计差值为0,但实际中并不一定做得到,故根据实际需要规定一个预设的累计差值。若判断累计差值大于预设的累计差值,则进行步骤209;若累计差值小于或等于预设的累计差值,则进行步骤211。
步骤209:设定比例分配系数、计算分配到的每级的调整因子和调整数值。
具体地,根据实际需要规定一个比例分配系数k,按照累计差值Diff_sum计算分配到的每级的调整因子Offset_D。对于计算调整因子可以有多种实现方法,可以根据实际需要选择计算公式,这里只是提出其中的一种实现方法。例如,调整因子Offset_D的计算公式为:
其中,n、m可以为1、2、...、8中的任意值,Am、Bm分别代表第一、第二模数转换通道的第m级,Cn_Am、Cn_Bm为累计修改值,Diff_sum为累计差值。
根据调整因子,计算第一模数转换通道和第二模数转换通道中分配到的调整数值Sn_Am_Offset、Sn_Bm_Offset。调整数值Sn_Am_Offset、Sn_Bm_Offset的计算公式为:
Sn_Am_Offset=Offset_D×Cn_Am (15)
Sn_Bm_Offset=Offset_D×Cn_Bm (16)
步骤210:调整各级输出数值所对应的调整值。
具体地,调整第一模数转换通道和第二模数转换通道中每一级的输出数值所对应的调整值Nn_Am、Nn_Bm。也就是,每级调整值减去分配到的调整数值。所以调整后的第一模数转换通道和第二模数转换通道中每一级的输出数值所对应的调整值Nn_Am′、Nn_Bm′计算公式如下:
Nn_Am′=Nn_Am-Sn_Am_Offset (17)
Nn_Bm′=Nn_Bm-Sn_Bm_Offset (18)
其中,调整后的调整值Nn_Am′、Nn_Bm′代替原调整值Nn_Am、Nn_Bm。
上述公式(15)、(16)、(17)和(18)其中,n、m可以为1、2、...、8中的任意值,Am、Bm分别代表第一、第二模数转换通道的第m级。
步骤211:当确定累计差值小于或等于预设的累计差值时,校准结束。
具体地,在确定累计差值小于或等于预设的累计差值时,则将所述采样/保持模块分别与所述第一模数转换模块和第二模数转换模块的连接断开,即对所述第一模数转换模块和第二模数转换模块的校准结束。
值得指出的是,在仿真实验中,校准前第一模数转换信号的信噪比SNR_A=58.9,第二模数转换信号的信噪比SNR_B=57.9,经过4ms的校准,第一模数转换信号的信噪比提高到SNR_A=79.7,第二模数转换信号的信噪比提高到SNR_B=79.6,从仿真结果可以看出通过校准,校准前第一模数转换信号和第二模数转换信号的精度大约为10比特,校准后大约为14比特,从而提高了输出信号的精度。
由于双通道流水线结构模数转换中放大误差和电子元件偏差所产生误差和输入信号仅仅微弱相关,而和误差源紧密相关,本发明通过对两个通道的模数转换信号的差值进行多次校准,减小了双通道流水线结构模数转换中放大误差和电子元件偏差所产生误差;同时在本发明实施例中不是对双通道模数转换中每一个周期的信号都进行误差校准,而是基于多个周期的积累误差以及统计可以更准确地估计出偏差值,从而加快了双通道模数转换ADC收敛速度以及大大提高了输出信号的精度。
因此,本发明公开的双通道模数转换校准方法,通过计算基于多个周期的积累误差并调整第一模数转换通道和第二模数转换通道输出数值所对应的调整值,经过多次调整,最终缩小了第一模数转换信号和第二模数转换信号之间的误差,同时提高了双通道模数转换ADC最后输出信号的精度。
图3为本发明实施例公开的双通道模数转换校准装置示意图。如图所示,该装置具体包括:接收单元31、第一计算单元32、输出单元33、修改单元34、存储单元35、第一判断单元36、第二计算单元37、第二判断单元38、比例分配单元39、调整单元40和处理单元41。
接收单元31用于接收第一模数转换通道、第二模数转换通道中每一级的输出数据和确定每一级的对应调整值。
其中,接收单元31还用于当确定接收到的第一模数转换信号和第二模数转换信号的周期数小于所述预设的周期值时,则接收第一模数转换通道和第二模数转换通道中每一级的输出数据和确定每一级的对应调整值;另外,接收单元31还用于当确定调整单元40完成所述调整各级输出数值所对应的调整值时,则接收所述第一模数转换通道和所述第二模数转换通道中每一级的输出数据和确定每一级的对应调整值。
第一计算单元32用于计算第一模数转换信号和第二模数转换信号的差值。
输出单元33用于输出第一模数转换信号、第二模数转换信号以及第一模数转换信号和第二模数转换信号的差值。
修改单元34用于根据差值修改第一模数转换信号和第二模数转换信号的每一级的输出数据。
存储单元35用于存储各级输出数据的修改值、每一级的对应调整值以及第一模数转换信号和第二模数转换信号的差值的绝对值。
第一判断单元36用于判断接收到的第一模数转换信号和第二模数转换信号的周期数是否等于预设的周期值。
第二计算单元37用于当确定接收到的所述第一模数转换信号和所述第二模数转换信号的周期数等于预设的周期值时,则计算累计差值。
第二判断单元38用于判断累计差值是否小于或等于预设的累计差值。
比例分配单元39用于当确定所述累计差值大于所述预设的累计差值时,则设定比例分配系数、计算分配到的每级的调整因子和调整数值。
调整单元40用于调整各级输出数值所对应的调整值。
处理单元41用于在确定累计差值小于或等于预设的累计差值时,则将所述采样/保持模块分别与所述第一模数转换模块和第二模数转换模块的连接断开,即对所述第一模数转换模块和第二模数转换模块的校准结束。
另外,第一判断单元中的所述预设的周期值和所述第二判断单元中的所述预设的累计差值是根据实际需要设定的。
因此,本发明公开的双通道模数转换校准装置,通过计算基于多个周期的积累误差并调整第一模数转换通道和第二模数转换通道输出数值所对应的调整值,经过多次调整,最终缩小了第一模数转换信号和第二模数转换信号之间的误差,同时提高了双通道模数转换ADC最后输出信号的精度。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。