快速旋转的伪随机噪声发生器的制作方法

文档序号:7736646阅读:225来源:国知局
专利名称:快速旋转的伪随机噪声发生器的制作方法
背景领域本发明通常涉及通信,更具体地说,涉及一种新颖、改进的方法和装置,该方法和装置用于生成由一个或多个伪随机噪声(PN)序列组成的PN序列,并具有从一个偏移量迅速旋转到另一个偏移量的能力。
背景被广泛部署的无线通信系统提供各种类型的通信(例如,语音、数据等)。这些系统可以基于码分多路访问(CDMA)、时分多路访问(TDMA)或一些其他的调制技术。CDMA系统提供胜过其他类型的系统的某些优点,包括系统容量增加。
可以将CDMA系统设计成支持一个或多个CDMA标准,例如,(1)“关于双重模式宽频带扩频单元系统的TIA/EIA-95-B移动站-基站兼容性标准”(IS-95标准);(2)“关于双重模式宽频带扩频单元移动站的TIA/EIA-98-C推荐的最低标准”(IS-98标准);(3)名为“第3代合作方案”(3GPP)的社团所提供的、并包括在文档号码为3G TS 25.211、3G TS 25.212、3G TS 25.213和3G TS 25.214的一组文档中得到具体表现的标准(W-CDMA标准);(4)名为“第3代合作方案2”(3GPP2)的社团所提供的、并在一组文档中得到具体表现的标准(cdma2000标准),这组文档包括《关于cdma2000扩频系统的TR-45.5物理层标准》、《关于cdma2000扩频系统的C.S0005-A上层(层3)发信号标准》和《C.S0024cdma2000高速率分组数据空中接口规格》;以及(5)一些其他的标准。这些指定的标准引入于此,用作参考。执行cdma2000标准的“高速率分组数据”规范的系统在这里称作“高数据速率(HDR)系统”。该HDR系统在TIA/EIA-IS-856《CDMA2000高速率分组数据空中接口规范》中得到证明,并被于此,用作参考。所提议的无线系统也使用单一空中接口来提供HDR和低数据速率的组合服务(例如,语音服务和传真服务)。
通常在用于传播传输数据(包括传送的导频信号)的CDMA系统中使用伪随机噪声(PN)序列。CDMA接收器通常采用“搜寻”(RAKE)接收器。搜寻接收器通常由一个或多个搜索器以及两个或更多的多路径解调器(查找器)组成,这些搜索器用于定位来自邻接基站的直接的和多路径导频,这些多路径解调器(查找器)用于接收并组合来自那些基站的从信息信号。
在直接序列CDMA系统的设计中所固有的一项要求是,接收器必须使其PN序列与基站的PN序列对齐。传送PN序列的单一值所需要的时间称作“码片(chip)”,这些码片变化的速率称作“码片速率”。例如,在IS-95中,每个基站和订户单元使用确切相同的PN序列。基站通过在其PN序列的生成过程中插入唯一时间偏移量,将自身与其他基站区别开来。在IS-95系统中,所有基站都被偏移64个码片的若干整数倍。订户单元通过将至少一个查找器分配给基站,来与那个基站进行通信。所分配的查找器必须将合适的偏移量插入其PN序列,以便与那个基站进行通信。也可以通过为每个基站使用唯一PN序列而不是使用相同PN序列的偏移量,来区分基站。在这种情况下,查找器将会调整其PN发生器,以便为基站产生合适的分配给该基站的PN序列。调整PN序列中的偏移量被称作“旋转”。
早期的CDMA PN发生器通常包括线性反馈移位寄存器(LFSR)。当不旋转时,每一码片将会启用该LFSR一次,以产生一种新的状态并输出PN序列中的一个新的码片。为了执行旋转,要么将会禁止LFSR以执行延缓,要么每一码片将会两次允许LFSR执行推进。这样,简单的PN发生器可能能够按1码片/码片时间的速率在两个方向中的任何一个方向上进行旋转。如果LFSR的时钟频率是一个更高的速率(例如,是码片速率的8倍),则可以获得少量的改进。然后,可以按8码片/码片时间的速率来执行推进(因为可以为发生在码片中的所有8个周期激活允许)。延缓将仍限制在1个延缓/码片。可以将控制逻辑加入这种基于LFSR的系统,以便可以通过仅仅将偏移量提供给PN发生器并将进行旋转的命令提供给那个偏移量,来指引旋转。如刚才所述,在旋转早期PN发生器中的旋转可能一直是通过连续移动PN状态来加以执行的,而在整个下文中通常使用术语“旋转”来识别PN序列中产生所需偏移量的任何过程。
当每个查找器能够迅速将其PN序列与传送的PN序列对齐时,总系统性能得到提高。这一点有各种原因。在最初获取时,快速旋转的PN发生器将会减少从查找器指派到解调的时间。如此装备的搜索器将能够更快地定位邻接基站,这样,越区切换将会更有效率和更有效。当查找器能够迅速对PN偏移量的变化作出响应时,迅速渐强和渐弱的强大的多路径信号更有可能被解调并被有效地加以组合。所以,需要利用能够从PN序列中的一个偏移量迅速转变为另一个偏移量的PN序列。
标题为《快速旋转的伪随机噪声序列发生器》的第6,154,101号美国专利中揭示了一种这样的PN发生器,该美国专利被受让于本发明的受让人。这种PN发生器为从单一线性反馈移位寄存器(LFSR)中生成的PN序列(例如,IS-95和类似的系统所需要的PN序列)提供迅速的旋转。这种PN发生器包含LFSR和参考计数器,其中的每一个都是适于承载的。使用自由运行计数器来保持参考时间,并且将所需的偏移量加入那个参考时间,以提供目标位置。然后,使用查找表,来寻找对应于该目标位置的PN状态和PN计数。如果该表被完全载入,那么,该PN计数就是这个目标位置,并且对关联的PN状态进行检索。如果该表格没有被完全载入,则该目标位置可能不存在于这个表格中。在这种情况下,具有关联的PN状态的最接近的PN计数值被进行定位。然后,将该PN状态和PN计数同时载入LFSR和参考计数器。因此,PN发生器现在已在一瞬间旋转到自由运行计数器与PN计数值之间的差所提供的偏移量。在IS-95中,通过使用不同的掩码,I PN序列和Q PN序列正在从单一LFSR中生成。这样,这种技术本质上使I PN序列和Q PN序列保持对齐。
要使PN发生器确切地达到目标位置所提供的所需偏移量,可能需要某种残留旋转。有关这一点的一个原因是如上所述,查找表可能只包含一个子集的可能的PN状态,因此,瞬间负载的旋转只接近该目标。另一个原因是在阅读自由运行计数器、使用查找表与装载各个结果之间可能有可略微变化的时延。可以利用前面所描述的传统的旋转方法,来实现这种残留旋转。
前面所描述的技术非常适用于可以使用单一LFSR来生成的PN序列。还有本身从其他PN序列(例如,金码(Gold codes))中所生成的其他种类的PN序列。W-CDMA标准是使用用于I和Q PN传播的金码的CDMA系统的一个例子。通过对两个LFSR的输出进行合计(“异或”逻辑运算(XORing)),来生成金码。主张或不主张这些LFSR的信号推进或延缓的传统的旋转技术也适用于金码,但会遇到以上所描述的同样的系统限制问题。
当需要对于许多唯一码的支持时,刚才所描述的概括的快速旋转技术的费用会变得非常高。关于W-CDMA PN序列的情况也是如此。有512个原代码要支持,加上每个原代码的额外15个二级代码。也有两个18位LFSR,所以,需要为每个潜在的目标偏移量存储36个位。如果需要对于每一序列的适当数量的目标偏移量的支持,则支持这个例子所需要的查找表的尺寸会迅速变得非常大。而且,当需要同时加载一个或多个LFSR时,存在被引入的同步问题。
所以,该技术领域中需要改进的快速旋转多序列PN生成技术,用于提高系统性能并将关联的硬件管理费用减到最少。
概述这里所揭示的实施例提出了对于基于多序列的PN发生器的快速旋转的需求。在一个方面中,LFSR状态和参考计数器状态被载入其对应的部件,以便在各种状态之中保持一致性。在另一个方面中,揭示了各种方法,这些方法用于响应于唯一代码中的所需偏移量来确定LFSR状态和计数器值。在这些方法之中,通过屏蔽技术来执行LFSR状态的矩阵乘法和推进LFSR状态的生成。也介绍了其他方法。这些方面具有用有效率的方式来减少转换时间的好处,这转变成获取速度提高、对多路径信号的查找器锁定更快、数据吞吐量增加、功率降低和总系统容量改善。这里所描述的各种技术同等地应用于入口点和入口终端。也介绍了本发明的其他各个方面。
本发明提供了执行本发明的各个方面、实施例和特点的各种方法和系统单元,下文将详细描述。
附图简述通过以下所提供的详细描述并结合附图,本发明的这些特点、性质和优点将会更加一目了然。在所有这些附图中,相同的标号所表示的意义相同;并且,在这些附图中

图1是能够支持许多用户的无线通信系统的一般框图;图2描绘一种接收器的框图;图2A描绘概括的PN发生器逻辑;图3是根据本发明而配置的PN发生器逻辑的一个实施例;图4是可配置成用于计算LFSR状态的硬件加速器的矩阵乘法器;图5描绘对图3中的PN发生器逻辑进行的修改;图6是本发明的一个实施例中用于计算LFSR状态的概括的硬件配置;图7结合本发明的示范实施例展示各种PN序列与关联的掩码之间的关系。
详细描述图1是支持许多用户的无线通信系统100的图表,它可以执行本发明的各个方面。系统100可设计成支持一个或多个CDMA标准和/或设计(例如,IS-95标准、cdma2000标准、HDR规范)。为简单起见,示出系统100包括与两个入口终端106(也可以被称作“远程终端”或“移动站”)进行通信的三个入口点104(也可以被称作“基站”)。该入口点及其覆盖区域经常被共同称作“小区”。
根据正在被执行的CDMA系统,每个入口终端106可以在任何给定的时刻与前向链接上的一个(或可能是多个)入口点104进行通信,并且,可以根据该入口终端是否处于软越区切换状态,来与反向链接上的一个或多个入口点进行通信。该前向链接(即下行线)指的是从入口点到入口终端的传输,该反向链接(即上行线)指的是从入口终端到入口点的传输。
为清楚起见,在描述本发明的过程中所使用的例子将会把入口点假定为信号的发信方,把入口终端假定为那些信号(即前向链接上的信号)的接收器和获取器。精通该技术的人将会理解如这里所述,可以将入口终端和入口点装备成传送数据,并且,本发明的各个方面也可应用于那些情况中。这里专门使用单词“示范”,意思是“用作例子、实例或例证”。这里被描述为“示范”的任何实施例不一定要被解释成比其他实施例更优先或更有利。
W-CDMA标准定义用于加扰下行线的两个金码序列——一个用于同相分量(I),另一个用于正交(Q)。可以利用两个18位LFSR来生成I序列,第一个使用多项式1+X7+X18,另一个使用多项式1+X5+X7+X10+X18。I序列是来自每个LFSR的抽头0的“异或”(XOR)。通过将I序列延迟131,072个码片,来建立Q序列。利用另外两个LFSR来生成它,尽管技术娴熟的技工将会认识到用来生成这些I序列的两个LFSR可以再加以使用。通过屏蔽这两个LFSR(具有各自的掩码001000000001010000和001111111101100000),来实现这一点。通过使用GF(2)加法,或者仅仅通过使用“异或”功能,来合计这两个LFSR的屏蔽输出。对来自这两个LFSR的合成的总计掩码输出进行“异或”逻辑运算,以建立Q序列。
如前所述,W-CDMA利用唯一代码来区别基站。通过利用这两个LFSR中的每个LFSR中的各组唯一始态,来实现这一点。然后把生成的PN序列舍位至38,400码片长度。W-CDMA标准规定原代码和二级代码,每种代码具有第一个LFSR的偏移量所指定的唯一始态;并且,为第二个LFSR的始态利用全一(allones)。这样,通过只为每个唯一代码要求一个18位初态而不是两个18位初态,来简化该标准;但是,本发明的原理同等地应用于每一代码有两个唯一初态的更普通的情况。本发明应用于由W-CDMA标准规定的代码,更广泛地应用于根据两个或多个序列(利用唯一的LFSR(或其相等物)来生成)的输出所编制的任何PN序列的生成。
图2描绘了被配置成本发明的一个实施例的接收器200的框图。为清楚起见,只示出涉及本发明的接收器200的一个子集块。为本文假定微处理器210大体上正在为接收器200执行处理和控制,并且,数字信号处理器(DSP)220提供各种解调处理的更特定的控制,包括查找器解调、搜索、组合等。这些细节没有示出。下文描述关于旋转和PN生成的处理部分。这种假定的处理划分只用于进行描述——精通该技术领域的人将会认识到可以根据本发明的原理来执行处理器(无论是微处理器,还是DSP)之中的各种处理划分。
微处理器210通过将PN_CODE和TARGET_PN_POS传递给DSP220,来启动旋转。PN_CODE对应于特定基站的PN代码,将要生成PN序列来对该PN代码进行解调。如上所述,在W-CDMA系统中,PN_CODE将会是相对于Q序列的I序列中的偏移量。TARGET_PN_POS将识别由PN_CODE(PN发生器必须旋转到该PN_CODE)识别的代码中的偏移量。微处理器210通常将会确定启动来自搜索过程的结果的旋转的必要性,或者确定为处于越区切换情况的邻接基站传递偏移量和代码的系统命令。这些细节(未示出)在本发明的范围以外。
DSP通过将各种参数和装入命令传递给PN发生器逻辑230,来执行来自微处理器210的旋转指示。下文详细地描述了这些参数和用于处理它们的各种程序。在部分这些程序中,结合DSP220来使用加速器250,以制定部分这些参数。利用虚线来绘制加速器250,以指出它是任选的。
自由运行计数器240是每一码片增量一次的计数器,其周期性由正在被生成并用于去加扰(descrambling)的PN序列的长度来加以确定。在W-CDMA系统中,那个周期是38,400个码片,当该系统初始化时,这个计数器被重置,并且随后无期限地循环。使用其输出来提供定时参照。DSP220和PN发生器逻辑230都可以获得自由运行计数器240的定时参照。
图2A描绘了PN发生器逻辑230的概括的实施例。在涉及图3、图5和以下所述的各种参数确定程序说明的论述中,将更加完整地详述PN发生器逻辑230。PN发生器逻辑230包含名为LFSR1 232和LFSR2 234的两个LFSR,其中的每个LFSR都生成被称作“M序列”的PN序列。PN发生器逻辑230的所需输出是一个或多个PN序列,这些PN序列从那两个M序列中被构制而成并在M序列组合块238中被加以确定。通常,在CDMA系统中,I PN序列和Q PN序列是所需输出。以上已详细描述了W-CDMA序列的各个所需输出。
M序列组合块238中的任何特定PN序列的生成自然地要求LFSR1 232和LFSR2 234具有协同状态。这样,关于特定的PN序列输出,LFSR1 232和LFSR2234必须同步更新。通常,每一码片,这些LFSR更新一次。如果它们不同步更新,那么,将会产生与所需PN序列不同的PN序列。为了达到那个目的,PN发生器逻辑230也包含参考计数器236,参考计数器236与这两个LFSR同步地进行更新,并且,其输出所提供的参考指出每个M序列的状态的位置或指数以及(因而)出自M序列组合块238的合成PN序列的指数或位置。对于精通该技术领域的人而言,将会显而易见当在PN输出的生成过程中使用两个以上的LFSR时,本发明的原理可全力加以应用;但是,若要对这些原理进行有效的说明,只要求在各种技术和实施例的论述中谈及两个LFSR。
如图2A所示,PN_STATE1、PN_STATE2和PN_COUNT分别是到LFSR1 232、LFSR2 234和参考计数器236的输入。可以利用这些各自的输入来装载这三个部件中的每个部件,从而临时取代这些部件的固有的LFSR或计数器作用。利用这种方式,可以在一瞬间将该参考计数器、M序列和最后得到的PN序列移到新的位置;或者,换言之,可以在一瞬间加以旋转。精通该技术领域的人将会清楚必须用这样一种方法来执行PN_STATE1、PN_STATE2和PN_COUNT的写操作,以便在那些值之中保持一致性。要实现这一点,有各种方法。一种方法是确保在计数器和LFSR都不会推进的时期内写入所有值。另一种方法是在装载这些值的同时,禁止使用计数器和LFSR。还有一种方法是预补偿在写序列期间所引入的任何歪斜,以便在装载所有这些值之后,它们具有曾经想要的相对关系。(另一些选择性实施例不要求LFSR1与LFSR2之间有瞬间的同步性,但将会提供一种用于聚回到同步状态的方法和/或装置。这些实施例并没有不一致,因为在达到同步之前,它们的合成输出将不会是有效的所需输出。以下根据图5来详细讨论这一点。)回去参照图2,这三个输入——PN_STATE1、PN_STATE2和PN_COUNT在从DSP220被传递到PN发生器逻辑230的各个参数之中。通过根据刚才所描述的同步性要求来计算这些内容,将讨论以下各种参数计算方法。(关于以上简要讨论的选择性实施例以下将更全面地加以描述(不符合瞬间的同步性要求),PN_COUNT可能需要在两个参数PN_COUNT1和PN_COUNT2中被加以传递,以便分别符合根据PN_STATE1和PN_STATE2的指数或位置。)除了这三个输入以外,可能需要根据特定的实施来传递各种其他的参数。关于截取序列,不允许这些LFSR循环通过由其中所包含的多项式规定的整个序列。这样,可能需要提供LFSR1_INIT_STATE和LFSR2_INIT_STATE,以便一旦达到该截取序列的末端,就确定这各个LFSR的适当的重新启动状态。如上所述,W-CDMA系统总是使用所有都是1的始态来载入LFSR2,因此,只需要传递LFSR1_INIT_STATE。经常是这种情况瞬间部分的旋转可能没有完全实现所需的旋转,因此,要执行任何必要的残留旋转,可以传递具有所需的最终旋转位置的参数TARGET_PN_POS。在各种实施例中,许多特点可以包含其他可编程元件,这些可编程单元将自然地需要(或者通过DSP220,或者通过微处理器210)进行初始化。一般而言,与旋转程序相比,这些参数相对是静态的。当在以下被介绍时,将适当地对它们进行描述。
关于DSP220中的旋转处理的概括程序(在微处理器210所发出的旋转命令之后)如下所述。
首先,DSP220从微处理器210接收旋转命令。该命令包括PN代码标识符PN_CODE,用于识别将要被生成的PN代码;以及目标PN位置TARGET_PN_POS,用于指出需要旋转的PN代码中的指数或位置。当必须生成并识别唯一代码序列时,需要PN_CODE。例如,如上所述,这样的一种类别的代码包括基于截取M序列的代码。但是,基于多个LFSR输出的其他种类的代码同样在本发明的范围以内。精通该技术领域的人将会知道如何修改下文中的原理来补偿这一点。
其次,DSP220读出自由运行计数器240,以确定被称作“FREE_COUNT”的那时的自由运行参照时间。然后,DSP220将TARGET_PN_POS加入FREE_COUNT,以确定所需的PN计数PN_COUNT,该PN计数将被载入参考计数器236。参考计数器236保持针对PN计数器230的参照时间,不会与自由运行参照时间FREE_COUNT相混淆。任何给定的实施例都可以采用许多PN计数器,每个PN计数器保持不同的偏移量,因此在其各自的参考计数器中保持不同的值。在这类实施例中,只需要单一的自由运行参考计数器。在典型的系统中,在执行这些计算的过程中可能会有某种延迟,因此,PN_COUNT根据计数器和在那个延迟期间所产生的LFSR更新可能会具有误差分量。
再次,根据PN_CODE和PN_COUNT,DSP220确定用于分别载入LFSR1和LFSR2、PN_STATE1和PN_STATE2的各种状态,这些状态对应于代码(由PN_CODE识别)中的所需的计数值(PN_COUNT)。以下将详细讨论用于确定PN_STATE1和PN_STATE2的各种程序。
第四,PN_COUNT、PN_STATE1和PN_STATE2分别载入参考计数器236、LFSR1232和LFSR2 234。通过使用诸如前面所描述的一些方法,用这样一种方式来装载这些值,以便保持它们之中的一致性。这样,实现了对PN_COUNT所识别的位置的瞬间旋转。
第五,通过旋转逻辑(在以下图3中详述)来实现任何残留旋转,以便将PN发生器230输出带到由TARGET_PN_POS识别的位置。DSP220将TARGET_PN_POS写入PN发生器逻辑230,这样,可以实现这一点。
图3描绘PN发生器逻辑230的一个实施例。为了说明示出高度的可配置性。PN发生器逻辑230有各种实施例,这些实施例不要求所有可配置参数都是可编程的。相反,这些参数中的许多参数将被固定在硬件内。
PN发生器逻辑230包含两个LFSR——LFSR1 330和LFSR2 350。LFSR1 330和LFSR2 350分别示出被标示为“多项式1”和“多项式2”的输入参数。在一些实施例中,允许每个LFSR的多项式是可编程的,这可能是有利的,尤其在所部署的PN发生器用于各种通信标准中时,更是如此。W-CDMA标准指示“多项式1”是1+X17+X18,“多项式2”是1+X5+X7+X10+X18。这些可能会被硬编码(hard coded),或者使其变成可编程。
所示出的每个LFSR具有标示为en的允许信号、标示为ld的负载信号和被标示为ld_val的负载值信号。当断言为允许信号,允许每个LFSR更新到下一种状态。当对允许解除断言(de-asserted)时,每个LFSR仍然处于其当前的状态。当断言为负载信号时,则取代惯例的LFSR更新,并使输入ld_val上的值写入该LFSR的当前状态。
所示出的参考计数器305具有相同的三个信号en、ld和ld_val。响应于这些信号的断言时,正好在参考计数器305中发生相同的行为。唯一的差异是参考计数器305循环通过增量为1的各种状态,直到达到终值(并重置该状态)为止。这些LFSR循环通过由所选择的多项式规定的状态。注意,每个LFSR330和350的en信号以及参考计数器305的en信号都连接。所以,参考计数器305提供是这些LFSR的当前状态的变址值,因为所有这三个信号都同时更新。
可以用两种方法将值写入这两个LFSR。如示出,“或”(OR)门335和355的输出分别连接到LFSR1 330和LFSR2 350的ld信号。当断言输入到“或”门335或355的输入时,将会发生装载。到“或”门335和355的一个输入称作是LOAD_SLEW任一个信号,并且,它也连接到参考计数器305的ld信号。LOAD_SLEW也连接到复用器340和360,以便分别控制到LFSR1 330和LFSR2 350上的ld_val的输入。当DSP220断言LOAD_VAL时,将PN_COUNT载入参考计数器305,PN_STATE1由复用器340来选择并被载入LFSR1 330,并且,PN_STATE2由复用器360来选择并被载入LFSR2 350。如上所述,这是用于瞬间旋转的方法;并且,所有这些装载都同时发生。
在参考计数器305、环绕式逻辑310和旋转逻辑315周围绘制虚线方框300,以便与以下图5中的对应的方框相对照。下文将根据图5来描述特性。
将值写入这些LFSR的第二种方法是当环绕式逻辑310已确定序列中的最后状态已达到以及初态将要被载入时。DSP220将各种初态存入分别标示为LFSR1_INIT_STATE和LFSR2_INIT_STATE的寄存器345和365。只有当在LFSR1330和LFSR2 350中所生成的M序列被截取时,才需要这个特点。否则,初态将总是在周期结束时自然重临。如上所述,W-CDMA系统使用被截取的M序列——18位LFSR序列的自然长度是(2^18)-1或262,143个码片,但是,所生成的实际序列被截取到38,400。虽然参考计数器305没有示出到ld_val的对应的交替输入,但是,不言而喻,一旦计数器已达到其终值,它们就滚改到0。在W-CDMA系统中,计数到38,400个码片之后,参考计数器305会滚改。由于38,400不是2的乘方,因此,典型的计数器实施将会核对值38,399,并在下一个被启用的时钟周期将状态滚改到零。如果情况需要的话,则可以修改参考计数器305,以便允许装载可编程的初态。环绕式逻辑310确定何时已达到终结状态,并断言此信号,通过“或”门335和355来将LFSR1_INIT_STATE和LFSR2_INIT_STATE分别载入LFSR1 330和LFSR2 350。可以与参考计数器305共享同一逻辑,以确定何时重置。
如前所述,W-CDMA系统总是将全一载入其初态(对应于无线电通信帧的第一个码片)的LFSR2,所以,寄存器365的可编程性可能不是必要的。(注意,一般而言,当执行快速旋转操作时,LFSR1_INIT_STATE和LFSR2_INIT_STATE不是用来对这些LFSR进行初始化的状态。经常将在无线电通信帧的中间执行快速旋转操作。)编程到LFSR1_INIT_STATE中的值确定LFSR1 M序列中的偏移量。由于总是利用全一来对LFSR2进行初始化,因此,确定所生成的唯一代码的是LFSR1_INIT_STATE。有512个唯一原代码,其中的每个原代码执行LFSR1M序列中的偏移量。这512个原代码中的每个原代码具有对应的LFSR1_INIT_STATE。同样,每个原代码有15个二级代码,而每个二级代码又有唯一的LFSR1_INIT_STATE。
LFSR1 330的和LFSR2 350的输出都作为输入被连接到I屏蔽与合计块375以及Q屏蔽与合计块370。所示出的I屏蔽与合计块375具有可编程变量I_MASK_1和I_MASK_2。所示出的Q屏蔽与合计块370具有可编程变量Q_MASK_1和Q_MASK_2。一般而言,I_MASK_1应用于LFSR1 330的输出,I_MASK_2应用于LFSR2 350的输出,并且,在I屏蔽与合计块375中对结果进行合计(GF(2)),以产生标示为PNI的输出PN序列。同样,Q_MASK_1应用于LFSR1 330的输出,Q_MASK_2应用于LFSR2 350的输出,并且,在Q屏蔽与合计块370中对结果进行合计(GF(2)),以产生标示为PNQ的输出PN序列。可以为给定系统对掩码进行硬编码,因此,这些掩码可能不需要是可编程的。虽然CDMA系统中通常需要I和Q序列,但是,当只需要单一PN序列时,可同等地运用本发明的各个原理。在那种情况下,块375或块370可与对应的输出一起删除。在W-CDMA中,在I屏蔽与合计块375中没有执行屏蔽,来自LFSR1 330和LFSR2 350的最低有效位进行GF(2)合计(或甚至只是进行“异或”逻辑运算),以产生PNI。为了产生PNQ,将Q_MASK_1设置为001000000001010000,将Q_MASK_2设置为001111111101100000。然后,合成的屏蔽输出进行GF(2)二合计,以产生PNQ。
旋转逻辑315将参考计数器305的输出TARGET_PN_POS(由DSP220写入寄存器320)和自由运行选择计数器240的输出FREE_COUNT当作其输入。当断言其输出(连接到参考计数器305、LFSR1 330和LFSR2 350上的允许信号)时,这些LFSR和参考计数器305更新到其下一种状态(如果必要的话,可环绕式)。当不要求旋转时,每一码片断言这个允许信号一次。当向旋转逻辑315发出旋转命令时(细节未示出),可以通过每一码片插入一个以上的允许来使定时推进,或者可以通过除去该允许来延缓定时。旋转逻辑315可以推进或延缓,直到参考计数器305输出与FREE_COUNT之间的差等于TARGET_PN_POS,从而表示已完成旋转。注意,在传统的缓慢旋转期间,推进通常比延缓快,因为每一码片只能有一个允许被除去,这样,最大的延缓速率是1个码片/码片时间。可以通过连续让允许保持断言的状态来实现推进,并且,最大的推进速率由基础时钟脉冲速度来加以确定。许多系统按8倍于码片速率的速率或按chipx8进行操作,所以,将按7个码片/码片时间的最大速率来执行推进。显而易见,更高的时钟频率将会带来更高的最大推进速率。为简单起见,其他实施例只可以支持一个方向——要么是推进,要么是延缓。
现在,将描述用于为对应的PN_COUNT和PN_CODE确定PN_STATE1和PN_STATE2的各种程序。对这些程序中的一个或多个程序可加以组合,来实现前述的关于DSP220中的旋转处理的概括程序的第三个步骤。第五个步骤——残留旋转也将与这些程序中的一个程序或其组合进行合并。
第一个程序将被定义为“缓慢旋转”。当自身使用时,按照提高的旋转速度来讲,这是最低有效的。这是用于如以上第五个步骤所描述的那样提供残留旋转的预置方法。通过只要将由PN_CODE所识别的对应所需序列的PN_STATE1、PN_STATE2和PN_COUNT的任何有效组合写入其各自的部件,其后,又写入TARGET_PN_POSITION来实现缓慢旋转。然后,图3的方框315中所描述的旋转逻辑只按所描述的速率旋转,直到达到TARGET_PN_POSITION。W-CDMA系统的一种有效组合是将PN_STATE1设置为LFSR1_INIT_STATE,将PN_STATE2设置为全一状态,并将PN_COUNT设置为零。然后,旋转逻辑可以按最大的推进速率来推进,直到达到TARGET_PN_POSITION。(作为选择,旋转逻辑可以延缓,直到达到TARGET_PN_POSITION为止。)用于为对应的PN_COUNT和PN_CODE确定PN_STATE1和PN_STATE2的第二个程序将把矩阵乘法器用作硬件加速器(对应于图2中的任选加速器250)。在该技术领域中通常已知斐波纳契数列配置中的M位LFSR通过按以下方式工作于其当前状态,来生成其下一种状态。位M-1~1将被直接移入位置M-2~0。位M-1将是对当前状态进行多项式运算(对对应的抽头位置进行“异或”逻辑运算)的结果。为了理解如何能够将矩阵乘法用于PN生成,可以考虑以下定义M=LFSR中的位数;Xn(i)=处于状态n的LFSR X的第i个元件的状态;Xn=与当前LFSR状态[Xn(0)Xn(1)...Xn(M-2)Xn(M-1)]相对应的M位列向量;Xn+1=与下一种LFSR状态[Xn+1(0)Xn+1(1)...Xn+1(M-2)Xn+1(M-1)]相对应的M位列向量;A=M×M矩阵,例如Xn+1=AXn;矩阵A可以被编制如下。利用第一列设置为全部是零来创建第一M-1行,接下来的M-1列设置为M-1×M-1单位矩阵。这对应于位M-1~1到位M-2~0中的一般LFSR移位。第M行只是多项式的向量表示。这对应于一般LFSR对当前状态执行多项式运算并将结果置入位M。
这样,矩阵A乘以LFSR状态(Xn)将会导致下一种LFSR状态(Xn+1),或者,将会导致推进1。矩阵A乘以矩阵A将会导致矩阵A2和Xn+2=A2Xn,或者,将会导致在一个周期内推进2。矩阵A2乘以矩阵A将会导致矩阵A3和Xn+3=A3Xn,或者,将会导致在一个周期内推进3,等等。为了在单一周期内将任何LFSR状态增量k个码片,可以对矩阵Ak进行计算,以便Xn+k=AkXn。
也可以在两个或多个周期内重复该矩阵乘法。如果一个周期内的矩阵乘法的各个结果再次乘以第二个周期内的Ak矩阵,则这些结果将会是Xn+2k=A2kXn。一般而言,如果乘以矩阵Ak的矩阵乘法被重复r次,则r个周期内的推进将会是Xn+rk=ArkXn。
这样,硬件加速器250(利用矩阵乘法器来加以配置)可以由DSP220根据PN_COUNT和PN_CODE迅速计算PN_STATE1和PN_STATE2而加以确定的任何偏移量。图4描绘了可以被配置成加速器250的这种矩阵乘法器的一个实施例。加速器250的最灵活的结构将会是其中矩阵可编程的M×M矩阵乘法器420。矩阵表格440包含具有各不相同的单一周期推进参数k的许多预先计算的矩阵。通过利用对应的指数来进行选择,控制430获得具有矩阵表格440中的所需的k的特定矩阵。在控制430的指示下,通过复用器400将M位寄存器410装备成接收输入LFSR_INIT_STATE或M×M矩阵乘法器420的输出。M位寄存器410提供一个向量,M×M乘法器420将该向量乘以由控制430在矩阵表格440中所选择的矩阵。
计算PN_STATE1和PN_STATE2的过程如下所述。为了开始该过程,控制430要接收ADVANCE_TARGET。关于序列(例如,在W-CDMA标准中所描述的序列),通过把PN_COUNT加入至与特定代码(在上文中,由PN_CODE提供)有关联的延迟,来确定ADVANCE_TARGET。关于其他种类的序列,ADVANCE_TARGET可能只是PN_COUNT。控制430确定k和r的适当组合,以产生ADVANCE_TARGET。首先,将确定LFSR1的负载值PN_STATE1。将LFSR1_INIT_STATE~LFSR_INIT_STATE供给复用器400。然后,控制430选择复用器400中的LFSR_INIT_STATE,并允许M位寄存器410对其进行存储。控制430从矩阵表格440中选择矩阵,用于装满M×M矩阵乘法420。来自M×M矩阵乘法的合成输出是由k种状态所推进的M位寄存器410中的值。然后,控制430通过复用器400来选择这个结果,并允许M位寄存器410对其进行存储。这个过程可以重复r次,以产生一个结果即,由供应的值所推进的r*k状态作为LFSR_INIT_STATE。该结果是M位寄存器410的输出,标示为PN_STATE。
与矩阵表格440中的矩阵相对应的k值以及每个的r值具有众多组合。一般而言,具有K个唯一矩阵,这K个唯一矩阵跟表示为k1、k2、...kK的k个值以及被表示为r1、r2.、...rK的K个对应的重复值r(其中,如果将不使用矩阵,则r可以是零)一起存储。这样,LFSR_INIT_STATE在此程序中将被推进A=r1*k1、r2*k2、...rK*kK,从而在理论上会导致偏移量ADVANCE_TARGET。这样,该结果将会是与PN_COUNT相对应的合适的PN_STATE1。然后,利用LFSR2_INIT_STATE(在W-CDMA标准中全部是1)重复以上程序,以产生与PN_COUNT相对应的合适的PN_STATE2。
在一些配置中,由于被支持的k值的数量有限,因此,推进值a可能不等于ADVANCE_TARGET。在这些情况下,ADVANCE_TARGET将会提供残值A。最后得到的PN_STATE1和PN_STATE2将不会对应于PN_COUNT,而会对应于由ADVANCE_TARGET与推进值A之间的差确定的计数。在这些配置中,在PN_STATE1、PN_STATE2被写入其各自的LFSR并且PN_COUNT+(A-ADVANCE_TARGET)被写入其计数器以便产生以上所描述的瞬间旋转之后,可以使用以上所描述的缓慢旋转程序来实现残留旋转。
图4包含用于提供r次计算、矩阵选择、复用器控制和寄存器启动的控制480。它也包含矩阵表格440。精通该技术领域的人将会认识到这些方框描绘只是为了用于进行讨论。这两个方框中的任何一个方框或这两个方框都可以被包含在DSP220中。
如果不需要多个矩阵就可以获得所需的旋转速度水平,则可以进一步简化图4中的实施例。如果利用某个推进参数k来选择单一矩阵,那么,可以除去矩阵表格440,并且,M×M矩阵乘法420不需要是可编程的。这大大简化了硬件。仍然可以使用各种重复值r,来提供k的若干整数倍的推进。如前所述,通过使用以上所描述的缓慢旋转程序,可以在PN发生器逻辑230中容纳因ADVANCE_TARGET与r*k之间的差而产生的残留旋转。
利用矩阵乘法加速器的原理的另可选择的实施例将会把PN发生器逻辑230归入加速器250。这样,为所需要的每个PN发生器部署矩阵乘法器加速器。这个方案有可能简化DSP的各种任务,但会导致浩大的硬件成本。
用于为对应的PN_COUNT和PN_CODE而确定PN_STATE1和PN_STATE2的第三个程序将在软件中执行矩阵乘法,这类似于刚才根据图4所描述的硬件加速器程序。DSP220将会包含与各种推进值相对应的几个M×M矩阵的查找表。除了将在DSP220中执行这些程序以外,用于确定PN_STATE1和PN_STATE2的程序本质上等同于硬件版本。通过使用以上所描述的缓慢旋转程序,可以在PN发生器逻辑230中执行在完成软件矩阵乘法之后剩余的任何残留旋转。在矩阵乘法程序的硬件版本或软件版本中,通过利用软旋转程序来提供任何残留旋转,可以在关于矩阵的增加的存储要求与增加的旋转时间之间进行折衷。
用于为对应的PN_COUNT和PN_CODE确定PN_STATE1和PN_STATE2的第四个程序将为每个唯一代码利用查找表格(LUT)(在PN_COUNT上被指明)。最完整的实施例将会为每个唯一代码要求完全被装满的LUT,每个LUT中的许多项目对应于每个序列中的码片数。很明显,这将会变得存储很密集,所以,较廉价的替换方案将经常是所需的。
可以简化W-CDMA系统的LUT方法。由于LFSR2总是利用全一来启动,并且,为每个代码使用38,400个码片的相同序列,因此,只需要部署一个LUT(在PN_COUNT上被指明)来确定PN_STATE2(调用这个LUT2)。为了减少所需要的硬件数量,可以将一个子集的38,400种可能的状态存储在LUT2中。例如,被隔开16个码片的PN_COUNT的值可以提供合适的硬件/粒度平衡。LUT2将会包含定义为
的集合中的每个PN_COUNT的对应的PN_STATE2。
回想一下在W-CDMA标准中,LFSR1使用相同的多项式,并且,根据唯一的起始偏移量,只截取不同位置中的M序列,以便产生唯一代码。照此,也可以使用称作“LUT1”并在PN_COUNT上被指明的单个LUT来确定PN_STATE1。但是,LUT1将大于38,400个项目,这是因为512个原代码中的每个原代码始于被隔开16个码片的偏移量;所以,每个代码在超过第38,400个码片的16的若干倍数处结束。相应地,每个二级序列是来自其原序列的1个码片与15个码片之间的偏移量。如果如以上对LUT2所描述的那样装满每第16个码片,则LUT1将包含定义为
的集合中的每个PN_COUNT的对应的PN_STATE1。这样,LUT1的完全指数是PN_COUNT加上识别唯一序列号(PN_CODE)的偏移量。这个例子(用每第16个值来装满LUT1和LUT2)完全支持W-CDMA系统所需要的原加扰代码。但是,将会需要额外的运算来支持二级加扰代码。
在前面的各个例子中,LUT1和LUT2包含是16的整数倍的每个PN_COUNT的LFSR状态值。所以,关于任何被支持的PN_COUNT,有一对LFSR状态值,用于确定PN_STATE1和PN_STATE2。通过查找最接近特定PN_CODE的PN_COUNT所支持的值、检索对应的PN_STATE1和PN_STATE2、将这三个值写入其各自的部件以便执行瞬间旋转,并根据以上所描述的缓慢旋转过程来完成任何残留旋转,可以使用LUT1和LUT2来支持任何PN_COUNT的旋转。
但是,如果在LUT1中被支持的PN_COUNT值和在LUT2中被支持的PN_COUNT值不同,则会出现问题。如前所述,PN_STATE1、PN_STATE2和PN_COUNT都将同时被写入其各自的部件(或者,利用用于在它们之中保持一致性的其他技术),这样,PN_STATE1和PN_STATE2应该对应于PN_COUNT所提供的序列位置。在即将到来的配置中,LUT1和LUT2中所具备的最近的各种状态支持不同的PN_COUNT。如果需要这种配置,则可以用许多方法来解决这个问题。
图5中表现了一种解决方案。图5表现了方框500的虚线轮廓,方框500是图3中的方框300的替换。图3的描述对于此修改而言仍然保持有效,除了一点以外即,并不是对参考计数器305装载PN_COUNT,而是每个LFSR有两个参考计数器——参考计数器1 510和参考计数器2 540,它们分别装载PN_COUNT1和PN_COUNT2。PN_COUNT1和PN_COUNT2是曾经最接近所需的PN_COUNT的、来自LUT1和LUT2的PN_COUNT值,并且,PN_COUNT1和PN_COUNT2分别直接与来自LUT1的PN_STATE1以及来自LUT2的PN_STATE2相对应。利用图5中所示的修改,LOAD_SLEW使PN_COUNT1和PN_COUNT2被写入,并且,分开的环绕式逻辑520与560以及旋转逻辑530与550独立地对LFSR1和LFSR2进行相应的旋转。环绕式逻辑520的输出将驱动对应的输入到“或”335。旋转逻辑530将驱动允许到参考计数器1 510,并且驱动LFSR1 330的允许。环绕式逻辑560的输出驱动对应的输入到“或”355。旋转逻辑550将允许驱动到参考计数器2 540,并且驱动LFSR2 350的允许。
旋转逻辑块530和550继续监控FREE_COUNT和TARGET_PN_POS,并且,通过LFSR1和LFSR2及其关联的电路独立使用缓慢旋转程序,最终将旋转除去PN_STATE1与PN_STATE2之间的PN_COUNT中的差,该差曾因LUT1和LUT2没有相同的PN_COUNT值的项目而被引入。注意,直到完成这两个残留旋转,PN发生器逻辑230的输出序列才会是所需要的有效PN序列。旋转逻辑块将信号提供给电路(或DSP或微处理器)的其余部分,从而指出旋转操作是否完成,这可能是有用的。
作为对图5中所详述的硬件修改的替换方案,DSP220本身可以通过使用LFSR1或LFSR2的状态值和计数值以及其对应的多项式,在软件中执行残留旋转。本质上,DSP220摹拟LFSR硬件,并执行推进LFSR1或LFSR2值所需要的周期数,直到这两者彼此一致为止。这类似于在软件中执行缓慢旋转程序,但不是执行残留旋转,而是除去LUT1和LUT2所提供的各种状态之间的偏移量的差。
用于为对应的PN_COUNT和PN_CODE确定PN_STATE1和PN_STATE2的第五个程序如下所述。在该技术领域中众所周知掩码可应用于LFSR状态,以便利用LFSR状态对该掩码进行逐位的“与”逻辑运算,并且,对逐位的“与”结果进行“异或”逻辑运算,以产生一个值,从LFSR的输出值那里将该值延迟对应于所选择的掩码的数量。这也是M位LFSR的斐波纳契数列配置的一个属性LFSR寄存器单元中所包含的M个位随时对应于LFSR的接下来的M个输出,这是因为该输出被返馈到最有效位M-1,并且,在每项接连的LFSR操作中,位M-1~1被直接移入位置M-2~0。这个程序的原理是如果M位LFSR(以第一种状态装载)连续M次循环,若选择适当的掩码,则如上所述的输出的屏蔽版本将产生对应于LFSR的推进状态的M个状态位。
所以,为了寻找识别代码内的给定PN_COUNT的PN_STATE1,可以为LFSR装载LFSR1_INIT_STATE,利用与PN_COUNT+PN_CODE的延迟相对应的掩码对LFSR1_INIT_STATE进行屏蔽,并循环LFSR1_INIT_STATE M次,以便为与PN_COUNT相对应的PN_STATE1产生这M个位。可以对LFSR2_INIT_STATE重复该过程,以便为与PN_COUNT相对应的PN_STATE2产生这M个位。可以用硬件或在软件来执行这个过程。
图6描绘了用于支持这个过程的概括的硬件配置。将INIT_STATE载入M位LFSR610。将LFSR610的状态传递给掩码620,其中,使用与PN_COUNT+PN_CODE的偏移量相对应的M位掩码PN_COUNT_MASK,来对LFSR610的输出状态进行屏蔽。在GF(2)加法器630中合计合成的屏蔽输出,以提供延迟的输出值。为LFSR610提供与LFSR1或LFSR2相对应的合适的“多项式”。当LFSR610循环M次时,将加法器630的输出移入M位移位寄存器640。在M个周期之后,M位移位寄存器640包含所需的,与PN_COUNT+PN_CODE的偏移量相对应的PN_STATE。这个硬件被利用两次,首先将LFSR1_INIT_STATE分配给INIT_STATE,来产生PN_STATE1;然后将LFSR2_INIT_STATE分配给INIT_STATE,来产生PN_STATE2。
为图6中的硬件而描述的程序可以容易地被转换成适合DSP中的处理的代码。精通该技术领域的人可以容易地将各种LFSR计算——屏蔽、合计和存储转换成DSP代码。
为了完成第五个程序的描述,必须采用用于为PN_COUNT和PN_CODE的各个值计算合适的PN_COUNT_MASK的技术。这些技术在该技术领域中也已知。例如,根据以上第二个程序所描述的矩阵乘法程序提供了一种这样的技术。当预先计算与偏移量k相对应的各个矩阵Ak时,每个矩阵Ak的最后一行是偏移量k的所需掩码。在类似于以上所描述的第二个程序的方式中,可以为所有的PN_COUNT值或其子集预先计算各种掩码。可以将这些值存储在每个代码的表格(在PN_COUNT上被指明)中。或者,如在以上第四个程序中所描述的,可以使用在PN_CODE+PN_COUNT上被指明的单一表格。可以执行这个程序,来寻找最接近所需的TARGET_PN_POSITION的PN_STATE1、PN_STATE2和PN_COUNT。然后,将这三个参数同时载入PN发生器逻辑230,以便执行旋转的瞬间部分;再执行缓慢旋转程序,以便处理剩余的残留旋转。如前所述,实施例的设计者可以将较高掩码存储要求和合成的要求较少的缓慢旋转用具有要求较高的缓慢旋转的较低掩码存储要求来加以折衷。
参照图2,精通该技术领域的设计者将会认识到如何将这第五个程序的软件版本并入DSP220。作为选择,图6中所描绘的硬件可以用作为加速器250。在另一个替换方案中,可以将图2A或图3中所描绘的硬件修改成并入图6中所描绘的各项功能,从而除了用于常规PN发生功能中以外,还允许DSP220再使用那个硬件来执行PN_COUNT、PN_STATE1和PN_STATE2的计算。
用于为对应的PN_COUNT和PN_CODE确定PN_STATE1和PN_STATE2的第六个程序利用原先五个程序(或其组合)中的任何一个程序(以上所描述的并且在该技术领域中通常已知的)与掩码-延迟技术相结合。在这个程序中,根据TARGET_PN_POSITION所提供的偏移量来旋转这些LFSR,而无须考虑特定代码(PN_CODE)所要求的任何偏移量。这样,这些LFSR将会连续地循环通过其基本顺序或偏移量为零的序列。为了生成所需的PN序列,可将与特定代码有关联的掩码应用于这些LFSR。关于在W-CDMA中所要求的序列,将会需要全部三个掩码。所要求的第一个掩码用于屏蔽在生成I序列的过程中所使用的LFSR1。可以在生成I序列的过程中使用LFSR2的直接输出,所以,不需要额外的掩码。关于Q序列需要第二个掩码和第三个掩码,第二个掩码用于屏蔽在生成Q序列的过程中所使用的LFSR1,第三个掩码用于屏蔽在生成Q序列的过程中所使用的LFSR2。根据以上所描述的任何掩码生成程序,将生成每个掩码,以产生与PN_CODE相对应的合适的延迟。
一种用于多序列PN序列的快速旋转的另一种技术利用各种屏蔽技术(例如,根据以上第六个程序所描述的屏蔽技术),而无须确定并装载PN_STATE1、PN_STATE2和PN_COUNT。相反,利用掩码来提供来自基本截取序列的必要的PN序列部分。
图7描绘了各个PN序列与所使用的掩码之间的关系。在图7中,标示为BASE_SEQUENCE的圆圈代表由LFSR的未截取输出定义的PN序列。在W-CDMA系统中,BASE_SEQUENCE由2^18-1个值构成。圆圈有效地代表这个序列,这是因为在LFSR状态的整个空间被循环通过之后,该过程自身重复。BASE_SEQUENCE的截取序列由该圆圈的方框内部分来代表,并由该截取序列的开端来加以识别。该基本截取序列标示为PNSEQ#0,并示出具有宽度W。W-CDMA系统中的W将会是38,400。另一个截取序列标示为PNSEQ#N。PNSEQ#N是BASE_SEQUENCE的截取序列,BASE_SEQUENCE由SEQUENCE_OFFSET所偏移。SEQUENCE_OFFSET对应于前文中所使用的代码标识符PN_CODE。PNSEQ#N也包含W个PN值。如根据以上第六个程序所描述的,可以利用与SEQUENCE_OFFSET的推进相对应的掩码来生成PNSEQ#N。
在这种另一种技术中,所需旋转由所需代码中的偏移量PNSEQ#N来指出,并标示为TIMING_ADVANCE。在这种技术中,不是改变LFSR状态来产生所需的PN序列(如以上程序1~程序5中所描述的),也不是改变基本截取序列和应用SEQUENCE_OFFSET掩码(如以上第六个程序中所描述的),而是基本截取序列保持不变,并且利用以下所描述的屏蔽技术来执行所有旋转。
示出的MASK1提供来自PNSEQ#0(基本截取序列)的开端的偏移量,PNSEQ#0(基本截取序列)的开端对应于所需偏移量PNSEQ#N的开端。这个所需序列的开端示作为SEQUENCE_OFFSET+TIMING_ADVANCE。所示出的值Z识别截取序列的剩余部分PNSEQ#N,该剩余部分在TIMING_ADVANCE后面。Z被确定为W-TIMING_ADVANCE。PNSEQ#0中的宽度Z的片段与PNSEQ#N中的宽度Z的偏移量片段相对应。只要PNSEQ#0处于其第一Z状态,就可以使用MASK1来生成合适的偏移量PNSEQ#N值。但是,一旦PNSEQ#0序列超过Z,就必须使用MASK2,因为对应的MASK1序列将会在PNSEQ#N的界限以外。如所示的内容,关于大于Z但小于W的PNSEQ#0中的状态,MASK2在SEQUENCE_OFFSET与SEQUENCE_OFFSET+TIMING_ADVANCE之间提供PNSEQ#N的合适的值。精通该技术领域的人将能够容易地为任何所需的PNSEQ#N值和TIMING_ADVANCE值生成MASK1值和MASK2值。1998年10月19日提交的标题为《用于CDMA通信系统中的伪噪声传播的方法和装置》的待批美国专利申请09/175,386中描述了用于使用MASK1和MASK2来从PNSEQ#0中生成PNSEQ#N的延迟版本的各种技术,该美国专利申请被受让于本发明的受让人,并引入于此,用作参考。
为了利用另一种技术W-CDMA系统,将需要全部8个掩码来生成I序列输出和Q序列输出。需要两个掩码来为I输出生成LFSR1序列,并需要两个掩码来为I输出生成LFSR2序列。同样,生成Q输出所要求的LFSR1序列和LFSR2序列中的每个序列需要两个掩码。这总计是8个掩码。在一般情况下,如果使用查找表来存储这些掩码,则若需要支持大量唯一代码的推进,该查找表会变得非常大。
为清楚起见,示出的PNSEQ#N不与PNSEQ#0重叠。精通该技术领域的人将会认识到如果这些序列重叠在一起,则这些技术可以同等地加以应用。在最极度的重叠中(例如,关于W-CDMA系统的LFSR2),SEQUENCE_OFFSET总是设置为零,并且,MASK1和MASK2只在被截取的基本顺序中提供TIMING_ADVANCE旋转。这样,可以在所生成的全部各种唯一代码之中共享LFSR2的一个查找表。
可以使用各种技术来减少执行这项交替技术所需要的掩码数。一个例子是只存储与可能的TIMING_ADVANCE值相对应的一个子集的掩码,并在基本LFSR上组合slow_slew(慢-旋转)方法,以执行到各个可用推进掩码之间的位置的任何残留旋转。精通该技术领域的人将能够把以上所描述的缓慢旋转的原理与刚才所描述的交替技术结合起来。
另一项技术是增加额外的LFSR,以减少每一TIMING_ADVANCE值所需要的掩码数。例如,可以使用两个LFSR来生成序列,以产生I个PN值,并将两个额外的LFSR配置成提供序列,以产生Q个PN值。在这个例子中,可以为I和Q PN序列生成共享两对MASK1和MASK2,并且,每一TIMING_ADVANCE的所需要的掩码数将被减少到4。(如果如在W-CDMA系统中一样,LFSR2总是使用零的SEQUENCE_OFFSET,则这项技术的好处会减少。)减少掩码存储要求的另一项技术是增加额外的LFSR,以提供各种推进PN序列。例如,如果将要支持M个总TIMING_ADVANCE值的空间,那么,通过提供基本截取序列加上由M/2推进的截取序列,将会把全部的所需掩码值降低2。通过部署基本顺序加上由M/4、M/2和3M/4所推进的序列,将会把全部的所需掩码值降低4,等等。
应该注意,在以上所描述的所有实施例中,在不脱离本发明的范围的前提下,可以互换各个方法步骤。
精通该技术领域的人将会理解可以使用任何各种不同的技术和技能来表示信息和信号。例如,在整个上文中可能提及的数据、指令、命令、信息、信号、位、符号和码片可以通过电压、电流、电磁波、磁场或磁性粒子、光场或光粒子、或其任何组合来加以表示。
精通该技术领域的人将会进一步理解结合这里所揭示的实施例而加以描述的各种说明性逻辑块、模块、电路和算法步骤可以作为电子硬件、计算机软件或两者的组合来加以执行。为了清楚地展示硬件和软件的互换性,以上通常按照其功能性来描述各种说明性部件、块、模块、电路和步骤。这类功能性是作为硬件还是作为软件来加以执行则取决于被加于总系统的特定应用和设计限制。技术娴熟的技工可以为每项特定的应用按不同的方法来执行所描述的功能性,但是,不应该将这类实施决定解释成会导致脱离本发明的范围。
结合这里所揭示的实施例而加以描述的各种说明性逻辑块、模块和电路可用于通用处理器、数字信号处理器(DSP)、特定用途集成电路(ASIC)、域可编程门阵列(FPGA)或其他可编程逻辑设备、离散门电路或晶体管逻辑、离散硬件部件或被设计成执行这里所描述的各种功能的任何组合。通用处理器可能是微处理器,但在替换方案中,该处理器可能是任何常规处理器、控制器、微控制器或状态机。处理器也可以作为各种计算设备的组合(例如,DSP和微处理器的组合、多个微处理器、结合DSP磁心的一个或多个微处理器或任何其他这种配置)来加以执行。
结合这里所揭示的实施例而加以描述的方法或算法的各个步骤可以直接在硬件中、在由处理器执行的软件模块中或在这两者的组合中得到具体表现。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或该技术领域中已知的其他任何形式的存储媒体中。示范存储媒体被耦合到处理器,以便处理器可以从该存储媒体读取信息并对其写入信息。在替换方案中,存储媒体可能是处理器的不可分割的一部分。处理器和存储媒体可以驻留在ASIC中。ASIC可以驻留在用户终端中。在替换方案中,处理器和存储媒体可以作为离散部件驻留在用户终端中。
通过提供所揭示的实施例的前述内容,精通该技术领域的任何人都能够制作或使用本发明。精通该计算领域的人将会容易明白对这些实施例作出的各种修改,并且,在不脱离本发明的精神或范围的前提下,可以将这里所定义的普通原理应用于其他实施例。这样,本发明并不意在局限于这里所示的实施例,而是要符合与这里所揭示的原理和新颖的特点相一致的最广泛的范围。
权利要求
1.一种执行快速旋转式PN生成的方法,其特征在于,包括接收目标PN位置;计算与该目标PN位置相对应的多种LFSR状态;将这多种LFSR状态载入多个LFSR;以及,根据这多个LFSR的各种状态,来产生一个或多个PN序列。
2.如权利要求1所述的方法,其特征在于,通过将基本LFSR状态乘以矩阵M,来计算这多种LFSR状态中的每一种LFSR状态;其中,确定矩阵M按目标PN位置推进该基本LFSR状态。
3.如权利要求1所述的方法,其特征在于,这多种LFSR状态中的每一种LFSR状态的计算包括从掩码表格中获得与该目标PN位置相对应的掩码;为M位LFSR装载基本状态;关于从0增量到M-1的每个i将该掩码应用于M位LFSR状态,使用GF(2)加法来合计合成的屏蔽值,以产生ADVANCED_LFSR_STATE(i);推进M位LFSR一状态;以及,传递作为LFSR状态的ADVANCED_LFSR_STATE(M-10)。
4.如权利要求1所述的方法,其特征在于,通过获得与最接近查找表中的目标PN位置的偏移量相对应的LFSR状态,来计算这多种LFSR状态中的每一种LFSR状态,该查找表格包含对应于各种偏移量的LFSR状态。
5.一种用于执行快速旋转的PN生成的方法,其特征在于,包括接收目标PN位置;根据该目标PN位置来计算变址计数器值;计算与该变址计数器状态相对应的多种LFSR状态;将该变址计数器值载入变址计数器;将这多种LFSR状态载入多个LFSR;以及,根据这多个LFSR的各种状态,来产生一个或多个PN序列。
6.一种用于执行快速旋转的PN生成的方法,其特征在于,包括接收目标PN位置;接收PN代码偏移量;根据该目标PN位置来计算变址计数器值;计算与该变址计数器状态和该PN代码偏移量相对应的多种LFSR状态;将该变址计数器值载入变址计数器;将这多种LFSR状态载入多个LFSR;以及,根据这多个LFSR的各种状态,来产生一个或多个PN序列。
7.如权利要求6所述的方法,其特征在于,这多种LFSR状态中的每一种LFSR状态的计算包括通过将该PN代码偏移量加入该目标PN位置,来计算目标推进值;以及,将与这多种LFSR状态中的每一种LFSR状态相对应的基本状态推进至该目标推进值,以产生这多种LFSR状态。
8.一种用于执行快速旋转的PN生成的方法,其特征在于,包括接收目标PN位置;接收PN代码偏移量;根据一个子集的可能的目标PN位置,来计算最接近该目标PN位置的变址计数器值;通过将该PN代码偏移量加入该变址计数器值,来计算目标推进值;通过将与多种LFSR状态中的每一种LFSR状态相对应的基本状态推进至该目标推进值,来计算这多种LFSR状态;将该变址计数器值载入变址计数器;将这多种LFSR状态载入多个LFSR;执行残留旋转,以达到目标PN位置所提供的LFSR状态和计数器状态;以及,根据这多个LFSR的各种状态,来产生一个或多个PN序列。
9.如权利要求8所述的方法,其特征在于,通过将基本LFSR状态乘以矩阵M,来计算这多种LFSR状态中的每一种LFSR状态;其中,确定矩阵M将该基本LFSR状态推进至该目标PN位置。
10.如权利要求8所述的方法,其特征在于,这多种LFSR状态中的每一种LFSR状态的计算包括从掩码表格中获得与该目标PN位置相对应的掩码;为M位LFSR装载基本状态;关于从0增量到M-1的每个i将该掩码应用于M位LFSR状态,使用GF(2)加法来合计合成的屏蔽值,以产生ADVANCED_LFSR_STATE(i);推进M位LFSR一状态;以及,传递作为LFSR状态的ADVANCED_LFSR_STATE(M-10)。
11.如权利要求8所述的方法,其特征在于,通过获得与最接近查找表中的目标推进值的偏移量相对应的LFSR状态,来计算这多种LFSR状态中的每一种LFSR状态,该查找表包含对应于各种偏移量的LFSR状态。
12.一种用于执行快速旋转的PN生成的方法,其特征在于,包括接收目标PN位置;接收PN代码偏移量;根据一个子集的可能的目标PN位置,来计算最接近该目标PN位置的变址计数器值;根据该变址计数器值来计算目标推进值;通过将与多种LFSR状态中的每一种LFSR状态相对应的基本状态推进该目标推进值,来计算这多种LFSR状态;将该变址计数器值载入变址计数器;将这多种LFSR状态载入多个LFSR;执行残留旋转,以达到目标PN位置所提供的LFSR状态和计数器状态;计算一套掩码,用于根据该PN代码偏移量来延迟一个或多个截取LFSR序列;以及,根据这一个或多个延迟的截取LFSR序列,来产生一个或多个PN序列。
13.如权利要求12所述的方法,其特征在于通过将基本LFSR状态乘以矩阵M,来计算这多种LFSR状态中的每一种LFSR状态;其中,确定矩阵M将该基本LFSR状态推进至该目标PN位置。
14.如权利要求12的方法,其特征在于,这多种LFSR状态中的每一种LFSR状态的计算包括从掩码表格中获得与该目标PN位置相对应的掩码;为M位LFSR装载基本状态;关于从0增量到M-1的每个i将该掩码应用于M位LFSR状态,使用GF(2)加法来合计合成的屏蔽值,以产生ADVANCED_LFSR_STATE(i);推进M位LFSR一状态;以及,传递作为LFSR状态的ADVANCED_LFSR_STATE(M-10)。
15.如权利要求12所述的方法,其特征在于,通过获得与最接近查找表中的目标推进值的偏移量相对应的LFSR状态,来计算这多种LFSR状态中的每一种LFSR状态,该查找表包含对应于各种偏移量的LFSR状态。
16.一种用于执行快速旋转的PN生成的方法,其特征在于,包括接收目标PN位置;接收PN代码偏移量;计算掩码,用于根据该目标PN位置和该PN代码偏移量来延迟一个或多个截取LFSR序列;以及,根据这一个或多个被延迟的截取LFSR序列,来产生一个或多个PN序列。
17.一种用于计算LFSR状态的方法,其特征在于,包括接收目标推进值;以及,将基本LFSR状态乘以矩阵M,其中,确定矩阵M将该基本LFSR状态推进至该目标推进值,以产生该LFSR状态。
18.一种用于计算LFSR状态的方法,其特征在于,包括接收目标推进值;从预先计算的矩阵表中获得与该目标推进值相对应的矩阵M;将该矩阵M载入可编程矩阵乘法器;以及,乘以该可编程矩阵乘法器中的基本LFSR状态,以产生该LFSR状态。
19.一种用于计算LFSR状态的方法,其特征在于,包括接收目标推进值;从预先计算的矩阵表中获得具有推进值k的矩阵M,其中的k*r对应于该目标推进值;将该矩阵M载入可编程矩阵乘法器;使用该可编程矩阵乘法器来为r次迭代重复矩阵乘法,以产生由k*r所推进的LFSR状态,其中,最初迭代将基本LFSR状态用作到该可编程矩阵乘法器的输入,随后的迭代将先前迭代的结果用作到该可编程矩阵乘法器的输入;以及,传递作为LFSR状态的第r次迭代。
20.一种用于计算LFSR状态的方法,其特征在于,包括接收目标推进值;计算N个推进值k1-kN,并计算与这N个推进值相对应的N个重复值r1-rN,以便r1k1~rNkN的总数等于该目标推进值;关于由ki表示的N个推进值k1-kN的每个i,具有由ri表示的对应的重复值r1-rN(a)从预先计算的矩阵表中获得具有推进值ki的矩阵M;(b)将该矩阵M载入可编程矩阵乘法器;(c)使用该可编程矩阵乘法器来为ri次迭代重复矩阵乘法,以产生由ki*ri所推进的LFSR状态,其中当i=1时,步骤(c)的最初迭代将基本LFSR状态用作到该可编程矩阵乘法器的输入;当i>1时,步骤(c)的最初迭代为i-1使用步骤(a)~步骤(c)的结果;以及,ri的随后的迭代将先前迭代的结果用作到该可编程矩阵乘法器的输入;以及,传递作为LFSR状态的第rN次迭代。
21.一种用于计算LFSR状态的方法,其特征在于,包括接收目标推进值;从掩码表中获得与该目标推进值相对应的掩码;为M位LFSR装载基本状态;关于从0增量到M-1的每个i将该掩码应用于M位LFSR状态,使用GF(2)加法来合计合成的屏蔽值,以产生ADVANCED_LFSR_STATE(i);推进M位LFSR一状态;以及,传递作为LFSR状态的ADVANCED_LFSR_STATE(M-10)。
22.一种用于计算LFSR状态的方法,其特征在于,包括接收目标推进值;从掩码表格中获得与该目标推进值相对应的掩码;为M位变量LFSR_STATE装载基本状态;关于从0增量到M-1的每个i将该掩码应用于LFSR_STATE,使用GF(2)加法来合计合成的屏蔽值,以产生ADVANCED_LFSR_STATE(i);将与所需的LFSR行为相对应的多项式应用于LFSR_STATE,以产生LFSR_STATE(M-1);将M-1个位LFSR_STATE(M-11)移入LFSR_STATE(M-20);以及,传递作为LFSR状态的ADVANCED_LFSR_STATE(M-10)。
23.关于可用于多个可承载LFSR的快速旋的“伪噪声(PN)”生成的一种设备,其特征在于,包括用于计算载入这多个可承载LFSR的多种PN状态的装置;以及,用于根据来自这多个可承载LFSR的输出来生成一个或多个PN序列的装置。
24.权利要求23的设备,其特征在于,用于计算的装置响应于目标PN位置来确定这多种PN状态。
25.关于可用于多个可承载LFSR的快速旋转的PN生成的一种设备,其特征在于,包括用于提供与这多个可承载LFSR的状态相对应的指数的指数装置;用于计算载入这多个可承载LFSR的多种PN状态以及载入该指数装置的对应的指数状态的装置;以及,用于根据来自这多个可承载LFSR的输出来产生一个或多个PN序列的装置。
26.如权利要求25所述的设备,其特征在于,用于计算的装置响应于目标PN位置来确定这多种PN状态和对应的变址计数器状态。
27.如权利要求26所述的设备,其特征在于还包括自由运行时间参照,并且,其中,用于计算的装置确定作为该自由运行时间参照与该目标PN位置之间的差的对应的指数状态;以及,响应于对应的指数状态的这多种PN状态。
28.关于可用于多个可承载LFSR的快速旋转的PN生成的一种设备,其特征在于,包括用于提供与这多个可承载LFSR的状态相对应的指数的指数装置;用于计算载入这多个可承载LFSR的多种PN状态以及响应于目标PN位置来载入该指数装置的对应的指数状态的装置;用于响应于该目标PN位置来调整这多个可承载LFSR和该指数装置中的状态变化速率的旋转逻辑;以及,用于根据来自这多个可承载LFSR的输出来产生一个或多个PN序列的装置。
29.如权利要求28的设备,其特征在于还包括自由运行时间参照,并且,其中用于计算的装置确定作为该自由运行时间参照与该目标PN位置之间的差的对应的指数状态,或其一个部分;以及,响应于对应的指数状态的这多种PN状态;并且,该旋转逻辑响应于该目标PN位置和该自由运行时间参照,来调整这多个可承载LFSR和该指数装置中的状态变化速率,以便执行在装载这多个可承载LFSR和装载该指数装置之后所要求的任何残留旋转。
30.一种接收器,包括关于可用于多个可承载LFSR的快速旋转的PN生成的一种设备,其特征在于,包括用于计算载入这多个可承载LFSR的多种PN状态的装置;以及,用于根据来自这多个可承载LFSR的输出来产生一个或多个PN序列的装置。
31.一种用于CDMA系统中的访问终端,包括关于可用于多个可承载LFSR的快速旋转的PN生成的设备,其特征在于,包括用于计算载入这多个可承载LFSR的多种PN状态的装置;以及,用于根据来自这多个可承载LFSR的输出来产生一个或多个PN序列的装置。
32.一种用于CDMA系统中的访问终端,包括关于可用于多个可承载LFSR的快速旋转的PN生成的设备,其特征在于,包括用于计算载入这多个可承载LFSR的多种PN状态的装置;以及,用于根据来自这多个可承载LFSR的输出来产生一个或多个PN序列的装置。
33.一种W-CDMA系统,包括关于可用于多个可承载LFSR的快速旋转的PN生成的设备,其特征在于,包括用于计算载入这多个可承载LFSR的多种PN状态的PN状态计算器;以及,用于根据来自这多个可承载LFSR的输出来产生一个或多个PN序列的序列发生器。
全文摘要
揭示了关于基于多序列的PN发生器的快速旋转的一些技术。在一个方面中,将LFSR状态和参考计数器状态载入其对应的部件,以便在各种状态中保持一致性。在另一个方面中,揭示了响应于唯一代码中的所需偏移量来确定LFSR状态和计数器值的各种方法。在这些方法之中,通过屏蔽技术来执行LFSR状态的矩阵乘法和推进LFSR状态的生成。也介绍了其他方法。这些方面的好处是用有效率的方式来减少转换时间,这个好处转变成获取速度提高、对多路径信号的查找器锁定更快、数据吞吐量增加、功率降低和总系统容量改善。
文档编号H04J13/00GK1528058SQ02814139
公开日2004年9月8日 申请日期2002年5月14日 优先权日2001年5月15日
发明者D·特雷萨瓦, D 特雷萨瓦, A·阿格雷瓦尔, 窭淄叨, S·文卡特杉, ㄌ厣 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1