用于产生定点数据的电路和方法 【技术领域】
本发明一般地涉及由浮点数据产生定点数据、具有简化电路规模的电路和方法。更具体地说,本发明涉及用于由浮点数据产生待输入到宽带码分多址系统(以下简称W-CDMA)维特比解码器的定点数据的电路和方法。背景技术
图9示出用于由浮点数据产生定点数据并进行维特比解码的传统电路实例的原理框图。图9所示的电路包括优化电路101和维特比解码器或维特比解码电路102。图10示出用于解释利用图9所示的电路的、由浮点数据产生定点数据并进行维特比解码的方法的流程图。
在图9和图10所示的传统实例中,将浮点数据输入到优化电路101(步骤S101),然后,首先在优化电路101内,利用如下公式将输入的浮点数据转换为定点数据。
(输入数据/MAX数据)×2(维特比输入位宽度-1) ...(1)其中“MAX数据”指输入浮点数据内的最大数据。
将利用上述公式转换的定点数据输入到维特比解码电路102(步骤S102),然后,在维特比解码电路102内,利用输入的定点数据进行维特比解码(步骤S104)。
此后,将在步骤S104获得的维特比解码结果从维特比解码电路102输出(步骤S105)。
然而,在上述传统电路中,必须在由输入的浮点数据产生定点数据的优化电路内设置除法电路以进行除法运算。因此,存在的问题是,定点数据产生电路的电路规模变得庞大。
此外,存在的另一个问题是,由于维特比输入数据的位宽度固定,所以只能在与固定位宽度对应的解码精度内,提高维特比解码速率。本发明概述(本发明目的)
考虑到传统技术地上述问题,所以提出了本发明。
本发明的一个目的是提供一种由浮点数据产生定点数据、并可以减小电路规模的电路和方法。
本发明的另一个目的是提供一种由浮点数据产生定点数据、并可以提高位解码速率的电路和方法。
本发明的又一个目的是提供一种由浮点数据产生定点数据、并可以在减小电路规模的同时提高位解码速率的电路和方法。
本发明的又一个目的是克服由浮点数据产生定点数据的传统电路和方法的缺点。(组成结构)
根据本发明的一个方面,提供了一种定点数据产生电路,该定点数据产生电路接收多个浮点数据并将多个浮点数据转换为相应的定点数据,该定点数据产生电路包括:参考数据确定装置,用于从多个浮点数据中确定参考浮点数据;指数部分减法装置,用于计算多个输入浮点数据指数部分的值与参考浮点数据指数部分的值的差值;移位装置,利用指数部分减法装置获得的差值对各浮点数据的尾数部分进行移位;以及位提取装置,用于从移位装置移位的尾数部分提取预定位数作为定点数据。
在此情况下,参考数据确定装置优选是用于检测多个浮点数据内的最大值的最大值检测装置,并且参考浮点数据优选是多个浮点数据中的最大数据。
参考数据确定装置优选是用于检测多个浮点数据内的最小值的最小值检测装置,并且参考浮点数据优选是多个浮点数据内的最小数据。
参考数据确定装置更优选地是用于计算浮点数据的平均值的平均值计算装置,并且参考浮点数据优选是多个浮点数据的平均数据。
优选位提取装置从预定位置提取位作为定点数据。
优选当利用位提取装置提取作为定点数据的位发生溢出时,就使提取位代表最大值。
优选当利用移位装置对各浮点数据的尾数部分进行移位发生溢出时,就使移位位代表最大值。
优选将利用位提取装置提取的定点数据输入到维特比解码器。
优选事先将利用位提取装置提取、作为定点数据的各位的位置确定为具有高解码速率的位置。
根据本发明的另一个方面,提供了一种用于产生定点数据的方法,在该方法中,将多个浮点数据转换为相应的定点数据,该方法包括:从多个浮点数据中确定参考浮点数据;计算多个输入浮点数据指数部分的值与参考浮点数据指数部分的值之间的差值;按照多个输入浮点数据指数部分的值与参考浮点数据指数部分的值之间的差值,对各浮点数据尾数部分进行移位;以及从按照差值进行移位的尾数部分内提取预定位数作为定点数据。
在此情况下,参考浮点数据优选是多个浮点数据中的最大数据。
参考浮点数据还优选是多个浮点数据中的最小数据。
参考浮点数据进一步优选是多个浮点数据的平均数据。
优选在从按照差值移位的尾数部分提取预定位数作为定点数据的过程中,从预定位置提取各位。
优选在从按照差值移位的尾数部分提取预定位数作为定点数据的过程中,提取位发生溢出时,使提取位代表最大值。
优选在利用差值对各浮点数据尾数部分进行移位的过程中,对各浮点数据尾数部分进行移位发生溢出时,使移位位代表最大值。
优选将在从按照差值移位的尾数部分内提取预定位数的过程中,提取的定点数据输入到维特比解码器。
还优选事先将在从按照差值移位的尾数部分内提取预定位数的过程中提取的各位的位置确定为具有高解码速率的位置。(操作)
在具有上述构造的、根据本发明的浮点数据产生电路中,当对它输入多个浮点数据时,首先,从多个浮点数据中检测诸如最大浮点数据或最小浮点数据的参考数据。获得输入的各浮点数据指数部分的值与最大浮点数据或最小浮点数据的指数部分的值之间的差值。此后,按照此差值对输入的各浮点数据进行移位,然后提取移位尾数部分的预定位数作为定点数据。
这样,根据本发明,仅利用对输入的浮点数据进行的比较过程和减法过程,就可以产生定点数据。因此电路规模不会变大。
此外,还可以利用所输入的多个浮点数据的平均值作为参考数据。在此例中,获得所输入的多个浮点数据的平均值的指数部分的值与所输入的各浮点数据指数部分的值之间的差值,按照此差值对各浮点数据尾数部分进行移位,然后从移位尾数部分中提取预定位数作为定点数据。
此外,如果被提取作为定点数据的位的位置事先确定到具有高解码速率的位置,则可以提高解码速率。附图的简要说明
根据以下结合附图所作的详细说明,本发明的这些以及其它特征和优势将变得更加容易理解。附图中相同的参考编号表示相同部分的或对应部分,附图包括:
图1示出根据本发明第一实施例的定点数据产生电路的原理框图;
图2示出在图1所示的定点数据产生电路中,由浮点数据产生定点数据的方法的流程图;
图3示出利用减法器的定点数据产生电路的电路规模和利用除法电路的定点数据产生电路的电路规模的曲线图;
图4示出图1所示的定点数据产生电路和传统定点数据产生电路的误码率(BER)特性曲线图;
图5示出根据本发明第二实施例的定点数据产生电路的原理框图;
图6示出在图5所示的定点数据产生电路中,由浮点数据产生定点数据的方法的流程图;
图7示出根据本发明第三实施例的定点数据产生电路的原理框图;
图8示出在图7所示的定点数据产生电路中,由浮点数据产生定点数据的方法的流程图;
图9示出由浮点数据产生定点数据并进行维特比解码的传统电路实例的原理框图;以及
图10示出利用图9所示的电路由浮点数据产生定点数据并进行维特比解码的方法的流程图。优选实施例的详细说明
以下将参考附图对本发明的实施例进行说明。(第一实施例)
图1示出根据本发明第一实施例的定点数据产生电路的原理框图。
如图1所示,根据本发明第一实施例的定点数据产生电路包括:最大值检测电路10,用于从输入到最大值检测电路10的输入浮点数据中检测最大浮点数据作为参考数据;指数部分减法器20,用于从作为最大值检测电路10检测的最大值的浮点数据指数部分的值中减去各输入的浮点数据指数部分的值;移位寄存器30,用于根据指数部分减法器20的减法运算结果,对输入的各浮点数据尾数部分进行移位;以及位提取部分40,从移位寄存器30移位的尾数部分中提取预定位数作为定点数据输入到维特比解码电路(未示出)。
现在将参考流程图,对在具有上述构造的定点数据产生电路中产生定点数据的方法进行说明。
图2示出在图1所示的定点数据产生电路中,由输入的浮点数据产生定点数据的方法的流程图。
将浮点数据输入图1所示的电路(步骤S1),然后,最大值检测电路10首先根据下式从输入的浮点数据D1、D2、D3、...、Dn中检测最大浮点数据Dmax(步骤S2)。
Dmax=max{D1,D2,D3...,Dn} (n:数据量) ...(1)
(Dmax=DmaxM(尾数部分)×2DmaxE(指数部分))
接着,为了将各输入浮点数据的指数部分调整为最大值,在指数部分减法器20,从最大值检测电路10检测为最大值的浮点数据指数部分的值中,分别减去各输入的浮点数据指数部分的值,并作为移位量输出(步骤S3)。
移位量=DmaxE-DinE ...(3)
(DmaxE:最大指数部分值,DinE:输入的浮点数据指数部分的值)
在移位寄存器30,根据利用等式(3)计算的移位量,对输入的各浮点数据的尾数部分进行移位(步骤S4)。
定点数据=DinM/2(移位量) ...(4)
(DinM:输入的浮点数据的尾数部分的值)
然后,在位提取部分40,从移位寄存器30移位的尾数部分提取预定位数作为定点数据输入到维特比解码电路(步骤S5)。在此例中,通过将待提取的位的位置固定到具有高解码速率的位置,可以提高解码精度。
在位提取部分40,当提取位溢出时,通过利用提取位作为最大值,进行饱和处理(步骤S6),并获得优化数据。
此后,将在位提取部分40提取的定点数据输入到维特比解码电路(步骤S7),然后,在维特比解码电路,利用输入的定点数据进行维特比解码(步骤S8)。
以下以对维特比解码电路输入4位数据为例,对上述处理过程进行说明。
假定以下是输入的数据,即尾数部分(包括符号位)是8位长,指数部分是4位长,输出是4位长。此外,还假定输入下列3个浮点数据。
尾数部分|指数部分
#1:0110 0100|0100=100×24=1600
#2:0110 0000|0110=96×26=6144
#3:0110 1000|0101=104×25=3328
首先,在最大值检测电路10,在输入的浮点数据中检测最大浮点数据。在此,上述3个浮点数据中的最大浮点数据是数据#2,因此,浮点数据#2被检测为最大数据。
接着,在指数部分减法器20,为了将所有输入的浮点数据的指数部分调整为相同的值,从最大浮点数据#2指数部分的值中减去输入的浮点数据的指数部分的值。在上述3个浮点数据中,进行以下减法运算。
#2-#1=0110-0100=0010
#2-#3=0110-0101=0001
在移位寄存器30,根据上述减法运算的结果,对浮点数据#1和#3的尾数部分进行移位,因此,利用与浮点数据#2相同的指数部分来表示各浮点数据#1和#3。
即,根据如下计算结果:
#2-#1=0110-0100=0010将浮点数据#1的尾数部分的值被移位2位。此外,根据如下计算结果:
#2-#3=0110-0101=0001将浮点数据#3的尾数部分的值移位1位。
这样,可以获得以下结果。
尾数部分|指数部分
#1:0001 1001|0110=25×26=1600
(尾数部分:移位2位)
#2:0110 0000|0110=96×26=6144
#3:0011 0100|0110=52×26=3328
(尾数部分:移位1位)
此后,在位提取部分40,对于各浮点数据#1至#3,从MSB位侧提取预定数目输出位,提取位用作维特比解码电路的输入数据。
尾数部分|维特比输入数据(4位)
#1:0001 1001|到0001
#2:0110 0000|到0110
#3:0011 0100|到0011
利用具有指数部分位长的减法器、比较器以及移位寄存器,可以实现上述处理过程。
此外,通过使比位提取部分40提取的位低的位有效,可以提高维特比解码精度。
以下将对位提取部分40进行的、可以提高维特比解码精度的位提取过程进行说明。
在位提取过程中,在位提取部分40可以改变待提取的数据位的位置从而使更低的位有效,这样可以提高维特比解码精度。
现在,将利用具体实例对位提取过程进行说明。
在上述数据中:
尾数部分|指数部分
#1:0001 1001|0110=25×26=1600
(尾数部分:移位2位)
#2:0110 0000|0110=96×26=6144
#3:0011 0100|0110=52×26=3328
(尾数部分:移位1位)
待被位提取部分40提取的各位被确定为其前导位是从MSB(符号位除外)起的第二位的位,并获得下列结果。
尾数部分|维特比输入数据(4位)
#1:0001 1001|到0011
#2:0110 0000|到0100
#3:0011 0100|到0110
在此,由于在#2内存在溢出,即由于MSB位(符号位除外)是“1”,所以在数据#2的位内表示最大值以进行饱和处理。
尾数部分|维特比输入数据(4位)
#1:0001 1001|到0011
#2:0110 0000|到0111(饱和处理)
#3:0011 0100|到0110
当确定待在位提取部分40提取的位时,优选利用表示位的位置的参数设置待提取的位的位置,并优选将与高维特比解码速率对应的参数确定为固定值。
图3示出利用减法器的定点数据产生电路的电路规模和利用除法电路的定点数据产生电路的电路规模的曲线图。
如图3所示,与采用除法电路的定点数据产生电路的电路面积(即电路单元数(相比,在图1所示的采用减法器的定点数据产生电路的电路面积(即电路单元数)可被减少。
图4示出图1所示的定点数据产生电路和传统定点数据产生电路的误码率(BER)特性曲线图。图4示出各自Eb/No值(每一位的能量与噪声功率密度的比)的解码速率。
在图4中,假定将相同的浮点数据输入到传统定点数据产生电路和图1所示的定点数据产生电路,并假定维特比解码电路的输入位数为8位。在这种情况下,当对对应于Eb/No值的BER值粗略进行比较时,在传统定点数据产生电路中,接近出现Eb/No=6dB,BER=1.00E-02(不可能出现每100个数据解码1个数据)。相反,在图1所示的定点数据产生电路中,BER=1.00E-03(不可能出现每1000个数据解码1个数据),显然提高了解码速率。(第二实施例)
图5示出根据本发明的定点数据产生电路的第二实施例的原理框图。
如图5所示,根据本发明第二实施例的定点数据产生电路包括:最小值检测电路11,用于从输入到最小值检测电路11的输入浮点数据中检测最小浮点数据;指数部分减法器21,从各输入浮点数据指数部分的值中减去在最小值检测电路11检测的浮点数据指数部分的值;移位寄存器30,用于根据指数部分减法器21的减法运算结果,对各输入浮点数据的尾数部分的值进行移位;以及位提取部分40,从移位寄存器30移位的尾数部分提取预定位数作为定点数据输入到维特比解码电路(图中未示出)。
以下将参考流程图对在上述构造的定点数据产生电路内产生定点数据的方法进行说明。
图6示出在图5所示的定点数据产生电路中,产生定点数据的方法的流程图。
将多个浮点数据输入到图5所示的电路(步骤S11),然后,在最小值检测电路11,首先从输入浮点数据D1、D2、D3、...、Dn中检测最小浮点数据Dmin(步骤S12)。
Dmin=min{D1,D2,D3...,Dn} (n:数据量) ...(5)
(Dmin=DminM(尾数部分)×2DminE(指数部分))
接着,为了将各输入浮点数据的指数部分调整为最小值,在指数部分减法器21,从各输入的浮点数据指数部分的值中,分别减去最小值检测电路11检测为最小值的浮点数据指数部分的值,并作为移位量输出(步骤S13)。
移位量=DinE-DminE ...(6)
(DminE:最小指数部分值,DinE:输入的浮点数据指数部分的值)
在移位寄存器30,根据利用等式(6)计算的移位量,对各输入浮点数据的尾数部分进行移位(步骤S14)。
定点数据=DinM/2(移位量) ...(7)
(DinM:输入的浮点数据的尾数部分)
在此,在移位位出现溢出时,在位内表示最大值以进行饱和处理(步骤S15)。
然后,在位提取部分40,从移位寄存器30移位的尾数部分提取预定位数作为定点数据输入到维特比解码电路(步骤S16)。在此例中,通过将待提取的位的位置固定到具有高解码速率的位置,可以提高解码精度。
在位提取部分40,当提取位溢出时,通过利用提取位作为最大值,进行饱和处理(步骤S17),并获得优化数据。
此后,将在位提取部分40提取的定点数据输入到维特比解码电路(步骤S18),然后,在维特比解码电路中,利用输入的定点数据进行维特比解码(步骤S19)。(第三实施例)
图7示出根据本发明的定点数据产生电路的第三实施例的原理框图;
如图7所示,根据本发明第三实施例的定点数据产生电路包括:平均值计算电路12,用于计算输入到平均值计算电路12的输入浮点数据的平均值;指数部分减法器22,用于计算各输入浮点数据指数部分的值与在平均值计算电路12计算的平均值的值之间的差值;移位寄存器30,用于根据指数部分减法器22获得的差值,对输入浮点数据的尾数部分的值进行移位;以及位提取部分40,从移位寄存器30移位的尾数部分提取预定位数作为定点数据输入到维特比解码电路(未示出)。
以下将参考流程图对在上述构造的定点数据产生电路内产生定点数据的方法进行说明。
图8示出在图7所示的定点数据产生电路中,产生定点数据的方法的流程图。
将多个浮点数据输入到图7所示的电路(步骤S21),然后,在平均值计算电路12,首先计算输入浮点数据D1、D2、D3、...、Dn的平均值Dave(步骤S22)。
Dave=average{D1,D2,D3...,Dn} (n:数据量) ...(8)
(Dave=DaveM(尾数部分)×2DaveE(指数部分))
接着,为了将各输入浮点数据的指数部分调整为平均值,在指数部分减法器22,计算各输入的浮点数据指数部分的值与平均值计算电路12计算的平均值指数部分的值之间的差值,并作为移位量输出(步骤S23)。
移位量=DaveE-DinE ...(9)
(DaveE:指数部分平均值,DinE:输入的浮点数据指数部分的值)
在移位寄存器30,根据利用等式(9)计算的移位量,对各输入浮点数据的尾数部分进行移位(步骤S24)。在此,当象本实施例那样利用浮点数据平均值计算移位量时,则既可以在MSB位侧、也可以在LSB位侧对尾数部分的值进行移位。因此,对于计算定点数据时移位寄存器30的工作过程,适用如下两个公式。
(平均数据的指数部分值>输入浮点数据的指数部分值)
定点数据=DinM/2(移位量) ...(10)
(DinM:输入浮点数据的尾数部分的值)
(平均数据的指数部分值<输入浮点数据的指数部分值)
定点数据=DinM×2(移位量) ...(11)
(DinM:输入浮点数据的尾数部分)
此外,当移位位出现溢出时,在位内表示最大值以实现饱和处理(步骤S25)。
然后,在位提取部分40,从移位寄存器30移位的尾数部分提取预定位数作为定点数据输入到维特比解码电路(步骤S26)。在此例中,通过将待提取的位的位置固定到具有高解码速率的位置,可以提高解码精度。
在位提取部分40,当提取位溢出时,通过利用提取位作为最大值,进行饱和处理(步骤S27),并获得优化数据。
此后,将在位提取部分40提取的定点数据输入到维特比解码电路(步骤S28),然后,在维特比解码电路中,利用输入的定点数据进行维特比解码(步骤S29)。(本发明的效果)
如上所述,根据本发明,从输入的多个浮点数据中检测具有最大值或最小值的参考浮点数据,并计算多个输入浮点数据的指数部分的值与最大浮点数据指数部分的值或最小浮点数据指数部分的值之间的差值。此后,利用此差值,对输入浮点数据的尾数部分进行移位,并提取被移位的尾数部分的预定位数作为定点数据。因此,仅通过对输入浮点数据进行比较和减法运算,就可以产生定点数据,因此可以对输入浮点数据进行优化并减小了电路规模。
此外,如果计算输入的多个浮点数据的平均值并计算平均值指数部分的值与输入的多个浮点数据指数部分的值之间的差值,则可以实现与上述相同的效果。
此外,如果将被提取作为定点数据的位的位置事先确定为具有高解码速率的位置,则可以提高解码速率。
在上述说明中,参考特定实施例对本发明进行了说明。然而,本技术领域内的普通技术人员明白,在以下所附权利要求所述的本发明范围内,可以进行各种调整和变换。例如,在上述实施例中,由输入浮点数据获得最大值、最小值或平均值并用作参考数据。然而,还可以利用由输入浮点数据获得的任何其它数据作为参考数据。例如,利用由输入浮点数据获得的中值作为参考数据代替最大值、最小值或平均值。
因此,本说明书和附图仅具有说明意义而没有限制意义,并且所有这些变换例均包括在本发明范围内。所以,本发明权利要求的意图是将所有调整和变换包括在本发明范围内。