CN109815520B 有效 一种基于FPGA的应用于多比特sigma-delta DAC DWA改进算法
技术领域 [0001]本发明涉及多比特sigma-delta DAC技术领域,尤其是一种基于FPGA(Field-Programmable Gate Array的缩写,现场可编程门阵列)FPGA的DWA改进算法(DataWeighted Averaging的缩写,数据权重平均)及多比特sigma-delta DAC。 背景技术 [0002]Sigma-delta调制器主要用于模数转换器(以下简称ADC)中或数模转换器(以下简称DAC)中,Sigma-delta调制器主要采用了过采样技术和噪声整形技术,基本结构包括环形滤波器及其后的量化器以及反馈的DAC,提升调制器性能考虑从过采样率、环路滤波器阶数和量化比特数入手。 [0003]为获得高动态范围,其中采用多比特量化器的方法,减小了积分步长,降低了积分器中运放的摆率和增益线性度的要求,然而,多比特量化需要多比特反馈DAC,由于多比特Sigma-delta调制器中反馈DAC不同单元结构的不匹配会导致非线性DAC输出,通常采用动态元素匹配(以下简称DEM)方法之一的数据权重平均(以下简称DWA)算法来降低多比特DAC非线性产生的影响。 [0004]反馈回路DWA逻辑模块的目的是降低反馈回路DAC的非线性,多比特Sigma-delta系统中,传输数据位是温度计编码,N位温度计编码在每一个数据位上的占用率不相等,反馈回路DAC的工作方式是根据温度计编码位数而使用相同数量的DAC通道并行处理数据,对于反馈回路DAC而言,其输入并不局限于标准温度计编码数据,数据的有效性仅取决于输入数据中包含的“0”和“1”的数量,如果温度计编码中某一位数据占有率远高于其他位,则反馈回路DAC中对应数据位DAC通道的使用率也远高于其他数据位DAC通道,而因为实际使用中每一个单比特DAC数据通道非理想,其模拟输出值相对于标准值有一定偏差,对于过于频繁使用单一DAC数据通道将会对系统的数据带来较大的误差,此种误差称之为反馈回路DAC的非线性。 [0005]DWA逻辑块的工作原理是使数个时钟周期的温度计编码数据平均分布于温度编码的各个信号位,使得反馈回路DAC中各个数据通道的使用率一致。因此,反馈回路DAC逻辑块仅仅在使用多比特量化器时使用,单比特量化器因为仅有1位信号输入到DAC,所以没有DAC非线性问题的存在。 [0006]DWA算法在达到较好效果的同时,也有很多不可避免的缺陷,首先,DWA算法较复杂,需要数量较多的寄存器来对上一周期数据进行存储,将会占用相当大的算法电路面积,其次,DWA因为算法原理,在设计时需要考虑对数据处理有半个时钟周期的延迟,以确保稳定性。对于幅度变化小的信号而言,输出的代码值将大部分集中在中间值及其附近,这相当于连续给内部的DAC输入固定的直流值,将会在基带产生寄生杂波。加入dither信号可以随机化寄生杂波,但其代价是抬高了基带噪声,降低了动态范围,还有可能引起系统的不稳定。 [0007]此外,传统的DWA算法是使用随机化原理将温度计编码数据进行随机排列,但在当输入信号频率较低时,使用DWA算法会使得DAC失配误差输出与输入信号相关性增大,引起失真,因此,目前的随机化方法是用随机源产生随机序列的方法效果不佳,且结构复杂,实用性差。 发明内容 [0008]本发明提供一种基于FPGA的DWA改进算法的多比特sigma-delta DAC及基于FPGA的应用于多比特sigma-delta DAC DWA改进算法,用于克服现有技术中对于幅度变化较小的低频信号基带杂波较多等缺陷,实现温度计编码在各数据位的分布平均化,抑制了DAC的非线性误差,提高了整个多比特sigma-delta调制器的线性度。 [0009]为实现上述目的,本发明提出一种基于FPGA的DWA改进算法的多比特sigma-deltaDAC,包括:DWA算法电路、多个单比特DAC单元、低通滤波器;其中所述DWA算法电路包括: [0010]温度计编码模块,对输入的多比特信号按照多比特量化器位数n进行温度计编码,获得与多比特信号信号对应的温度计编码; [0011]控制逻辑模块,对输入的多比特信号进行模尔加运算获得控制逻辑信号; [0012]桶型移位寄存器,根据控制逻辑信号将温度计编码中的非零数据位在依次排列的多个单比特DAC单元上按照预设的起始位置和循环方向作为对应的开关信号输出,并且使得地址指针总是在循环方向上指向下一个未使用的DAC单元; [0013]多个单比特DAC单元,数量N与量化器位数n的关系为N=2n-1+k,其中k为正整数,用于将信号在频点上将基带杂波与基带信号分离; [0014]低通滤波器,用于滤除模拟信号中基带外的杂波噪声,输出整形信号。 [0015]为实现上述目的,本发明还提供一种基于FPGA的应用于多比特sigma-delta DAC的DWA改进算法,包括以下步骤: [0016]步骤1,对输入的多比特信号按照多比特量化器位数进行温度计编码,获得与数字信号对应的温度计编码;同时对输入的多比特信号进行模尔加运算获得控制逻辑信号; [0017]步骤2,根据控制逻辑信号将温度计编码中的非零数据位在依次排列的多个单比特DAC单元上按照预设的起始位置和循环方向作为对应的开关信号输出,并且使得地址指针总是在循环方向上指向下一个未使用的DAC单元;DAC单元的数量N与量化器位数n的关系满足N=2n-1+k,其中k为正整数; [0018]步骤3,所有DAC单元根据开关信号输出将信号在频点上将基带杂波与基带分离; [0019]步骤4,使模拟信号通过低通滤波器,滤除基带外的杂波噪声,获得整形信号。 [0020]本发明提供的基于FPGA的应用于多比特sigma-deltaDAC的DWA改进算法,对于低通的sigma-delta DAC,通过增加至少一位DAC单元,将输入的数字信号(这里是多比特信号)通过温度计编码模块产生对应的温度计编码(位数与DAC单元位数相同),此编码与对应输入的数字信号经过模尔加运算得到的控制逻辑信号(多比特数据)同时给桶型移位寄存器;根据经过模尔加运算后的控制逻辑信号与温度计编码输入桶型移位寄存器,桶型移位寄存器将输出的信号平均分配到权重相同的各个单比特DAC单元的输入端,这样就达到了一个比较好的DAC的器件匹配效果,改善了DAC的线性输出,从而改善了整个系统的线性性。在输入的数字信号幅度变化很小时,通过增加一位以上空闲的DAC单元加入循环移位队列,可以大幅降低权重集中在DAC单元排列的中间及其附近的不均衡现象,此外,增加DAC单元的数量不会改变噪声的整形特性,只是将寄生的基带杂波从基带范围内移除,再通过低通滤波器,即可滤除基带杂波,获得良好的整形信号。 附图说明 [0021]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。 [0022]图1为发明实施例一提供的应用于多比特sigma-delta调制器的平均权重分布的DAC结构框图; [0023]图2图1中温度计编码模块的仿真原理图; [0024]图3图1中桶型移位寄存器仿真原理图; [0025]图4是输入随机激励时温度计编码的仿真原理图; [0026]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。 具体实施方式 [0027]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 [0028]需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。 [0029]另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。 [0030]在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接,还可以是物理连接或无线通信连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。 [0031]另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。 [0032]本发明提出一种基于FPGA的DWA改进算法的多比特sigma-delta DAC及基于FPGA的应用于多比特sigma-deltaDACDWA改进算法。 [0033]实施例一 [0034]请参照图1,本发明提供一种基于FPGA的DWA改进算法的多比特sigma-delta DAC,包括DWA算法电路1、多个单比特DAC单元2、低通滤波器3;其中所述DWA算法电路1包括: [0035]温度计编码模块11,对输入的数字信号(sigma-delta调制器输出的多比特信号)按照多比特量化器位数n进行温度计编码,获得与数字信号对应的温度计编码,温度计编码的位数B与量化器位数n的关系为B=2n-1;在传统的DWA算法中这里的温度计编码需要与后面的DAC单元排列位数相同。 [0036]优选地,所述温度计编码模块11还包括: [0037]二进制单元,用于将输入的数字信号值转换为n位二进制码;例如采用三位的量化器,则生成三位的二进制码;输入数字信号为2时,生成的三位二进制码为:010; [0038]温度编码单元,用于根据n位二进制码获取2n-1位温度计编码;根据二进制码010设计7(23-1)位温度计编码:0000011; [0039]加位单元,用于在2n-1位温度计编码的最高位前或非零数据位前加k位零位,获得2n-1+k位温度计编码,其中k为正整数。获得8位温度计编码为:00000011;K取2时,获得9位温度计编码为:000000011。 [0040]优选地,所述DWA算法电路1还包括: [0041]控制逻辑模块12,对输入的多比特信号进行模尔加运算获得控制逻辑信号;为了防止数字信号在温度计编码模块11与控制逻辑模块12中传输的信号的数据错位或发生错误,保持数据传输的同步,在温度计编码模块与控制逻辑模块具有同样的时序关系,即在二个模块内都加入一个时钟延时单元;因为在控制逻辑模块12处设有一个延时控制,所以温度计编码模块11处也应有一个延时一个cycle的机制,以使控制逻辑模块与温度计编码模块接收的多比特信号保持同步,才能保证温度计编码与控制逻辑信号的对应。 [0042]在输入的数字信号为2时,9位温度计编码为:000000011,控制逻辑指针值为2,假如在下一个输入信号为3时,9位温度计编码为:000000111,控制逻辑指针值为3,000000011与000000111之间以及2与3之间均对应有一个延时,防止数据错位。 [0043]控制逻辑模块12主要是模尔加法器来实现,其加法器的位数由sigma-delta调制器的输出所决定,其时序上的设计有一个寄存器,会延时一个cycle。 [0044]桶型移位寄存器13,根据控制逻辑信号将温度计编码中的非零数据位在依次排列的多个单比特DAC单元上按照预设的起始位置和控制行为(例如循环方向)作为对应的多个单比特DAC单元的开关信号输出,并且使得多个单比特DAC单元的输入逻辑按照预定的方式进行;例如使得下一次控制开关的信号所对应的第一个单比特DAC单元的位置是从上一次控制开关的信号所对应的最后一个单比特DAC单元开始的;这里未使用的DAC单元指的是开关值为“0”的DAC单元。 [0045]优选地,所述桶型移位寄存器13还包括: [0046]移位单元,根据输入的温度计编码中非零数据的位数获取移位值n1或者根据输入的多比特信号获取移位值n1;9位温度计编码为:000000011时,非零数据的位数n1=2; [0047]指针单元,根据控制逻辑信号首次输出地址指针指向设定的起始位置(假设从高位开始,在从最左端的位开始以移位),之后输出地址指针总是在循环方向上指向前一个开关信号打开的DAC单元的后一位DAC单元。所述指针单元根据所述控制逻辑指针值2输出地址指针;则地址指针从左端开始移动两位,000000011,作为下次移位起始位置输出; [0048]输出单元,根据控制逻辑信号按照多个单比特DAC单元中自地址指针在循环方向上n1个单比特DAC单元的开关信号均为“1”,多个DAC单元中其余DAC单元的开关信号均为“0”的顺序输出DAC单元开关信号;以9位温度计编码为:000000011为例输出的DAC单元开关信号为:110000000;若下一输入的数字信号为3,则9位温度计编码为:000000111,输出的DAC单元开关信号为:00111000。 [0049]温度计编码与地址指针同时进入桶型移位寄存器,输出对应的DAC的开关信号。普通的DWA算法的DAC单元数量N与sigma-delta调制器输出位数n的比例关系为N=2n-1,而改进型的DWA算法是将DAC的单元个数增加,其关系式为: [0050] [0051]r为(2n-1,k)的最大公约数,n为温度计编码模块11的输入位宽,k为增加的DAC单元数量,Ftone是杂波被移至的频段,fs是DAC采样频率。由此可见,k取值越大,基带杂波的频率与采样频率的分离效果越明显,通过低通滤波器后滤除的效果越好。 [0052]多个单比特DAC单元2,数量N与量化器位数n的关系为N=2n-1+k,其中k为正整数,用于根据开关信号输出将信号在频点上将基带杂波与基带分离;,将输出的信号相加得到对应的模拟信号并输出;桶型移位寄存器输出的开关信号直接接入DAC单元并相加得到对应的模拟信号。K值根据增设的DAC单元的数量来确定。 [0053]低通滤波器3,用于滤除模拟信号基带外的杂波噪声,输出整形信号。实际是一个模拟的低通滤波器,其主要是起到滤除基带以外的杂波噪声。通过增加DAC的单元个数,基于随机化原理提出了一种新型的多比特sigma-delta调制器中的DWA算法以及基于FPGA的实现。本发明对sigma-delta的输出数据分二步处理,一步是实现温度计编码的输出,一步是循环移位的控制逻辑,从而达到温度计编码在各个数据位的分布平均化,抑制了DAC的非线性误,提高了整个多比特sigma-delta调制器的线性度,将杂波移除基带信号外,这样就避免了杂波噪声对SNR的影响。 [0054]为了避免基带杂波的影响,温度计编码模块11应该在编码位数上要多出理论值(B0=2n-1),才能将杂波移除基带范围外。 [0055]DAC单元的输出要经过加法器以及低通滤波器电路,因为DAC输出的为模拟信号,所以这二个电路都应是模拟电路结构,无法用数字来实现,所以FPGA的结构中没有这二个部分的电路。本发明的优选实施例为以增加一个DA单元数的微小代价,达到了避免小幅度信号时产生的基带杂波的影响。本发明中改进的DWA算法,通过温度计编码、循环移位控制以及简单的增加DAC单元数这三步,达到了传统的DWA算法所具备的数据权重分布平均化效果,同时又避免了小幅度信号时产生的基带杂波的影响,改善了信噪比,提高了整个多比特sigma-delta调制器的线性度。 [0056]实施例二 [0057]请参照图2~4,在实施例一的基础上,本发明实施例提供一种基于FPGA的应用于多比特sigma-delta DAC的DWA改进算法,包括以下步骤: [0058]步骤1,对sigma-delta调制器输入的数字信号按照多比特量化器位数进行温度计编码,获得与数字信号对应的温度计编码,同时对输入的多比特信号进行模尔加运算获得控制逻辑信号;温度计编码的位数B与量化器位数n的关系为B=2n-1; [0059]步骤2,根据控制逻辑信号将温度计编码中的非零数据位在依次排列的多个单比特DAC单元上按照预设的起始位置和循环方向作为对应的开关信号输出,并且使得地址指针总是在循环方向上指向下一个未使用的DAC单元;DAC单元的数量N与与量化器位数n的关系满足N=2n-1+k,其中k为正整数; [0060]步骤3,所有DAC单元根据开关信号输出在频率上将基带杂波与基带分离的模拟信号,DAC单元输出的信号相加得到对应的模拟信号; [0061]步骤4,使模拟信号再通过低通滤波器,滤除基带外的杂波噪声,获得整形信号。 [0062]优选地,所述步骤1包括: [0063]步骤11,调制器输入的多比特信号为n位二进制码,根据n位二进制码获取2n-1位温度计编码; [0064]步骤12,在2n-1位温度计编码的最高位前或非零数据位前加k位零位,获得2n-1+k位温度计编码。 [0065]优选地,所述步骤2包括: [0066]步骤21,根据输入的当前温度计编码中非零数据的位数获取当前移位值n1或者根据输入的当前多比特信号获取当前移位值n1[0067]步骤22,根据当前多比特信号的控制逻辑信号按照多个单比特DAC单元中自起始位置在循环方向上n1个单比特DAC单元的开关信号均为“1”,多个单比特DAC单元中其余DAC单元的开关信号均为“0”的顺序输出DAC单元开关信号;且地址指针总是在循环方向上指向最后一个开关信号为“1”的后一位DAC单元; [0068]步骤23,根据输入的下一温度计编码中非零数据的位数获取下一移位值n2或者根据输入的下一多比特信号获取下一移位值n2[0069]步骤24,根据下一多比特信号的控制逻辑信号按照多个单比特DAC单元中自地址指针在循环方向上n2个单比特DAC单元的开关信号为“1”,多个单比特DAC单元中其余DAC单元的开关信号为“0”输出DAC单元开关信号; [0070]依次循环步骤23、24输出与每次输入的数字信号对应的DAC单元开关信号。 [0071]优选地,为保证信号传输的同步,所述步骤1还包括: [0072]接收多比特信号时在温度计编码模块与逻辑控制模块都有一个时钟的延时操作,以使产生控制逻辑信号与形成温度计编码信号保持同步。 [0073]图1所示,为整个IDWA算法的电路结构图。多比特sigma-delta调制器输出的多比特信号同时进入逻辑控制和温度计编码模块,产生对应的地址指针和温度计编码,这二部分同时送入到桶型移位寄存器中,从桶型移位寄存器中输出的就是单元DAC的开关信号,直接控制着多个单比特DAC单元的输出,输出结果通过模拟加法以及低通滤波器即可得到整形良好的模拟信号。 [0074]图2所示为温度计编码模块的仿真图,bin_in信号为sigma-delta输出的多比特信号(4bits),激励信号给出的输入为4’h0至4’hf这16个数,从code_out输出端可以看出输出分别为: [0075]16’b000000000000000,16’b0000000000000001,16’b0000000000000011,16’b0000000000000111,16’b0000000000001111,16’b0000000000011111,16’b0000000000111111,16’b0000000001111111,16’b0000000011111111,16’b0000000111111111,16’b0000001111111111,16’b000011111111111,16’b0000111111111111,16’b0001111111111111,16’b0011111111111111,16’b0111111111111111。 [0076]图3为桶型移位寄存器的仿真原理图,此模块有二个输入,一个为指针地址,另一个为对应的温度计编码,激励给出了4组激励信号,输入的值分别为1、2、3、4,输出的值从最高位开始分别有1、2、3、4个1’b1的值,这个值就是单元DAC输入的值,从仿真图中可以看了,输出的值是从最高位赋值的,其输出的位数(16bits)大于DWA算法中理论值(15bits)。 [0077]图4为整个IDWA的仿真图,从图中可以看出,输入激励分别为5、8、7、11、15、7、2、1、8、9等随机数,而输出的值分别为16’b1111100000000000、16’b0000011111111000、16’b1111000000000111、16’b0000111111111110、16’b1111111111111101、16’b1111100000000011、16’b0000011000000000、16’b0000000100000000、16’b0000000011111111、16’b1111111110000000。 [0078]从输出中可以看出,桶型移位寄存器输出的1是以16位为一个周期的循环移动,这就改善了DAC的匹配误差。与普通的DWA算法相比,这里的DAC单元数要多一个,但仅仅多一个单元数,很好的解决了低幅度信号的基带杂波的问题,同时DAC的匹配误差也得到了很好的改善,硬件的成本也只有一个单比特DAC单元的代价,从各方面来看都不失为一个解决低幅度信号的多比特sigma-delta调制内部DAC失配误差的方案。 [0079]以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
现在,一起体验智慧芽的产品和服务
自动注册,无需人工审核,即可立即开始查询专利
立即注册
澳门正版图库

AI助手