CN102043760B - 数据处理方法及系统 - Google Patents

数据处理方法及系统 Download PDF

Info

Publication number
CN102043760B
CN102043760B CN 201010607484 CN201010607484A CN102043760B CN 102043760 B CN102043760 B CN 102043760B CN 201010607484 CN201010607484 CN 201010607484 CN 201010607484 A CN201010607484 A CN 201010607484A CN 102043760 B CN102043760 B CN 102043760B
Authority
CN
China
Prior art keywords
data
path
unit
remainder
value
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.)
Active
Application number
CN 201010607484
Other languages
English (en)
Other versions
CN102043760A (zh
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.)
Shanghai Huawei Technologies Co Ltd
Original Assignee
Shanghai Huawei Technologies Co Ltd
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 Shanghai Huawei Technologies Co Ltd filed Critical Shanghai Huawei Technologies Co Ltd
Priority to CN 201010607484 priority Critical patent/CN102043760B/zh
Publication of CN102043760A publication Critical patent/CN102043760A/zh
Application granted granted Critical
Publication of CN102043760B publication Critical patent/CN102043760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明实施例公开了数据处理系统和方法,应用于数据处理技术领域。本发明实施例的数据处理系统中:第一转换单元先利用几个互为质数的余数基,将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;由运算单元独立地对L路转换数据进行傅里叶运算后,第二转换单元将运算后数据再转换成用二进制权重数值表征的输出数据;并由数据处理单元进行数据处理。本发明实施例的系统中每一路转换数据的傅里叶运算是独立的,且对余数系统表征的数据进行处理时处理的位数较少,这样运算的路径会相对减小,减少数据处理时间,从而提高系统的工作效率。

Description

数据处理方法及系统
技术领域
本发明涉及数据处理技术领域,特别涉及数据处理方法及系统。
背景技术
现有的数据处理比如通信领域中的信道估计、信号分析及信号比较等过程中,要广泛的运用到傅立叶分析,对傅里叶分析后的数据进行相应的处理,会使得信道估计、信号分析等过程得到简化。其中傅里叶分析可以通过快速傅里叶变换(Fast Fourier Transform,FFT)运算处理单元来实现,FFT是离散傅里叶变换(DFT)的快速算法,它的出现极大地推动了数据处理系统的发展。现有数据处理系统中的FFT运算处理单元可以通过多种算法例如基2、基4、混合基等算法来实现。
随着现代通信和信号处理复杂度的日益提高,对通信系统中诸如FFT运算处理单元在速度和功耗上要求越来越高。传统的FFT运算处理单元可以通过超大规模集成电路(Very Large Scale Integrated circuits,VLSI)中的多个乘法器和加法器来实现,且主要是对二进制权重数值表征系统如二进制补码系统(Tow’s Complement System,TCS)的信号进行的运算处理。现有FFT运算处理单元的实现过程中,运算路径较长,这样运算时间较长,从而限制了系统的工作效率。
发明内容
本发明实施例提供数据处理方法和系统,能减少数据处理时间,从而提高系统的工作效率。
本发明实施例提供的一种数据处理系统,包括:
第一转换单元,用于将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;所述L大于或等于2,所述余数系统的余数基组中包含的L个余数基,与所述L路转换数据相对应;
运算单元,用于分别对所述第一转换单元转换后的L路转换数据进行傅里叶运算,相应的得到L路运算后数据;所述第i路运算后数据的模小于第i路转换数据对应的余数基;所述i大于0且小于或等于L;
第二转换单元,用于将所述运算单元对L路转换数据进行运算后的运算后数据转换成用二进制权重数据表征的输出数据;
数据处理单元,用于利用所述第二转换单元转换的输出数据进行数据处理,所述数据处理包括信道估计或信号分析,或多媒体数据处理。
本发明实施例提供的一种数据处理方法,包括:
将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;所述余数系统的余数基组中包含的L个余数基,与所述L路转换数据相对应;所述L大于或等于2;
分别对所述L路转换数据进行傅里叶运算,相应的得到L路运算后数据;第i路运算后数据的模小于第i路转换数据对应的余数基;所述i大于0且小于或等于L;
将所述L路转换数据的运算后数据转换成用二进制权重数值表征的输出数据;利用所述输出数据进行数据处理,所述数据处理包括信道估计或信号分析,或多媒体数据处理。
本发明实施例的数据处理系统中:第一转换单元先利用几个互为质数的余数基,将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;由运算单元独立地对L路转换数据进行傅里叶运算后,第二转换单元将运算后数据再转换成用二进制权重数值表征的输出数据;并由数据处理单元进行相应的数据处理。本发明实施例中的系统中是将对二进制权重数值表征的数据进行傅里叶运算,转化为对相应的余数系统表征的多路转换数据的傅里叶运算,由于每一路转换数据的傅里叶运算是独立的,且对余数系统表征的数据进行处理时处理的位数较少,这样运算的路径会相对减小,减少数据处理时间,从而提高系统的工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据处理系统的结构示意图;
图2是本发明实施例提供的另一数据处理系统的结构示意图;
图3是本发明实施例提供的数据处理系统中运算单元包括的基2和/或基4运算单元的结构示意图;
图4是本发明实施例提供的数据处理系统中基2和/或基4运算单元包括的模mi蝶形运算单元的结构示意图;
图5是本发明实施例提供的数据处理系统中基2和/或基4运算单元包括的模mi复数乘法器的结构示意图;
图6是本发明一个具体实施例提供的另一数据处理系统的结构示意图;
图7是本发明实施例提供的数据处理系统中第一转换单元的结构示意图;
图8是本发明实施例提供的数据处理系统中基2运算单元的结构示意图;
图9是本发明实施例提供的数据处理系统中第二转换单元的结构示意图;
图10是本发明实施例提供的数据处理系统中第二转换单元的结构示意图;
图11是本发明实施例提供的数据处理方法的流程图;
图12是本发明实施例提供的通过中国剩余定理将得到L路运算后数据转换成二进制权重数值表征的数据的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的数据处理系统,本发明实施例可用在通信信号处理、雷达、多媒体等系统中数据处理,结构示意图如图1所示,包括:
第一转换单元10,用于将用二进制权重数值表征的输入数据转换成用余数系统(Residue Number System,RNS)表征的L路转换数据;这里L大于或等于2,该余数系统的余数基组中包含的L个余数基,与L路转换数据相对应;
在通信系统中,通信信号一般都是用二进制权重数值表征的,如编码后的数据即通过二进制权重数值来表征,例如,整数8用二进制权重数值来表征为111。
而RNS是一种并行数值表征的系统,由一组相互独立的余数基{m1,m2,...,mL}确定,其中mi和mj的最大公因数(GCD)为1,即GCD(mi,mj)=1,这里的i和j是1到L之间的数,且i不等于j。整数X用RNS可以表示为X={x1,X2,...,xL},其中xi为X对mi的余数值,即
Figure GDA00001641432900041
例如,整数11用余数基组为{3,4,5}的RNS表示为{2,3,1}。
对于余数基组为{m1,m2,...,mL}的RNS的动态范围为[0,M-1],其中M为余数基组中各个余数基的乘积,即
Figure GDA00001641432900042
二进制权重数值和余数系统是数据表示的两种形式,同一数据可以分别用二进制权重数值和余数系统来表示,且可以在这两种形式之间进行相互转换。第一转换单元10是将二进制权重数据表征的数据转换成余数系统表征的数据,具体地,可以将输入数据分别对余数基组中的各个余数基进行取余得到多个数据,这得到的多个数据即为多路转换数据,则每一路转换数据对应一个余数基。
运算单元20,用于分别对第一转换单元10转换后的L路转换数据进行傅里叶运算,相应的得到L路运算后数据;第i路运算后数据的模小于第i路转换数据对应的余数基即第i个余数基;这里的i大于0且小于或等于L。
运算单元20对每一路转换数据进行的傅里叶运算是相互独立的,且在对每一路转换数据进行傅里叶运算时,可以通过基2,或基4,或混合基运算来实现。一个N=r1×r2点离散傅里叶运算可表示为:
X ( k ) = Σ n 0 = 0 r 2 - 1 Σ n 1 = 0 r 1 - 1 x ( n 1 , n 0 ) W N r 2 n 1 k 0 W N r 1 n 0 k 1 - - - ( 1 )
其中,WN=e-2πi/N,并且 k 1 r 1 + k 0 , k 1 = 0,1 , · · · , r 2 - 1 k 0 = 0,1 , · · · , r 1 - 1 .
比如对于输入数据为2048点的数据,由于2048=2*1024,1024=4*512,512=4*128,128=4*32,32=4*8,8=4*2,且通过上式(1)可知,输入数据为2048点的输入数据的离散傅里叶运算,可以通过级联的一个基2运算和5个基4运算子单元来实现。且对于同一数据来说,基于余数系统表征的数据的傅里叶运算和基于二进制权重数据表征的数据的傅里叶运算的结果是相同的。
运算单元20在对每一路转换数据进行傅里叶运算时,可以通过若干加法器和乘法器来实现,且通过运算单元20在对余数系统表征的转换数据进行傅里叶运算后,和直接对二进制权重数值表征的输入数据进行傅里叶运算的结果是一致的。
而由于运算单元20是对余数系统中数据进行运算操作,则需要保证每一路转换数据相应的傅里叶运算数据没有溢出该路转换数据对应的余数基。在具体的操作过程中,运算单元20中对其中一路转换数据进行傅里叶运算的加法器和乘法器分别在进行加法和乘法运算后,需要对该路转换数据对应的余数基进行取余操作,这样可以保证对该路转换数据进行傅里叶运算后得到的数据没有溢出对应的余数基。
第二转换单元30,用于将运算单元20对L路转换数据进行运算后的运算后数据转换成用二进制权重数据表征的输出数据;
在一般的数据处理过程中如通信信号的处理,都是采用二进制权重数值表征的数据进行处理,则需要通过第二转换单元30将傅里叶运算数据再转换成二进制权重数值表征的数据即输出数据。
数据处理单元40,用于利用第二转换单元30转换的输出数据进行数据处理。
这里的数据处理可以为通信信号处理如信道估计、信号分析等;还可以为多媒体数据处理等,具体的处理过程不受限制,只要是用到傅里叶运算的数据处理过程都可以采用本发明实施提供的系统。
可见,本发明实施例的数据处理系统中:第一转换单元10先利用几个互为质数的余数基,将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;由运算单元20独立地对L路转换数据进行傅里叶运算后,第二转换单元30将运算后数据再转换成用二进制权重数值表征的输出数据;并由数据处理单元40进行数据处理。本发明实施例中的系统中是将对二进制权重数值表征的数据进行傅里叶运算,转化为对相应的余数系统表征的多路转换数据的傅里叶运算,由于每一路转换数据的傅里叶运算是独立的,且对余数系统表征的数据进行处理时处理的位数较少,这样运算的路径会相对减小,减少数据处理时间,从而提高系统的工作效率。
参考图2所示,在一个具体的实施例中,数据处理系统中的第一转换单元10可以包括:
映射单元101,主要是用于按照二进制权重数值表征的输入数据的符号,将输入数据映射到余数系统表征的动态范围内,使得RNS和二进制权重数据表征的数据的正负保持一致。
余数系统的动态范围为:[0,M-1],其中M为余数基组中各个余数基的乘积,用[0,M/2-1]范围内的数值表示正数,而用(M/2-1,M-1]范围内的数值表示负数;用二进制权重数值表征的数据最高位是用来表示正负的,当最高位为1时为负,当最高位为0时为正。则映射单元101根据余数系统的动态范围与二进制权重表征系统中数据符号的对应关系,在进行动态范围的映射时,具体地,当用二进制权重数值表征的输入数据为负时,将输入数据加上M作为映射后数据;当用二进制权重数值表征的输入数据为非负时,将输入数据直接作为映射后数据。
二进制到余数转换(Binary to Residue,B/R)单元102,用于用映射单元101映射的映射后数据分别对L个余数基进行取余运算,将得到的L个余数值作为L路转换数据。
具体地,二进制到余数转换单元102可以包括第一取余单元1021和一个以上第二取余单元1022,其中:
第一取余单元1021,用于截取映射单元101映射的映射后数据的低N位比特数据作为一路转换信号,该路转换数据对应的余数基为2N
第二取余单元1022,用于在映射单元101映射的映射后数据的高位补0使得数据位数是P的倍数,并将补0后的数据分为多个P位比特数据;将这多个P位比特数据相加后,再对2P+1或2P-1进行取余得到的余数值作为另一路转换数据;另一路转换数据对应的余数基2P+1或2P-1。
参考图3所示,在另一个具体的实施例中,数据处理系统中的运算单元20可以包括级联的基2和/或基4运算单元,可以是一级或多级基2和/或基4运算单元,这些基2和/或基4运算单元可以通过如下的单元来实现:
模蝶形运算单元202,用于根据控制逻辑单元203的第一控制信号,分别从随机存储器201中读取计算初始值或该模蝶形运算单元202在运算过程中的中间数据,并通过蝶形运算方法,相应地对第一转换单元10转换后的L路转换数据或上一级基2和/或基4运算单元的L路输出数据,和计算初始值或运算过程中的中间数据进行傅里叶运算,得到L个蝶形运算结果,并将该傅里叶运算过程中的L路中间数据分别储存到随机存储器201中;且在傅里叶运算过程中在对任意两个以上数值进行运算后,用运算后的数值对相应的一路转换数据或上一级输出数据对应的余数基进行取余;
模蝶形运算单元202可以由多个模mi蝶形运算单元实现,这里i大于0且小于或等于L,mi为第i路转换数据对应的余数基,每个模mi蝶形运算单元对相应的第i路转换数据进行蝶形傅里叶运算,这多个模mi蝶形运算单元的运算过程相类似且相互独立,不同的是输入的初始数据即转换数据或上一级的输出数据,和计算初始值或运算过程中的中间数据不同。
模蝶形运算单元202进行的蝶形傅里叶运算,与对二进制权重数值表征的数据进行的蝶形傅里叶运算不同的是,本发明实施例的模蝶形运算单元202在进行蝶形运算傅里叶运算的过程中,对任意两个以上的数值运算后,需要用运算后数值对相应一路余数基进行取余运算。
一般情况下,蝶形傅里叶运算都是由多个加法器和选择器组成,则本实施例中组成模蝶形运算单元202的加法器需要在进行相加运算后,对相应的余数基进行取余。
随机存储器(random access memory,RAM)201,用于储存模蝶形运算单元202在运算过程中的中间数据;
控制逻辑单元203,用于生成随机存储器201中数据的读写地址及控制模蝶形运算单元202开始运算的第一控制信号。
由于本实施例中的运算单元20是由多个级联的基2和/或基4运算单元组成,
(一)对于运算单元20中的第一级基2和/或基4运算单元,其输入数据是第一转换单元10的L路转换数据,和计算初始值或运算的中间数据,而输出数据则是模蝶形运算单元202得到的L路蝶形运算结果和运算的中间数据,其中L路蝶形运算结果为下一级基2和/或基4的运算单元的输入数据,而运算的中间数据存入RAM201中。第一级基2和/或基4运算单元中包括的各个单元在具体的运算时:
模蝶形运算单元202中的模mi蝶形运算单元在接收到控制逻辑单元203发送的第一控制信号时,在进行初始运算时,需要先读取RAM201中的计算初始值,通过蝶形运算方法对计算初始值和第i路转换数据进行蝶形傅里叶运算,得到第i路蝶形运算结果;在这个过程中,将该路运算的中间数据存入RAM201中。
RAM201可以将多路转换数据进行运算的中间数据分别储存到不同的存储单元。比如有L路转换数据,则有L个存储单元,且对第i路转换数据进行运算的中间数据,要存入第i个存储单元中。
当RAM201中第i个存储单元的存储空间满以后,会将之前储存的中间数据发到模mi蝶形运算单元,而模mi蝶形运算单元会对中间数据和第i路转换数据进行蝶形傅里叶运算。
例如:参考图4所示为一个模mi蝶形运算单元在进行基2的蝶形傅里叶运算时的具体实现结构,包括:四个模加法器2021(1)到(4)和两个选择器(MUX)2022(1)到(2);
该模mi蝶形运算单元是按照下述公式(202-2)进行运算的,其中:X(n)表示对n的傅里叶变换,而
Figure GDA00001641432900081
表示用x(n)对余数基mi取余的值,n为0或1,而x(0)表示从随机存储器201中读取的计算初始值或运算的中间数据,x(1)为第一转换单元10的第i路转换数据:
X ( 0 ) = < x ( 0 ) > m i + < x ( 1 ) > m i X ( 1 ) = < x ( 0 ) > m i < x ( 1 ) > m i - - - ( 202 - 1 )
假设其中x(0)=a+ib,x(1)=c+id,代入式(202-1)并整理,得:
X ( 0 ) = < a + c > m i + i < b + d > m i X ( 1 ) = < a - c > m i + i < b - d > m i - - - ( 202 - 2 )
可见,在具体实现时,需要输入x(0)和x(1)的值,四个模加法器按照公式(202-2),分别取x(0)和x(1)相应的实部(RE)和虚部(IM)进行相加并对mi取余的运算;选择器根据控制逻辑单元203的控制,选择将模蝶形运算单元202的输入或将模加法器运算的结果作为模蝶形运算单元203的输出。其中m为第i路转换数据对应的余数基。
(二)对于运算单元20中的中间一级基2和/或基4运算单元,其输入数据是上一级基2和/或基4运算单元输出的L路蝶形运算结果,和计算初始值或运算的中间数据,其输出为L路蝶形运算结果和运算的中间数据,其中L路蝶形运算结果作为下一级基2和/或基4的运算单元的输入数据,而运算的中间数据存入RAM201中。中间一级基2和/或基4运算单元中包括的各个单元在具体的运算时:
模蝶形运算单元202中的模mi蝶形运算单元在接收到控制逻辑单元203发送的第一控制信号时,在进行初始运算时,需要先读取RAM201中的计算初始值,通过蝶形运算方法对计算初始值和第i路上一级的输出数据进行蝶形傅里叶运算,得到第i路蝶形运算结果;在这个过程中,将该路运算的中间数据存入RAM201中。
RAM201可以将多路上一级的输出数据进行运算的中间数据分别储存到随机存储器201的不同存储单元。比如有L路上一级的输出数据,则有L个存储单元,且对第i路上一级的输出数据进行运算的中间数据,要存入第i个存储单元中。
当RAM201中第i个存储单元的存储空间满以后,会将之前储存的中间数据发到模mi蝶形运算单元,而模mi蝶形运算单元会对中间数据和第i路转换数据进行蝶形傅里叶运算。
(三)对于运算单元20中的最后一级基2和/或基4运算单元,其输入数据是上一级基2和/或基4运算单元输出的L路蝶形运算结果,和计算初始值或运算的中间数据,其输出为L路蝶形运算结果和运算的中间数据,其中L路蝶形运算结果作为第二转换单元30的输入数据,而运算的中间数据存入RAM201中。
在其它具体的实施例中,基2和/或基4运算单元在对L路数据进行蝶形傅里叶运算后,需要将蝶形运算结果和旋转因子相乘后,才能作为下一级基2和/或基4运算单元的输入。则在本实施例中,运算单元20中的一个或多个基2和/或基4运算单元还包括如下结构:
可以理解,在将蝶形运算结果与旋转因子相乘前,需要通过数值缩放单元205对蝶形运算结果进行数值缩放,这样再和旋转因子相乘后得到的结果能控制在对应的余数基范围内,且实践证明在相乘之前进行数值缩放,会比在相乘之后进行数值缩放所运算的时间少,且向只读存储器206读取的数值也会比较少。
而在余数系统中对正数和负数的缩放方法不同,则首先需要通过符号检测单元204检测符号,并把符号信息传入数值缩放单元205。
符号检测单元204,用于检测L路蝶形运算结果对应的二进制权重数值的符号,并将指示非负数或负数的符号信息,及模蝶形运算单元202运算得到的L路蝶形运算结果传送给数值缩放单元205;
符号检测单元204在进行检测时,需要先将L路蝶形运算结果转换成对应的二进制权重数值表征的数据,并将这个转换后的数据与M进行比较,如果是该转换后的数据在[0,M/2]范围内,则得到的符号信息指示非负数;如果转换后的数据在(M/2,M-1]范围内,则得到的符号信息指示负数。
数值缩放单元205,用于根据符号信息,分别对L路蝶形运算结果进行数值的缩放,相应的得到L路缩放结果;且在缩放过程中,在对任意两个以上数值进行运算后,需要用运算后的数值对相应的一路余数基进行取余;
数值缩放单元205在进行数值缩放时,分别对符号检测单元204传入的L路蝶形运算结果进行缩放,且在对符号信息指示非负数和负数时的缩放方法不同。数值缩放单元205可以通过常数除法,按照下述公式(205-1)进行缩放,若常数即缩放因子为K,则对X的缩放结果为:
Figure GDA00001641432900101
其中,
Figure GDA00001641432900102
表示对X对K向下取整,则若不考虑符号数的表示,在对余数系统表征的数据进行的缩放得到的缩放结果为:
y i = < Y > m i = < < X - < X > K > m i < K - 1 > m i > m i = < < x i - < X > K > m i < K - 1 > m i > m i - - - ( 205 - 1 )
其中存在的条件是GCD(K,mi)=1。
按照缩放因子的选取类型,可以采用但不限于如下的方法进行缩放:用某个余数基分量或几个分量的乘积作为缩放因子的数值缩放,缩放因子与余数基分量互质的缩放,或2的幂次方缩放等;在具体实现时,数值缩放单元205组合逻辑等缩放方法。
模复数乘法器207,用于根据控制逻辑单元203的第二控制信号,分别将L路缩放结果与旋转因子相乘,得到L路相乘结果;得到的L路相乘结果作为下一级基2和/或基4的运算单元的输入数据;
模复数乘法器207可以由多个模mi复数乘法器实现,这里i大于0且小于或等于L,mi为第i路转换数据对应的余数基,每个模mi复数乘法器是将相应的第i个缩放结果与旋转因子相乘,得到第i个相乘结果,这多个模mi复数乘法器的运算过程相类似且相互独立,不同的是输入的初始数据即缩放结果不同。
模复数乘法器207进行的相乘运算时,与对二进制权重数值表征的数据进行的相乘运算不同的是,在模复数乘法器207进行相乘运算的过程中,对任意两个以上的数值运算后,需要用运算后数值,对相应的一路余数基进行取余运算;
例如:参考图5所示,所示为一个模mi复数乘法器在进行相乘运算时的具体实现结构,包括:四个模乘法器2071(1)到(4)、模减单元2072和模加单元2073;该模mi复数乘法器是按照下述公式(207-1)进行运算的。
假设第i路缩放结果为a+bi,旋转因子为c+di,则模mi复数乘法器得到的结果为:
< ( a + bi ) &times; ( c + di ) > m i = < < a &times; c > m i - < b &times; d > m i > m i + i < < a &times; d > m i + < b &times; c > m i > - - - ( 207 - 1 )
可见,在具体实现时,四个模乘法器2071(1)到(4)按照公式(207-1),分别取旋转因子和第i路缩放结果相应的实部(RE)和虚部(IM)进行相乘并对mi取余的运算得到四个部分相乘结果;并由模减单元2072将其中两个部分相乘结果进行相减并对mi取余得到模i复数乘法器的输出数据的实部;由模加单元2073将其中另两个部分相乘结果进行相加并对mi取余得到模i复数乘法器的输出数据的虚部。其中mi为第i路转换数据对应的余数基。
只读存储器(Read-Only Memory,ROM)206,用于储存旋转因子。
在本实施例中,控制逻辑单元203,还用于生成只读存储器中数据的读取地址及控制模复数乘法器207开始运算的第二控制信号;且模负数乘法器207得到的L路相乘结果为下一级基2和/或基4运算单元的输入数据,或第二转换单元30的输入数据。
在其它具体的实施例中,第二转换单元30可以通过如下的结构来实现:
余数到二进制单元(Residue to Binary,R/B),用于基于但不限于如下任一个或几个方法将运算单元20得到的L路运算后数据,转换成二进制权重数值表征的数据:中国剩余定理,混合基转换方法等;
由于运算单元20运算得到的L路运算后数据为余数系统表征的数据,根据余数系统与二进制权重数值表征系统之间的数值对应关系,将L路运算后数据转换成二进制权重数值表征的数据。
解映射单元,用于检测余数到二进制转换单元得到的数据的符号信号,当符号信息指示为非负数时,将余数到二进制转换单元得到的数据作为二进制权重数据表征的输出数据;当符号信息指示为负数时,将余数到二进制转换单元得到的数据与M值相减后数据作为二进制权重数据表征的输出数据;M为余数系统的余数基组中各个余数基的乘积。
由于余数系统和二进制权重数值表征系统中对数据的非负数和负数表示方法不同,因此还要通过解映射单元将余数系统对符号的表示,转换成二进制权重数值表征系统中对符号的表示。
以下通过一个具体的实施例来说明本发明实施例的数据处理系统,本实施例中的数据处理系统中是对输入数据进行2084点的傅里叶运算,且采用的余数基组为{128,127,63},即{27,27-1,26-1},本实施例系统的结构示意图如图6所示,包括:
(一)第一转换单元501将二进制权重数值表征的输入数据X转换为余数系统表征的3路转换数据rem128、rem127和rem63,其对应的余数基分别为128,127和63。
第一转换单元501可以通过如图7所示的结构来实现,具体包括:映射单元和二进制到余数转换单元,其中映射单元可以通过加法器5011和选择器5012来实现;而二进制到余数转换单元是通过补0单元5014(1)和5014(2)、模127加法器5015和模63加法器5016来实现:
加法器5011用来在输入数据的基础上加M值,本实施例中M值为128,127和63的乘积即1024128;选择器(MUX)5012的选择端与加法器5011和数据输入端连接,用来根据输入数据X的符号信息,在符号信息指示非负数时,选择输出输入数据X,在符号信息指示负数时,选择输出加法器5011的值即X+M。
通过选择器5012的选择后可以得到位宽为20比特的数据,截位单元5013截取20比特数据中的低7位数据作为rem128,将20比特的输入数据记为datain,则 rem 128 = < datain > 128 = < datain > 2 8 = datain [ 6 : 0 ] ;
补0单元5014(1)和5014(2)分别在20比特的数据前补1个和4个0,记补0后的数据分别为datain_new和datain_new1,则其中补0单元5014(1)将datain_new的第20~14比特、第13~7比特及第6~0比特数据输出给模127加法器5015,分别记为N21、N22和N23,则模127加法器5015将N21、N22和N23相加并对127进行取余运算得到rem127,即rem127=<datain>127=<N21+N22+N23>127
补0单元5014(2)将datain_new1的第23~18比特、17~12比特、第11~6比特及第5~0比特数据输出给模63加法器5016,分别记为N31、N32、N33和N34,则模63加法器5016将N31、N32、N33和N34相加并对63进行取余运算得到rem63,即rem63=<datain>63=<N31+N32+N33+N34>63
(二)运算单元通过级联的一个基2蝶形运算单元502和4个基4蝶形运算单元503(1)到(5),对转换数据rem128、rem127和rem63分别进行傅里叶运算得到运算后数据x1、x2和x3,其中:
A1:参考图8所示,在基2蝶形运算单元502中:
RAM5021中分别用3个存储单元储存模128、127和63蝶形运算单元进行运算的中间数据;
RAM5021在储存数据时可以顺序存放,可以在第19~13比特存放模128蝶形运算单元5022-1运算的中间数值、第12~6比特存放模127蝶形运算单元5022-2运算的数值、第5~0比特存放模63蝶形运算单元5022-3运算的数值。
模128蝶形运算单元5022-1、模127蝶形运算单元5022-2和模63蝶形运算单元5022-3分别根据控制逻辑单元5023的第一控制信号,从RAM5021中读取了计算初始值,或运算的中间数据,并按照蝶形运算方法对转换数据rem128、rem127和rem63,和计算初始值或运算的中间数据进行蝶形傅里叶运算,得到3个蝶形运算结果a1、a2和a3;模128蝶形运算单元5022-1、模127蝶形运算单元5022-2和模63蝶形运算单元5022-3在进行傅里叶运算的过程中,任意两个以上的数值进行运算后,用运算后数值分别对余数基128、127和63进行取余运算。
符号检测单元5024进行符号检测,并将符号信号和得到3个蝶形运算结果a1、a2和a3传送给数值缩放单元5025;
其中,符号检测单元5024在进行检测时,是将余数系统的数据a1、a2和a3对应的二进制权重数值表征的数与M/2进行比较,如果小于或等于则为非负数,如果大于则为负数。具体地:可以根据中国剩余定理,并按照如下的公式(5024-1)计算余数系统表征的数a2和a3对应的二进制权重数值表征的数据A2,且令A1等于a3,则将A1和A2表示成的二进制权重数值表征的数据即为余数系统中a1、a2和a3对应的二进权重数值表征的数;再按照如下公式(5024-2)计算得到aa。
A 2 = a 3 + ( 2 n - 1 - 1 ) &times; < ( 2 n - 3 ) &times; ( a 2 - a 3 ) > 2 n - 1 = a 3 + 63 < 125 &times; ( a 2 - a 3 ) > 127 = a 3 + ( 2 n - 1 - 1 ) &times; < ( 2 n - 1 - 2 ) &times; ( a 2 - a 3 ) > 2 n - 1 = a 3 + ( 2 n - 1 - 1 ) &times; < 2 &times; ( a 3 - a 2 ) > 2 n - 1 - - - ( 5024 - 1 )
aa = < ( 2 n + 1 ) &times; ( A 1 - A 2 ) > 2 n = < 2 n ( A 1 - A 2 ) + ( A 1 - A 2 ) > 2 n = < 65 &times; ( A 1 - A 2 ) > 128 - - - ( 5024 - 2 )
如果aa<2n-1即64,则余数系统中A1和A2对应的二进制权重数值表征的值小于M/2,则符号检测单元5024检测到的符号为正;如果aa>2n-1,则余数系统中A1和A2对应的二进制权重数值表征的值大于M/2,则符号检测单元5024检测到的符号为负。
假设M/2即512064用余数基组为{m1,m2}={27,(27-1)×(26-1)}的余数系统表征为{b1,b2}={64,0},且令k0=2n+1=65,则:
bb = < k 0 &times; ( b 1 - b 2 ) > m 1 = < 65 &times; ( 64 - 0 ) > 2 7 = 64 . 结合公式(5024-2)可知,如果令A2=0,且A1=2n-1=64时,则余数系统中A1和A2对应的二进制权重数值表征的值为M/2;如果aa<2n-1,则余数系统中A1和A2对应的二进制权重数值表征的值小于M/2,则为检测到的符号为正;如果aa>2n-1,则余数系统中A1和A2对应的二进制权重数值表征的值大于M/2,检测到的符号为负。
当符号信息指示为非负数时,数值缩放单元5025按照如下公式进行数值的缩放: a 1 &prime; = < a 3 &prime; + ( 2 n - 1 - 1 ) &times; < 2 ( a 3 &prime; - a 2 &prime; ) > 2 n - 1 > 2 n = < a 3 &prime; + 63 &times; < 2 ( a 3 &prime; - a 2 &prime; ) > 127 > 128 a 2 &prime; = < a 2 - a 1 > 2 n - 1 = < a 2 - a 1 > 127 a 3 &prime; = < ( a 3 - a 1 ) &times; 2 n - 2 > 2 n - 1 - 1 = < ( a 3 - a 1 ) &times; 2 n - 2 > 63 ; 如果当符号信息指示为负数时,数值缩放单元5025按照如下公式进行数值的缩放: a 1 &prime; = < a 3 &prime; + ( 2 n - 1 - 1 ) &times; < 2 ( a 3 &prime; - a 2 &prime; ) > 2 n - 1 + ( 2 n - 1 - 1 ) > 2 n = < a 3 &prime; + 63 &times; < 2 ( a 3 &prime; - a 2 &prime; ) > 127 + 63 > 128 a 2 &prime; = < a 2 - a 1 > 2 n - 1 = < a 2 - a 1 > 127 a 3 &prime; = < ( a 3 - a 1 ) &times; 2 n - 2 > 2 n - 1 - 1 = < ( a 3 - a 1 ) &times; 2 n - 2 > 63 . 数值缩放单元5025将得到的3个缩放结果a1、a2和a3分别传送给模128复数乘法器5027-1、模127复数乘法器5027-2和模63复数乘法器5027-3。
模128复数乘法器5027-1、模127复数乘法器5027-2和模63复数乘法器5027-3从ROM5026中读取了旋转因子,分别将3个缩放结果a1、a2和a3与旋转因子相乘得到3个相乘结果,作为下一级的基4蝶形运算单元503(1)的输入数据。在相乘的过程中,任意两个以上数值的运算后,需要用运算后数值分别对128、127和63进行取余运算。
其中ROM5026在储存旋转因子时,可以顺序存放,即用19~13比特存放模128复数乘法器5027-1相乘的旋转因子、用12~6比特存放模127复数乘法器5027-2相乘的旋转因子、用5~0比特存放模63复数乘法器5027-3相乘的旋转因子。
B1:基4蝶形运算单元503(1)到(5)的结构可以相同,参考图9所示,其中一个基4蝶形运算单元可以包括两个子模块:
子模块一5031和子模块二5032,其中子模块一5031不需要将模蝶形运算单元5031-1运算后数据,与旋转因子相乘,则子模块一5031中只包括RAM、模蝶形运算单元5031-1和控制逻辑单元;子模块二5032需要将模蝶形运算单元5032-1运算后数据,与旋转因子相乘,则子模块二5032中除了包括RAM、模蝶形运算单元5032-1和控制逻辑单元之外,还包括符号检测单元、数值缩放单元、ROM和模复数乘法器5032-2。子模块二5032的结构和图8中所示的结构类似。
在本实施例的基4蝶形运算单元中,通过子模块一5031对上一级基2或基4蝶形运算单元的输出数据o1到o3进行傅里叶运算后;需要通过实虚部交换单元5033将对子模块一5031运算后数据进行实部和虚部的交换,并由子模块二5032对交换后的数据进行处理。
(三)第二转换单元504基于中国剩余定理,将运算单元进行傅里叶运算的运算后数据x1、x2和x3转换成二进制权重数值表征的输出数据D。
中国剩余定理(CRT)的推论为:如果用二进制权重数据表征的数值C用余数基组为{m1,m2,...,mL}的余数系统表示为(x1,x2,...,xL),则
Figure 2
可以理解,在本实施例中,L=3,则C可以通过如下公式(504-1)计算得到:
C = x 1 + m 1 < K 1 ( x 2 - x 1 ) + K 2 m 2 ( x 3 - x 2 ) > m 2 m 3 - - - ( 504 - 1 )
其中:K1=22n-2-2n-2n-2+2,K1=2n-2,则上述公式(504-1)为: C = x 1 + 2 n < ( 2 2 n - 2 - 2 n - 2 n - 2 + 2 ) ( x 2 - x 1 ) + 2 n - 2 ( 2 n - 1 ) ( x 3 - x 2 ) > ( 2 n - 1 ) ( 2 n - 1 - 1 ) = x 1 + 2 n < ( x 2 - x ) + ( 2 n - 1 ) [ 2 n - 2 x 3 + ( 2 n - 1 - 1 - 2 n - 2 + 1 ) x 1 - x 2 ] > ( 2 n - 1 ) ( 2 n - 1 - 1 ) = x 1 + 2 n < ( x 2 - x 1 ) + ( 2 n - 1 ) [ 2 n - 2 x 3 + 2 n - 2 x 1 - x 2 ] > ( 2 n - 1 ) ( 2 n - 1 - 1 ) = x 1 + 2 n Z , 可知C为x1与Z的拼接:
如果x2≥x1
Figure GDA00001641432900172
Z可以通过下述公式(504-2)来获取:
Z = < ( x 2 - x 1 ) + ( 2 n - 1 ) [ 2 n - 2 x 3 + 2 n - 2 x 1 - x 2 ] > ( 2 n - 1 ) ( 2 n - 1 - 1 ) = < < x 2 - x 1 > 2 n - 1 + ( 2 n - 1 ) [ 2 n - 2 x 3 + 2 n - 2 x 1 - x 2 ] > ( 2 n - 1 ) ( 2 n - 1 - 1 ) = ( 2 n - 1 ) < 2 n - 2 x 3 + 2 n - 2 x 1 - x 2 > 2 n - 1 - 1 + < x 2 - x 1 > 2 n - 1 = ( 2 n - 1 ) Y + < x 2 - x 1 > 2 n - 1 - - - ( 504 - 2 )
其中:
如果x2<x1
Figure GDA00001641432900175
则Z可以通过下述公式(504-4)来获取:
Z = < ( x 2 - x 1 ) + ( 2 n - 1 ) [ 2 n - 2 x 3 + 2 n - 2 x 1 - x 2 ] ( 2 n - 1 ) ( 2 n - 1 - 1 ) = < < x 2 - x 1 > 2 n - 1 + ( 2 n - 1 ) [ 2 n - 2 x 3 + 2 n - 2 x 1 - x 2 - 1 ] > ( 2 n - 1 ) ( 2 n - 1 - 1 ) = ( 2 n - 1 ) < 2 n - 2 x 3 + 2 n - 2 x 1 - x 2 - 1 > 2 n - 1 - 1 + < x 2 - x 1 > 2 n - 1 = ( 2 n - 1 ) Y + < x 2 - x 1 > 2 n - 1 - - - ( 504 - 4 )
其中
Figure 3
可见,第二转换单元504可以通过如图10所示的结构示意图来实现,具体地,包括余数到二进制单元和解映射单元,其中:余数到二进制单元通过中间值计算单元5041、模加运算单元5042、两个模减法器5043(1)和(2)及拼接单元5044来实现;解映射单元通过比较器5045、加法器5046和选择器5047来实现。
A2:对于余数到二进制单元来说:
中间值计算单元5041的输入端的数据为x1、x2和x3,按照如下6个公式计算中间数值T1到T5,及T5_1,并将中间数值输出给模加运算单元5042。
可以理解,本实施例中,余数系统采用的余数基组为{27,27-1,26-1},假设 x 1 = x 1,6 . . . x 1,0 = | X | 2 7 , x 2 = x 2,6 . . . x 2,0 = | X | 2 7 - 1 , x 3 = x 3,5 . . . x 3,0 = | X | 2 6 - 1 , 其中,xi,j表示xi的第j比特数据,则结合上述公式(504-3)及(504-5)得到如下中间值:
T 1 = | 2 5 x 3 | 2 6 - 1 = x 3 , 0 x 3,5 . . . x 3,1 , T2=|25(x1,5…x1,0)|=x1,0x1,5…x1,1
T 3 = | 2 11 x 1,6 | 2 6 - 1 = x 1,6 < 0 > 5 , 其中<0>5表示连续五个0,
T 4 = | - x 2,5 . . . x 2,0 | 2 6 - 1 = x 2,5 &OverBar; . . . x 2,0 &OverBar; , 其中表示x2,0对应比特的反码,
T 5 = | - 2 6 x 2,6 | 2 6 - 1 = < 1 > 5 x 2,6 &OverBar; , T 5 _ 1 = | - 2 6 x 2,6 - 1 | 2 6 - 1 = < 1 > 4 x 2.6 &OverBar; x 2,6
则其中T1为:运算单元的第3路运算后数据向左移一位数据;T2为:运算单元的第1路运算后数据去掉最高位后向左移一位数据;T3为:第1路运算后数据最高位和5位0拼接后数据;T4为:运算单元的第2路运算后数据去掉最高位后的比特反码;T5为:5位1和第2路运算后数据最高位的比特反码的拼接后数据;T5_1为:4位1和第2路运算后数据最高位的比特反码,及第2路运算后数据最高位的拼接后数据。
模减法器5043(1)输入端的数据为运算单元的第1和2路运算后数据x1和x2,按照如下公式计算:
Figure GDA00001641432900191
即x2和x1相减后对第2路余数基27-1取余,并将得到的计算结果输出给模减法器5043(2);并产生控制信号ctr输出给模加运算单元5042,控制信号是指示第1和2路运算后数据的大小的,具体地,当x2≥x1时,产生的ctr=0;当x2<x1时,产生的ctr=1。
在模减法器5043(1)进行模减法运算并产生控制信号时,可以通过如下子单元来实现:
扩充子单元,用于分别在第1和2路运算后数据的最高位添0扩充成8位数据;第1和2路运算后数据都为7位数据;
相减子单元,用于将扩充子单元扩充后的8位第2路运算后数据与第1路运算后数据进行减法运算得到sum值;
信号输出子单元,用于当相减子单元得到的sum值的最高位为0时,将sum值的最高位输出给模加运算单元5042,指示第1运算后数据小于第2路运算后数据,并将sum值的低7位作为计算结果输出给模减法器5043(2);当相减子单元得到的sum值的最高位为1时,将sum值的最高位输出给模加运算单元5042,指示第1运算后数据大于或等于第2路运算后数据,并将sum值的低7位减1得到的结果作为计算结果输出给模减法器5043(2)。
通过上述扩充子单元、相减子单元和信号输出子单元,可以在进行减法运算的同时得到控制信号,与先进行运算后数据相减后对余数基取余的运算相比,运算量少,且实现结构简单。
模加运算单元5042输入端的数据为T1到T5,及T5_1,及控制信号ctr,按照下述公式计算Y值: Y = | T 1 + T 2 + T 3 + T 4 + T 5 | 2 6 - 1 , x 2 &GreaterEqual; x 1 | T 1 + T 2 + T 3 + T 4 + T 5 _ | | 2 6 - 1 , x 2 < x 1 , 即在控制信号ctr为0即指示x2≥x1时,将T1到T5相加并对余数基26-1取余得到Y值;在控制信号ctr为1即指示x2<x1时,将T1到T4,及T5_1相加并对余数基26-1取余得到Y值,并将计算得到的Y值输出给模减法器5043(2)。
模减法器5043(2)输入端的数据为Y和mod_x2_x1,并按照下述公式计算得到Z值: Z = ( 2 7 - 1 ) Y + < x 2 - x 1 > 2 n - 1 = < Y > < | x 2 - x 1 | 2 7 - 1 > - Y , 其中
Figure GDA00001641432900203
表示Y与
Figure GDA00001641432900204
的拼接运算,即将模加运算单元5042输入的Y与模减法器5043(1)输入的计算结果拼接运算后,与模加运算单元5042输入的Y相减得到Z值,并将得到的Z输出给拼接单元5044。
拼接单元5044输入端的数据为Z和x1,并按照下述公式计算得到C:C=x1+27Z,即将运算单元的第1路运算后数据与模减法器运算得到的Z值进行拼接运算,得到二进制权重数值表征的数据C,并输出给解映射单元。
B2:对于解映射单元来说:
比较器5045将余数到二进制单元中拼接单元5044得到的二进制权重数值表征的数据C,与M/2进行比较,并输出二进制权重数值表征的数据C的符号信息给选择器5047。当C≤M/2,输出的符号信息为指示非负数的信息;当C>M/2,则输出符号信息为指示负数的信息。
加法器5046,用于将余数到二进制单元中拼接单元5044得到的二进制权重数值表征的数据C与-M值相加,并将相加的数据发送给选择器5047。
选择器5047根据符号信号,选择是输出余数到二进制单元中拼接单元5044得到的二进制权重数值表征的数据C,还是选择输出加法器5046相加的数据,选择器5047输出的数据即为二进制权重数值表征的输出数据D。当符号信息指示为非负数时,选择输出余数到二进制单元中拼接单元5044得到的数据C;当符号信息指示为负数时,选择输出加法器5046相加的数据。
(四)数据处理单元505对输出数据D进行相应的数据处理。
本发明实施例提供了一种数据处理方法,流程图如图11所示,包括:
A:将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;余数系统的余数基组中包含的L个余数基,与L路转换数据相对应;这里L大于或等于2;
可以理解,二进制权重数值表征系统和余数系统中对符号的表示不同,则在进行转换时,需要先按照二进制权重数值表征的输入数据的符号,映射到余数系统的动态范围内。具体地:
当用二进制权重数值表征的输入数据为负时,将输入数据加上M作为映射后数据,其中M为余数系统的余数基组中各个余数基的乘积;当用二进制权重数值表征的输入数据为非负时,将输入数据直接作为映射后信号。
再用映射后数据分别对L个余数基进行取余运算,将得到的L个余数值作为L路转换数据。
B:分别对L路转换数据进行傅里叶运算,相应的得到L路运算后数据;第i路运算后数据的模小于第i路转换数据对应的余数基;这里i大于0且小于或等于L;
在进行傅里叶运算时,可以利用基2,或基4,或混合基运算方法分别对L路转换数据进行运算;在运算过程中,在对任意两个以上数值进行运算后,用运算后的数值对相应的一路余数基进行取余,这样可以保证对各路余数系统表征的数据进行的傅里叶运算结果不会溢出该路转换数据对应的余数基。
C:将L路转换数据的运算后数据转换成用二进制权重数值表征的输出数据;
可以理解,在将L路运算后数据转换成二进制权重数值表征的数据时:可以先基于但不限于如下任一个或几个方法将得到L路运算后数据,转换成二进制权重数值表征的数据:中国剩余定理,混合基转换方法等;
再进行检测得到的二进制权重数值表征的数据的符号信号,当符号信息指示为非负数时,将上述得到的二进制权重数值表征的数据作为二进制权重数据表征的输出数据;当符号信息指示为负数时,将上述得到的二进制权重数值表征的数据与M值相减后数据作为二进制权重数据表征的输出数据。
D:利用输出数据进行数据处理。
这里的数据处理可以为通信信号处理如信道估计、信号分析等;还可以为多媒体数据处理等,具体的处理过程不受限制,只要是用到傅里叶运算的数据处理过程都可以采用本发明实施提供的系统。
本发明实施例的数据处理中:第一转换单元先利用几个互为质数的余数基,将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;由运算单元独立地对L路转换数据进行傅里叶运算后,第二转换单元将运算后数据再转换成用二进制权重数值表征的输出数据;并由数据处理单元进行数据处理。本发明实施例中的系统中是将对二进制权重数值表征的数据进行傅里叶运算,转化为对相应的余数系统表征的多路转换数据的傅里叶运算,由于每一路转换数据的傅里叶运算是独立的,且对余数系统表征的数据进行处理时处理的位数较少,这样运算的路径会相对减小,减少数据处理时间,从而提高系统的工作效率。
参考图12所示,在一个具体的实施例中,根据上述公式(504-1)到(504-5),如果余数系统的余数基组为{27,27-1,26-1},且L值为3时,则上述步骤C中通过中国剩余定理将得到L路运算后数据转换成二进制权重数值表征的数据时,可以通过如下步骤来实现:
A1:计算中间数值T1,T2,T3,T4,T5及T5_1;其中T1为步骤B中运算的第3路运算后数据向左移一位数据;T2为步骤B中运算的第1路运算后数据去掉最高位后向左移一位数据;T3为第1路运算后数据最高位和5位0拼接后数据;T4为第2路运算后数据去掉最高位后的比特反码;T5为5位1和第2路运算后数据最高位的比特反码的拼接后数据;T5_1为4位1和第2路运算后数据最高位的比特反码,及第2路运算后数据最高位的拼接后数据;
B1:确定第1路运算后数据与第2路运算后数据的大小,当第1路运算后数据大于或等于第2路运算后数据时,执行步骤C1;当第1路运算后数据小于第2路运算后数据时,执行步骤D1;
C1:将T1到T5相加后,对余数基26-1进行取余得到Y值;
D1:将T1到T4,及T5_1相加后,对余数基26-1进行取余得到Y值;
E1:将Y值与第2和1路运算后数据相减后对第2路余数基27-1取余的计算结果进行拼接运算后,与Y相减得到Z值;
F1:将第1路运算后数据与Z值进行拼接运算,得到二进制权重数值表征的数据C。
可以理解,上述步骤A1和B1可以同时执行,也可以顺序执行,图12中所示只是一个具体的实现方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
以上对本发明实施例所提供的数据处理系统和方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种数据处理系统,其特征在于,包括:
第一转换单元,用于将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;所述L大于或等于2,所述余数系统的余数基组中包含的L个余数基,与所述L路转换数据相对应;
运算单元,用于分别对所述第一转换单元转换后的L路转换数据进行傅里叶运算,相应的得到L路运算后数据;第i路运算后数据的模小于第i路转换数据对应的余数基;所述i大于0且小于或等于L;
第二转换单元,用于将所述运算单元对L路转换数据进行运算后的运算后数据转换成用二进制权重数值表征的输出数据;
数据处理单元,用于利用所述第二转换单元转换的输出数据进行数据处理,所述数据处理包括信道估计或信号分析,或多媒体数据处理。
2.如权利要求1所述的系统,其特征在于,所述第一转换单元包括:
映射单元,用于当用二进制权重数值表征的所述输入数据为负时,将所述输入数据加上M作为映射后数据,所述M为余数系统的余数基组中各个余数基的乘积;当用二进制权重数值表征的所述输入数据为非负时,将所述输入数据直接作为映射后数据;
二进制到余数转换单元,用于用所述映射单元映射的映射后数据分别对所述L个余数基进行取余运算,将得到的L个余数值作为所述L路转换数据。
3.如权利要求2所述的系统,其特征在于,所述二进制到余数转换单元包括第一取余单元和一个以上第二取余单元,其中:
所述第一取余单元,用于截取所述映射后数据的低N位比特数据作为一路转换数据,所述一路转换数据对应的余数基为2N
所述第二取余单元,用于在所述映射后数据的高位补0使得数据位数是P的倍数,并将补0后的数据分为多个P位比特数据;将这多个P位比特数据相加后,再对2P+1或2P-1进行取余得到的余数值作为另一路转换数据;所述另一路转换数据对应的余数基为2P+1或2P-1。
4.如权利要求2或3所述的系统,其特征在于,所述映射单元包括:加法器和选择器;
所述加法器,用于将所述输入数据与所述M值相加;
所述选择器,用于在所述输入数据的符号为负时,选择所述加法器相加后的数据输出;当所述输入数据的符号为非负时,选择所述输入数据输出。
5.如权利要求1所述的系统,其特征在于,所述运算单元包括级联的基2和/或基4运算单元,所述基2和/或基4运算单元包括:
随机存储器RAM,用于储存模蝶形运算单元在运算过程中的中间数据;
模蝶形运算单元,用于根据控制逻辑单元的第一控制信号,从所述随机存储器RAM中读取计算初始值或所述模蝶形运算单元在运算过程中的中间数据,并通过蝶形运算方法,相应地对所述L路转换数据或上一级基2和/或基4运算单元的L路输出数据,和所述计算初始值或所述模蝶形运算单元在运算过程中的中间数据进行傅里叶运算,得到L路蝶形运算结果;且所述傅里叶运算过程中在对任意两个以上数值进行运算后,用运算后的数值对相应的一路余数基进行取余;
控制逻辑单元,用于生成所述随机存储器RAM中数据的读写地址及控制所述模蝶形运算单元开始运算的第一控制信号;
所述模蝶形运算单元得到的L路蝶形运算结果为下一级基2和/或基4的运算单元的输入数据,或所述第二转换单元的输入数据。
6.如权利要求5所述的系统,其特征在于,所述运算单元中的一个或多个基2和/或基4运算单元还包括:符号检测单元、数值缩放单元、模复数乘法器和只读存储器,其中:
符号检测单元,用于检测所述L路蝶形运算结果相应的二进制权重数值的符号,并将指示非负数或负数的符号信息,及所述模蝶形单元运算得到的L路蝶形运算结果传送给数值缩放单元;
数值缩放单元,用于根据所述符号信息,分别对所述L路蝶形运算结果进行数值的缩放,相应的得到L路缩放结果;且所述缩放过程中,在对任意两个以上数值进行运算后,用运算后的数值对相应的一路余数基进行取余;
模复数乘法器,用于根据控制逻辑单元的第二控制信号,分别将所述L路缩放结果与只读存储器中储存的旋转因子相乘,得到L路相乘结果;在与旋转因子相乘的过程中,在对任意两个以上数值进行运算后,用运算后的数值对相应的一路余数基进行取余;
只读存储器,用于储存所述储存旋转因子;
所述控制逻辑单元,还用于生成所述只读存储器中数据的读取地址及控制所述模复数乘法器开始运算的第二控制信号;
所述模复数乘法器得到的L路相乘结果为下一级基2和/或基4运算单元的输入数据,或所述第二转换单元的输入数据。
7.如权利要求1所述的系统,其特征在于,所述第二转换单元包括:
余数到二进制单元,用于基于如下任一方法将所述运算单元得到的L路运算后数据,转换成二进制权重数值表征的数据:中国剩余定理,混合基转换方法;
解映射单元,用于检测所述余数到二进制转换单元得到的数据的符号信号,当所述符号信息指示为非负数时,将所述余数到二进制转换单元得到的数据作为二进制权重数值表征的输出数据;当所述符号信息指示为负数时,将所述余数到二进制转换单元得到的数据与M值相减后数据作为二进制权重数值表征的输出数据;所述M为余数系统的余数基组中各个余数基的乘积。
8.如权利要求7所述的系统,其特征在于,所述余数系统的余数基组为{27,27-1,26-1},且所述L为3,所述余数到二进制转换单元包括:中间值计算单元、模加运算单元、两个模减法器及拼接单元;
所述中间值计算单元,用于计算中间数值T1,T2,T3,T4,T5及中间数值T51,并将所述中间数值输出给所述模加运算单元;所述T1为所述运算单元的第3路运算后数据向左移一位数据;所述T2为所述运算单元的第1路运算后数据去掉最高位后向左移一位数据;所述T3为所述第1路运算后数据最高位和5位0拼接后数据;所述T4为所述运算单元的第2路运算后数据去掉最高位后的比特反码;所述T5为5位1和第2路运算后数据最高位的比特反码的拼接后数据;所述中间数值T51为4位1和第2路运算后数据最高位的比特反码,及第2路运算后数据最高位的拼接后数据;
所述两个模减法器中的一个模减法器,用于将所述运算单元的第2和1路运算后数据相减后对第2路余数基27-1取余,将得到的计算结果输出给另一模减法器;同时产生控制信号输出给所述模加运算单元,所述控制信号指示所述第1和2路运算后数据的大小;
所述模加运算单元,用于当所述一个模减法器产生的控制信号指示所述第1路运算后数据大于或等于第2路运算后数据时,将所述中间值计算单元计算的T1到T5相加后,对余数基26-1进行取余得到Y值;当所述一个模减法器产生的控制信号指示所述第1路运算后数据小于第2路运算后数据时,将所述中间值计算单元计算的T1到T4,及中间数值T51相加后,对余数基26-1进行取余得到Y值;将计算得到的Y值输出给所述另一模减法器;
所述两个模减法器中的另一模减法器,用于将所述模加运算单元输入的Y与所述一个模减法器输入的计算结果拼接运算后,与所述模加运算单元输入的Y相减得到Z值;
所述拼接单元,用于将所述运算单元的第1路运算后数据与所述两个模减法器中另一模减法器运算得到的Z值进行拼接运算,得到二进制权重数值表征的数据C。
9.如权利要求8所述的系统,其特征在于,所述两个模减法器中的一个模减法器具体包括:
扩充子单元,用于分别在所述第1和2路运算后数据的最高位添0扩充成8位数据;
相减子单元,用于将所述扩充子单元扩充后的8位第2路运算后数据与第1路运算后数据进行减法运算得到sum值;
信号输出子单元,用于当所述相减子单元得到的sum值的最高位为0时,将所述sum值的最高位输出给所述模加运算单元,指示所述第1运算后数据小于第2路运算后数据,并将所述sum值的低7位作为计算结果输出给另一模减法器;当所述相减子单元得到的sum值的最高位为1时,将所述sum值的最高位输出给所述模加运算单元,指示所述第1运算后数据大于或等于第2路运算后数据,并将所述sum值的低7位减1得到的结果作为计算结果输出给另一模减法器。
10.如权利要求8或9所述的系统,其特征在于,所述解映射单元包括:
比较器,用于将所述余数到二进制单元得到的二进制权重数值表征的数据C,与M/2进行比较,当C≤M/2,输出指示非负数的符号信息给选择器;当C>M/2,则输出指示负数的符号信息给所述选择器;
加法器,用于将所述余数到二进制单元得到的二进制权重数值表征的数据C与-M值相加,并将相加的数据发送给所述选择器;
选择器,用于接收到指示非负数的符号信息时,选择输出所述余数到二进制单元得到的二进制权重数值表征的数据C;当接收到指示负数的符号信息时,选择输出所述加法器相加的数据。
11.一种数据处理方法,其特征在于,包括:
将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据;所述余数系统的余数基组中包含的L个余数基,与所述L路转换数据相对应;所述L大于或等于2;
分别对所述L路转换数据进行傅里叶运算,相应的得到L路运算后数据;第i路运算后数据的模小于第i路转换数据对应的余数基;所述i大于0且小于或等于L;
将所述L路转换数据的运算后数据转换成用二进制权重数值表征的输出数据;
利用所述输出数据进行数据处理,所述数据处理包括信道估计或信号分析,或多媒体数据处理。
12.如权利要求11所述的方法,其特征在于,所述将用二进制权重数值表征的输入数据转换成用余数系统表征的L路转换数据具体包括:
当用二进制权重数值表征的所述输入数据为负时,将所述输入数据加上M作为映射后数据,所述M为余数系统的余数基组中各个余数基的乘积;当用二进制权重数值表征的所述输入数据为非负时,将所述输入数据直接作为映射后数据;
用所述映射后数据分别对所述L个余数基进行取余运算,将得到的L个余数值作为所述L路转换数据。
13.如权要求11或12所述的方法,其特征在于,分别对所述L路转换信号进行傅里叶运算具体包括:利用基2,或基4,或混合基运算方法分别对所述L路转换数据进行运算;所述运算过程中,在对任意两个以上数值进行运算后,用运算后的数值对相应的一路余数基进行取余。
14.如权利要求11所述的方法,其特征在于,所述将所述L路转换数据的运算后数据转换成用二进制权重数值表征的输出数据具体包括:
基于如下任一方法将所述L路运算后数据,转换成二进制权重数值表征的数据:中国剩余定理,混合基转换方法;
检测所述转换成的二进制权重数值表征的数据的符号信号,当所述符号信息指示为非负数时,将所述转换成的二进制权重数值表征的数据作为二进制权重数值表征的输出数据;当所述符号信息指示为负数时,将所述转换成的二进制权重数值表征的数据与M值相减后数据作为二进制权重数值表征的输出数据;所述M为余数系统的余数基组中各个余数基的乘积。
15.如权利要求14所述的方法,其特征在于,当所述余数系统的余数基组为{27,27-1,26-1},且L值为3时,所述基于中国剩余定理将所述L路运算后数据,转换成二进制权重数值表征的数据具体包括:
计算中间数值T1,T2,T3,T4,T5及中间数值T51;其中T1为所述L路运算后数据中的第3路运算后数据向左移一位数据;T2为所述L路运算后数据中的第1路运算后数据去掉最高位后向左移一位数据;T3为第1路运算后数据最高位和5位0拼接后数据;T4为第2路运算后数据去掉最高位后的比特反码;T5为5位1和第2路运算后数据最高位的比特反码的拼接后数据;所述中间数值T51为4位1和第2路运算后数据最高位的比特反码,及第2路运算后数据最高位的拼接后数据;
确定所述第1路运算后数据与第2路运算后数据的大小,当第1路运算后数据大于或等于第2路运算后数据时,将所述T1到T5相加后,对余数基26-1进行取余得到Y值;当所述第1路运算后数据小于第2路运算后数据时,将所述T1到T4,及所述中间数值T51相加后,对余数基26-1进行取余得到Y值;
将所述Y值与第2和1路运算后数据相减后对第2路余数基27-1取余的计算结果进行拼接运算后,与Y相减得到Z值;
将第1路运算后数据与Z值进行拼接运算,得到二进制权重数值表征的数据C。
CN 201010607484 2010-12-27 2010-12-27 数据处理方法及系统 Active CN102043760B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010607484 CN102043760B (zh) 2010-12-27 2010-12-27 数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010607484 CN102043760B (zh) 2010-12-27 2010-12-27 数据处理方法及系统

Publications (2)

Publication Number Publication Date
CN102043760A CN102043760A (zh) 2011-05-04
CN102043760B true CN102043760B (zh) 2013-06-05

Family

ID=43909905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010607484 Active CN102043760B (zh) 2010-12-27 2010-12-27 数据处理方法及系统

Country Status (1)

Country Link
CN (1) CN102043760B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183701A (zh) * 2015-09-06 2015-12-23 北京北方烽火科技有限公司 1536点fft处理方式及相关设备

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184161B (zh) * 2011-05-24 2013-11-20 电子科技大学 基于余数系统的矩阵求逆装置及方法
IT201700008949A1 (it) 2017-01-27 2018-07-27 St Microelectronics Srl Procedimento di funzionamento di reti neurali, rete, apparecchiatura e prodotto informatico corrispondenti
CN109416757B (zh) * 2017-12-29 2022-05-03 深圳市大疆创新科技有限公司 用于处理数值数据的方法、设备和计算机可读存储介质
CN112255455B (zh) * 2020-11-06 2024-09-27 Oppo广东移动通信有限公司 信号处理方法、信号处理器、设备及存储介质
CN112989273B (zh) * 2021-02-06 2023-10-27 江南大学 一种利用补码编码进行存内运算的方法
CN113378110A (zh) * 2021-06-11 2021-09-10 电子科技大学 一种基于rns动态范围扩展fft系统
CN114416182B (zh) * 2022-03-31 2022-06-17 深圳致星科技有限公司 用于联邦学习和隐私计算的fpga加速器和芯片
CN114489571B (zh) * 2022-04-15 2022-07-15 广州万协通信息技术有限公司 一种非对称算法计算电路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
马上等.以_2_n_1_2_n_2_n_1_为基的余数系统2_n高性能缩放.《电子科技大学学报》.2010,第39卷(第2期),306-309. *
马上等.新颖的余数系统到二进制系统转换方法.《电子科技大学学报》.2010,第39卷(第4期),517-521. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183701A (zh) * 2015-09-06 2015-12-23 北京北方烽火科技有限公司 1536点fft处理方式及相关设备
CN105183701B (zh) * 2015-09-06 2018-06-26 北京北方烽火科技有限公司 1536点fft处理方式及相关设备

Also Published As

Publication number Publication date
CN102043760A (zh) 2011-05-04

Similar Documents

Publication Publication Date Title
CN102043760B (zh) 数据处理方法及系统
CN103294446B (zh) 一种定点乘累加器
CN112464296B (zh) 一种用于同态加密技术的大整数乘法器硬件电路
CN101847986B (zh) 一种实现fft/ifft变换的电路及方法
CN107967132B (zh) 一种用于神经网络处理器的加法器和乘法器
CN101021777B (zh) 基于除数(2n-1)的有效求模操作运算
CN110543291A (zh) 有限域大整数乘法器及基于ssa算法的大整数乘法的实现方法
CN117908835B (zh) 一种基于浮点数计算能力加速sm2国密算法的方法
CN105718424B (zh) 一种并行快速傅立叶变换处理方法
CN109379191B (zh) 一种基于椭圆曲线基点的点乘运算电路和方法
CN116205244B (zh) 一种数字信号处理结构
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法
CN116578819A (zh) 一种稀疏分数傅里叶变换fpga实现方法及系统
CN116595297A (zh) 一种支持输出剪枝的可重构混合基fft设计方法
CN114706557B (zh) 一种asic芯片及蒙哥马利模乘的实现方法和装置
CN115544438A (zh) 数字通信系统中的旋转因子生成方法、装置和计算机设备
CN114185014B (zh) 一种应用于雷达信号处理的并行卷积方法及装置
CN113554163B (zh) 卷积神经网络加速器
KR20070061357A (ko) 고속 푸리에 변환 시스템의 메모리 주소 계산 방법 및 그를이용한 트위들 팩터 생성 장치
CN102646033A (zh) 模乘运算的实现方法和装置
KR101318992B1 (ko) 모듈로 n 연산방법 및 그 장치
CN114510217A (zh) 处理数据的方法、装置和设备
TWI825935B (zh) 用於記憶體中計算的系統、電腦實施過程以及解碼器
JP5072558B2 (ja) データ処理装置
CN110533174B (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
C14 Grant of patent or utility model
GR01 Patent grant