发明的最佳实施例
以下,参照附图详细说明采用本发明的一实施例的D/A变换器。图1是本实施例的D/A变换器中的内插运算所用的取样函数的说明图。该取样函数H(t)披露于WO99/38090,按以下式来表示。
(-t2-4t-4)/4 ;-2≤t<-3/2
(3t2/8t+5)/4 ;-3/2≤t<-1
(5t2+12t+7)/4 ;-1≤t<-1/2
(-7t2+4)/4 ;-1/2≤t<0
(-7t2+4)/4 ;0≤t<1/2
(5t2-12t+7)/4 ;1/2≤t<1
(3t2-8t+5)/4 ;1≤t<3/2
(-t2+4t-4)/4 ;3/2≤t≤2 … (1)
这里,t=0、±1、±2表示取样位置。图1所示的取样函数H(t)是在全域中仅可微分一次,而且在取样位置t=±2中收敛为0的有限范围的函数,通过使用该取样函数H(t)来进行基于各取样值的重合,可以使用在取样值间仅进行一次微分的函数来进行内插。
图2表示取样值和其间的内插值之间关系的图。如图2所示,假设4个取样位置为t1、t2、t3、t4,各自的间隔为1。与取样位置t2和t3之间的内插位置t0对应的内插值y为
y=Y(t1)·H(1+a)+Y(t2)·H(a)+Y(t3)·H(1-a)
+Y(t4)·H(2-a) …(2)
其中,Y(t)表示取样位置t的各取样值。1+a、a、1-a、2-a分别是内插位置t0和各取样位置t1~t4间的距离。
但是,如上所述,在原理上,通过计算与各取样值对应的取样函数H(t)的值来进行卷积运算,可以求各取样值间的内插值,但图1所示的取样函数是在全域中仅可微分一次的二次区分多项式,利用该特征,可以根据等价的其他处理步骤来求内插值。
图3是表示对图1所示的取样函数进行一次微分所得的波形的图。由于图1所示的取样函数H(t)是在全域中可进行一次微分的二次区分多项式,所以通过对其进行一次微分,可以获得图3所示的连续折线状的波形组成的折线函数。
图4是表示对图3所示的折线函数再次微分所得的波形的图。但是,在折线波形中包含多个拐点,由于在全域中不能进行微分,所以对由相邻的2个拐点夹着的直线部分进行微分。通过对图3所示的折线波形进行微分,可以获得图4所示的阶跃状波形组成的阶跃函数。
这样,通过对上述取样函数H(t)在全域进行一次微分就能获得折线函数,对该折线函数的各直线部分进一步进行微分就能获得阶跃函数。因此,相反地,通过产生图4所示的阶跃函数,对该函数进行2次积分,可以获得图1所示的取样函数H(t)。
图4所示的阶跃函数有正区域和负区域相等的面积,具有对这些面积进行合计的值为0的特征。换句话说,通过对具有这样特征的阶跃函数进行多次积分,可以获得图1所示的保证全域的可微分性的有限范围的取样函数。
但是,在通过式(2)的卷积运算进行的内插值的计算中,将各取样值与取样函数H(t)的值相乘,但在对图4所示的阶跃函数进行2次积分来求取样函数H(t)的情况下,除了将各取样值与通过该积分处理所得的取样函数的值相乘的情况以外,等价地在产生积分处理前的阶跃函数时产生与各取样值相乘的阶跃函数,可以用该阶跃函数对进行了卷积运算的结果进行2次积分处理来求内插值。本实施例的D/A变换器这样来求内插值,下面说明其细节。
图5表示本实施例的D/A变换器的结构图。该图所示的D/A变换器包括:4个D型触发器(D-FF)10-1、10-2、10-3、10-4;4个乘法器12-1、12-2、12-3、12-4;3个加法器(ADD)14-1、14-2、14-3;D/A变换器16;以及2个积分电路18-1、18-2。
串联连接的4级的D型触发器10-1~10-4进行与时钟信号CLK同步的数据保持动作,依次取入在初级D型触发器10-1中输入的数字数据并保持其值。例如,如果考虑将数据D1、D2、D3、D4、…依次输入到初级的D型触发器10-1的情况,则在第4个输入数据D4保持在初级的D型触发器10-1中的定时中,在第3、第2、第1输入数据D3、D2、D1分别保持在第2级、第3级、第4级的D型触发器10-2、10-3、10-4中。
此外,4个乘法器12-1~12-4分别有两种乘数,在时钟信号CLK的各周期的前半周期和后半周期分别进行乘法处理。例如,乘法器12-1在时钟信号CLK的各周期的前半部分进行乘数“-1”的乘数处理,在后半部分进行乘数‘+3’的乘法处理。乘法器12-2在时钟信号CLK的各周期的前半部分进行乘数‘+5’的乘法处理,而在后半部分进行乘数‘-7’的乘法处理。乘法器12-3在时钟信号CLK的各周期的前半部分进行乘数‘-7’的乘法处理,而在后半部分进行乘数‘+5’的乘法处理。乘法器12-4在时钟信号CLK的各周期的前半部分进行乘数‘+3’的乘法处理,而在后半部分进行乘数‘-1’的乘法处理。
但是,图4所示的阶跃函数的各值可以通过对上述的式(1)的各区分多项式进行2次微分来获得,如下所示。
-1 ;-2≤t<-3/2
+3 ;-3/2t<-1
+5 ;-1≤t1<-1/2
-7 ;-1/2≤t<0
-7 ;0≤t≤/2
+5 ;1/≤2t<1
+3 ;1≤t<3/2
-1 ;3/2≤t≤2
当着眼于取样位置t为从-2到-1的区间时,阶跃函数的值的前半部分为‘-1’,而后半部分为‘+3’,这些值与乘法器12-1的乘数相对应。同样,当着眼于取样位置t为从-1到0的区间时,阶跃函数的值的前半部分为‘+5’,而后半部分为‘-7’,这些值与乘法器12-2的乘数相对应。着眼于取样位置t为从0到+1的区间时,阶跃函数的值的前半部分为‘-7’,而后半部分为‘+5’,这些值与乘法器12-3的乘数相对应。着眼于取样位置t为从+1到+2的区间时,阶跃函数的值的前半部分为‘+3’,而后半部分为‘-1’,这些值与乘法器12-4的乘数相对应。
3个加法器14-1~14-3是将上述4个乘法器12-1~124的各乘算结果相加的加法器。加法器14-1将2个乘法器12-1和12-2的各乘算结果相加。加法器14-2将乘法器12-3的乘算结果和加法器14-1的加算结果相加。而加法器14-3将乘法器12-4的乘算结果和加法器14-2的加算结果相加。通过使用这3个加法器14-1~14-3,将4个乘法器12-1~12-4的各乘算结果相加,但如上所述,在各乘法器12-1~12-4中进行在时钟信号CLK的各周期的前半部分和后半部分用不同乘数的乘法处理,所以将这些乘算结果相加所得的加法器14-3的输出值也成为在时钟信号CLK的各周期的前半部分和后半部分具有不同值的阶跃状的数字数据。
在本实施例中,用3个加法器14-1~14-3将4个乘法器12-1~124的4个乘算结果相加,但通过使用输入端子数为3个以上的加法器,就可以减少加法器的使用个数。
D/A变换器16产生与从加法器14-3输出的阶跃状的数字数据对应的模拟电压。该D/A变换器16产生与输入的数字数据的值成比例的一定的模拟电压,所以可获得在时钟信号CLK的各周期的前半部分和后半部分电压值不同的阶跃状的输出电压。
串联连接的2个积分电路18-1、18-2对D/A变换器16的输出端出现的阶跃状的输出电压进行2次积分处理。从前级的积分电路18-1获得直线状(一次函数)变化的输出电压,从后级的积分电路18-2获得二次函数变化的输出电压。这样,如果多个数字数据以一定间隔输入到初级的D型触发器10-1,则从后级的积分电路18-2获得以仅可进行1次微分的平滑曲线来连接各数字数据对应的电压值之间的连续模拟信号。
图6表示积分电路的具体结构的示例图。在该图中,示出了积分电路18-1的具体结构的示例,而积分电路18-2可以由相同的结构来实现。图6所示的积分电路18-1是包括运算放大器181、电容器182、电阻183构成的一般模拟积分电路,对电阻183的一端施加的电压进行规定的积分动作。
上述D型触发器10-1~10-4与多个数据保持部件、乘法器12-1~12-4与多个乘法部件、加法器14-1~14-3与加法部件、D/A变换器16与阶跃电压波形发生部件、积分电路18-1和18-2与积分处理部件相对应。
图7表示本实施例的D/A变换器的工作定时的图。与图7(A)所示的时钟信号CLK的各周期的上升同步,将数据D1、D2、D3、D4、…依次输入到初级的D型触发器10-1。图7(B)~(E)分别表示D型触发器10-1~10-4中的数据的保持内容。在以下的说明中,例如假设着眼于第4个输入数据D4在初级的D型触发器10-1中被保持一个时钟量的定时。
在初级的D型触发器10-1中保持的第4个输入数据D4的定时中,在第2级D型触发器10-2中保持第3个输入数据D3,在第3级D型触发器10-3中保持第2个输入数据D2,在第4级D型触发器10-4中保持最初的输入数据D1。
此外,乘法器12-1输入在初级的D型触发器10-1中保持的数据D4,在1个时钟周期的前半部分中输出将该输入数据D4乘以-1所得的乘算结果‘-D4’,而在后半部分中输出将该输入数据D4乘以+3所得的乘算结果‘+3D4’(图7(F))。同样,乘法器12-2输入在第2级的D型触发器10-2中保持的数据D3,在1个时钟周期的前半部分中输出将该输入数据D3乘以+5所得的乘算结果‘+5D3’,而在后半部分中输出将该输入数据D3乘以-7所得的乘算结果‘-7D3’(图7(G))。乘法器12-3输入在第3级的D型触发器10-3中保持的数据D2,在1个时钟周期的前半部分中输出将该输入数据D2乘以-7所得的乘算结果‘-7D2’,而在后半部分中输出将该输入数据D2乘以+5所得的乘算结果‘+5D2’(图7(H))。乘法器12-4输入在第4级的D型触发器10-4中保持的数据D1,在1个时钟周期的前半部分中输出将该输入数据D1乘以+3所得的乘算结果‘+3D1’,而在后半部分中输出将该输入数据D1乘以-1所得的乘算结果‘-1D1’(图7(I)。
3个加法器14-1~14-3将分别在4个乘法器12-1~12-4中进行的4个乘算结果相加。因此,在1个时钟周期的前半部分中,从加法器14-3输出分别在4个乘法器12-1~12-4中将1个时钟周期的前半部分中进行的各乘算结果相加所得的加算结果(-D4+5D3-7D2+3D1)。此外,在1个时钟周期的后半部分中,从加法器14-3输出分别在4个乘法器12-1~12-4中将1个时钟周期的后半部分中进行的各乘算结果相加所得的加算结果(3D4-7D3+5D2-D1)。
这样,如果从加法器14-3依次输出阶跃状的加算结果,则D/A变换器16根据该加算结果(数字数据)来产生模拟电压。在D/A变换器16中,由于产生与输入的数字数据的值成比例的一定的模拟电压,所以可获得与输入的数字数据对应的电压电平阶跃状变化的输出波形(图7(J))。
如果从D/A变换器16输出具有阶跃状的电压电平的波形,则前级积分电路18-1对该波形进行积分并输出折线状的波形(图7(K)),而后级积分电路18-2对该折线状的波形再积分,产生将分别与数字数据D2和D3对应的电压值之间用仅可微分一次的平滑曲线连接起来的输出电压(图7(L))。
这样,本实施例的D/A变换器将输入的数字数据依次保持在串联连接的4个D型触发器10-1~10-4中,在分别1对1地对应的4个乘法器12-1~12-4中,在数据的保持期间的1个时钟周期的前半部分和后半部分中进行不同的乘法处理后,由加法器14-1~14-3将各乘算结果相加。然后,通过D/A变换器16来产生与该加算结果对应的模拟电压,接着通过由2级的积分电路18-1、18-2进行2次积分处理,可以产生将与输入的各数字数据对应的电压值之间平滑地连接起来的连续模拟信号。
特别是由于与输入的4个数字数据分别对应、在1个时钟周期的前半部分和后半部分得到具有不同的值的2个乘算结果后,将这些结果相加,在产生与该加算结果对应的模拟电压后,通过进行2次积分处理来获得连续的模拟信号,所以不需要以往那样的采样保持电路和低通滤波器也不会恶化直线相位特性,可以降低输出波形的失真,实现良好的组延迟特性。
此外,由于不进行以往的超采样处理,所以不仅可确保根据输入的数字数据的时间间隔决定的规定工作速度,而且由于不必进行高速的信号处理,所以也不需要使用昂贵的部件。例如,在现有的D/A变换器中,在为了获得采样频率的1024倍的虚拟频率而进行超采样处理的情况下,各部件的工作速度也需要与该虚拟频率相同,而在本实施例的D/A变换器中,仅需要以采样频率的2倍频率来使各乘法器和各加法器动作,所以可以大幅度地降低各部件的工作速度。
下面,说明本实施例的D/A变换器的各部件的详细结构例。图8~图11分别表示4个乘法器12-1~12-4的结构图。
如图8所示,乘法器12-1由乘数值固定的2个乘法器121a、121b和选择器121c构成。一个乘法器121a进行乘数‘-1’的乘法处理,而另一个乘法器121b进行乘数‘+3’的乘法处理。选择器121c分别输入2个乘法器121a、121b的乘算结果,在控制端子S上输入的时钟信号CLK为高电平时,即在1个时钟信号周期的前半部分中,输出一个乘法器121a的乘以-1的乘算结果,相反地,在控制端子S上输入的的时钟信号CLK为低电平时,即在1个时钟周期的后半部分中,输出另一乘法器121b的乘以+3的乘算结果。
同样,如图9所示,乘法器12-2由乘数值固定的2个乘法器122a、122b和选择器122c构成。一个乘法器122a进行乘数‘+5’的乘法处理,而另一个乘法器122b进行乘数‘-7’的乘法处理。选择器122c分别输入2个乘法器122a、122b的乘算结果,在控制端子S上输入的时钟信号CLK为高电平时(1个时钟信号周期的前半部分),输出一个乘法器122a的乘以+5的乘算结果,相反地,在控制端子S上输入的的时钟信号CLK为低电平时(1个时钟周期的后半部分),输出另一乘法器122b的乘以-7的乘算结果。
如图10所示,乘法器12-3由乘数值固定的2个乘法器123a、123b和选择器123c构成。一个乘法器123a进行乘数‘-7’的乘法处理,而另一个乘法器123b进行乘数‘+5’的乘法处理。选择器123c分别输入2个乘法器123a、123b的乘算结果,在控制端子S上输入的时钟信号CLK为高电平时(1个时钟信号周期的前半部分),输出一个乘法器123a的乘以-7的乘算结果,相反地,在控制端子S上输入的的时钟信号CLK为低电平时(1个时钟周期的后半部分),输出另一乘法器123b的乘以+5的乘算结果。
如图11所示,乘法器12-4由乘数值固定的2个乘法器124a、124b和选择器124c构成。一个乘法器124a进行乘数‘+3’的乘法处理,而另一个乘法器124b进行乘数‘-’的乘法处理。选择器124c分别输入2个乘法器124a、124b的乘算结果,在控制端子S上输入的时钟信号CLK为高电平时(1个时钟信号周期的前半部分),输出一个乘法器124a的乘以+3的乘算结果,相反地,在控制端子S上输入的的时钟信号CLK为低电平时(1个时钟周期的后半部分),输出另一乘法器124b的乘以-1的乘算结果。
这样,在各个乘法器中,实现在1个时钟周期的前半部分和后半部分中用不同的乘数的乘法处理。
这样,在上述的4个乘法器12-1~12-4中,使用4种乘数值-1、+3、+5、-7。如果从各乘数值中减去1,则变为-2、+2、+4、-8,成为2的幂数,所以可以用简单的移位来实现将这些数作为乘数的乘法处理。本实施例的各乘法器的乘数着眼于具有这样特殊性的值,可以简化各乘法器的结构。
图12~图15是表示简化的4个乘法器12-1~12-4的结构图。
如图12所示,乘法器12-1包括具有反向输出端子的三态缓冲器121d、具有非反向输出端子的三态缓冲器121e、以及具有2个输入端子和进位端子C的加法器(ADD)121f。
一个三态缓冲器121d在控制端子上输入的时钟信号CLK为高电平时(1个时钟周期的前半部分),通过将输入数据移位到高1位的高位侧并输出,并且将该移位过的数据的各位反向输出,来进行最终乘以-2的乘法处理。实际上,通过求在反向各位后加1的补数,可以进行乘以-2的乘法处理,但加1的处理在后级的加法器121f中进行。
另一个三态缓冲器121e在控制端子上反向输入的时钟信号为低电平时(1个时钟周期的后半部分),通过将输入数据移位输出到高1位的高位侧并输出,来进行乘以2的乘法处理。
加法器121f将乘算前的输入数据(从D型触发器10-1输出的数据)与从2个三态缓冲器121d、121e的任一个输出的乘算结果相加,并且在进位端子C上输入的时钟信号CLK为高电平时(1个时钟周期的前半部分)再加上与进位相当的1。如上所述,与该进位相当的1的加法用于用三态缓冲器121d来求补数。
在具有上述结构的乘法器12-1中,在1个时钟周期的前半部分中,由于仅一个三态缓冲器121d的动作有效,所以加法器121f输出将输入数据D本身与对输入数据D进行乘以-2的乘算结果(-2D)相加所得的结果(-2D+D=-D)。此外,在1个时钟周期的后半部分中,由于仅另一个三态缓冲器121e的动作有效,所以加法器121f输出将输入数据D本身与对输入数据D进行乘以+2的乘算结果(+2D)相加所得的结果(+2D+D=3D)。
这样,通过将移位产生的2的幂的乘法处理和加法处理组合起来来进行乘以-1和乘以+3的乘法处理,可以仅用三态缓冲器和加法器来构成乘法器12-1,能够简化结构。特别是由于有选择地使用2个三态缓冲器的各输出,所以可以“线或”(“Wired OR”)连接这些各输出端,能够进一步简化结构。
如图13所示,乘法器12-2包括具有非反向输出端子的三态缓冲器122d、具有反向输出端子的三态缓冲器122e、以及具有2个输入端子和进位端子C的加法器(ADD)122f。
一个三态缓冲器122d在控制端子上输入的时钟信号CLK为高电平时(1个时钟周期的前半部分),通过将输入数据移位到高2位的高位侧并输出,来进行乘以+4的乘法处理。
另一个三态缓冲器122e在控制端子上反向输入的时钟信号为低电平时(1个时钟周期的后半部分),通过将输入数据移位输出到高3位的高位侧并输出,并且将该移位的数据的各位反向输出,来进行最终乘以-8的乘法处理。实际上,通过在反向各位后加1来求补数,可以进行乘以-8的乘法处理,但该加1的处理在后级的加法器122冲进行。
加法器122f将乘算前的输入数据与从2个三态缓冲器122d、122e的任一个输出的乘算结果相加,并且在进位端子C上反向输入的时钟信号CLK为低电平时(1个时钟周期的后半部分)再加上与进位相当的1。如上所述,与该进位相当的1的加法是用三态缓冲器122e来求补数。
在具有上述结构的乘法器12-2中,在1个时钟周期的前半部分中,由于仅一个三态缓冲器122d的动作有效,所以加法器122f输出将输入数据D本身与对输入数据D进行乘以+4的乘算结果(+4D)相加所得的结果(+4D+D=+5D)。此外,在1个时钟周期的后半部分中,由于仅另一个三态缓冲器122e的动作有效,所以加法器122f输出将输入数据D本身与对输入数据D进行乘以-8的乘算结果(-8D)相加所得的结果(-8D+D=7D)。
这样,通过将移位产生的2的幂的乘法处理和加法处理组合起来来进行乘以+5和乘以-7的乘法处理,可以仅用三态缓冲器和加法器来构成乘法器12-2,能够简化结构。
如图14所示,乘法器12-3包括具有反向输出端子的三态缓冲器123d、具有非反向输出端子的三态缓冲器123e、以及具有2个输入端子和进位端子C的加法器(ADD)123f。
一个三态缓冲器123d在控制端子上反向输入的时钟信号CLK为高电平时(1个时钟周期的前半部分),通过将输入数据移位到高3位的高位侧并输出,并且反向输出该移位的数据的各位,来进行最终乘以-8的乘法处理。实际上,通过在反向各位后加1来求补数,可以进行乘以-8的乘法处理,但该加1的处理在后级的加法器123f中进行。
另一个三态缓冲器123e在控制端子上反向输入的时钟信号CLK为低电平时(1个时钟周期的后半部分),通过将输入数据移位输出到高2位的高位侧并输出,来进行乘以+4的乘法处理。
加法器123f将乘法前的输入数据与从2个三态缓冲器123d、123e的任一个输出的乘算结果相加,并且在进位端子C上输入的时钟信号CLK为高电平时(1个时钟周期的前半部分)再加上与进位相当的1。如上所述,与该进位相当的1的加算是用三态缓冲器123e来求补数。
在具有上述结构的乘法器12-3中,在1个时钟周期的前半部分中,由于仅一个三态缓冲器123d的动作有效,所以加法器123f输出将输入数据D本身与对输入数据D进行乘以-8的乘算结果(-8D)相加所得的结果(-8D+D=-7D)。此外,在1个时钟周期的后半部分中,由于仅另一个三态缓冲器123e的动作有效,所以加法器123f输出将输入数据D本身与对输入数据D进行乘以+4的乘算结果(+4D)相加所得的结果(+4D+D=+5D)。
这样,通过将移位产生的2的幂的乘法处理和加法处理组合来进行乘以-7和乘以+5的乘法处理,可以仅用三态缓冲器和加法器来构成乘法器12-2,能够简化结构。
如图15所示,乘法器12-4包括具有非反向输出端子的三态缓冲器124d、具有反向输出端子的三态缓冲器124e、以及具有2个输入端子和进位端子C的加法器(ADD)124f。
一个三态缓冲器124d在控制端子上输入的时钟信号CLK为高电平时(1个时钟周期的前半部分),通过将输入数据移位到高1位的高位侧并输出,来进行乘以2的乘法处理。
另一个三态缓冲器124e在控制端子上反向输入的时钟信号CLK为低电平时(1个时钟周期的后半部分),通过将输入数据移位到高1位的高位侧,并且反向输出该移位的数据的各位,来进行最终乘以-2的乘法处理。实际上,通过在反向各位后加1来求补数,可以进行乘以-2的乘法处理,但该加1的处理在后级的加法器124f中进行。
加法器124f将乘算前的输入数据与从2个三态缓冲器123d、123e的某一个输出的乘算结果相加,并且在进位端子C上输入的时钟信号CLK为高电平时(1个时钟周期的前半部分)再加与进位相当的1。如上所述,与该进位相当的1的加算是用三态缓冲器124e来求补数。
在具有上述结构的乘法器12-4中,在1个时钟周期的前半部分中,由于仅一个三态缓冲器124d的动作有效,所以加法器124f输出将输入数据D本身与对输入数据D进行乘以+2的乘算结果(+2D)相加所得的结果(+2D+D=3D)。此外,在1个时钟周期的后半部分中,由于仅另一个三态缓冲器124e的动作有效,所以加法器124f输出将输入数据D本身与对输入数据D进行乘以-2的乘算结果(-2D)相加所得的结果(-2D+D=-D)。
这样,通过将移位产生的2的幂的乘法处理和加法处理组合起来来进行乘以+3和乘以-1的乘法处理,可以仅用三态缓冲器和加法器来构成乘法器12-4,能够简化结构。
本发明不限于上述实施例,在本发明的精神范围内可以进行各种变形实施。例如,在上述实施例中,将取样函数作为在全域中仅可进行1次微分的有限范围的函数,但也可以将可微分次数设定为2次以上。这种情况下,包括与可微分次数一致数的积分电路就可以。
此外,如图1所示,本实施例的取样函数在t=+2时收敛到0,但也可以在t=±3以上时收敛到0。例如,在t=±3以上时收敛到0的情况下,在图5所示的D/A变换器中包括的D型触发器和乘法器的数目都为6,也可以以6个数字数据为对象来进行内插处理,产生平滑连接这些数字数据的模拟电压。
此外,不限于必须使用有限范围的取样函数来进行内插处理的情况,在-∞~+∞的范围中,也可以使用具有规定值的可有限微分的取样函数,仅将有限取样位置对应的多个数字数据作为内插对象。例如,假设将这样的取样函数以二次区分多项式来定义,由于可以通过对各区分多项式进行2次微分来获得规定的阶跃函数,所以通过使用该阶跃函数对进行了电压合成的结果进行2次积分处理,可以获得平滑连接对应于数字数据的电压的模拟信号。