CN1478234A - 用于有效地执行线性变换的方法和装置 - Google Patents
用于有效地执行线性变换的方法和装置 Download PDFInfo
- Publication number
- CN1478234A CN1478234A CNA018199798A CN01819979A CN1478234A CN 1478234 A CN1478234 A CN 1478234A CN A018199798 A CNA018199798 A CN A018199798A CN 01819979 A CN01819979 A CN 01819979A CN 1478234 A CN1478234 A CN 1478234A
- Authority
- CN
- China
- Prior art keywords
- matrix
- vector
- row
- address
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种用于执行线性变换的改进了的方法和装置,具有减少算术运算次数、简化的电路和低功率消耗等特点。该方法执行CDMA应用中出现的复数U-变换。该装置允许同时分析扩展因子不同的输入信号。
Description
技术领域
本发明涉及数字信号处理领域。它引入了一种用于执行线性变换的改进的方法和装置,它具有减少的算术运算次数、简化的电路和低功耗。
发明背景
在信号或数据处理中经常使用到线性变换。线性变换是从被认为是“输入向量”的n-维向量和被认为是“输出向量”的r-维向量产生。在许多应用中,输入向量由需要处理的给定信号的数字采样组成。不过线性变换的应用并不限于任何特定的领域,它对于每个科学技术领域都是重要的并且要求它有高效的执行性能。
从一组n-维向量集合(实数、复数或从任何标量字段)到一组r-维向量(在同一标量字段)的广义线性变换可以用r×n阶矩阵表示:
n-维广义输入列向量书写形式如下:
从输入向量x产生输出r维列向量y的线性变换是通过矩阵与下列公式给出的向量的乘积获得:
线性变换的直接执行需要r×n次乘法和r×(n-1)次加法。
二进制矩阵在本发明的发展和应用中特别重要。二进制双极矩阵在其元素中仅含有±1的值。今后它们将被称为U-矩阵。由U-矩阵表示的线性变换将被称作U-变换。在上述表示中,如果给定的变换为U-变换,则为了其直接执行需要r×(n-1)次加法/减法。另外一种类型的二进制矩阵为其元素中仅包含0,1值的矩阵。它们将被称作0-1矩阵。由0-1矩阵表示的线性变换被称为0-1变换。在上述表示中,对于0-1变换的直接执行平均将需要r×(n-1)/2次加法。
在本文中,术语“二进制变换”将由上述二种形式的变换组成:U-变换和0-1变换。为完成术语介绍,应该说明术语U-向量是指分量为±1值的向量,同样,分量为0,1值的向量被称作0-1向量。
二进制变换的处理包括对输入向量的分量的加法和减法。它们在硬件上以电子专用集成电路(ASIC)来实现,需要诸如加法器和减法器这类元件。这类元件的使用是昂贵并且耗能的,它们的构造需要占用珍贵的区域。在许多技术领域均不断地需要一种能够实现二进制变换的硬件而仅耗费少量资源。
U-变换在数字信号处理的各方面均有广泛用途。它包括多种诸如图像处理和无线通信等通信技术。
当前对于直接序列(DS)码多分址(CDMA)扩频通信***在全球范围内引起日益增加的兴趣。IS-95标准[TIA/EIA/IS-95-A,“Mobile Station Base StationCompatibility Standard for Dual-Mode Wideband Spread spectrum CellularSystem”,1996年2月27日]是开发DS-CDMA***的一个例子。
在CDMA传输技术中,多用户数据在复合信号中被发出,然后在传输前与伪随机噪声(PN)码相乘,伪随机噪声(PN)码是一种具有随机噪声特性(诸如低度的交叉关系)的U-序列。扩展特性使传输能抵抗包括多通道噪声、抖动或检测在内的噪声。也施加了比信道编码长的扰频码。第二代(IS-95-B)和第三代(3G)宽带(WB)CDMA标准的传输方式要求接收机执行多编码检测。这是一种同时对组合信道(其中各信道原先按照不同信道编码扩展)进行去扩展的任务。这通过其中组成变换矩阵的扩展码通常是HADAMARD矩阵的行的U-变换的应用来完成。这是为了完成低资源消耗的计算任务所期望的有效U-变换技术的许多实例之一。
存在几种改进特定类型的线性变换的已知机械装置。这里将提及从非常广泛范围内选出的少数相关实例。执行卷积并且在DSP中用作滤波器的Toplitz变换可以通过采用要求O(n·log2(n))次加法和乘法操作的典型快速傅里叶变换(FFT)算法有效地完成,其中n是域空间的维数。相比较而言,标准、直接的方法需要O(n2)次加法和乘法。详细可见:[James W.Cooley和John W.Tukey著“An algorithm forthe machine calculation of complex Fourier series”,Mathematics ofcomputation杂志,19(90):297-301,1965年4月]
在包括CDMA技术的数字信号处理中使用的U-变换特定形式是可以用HADAMARD矩阵表示Walsh-Harmard变换。HADAMARD矩阵可以递归地定义如下:
H1=[1],
且对于每个整数n、幂为2为:
执行这种变换的一种低复杂度和能量耗费算法是快速Walsh-Hadmard变换(FWT),它把用于n×n HADAMARD矩阵的加法/减法次数减少到n·log2(n)次。这在运算中提供了最佳的节省。在这种方法中基本原理相似于FFT的基本原理。
U-变换一方面被本发明的另一特征所改进以适应执行TOPLITZ U-变换的有效方法和装置。这些变换代表与给定U-序列或复数U-序列的全部或部分卷积。Toplitz U-变换的无线通信应用包括初始时间同步和使用与实数或复数伪随机(PN)或黄金、U-序列卷积的搜索器。黄金序列是由两个PN序列的Z2和组成。
以上本发明的二进制方面通过本发明的另一方面广义化为一种执行线性变换的有效方法和装置,它由具有相对较少数量的不同元素的r×n矩阵来表示。本发明的这种先进方面的应用包括复数U-变换和由带有{0,1,-1}元素的矩阵表示的线性变换。本发明这种广泛优选实施例将被称作广义消元法(GEM)。
宽带CDMA和先进的DSP未来技术的其它可能的分支将得益于同时分析不同扩展因子下的输入信号。这将为可以同时接收不同信息(诸如传真、一般电话交谈和互联网数据)而不使网络过载的多编码信道所取代。本发明的另一方面是对于这些类型的线性变换提供有效的方法和装置。它包括本发明带有附加处理器的U-二进制方面的经修改的版本。为了发现在全局低速率加法中的各分布中应用U-二进制方法的配置,该附加处理器使用与所述U-二进制方法所需的加法次数有关的信息。
本发明其它的主要应用包括无线多媒体***个人卫星移动***、基于GPS卫星的定位***等等。在移动通信和其它移动、基于计算的***中,减少用于线性处理的当前损耗是根本的。本发明在移动电话技术中的应用可以延长电池寿命、减少电路并且并且缩短响应时间。
附图说明
通过下面提出的结合附图的详细描述,本发明的特征、性质和优点将变得更加明显,附图中相同的符号具有相同的标识,其中:
图1示意地阐明了更新执行使用按照本发明优选实施例的0-1二进制变换矩阵的变换的装置所使用的存储器的内容的操作。
图2示意地阐明了更新执行使用按照本发明优选实施例的U-变换矩阵的变换的装置所使用的存储器的内容的操作。
图3示意地阐明了更新执行使用按照本发明优选实施例的Toplitz变换矩阵的变换的装置所使用的存储器的内容的操作。
图4是按照本发明的优选实施例用于执行加法次数减少的线性变换的示例性装置的框图。
图5阐明了按照本发明的一个实施例实现r×n U-矩阵A和n-维向量X的乘积的实例。
详细说明
在描述本发明的方法中有两个术语是基本的。第一个是相等向量。两个同样维数的非零向量中的一个是另一个的积,则它们在下文中被称作相等。该术语可被应用于给定矩阵中的两行或两列。第二个术语是给定矩阵中一列的首元素。本发明全文中使用的定义是在所述矩阵的每列中最上方下标的非零成份。该定义依赖于在给定矩阵中一致地使用的预先定义的列下标阶。随着新先导元素的重新定义产生新阶的重新定义。例如某一给定矩阵的先导元素可能是各列中最底下或最上方的非零元素,这取决于为此目的看来最方便的顺序。0-1-矩阵
本发明的现有优选实施例提供了一种执行0-1-二进制变换的有效方法。今后它也将被称为“0-1-方法”。下列例子是对0-1-方法的介绍和其主要思想的概述。
例子:给出0-1-二进制4×14矩阵A:
和14维输入向量,
假定期望计算4维“输出”向量:
按照本发明的优选实施例,首先检查矩阵A是否有相等的行。由于没有两行是相等的,则程序进入下一步。接着,输出向量y表达为各列之和,其系数为相应的输入向量坐标。因此:
在此阶段,零列与其系数一起被删除。由关于输入向量的本发明的优选实施例完成的第一步是收集任何循环非零列的系数并且相加。这样在耗费6次加法后可以得到下列简化的向量方程式:
此表达式可以用下列定义简化:
w1=x1+x7+x12,w2=x2+x9,w3=x3+x14,w4=xx+x11,w5=x5,w6=x6+x13,
这意味着:
这等于最初的问题,但具有较少的列数。不过现在这种简化已经用尽。为了获得更多的收益,该向量方程式***为下列相当的两个向量方程式组:
这两方程式中每一个将如该优选实施例的第一步那样分别被处理。这样相同非零列的系数将被收集并相加。因此该方法在这一阶段通过附加的6次加法的代价得到下列两个向量方程式组:
现在很明显只需要4次附加的加法来完成输出向量y的计算。因此,期望的结果总共用16次加法完成。可以容易地检查到,完成该计算过程的常规现有技术方法需要28次加法。上面对本发明优选实施例的描述将揭示,当矩阵维数增加时该方法的相对效率也增加。
一般而言,本发明的0-1-二进制方面是n维向量x与r×n维的二进制0-1-矩阵A的乘法的高效的方法和装置。
该矩阵为:
其中对所有1≤i≤r,1≤j≤n,aij=0,1
而输入向量为:
输入向量的元素可以是实数或复数或属于任何标量字段(例如Z2)。其目的在于计算矩阵A和向量x的乘积。结果将表示为:
将要描述的过程是递归的,并且下列步骤的顺序或其中一部分将在各次迭代中重复。按照本发明的优选实施例,第一步是检查是否有相等的行。当有可能时,该步骤应该作为预先准备在开始处理任何输入向量前完成。如果发现i-行等于j-行,则可以推理yi等于yj。因此两相等行之一将被省去。为清楚起见,将永远消除具有较大下标的行。如此,如果j>I,则省去j-行。该最初操作在本发明的最后执行步骤中被修正,其中这一阶段已知的yj(由于它等于yi)***回向量y中适当的位置。相等行的省去继续进行,直到矩阵A中没有相等的两行为止。实际上,该阶段在很多情况中被跳过。它在一旦有相等行合理的可能性时而被执行。它总是在log2(r)>n时被执行,因为该条件确保相等行的存在。
为避免麻烦的标识,从这一筛选过程得到的经修改的矩阵将具有与原来的矩阵同样的名称A,r×n维数的称呼也将保留。在下一阶段,相加过程将被引入来消除相等的列。该过程将以最小加法代价来减少经修改的矩阵中的列数。首先,矩阵和向量的积y=A·x被分解为A-列与相应的x个成分的乘积之和。因此:
该和的各元素由矩阵A的列向量再乘以向量x的相应标量系数而组成。该和可以更紧凑地写成:
y=A·x=x1v1+x2v2+…+xnvn
其中vj(对于每个j)是A的第j列:
按照本发明的优选实施例,在此阶段零列及其系数被省去。其次,全等的非零列将组合在一起并重新安排,其中各明显不同的列成为共同因子,并与其相应标量系数的和相乘。因此,形成的总和包括通过省去重复列而从原始非零列提取的所有不同的非零列w1,……,wm的子序列。每列wj与系数tj相乘,tj是等于该列的所有列的相应原有系数之和。可以清楚地知道m≤n,且间隙n-m是原始序列v1,v2,……,vn的重复次数。上述过程可以用下列数学描述公式化:
到现在为止,计算任务是计算作为原有x1,………,xn之和的新系数t1,………,tm。这花费n-m次加法。从而乘积y=A·x由下式给出:
这一计算的重新安排方面和决定所需总和的参与部分可以在输入向量到来之前作为预先准备工作按每矩阵一次完成。总之,设B为各列分别为w1,……,wm的r×m矩阵,并设: 于是y=A·x=B·t。这样上述过程使原来把r×m矩阵A乘以n-向量x的问题简化为把r×m矩阵B乘以m-向量t的问题。当m较小时获得的收益较大。
下一步是水平***上一阶段的B矩阵至两个或更多的子矩阵,其中各行保持不断。各子矩阵将具有减少的行数,并且将在下一迭代中增加上述列-采集的收益。矩阵B的各行将用u1,u2………,ur表示。所得乘积将标示为:
式中各行与向量t乘为标量积。由于这一表达式,计算y=B·t的任务相当于计算r个标量积:u1·t,u2·t…………,ur·t。
按照本发明优选实施例这可以通过计算矩阵与向量的乘积B1·t和B2·t来完成,其中矩阵B1和B2各包含矩阵B中行的子集,并且这两个子集互相不相交并且它们的并集包括B中所有行的集合。通常,除去第一次迭代,两个子-矩阵具有同样或几乎同样的行数。不过按照A矩阵的特性在有些特殊情况可能分割成为两个以上矩阵。当A矩阵没有特殊内部顺序时就是这种情况,并且其元素可以认为是任意选择的。本发明优选实施例将意味着第一次行的分割将使所有子矩阵的状态为log2(列数)>行数。接着的迭代将分割各行成为几乎相等的两半。认为是任意的矩阵情况基本上是最坏的情况。
另一可被替代地或在上述水平分割之前***的步骤是垂直分割。按照本发明的优选实施例,上述总和:
被分割为两部分:
式中p是在1和m-1之间选出。这样对于列集合为w1,………,wn的矩阵B1,以及对于列集合为Wp+1………,wm的矩阵B2而言,成立:
y=B1·t′+B2·t″
式中相对应的向量为t’=(t1,……,tp)以及t”=(tp+1,……,tm)。因此通过本发明优选实施例,两个较低维数的乘积B1·t′和B2·t″将被分别单独计算,最终的结果为两个r向量被加在一起。B列w1,……,wm的下标的预先重排可以促进这一步骤的有效性。
垂直分割与其它过程相比不经常使用。其主要用途是在行数实质上大大超过列数的情况,这在DSP应用中是少见的。这一步骤的基本缺点是需要对两乘积B1·t′和B2·t″求和,这包括附加的r次标量和的集合,与上述水平分割没有相同之处。相似于上述水平分割,依照矩阵A的特性,垂直分割可以成为多于两个矩阵。
最后各上述步骤应用于重复迭代,从而形成一种递归机制。
其次,说明上述方法促成节约的限度。对于r×n的0-1-矩阵A,其中r<log2(n),用s*(n,r)表示的最坏情况下加法的次数由下式表达:
s*(n,r)=n+s*(r).
下面的表格给出对于具有少量行数的矩阵的加法次数的限度。
S*(2)=-1 S*(n,2)=n-1
S*(3)=2 S*(n,3)=n+2
S*(4)=7 S*(n,4)=n+13
S*(5)=22 S*(n,5)=n+49
对于最坏情况为下列:
S*(r)<2r+2r/2+2-r
标准(常规工艺)需要u(A)-r次加法,式中u(A)是在矩阵A中的1′ns数。平均(当A是任意时的期望值)u(A)=(n-2)·r/2。由于s*(n,r)/n当n趋向于无穷大而r为常数(或r≤c·log2(n),式中l>c>0)时接近于1,这方法渐近地为最佳(对于有限的r和无穷的n)。
当A为r×n 0-1-矩阵并且对矩阵A的维数r×n没有任何假定,则本发明为计算乘积A·x所需加法次数限定在(1+□)n·r/log2(n),式中1>□>0,并且当r和n均趋向于无穷时,□趋向于0。如果r>n则存在更紧的限度(相对这一情况),这由于应用垂直分割而造成:
(1+□)n·r/log2(r),where 1>□>0,
并且当r和n均趋向于无穷时,□趋向于0。
为评估这一过程的效率,应该注意到本发明增加了管理上的操作而减少了加法。不过加法是复杂度的主要部分而本发明的采用是其减少的主要原因。此外,多数管理上的操作在数据向量处理开始以前对于每一矩阵完成一次。这样,所建议的方法实质上节约了功率消耗和电路。当给定的矩阵具有某种程度的稀疏性时上述0-1-二进制方面可能特别有效。当在计算广义实数矩阵与本发明的实数矩阵中描述的向量的乘积时结合本实施例的应用与分散算术时,这是经常遇到的。
此外,本发明这一方面可应用于代数编码(见:[Shu Lin,Daniel J.Costello,Jr“Error Control Coding Fundamentals and Applications”,Prentice Hall,Inc.,Englewood Cliffs,N.J.,1983]),其中在编码及解码过程中,Z2-矩阵与Z2-向量(或Z2n-向量)相乘。这在任何Z2-矩阵与Z2n-向量相乘的情况下均为真。结果,以上0-1-二进制实施例和下一个U-二进制实施例在除去特性值为2的字段之外的每一向量字段中都很容易互换。在每种特定情况下可以选择较有效的实施例。U-矩阵
为描述本发明的U-二进制优选实施例(今后称作“U-方法”)所需初步概念是向量相当的概念。如果两个同样维数的非零向量中一个是另一个的乘积,则它们被称作相当。在本实施例的上下文中,应注意如果两个U-向量相等或者其中之一是另一个与(-1)的乘积,则它们是相当的。下列优选实施例在大多数细节上大致相似于上述的实施例。主要区别是在下文中消元是对相当(列或行)向量而非对相等向量完成的。这加速了消元速度,因此提高效率。该实施例通过一个说明其概念本质的例子引入:
例:考虑下列5×13 U-矩阵A和13-维输入向量x的乘积。
而输入向量由下式给出:
乘积的结果可写为:
过程中的第一步是检查相当行。实际上它是一种在输入向量到达之前的一次操作。扫视发现在所给出的矩阵中有一处相当行,即行2相当于行4,实际上行4等于行2乘以(-1)之积。由此y4=-y2。因此不需要既计算y2又计算y4,故可以消除计算y4。这样行4从矩阵A中消除。作为结果的矩阵A’为:
相应输出向量为:
因此:y’=A’·x。
这是第一次简化。在下一步中A’·x分解为A’列乘以相应x分量之和。因此:
其次,对在上述总和中各列进行标准化,使各经修改的向量最上端元素之值为1。如此,如果最上端元素为(-1),向量及其系数均被乘以(-1)。不过如果向量的最上端元素为1则无需改变。上述总和的标准化形式推导如下:
在此标准化的总和中各向量的最上端元素为1而不同向量的数目减少。下一步为收集并求同一列中各系数之和。这样在花费8次加法后可获得下列方程式:
现在定义新系数为:
w1=(-x1)+(-x4)+x6+x9,w2=x2+(-x7)+x8+(-x10)+x11,
w3=-x3+x13,w4=x5,w5=-x12
因此上述方程式可以写成下列形式:
系数:w1,w2,w3,w4,w5在此阶段对于处理器是已知的。在下一阶段,此向量方程将被水平地分割为下列两方程组:
现在将以与第一次迭代相同的方式分别处理这些方程的每一个。由于上面的方程保持前述方程的标准态,因此它无须标准化,从而只需对第二个方程进行标准化。因此产生的方程组为:
在下一步,收集同一向量的系数并相加之。这样经过6次附加的加法后结果为:
很清楚,向量y’用4次附加的加法求得。为获得原有输出向量y现在只需要记得y4=-y2。这样这一过程总共需要18次加法。应注意为计算输出向量的常规现有技术方法需要总共需要60次加法。
本发明的U-二进制优选实施例为一种有效计算r×mU矩阵A与n-维输入向量x的乘积的方法。它通常比0-1-优选实施例提供更多的收益,并且有更广泛的应用。矩阵A表示如下:
式中对于所有1≤i≤r,1≤j≤n,aij=±1
而输入向量可写为:
向量的元素可以是实数或复数输入或属于具有特征值大于2的标量字段。目的是计算下列乘积的结果:
y=A·x。
第一步是通过消除相当行来修改给定矩阵,这一步可能是初步准备工作的一部分。如发现第i-行相当于第j-行,则可以推断yi等于±yi。因此本发明第一步的优选实施例决定两相当行中之一将被消除。为清楚起见,原则上将消除具有较大下标的行。这样,如果假定j>i则第j行将被消除。该初始操作在过程的最后一步中被倒置,其中此阶段已知yi被放回到它在向量y中的位置。这一消除过程一直继续到经修改的矩阵中没有相当的两行为止。
只要实际上可能存在相当的两行,这一阶段将被执行。在U-方法的多乘积应用(本发明的另一方面)中经常发生这种情况。当log2(r)≥n时总是执行这一阶段,因为这种情况保证相当行的存在。不过还有其他情况也保证相当行的存在,而应该加以考虑。例如,在Hadamard矩阵中的子矩阵。为避免不便的表注,所产生的经修改的矩阵将具有同原有矩阵同样的名称A,而维数r×n的名称也将保留。
下一步为消除相当的行。这将以最少加法次数的代价来减少经修改的矩阵的水平维数(即列数)。如在0-1-方面中一样,所有与这一步有关的管理通常作为数据向量到达前的初始准备工作而每矩阵执行一次。首先,y=A·x的乘积表达为A-列乘以相应x-分量之和。
令vj(对于每一j)为A的第j列:
于是:A·x=x1v1+x2v2+……+xnvn
其次,矩阵A的各列向量的最上方元素被检查,并且如果它还不是+1就被标准化为+1值。因此,当aij=+1时则不需要标准化,而若aij=-1则进行标准化而相应的第j-列向量和它的系数xj均被乘以-1。上述总和的新表达式就这样获得,其中各向量的最上方元素等于+1。在该表达式中相当的列永远是相等的。
全等的列然后被组合在一起,如上面的0-1-实施例一样,并且以各列作为公共因子被重新排列,再乘以相应的标量系数。因此,所得到的总和包括所有明显不同的、经标准化的列向量w1,………,wm(没有重复)的结果,该向量通过筛选重复的标准化列后从标准化列的列向量中提取。各明显不同的标准化列wj被乘以系数tj,它是所有等于该列的标准化列中的相应标准化系数的总和。很清楚m≤n,而其差数n-m为标准化列的原始序列:a11v1,a12v2………,a1nvn中的重复次数。
数学上该过程为:
在发明的这一部分中牵涉的主要计算任务为计算作为经标准化的原始系数之和的新系数t1,………,tm。加法次数的代价为n-m。乘积A·x这样就给出如下:
列消元过程的收益取决于原有矩阵A的结构。这在一般被用于无线通信中信号向量的编码和解码的某些矩阵中很重要,诸如某些形式的Hadamard矩阵的子矩阵或循环PN矩阵。当矩阵A中的行数r相对于列数n很小时也很显著。特别当r≤log(n)时,在这种情况下m-n≥n-2r-1>0。这些观察对于0-1-矩阵同样也大部分正确。
本发明的该优选实施例的剩余部分,水平和垂直分割、迭代相当于其0-1-对等部分。
要了解采用本发明所得的节约,首先注意加法次数是复杂度的主要部分。对于r×n U-矩阵A,其中r≤log(n),以s(n,r)表示的最坏情况下加法的次数为:
s(n,r)=n+s(r)
其中:
s(1)=1 s(n,1)=n-1
s(2)=0 s(n,2)=n
s(3)=3 s(n,3)=n+3
s(4)=8 s(n,4)=n+8
s(5)=19 s(n,5)=n+19
s(6)=38 s(n,6)=n+38
s(7)=75 s(n,7)=n+75
s(8)=144 s(n,8)=n+l44
s(9)=283 s(n,9)=n+283
下列界限范围总是有效的:
s(r)<2r-1+2r/2+1-r
现有技术常规方法需要(n-1)·r次加法。由于当n趋向于无穷而r保持常数时s(n,r)/n趋向于1,因此这一方法渐近地接近于最佳。以后将予描述的本发明的更复杂多乘积实施例对于加法次数最坏情况需要一个精确的限度范围。这可以用下列递归公式获得:
对于偶数r:s(r)=2r-1+2s(r/2)
对于奇数r:s(r)=2r-1+s((r+1)/2)+((r-1)/2)
当A为r×n U-矩阵并且对于A矩阵维数r×n没有限制时,则在最坏情况下本发明计算A·x乘积的加法次数永远被限于下列范围:
(1+□)n·r/log2(n),式中1>□>0,而当r和n均趋向于无穷时,□趋向于零。如果r>n,则存在更严格的界限(与本情况比较),这在应用垂直分割时产生:
(1+□)n·r/log2(r),式中1>□>0,
且当r和n均趋向于无穷时,□趋向于零。
然而,如果在A矩阵中存在特定形式的结构,则本发明优选实施例计算A·x乘积所需要加法次数大大下降。它的最普遍情况超过本文范围,但可以提到有些例子。在A是r×n Hadmard或循环伪随机(PN)矩阵的情况,只需要n·log2(n)次加法和n个标量的存储器,在这方面是最佳的。这一说法对于0-1-矩阵也是正确的。工业应用的例子
有几种技术可以从上述发明优选实施例的实现中得益。其中一种技术是图像处理,它包含几个包括U-矩阵与向量相乘的过程。在无线通信CDMA IS-95和更先进的第三代宽带CDMA中,有几个使用U-矩阵与向量乘积的过程。这些过程都可以通过本发明的使用用较少的功耗、电路和有时运行时间来完成。
在IS-95-B中的多编码正文中,Hadamard-64中的8行包括被乘以向量的U-矩阵,该向量的元素为信号采样。另一应用是由去扩展器完成的邻近检测。这里也有由Hadamard的几行组成的矩阵与数据向量的乘积。另一应用是搜索器。它通过计算互相的向量乘积搜索序列的高度相关性。相关器序列是从U-序列的伪随机(PN)序列中抽出,而它们的数据向量的标量积是所需要的计算。初始询问是搜索器的一个例子。广义消元法
上述发明的二进制方面的特征在于下列过程的迭代:消除零值行和相当行(即一行是另一行的标量积);消除零列和与其关联输入向量的标量成分;组合相当列并相加在一起和在这两种功能用尽后把矩阵水平或垂直分割。按照本发明优选实施例这些步骤的迭代顺序可以在任何标量字段应用于任何矩阵与向量之积。这一更广泛的发明优选实施例将被称作广义消元法(GEM)。
相当列的相加基本上是下列过程的重复。令v1,v2………,vn变换矩阵A的各列而x=(x1,x2………,xn)为输入向量,其目标是计算A·x。假定在经过适当的下标重新安排以后各列vk+1………,vn(对于某些2≤k<n)为k列的标量积,即对于k<j≤n:vj=zjvk。然后n-维向量x被简化了的k-维向量所替代:
x′=(x1,x2………,xk-1,x′k)其中x′k=xk+xk+1·zk+1+…………+xn·zn
而r×n矩阵被精简的r×k矩阵A’所更换,其列为v1,v2………,vk。下式成立:A’·x’=A·x。按照本发明优选实施例,这一过程,如果需要的话包括下标变化,一直重复到没有两列相当为止。实际上这一过程仅仅是在本发明的U-矩阵实施例中进行的过程标准化的广义化而已。实际上所有上述相当行的精简可以同时进行。当这一阶段完成后应该被视作整个过程的第一次迭代。然后该矩阵被水平分割,而在每一次分割中上述列消元工作以递归方式重复,如在以上实施例中所做。
如以上U-实施例和下面例子所阐明一种有效消除相当列的方法是通过首先把各列除以最上方元素并由此把相应系数乘以同一最上方元素。结果是在每个经修改的列中的最上方元素为1。不过有时在应用GEM中变换矩阵中一列的最上方分量为零,使除法成为不可能。在这种情况简单解决办法是把个非零列除以最上方的非零元素,并且相应地用同一最上方非零元素乘以相应的系数。结果是每个经修改的列的最上方非零元素为1。这使得在经修改的矩阵中只有当两列相等时两列才相当,是一种令人满意的结果。
至于本发明优选实施例增进效率的情况,考虑一种其元素在相对小的有限集S中的矩阵。实际中,该S集合可能是有限字段、字段的乘法组的子组或者在乘法下封闭字段的有限子集,并且在较大的广义性中为字段的任何有限子集。它包括上面讨论的二进制情况,其中S={0,1},或者S={1,-1}及其它非常普通的情况S={0,1,-1}或S={1,-1,j,-j}或S={0,1,-1,j,-j}。收益随S大小而减少,而一般法则保持GEM以因子log|S|(n)来减少加法次数,式中n为给定变换矩阵中的列数。当可行时,GEM应该与下面将描述的复数和通用实施例比较效率。
为阐明这一方法如何工作,以下将说明一种矩阵其元素取自集合:U1=def={1,-1,j,-j},它被称作U1-矩阵。在实际中这种形式的矩阵经常出现。不过应该再次强调,GEM不限于应用于任何特定形式的矩阵。对于r×n U1-矩阵与向量的乘积,加法次数是由C=n+4r-1+0(4r-1)限定。
例:考虑下列3×15 U1-矩阵A和15维复数输入向量的乘积。矩阵为:
而输入向量为:
乘积的结果可写为:
所有该例中完成的加法均为复数加法。第一步是检查相当行。没有发现相当行。第二步中乘积A·x分解为A-列乘以相应的x-分量之和。
其次,进行上面总和中每列向量的标准化。这通过用每个向量的最上方元素的相反数与其相乘,并从而用相应向量的(同一)最上方元素与每个系数相乘而完成。因此每个经修改的向量的最上方元素为1。如果向量的最上方元素已经是1则不需要修改。可以从上述总和导出下列标准化形式。 在该标准化的总和中,各向量最上方元素为1,当(在通用设置中)列数n相对于行数r足够大时(要求为:n>4r-1),不同向量的数目大大减少。下一步为收集并把相同列的系数相加。这样在付出7次加法的代价后可获得下列简化:
新系数现定义如下:
w1=x1+(-j)·x2+j·x10+x14+j·x15,w2=j·x3
w3=(-1)x4+x12,w4=x5+(-j)x13,w5=(-j)x6+(-1)x7
w6=j·x8,w7=(-1)x9,w8=(-1)x11
因此方程式可以写成: 在此阶段系数w1,…………w8对于处理器是已知的。其次,该向量方程将被水平分割成为下列两个方程组:
[y3]=w1[j]+w2[j]+w3[-j]+w4[j]+w5[-1]+w6[j]+w7[-1]+w8[1]
一般两者均为向量方程。不过在本示范例中第二方程已简化为标量方程。现在的法则是这些方程的每一个将以与第一次迭代相同的方式被分别处理。上面的方程不需标准化,因为它保持前面方程的标准化状态,这样,在任何未简化的应用中只有第二向量方程需要标准化。因此上面的向量方程简化的结果是:
这一步需要4次更多的加法。现在计算是以直接的方式完成,两个方程共需花费13次附加的加法。这样,在此例子中本发明实施例用去总共24次加法。硬性计算将需要42次加法。在大规模情况节约将更加显著。TOPLITZ矩阵
为说明本发明的该优选实施例将展示一个例子。
例:假定序列长度为8:u=(1,1,-1,-1,1,-1,1,-1),并且期望检查数据向量x=(x1,x2……x10)的3个连续假设。目的是搜索最大相关性。需要计算下列三个和:
y1=1·x1+1·x2+(-1)·x3+(-1)·x4+1·x5+(-1)·x6+1·x7+(-1)·
x8
y2=1·x2+1·x3+(-1)·x4+(-1)·x5+1·x6+(-1)·x7+1·x8+(-1)·
x9
y3=1·x3+1·x4+(-1)·x5+(-1)·x6+1·x7+(-1)·x8+1·x9+(-1)·
x10
这可以用下列TOPLITZ矩阵积表示:
下一步为收集补充向量,这样:
在此考虑每个括号内的元素,并利用引理:如果x,y为标量且u,v为向量,则:
因此:
同样:
因此在花费4次加法后结果是:
但现在可以应用上面的U-二进制方法。这样,下一步是可以使各列的最上方元素等于1的标准化过程。
下一步为收集及求公共列的系数的和。这样,在花费6次附加的加法后获得下列等式:
这样,为方便起见定义: w4=(-x3)+x5
于是等式可以写成:
在下一阶段该向量方程式将被水平分割为下列两个方程组:
y3=w1+(-w2)+w3+(-w4)
在第一方程式中收集完全相同的列,我们可以用两次附加的加法获得:
现在可以用5个附加的加法得到期望的输出向量y。这样,包含本发明的方法需要17次加法完成这一计算。硬性计算方法需要21次加法。显然在该示范例获得的收益并不大,但在大规模计算中我们将看到所得的收益可以与上述“平方”(非TOPLITZ)U-方法比拟。
其次为发明的这方面总设置的描述。假定U序列为:
u1,u2,………………,un
而实数或复数标量数据的序列为:
x1,x2,………………,xn+m-1
数据序列的元素可以是实数或复数或属于任何特征值大于2的标量字段。假定希望计算下列和:
y1=u1·x1+u2·x2+……………+un·xn
y2=u1·x2+u2·x3+……………+un·xn+1
.
.
.
.
ym=u1·xm+u2·xm+1+……………+un·xn+m-1
如果m<log2(n)则令r=m,否则如果m≥log2(n),则本发明优选实施例将通过把m个和的组分成r个连续和的块而开始,其中r<log2(n)。所有块的处理方法完全相同,因此该方法可以在第一块上阐明。最初的r个和可以用TOPLITZ矩阵与向量的乘积来表示。然后考虑rx(n+r-1)TOPLITZ矩阵:
以及(n+r-1)-维向量:
于是最初r个和由以下向量给出:
其中:y=A·x。
本发明的该优选实施例的根本思想在于,重新组织给定的问题以便使上述U-方法可以应用。令v1,v2…………………,vn+r-1为矩阵A按照其阶数的列。注意所有下列“中间”列向量均为U-向量:
也要注意下列“边”列向量的“配合”对的和及差也是U-向量。 .....................
在完成必要的初步准备工作后可以引入该方法。按照以上重新排列:
这一过程花费2r-2次加法而完成的形式实际上是rx(n+1)的U矩阵与n+r-1-向量的乘积。这是因为上面所有向量:
vr,vr+1,………,vn,v1+vn+1,……………,vr-1+vn+r-1,v1-vn+1,……………,vr-1-vn+r-1均为U-向量。这样,计算的其余部分可以用U-方法完成。所有这一对U-形式的修改,除去实际加法/减法:xj±xn+j,都作为“一次性工作”在输入向量到达前完成。
在最坏情况下的加法次数由以下表达式给出:
st(n,r)=s(n+r-1,r)+2r-2=n+3r-3+s(r)
在通常设置中,其中计算m个和并且m>log2(n),在最坏情况中的加法次数是由(1+□)(n+3log2(n)·m/log2(n)所界限,其中1>□>0,且当m和n均趋向无穷时,□趋向于零。
按照本发明另一实施例在上述方法中可以综合GEM分量。在这种情况下,某些“边”列在耦合边列的第一阶段可以保持不被处理。(0,1,-1)-矩阵
TOPLITZ矩阵是矩阵更广义类别的一部分:这些矩阵的元素是0,1,或-1。这种矩阵在此将被称作(0,1,-1)-矩阵。关于上述TOPLITZ-方法的更广泛的概念现在将予以开发。假定A是r×n维的(0,1,-1)矩阵且x是n维输入向量,并且期望计算乘积:A·x。该乘积可以表示为A-列乘以相应x分量之和。这样,令vj(对于每一j)表示A的第j列,则:
A·x=x1v1+x2v2+……+xnvn
某些或可能全部A的列都包含0-元素。为简化标注,可以假定下标被排列(当然是方法上,不派给处理器该任务)以便最初k列v1,v2…………………,vk的每一列都含有零元素并且所有剩余的n-k列(如果有)vk+1,vk+2………………,vn均为U-向量(即没有0元素)。很清楚各“混合”向量:v1,v2…………………,vk为2个U-向量的平均值。因此对于每个1≤j≤k都存在两个U-向量uj,wj,使:
vj=1/2(uj+wj)。作为每矩阵一次的初步准备工作,本发明的优选实施例求出向量u1,w1,………………,uk,wk。因此,从上可得:
然而,在打开括号以后,我们得到r×(n+k)U矩阵和(n+k)-向量的乘积的表达式。按照本发明优选实施例,这一任务将由上述发明的U-方面所完成。上述发明的TOPLITZ方面是这一较广泛方面的特例。
工业应用实例
搜索器通常由TOPLITZ矩阵和数据向量的乘积表示。这在CDMA及宽带CDMA中也是如此。
实数矩阵
按照本发明另一优选实施例,计算操作的次数对于任何实数线性变换可以通过采用分布算术而被减少。在前面的文中它被称为“实数矩阵方法”。线性变换由元素为实数、不一定是整数、具有固定数目的二进制位数的矩阵来表示。矩阵可以被分解为具有二进位系数的二进制矩阵之和。在下一阶段将应用发明的二进制实施例。为引入这一方法先考虑下列例子:
例:考虑以下3×8 U-矩阵A,它具有(为本例子的简单起见)整数元素并且写成十进制:
8-维输入向量表示为:
期望计算3-维输出向量:
由于正常情况在二进制基础上工作,因此矩阵A将以此为基础被表示为:
该表达式可以看到有可能使用分布算术表达矩阵为三个二进制矩阵的和:A=□·A[0]+□t·[1]+□□·A[2]
式中:
由本发明实施例采取的第一步是建立二进制矩阵A[0],A[1],A[2],包括按照有效位A元素的位元。在考虑中的优选实施例将为等式的结果:A·x=□·A[0]·x+□t·A[1]·x+□□·A[2]·x
下一步为组成由A[0],A[1],A[2]的水平链形成的24×3二进制矩阵A*。
同时也要形成24-维列向量x*,它包括向量x的3个复制件,每个都具有从上面的和中导出的相应二进制权重。这在输入向量的到达开始前完成。
注意用21次乘法仅需下标移位操作。此实施例的关键是确定:
y=A·x=A*·x*
这样随后的工作为通过0-1方法计算A*·x*。因此下一工作是收集和把共同非零列的系数相加,产生新系数并从而减少矩阵的大小。
因此以下成立:
式中:
w1=22·x7+22·x8+21·x4+21·x5+20·x5
w2=22·x1+21·x6+20·x1+20·x7
w3=22·x3
w4=22·x2+21·x2+21·x3
w5=21·x5+20·x2+20·x1+20·x3+20·x8
w6=22·x1+21·x6+20·x1+20·x7
这是在花费16次加法后完成。其次,产生的矩阵进行行分割。因此:
和:
y3=w1+w3+w5
现在,在第一方程式中把公共列的系数相加,得到:
这一步花费2次加法。其余再用2次加法完成。在该例子中总共需要20次加法来计算变换过程。常规方法的使用将需要相当于29次加法的操作,其中“相当”意味着包括在乘法内的加法也计算在内。
显然这一例子并未得到显著的节约。这不过是为了简单地引入发明实施例的概念。不过当矩阵的参数很多时(维数和各元素的位数)可获得相当大的节约。
一般而言,研究中的发明优选实施例涉及一种有效计算实数、无穷制、线性变换方法。表示变换的r×n矩阵A可写成:
式中矩阵的元素为实数。期望计算A·x,其中x为实数或复数标量元素的n-维向量,可写为:
在此点前后假定矩阵的元素写为二进制并具有固定位数。提出发明的两种优选实施例作为可选解决方案,而它们之间的选择取决于变换矩阵的结构。第一种称作0-1-分解,而第二种称作U-分解。
假定矩阵A元素的界限为2ml并对于适当的正整数m1及m2在此点以外具有m个二进位精确度。这一假定并不限制发明的范围,因为处理器遭遇的每一标量在此点前后具有有限位数。令m=m1+m2+1。将应用分布算术以解开乘积A·x成为上述例子中处理过形式的m个二进制乘积。
首先本发明在下列情况描述:矩阵的元素为非负而分解是基于0-1制。在此点外由2m1范围限制的实数t并具有m2个二进位可以下形式表示:
在此总和中A[m1]为最大有效位(MSB)0-1-矩阵,A[-m2]为最小有效位(LSB)0-1-矩阵。一般,各矩阵A[k]为0-1-矩阵,其元素由A的元素中k有效位组成,其中各位放置在相应的元素中。通过分布法则可得出:
这是当前发明实施例的基础。其次令人A*为rx(m·n)0-1-矩阵,由上述总和的二进制矩阵的水平行组成,其次序按总和中表示。然后,
A*=[A[-m2]……………………,A[0],…………,A[m1]]
这将在输入向量到达开始前,对于任何给定的矩阵一次被完成。
此外,令m·n-维列向量x*由下式给出:
考虑中本实施例所含关键内容为:
A·x=A*·x*
后者是rx(m·n)的0-1-矩阵与(m+1)·n-维向量之积,该向量是由原向量移位m次的复制品组成。
A*·x*积的计算用本发明的0-1-二进制实施例完成。由于各用2的整数幂的乘法可以用移位实现,因此仅添加很少复杂度。
本发明的该实施例可以显著地减少乘积的复杂度。令:
l=log2(m·n)=log2(m)+log2(n)
并且令C(A)为本发明计算A*·x*需要的加法次数。如果l≥r则:
C(A)<m·n+2r+2r/2+1-r
特别可以看到在此情况粗略的界限:
C(A)<2m·n
当假定l≥r,则:
C(A)<(1+□)·m·r·n/l式中1>□>0并且当m·n及r趋向于无穷时□趋向于零。计算A·x积的常规(硬性)现有技术方法平均需要相当于n·r·m/2次加法的,其中包括乘法操作中所需的加法。
在某些情况下,特别当r=l,或当r较小时,可以采用上述实施例的另一种变化以便进一步节约。注意在r=l的情况问题简化为两向量之间的标量积的问题。这本身在科学技术上是相当普通的计算,并且它的有效性能非常有用。按照此变化矩阵A**由一连串矩阵形成,
A[-m2],A[-m2],………………,A[0]……………,A[m1]按垂直顺序。这样,r·(m+1)xn的0-1-矩阵为:
其次,A**·x的计算用本发明的0-1-矩阵优选实施例完成。乘积A**·x含有所有乘积:A[-m2]·x…………,A[0]·x…………,A[m1]·x。因此对于二进制乘法应用移位,期望的结果用执行总和完成:
这推断出带有非负元素的矩阵部分。
当矩阵A为实数并且其元素具有两种符号时,矩阵A可以表示为两个具有非负元素的矩阵之差:A=A1-A2。按照此表达式,讨论中的发明通过首先用上述方法分别地或以组合形式计算各乘积y1=A1·x和y2=A2·x来执行y=A·x。然后最后步骤为执行减法:y=y1-y2
本发明优选实施例的关于实数矩阵的0-1-二进制选择方案在下列分解二进制矩阵:A[-m2],A[-m2+1]……………,A[0]………A[m1]为较稀疏矩阵时特别有效。这可以是大小不同并且在此点外不具有非一致二进制位数目A-元素。在这种情况下,上述一致数字位格式所需的零填充造成较高的稀疏性。
下面将根据U-二进制分布算术来描述本发明优选实施例的另一种形式。本发明的这一形式具有更适于具有两种符号的矩阵并且基于更快的U-方法的优点。实际中,当在矩阵元素的大小和精确度方面有某些一致性时,它比上面的0-1-方法更加有效。下列方法的主要特征类似于0-1-方法。
本发明的随后描述需要下列守则。被2ml限定并在此点外具有m2个位数的实数t可以用以下方式表示为U-二进制和:
因此具有两种符号r×n实数矩阵A可以用下列方式被分解为U-矩阵的和:
式中各矩阵A[k]为r×n U-矩阵。
令A*为rx((m=1)·n)的U-矩阵:
A*=[A[-m2-1],A[-m2]………………,A[O]……………,A[m1-1],A[m1]]
这一矩阵是在进入数据向量到达前每矩阵一次地被组成。
此外(m+1)·n-维列向量x*定义为:
因此成立:
A·x=A*·x*
这是rx((m+1)·n)的U-矩阵与(m+1)·n-维向量的乘积。此乘积的计算是应用本发明的U-矩阵实施例完成。
如在上述关于0-1-二进制分解的方法中,同样这里存在对于r=1或小r值的垂直方案。它完全类似于上面描述的情况并且没有必要重复细节。
令l=log((m+1)·n)=log(m+1)+log(n)。成立对于l≥r,执行上述方法所需的加法次数由下式限制:
C(A)<(m+1)·n+2r-1+2r/2+1-r
如上所述,C(A)被定义为上面计算A·x的U-实施例所需的加法次数。在更广义的情况下,成立:
C(A)<(1+□)·(m+1)·r·n/l式中1>□>0并且当(m+1)·n及r趋向于无穷时□趋向于零。
工业应用的例子
线性变换普遍地应用于科学技术的每一领域。在通信技术中本发明实数矩阵的应用方面包括多用户检测器(MUD)矩阵(诸如反相关器或最小均方误差(MMSE)矩阵)与去扩展器的输出向量的乘积。它也可用于最小平方的计算。有限脉冲响应(FIR)滤波器,其中离散傅里叶变换(DFT)全部或部分被计算。特别是部分DFT的FIR滤波器以及那些其中FFT不太有效的中小尺寸的FIR滤波器是本发明特征可以应用的字段合。离散余弦变换DCT是另一种线性变换形式,它的计算可以由本发明来改进。当仅部分地被计算或者当其尺寸并不太大尤其如此,因此较高维数的快速算法不很有效。
在一些数字信号处理应用中,诸如应用FIR的处理电路,需要两个相对较长的向量的相关。其中一个向量可以表示运行在第二向量(代表应该滤波的输入)上的FIR滤波器的分接头。包括部分卷积的滤波操作由TOPLITZ矩阵和向量的乘积来表示。这可以有效地通过本发明实数矩阵方面来完成。
复数矩阵
例:假定要求计算下列和:
y1=(1+j)·x1+(1-j)·x2+(-1-j)·x3+(-1+j)·x4+(1-j)·x5+(-1+j)·x6
y2=(-1+j)·x1+(1+j)·x2+(1+j)·x3+(-1-j)·x4+(-1-j)·x5+(1-j)·x6
y3=(1-j)·x1+(-1-j)·x2+(-1-j)·x3+(1+j)·x4+(-1+j)·x5+(1+j)·x6式中输入向量x1,x2………,x6为复数。
常规的现有技术方法需要66次实数加法。当考虑到因子(±1±j)与复数的乘积需要2次实数加法而两个复数的一次加法需要两次实数加法,就可以理解这一点。
为完成此计算的发明优选实施例的两个主要可选方案提出如下。发明的第一优选实施例将称作相位旋转加GEM,它应用下列事实:
因此通过把上述用1/2(1+j)乘以所有上述和,这里该行为被称作相位旋转,我们可以从集合{1,-1,j,-j}中获得系数如下:{1,-1,j,-j}:
按照发明优选实施例这些和数用GEM计算。由于这个例子规模很小,与常规方法相比得益是边际的(无区别),但在更大的维数时它将是显著的。当维数很小,如在此例子中,在相旋转步骤以后可以采用其它更常规的计算方法。最后各总和的结果被乘以(1-j)以获得期望的结果。注意:用j或(-1)是组织性操作,它需要适度的时间和能量。
优选实施例的第二种可选方案称作复数-U-方法。它通过开启各系数的括号来打开总和,其方法如下:
y1=x1+(jx1)+x2-(jx2)-x3-(jx3)-x4+(jx4)+x5-(jx5)-x6+(jx6)
y2=-x1+(jx1)+x2+(jx2)+x3+(jx3)-x4-(jx4)-x5-(jx5)+x6-(jx6)y2
y3=x1-(jx1)-x2-(jx2)-x3-(jx3)+x4+(jx4)-x5+(jx5)+x6+(jx6)
其余应用U-方法完成。由于s(12,3)=12+3=15,其中这是复数加法次数,于是通过利用上述s(r,n)表格,这最多需要30次实数加法。
在通过上述例子说明基本原理后,现在应该提出通常情况的详细描述。为描述发明优选实施例关于复数矩阵方面,考虑一种将要用作系数的集合:U1={1,-1,j,-j}和U2={1+j,1-j,-1+j,-1-j}。一个U1-向量或者U1-矩阵的元素是矩阵U1的元素。同样U2-向量或者U2-矩阵的元素是矩阵U2的元素。这类矩阵和向量在无线应用中很普通。接下来应该考虑U2数和复数的乘积需要2次实数加法,而U1数和复数的乘积牵涉相对较少的复杂度。
第一个要解决的问题是:假定有r×n U2-矩阵A和n-维复数列输入向量x,要求计算乘积y=A·x。实际上是标量乘积的情况r=1被包括在内。现给出两种主要计算方法。各按适合情况选择。通过少许变化可以应用于实数数据向量。首先引入发明优选实施例的相旋转加上GEM方法。
令
and
于是B为r×n的U1-矩阵且z=B·x。其次,z=B·x的积通过GEM法计算。一旦z计算以后,输出向量通过乘积y=(1-j)·z求出。比较常规方法的得益是从初始的相旋转步骤获得,即节约2r·(n-1)次加法。该得益即使在r=1的情况也是存在的,即标量积的情况。进一步的收益可以从应用GEM获得。
本发明的第二优选实施例称作U-复数-方法。首先用A=A1+jA2表示A,其中A1和A2为U-矩阵。然后考虑等式:A·x=A1·x+j A2·x。该等式意味着A·x可以通过r×2n U-矩阵A*=[A1,j A2]与2n维-复数-列向量:
的乘积计算。这表示在下列等式:A·x=A*·x*。现在乘积A*·x*将用U-方法计算。在此发明优选实施例中有另一种选择,当r很小时是合理的。令
这是2r×n U-矩阵。然后应用U-方法计算乘积:A**·x。这实际上是计算乘积y1=A1·x和y2=A2·x。该过程用加法:y=y1+y2完成。
在某些应用中可能要对上述问题作一些变化,这些问题包括CDMA中以TOPLITZ矩阵代表PN相关器。在此布置中矩阵可以有零元素。相应地,令:U’1={0,1,-1,j,-j}以及U’2={0,1+j,1-j,-1+j,-1,-j}。U’1-向量或U’1-矩阵具有在U’1中的元素。相似地U’2-向量或U’2-矩阵具有在U’2中的元素。给定一U’2-矩阵A和一n-维复数-列输入向量x。目的是计算乘积y=A·x。包括实际上是标量积的情况r=1。
发明实施例相旋转加上GEM将首先讨论。令 以及
则B是r×n的U’1-矩阵和z=B·x。其次应用GEM计算z=B·x的积,或者当维数较小时应用更常规的方法。最后,一旦z已计算,输出向量y利用乘积y=(1-j)·z求出。
按照本发明另一实施例,A首先用总和:A=A1+jA2来表示,式中A1及A2为(0,1,-1)-矩阵,很可能是TOPLITZ矩阵。于是通过等式:A·x=A1·x+j A2·x,乘积A·x可以通过r×2n的(0,1,-1)-矩阵A*=[A1,A2]与2n-维-复数列向量 的乘积求得。最后乘积A*·x*将用TOPLITZ或本发明更广义的(0,1,-1)方面求得。
本发明的另一(可选)优选实施例,反映其非-TOPLITZ对等部分,当r较小时:令
此为2r×n的(0,1,-1)-矩阵。然后应用本发明的(0,1,-1)方面计算A**。这实际上是计算y1=A1·x和y2=A2·x。最后该过程用加法:y=y1+jy2完成。
复数部分现在将用一种计算一个广义复数r×n矩阵A∈Cr×n与一个实数或复数n-维向量x的乘积的方法作为结束。按照发明的一种优选实施例,首先以总和:A=A1+jA2,式中A1和A2为实数矩阵。其次从等式A·x=A1·x+j A2·x可以推导得出:A·x可以通过2r×n实数-矩阵A*=[A1,A2]与2n-维-列向量
的乘积求得,因为A·x=A*·x*。最后乘积A*·x*将用实数矩阵方法计算。
按照发明另一(可选)优选实施例令
此为2r×n实数-矩阵。然后应用实数矩阵方法计算乘积A**·x。这是计算乘积y1=A1·x和y2=A2·x。最后该过程用加法:y=y1+jy2完成。
最后具有U2-系数的TOPLITZ矩阵与向量的乘积是通过应用上述TOPLITZ技术完成。
工业上应用TOPLITZ矩阵、(0,1,-1)-矩阵和复数矩阵技术的例子
IS-95搜索器:IS-95 CDMA***容许一定数量的基站在一较小地理区域中同时使用同一段频谱以传输数据到移动接收器。从不同的基站输出的数据模式可以通过用来扩展传输数据的PN序列加以区分。各基站在PN序列的不同相位上传输。搜索器机构在移动接收器中的任务是通过调准它们的PN相位识别不同的由周围基站传输的先导信号。它也应用于区别从同一基站到达的几个多通道之间的信号(回声)。在初始同步程序中应用相似的过程。
搜索器用来通过收到信号的部分相关性试验一定数量的假设,对于各假设用当地产生的PN序列。然后对于每一假设序列被移位,并且对于每一固定数目的信号元素(芯片)执行相关操作。正常情况下搜索器需要搜索在给定窗口的所有假设,该窗口每次序列被移位1。在DS-CDMA***中搜索器可以通过建立矩阵A实现,该矩阵的行由上述移位后的PN结果组成。搜索结果然后然后在向量y=A·x给出,其中x代表在单个芯片时期采样的进入信号。按照发明的优选实施例上述有效线性变换用的发明性算法的实现可以耗费较少资源获得向量y。本发明的众多应用可以在建议的宽带CDMA标准有用。
多乘积
本发明的另一优选实施例设计一种要求U-矩阵和向量的乘积的部分和的情况。这可以发生在CDMA通信应用中,当具有不同速率(扩展因子)的几种编码被同时测试。对于已经完成掌握本发明的前面几方面的读者研究这一实施例特别有成效。通过下列例子予以介绍,它给出该相当复杂的方法的初步概念而不需要大量的细节。不过没有一个合理大小的例子可以描述此实施例的所有方面。读者可以参考本发明的概要,第六项。
例子:考虑下列5×8 U-矩阵
和一个8-维输入向量:
假如说(在多乘积术语中)行1及2的扩展因子是2,行3及4的扩展因子是4,而行5的扩展因子是8。着意味在首先二行中,每相继二进制素相加,在第三及第四行中每相继四元素相加,而在第五行中整行元素均相加。规定扩展因子不可逐渐减少,即每一行的扩展因子等于或大于前一行的扩展因子。此术语将在以后精确定义。
从上意味应该计算下列和:
x1+x2,-x3+x4,x5-x6,-x7-x8
-x1+x2,-x3-x4,x5+x6,-x7+x8
x1-x2 +x3+x4,x5-x6 +x7-x8
x1+x2 -x3+x4,-x5-x6 +x7-x8
-x1-x2 +x3+x4 -x5+x6 -x7-x8
首先对于四个4×2 U-矩阵在水平维数反映最低扩展因子处进行分割。然后应用U-方法,在最基本水平上,以说明通过新的方面如何节约加法次数。如此,通过应用相等行的消元,只需要二次加法计算各行的所有初次和数:
x1+x2
-x1+x2
x1-x2
x1+x2
-x1-x2
相似地对于各行的第二总和只需要二次加法:
-x3+x4
-x3-x4
x3+x4
-x3+x4
x3+x4如此等等。因此,这部分总共需要花费8次加法。必须有4次附加的加法完成第3和第4行所需的和,和另外4次附加的加法计算第五行需要的和。因此在应用发明的优选实施例中总共需要16次加法。常规的硬性方法将需要28次加法以完成同样的任务。
发明当前方面的环境包括U-矩阵,它可能是大维数的并且如上述例子中一样需要求各行中相等间隔的次级和。输入向量可以是实数或复数。矩阵可以再次按行分割成几个子矩阵,其中每一个按照上述例子使用方法分别地和独立地计算。在此实施例中综合一种方法,它在节约加法次数前提下寻找最近-最佳的分割从而减少复杂度。它的工具是加法处理器或者基于动态编程的装置,通过使用U-方法的表格、上下限、和复杂度s(n,r)的递归公式,可以分析不同的次级分割。为开发该实施例需要有十分精确的公式表示。需要作出新的定义作为初步材料。
令v=(v1,v1,……,vn)是向量而p为可以除尽n的正整数(简言之p|n)。定义v[p]为由分割v成为长度为p的分段而形成的诸向量的向量。如此:
v[p]=((v1,v2……,vp),(vp+1,vp+2,……,v2p),(vn-p+1,vn-p+2,……,vn)).
分段表示为:
v[p,k]=(v(k-1)p+1,v2,……………,vkp) 对于1≤k≤n/p.
在文中整数p称作扩展因子。注意多向量是类似于矩阵结构的结构。下一元素,多向量的多-标量积,是矩阵乘积与通常标量乘积之间的交叉。取两个n-维向量v=(v1,v2,……,vn)和w=(w1,w1,……,wn),然后v和w的p-多-标量-乘积义为:
v·w[p]=(v[p,1]·w[p,1]·v[p,2]·2[p,2]……………,v[p,n/p]·w[p,n/p])
式中内部积:v[p,1]·w[p,1],v[p,2]·w[p,2],………为普通标量积。注意此乘积的结果是n/p-维向量。
令A为具有A1,……,Ar行的r×n矩阵和p=(p1,p2,……,pr)为正整数向量。可以说如果在1≤i≤r时每一个pi除尽n则p除尽n。这表示为:p|n。假定现在p|n。取n-维向量x并定义A和x的多乘积乘积为:A·x[p],为诸向量的向量:
A·x[p]=(A1·x[p1],A2·x[p2],……………,Ar·x[pr])
本发明的当前实施例在以后将描述的设置中将改进这类乘积的计算。
多乘积***
多乘积***(或简言之MP-***)是包括以整数n,r和正整数向量p=(p1,p2,……,pr)作为参数的设置,并使:
p1|p2,p2|p3,p3|p4,………………,pr-1|pr和pr|n。
整数p1,p2,……,pr称作***的扩展因子。MP***的参数将以下列形式书写:
P=(r,n,p)
在这些参数上现在附着r×n U-矩阵A和n-维实数向量x。目的是有效地计算乘积A·x[p]。整个MP***将写为:
S=(r,n,p,A,x)
当所有整数p1,p2,……,pr,n也为2的幂数,则***称为二进制多乘积***或简言之,BMP***。
M-1-方法
此发明的特征是直接使U-方法适配于MP-***。它用上述例子代表。实际上它通常在以后将描述的接近-最佳分割后应用于MP***的子***。
给定一MP-***S=(r,n,p,A,x)。该方法基于关于最小扩展因子p1下矩阵水平分割为子矩阵,各子矩阵宽度为p1。它开始于用矩阵A的U-系数计算向量x的首先p1个实数的和。这同时在所有行用U-二进制方法完成。然后进入下面的p1列,完成同样的过程。它以此方式进行直至n个变数均完成。其次,进入各行,其中pi>p1并以琐碎的方式完成取和过程。
在各子矩阵上U-方法的第一步是扫描出那些具有其它行直接复制件或负复制件的行。因此,例如,如果p1=2,则不管r如何在每一区段至多需要二次加法。一般在每一区段利用U-二进制方法不考虑大于2p1-1行。此外本文打算的应用是当A为HADAMARD矩阵。在此情况在各区段中没有多于p1不相当的行。这样***另一段信息关于在各子矩阵中可能出现多少不相当行数的上下限。它包含在标识为z(以表格贮存) 函数中,z为即将到来的矩阵类型的推论。它的参数是p1及rz(p1,r)。例如当A是HADAMARD矩阵则z(4,6)=4,z(8,5)=5,当是一般U-矩阵时则z(4,40)=8。永远有z(p1,r)≤min{2p1-1,r},而当A是HADAMARD矩阵时:z(p1,r)=min{p1,r}。
计算M-1-方法的复杂度将基于表格和出现在上述U-二进制方法中的递归公式。对于每一正整数y令s’(y)=s(y)+y。回忆起s’(y)<2y-1+2y/2+1并且此不等式相当紧密。着给出对于下一公式复杂度直觉的概念。M-1-方法所完成的加法因此是由下式所限定:C(n,r,p,z)=(n/p1)+(p1+s(z(p1,r)))+(n/p2)(p2/p1-1)+(n/p3)(p3/p1-1)+………………………
…………+(n/pr)(pr/p1-1)
=n·(1+(s(z(p1,r))+r-1)/p1-(1/p2+1/p3+…………+1/pr))=
=n·(1+s′(z(p1,r)/p1,-(1/p1+1/p2+1/p3+………+1/pr))
注意此公式中一些琐碎但不重要的情况。首先当矩阵只有一行,即r=1,则:
C(n,r,p)=n-n/p1
第二是一致的扩展因子情况,即当p1=p2=…………=pr,则:
C(n,r,p,z)=n·(1+s(z(p1,r))/p1)
显然,当r相对于p1较大时M-1-方法并不十分有效。它主要是一种在其基础上发展的更灵巧方法的踏脚石。更强大的方法通过水平方向分割矩阵并对每一子矩阵分别地应用M-1-方法。为了用较少的计算次数寻找一种承受较少加法总数的区段结构,最好成绩有上述公式的如下较短的形式。故定义:
C*(n,r,p,z)=1+s′(z(p1,r))/p1
多***的再分割和多向量的广义化标注
其次,作出规定使矩阵在水平行上分割。这一指令用再分割向量r代表。结果是把原来问题打开为几和具有同样宽度-n的子问题,各自用上述M-1-方法解决。稍后这种再分割将附加在一个发明性算法上以使效率最大化。取一个r-维正整数向量,p=(p1,p2,……,pr),具有扩展因子,和一个r×n U-矩阵: 并取整数k,m其中1≤k≤m≤r。首先定义向量p的一个区段。:
p(k,m)=(pk,……,pm).
这是简单地取具有k到m下标的分量。定义矩阵A的一个区段:
同样,它意味取具有下标k到m的行。
其次,考虑一个整数向量:r=(r(1),……,r(r+1))可满足:
k=r(1)<r(2)<……….<r(t)<r(t+1)=m+1,
它是分割区段的工具。首先,r是把p的分段创造成为诸向量p[r]的向量,即下列形式:
p[r]=((pr(1),……,,pr(2)-1),(pr(2)……,pr(3)-1,)…………,(pr(t),p2,……,pr(t+1)-1))
子向量表示为,
p[r,1]=(pr(1),…………,pr(2)-1)
p[r,2]=(pr(2),…………,pr(3)-1)
.
.
.
p[r,t]=(pr(t),…………,pr(t+1)-1)
相似地矩阵A的行按照分割向量r再分割为下列形式:
对于所有整数1≤q≤t:A[r,q]=(aij:r(q)≤i<r(q+1),1≤j≤n)
给定区段的M-方法
此节为形成一种寻找低复杂度区段的机制中主要步骤,这种机制为此实施例的核心。假定給定一种矩阵的行分割并在个子矩阵上分别地执行M-方法。目的是估计加法的总数使其在下一阶段中寻到用较少次数加法获得区段。固定一个MP-***S=(r,n,p=(p1,p2,……,pr),A,x,z)和区段向量r=(r(1),……,r(t)),式中1≤k=r(1)<r(2)<…<r(t)<r(t+1)=m+1≤r+1
对于1≤q≤t Sq MP-子***给出如下:
Sq=(r(q+1)-r(q),n,p[r,q],A[r,q],x,z)
所有子***的加法总数为:
C(n,r,r,p,z)=□1≤q≤tC(n,r(q+1)-r(q),p[r,q]z)=
=n·(□1≤q≤ts′(z(pr(q),(r(q+1)-r(q)))-/pr(q)-(1/pk+…………+1/pm)+t)
下一目的将是发展一种寻找可以使此元素最小化区段的有效方法。不在各阶段计算重复附加的子元素:1/pk+......+1/pm和n-因子是一种完成该计算的有效方法。
如此,我们定义:
C*(n,r,r,p,z)=□1≤q≤ts′(z(pr(q),(r(q+1)-r(q)))/pr(q)+t
接近最佳的分割
在此阶段应该应用再分割段的特性,它尽量减少由上述项C(n,r,r,p,z)给出的加法次数。首先给出一个对于加法次数的抽象公式,其中分割段在原来问题的给定子间隙上具有在最坏情况的上下限。
然后考虑MP-***S=(r,n,p=(p1,p2,……,pr),A,x,z)和整数k,m,其中1≤k≤m≤n。定义:
h(k,m)=min{C(n,m-k+1,r,p(k,m),z):对于r=(r(1),………,r(t+1))
其中k=r(1)<r(2)<……<r(t)<r(t+1)=m+1}
h*(k,m)=min{C*(n,m-k+1,r,p(k,m),z):对于r=(r(1),………,r(t+1))
其中k=r(1)<r(2)<……<r(t)<r(t+1)=m+1}
下式成立:
h(k,m)=n·(h*(k,m)+(1/pk+…………+1/pm))
下列递归公式成立:
h(k,m)=min{C(n,m-k+1,p(k,m),z),min{h,(k,q-1)+h(q,m):
对于其中所有 k<q≤n}}
其中min(空集)=无穷大。
h*(k,m)=min{C*(n,m-k+1,p(k,m),z)min{h*(k,q-1)+h*(q,m):
对于其中所有k<q≤m}}
其中min(空集)=无穷大。
现在这些表达式被下列动态编码所用,其中子结构为k和m之间的间隙。为减少此编码的复杂度h*在行进中需要更换h以发现最佳结构。这对最终结果没有影响。为在最佳分割中寻找第一步,将计算可以使表达式h(k,q-1)+h(q,k)对每一k和m(其中1≤k≤m≤n)最小的q,这与使表达式h*(k,q-1)+h*(q,k)最小的q相同。这样,定义:
q(k,m)=k 当h*(k,m)=C*(n,r,p(k,m),z) 和否则:
q(k,m)=最小q,其中k<q≤m和h*(k,m)=h*(k,q-1)+h*(q,k)
现在可以形成最佳分割区编码。
可以寻找最佳分割区的动态编程创造性编码
下列编码接受MP-***P=(r,n,p,z)参数作为数据,并且产生M-方法最佳地执行的分区r作为输出。此外它也返回最佳M-方法的复杂度。
要有效地运行必须在事前计算和贮存表格s’(r)。这是用可以递归公式计算此表格的快速编码完成:
s′(r)=2r-1+s′(r(1))+s′(r(2))
最佳分割区表(n,r,p,z)
对于b从1到r-1执行
对于k从1到r-b执行
m:=k+b
h*(k,m)←---C*(n,m-k+1,p(k,m),z)
q(k,m)←---k
对于q从k+1到m执行
d←---h*(k,q-1)+h*(q,m)
如果d<h*(k,m)则
h*(k,m)←---d和
q(k,m)←---q
返回表格h*和q。
现在剩下的是要从通过此程序建立的表格中获得最佳分割向量。这是由下列创造包含最佳向量r分量的集合R的编码完成。最佳分割区向量(n,r,p)集合:R:=空集以及k:=1 m:=r
寻找向量(k,m):
如果q(k,m)>k则
令q:=q(k,m)
集合R增加q
寻找向量(q,m)
寻找向量(k,q-1)返回集合R。现在最佳分割区r已找到,并且M-方法将在该分区运行。………………………………………………………………………………
实现
下列发明的优选实施例提供作为上述方法详细实现工具的创造性算法。它们可促成节约需要执行上述方法的存储和能量资源。它们有增进上述方法和提供需要建立器件指令的双重目的。关于实现的重要设想是变换矩阵是一般的并可以认为是从具有给定元素集合的矩阵集合中任意地选出。另一点是与列数相比行数相当地小,以至上述基本界限:行数<log(列数)成立。因此在其它情况下有些步骤是适用的,而在这里检查相当的行是多余的。
随后文中描述的映射使从一处到下一处的数据信道化。每一处指定一个二进制地址,对应于在给定迭代中矩阵的一列。如果是U-矩阵,一列的(-1)分量对应于地址中的1,而类似地一列的1分量对应于地址中的0。在U1-矩阵中也定义了相似的对应性。
将要描述的实现包括第一步,其中进入的信号被加入到预定的由其相应列决定的目的地,在列中个xj可被乘以一个符号和/或2的幂。在前面的迭代中,每当一列按照发明被分割后,两分割部分指定的地址各小于或等于所给列的地址。这使每一贮存在贮存器内某些位置的信息在被处理和丢失前送往目的地。此外,如果一列的分割出半部中之一为零,代表此列的地址将用作下一次迭代。这些特性是通过新颖的数据流映射建设完成,该映射设立为最大限度减少数据的移动。在每一次迭代中,地址最大限度地保持不动,包括所有当前内容可以为下次迭带使用的。
下述实现的机制最好通过上述发明的GEM优选实施例理解。考虑有限集合数,S,包括数1,并且在文中具有r行的矩阵称作完全的S-r-矩阵,如果它包括r-维列向量(其成分属于集合S)的所有非零配置,其中各配置正好出现一次,并且标准化法则是最底下的元素应该是1。注意下列小维数的例子。
矩阵:
是完全的(0,1)-2-矩阵;
矩阵:
是完全的U2-矩阵;
矩阵:
是完全的U-3矩阵;
矩阵:
是完全的{0,1}-3-矩阵;
矩阵:
是完全的{1,-1,j,-j}-2-矩阵。
随后的实现是基于假定,即行数与列数比较是足够地小以至大部分可能的配置出现在变换矩阵列中。因此在所有前面的实现中的第一次迭代简化计算为完全S-r-矩阵与改进向量的乘积。因此所有进一步的迭代是计算较低维数完全S矩阵与各自改进向量的乘积。
各列出现在上述例子的矩阵中的有序方式反映这些实现的另一地址设置特征。这是一种基于把列转化为一个|S|-基地址的一致性法则的寻址方式,其中MSB为向量的底部分量,而LSB为顶端。
基本结果是在第一次迭代后有一个唯一的一致完整变换矩阵,并具有一致的(相当明显)地址-编号方式。该一致的矩阵依靠S及r而不依靠初始的变换矩阵。这在过程的其余部分导致一致性,因此创造一种数据结构,它是普遍的而不依赖第一阶段后的特定变换矩阵。这在硬件实现和基于本发明的器件制造中非常有用,这是本章的主要目的。
这些实现的额外和单独的方面是减少所需读写存储分配和对于适当的变换矩阵的加法次数。因此,执行过程的能量需要和器件成本减少。应该注意,当以数个输入向量处理同样的初始矩阵时随后的各编码效率提高。
最后,在正确的观点上,下面的实现应该理解为它们仅是本发明许多可能有效的实现中几个例子。
例1:0-1-二进制矩阵
以下步骤序列描述发明的0-1-矩阵方面。数据包括r×n的0-1-矩阵A=(aij:0·i<r,0·j<n)和输入的实数或复数向量x=(x0,…,xn-1)。矩阵A的列表示为v0,………,vn-1。该步骤序列包括计算乘积y=(y0,…,yr-1)T=A·x。在每次给定的k-迭代上,各位置包含一个实数或复数,这取决于向量x。分配的读写存储包含2r-1个地址,标识为从1到2r-1,代表在各次迭代中参加过程的列。以下定义为本发明优选实施例的部分描述。
定义.
1)对于所有k﹁0,j﹁1定义:
2)对于所有0·m<r定义Ym=2m。这些地址在过程结束时将包含输出向量y=(y0,…,yn-1)T,其中Y0为y0的地址,Y2为y1的地址,如此等等。
3)对于k﹁0和j﹁1定义如下函数Fk,j,Gk,j,控制数据从各地址移动到下一处。首先令:l=1(k,j),m=1(k+1,2j),h=1(k,j+1)-1。
其次对于各正整数v﹁0,定义:
Gk,j(v)=vmod2m [方程101]
4)对于每一向量v=(v0,……,vr-1)∈{0,1)r定义:
□(v)=∑0≤j<r 2jvj.
编码.
1.初始化:对每一从1到2r-1的地址填入0。
2.第一阶段:对于每一j从0到n-1执行
如果Vj≠0则令xj加到地址v=□(vj)
3.主要部分:
对于k从0到
执行
对于j从1到2k执行
如果l(k,j+1)-1>l(k,j) 则
对于p从1到2l(k,j+1)-l(k,j)-1执行
令v=2l(k,j)·p
对于(源)地址v执行
如果Fk,j(v)≠0和Fk,j(v)≠V则
把驻留在(源)地址v中的值加入(目的)地址Gk,j(v)。
并且也把此值(源地址v的值)加入(目的)地址Fk,j(v)中的值。
4.获得输出:
在此阶段,对于所有0·i<r每一地址Yi含有输出分量yi的值。
复杂度.
在本术语中基本步骤是从存储器中一个存储单元(称作源)读取数字,并将其加入存储器中另一存储单元(称作目的)。
基于上述编码的器件将需要下列数目的基本步骤以完成上述A·x计算的主要部分:
C0,1 r_2r+1-2r-2.
此数仅取决于r。
A·x的整个计算这样仅需要最多为下列总和:
C0,1 n,r_n+C0,1 r等基本步骤。
图表1:0-1-二进制矩阵
图1示意地阐明更新一种器件使用的存储器内容的操作,该器件执行上述编码的主要部分,这样在较佳的模式下利用包括4行的0-1-二进制矩阵实现发明的0-1-二进制方面。在各次迭代中各矩阵的列以二进制方式用存储器中一个地址代表。底部(0或1)分量(在水平表达时最右侧分量)为MSB,而顶部(0或1)分量(在水平表达时最左侧分量)为LSB。地址Ym=2m,0·m·3,在过程结束时含有输出向量y=(y0,……,y3)T的分量,其中Y0为y0的地址,Y1为y1的地址,如此等等。箭头表示取一个地址内容并且将其送往另一地址并相加的行为。这是按照迭代顺序和参加各次迭代的地址(递增)顺序(如上述编码所示)而完成。
例2:U-矩阵
下列步骤序列描述发明的U-矩阵方面的实现。数据包括一个r×n U-矩阵A=(aij:0·i<r,0·j<n)和一个输入实数向量x=(x0,...,xn-1)。矩阵A的列用w0,……,wn-1表示。该步骤序列计算y=(y0,…,yn-1)T=A·x。在每一次迭代中各位置含有取决于向量x的实数或复数。分配的读写存储器包含2r-1+r-1个地址,其标识从0到2r-1+r-2。下列定义和先前例子的定义需要用来描述发明的目前优选实施例。
定义.
1)对于各r-维U-向量,u=(u0,…………,ur-1)定义:
Sign(u)=ur-1
h(u)=(u0·ur-1,…………………,ur-1·ur-1).
2)定义双极二进制集合U={1,-1}和对数位二进制集合B={0,1}之间的对应关系,通过下列关系式建立对应关系:
(-1)′=1
1′=0.
从而对于r-维U-向量,u=(u0,……,ur-1),定义:
π(u)=∑0≤j<r2ju′j.
3)定义Y0=0,并且对于所有1·m·r-1:Ym=2r-1+m-1。在过程结束时这些地址将含有输出向量y=(y0,……,yn-1)T的分量,其中y0为y0的地址,Y1为y1的地址,如此等等。
vmod 2m 如果 Signkj(v)=1
Gkj(v)=2m2l-(v mod 2m) 如果 Signk,j(v)=-1
编码:
1.初始化:对每一从0到2r-1+r-2的地址填入0。
2.第一阶段:对于每一从0到n-1的j执行
把Sign(wj)·xj加到地址π(h(wj))
3.主要部分:
对于k从0到
执行
对于j从1到2k执行
如果l(k,j+1)-1>l(k,j) 则
1)把驻留在(源)地址Yl(k,j)中的v值加入(目的)地址Yl(k+1,2j)。
2)对于p从1到2l(k,j+1)-l(k,j)-1-1 执行
令u=2l(k,j)·p和对于源地址u执行
如果Gk,j(u)=u 则
把驻留在(源)地址u中的值加到(目的)地址Yl(k+1,2j)
否则如果Fk,j(u)=u则
令存在(源)地址u中的值加到(目的)地址Yl(k,j)
否则如果Gk,j(u)=0令存在(源)地址u中的值乘上(-1)加到(目的)地址Yl(k,j)和也令存在地址u中的值加到地址Fk,j(u)。
否则把与Signk,j(u)相乘的驻留在源地址u中的值加入(目的)地址Gk,j(u)中的值并且也把该值(地址u的值)加入地址Fk,j(u)中的值。
4.获得输出:
现在对于所有0·i<r每一地址Yi含有yi的值。
复杂度.
i)用上述实现在U-设置中,基本步骤是从存储器中一处(称作源)读取数字,乘以符号1或-1并加到存储器中另一处(称作目的)的位置。
uk,j=2l(k,j+1)-l(k,j)-1
则:
iii)基于上述编码的器件将需要下列数目的基本步骤以完成上述A·x计算:
(1)第一阶段需要n个基本步骤。
2·uk,j-uk+1,2j-uk+1,2j-1+1
基本步骤在(k,j)步完成。
(3)因此对于所有
主要部分的k-迭代需要下列数目的基本步骤:
2k+2·uk-uk+1
(4)将需要下列数目的基本步骤以完成上述A·x计算的主要部分:
此数只取决于r。
(5)整个A·x计算需要总共:
Cu n、r_n+Cu r个基本步骤。
图表2:U-矩阵
图2示意地阐明更新一种器件使用的存储器内容的操作,该器件执行上述编码的主要部分,这样在较佳的模式下利用包括4行U-二进制矩阵实现发明的U-二进制方面。在各次迭代中各矩阵的列用存储器中一个二进制地址代表,其中列的(-1)分量对应于地址中的1,而列的1-分量对应于地址中的0。应用一种二进制解码,其中底部分量(在水平表达时最右侧分量)为MSB,而顶部分量(在水平表达时最左侧分量)为LSB。特别地址Y0=0,Y1=1,Y2=9,Y3=10,在过程结束时含有输出向量y=(y0,……,y3)T的分量,其中Y0为y0的地址,Y1为y1的地址,如此等等。箭头表示取一个地址内容,乘以符号1或-1,并且将其送往另一地址并相加的行为。单箭头表示符号为1而双箭头表示符号为-1。这是按照迭代顺序和参加各次迭代的地址(递增)顺序(如上述编码所示)而完成。
例3:U1-矩阵
以下步骤序列描述在变换矩阵中的元素属于U1_{1,-1,j,-j}集合情况中GEM方法的实现。这是在应用中经常出现的GEM的子情况之一。数据包括一个r×n U1-矩阵A=(aij:0·i<r,0·j<n)和一个输入复数向量x=(x0,……,xn-1)。矩阵的列用w0,……,wn-1表示。该步骤序列计算
y=(y0,……,yn-1)T=A·x。在每一次迭代中各位置含有取决于向量x的实数或复数。分配的读写存储器包含4r-1+r-1个地址,其标记从0到4r-1+r-2。此例子使用先前例子的定义和下列定义:
定义.
1)在集合U1和集合{0,1,2,3}之间定义对应关系(和反对应关系):
1′=0, 0*=1
(-1)′=1, 1*=-1,
j′=2 2*=j,
(-j)′=3, 3*=-j
从而对于r-维U1-向量,u=(u0,……,ur-1),定义:
□(u)=∑0≤j<r4ju′j.
2)对于r-维U1-向量,u=(u0,……,ur-1),定义:
Sign(u)=ur-1
g(u)=(u0·(ur-1)-1,…………………,ur-1·(ur-1)-1).
3)定义Y0=0,和对于所有1·m·r:Ym=4r-1+m-1。这些将是输出向量分量的地址。
4)对于所有k﹁0和j﹁1,映射Fk,j,Gk,j定义如下。令l=l(k,j),m=l(k+1,2j),h=l(k,j+1)-1。取整数v﹁0,在4-基础上由下式代表:v=∑0≤ j<r-2 4j·vj并定义:
编码.
1.初始化:对每一从0到4r-1+r-2的地址填入0。
2.第一阶段:对于每一j从0到n-1
把Sign(wj)·xj加到地址□(g(wj))
3.主要部分:
对于k从0到
执行
对于j从1到2k执行
如果l(k,j+1)-1>l(k,j) 则
1)把驻留在(源)地址Yl(k,j)中的值加到(目的)地址Yl(k+1,2j)。
2)对于从1到4l(k,j+1)-l(k,j)-1-1的p执行
令u=4l(k,j)·p并且对于源地址u执行:
如果Gk,j(u)=u 则
把驻留在(源)地址u中的值加入(目的)地址Yl(k+1,2j)中的值
否则如果Fk,j(u)=u则
把驻留在(源)地址u中的值加入(目的)地址Yl(k,j)中的值
否则如果Gk,j(u)=0令存在(源)地址u中的值乘上Signk,j(u)加到(目的)地址Yl(k,j)和也令存在地址u中的值加到地址Fk,j(u)。
否则令存在源地址u中的值乘上Signk,j(u)加到(目的)地址Gk,j和也令存在地址u中的此值加到地址Fk,j(u)。
4.获得输出:
现在对于所有0·i<r每一地址Yi含有yi的值。
复杂度.
i)用上述实现在U1-设置中基本步骤意味着从存储器中一个存储单元(称作源)读取数字,乘以符号1或-1或j或-j并把结果加到存储器中另一个存储单元(称作目的)中的复数。
ii)复杂度可用下列项公式化。对于
和1·j·2k
令:
wk,j=4l(k,j+1)-l(k,j)-1
对于
并且对于1·j·2k,令:
iii)基于上述编码的器件将需要下列数目的基本步骤以完成上述A·x计算:
(1)第一阶段需要n个基本步骤。
2·wk,j-wk+1,2j-wk+1,2j-1+1
基本步骤在(k,j)步完成。
2k+2·wk-wk+1
(4)将需要下列数目的基本步骤以完成上述A·x计算的主要部分:
此数只取决于r。
例4:TOPLITZ U-矩阵
下列步骤序列描述一种发明的具有U-系数的TOPLITZ矩阵方面。数据包括一个U-序列t0,………,tn-1和一个输入实数或复数向量x=(x0,…………,xn+r-2)。从U-序列形成一个rx(n+r-1)TOPLITZ-矩阵A_(aij_ti-j:0·i<r,0·j·n+r-2),其中对于所有k<0或k﹁n,tk_0。这些步骤计算y=(y0,……,yn-1)=A·x的乘积。只有第一阶段与U-矩阵例子有区别,因此只需引入这一阶段。所有在实现前面的例子中列出的定义在此均可应用。
编码.
1.初始化:对每一从0到2r-1+r-2的地址填入0。
2.第一阶段:
1)对于j从0到r-2把(1/2)·tn-r+j+1·xj加到地址:
π(h(tj,tj-1,…………t1,t0,tn-1,tn-2,……………,tn-r+j+1))
并且也把-(1/2)·tn-r+j+1·xj加入地址:
π(h(tj,tj-1,……………t1,t0,-tn-1,-tn-2,…………,-tn-r+j+1))
2)对于j从r-1到n-2,把tj-r+1·xj加入地址:
π(h(tj,tj-1,………………,tj-r+1))
3)对于j从n到n+r-2把(1/2)·tj-r+1·xj加入地址:
π(h(tj-n-1,tj-n-1…………t1,t0,tn-1,tn-2,………………,tj-r+1))
并且也把(1/2)·tj-r+1·xj加入地址:
π(h(tj-n,tj-n-1,………,t1,-t0,-tn-1,-tn-2,……,-tj-r+1))
3.主要部分:
算法现在进行与U-矩阵实现算法主要部分相同,并且输出贮存在相同地址。
复杂度.
i)在上述TOPLITZ实现中的基本步骤与U-实现相同,即从存储器中一处(称作源)读取数字,乘以符号1或-1并加到存储器中另一处(称作目的)的位置。
ii)基于上述编码的器件将需要下列数目的基本步骤以完成上述A·x计算:
(1)对于第一阶段需要下列
2·(r-1)+n-r+1+2·(r-1)=n+3r-3
基本步骤。
(2)TOPLITZ矩阵的主要部分计算A·x通过U-编码主要部分的实现r行完成。因此需要Cr u个基本步骤。
(3)整个A·x的TOPLITZ计算需要总共:
CT n,r_n+3r-3+Cu r个基本步骤
图表3:TOPLITZ-矩阵
图3示意地阐明输送进入的数据到器件所使用的适当储存器位置的操作,该器件利用包括4行的TOPLITZ矩阵执行上述编码的初始部分。除去这一初始部分,其它各方面均与U-矩阵实现和器件完全相同,并且其描述可以同样在此应用。这里同样一个箭头代表符号为1,而双箭头代表符号为-1。
例5:TOPLITZ U1-矩阵
下列发明的优选实施例为具有U1-系数的TOPLITZ矩阵方面的实现。数据包括一个U1-序列t0,………,tn-1和一个输入复数向量x=(x0,…………,xn+r-2)。从U1-序列形成一个rx(n+r-1)TOPLITZ-矩阵
A_(aij_tij:0·4<r,0·j·n+r-2),其中对于所有k<0或k﹁n,tk_0。下列步骤序列计算y=(y0,…,yn-1)=A·x的乘积。只有第一阶段与U1-矩阵例子有区别,因此只需描述这一阶段。所有在实现前面的例子中列出的定义在此均可应用。
编码:
1.初始化:对每一从0到4r-1+r-2的地址填入0。
2.第一阶段:
1)对于j从0到r-2把(1/2)·tn-r+j+1·xj加到地址:
□(g(tj,tj-1,……………t1,t0,tn-1,tn-2,……………,tn-r+j+1))
并且也把-(1/2)·tn-r+j+1·xj加入地址:
□(g(tj,tj-1,……………t1,t0,-tn-1,-tn-2,……………,-tn-r+j+1))
2)对于j从r-1到n-1把tj-r+1·xj加入地址:
□(g(tj,tj-1,………,tj-r+1))
3)对于j从n到n+r-2把(1/2)·tj-r+1·xj加入地址:
□(g(tj-n,tj-n-1,………t1,t0,tn-1,tn-2,……,tj-r+l))
并且也把(1/2)·tj-r+1·xj加入地址:
□(g(tj-n,tj-n-1………,t1,-t0,-tn-1,-tn-2,……,-tj-r+1))
并且也把-(1/2)·tj·xj加入地址:
□(g(tj-n,tj-n-1,………,t1,-t0,-tn,-tn-1,……,-tj-r+2))
3.主要部分:
算法现在进行与U1-矩阵实现算法主要部分相同,并且数据接收方法相同。
复杂度.
i)在上述TOPLITZ实现中的基本步骤与U1-实现相同,即从存储器中一处(称作源)读取数字,乘以符号1或-1或j或-j并把结果加到存储器中另一处(称作目的)复数的位置。
ii)基于上述编码的器件将需要下列数目的基本步骤以完成上述A·x计算:
(1)对于第一阶段需要下列
2·(r-1)+n-r+1+2·(r-1)=n+3r-3个基本步骤。
(2)TOPLITZ矩阵的主要部分计算A·x通过U1-编码主要部分的实现r行完成。因此需要Cr U1基本步骤。
例6:实数矩阵、二进制0-1表示
下列发明的优选实施例是发明的具有矩阵元素用二进制0-1-表示法的实数矩阵方面的实现。数据包括一个r×n具有非零元素的U1-矩阵A=(aij:0·i<r,0·j<n)和一个输入复数向量x=(x0,…………,xn-1)。算法计算y=(y0,……,yn-1)=A·x。
假定矩阵的元素由下列0-1-二进制表示法给出,对于所有0·i<r,0·j<n式中:对于所有-m2·k·m1, tijk∈{0,1}
只有第一阶段与0-1-矩阵实现有区别,因此仅该阶段需要描述。所有在此期间0-1-矩阵实现部分列出的定义在此均可应用。此外还定义下列r维的{0,1}-向量,对于所有0·j<n,-m2·k·m1:
vjk=(t1jk,t2jk,………………,trjk)
1.初始化:对每一从1到2r-1的地址填入0。
2.第一阶段:对于计数器j从0到n-1执行
对于k从-m2到m1执行
在地址□(vjk)的值上加2k·xj2k·xj
3.主要部分:进行过程如同(0,1)-矩阵实现对于r行算法主要部分,而在计算结束时输出储存在同样的地址中。
复杂度.
i)在上述实现中的基本步骤与0-1二进制-实现相同,即从存储器中一处(称作源)读取数字,并把结果加到存储器中另一处(称作目的)数的位置。
ii)基于上述编码的器件将需要下列数目的基本步骤以完成A·x计算:
(1)对于第一阶段需要下列
(m1+m2+1)·n个基本步骤。
(2)编码的主要部分计算通过上述实现具有r行的0-1-二进制编码主要部分完成。因此需要Cr 0,1基本步骤。
(3)整个A·x的计算需要总共:
CRe-0-1_(m1+m2+1)·n+C0,1 r个基本步骤
例7:实数矩阵、二进制U-表示
下列发明的优选实施例是发明的具有矩阵元素用二进制U-表示法的实数矩阵方面的实现。数据包括一个r×n实数-矩阵A=(aij:0·i<r,0·j<n)和一个输入实数或复数向量x=(x0,……,xn-1)。算法计算y=(y0,…,yn-1)=A·x。
此表示法的存在已经在发明的实数矩阵方面涉及。只有第一阶段与U-矩阵的实现不同,因此仅该阶段将予描述。所有U-矩阵实现部分列出的定义在此均可应用。此外还定义下列U-向量,
对于所有0·j<n,-m2-1·k·m1:
ujk=(t1jk,t2jk,………………,trjk)
1.初始化:对每一从0到2r-1+r-2的地址填入0。
2.第一阶段:
对于j从0到n-1执行
对于k从-m2-1到m1-1执行
把2k·Sign(ujk)·xj加入地址π(h(ujk))
对于k=m1执行
把(2m1-2-m2-1)·Sign(ujk)·xj加入地址π(h(ujk))
3.主要部分:进行过程如同(0,1)-矩阵实现对于r行算法主要部分,而在计算结束时输出储存在同样的地址中。
复杂度.
i)在上述实现中的基本步骤与U-实现相同,即从存储器中一处(称作源)读取数字,并乘以符号1或-1,再把结果加到存储器中另一处(称作目的)数的位置。
ii)基于上述编码的器件将需要下列数目的基本步骤以完成A·x计算:
(1)对于第一阶段需要下列
(m1+m2+2)·n个基本步骤。
(2)编码的主要部分计算通过上述实现具有r行的U-编码主要部分完成。因此需要Cr u基本步骤。
(3)整个A·x的计算需要总共:
CRe-U_(m1+m2+1)·n+Cu r个基本步骤。
图4是按照发明的优选实施例,用以减少的加法次数执行线性变换的示例性装置框图。装置500包括具有两个输入端及一个输出端的乘法器10,用来选择其输入之一传送到其输出的多路复用器9(MUX),具有两个输入及一个输出的加法器11,随后是双端随机存取存储器(DPRAM)13,有两条地址总线,即“add_a”和“add_b”和两个输出端,即“data_a”和“data_b”。MUX的活动是由地址发生器501进行控制,该发生器也启用DPRAM 13中的存储地址的存取。地址发生器的活动是由计数器3进行控制。
乘法器10的输出端被连接到MUX 9的一个输入端“C”。MUX 9的输出连接到加法器11的输入端“A”。加法器11的输出连接到DPRAM13的输入。DPRAM的一个输出“data_a”连接到加法器11的输入。DPRAM 13的一个输出端“data_b”被连接到乘法器12的输入端“E”。乘法器12的另一输入端“F”连接到地址发生器501的输出端“sign”。乘法器12的输出端连接到MUX 9的另一输入端“D”。计数器3连接到地址发生器501的两个输入端。发生器的501输出端“G”连接到MUX9的控制输入端“S”。发生器501的输出端“J”连接到DPRAM 13的第一地址输入端“add_a”。发生器501的另一输出端“I”连接到DPRAM 13的第二地址输入端“add_b”。变换矩阵可以储存在可选的RAM/ROM 1中,它供给地址发生器501以系列代码(矩阵中一行比特)D0,D1,……,Ds,并供给乘法器10以最高有效位D0。输入向量可以储存在另一可选的RAM/ROM 2中,它供给乘法器10输入信号的采样。或者,如果输入向量的元素和它们在变换矩阵中的相应元素同步地被提供给装置500,则存储器1和2可被消除。例如,这些元素可以由ADC或序列发生器提供。所有装置500的分量由公共时钟通过“clock_in”输入端来控制。
相同的U矩阵(包括n行)用相同的输入集合[x1x2……xn]来表示相同的不同编码D0,D1,……,Ds,下面说明该装置的操作。装置500的操作可以被分成两个阶段,表示为“阶段1”,在此时期内输入数据(即采样[x1 x2……xn])被接收,并且各分量和它的相应变换矩阵元素的乘积被计算并存储在DPRAM 13中;第二阶段中,称为“阶段2”,接收的数据被处理,而锁住进一步来自加法器9的输入数据。计数器3计算操作的累计操作次数且计数(计数器的输出)被用来区别两个阶段。“阶段1”中的操作数是输入向量的长度n。超过该数的操作与“2”相关。
按照本发明优选实施例,地址发生器501包括比较器4,它被连接到计数器3的输出端。比较器读取计数器3的当前输出,将其与输入向量的长度n相比较,并提供相应的信号,表示当前操作是否已在“阶段1”或“阶段2”中被执行。该信号用来控制MUX 9的输入端“S”,以便在输入“C”及“D”之间切换。
地址发生器501也包括异步存储器5(例如,ROM),它存储编程值,并被用作查找表(LUT),用于通过输入地址“add_a”和“add_b”来确定DPRAM 13中的地址,以便处理它们的内容。LUT的大小为(C-n)×(1+2r),并且它的内容包括三个字段,“源”字段,“符号”字段和“目的”字段。对于各次操作(即,各时钟周期,由计数器3计数),有三个相应的源符号和目的值。源字段包括与被拆分(分割)的变换矩阵的每列相关的信息,以及与标准化特定的两部分相关的指示。源字段确定DPRAM 13上的输入“add_b”的值。符号字段表示在各分割行或子行中低分量。目的字段确定DPRAM 13上的输入“add_a”的值,按照该值选择相应地址的内容以供处理。
地址发生器也包括一组s(s=r-1)个反相器,61,62……,6s,各相应地包括连接到一系列比特D0,D1,……,Ds的输入端。各反相器的输出连接到来自一组多路复用器71,72……,7s的相应的MUX的一个输入端。这一系列比特D0,D1,……,Ds也被送入来自一组多路复用器71,72……,7s的相应的MUX的另一个输入端。来自一组多路复用器71,72……,7s的每个MUX的输出受到最高有效位D0控制,以便使集合D1,……,Ds的传送不变,或者被反相(即D’1,……,D’s)地送至DPRAM 13的输入端“add_a”。集合D1,……,Ds(或D’1,……,D’s)被送入s个多路复用器的相应集合81,82……,8s,其中附加的多路复用器8r由来自LUT的“add_a”的MSB(第r个比特)送入。比较器4的输出使“add_a”的选择从集合71,72……,7s或从LUT到达。输入“add_a”(即目的)控制DPROM 13的第一输出“data_a”,后者被送入加法器11的输入端“B”。从LUT(即,源)取得的输入“add_b”控制DPRAM13的第二输出“data_b”,后者被送入乘法器12的输入端“E”,乘法器12用从LUT析取的相应“符号”值乘以各“data_b”值并把乘积送入乘法器12的输入“D”。DPRAM 13中的“写”操作是同步的,即,各单元的内容按照时钟速率被重写(例如当时钟信号出现时)。另一方面,DPRAM 13中的“读”操作是异步的,即不考虑时钟,各输出在地址输入变化时被改变。
第一阶段处的操作:
在此阶段,计数器3开始计算第一码元时间(n个时钟循环),在此期间执行第一阶段。在第一阶段中,MUX 9使来自输入端“C”的数据流流入其输出端并且流入加法器11的输入“A”,而锁住输入端“D”。输入码元[x1 x2……xn]被提供给乘法器10的一个输入端。编码的MSB D0被提供给乘法器10的另一输入端。在此阶段,由输入“add_a”确定的目的(输出“data_a”)从DPRAM 13被析取并被加入输入向量的分量[x1 x2……xn],再与MSB D0相乘。已经计数当前码元时间的计数器3把指示提供给地址发生器比较器4和ROM 5,告知当前码元时间已经结束,然后比较器4把MUX 9的输入端选择从输入端“C”切换到另一输入端“D”。同样,比较器4驱使多路复用器81,82……,8s从LUT选择数据,而不是从RAM 1选择数据。
第二阶段处的操作:
在此阶段,计数器3开始计数执行阶段2的下一码元时间。在阶段2中,MUX9使来自其输入端“D”的数据流流向其输出端,并流入加法器11的输入端“A”,而锁住输入端“C”。在此阶段,在每一时钟循环,DPRAM 13中选定的地址通过表示源的“add_b”被访问。源数据从DPRAM 13的第二输出端“data_b”被送入乘法器12的输入端“E”,在乘法器12中它与从LUT中析取的相应“符号”值相乘。该乘积被送入MUX 9的输入端“D”,从而出现在加法器11的输入“A”中。与此同时,当前目的值的内容出现在加法器11的输入“B”中。这两个值由加法器11相加,其结果存储在DPRAM 13中的同一地址处(对应于前一个目的值)。在该加法过程结束时,相应的r个变换点(yi‘)被存储在DPRAM 13中地址号0以及地址号2r-1到(2r-1+r-2)的位置处。这一过程因此继续,在所有变换点(yi‘)都被计算和存储在DPRAM 13中不同地址之后,一直到时钟指示阶段2被终止(按照预定的计数)。同时,当前码元时间也已被终止,且比较器4把MUX 9的输入选择从输入端“D”重新切换回另一输入端“C”,并且驱动多路复用器81,82……,8s从RAM1选择数据,而不是从LUT选择数据,从而驱动装置500再次工作在阶段1。
用来实现上述方法的装置的一个实施例在图5中示出。图5阐明如何实现r×n的U-矩阵A与n-维向量X的乘积。矩阵的表示包含0或1,其中0对应于1而1对应于-1。
在该例中,向量是实数的且v个比特用于每个分量。在随后的建立中,矩阵A被存储在元件1(RAM或ROM)中,而向量X被存储在元件2(RAM或ROM)中。矩阵和向量可以从任何内部或外部设备产生,譬如存储器设备或同步源,如ADC或某些序列发生器等。
在阶段1中,来自元件1&2的输入信号按照来自元件3的地址被***元件13,其中各地址包含log2n列的有效位。
此外,计数器用作大小为(C-n)×(1+r+r)的异步ROM(元件5)的地址发生器。计数器的所有比特进入元件4,元件4是检查当前计数是否大于n的比较器。元件5包含三个字段:符号、源、目的。ROM处的行序应该使阶段2的第一操作由计数器在n次循环后引发。
为语法的目的,我们将定义s=r-1。数据总线从元件1的比特D1-Ds分别进入元件6_1-6_s(它们是反相器)。元件71-7s按照D0的状态在D1-Ds和61-6s之间进行选择。
(D0=0=>7_1-7_s=D1-Ds,D0=1=>71-7s=61-6s)
元件8_1-8_s按照在元件4(阶段1_2n)中比较器输出端的状态在7_1-7_s和元件5的log2(n)个LSB的输出(add_a=目的)之间进行选择。阶段1_2n=0=>8_1-8_s=add_a,阶段1_2n=1=>8_1-8_s=7_1-7_s。
元件8_r在元件5的“0”到r比特(add_a MSB)之间进行选择。阶段1_2n=0=>8_r=add_a MSB,阶段1_2n=1=>8_r=0。来自8_1-8_r的输出被用作元件13的第一地址总线,该总线是大小为(2r-1+r-1)×(V+log2n)的双端RAM。该地址定义了data_a总线,它是来自元件13的输出,并且也是作为元件13输入的data_in总线的目的。
Add_b(元件5的输出(源字段))是元件13的第二地址总线(该地址控制作为元件13的输出的data_b总线)。
符号是从元件13输出的单个比特,它在元件12(它是乘法器)中乘以data_b。
作为关于元件13的输入的data_in总线从元件11到达,元件11是把data_a和元件9的输出相加在一起的加法器。data_in以同步方式进入add_a目的单元,而data_a和data_b的读操作是异步的。
在元件13动作之前,它通过***零被初始化。元件9在元件10和元件12的输出之间进行选择。元件10把来自元件2的数据总线与元件1的LSB相乘。在C次循环之后形成的向量被存储元件13中地址0以及地址2r-1到(2r-1+r-2)的位置处。
本发明的各种变化和修改对于本领域的技术人员来说是显而易见的。从而本发明可以以其它特定形式作为实施例,而无须背离本发明的精神或基本特性。详细实施例仅仅是说明性且非限制性的,因此本发明的范围由所附权利要求来表示,而非由上述说明表示。与权利要求相当的意义和范围中产生的变化在本发明的范围之内。
Claims (15)
1 一种改进线性变换性能效率的方法,该变换用实数或复数或有限字段上的至少一个n-维输入向量的r×n矩阵来表示,其特征在于包括:
在存储器中存储每个被省去的行和每个被选择的行之间的比;
省去所述矩阵的零值行和输入向量的相应标量分量;
标准化所述矩阵的每一列;
从标准化的矩阵中相等列的组中产生经修改的向量;
产生经修改的矩阵;以及
获得输出向量。
2.如权利要求1所述的方法,其特征在于还包括把变换矩阵分割为几个子矩阵,并且通过合并从每个子矩阵的乘积产生的输出向量而获得输出向量。
3.如权利要求2所述的方法,其特征在于,经修改的矩阵包含所述变换矩阵的行的子集。
4.如权利要求3所述的方法,其特征在于还包括把输入向量分割为几个子向量,以便每个子向量对应于一个子矩阵,并且其中输出向量是通过把从每个子矩阵的乘积产生的输出向量相加而获得。
5.如权利要求1所述的方法,还包括把经修改的矩阵分割为几个子矩阵,其特征在于,输出向量是由相应的子向量通过把从每个子矩阵的乘积产生的输出向量相加而获得。
6.如权利要求1所述的方法,其特征在于还包括通过把所述矩阵的每一列乘以先导元素的倒数而使各列标准化。
7.如权利要求1所述的方法,其特征在于,输出向量是矩阵和输入向量的乘积。
8.如权利要求1所述的方法,其特征在于还包括标识标准化矩阵中各相等列的组,并把唯一的位置附加到每个被标识的组。
9.一种用于执行线性变换的装置,其特征在于包括:
接收输入数据和预定数据的第一和第二输入端;
作用在输入数据和预定数据上的变换电路;
连接于第一存储器的控制和地址发生电路,它为访问所述存储器的单元产生相应的地址,并且用于控制数据接收模式和数据处理模式间的选择,其中数据接收模式中,数据通过所述第一输入端被接收,而在数据处理模式中,经由第一输入端的输入数据的到达被锁定;以及
用于控制装置的操作定时的计数器电路。
10.如权利要求9所述的装置,其特征在于,变换电路用变化数据的相应元素与输入数据的每个元素相乘。
11.如权利要求10所述的装置,其特征在于,变换电路包括存储乘法结果的存储器。
12.如权利要求9所述的装置,其特征在于,变换电路包括加法和累加电路。
13.如权利要求9所述的装置,其特征在于还包括在数据接收模式和数据处理模式间选择的多路复用器电路。
14.如权利要求9所述的装置,其特征在于,控制和地址生成电路包括:
存储预先编程的处理和控制数据的第二存储器;
在数据接收模式和数据处理模式间切换的比较器电路。
15.如权利要求14所述的装置,其特征在于,控制和地址生成电路还包括:
第一组多路复用器,每个都具有至少一个用于接收变换数据的直接输入端,以及变换数据通过相应的反相器被送入的另一个输入端,所述第一组被控制,以所述变换数据提供的预定值来传送变换数据或者经倒置的变换数据;
第二组多路复用器,每个都具有至少一个连接到从所述第一组多路复用器中选出的相应的多路复用器的输出端的输入端,以及另一个连接到所述第二存储器的输入端,所述第二组由所述比较器电路控制,以便通过把来自所述第一组的每个多路复用器的输出传送到来自所述第二组的相应多路复用器的输出端来把第一地址提供给第一存储器,或者通过传送存储在所述第二存储器中的数据来把第二地址的至少一部分提供给第一存储器;以及
多路复用器,在所述数据处理模式中结合所述第二组多路复用器进行操作,具有一个未连接的输入端和一个连接到所述第二存储器的输入端,并且由所述比较器电路控制,从而提供所述第二地址的剩余部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/680,665 US6895421B1 (en) | 2000-10-06 | 2000-10-06 | Method and apparatus for effectively performing linear transformations |
US09/680,665 | 2000-10-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1478234A true CN1478234A (zh) | 2004-02-25 |
Family
ID=24732004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA018199798A Pending CN1478234A (zh) | 2000-10-06 | 2001-10-05 | 用于有效地执行线性变换的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6895421B1 (zh) |
JP (2) | JP3744896B2 (zh) |
KR (1) | KR100522262B1 (zh) |
CN (1) | CN1478234A (zh) |
SG (1) | SG149682A1 (zh) |
TW (1) | TW522316B (zh) |
WO (1) | WO2002029611A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238993A (zh) * | 2013-06-11 | 2014-12-24 | 亚德诺半导体技术公司 | 微处理器集成电路的向量矩阵乘积加速器 |
CN110073330A (zh) * | 2016-12-13 | 2019-07-30 | Arm有限公司 | 复制元素指令 |
US11947962B2 (en) | 2016-12-13 | 2024-04-02 | Arm Limited | Replicate partition instruction |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6968305B1 (en) * | 2000-06-02 | 2005-11-22 | Averant, Inc. | Circuit-level memory and combinational block modeling |
DE10054517B4 (de) * | 2000-11-03 | 2006-01-12 | Rohde & Schwarz Gmbh & Co. Kg | Verfahren zur Synchronisation eines CDMA-Signals |
US7447967B2 (en) * | 2001-09-13 | 2008-11-04 | Texas Instruments Incorporated | MIMO hybrid-ARQ using basis hopping |
US7450631B2 (en) * | 2001-10-26 | 2008-11-11 | Intel Corporation | Metric correction for multi user detection, for long codes DS-CDMA |
US7002960B1 (en) | 2001-10-30 | 2006-02-21 | At&T Corp. | Traffic matrix computation for packet networks |
US7743139B1 (en) | 2001-10-30 | 2010-06-22 | At&T Intellectual Property Ii, L.P. | Method of provisioning a packet network for handling incoming traffic demands |
US7756085B2 (en) * | 2001-11-20 | 2010-07-13 | Qualcomm Incorporated | Steps one and three W-CDMA and multi-mode searching |
US7043514B1 (en) * | 2002-03-01 | 2006-05-09 | Microsoft Corporation | System and method adapted to facilitate dimensional transform |
US7321915B2 (en) * | 2002-10-29 | 2008-01-22 | Broadcom Corporation | Method and apparatus for efficient matrix multiplication in a direct sequence CDMA system |
US7620674B2 (en) * | 2003-03-07 | 2009-11-17 | Sensys Medical, Inc. | Method and apparatus for enhanced estimation of an analyte property through multiple region transformation |
EP1684441A1 (en) * | 2003-11-06 | 2006-07-26 | Yokohama TLO Company, Ltd. | Communication method, transmission signal forming method, and data structure of transmission signal |
TWI276312B (en) * | 2004-05-28 | 2007-03-11 | Ind Tech Res Inst | Apparatus for generating 2D spreading code and method for the same |
US20060277041A1 (en) * | 2005-06-06 | 2006-12-07 | Stig Stuns | Sparse convolution of multiple vectors in a digital signal processor |
US7685219B2 (en) * | 2006-03-31 | 2010-03-23 | Intel Corporation | Parallel systolic CORDIC algorithm with reduced latency for unitary transform of complex matrices and application to MIMO detection |
US7596534B2 (en) * | 2006-06-15 | 2009-09-29 | Microsoft Corporation | Computer implemented methods for solving difference and non-difference linear constraints |
US7796058B2 (en) * | 2007-02-12 | 2010-09-14 | Xyratex Technology Limited | Method and apparatus for data transform |
JP5092897B2 (ja) * | 2008-05-26 | 2012-12-05 | 富士通株式会社 | データ移行処理プログラム、データ移行処理装置およびデータ移行処理方法 |
US8453116B2 (en) | 2008-11-24 | 2013-05-28 | Microsoft Corporation | Efficient invariant inference for program verification |
US8516027B2 (en) * | 2010-04-30 | 2013-08-20 | Src, Inc. | Method and system for bit stacked fast Fourier transform |
CN102521211B (zh) * | 2011-11-17 | 2014-09-10 | 华南理工大学 | 一种求解有限域上线性方程组的并行装置 |
KR102098247B1 (ko) | 2013-11-25 | 2020-04-08 | 삼성전자 주식회사 | 메모리 시스템에서 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치 |
US20160188724A1 (en) * | 2014-12-24 | 2016-06-30 | Facebook, Inc. | Tag prediction for content based on user metadata |
US20160188592A1 (en) * | 2014-12-24 | 2016-06-30 | Facebook, Inc. | Tag prediction for images or video content items |
JP6321216B2 (ja) * | 2015-01-15 | 2018-05-09 | 日本電信電話株式会社 | 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム |
WO2019023220A1 (en) * | 2017-07-24 | 2019-01-31 | Iowa State University Research Foundation, Inc. | SYSTEMS AND METHODS FOR INVERTING Z-TRANSFORMATION OF CHIRP SIGNAL IN O TIME (N LOG N) AND O (N) MEMORY |
CN108171221A (zh) * | 2018-02-02 | 2018-06-15 | 师阳 | 一种基于像素值计算的并行化图像采集方法及装置 |
US20210312261A1 (en) * | 2020-04-02 | 2021-10-07 | Huawei Technologies Co., Ltd. | Neural network search method and related apparatus |
US11775494B2 (en) * | 2020-05-12 | 2023-10-03 | Hubspot, Inc. | Multi-service business platform system having entity resolution systems and methods |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3920978A (en) * | 1974-02-25 | 1975-11-18 | Sanders Associates Inc | Spectrum analyzer |
US4055756A (en) * | 1975-02-03 | 1977-10-25 | Societe Anonyme De Telecommunications | Image coder-decoder using a matrix transform with weighted contribution of several points of the image to the formation of one point of the transform |
US4138730A (en) * | 1977-11-07 | 1979-02-06 | Communications Satellite Corporation | High speed FFT processor |
JPS60250473A (ja) | 1984-05-25 | 1985-12-11 | Hitachi Ltd | ベクトルプロセツサ |
IT1207346B (it) * | 1987-01-20 | 1989-05-17 | Cselt Centro Studi Lab Telecom | Sformata coseno discreta a coeffi circuito per il calcolo della tra cienti quantizzati di campioni di segnale numerico |
US4914615A (en) | 1987-09-04 | 1990-04-03 | At&T Bell Laboratories | Calculator of matrix products |
JP2690932B2 (ja) | 1988-03-18 | 1997-12-17 | 株式会社日立製作所 | ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム |
US5267185A (en) | 1989-04-14 | 1993-11-30 | Sharp Kabushiki Kaisha | Apparatus for calculating matrices |
JPH0748207B2 (ja) | 1989-04-14 | 1995-05-24 | シャープ株式会社 | 行列演算装置 |
US5093801A (en) * | 1990-07-06 | 1992-03-03 | Rockwell International Corporation | Arrayable modular FFT processor |
US5357454A (en) | 1991-07-25 | 1994-10-18 | Ericsson Ge Mobile Communications Holding, Inc. | Fast walsh transform processor |
JP3323950B2 (ja) * | 1992-03-17 | 2002-09-09 | サン・マイクロシステムズ・インコーポレーテッド | デジタル画像処理システムでidctを実施する方法及びそのためのidctプロセッサ |
US5528528A (en) * | 1993-03-29 | 1996-06-18 | Intel Corporation | Method, apparatus, and system for transforming signals |
US5561618A (en) | 1993-12-22 | 1996-10-01 | Qualcomm Incorporated | Method and apparatus for performing a fast Hadamard transform |
US5481487A (en) * | 1994-01-28 | 1996-01-02 | Industrial Technology Research Institute | Transpose memory for DCT/IDCT circuit |
US5574675A (en) | 1994-03-22 | 1996-11-12 | Industrial Technology Research Laboratories | State-controlled half-parallel array walsh transform |
KR19990022657A (ko) * | 1995-06-01 | 1999-03-25 | 나시모토 류조 | 이산코사인변환 연산회로 |
US5870378A (en) | 1996-08-20 | 1999-02-09 | Lucent Technologies Inc. | Method and apparatus of a multi-code code division multiple access receiver having a shared accumulator circuits |
DE69837299T2 (de) * | 1997-01-22 | 2007-06-28 | Matsushita Electric Industrial Co., Ltd., Kadoma | System und Verfahren zur schnellen Fourier-Transformation |
JPH10308672A (ja) | 1997-05-07 | 1998-11-17 | Nippon Samusun Kk | 復号演算方法及び復号演算器 |
US5831883A (en) * | 1997-05-27 | 1998-11-03 | United States Of America As Represented By The Secretary Of The Air Force | Low energy consumption, high performance fast fourier transform |
US5841395A (en) * | 1997-09-12 | 1998-11-24 | Raytheon Corporation | Localized interference nulling preprocessor |
KR100275933B1 (ko) * | 1998-07-14 | 2000-12-15 | 구자홍 | 엠펙디코더의 역이산여현변환장치 |
US6735610B1 (en) * | 1999-04-29 | 2004-05-11 | Walter E. Pelton | Apparatus, methods, and computer program products for determining the coefficients of a function with decreased latency |
-
2000
- 2000-10-06 US US09/680,665 patent/US6895421B1/en not_active Expired - Fee Related
-
2001
- 2001-10-05 TW TW090124691A patent/TW522316B/zh not_active IP Right Cessation
- 2001-10-05 CN CNA018199798A patent/CN1478234A/zh active Pending
- 2001-10-05 JP JP2002533113A patent/JP3744896B2/ja not_active Expired - Fee Related
- 2001-10-05 WO PCT/US2001/042537 patent/WO2002029611A2/en active IP Right Grant
- 2001-10-05 SG SG200503562-1A patent/SG149682A1/en unknown
- 2001-10-05 KR KR10-2003-7004937A patent/KR100522262B1/ko not_active IP Right Cessation
-
2005
- 2005-04-05 US US11/099,838 patent/US7337204B2/en not_active Expired - Lifetime
- 2005-04-12 JP JP2005114408A patent/JP2005302033A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238993A (zh) * | 2013-06-11 | 2014-12-24 | 亚德诺半导体技术公司 | 微处理器集成电路的向量矩阵乘积加速器 |
CN104238993B (zh) * | 2013-06-11 | 2018-05-04 | 亚德诺半导体集团 | 微处理器集成电路的向量矩阵乘积加速器 |
CN110073330A (zh) * | 2016-12-13 | 2019-07-30 | Arm有限公司 | 复制元素指令 |
CN110073330B (zh) * | 2016-12-13 | 2023-09-08 | Arm有限公司 | 复制元素指令 |
US11947962B2 (en) | 2016-12-13 | 2024-04-02 | Arm Limited | Replicate partition instruction |
US11977884B2 (en) | 2016-12-13 | 2024-05-07 | Arm Limited | Replicate elements instruction |
Also Published As
Publication number | Publication date |
---|---|
JP2005302033A (ja) | 2005-10-27 |
KR20030094213A (ko) | 2003-12-11 |
TW522316B (en) | 2003-03-01 |
WO2002029611A9 (en) | 2003-02-13 |
WO2002029611A3 (en) | 2003-04-17 |
WO2002029611A2 (en) | 2002-04-11 |
US7337204B2 (en) | 2008-02-26 |
JP3744896B2 (ja) | 2006-02-15 |
JP2004511046A (ja) | 2004-04-08 |
US20050177607A1 (en) | 2005-08-11 |
US6895421B1 (en) | 2005-05-17 |
KR100522262B1 (ko) | 2005-10-19 |
SG149682A1 (en) | 2009-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1478234A (zh) | 用于有效地执行线性变换的方法和装置 | |
CN1264085C (zh) | 一种用于执行多媒体应用的操作的装置、***和方法 | |
CN1265280C (zh) | 扩展整数的计算域的范围 | |
CN1129066C (zh) | 处理器及其运算方法以及数据处理器 | |
CN1160940C (zh) | 代码生成方法、检测方法及其设备、水印嵌入器和检测器 | |
CN101061526A (zh) | 密码处理运算装置 | |
CN1186714C (zh) | 高基除法器及方法 | |
CN1095114C (zh) | 算术机逻辑单元的运算方法以及算术和逻辑单元 | |
CN1269126C (zh) | 数据处理装置及数据记录媒体 | |
CN1149496C (zh) | 自适应视频信号运算处理装置 | |
CN1668995A (zh) | 用于改善伪随机数发生器的输出的不可预测性的方法 | |
CN1620756A (zh) | 滤波装置、接收装置、发送装置、扩频调制装置、伪随机数序列的输出装置、滤波方法、接收方法、发送方法、扩频调制方法、伪随机数序列的输出方法及程序 | |
CN1726669A (zh) | 数据分割方法和使用异或运算的装置 | |
CN101061474A (zh) | 信号处理的矩阵定值方法和装置 | |
CN1750003A (zh) | 信息处理装置,信息处理方法,和程序 | |
CN1977250A (zh) | 进行加密或解密的计算机***和计算机程序 | |
CN1062426A (zh) | 归约处理器 | |
CN1922890A (zh) | 分段可逆视频编码方法、分段可逆视频译码方法、分段可逆视频编码装置、分段可逆视频译码装置和它们的程序及程序记录媒体 | |
CN1200571C (zh) | 正交变换、逆正交变换方法及装置、编码、解码方法及装置 | |
CN1567174A (zh) | 对象表示和处理的方法及其装置 | |
CN1653447A (zh) | 报告NxM离散余弦变换的方法 | |
CN1280726A (zh) | 优化椭圆曲线密码计算的变换方法 | |
CN1918844A (zh) | 基于保密共享方案的保密信息管理方案 | |
CN1748199A (zh) | 逻辑运算电路、逻辑运算装置和逻辑运算方法 | |
CN1890916A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |