CN102291145A - 一种基于格雷编码和绝对值算法的模数转换方法 - Google Patents

一种基于格雷编码和绝对值算法的模数转换方法 Download PDF

Info

Publication number
CN102291145A
CN102291145A CN201110167982XA CN201110167982A CN102291145A CN 102291145 A CN102291145 A CN 102291145A CN 201110167982X A CN201110167982X A CN 201110167982XA CN 201110167982 A CN201110167982 A CN 201110167982A CN 102291145 A CN102291145 A CN 102291145A
Authority
CN
China
Prior art keywords
centerdot
absolute value
conversion
algorithm
ref
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201110167982XA
Other languages
English (en)
Inventor
吕锦柏
王毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jiaotong University
Original Assignee
Beijing Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jiaotong University filed Critical Beijing Jiaotong University
Priority to CN201110167982XA priority Critical patent/CN102291145A/zh
Publication of CN102291145A publication Critical patent/CN102291145A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Analogue/Digital Conversion (AREA)

Abstract

本发明提供了一种基于格雷编码和绝对值算法的模数转换方法,采用格雷编码方式,以消除编码可能存在的尖峰脉冲,通过引入绝对值算法,有效消除每级流水线输出的突变现象,使每级流水线的输出表现为连续的模拟量转换过程使用统一的解析算法,不使用子A/D和子D/A,以有效减小编码过程的引入噪声。由于转换采用了格雷编码方式,能有效提高编码的可靠性,转换过程中无需子A/D以及子D/A,能够减少计算误差,从而提高转换精度,由于流水线各级输出连续的模拟量,编码单元和计算单元独立,避免了子D/A的反馈环节,有助于提高转换的速度。

Description

一种基于格雷编码和绝对值算法的模数转换方法
技术领域
本发明涉及数字信号与模拟信号转换技术领域,特别是涉及一种基于格雷编码和绝对值算法的模数转换方法。
背景技术
目前,所有的A/D在编码方式均为自然二进制码,该编码方式最大的缺点在于容易使电路产生很大的尖峰脉冲,如自然二进制码在从15变到16时,每一位都要发生变化;而在流水线型A/D转换中,每一级包含有采样保持电路、低分辨率的子A/D、子D/A、余量和增益电路,前一级放大的余量输出作为后一级的模拟输入。每级电路余量的输出波形存在突变现象,容易引入较大的噪声,从而影响转换精度,同时子DAC的模拟反馈在影响速度的同时,也会引入新的转换误差。
因此,需要本领域技术人员迫切解决的一个技术问题就是:如何能够创新的提出有一种有效措施以克服现有技术存在的缺陷,有效的提高转换效率和可靠性。
发明内容
本发明所要解决的技术问题是提供一种基于格雷编码和绝对值算法的模数转换方法,能够有效提高转换效率和可靠性。
为了解决上述问题,本发明公开了一种基于格雷编码和绝对值算法的模数转换方法,所述方法包括:
对模拟输入信号进行采样;
通过绝对值算法计算各级流水线的模拟量输出;
对输入信号和各级流水线输出信号进行格雷编码后输出。
优选的,所述方法还包括:
将格雷码转换为自然二进制码后与原信号的波形进行对比,验证编码的正确性。
优选的,所述模拟输入信号为正弦波信号。
优选的,所述多级流水线为三级流水线。
优选的,信号采样频率为2kHz。
优选的,单极性AD流水线级间的绝对值算法及编码算法:
Un=2|Un-1-Uref|, y = 1 ( U n &GreaterEqual; U ref ) 0 ( U n < U ref ) .
优选的,双极性AD流水线级间的绝对值算法及编码算法:
Un=2·|Un-1|-uref y = 1 ( U n &GreaterEqual; 0 ) 0 ( U n < 0 ) .
与现有技术相比,本发明具有以下优点:
本项技术采用格雷编码方式,以消除编码可能存在的尖峰脉冲,通过引入绝对值算法,有效消除每级流水线输出的突变现象,使每级流水线的输出表现为连续的模拟量转换过程使用统一的解析算法,不使用子A/D和子D/A,以有效减小编码过程的引入噪声。
由于转换采用了格雷编码方式,能有效提高编码的可靠性,转换过程中无需子A/D以及子D/A,能够减少计算误差,从而提高转换精度,由于流水线各级输出连续的模拟量,编码单元和计算单元独立,避免了子D/A的反馈环节,有助于提高转换的速度。
附图说明
图1是本发明实施例所述的一种基于格雷编码和绝对值算法的模数转换方法的流程图;
图2是本发明实施例中所述的Matlab的Simulink下对其中一种绝对值算法所做的仿真模块的示意图;
图3是本发明实施例中所述的图2中各级流水线输出的波形示意图;
图4是本发明实施例所述的信号输入波形与经过A/D转换后并经过D/A算法还原后的波形图对比,其中蓝色虚线为原信号输入波形,黑色实线为经过转换后还原的波形。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明一种基于格雷编码和绝对值算法的模数转换方法的流程图,所述方法具体包括:
步骤S101,对模拟输入信号进行采样;
步骤S102,通过绝对值算法计算各级流水线的模拟量输出;
步骤S103,对输入信号和各级流水线输出信号进行格雷编码后输出。
优选的,所述方法还包括:
将格雷码转换为自然二进制码后与原信号的波形进行对比,验证编码的正确性。
在实际的A/D转换中模拟量的输入都是有界的,现行的A/D的模拟量输入一般以参考电压为界,例如参考电压为3V的A/D,其模拟量输入范围为Un∈[0,3V]。为了说明如何实现方案所述编码原理,并使表达式具有一般性,在此令参考电压为Uref,模拟输入为Ui,且Ui∈[0,2Uref],那么对于任意的Un=2|Un-1-Uref|(n≥1),其中,U0=Ui,有Un∈[0,2Uref]。
如果令: S n = + 1 ( U n &GreaterEqual; U ref ) - 1 ( U n < U ref )
则有:Un=2Sn-1·(Un-1-Uref)。
由上述公式递推可以得到:
U 0 = ( 1 + 1 2 1 S 0 + 1 2 2 S 0 S 1 + &CenterDot; &CenterDot; &CenterDot; + 1 2 n - 1 S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n - 2 ) U ref + U n 2 n S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n - 1 - - - 1
由于等式 1 = S 0 2 = ( S 0 S 1 ) 2 = &CenterDot; &CenterDot; &CenterDot; = ( S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n ) 2 恒成立,代入式1可得
U 0 = ( 1 + S 0 2 + S 0 S 1 2 2 + &CenterDot; &CenterDot; &CenterDot; + S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n - 2 2 n - 1 ) U ref + S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n - 1 U n 2 n - - - 2
由式2可以得出,随着n取值的增大,Un对U0(Ui)的影响呈指数级减弱,如果取 S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n - 1 2 n U n &ap; S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n - 1 2 n U ref , 则由Ui=U0可以得到
U i &ap; ( 1 + S 0 2 + S 0 S 1 2 2 + &CenterDot; &CenterDot; &CenterDot; + S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n - 2 2 n - 1 + S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n - 1 2 n ) U ref - - - 3
因为Un∈[0,2Uref],所以式3的误差限为±(1/2n)Uref。由于Uref已知,Ui的大小主要取决于S0,S1,…,Sn-1,从而只要确定S0,S1,…,Sn-1各项值,就可以得到输入值。由于S0,S1,…,Sn-1只取两个值,即1和-1,这满足数字电路的基本条件,也就是说S0,S1,…,Sn-1的值实际上构成了Ui对应的二进制编码值,而式3给出了如何在该编码方式下对应于特定S0,S1,…,Sn-1的模拟输入值,也就是D/A转换的算法。如果令
G n = 1 S n = + 1 0 S n = - 1 - - - 4
那么G0,G1…Gn就构成了格雷码,式3和式4事实上给出了由格雷编码转换到模拟信号的解析表达式,当然D/A算法也可以通过绝对值算法的反递推得到,也就是A/D转换的逆反过程,这时转换也需要通过多级流水线实现D/A计算,这里不再给出。
下面讨论上述编码方式与自然二进制码的关系。令Dn=(S0S1·…·Sn+1)/2,则有
D n = 1 ( S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n = + 1 ) 0 ( S 0 S 1 &CenterDot; &CenterDot; &CenterDot; &CenterDot; &CenterDot; S n = - 1 ) - - - 5
将式5代入式3计算后可得:
U i &ap; ( D 0 + D 1 2 + &CenterDot; &CenterDot; &CenterDot; + D n - 2 2 n - 2 + D n - 1 2 n - 1 + 1 2 n ) U ref - - - 6
从式6可以看出D0,D1,…,Dn满足一般自然二进制编码的表达式,从而Dn序列构成了模拟量输入Ui的自然二进制码,从理论上验证编码的正确性,只要Ui连续,则各级流水线输出为连续的模拟信号。
下面以表格形式更加直观的观察以上编码原理的编码输出,以3位A/D为例,其中模拟量输入区间为[0,8],由上述编码原理有参考电压为4:
Figure BDA0000069907320000051
表1编码对照表
从表1可以在数字量值从3到4改变时,Gn序列从值001变化到101,仅G2一位发生了数值变化,而Dn序列从值011到100三个位同时发生了改变,从而有效避免在实际电路中产生很大的尖峰脉冲,以及因位数值变化不同步造成“火花码”的出现。
虽然式5给出了如何在绝对值编码下直接转换成二进制码的算法,然而由于转换中涉及了模拟量的计算,不易在实际电路中实现。从表1不难看出,可以很方便的从Gn直接得出Dn,其转换算法如下:
Figure BDA0000069907320000052
其中
Figure BDA0000069907320000053
表示数字量同或运算。
基于上述算法原理的A/D输入信号恒有Ui≥0,这对于输入带有极性的信号转换将带来不便,如果令Ui∈[-Uref,Uref],那么对于任意的Un=2·|Un-1|-Uref(n≥1),其中U0=Ui,Uref为参考电压,且Uref≥0,恒有Un∈[-Uref,Uref],令:
S n = + 1 ( U n &GreaterEqual; 0 ) - 1 ( U n < 0 ) , G n = 1 S n = + 1 0 S n = - 1
那么Gn同样构成模拟输入值的格雷编码,再令此时有:
U i &ap; ( D 0 + D 1 2 + &CenterDot; &CenterDot; &CenterDot; + D n - 2 2 n - 2 + D n - 1 2 n - 1 + 1 2 n ) &CenterDot; U ref - U ref - - - 8
通过上述算法直接实现了对带极性输入信号的AD转换。
如果令
Figure BDA0000069907320000065
则Dn序列构成带符号的自然二进制码,D0为符号位,从而使转换结果能够方便的参与实际的数字量运算。
更为具体的,如下通过Simulink仿真说明采用上述算法后流水线式A/D各级输出模拟波形,为了使算法具有一般性,采用带极性的编码算法,为方便观察取参考电压为8V,输入信号的取值区间为(-8,8),仿真模块图如下:
图2中输入信号为Ui=8sin 10t,仿真中采用3级流水线处理,即为3位A/D。除第一级流水线为U1=|U0|,所有后续流水线均为Un=2·|Un-1-2.5|。在仿真模块图中算法单元为Un=2·|Un-1|-8,编码单元(图中标注的1,2,3,4)只需判断输入信号与0的大小进而输出一位二进制值,算法单元不依赖于编码单元的结果,这种特性使得下级流水线不必等待上一级编码完成之后才进行编码(现行的流水线式A/D必须等待前级编码完成,同时利用前级编码的结果控制下一级编码的信号输入),在提高转换效率的同时,可以有效减小实际电路因编码产生的数值突变造成对输入信号的噪声干扰,提高编码的可靠性和精度。图2给出了其中一种绝对值算法的最简实施方案,在主算法单元中应用了三级流水线,在本例中选择Uref=2.5V。由图2可知,编码单元非常简单,每个位仅需一个比较器。整个编码过程没有子D/A反馈环节,因此具有较快的转换速度。
图2为对带极性三位A/D的实现进行的仿真,在图2的实现方案中,取输入信号的幅值为8,角频率ω=10,即y=8sin 10t正弦波输入信号,信号采样频率为2kHz。首先对信号进行了AD编码,而后通过对编码的转换还原验证编码的正确性。其中模块Fcn1、Fcn、Fcn2分别为一、二、三级流水线处理算法单元,处理算法为y=2·|u|-8。图3给出了经过算法处理后各级流水线输出的波形。
在图2中标注为1、2、3、4的是A/D的编码单元,其中1实现对信号的极性编码,2、3、4分别对各级流水线的输出进行编码,编码采用的算法均相同,即:
y = 1 ( u &GreaterEqual; 0 ) 0 ( u < 0 )
此时即可以通过各编码单元的输出得到输入信号的格雷编码G0,G1,G2,G3,实现了模拟信号到数字信号的转换。
为了验证编码的正确性,在图2中直接对编码输出G0,G1,G2,G3进行了转换还原,首先采用式7所述的算法进行格雷码到自然二进制码的转换,得到D0,D1,D2,D3,而后采用式8(本例中算法表达式为 y = ( D 0 + D 1 2 + D 1 2 + D 2 2 2 + D 3 2 3 + 1 2 4 ) &CenterDot; 8 - 8 )的还原算法对信号进行了还原,得到还原后的信号波形。图4是信号还原前后的波形对比,验证了编码的正确性。图2是在Matlab的Simulink下对其中一种绝对值算法所做的仿真模块。
图3是图2中各级流水线输出的波形,其中蓝色实线为第一级流水线输出信号,红色点划线和黑色虚线分别为第二、第三级流水线的输出信号。图3说明了各级流水线的波形是连续的,不存在突变现象,从而有效减小因电压突变引入的噪声,有助于提高转换精度。
从图3可以看出各级流水线的输出为连续的模拟信号,各级流水线输出信号波形不存在阶跃或者突变现象,从而可以减少实际电路中的谐波干扰。
由于编码输出为格雷码,因此,还原过程中应对编码的结果依照式7进行转换,Dn为转换后的序列,则图3的还原算法为 y = ( D 0 + D 1 2 + D 1 2 1 + D 2 2 2 + 1 2 3 ) &CenterDot; 8 - 8 , 从图4可以看出A/D的精度为1V,编码还原后波形与原波形的误差为±0.5V,对输入信号实现了很好的还原。图4验证了输入信号与经过算法转换并经过D/A还原后的波形,可以看出算法的精度为±1/2LSB(本例即为±1/16Uref)。
以上对本发明所提供的一种基于格雷编码和绝对值算法的模数转换方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种基于格雷编码和绝对值算法的模数转换方法,其特征在于,所述方法包括:
对模拟输入信号进行采样;
通过绝对值算法计算各级流水线的模拟量输出;
对输入信号和各级流水线输出信号进行格雷编码后输出。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
将格雷码转换为自然二进制码后与原信号的波形进行对比,验证编码的正确性。
3.如权利要求1所述的方法,其特征在于:
所述模拟输入信号为正弦波信号。
4.如权利要求1所述的方法,其特征在于:
所述多级流水线为三级流水线。
5.如权利要求1所述的方法,其特征在于:
信号采样频率为2kHz。
6.如权利要求1所述的方法,其特征在于:单极性AD流水线级间的绝对值算法及编码算法:
Un=2|Un-1-Uref|, y = 1 ( U n &GreaterEqual; U ref ) 0 ( U n < U ref ) .
7.如权利要求1所述的方法,其特征在于:双极性AD流水线级间的绝对值算法及编码算法:
Un=2·|Un-1|-Uref y = 1 ( U n &GreaterEqual; 0 ) 0 ( U n < 0 ) .
CN201110167982XA 2011-06-21 2011-06-21 一种基于格雷编码和绝对值算法的模数转换方法 Pending CN102291145A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110167982XA CN102291145A (zh) 2011-06-21 2011-06-21 一种基于格雷编码和绝对值算法的模数转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110167982XA CN102291145A (zh) 2011-06-21 2011-06-21 一种基于格雷编码和绝对值算法的模数转换方法

Publications (1)

Publication Number Publication Date
CN102291145A true CN102291145A (zh) 2011-12-21

Family

ID=45337281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110167982XA Pending CN102291145A (zh) 2011-06-21 2011-06-21 一种基于格雷编码和绝对值算法的模数转换方法

Country Status (1)

Country Link
CN (1) CN102291145A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102868404A (zh) * 2012-09-14 2013-01-09 北京交通大学 基于余弦算法和格雷编码的模数转换方法
CN105573276A (zh) * 2015-12-25 2016-05-11 华北电力科学研究院有限责任公司 一种现场总线信息传输方法
CN106918307A (zh) * 2017-01-25 2017-07-04 哈尔滨理工大学 一种可靠的绝对模拟码检索方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1240542A (zh) * 1996-12-16 2000-01-05 艾利森电话股份有限公司 循环模-数变换
WO2001067614A1 (en) * 2000-02-22 2001-09-13 The Regents Of The University Of California Digital cancellation of d/a converter noise in pipelined a/d converters
CN101394183A (zh) * 2008-10-30 2009-03-25 上海大学 模数直算转换法与模拟-数字级联转换器及其应用
CN101625501A (zh) * 2009-07-22 2010-01-13 电子科技大学 一种基于偏振调制的光学模数转换器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1240542A (zh) * 1996-12-16 2000-01-05 艾利森电话股份有限公司 循环模-数变换
WO2001067614A1 (en) * 2000-02-22 2001-09-13 The Regents Of The University Of California Digital cancellation of d/a converter noise in pipelined a/d converters
CN101394183A (zh) * 2008-10-30 2009-03-25 上海大学 模数直算转换法与模拟-数字级联转换器及其应用
CN101625501A (zh) * 2009-07-22 2010-01-13 电子科技大学 一种基于偏振调制的光学模数转换器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102868404A (zh) * 2012-09-14 2013-01-09 北京交通大学 基于余弦算法和格雷编码的模数转换方法
CN105573276A (zh) * 2015-12-25 2016-05-11 华北电力科学研究院有限责任公司 一种现场总线信息传输方法
CN105573276B (zh) * 2015-12-25 2019-03-05 华北电力科学研究院有限责任公司 一种现场总线信息传输方法
CN106918307A (zh) * 2017-01-25 2017-07-04 哈尔滨理工大学 一种可靠的绝对模拟码检索方法
CN106918307B (zh) * 2017-01-25 2019-02-22 哈尔滨理工大学 一种可靠的绝对模拟码检索方法

Similar Documents

Publication Publication Date Title
CN101674087B (zh) 一种时间交替adc系统通道失配误差的获取方法
CN109143832B (zh) 一种高精度多通道的时间数字转换器
CN104796051A (zh) 基于fpga的旋转变压器线性变换方法及变换器
WO2020259721A2 (zh) Mcu随机间隔转换电桥电压的真随机数产生器及产生方法
CN103067016B (zh) 一种流水线时数转换器及其方法
CN109361390A (zh) 用于时间交织adc通道间采样时间误差校正模块及方法
CN102291145A (zh) 一种基于格雷编码和绝对值算法的模数转换方法
CN103178851A (zh) 一种产生spwm控制信号的新型采样方法
CN111193453A (zh) 一种数字信号实现旋变软解码激励正弦波的方法
CN101980446B (zh) 一种高性能低功耗流水线模数转换器
CN101949684B (zh) 一种基于移动比较的双频激光干涉仪信号高倍频细分系统
CN112764712B (zh) 一种高性能近似Booth乘法器及计算方法
CN109901382B (zh) 一种数字控制系统的规则采样pwm优化方法
CN102868404A (zh) 基于余弦算法和格雷编码的模数转换方法
CN103178849A (zh) 一种结合tdc的循环模数转换器
US11658678B2 (en) System and method to enhance noise performance in a delta sigma converter
CN104155592B (zh) 一种dds专用芯片静态参数测试方法
CN104883191B (zh) 一种包含自适应增量调制的模数转换器
CN207147415U (zh) 信号细分装置
CN102006076A (zh) 一种模数转换电路
CN203722610U (zh) 基于数字接收机中adc动态采样电路
CN107038397A (zh) 一种解码方法及系统
CN103607185B (zh) 产生脉宽调制信号的装置及方法
CN102832951A (zh) 一种基于概率计算的ldpc译码公式的实现方法
CN101527570B (zh) 模拟到数字转换装置、方法及触控式装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111221