数据扰码系统和方法及其在通信系统中的应用的制作方法

文档序号:7580589阅读:333来源:国知局
专利名称:数据扰码系统和方法及其在通信系统中的应用的制作方法
本专利文件的一部分含有受版权保护的材料。版权拥有者并不反对任何人传真复制如在美国专利商标局专利文件或记录中所呈现的专利文件或专利说明,但保留此外的所有版权。
本发明与电信技术有关,具体地说与多个发射机和接收机之间的电信技术有关。本发明也与多路通信有关,具体地说与用诸如码分多址之类的多址技术合并或分配经码字信道传输的信息的信道指配技术有关。本发明还与诸如脉冲或数字通信之类的通信有关,具体地说与采用多通路或信道的诸如直接序列扩频通信之类的扩频通信有关。本发明也还与码分多址(CDMA)通信系统有关,具体地说与直接序列(DS)同步CDMA通信系统有关。
在码分多址(CDMA)通信系统中,多个用户通信信号可在其中发送,共享相同的部分频谱。这是通过提供多个不同的伪随机(PN)二进制码序列(例如每个用户一个)来实现的,PN二进制代码序列对载波进行调制,从而使所得到的波形的频谱扩展。在一个给定的接收机中,所有的用户信号都是接收到的,然而通过将PN二进制码序列中的一个指定的序列加到一个相关器上就可从中选择只提取预期发给本接收机的信号能量,从而对接收到的CDMA传输“解扩”。所有其他(不相关的)用户传输呈现为噪声。
在数字扩频系统中,诸如语音信号之类的数据信号数字化(变换成一系列“1”和“0”之类)后再用一个伪随机(PN)码(也称为签名序列)加以处理。一个伪随机码通常是一个高频的似噪声波形,与发送前的数字化数据相乘,这具有扩展信号频谱的作用,于是在此称为扩频通信。经扩频的数字化信号发送给一个接收机后,在这个接收机中就将相同或相应的伪随机二进制码序列用于接收到的信号,对之解扩后提取这个数字化信号。数字化数据然后可数模变换成原来的语音或其他数据信号。在一个多用户系统中,如果系统内的每个用户都使用一个与其他用户所用的不同的伪随机或签名序列码,那么在链路的另一端如果将这个特定的伪随机波形或签名序列作用于接收信号,就可从中提取用户信号,而正在用不同的似噪声或伪随机序列的任何其他用户的信号就像是背景噪声。
有许多途径来实现这种多用户的信道化。在一种称为频分多址(FDMA)的途径中,每个用户的发射机具有一个相异的频带,各用户在频率上不相交叠。因此,通过调谐到适当频带上就可以区别用户。在时分多址(TDMA)中,每个用户的发射机都得到一个规定的时隙,于是所有的用户共享和使用所选信道的整个频带,但每个用户只发射一小段时间后就停止,让其他用户发射。因此,在TDMA中,有一系列用户以在时间上轮流占用的方式共享信道。在码分多址(CDMA)中,所有的用户可以始终发射,占用整个频带,从而这些用户可以在频率上和时间上交叠,形成集合信号。在CDMA中,不同的用户利用伪随机码或签名序列予以标识或区别。每个用户都给一个相异的伪随机码或签名序列。集合信号为所有用户发送的具有相异代码和相异数据的所有信号之和。接收机只要知道从所接收的集合信号中所要提取的信号的发送用户的PN码,就能用所知的PN码提取所关注的信号,实现解扩。在每个CDMA用户的调制器中,需发送的信号用PN码扩频,而在解调器中,这个信号通过将集合信号乘以在发射机使用的同一PN码解扩。
由于在异步CDMA系统内的用户单元并不试图协调各自的传输而是每当希望发送时就发送,因此基站必需使本身与不对准的各现用用户信号对准。这样,在基站试图逐个对各用户信号解扩,它将对各用户采用不同的定时偏置。但是,在一个同步CDMA系统内,要求反向信道(从用户单元至基站)中的各信号到达基站时相位对准。同步CDMA系统的详细情况可参见1996年3月12日颁发的美国专利No.5,499,236“同步多点对点CDMA通信系统”(“Synchronous Multipoint-to-Point CDMACommunication System”by Thomas R.Giallorenzi et al.)及其专题1996年12月10日颁发的美国专利No.5,583,853“同步CDMA发射机/接收机”(“Synchronous CDMA Transmitter/Receiver”by ThomasR.Giallorenzi et al.),这两个专利列作本发明的参考专利。
具有多个用户的码分多址(CDMA)通信系统内的一个接收机接收由这些用户产生的集合信号。这个集合信号是来自多个用户的大量数据的并行传输。送至和来自任何特定用户的各信号都用一个特定的扩频码或伪随机(PN)码或签名序列施加于数据波形上扩频。术语扩频序列、伪随机码和签名序列在这里是作为互容和同义词使用的。这样使用的伪随机码在系统内对于每个用户都是唯一的。一旦每个用户单元都用它的PN码施加于它的数据上,那么这些来自各用户单元的信号在一个多点对点型系统内从不同的点发送时在空间以电磁形式加在一起。在点对多点系统的情况下,来自这些用户的信号在一个基带内以电子方式或数字方式加在一起,诸如在这个系统的基站内所进行的那样,再发给多个点或用户单元,诸如在蜂窝通信系统的小区内所进行的那样。然而,这样加在一起的某些用户的信号有时候可能会传送相同或非常接近的数据或重复的模式。因此,虽然不同的用户使用的是不同的扩频码,但仍难于避免这些信号之间的干扰。本发明就是针对这个问题而提出的。
对于一个点对多点同步CDMA系统来说,基站接收机中的跟踪环路试图在多个数据比特上进行平均,以便平均掉噪声和确定选择的信号的到达时间,剔除其他信号,将它们处理成噪声,以及从集合信号中提取所需信号加以跟踪。分离出所需信号是通过对所接收的集合信号解扩实现的。在解扩中,将集合信号再来以一个特定的所需用户单元的扩频码。解扩处理提取来自这一个信道的数据而剔除来自其他信道的数据。理想情况下,其他信道使用的是与正用来解扩的所需用户码正交的PN码。因此,在所接收的集合信号乘以所需用户单元的PN码再在一个比特内积分时,信号就得到解扩。理想地说,在执行这个解扩处理时,系统内所有其他用户的信号都将映射成零。也就是说,如果一个干扰用户的信号用所需用户的PN码进行解扩,那么在理想的正交CDMA型环境中,积分器的输出将是零,即解扩将从所接收的集合信号中除去不希望的用户的信号。如果在所接收的集合信号中有所需用户的信号,这个用户的数据就不会被解扩除去。然而,在现实的CDMA系统中,总会存在一些不完善之处,这使不同用户的不同扩频码之间不都是真正正交的,使得在不同用户之间存在着一些小的相关性,而不会被解扩除去。这个出现在输出端上的附加非零信号是从其他信道漏入所需用户信道的,这种泄漏称为多用户干扰,也称为多址干扰或交叉信道干扰。这种多用户干扰降低了解扩产生的所需信号的质量。这种多用户干扰具有一定的特性。如果干扰用户发送的数据相对于所需用户发送的数据来说是随机的,那么这个多用户干扰就具有零均值。这样,如果将所接收的解扩信号在一段足够长的时间内加以平均,多用户干扰将平均为零。因此,多用户干扰的零均值是一个有用的特性。然而,在数据相关的情况下,由于某些原因多个用户发送相同的数据模式,多用户干扰所引起的噪声就不具有零均值。对于这种情况,将解扩信号积分并不能除去多用户干扰,而会引起接收信号的失真。通常,会有附加的背景噪声加到所需信号上。虽然背景噪声总是有的,但由于它的均值应为零,所以可通过积分除去。如果所有用户发送的数据相互呈随机的,数据检测功能或跟踪功能在性能上将有相当大的改善。然而,在诸如固定无线环路通信系统之类的一些应用中,可能有时会有来自几个用户的数据趋于相同的情况。例如,如果一个电话系统的几个用户恰巧同时停止讲话,那么所引起的从这些用户各自电话机发送的无声模式可以看作对于各用户是相同的。如果有大量用户发生这种情况,跟踪性能就可能严重下降,从而会出现不希望有的抖动。
因此,本发明的目的是提供一种减小多用户干扰的装置和方法。
本发明的另一个目的是提供一种即使在所需信号和干扰信号含有相同或相关数据时也能减小在跟踪一个处在多个干扰信号之间的所需信号中的抖动的装置和方法。
简要地说,本发明的这些和其他一些目的是通过对多用户通信系统内每个用户的数据个别进行扰码以使不同用户发送的数据随机化从而改善接收机的跟踪性能来达到的。为了改善接收机的跟踪性能和检测性能,对每个用户的数据进行独立扰码。这种扰码使多用户干扰成为零均值的,从而能通过积分或平均加以消除。
本发明的其他目的、优点和新颖的特性从以下结合附图所作的详细说明中可以清楚地看出。在这些附图中

图1为一个通信系统的方框图;图2为图1所示通信系统的另一个方框图;图3为扩频系统的示意图;图4a-4c为波形定时图,分别示出了图3所示系统中的未扩频信号的四个相继比特、伪随机码和所得扩频信号的例示性定时情况;图5为按本发明设计的数据扰码扩频系统的示意图;图6a-6c为波型定时图,示出了按本发明的一个实施例设计的如图5所示系统的相继四个比特例示性定时情况;图7为图5所示系统在扩频与扰码码相同但具有不同速率的情况下的波形定时图;图8示出了按本发明使扰码信号成帧的一个实施例;图9为能产生图8所示扰码信号的系统的方框图;图10为按本发明使扰码信号成帧的另一个实施例;图11为能产生图10所示扰码信号的系统的方框图;图12为示出能产生图10所示扰码信号的另一个系统的原理方框图;以及图13为较详细地示出图12所示系统中的一个部分的方框图。
下面参照附图进行说明,在这些附图中同样的标号标记的相同或相应的组成部分。图1所示为一个同步CDMA固定无线环路(FWL)单个电话连接的简化方框图,这种连接的两端的调制解调器的定时时钟是要特别关注的。虽然图1是一个CDMA固定无线环路系统,但本发明也可用于FWL系统以外的其他系统,然而特别适合的是同步CDMA系统。图1所示系统10包括也称为无线口(RP)的无线电基站(RBU)12和用户单元(SU)或用户14,由反向信道16和正向信道18链接。一个处在本地区域内的电话用户与电话系统中负责该地区的中心局之间的业务连接由一个本地环路提供。除了本地环路,中心局还与将所有电话信号汇总从一地发到另一地(如从一个城市发到另一个城市)的公众电话交换网连接。在一个无线本地环路系统中,为家庭、事务所或其他用户提供连接的电话线路由无线系统来代替。RBU12包括接收机11、发射机13、时钟15、采样时钟17和码片(chip)时钟22。采样时钟17为RBU接收机11提供时钟,而码片时钟22为RBU发射机提供时钟。用户单元14包括发射机19、接收机21、恢复采样时钟23和子码片时钟20。时钟20用来为SU发射机19提供时钟。时钟20的相位由SU接收机21控制,而时钟20的频率由时钟23控制。时钟23根据SU接收机21的信号恢复出RBU码片时钟22的时钟信号。RBU发射机13在正向信道18上向SU接收机21发射信号。SU发射机19在反向信道16上向RBU接收机11发射信号。虽然图1中只示出了一个用户单元14,但可以理解,一个RBU可以处理多个用户单元。为了使系统10内的用户数尽可能达到最大,需要所有用户的定时相干。这意味着,为了保证多个用户单元之间互相关尽可能小,所有用户单元的PN到达RBU12的时刻必需非常接近。为此,必需迫使每个用户单元发射机的码片时钟20与RBU的码片时钟22相干(即相位锁定到RBU的码片时钟22上)。此外,还必需考虑用户单元14与RBU12之间的延迟变化。对于系统10来说,定时抖动的影响是很大的。RBU接收机11进行定时误差估计,以调整用户单元PN时钟相位。
图2为按本发明设计的同步DS-CDMA通信系统10的简化方框图,这个系统具有一个无线电基站(RBU)12和多个收发机或用户单元(SU)。RBU向这些SU发送一个副信道和接收一个这些SU发送的副信道。图2示出了同步CDMA通信系统10的其他一些特点。这个系统在本发明的这些优选实施例中体现为一个固定无线环路系统(FWL),在这里考虑为一个CDMA系统,其中从一个无线电基站单元(RBU)12向多个这里称为用户或用户单元(SU)14的收发单元的各路正向链路(FL)传输在时间上是比特和码片对准的,而这些SU14接收FL传输,与之同步。每个SU14也在一个反向链路(RL)上向RBU12发送一个信号以使它的传输定时与RBU同步,执行双向通信。FWL适合用来实现一个在RBU12与各SU14之间传送语音和/或数据的通信系统。
RBU12包括产生多个用户信号(USER_1至USER_n,图2中未示出)和一个连续发送的正方异步副信道(SIDE_CHAN)信号的电路系统。这些信号各自被指配了一个相应的PN扩频码,经它调制后送至与天线12b连接的发射机12a。在FL上发送时,各路传输都是在相位上正交调制的,而各SU14都假设为有适当的相位解调器,从中得出同相(I)和正交(Q)分量。例如,每个频率信道包括多至31个代码信道,中心频率在2GHz至3GHz的范围内。
RBU12还包括一个接收机12c,它的输出端接至副信道接收机12d。副信道接收机12d接收来自接收机12c的扩频信号以及来自RBU处理器或控制器12e的比例因子信号和副信道解扩PN码。比例因子信号可以是固定不变的,也可以是随在反向副信道上发送的SU14的数目自适应改变的。副信道接收机12d向RBU控制器12e输出一个表示是否检测到来自SU14之一的传输的检测与否信号以及一个功率估计值X。读写存储器(MEM)12与RBU控制器12e双向连接,用来存储系统参数和其他信息,如SU定时相位信息和功率估计值。
在图2中,每个SU 14都包括一个天线14a、一个接收机14b、一个用例如副信道解扩PN码对接收到的FL传输解扩的相关器14c和一个SU处理器或控制器14d。SU控制器14d负责管理SU 14的操作。这些管理功能包括产生一个可变的本机振荡器(L0)信号用于使接收到的FL信号下变频以及提供为本SU 14指配的PN二进制代码序列用于使副信道信号和使用户信号解扩。SU 14还包括一个对诸如副信道信号那样的信号进行扩频的扩频电路14e和一个在RL上向RBU12发送DS-CDMA信号的发射机14f。
对于本发明所推荐的这些实施例来说,天线12b和14a具有直视关系,SU14在位置上相对RBU12是固定的,而天线12b和14a是在安装SU14期间轴线对准了的。然而,本发明并不局限于这种具体的实施方式。
最好,按Samuel C.Kingston等人在1996年2月23日递交的美国专利申请No.08/606,285“多点对点同步CDMA系统的多用户截获过程”(“A Multi-User Acquisition Procedure for Multipoint-to-PointSynchronous CDMA Systems”)或No.08/606,378“点对多点同步CDMA系统的多用户截获过程”(“A Multi-User Acquisition Procedure forPoint-to-Multipoint CDMA Systems”)中所述进行初始截获和同步,这两个申请列作本申请的参考。
本发明的数据捣扰既可用于图1和图2系统的正向的点对多点方向,也可用于反向的多点对点方向。这两个方向在此分别称为基站-移动台或用户单元型配置的正向信道和反向信道。正向信道是基站至用户单元方向,而反向信道是用户单元至基站方向。
在正向信道中,可以发送一个码分多路复用波形。这些分别发送给各用户的信号被加在一起,使得所有的用户基本上在所有时间都占用这个信道的全部带宽。这些信号可以在时间上和频率上都完全重叠,而由加到这些信号上的各自代码相互区别。这个码分多路复用信号从RBU12发送给用户单元14和任何其他用户单元。用户单元14必需利用诸如前面提到的列作本申请参考的美国专利申请No.08/606,378中所述那样的截获过程锁定到这个来自RBU 12的信号上。该申请说明了用户怎样初始同步,再在时间基本对准的情况下进行相位跟踪,继续保持时间对准,保持相差只是一个码片的很小一部分。一个码片是扩频序列或PN码的一个子码元。在这里,希望同步能达到一个码片的1%左右那样的抖动,也就是说,跟踪要非常精确。为此,在本发明中,将一个独立的扰码模式外加到每个用户数据上后再发送,而这个扰码模式可以在链路的另一端予以撤消。也就是说,用户产生要传输的一系列比特,而在这些比特(一些“1”和“0”之类)上叠加有一个对于系统内每个用户是唯一的模式。只要链路的另一端知道这个模式,那就可以去掉这个模式,得出所需的数据。因此,即使所有用户发送同样的数据,但由于用了这种扰码,在接收机看来,每个用户发送的是不同的数据。
每个用户单元14发送数字化成一系列+1和-1、1和0、或者其他形式的数据。一个伪随机码或签名序列作用到由相应用户单元要发送的这些数据比特上。每个用户,因此也就是每个用户单元,具有一个不同于其他用户的签名序列,最好也是由一系列+1和-1,或者是1和0之类构成的。数据信号通过一个乘法器后再送至发射机。乘法器将数据的正1负1序列与一个构成PN码或签字序列的一系列频率很高的码片正1负1序列相乘。PN码或签字序列由一系列码片构成,每个码片基本上占签字序列取+1或-1(之类)的值而不改变的时间。PN码在一个码片内保持不变。每个比特可以有许多码片。例如,一个比特可以与每个比特的128个码片相乘,因此码片率为128倍比特率。所以,PN码是一个频率高得多的信号,将它与数据信号相乘,就产生一个扩频成看来是一系列PN码的信号,只是有时为PN码有时为反相的PN码,这取决于用户在这个具体比特时间内发送的是+1还是-1。交变的+1- -1波形经用载波上变频后发射出去。为此可用的一种方式是QPSK调制,发送一个同相信号和一个正交信号(与同相信号正交的信号),这两个信号是可以区别的,因为在同相信道上的上变频处理采用一个具有载波频率的余弦信号,而对于正交信号的上变频是将正交数据流乘以一个具有载波频率的正弦而不是余弦信号。采用这种QPSK调制格式,在I与Q信道上发送相异的比特实质上能使通过反向信道提供的数据量加倍。对这两个信道分别用余弦和正弦载波提供了一个额外的正交维,避免这两个信道之间的干扰。
在图3中,数据信号Dk(t)乘以用户k的代码序列或签字序列Ck(t),产生一个扩频信号Sk(t),其中t表示时间而这三个信号都表示成时间的函数。图4a-4c分别例示了这三个信号Dk(t)、Ck(t)和Sk(t)。对于这个例子来说,信号Dk(t)的数据是一个+1或-1模式,在这里示为+1、-1、+1、+1的模式。图4a-4c示出了这些信号的时间波形。Ck(t)为码片序列或签名序列,其时间波形示于图4b。Ck(t)是一个在数据信号Dk(t)可能改变时不断重复的模式。也就是说,Ck(t)以较高的频率转换,最好是某个伪随机模式。对于图4a-4c所示的这个例子来说,Ck(t)是一个为用户k指配的模式,呈+1、-1、+1、+1、+1、-1、-1、+1序列。PN码、扩频序列和签名序列都是指的Ck(t),是同义的。Dk(t)是要发送的数据或比特序列。在图4中,Tb是码元周期。在图4的时间轴上示出了时间0、Tb、2Tb、3Tb和4Tb。在一个周期Tb内有若干个频率较高的码片。每个码片占用一段称为码片周期的时间Tc。在图4所示的例子中,每个数据比特有8个码片。因此,处理增益PG为Tbit/Tchip,亦即Tb/Tc等于8。在每个周期Tb内发送一个+1或-1码元,这个码元在这个周期内是连续发送的。在从时间Tb至2Tb的码元周期内发送另一个码元,在本例中为一个-1。为了简明起见,对于这个例子,Ck(t)是对于每个码元重复的。对于一个码元周期,一个码元时间Tb的Ck(t)模式如图4中所示为单个Dk(t)比特期间发生的8个码片,分别为+1、-1、+1、+1、+1、-1和+1。如图3所示,Dk(t)与Ck(t)相乘产生信号Sk(t)。因此,Sk(t)是Dk(t)乘以Ck(t)的乘积。对于第一个码元周期,Dk(t)等于+1,于是Sk(t)为1乘以Ck(t)模式,从而在时间0至Tb内Sk(t)等于Ck(t)模式。在时间Tb至2Tb的第二个码元周期内,Dk(t)等于-1,于是这个码元周期的Sk(t)是反相的Ck(t)。对于图4中从时间2Tb至3Tb的第三个比特周期,Dk(t)等于+1,于是第三比特周期的Sk(t)将又是正相的Ck(t)模式。Sk(t)等于Dk(t)乘以Ck(t),是用户k或为用户k发送的扩频波形。Sk(t)可以与一些来自其他用户的扩频信号加在一起,形成一个集合信号,再被接收。
在图5中,有一个扰码波形Pk(t)作用到用码Ck(t)扩频前的数据信号Dk(t)上。在图5中,Dk(t)不是与Ck(t)相乘,而是先与扰码模式Pk(t)相乘。这预乘的积再与Ck(t)相乘产生一个不同的扩频波形S′k(t)。这样的系统示于图5。对于本例来说,图6a所示的Dk(t)和图7a所示的Ck(t)分别与图4a和图4b所示的相同。在图3中,Dk(t)与Ck(t)由乘法器24相乘后得出积Sk(t)。在图5中,Dk(t)与Pk(t)由乘法器25相乘得到D′k(t),再在乘法器28与Ck(t)相乘得到S′k(t)。对于图6a和6b所示的例子,Pk(t)示为-1、+1、-1、+1的序列。对于图6a和6b的第一个比特周期,Dk(t)与Pk(t)的积是+1乘以-1,得出-1。在图6a和6b的第二个比特周期内,Dk(t)与Ck(t)的积是-1乘以+1,也为-1。在图6a和6b的第三个比特周期内,Dk(t)与Ck(t)的积为+1乘以-1,也还是-1。在图6a和6b的第四个比特周期内,Dk(t)与Ck(t)的积为+1乘以+1得出+1。所得到的信号D′k(t)是在传输前发生扰码的扰码数据模式。Pk(t)是一个用于用户k的不同与用于其他用户的模式。Pk(t)乘以数据Dk(t)产生扰码数据信号D′k(t)。对于图6所示的这个例子来说,Pk(t)具有与Dk(t)相同的频率。也就是说,由Pk(t)提供的扰码模式是一对一的比特扰码,而不是像用Ck(t)实现的多对一的比特扰码。然而,最好是Pk(t)在具有与Dk(t)相同的频率的同时还表示一个与Ck(t)相同的代码或值的序列,这样对于每个用户只需要知道和存储一个代码序列。如图6所示,D′k(t)与Dk(t)差异很大。如果有另一个用户j试图发送与用户k发送的完全相同的数据模式,但具有一个与Pk(t)不同的扰码模式,那么用户j就要发送一个与用户k发送的不同的数据模式。因此,在图5这个系统中,对于不同的用户发送的是独立的数据。因此,图5这个系统通过对数据进行扰码防止了使系统10的性能严重恶化。
如上所述,即使模式Pk(t)工作在与码Ck(t)不同的速率,但最好采用相同的模式。这种情况如图7所示。在图7中,Ck(t)所示与图4中的Ck(t)完全相同。然而,一个频率不同的扰码模式P′k(t)示为与Ck(t)的完全相同的序列或模式。因此,在P′k(t)的第一个比特期间,P′k(t)具有与Ck(t)在第一个码片期间所具有的相同的二进制值。如图7所示,Ck(t)示出了一个初始模式+1、-1、+1、+1、+1,它在P′R的前5个比特时间内重复。这样做是因为独立的Ck(t)波形已经指配给独立的相应用户。利用与对数据扩频所用的相同模式对数据扰码保证了扰码模式也是各不相同的。此外,不同用户的PN码选择成相关具有良好的特性,使得两个不同的签名序列趋于相互接近正交,也就是说,如果两个不同的序列相乘后再在一个比特内积分,所得结果非常接近于零。这也是在比特级所希望的特性。这是因为扰码模式Pk(t)与Pj(t)在任何比特张成的空间中也将是正交或接近正交的,这是一个所希望的特性。因此,利用指配给用户k的签名序列作为扰码模式是一种值得推荐的实现方式。
虽然最好是数据D和模式P具有同样的周期,但这并不是绝对必需的。例如,Pk(t)可以例如在持续期上为Dk(t)的比特时间的一半。所得的扩频波形仍将具有相同的带宽和相同的基本特性。因此,Pk(t)和Dk(t)不必具有相同的频率。然而,最好还是它们具有相同的频率,因为这样就能用一个异或门像一个数字乘法器那样来处理Pk(t)与Dk(t)的相乘。
图8和9的实施例与图10和11的实施例的不同之处在于遵从所加的高层协议在数据发送到信道前为进行差错控制而对数据进行实际编码和使数据成帧的情况。在高层协议中,在数据发送前需将控制信息和同步比特插入数据流。就这个高层协议而言,本发明的扰码在图8和9的实施例中与在图10和11的实施例中所进行的是不同的。对于这两个实施例,都假设采用的是PCM(脉冲编码调制)接口。PCM接口是一种工业标准接口,它将语音采样,用8比特数字化后一次8比特地输出到一个串行总线流上,再用两个开销信道将它们组成32个一次8比特的信道。数据以2.048MHz速率呈8比特突发形式发送。这些8比特纳入一个64KHz的数据流内。其中还嵌入4KHz的开销。为了尽量减少等待,这些4KHz的开销数据字节分置入数据流的不同位置,形成一个连续的帧。对于图8所示方案,数据帧分成四段,每段含有需发送的数据流中16字节的数据(例如,第一个16字节)。在每个这样的16字节突发串或数据块前插入一个字节的开销数据。第一个这样的开销字节是一个帧同步信号或标志。在每个后续的16字节数据段前设置一个控制字节。在每种情况下,控制字节附加于16字节的数据前。嵌入了标志字节和控制字节,就得到一个68KHz的串行数据流。在每个16字节数据段中,第一个8比特用一个扰码码,如Pk(t),扰码,而下一个8比特数据用同一个扰码码扰码,这样直至整个帧都得到扰码。因此,在每一个16字节数据段中,同一个扰码码要用16次。然而,对于这个实施例,不必考虑对标志字节和控制字节的扰码,也不作推荐。指定RBU和SU对特定信道使用一定的经扰码字节或经解扰字节。如同PN码那样,这些扰码模式最好结构成尽可能分开,使得经扰码的数据呈现为对于不同信道各不相同。这种扰码技术可用图9所示系统实现。在图9中,帧同步信号与68KHz的时钟/允许信号合并成标志/控制信号,插入数据流。如上所述,64KHz的数据流被组织成68KHz的成帧数据流。与成帧关联的数字帧同步信号与68KHz的时钟和帧数据一起送至扰码器。成帧数据加到异或门32的一个输入端。异或门32的另一个输入由扰码器34提供。扰码器34从微处理器接口(μp I/F)36取得数据(扰码字节),在帧界处将这数据置入移位寄存器38。从微处理器接口36取得的数据通过寄存器40送至移位寄存器38。微处理器接口36与微处理器42连接。移位寄存器38的内容以68KHz速度循环移出移位寄存器38,与数据帧异或。控制逻辑30进行计数,从而知道什么时候出现帧同步和什么时候出现数据时钟允许信号。控制逻辑30对于出现在帧内的标志字节和控制字节关闭扰码器34。这种选通是用与(AND)门44实现的。控制逻辑30利用一个或多个计数器来确定什么时候需要关闭扰码器34。
卷积编码是一种对要在有噪声的信道上传输的数字数据流进行编码的方法。就实质上来说,输入数据流映射成的信道传输码元流不必具有与输入数据流相同的速率。例如,可以从输入数据流的一个比特得到三个码元的输出,而这三个码元在这一个比特所占用的时间内发送。对于这个例子来说,在这种情况下这表示一个1/3率码。此外,称为正交相移键控(QPSK)的多层调制方式每发送一个码元发送两比特的信息,使得两个这样产生的信号在相同的比特时间内通过这个信道发送。本发明的扰码在这样的编码前进行。
图10示出了另一种数据成帧方案,这是图8所示的替代方案,更为可取。在图10所示的成帧方案中,先对除了每帧开始处的同步字外的整个帧进行卷积编码后再进行扰码。在图10所示的成帧方案中,产生4/5率码。对输入数据流进行的是1/2率编码,因此对于每个输入比特产生两个比特的输出,形成一个4分层码元输出。然后,对这个4分层码元进行收缩。所谓收缩(puncturing)是一种从输出数据流中删去一定比特不予发送的处理过程。收缩的作用是改变发送到信道上的码元的速率。收缩是在该技术领域中众所周知的技术。这种收缩在接收机中用Viterbi解码器撤除。收缩删除的并不会使Viterbi解码器有这样或那样的偏差,因此Viterbi解码器将删除的码元处理为空码元,不会这样或那样使解码器在判决所发送的数据上有所偏差。由于对1/2率码进行了收缩,总的编码率上升到4/5。也就是说,如果有四个比特输入到4/5率编码器,那么就会产生五个比特。然而,利用QPSK,将一次两个比特地发送这些输出的比特。
卷积编码器对需发送的数据流进行编码,这样所得到的比特流中就有冗余。这种冗余容许比特流中有差错,使得接收机在即使有这些差错的情况下也能由于有冗余而确定所发送的是什么。Viterbi解码器对一个所发送的引入冗余而杂有噪声的比特流进行检查。即使进入卷积编码器的这些比特是完全独立和都不能预测的,但在通过卷积编码器后这些比特就成为可预测和相关的,其中存在冗余。即使这些比特中有些在通过信道时受到污染,但Viterbi解码器通过在前后语境中对它们进行检查可以确定所发送的数据流是什么。实际上,卷积编码就是一个以所希望的方式为否则便是均匀分布因而完全不能预测的一系列随机比特添加冗余的处理过程。
Viterbi解码器撤消卷积编码器进行的编码,还消除噪声引起的影响,只要噪声不很厉害。或者,也可采用卷积编码以外的其他正向纠错和Viterbi纠错形式。
在图10所示的成帧方案中,整个帧除了同步字节外全部予以扰码。这种扰码是在卷积编码(和收缩)后对除了每个帧开始处的同步字以外的整个帧进行的。然而,在本发明的实践中并不需要执行收缩,虽然在有些情况下是所希望的。这种扰码可利用图11的系统或者图12和13的系统来实现。在图11中,速率为34KHz(就本例而言)的数据送至卷积编码器46。卷积编码器46包括一个接收输入数据的寄存器48和两个异或门50和52。送至异或门50的输入端的是寄存器48的一系列抽头(八进制值133)。送至异或门52的是寄存器48的一系列抽头(八进制值171)。异或门50和52的输出送至收缩和同步插入决54。块54由信道收缩和同步控制计数器56控制。收缩和同步插入块54产生一个同相(I)输出和一个正交(Q)输出。收缩和同步插入在该技术领域是众所周知的。应该理解的是,收缩和同步插入对于实践本发明来说并不需要执行。收缩和同步插入块54的I和Q输出分别送至异或门58作为输入。块54的I输出加到异或门58的一个输入端,而块54的Q输出加到异或门60的一个输入端。扩频和扰码控制计数器62加有21.76MHz(例如)的时钟,由帧同步字复位。计数器62用来在表64内查找合适的扰码模式和扩频码。表64可以在诸如RAM那样的存储器内实现。表64最初由微处理器66(LCP)装入。计数器62还对所接收的时钟进行分频,产生两个不同的频率降低的时钟,分别送至数据型触发器68和70的触发输入端。LCP(线性控制处理器)微处理器66确定需用的PN码(和扰码模式)。在本发明的实践中,计数器62和表64可以省去,而用一个适当的产生器代替,根据命令产生扰码模式和扩频码。无论用的是正向信道还是反向信道,对于每个用户必需产生分开的扰码模式和分开的扩频码。然而,采用计数器62和表64是值得推荐的。由表64产生的扰频模式送至触发器68的数据输入端和异或门72和74的相应输入端。在计数器62的定时下,触发器68产生一个输出送至触发器70的数据输入端。在计数器62的定时下,触发器70产生一个输出送至异或门58和60的相应输入端。加到触发器70的触发或时钟输入端的定时信号也加到触发器76和78的触发或时钟输入端。触发器76的输出和表64的输出分别送至异或门72的相应输入端。触发器78的输出和表64的输出分别送至异或门74的相应输入端。异或门72和74的输出作为I和Q信号送至基带合并器(未示出)。在正向信道上,基带合并器将各用户的所有同相(I)信号以及所有正交(Q)信号以这些用户的PN码所用的码片率分别加以合并。
图10所示方式的扰码是用图11所示系统实现的。在图11中,34KHz速率的数据送至卷积编码器46,再从卷积编码器46送至收缩电路54。收缩电路54产生码元率例如为21.25KHz的I和Q信道。码片率例如可以是每码元128个码片。在执行码元扩频前,以码元率获取扰码码的第一个码片,将它与收缩电路54以21.25KHz速率输出的I和Q异或,后送至图11的系统中码片率为2.72MHz的扩频部。在第一个码片已获取的同时,扰码码内的第二个码片由计数器62获取,等待收缩电路54产生下一个I和Q码元后与之异或后再用128码片长的PN码扩频。帧可以具有任意对码元,在出现帧同步脉冲时重新启动,再次开始进行这样的处理。计数器62中的为扰码电路服务的控制逻辑一直注意出现帧同步脉冲的时刻。每个帧的第一部分10个I和Q对保留给一个插入的同步标志,以便用户单元可以始终发现出现帧同步的位置。此外,帧同步(五个码元对或十个比特)是不加扰码的。各个PN码都存储在RAM 64内。这些PN码既用来扰码也用来扩频。在出现帧同步脉冲时,计数器62复位,再开始计数,计数值作为地址送至RAM 64,从RAM中提取PN码。以这种方式确定哪个比特要用于扰码/扩频。计数器62以码元率而不是码片率运行。码片率是产生PN码的速率。PN码将相继循环通过RAM 64中的这些地址。扰码模式也是如此,但计数器在用于扰码时以不同的速率运行。每当收缩电路54产生一个新的码元字时,就从RAM存储器64取得下一个PN码。在出现帧同步脉冲时,计数器62等待五个码元的时间,然后再从零开始计数。计数器62最大计到127。当计数器62计到127时,计数器62跳回到零,再最大计数到127。如果帧的长度不等于PN码的整数倍,那么计数器将继续计数,并不返回到零,直至再次出现帧同步脉冲。因此,在这个例子中,计数器62和表64为128个信道和128个用户产生PN码。在信道的接收端,有与图11中类似的解扰器和解扩器,用来从所发送的信号中首先除去扩频,然后再除去扰码。由于帧同步字是随数据发送的,因此在接收端也可检测出来,使计数器62复位。
图12为图11所示系统的一部分的另一个实施例。所示的I和Q信号由图11中的收缩电路54产生。在图12中的扰码和扩频电路内,RAM存储器80将伪随机码保存在一个查找表内。RAM控制电路82控制对RAM80的写脉冲、输出允许等。扩频计数器84产生读RAM 80的查找表的地址,使得RAM 80的输出端按正确的次序产生PN码。扰码计数器86以码元率(例如为21.25KHz)从零至127计数。计数器86循环计数,在图10的帧结束处(上帧界)复位。这使得同样的PN码既可用于扰码又可用于扩频,从而节约了存储器内的空间。计数器86在图10的帧的同步字时间内不进行计数,从而使同步字不受到扰码,如上所述。对于比较器88来说,当扰码计数器86的计数值与扩频计数器(或PN计数器)84的计数值一致时,比较器88产生一个允许信号送至触发器90,使得正确的扩频比特寄存在触发器90内。扩频和扰码控制状态机81包括RAM控制器82、计数器84、计数器86和比较器88。比较器88将计数器86的当前计数值与计数器84的当前计数值进行比较。触发器或寄存器90保存断续的扰码比特。触发器92保存当前正对数据进行扰码的扰码比特。扩频计数器84的终端计数使触发器92装入扰码比特。也就是说,在计数器84计到它的最大计数时重新寄存扰码比特。这样,在码元改变时扰码字跟着改变,异或门94和96用于进行扰码,而异或门98和100用于进行扩频。触发器102和104用来寄存经扩频和扰码的数据,各以2.72MHz运行。图13详细示出了图12中的扩频和扰码控制状态机81的情况。
图12和13可以用软件实现。作为一个软件实现的例子下面给出了用VHDL软件编程语言编制的软件程序。在这软件中的方框标号与图13中的方框标号相同。
<pre listing-type="program-listing"><![CDATA[--########################################################################----##--##FILE NAMEpncodre.vhd--## TILE TYPEASCII(VHDL Code)--##--## IMPLEMENTATIONSU/rbu pn code formatter Receiver RAM--##FWL SU/rbu--##--########################################################################---- DESCRIPTIVE OVERVIEW-------------------------------------------------------该模块是保存各信道PN码的RAM--信道1有两个交替RAM组----------------------------------------------------------------------- LIBRARY DECLARATION -----------------------------------------------------------------------library IEEE;use IEEE std_logic_1164.all;USE IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;-----------------------------------------------------------------------ENTITY DECLARATION -----------------------------------------------------------------------ENTITY pncode12 ISPORT(RSCPIN std_logic; --rx clk ChipStrbIN std_logic; --pn chip en RxMstrRst_NIN std_logic; --同步复位活动低 SymStb IN std_logic; --使PN cnt开始 SFrameSyncEn IN std_logic; FrameSyncEnIN std_logic; --使扰码数据开始 PnFrmMk_Andy IN STD_LOGIC;--延迟帧脉 PnSuperFrmMk_AndyIN STD_LOGIC;--如果在帧时间内不 显示则扰码数 为零 ArmCPIN std_logic; --uP clk ArmNRW IN std_logic; --read/write_not pn_cs IN std_logic; --码片选择pn存储器ArmAdr IN std_logic_vector(7 DOWNTO 0); ArmDtIn IN std_logic_vector(7 DOWNTO 0); com_r_wn IN std_logic; --uP read/write_not com_dsn IN std_logic;--选通uP数据 PNC_Enable IN std_logic;--接通各自PN码 Scram_Enable IN std_logic; uPRWPN IN std_logic;--pn0和1用于信道1 sfrm_o OUT std_logic; frm_oOUT std_logic; PNArmDtOut OUT std_logic_vector(7 DOWNTO 0);--uP读数据口 ScrmPNCi OUT std_logic_vector(12 DOWNTO 1);--扰码数据帧 ScrmPNCq OUT std_logic_vector(12 DOWNTO 1); PN OUT std_logic_vector(12 DOWNTO 1);--四信道的实际PN SymStbPNoOUT std_logic; dtacknOUT std_logic);--管线延迟码元选通END pncode12;---------------------------------------------------- ARCHITECTURE DECLARATION----------------------------------------------------ARCHITECTURE struct of pncode12 IS COMPONENT ram 16×8ss PORT(WCLKIN std_logic;WE IN std_logic;D IN std_logic_vcctor(7 DOWNTO 0);A IN std_logic_vector(3 DOWNTO 0);O OUT std_logic_vector(7 DOWNTO 0)); END COMPONENT;---------------------------------------------------------需要产生五个RAM的信号------------------------------------------------------- SIGNAL WriteEnS std_logic_vector(11 DOWNTO 0); TYPE RamDtT IS ARRAY(0 TO 11)OF std_logic_vector(7 DOWNTO 0); SIGNAL RamDataOutRamDtT; SIGNAL RamDataInRamDtT; TYPE RamAddrT IS ARRAY(0 TO 11)OF std_logic_vector(3 DOWNTO 0); SIGNAL RamAddrRamAddrT;---------------------------------------------------------码片计数信号------------------------------------------------------- SIGNAL ChipCount std_logic_vector(6 DOWNTO 0); SIGNAL PNserstd_logic_vector(12 DOWNTO 1); SIGNAL RandomCount std_logic_vector(8 DOWNTO 0); SIGNAL RandomEnstd_logic; SIGNAL ScrmPNClLocali std_logic_vector(12 DOWNTO 1); SIGNAL ScrmPNClLocalq std_logic_vector(12 DOWNTO 1); SIGNAL FrameSync std_logic; SIGNAL SymStbPNoi std_logic;SIGNAL FsSt_r std_logic_vector(1 DOWNTO 0);SIGNAL SyncTime std_logic;SIGNAL ArmAddrLocal std_logic_vector(6 DOWNTO 0);SIGNAL WriteEnable std_logic;SIGNAL dsn std_logic;SIGNAL Aaa std_logic_vector(7 DOWNTO 4);SIGNAL dtackn_Istd_logic;SIGNAL SFrameSync,FrameSynstd_logic;--ag addedSIGNAL d_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d1_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d2_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d3_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d4_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d5_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d6_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d7_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d8_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d9_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d10_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d11_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d12_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d13_sfrm_ostd_logic_vector(1 DOWNTO 0);SIGNAL d14_sfrm_ostd_logic_vector(1 DOWNTO 0);BEGIN--+++++BLOCK 1 GOES UNTIL NEXT BLOCK 1 SIGNAL --产生12个独立RAMs RAM5×16×8sFOR i IN 0 TO 11 GENERATEURAM16×8sram16×8ss PORT MAP(WCLK =>ArmCP, WE =>WriteEnS(i), A =>RamAddr(i), D =>RamDataIn(i), O =>RamDataOut(i)); END GENERATE;--+++++BLOCK 1 END--+++++BLOCK 3 BEGIN--------------------------------------------------------------------------产生码片计数------------------------------------------------------------------------ ChipCounterPPROCESS(RSCP,RxMstrRst_N) BEGIN IF RxMstrRst N=′0′THEN ChipCount<=(OTHERS=>′0′); ELSIF RSCP′event AND RSCP=′1′THEN IF ChipStrb=′1′THEN--IF SymStb=′1′or FrameSyncEn=′1′THENIF SymStb=′1′THEN ChipCount<=(OTHERS=>′0′); ELSE ChipCount<=ChipCount+1; END IF;ELSE null;END IF;ELSE null; END IF; END PROCESS; dsn<=ArmCP;--+++++BLOCK 3 END--+++++BLOCK 2 BEGIN----------------------------------------------------------------------选择处理地址或码片对RAMs计数-------------------------------------------------------------------------- ramaddrPPROCESS(uPRWPN,ChipCount,ArmAdr,dsn) BEGIN IF uPRWPN=′1′THEN RamAddr <=(OTHERS=>ArmAdr(3 DOWNTO 0)); dtackn_I <=dsn; ELSE RamAddr <=(OTHERS=>ChipCount(6 DOWNTO 3)); dtackn_I <=′1′; END IF; END PROCESS; dtackn<=dtackn_I;--++++BLOCK 2 END--++++BLOCK 6 BEGIN----------------------------------------------------------------------------实际uP读功能----------------------------------------------------------------------------PNArmDtOut<=RamDataOut(conv_integer(unsigned(ArmAdr(7 DOWNTO 4)))); read decodePPROCESS(Aaa,RamDataOut,dtackn_I) BEGIN CASE Aaa IS WHEN″0000″=>PNArmDtOut<=RamDataOut(0); WHEN″0001″=>PNArmDtOut<=RamDataOut(1); WHEN″0010″=>PNArmDtOut<=RamDataOut(2); WHEN″0011″=>PNArmDtOut<=RamDataOut(3); WHEN″0100″=>PNArmDtOut<=RamDataOut(4); WHEN″0101″=>PNArmDtOut<=RamDataOut(5); WHEN″0110″=>PNArmDtOut<=RamDataOut(6); WHEN″0111″=>PNArmDtOut<=RamDataOut(7); WHEN″1000″=>PNArmDtOut<=RamDataOut(8); WHEN″1001″=>PNArmDtOut<=RamDataOut(9); WHEN″1010″=>PNArmDtOut<=RamDataOut(10); WHEN″1011″=>PNArmDtOut<=RamDataOut(11); WHEN OTHERS=>PNArmDtOut<=(OTHERS=>′0′); END CASE; END PROCESS;--+++BLOCK 6 END--+++BLOCK 2 BEGIN---------------------------------------------------------------------------实际uP读功能------------------------------------------------------------------------- ------------------------------------------------------------------------ --连接RAM数据到RAM输入数据口 ------------------------------------------------------------------------ connectPPROCESS(ArmDtIn) BEGIN FOR i IN 0 TO 11 LOOP RamDataIn(i)<=ArmDtIn; END LOOP; END PROCESS; ------------------------------------------------------------------------ --产生写选通数据 ------------------------------------------------------------------------ WriteEnable<=pn_cs AND NOT(com_r_wn)AND NOT(com_dsn); Aaa<=ArmAdr(7 DOWNTO 4); write_decodepPROCESS(Aaa,WriteEnable,uPRWPN) BEGIN WriteEnS<=(OTHERS=>′0′); IF uPRWPN=′1′THEN CASE Aaa IS WHEN″0000″=>WriteEnS(0)<=WriteEnable;WHEN″0001″=>WriteEnS(1)<=WriteEnable; WHEN″0010″=>WriteEnS(2)<=WriteEnable; WHEN″0011″=>WriteEnS(3)<=WriteEnable; WHEN″0100″=>WriteEnS(4)<=WriteEnable; WHEN″0101″=>WriteEnS(5)<=WriteEnable; WHEN″0110″=>WriteEnS(6)<=WriteEnable; WHEN″0111″=>WriteEnS(7)<=WriteEnable; WHEN″1000″=>WriteEnS(8)<=WriteEnable; WHEN″1001″=>WriteEnS(9)<=WriteEnable; WHEN″1010″=>WriteEnS(10)<=WriteEnable; WHEN″1011″=>WriteEnS(11)<=WriteEnable; WHEN OTHERS=>WriteEnS<=(OTHERS=>′0′); END CASE; ELSE WriteEnS<=(OTHERS=>′0′); END IF; END PROCESS;--++BLOCK 6END--+++BLOCK7 BEGIN--------------------------------------------------------------串行化PN输出------------------------------------------------------------ PNser(1)<=RamDataOut(0)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(2)<=RamDataOut(1)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(3)<=RamDataOut(2)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(4)<=RamDataOut(3)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(5)<=RamDataOut(4)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(6)<=RamDataOut(5)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(7)<=RamDataOut(6)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(8)<=RamDataOut(7)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); pNser(9)<=RamDataOut(8)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(10)<=RamDataOut(9)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(11)<=RamDataOut(10)(conv_integer(unsigned(ChipCount(2 DOWNTO 0)))); PNser(12)<=RamDataOut(11)(conv_integer(unsigned(ChipCount(2 DOWNTO 0))));--------------------------------------------------------------寄存并使最后PN输出和管线SymStb匹配------------------------------------------------------------ PNRegEnPPROCESS(RSCP,RxMstrRst_N) BEGIN IF RxMstrRst_N=′0′THENPN<=(OTHERS=>′0′);SymStbPNoi<=′0′; ELSIF RSCP′event AND RSCP=′1′THENIF ChipStrb=′1′THEN SymStbPNoi<=SymStb; IF PNC_Enable=′1′THENPN<=PNser; ELSE PN<=(OTHERS=>′0′); END IF;ELSE null;END IF; ELSEnull; END IF; END PROCESS; SymStbPNo<=SymStbPNoi AND ChipStrb;--++++BLOCK 7 END--++++BLOCK 8 BEGIN------------------------------------------------------------------延迟脉冲和超帧脉冲----------------------------------------------------------------DelayPROCESS(RSCP,RxMstrRst_N,SFrameSyncEn,FrameSyncEn) BEGIN IF RxMstrRst_N=′0′THEN sfrm_o<=′0′; frm_o<=′0′; d1_sfrm_o<=″00″; d2_sfrm_o<=″00″; d3_sfrm_o<=″00″; d4_sfrm_o<=″00″; d5_sfrm_o<=″00″; d6_sfrm_o<=″00″; d7_sfrm_o<=″00″;d8_sfrm_o<=″00″;d9_sfrm_o<=″00″;d10_sfrm_o<=″00″;d11_sfrm_o<=″00″;d12_sfrm_o<=″00″;d13_sfrm_o<=″00″;d14_sfrm_o<=″00″;d_sfrm_o<=″00″; ELSIF RSCP′event AND RSCP=′1′THENd_sfrm_o(1)<=SFrameSyncEn;d_sfrm_o(0)<=FrameSyncEn;d1_sfrm_o<=d_sfrm_o;d2_sfrm_o<=d1_sfrm_o;d3_sfrm_o<=d2_sfrm_o;d4_sfrm_o<=d3_sfrm_o;d5_sfrm_o<=d4_sfrm_o;d6_sfrm_o<=d5_sfrm_o;d7_sfrm_o<=d6_sfrm_o;d8_sfrm_o<=d7_sfrm_o;d9_sfrm_o<=d8_sfrm_o;d10_sfrm_o<=d9_sfrm_o;d11_sfrm_o<=d10_sfrm_o;d12_sfrm_o<=d11_sfrm_o;d13_sfrm_o<=d12_sfrm_o;d14_sfrm_o<=d13_sfrm_o; sfrm_o<=d14_sfrm_o(1); frm_o<=d14_sfrm_o(0); END IF; END PROCESS;--++BLOCK 8 END--++++BLOCK 4 BEGIN--------------------------------------------------------------------------------现在输出一个与帧同步的随机数据------------------------------------------------------------------------------ ----------------------------------------------------------------------------- --首先给每个码元产生一个随机计数 ----------------------------------------------------------------------------- RandomCntPPROCESS(RSCP,RxMstrRst_N) BEGIN IF RxMstrRst_N=′0′THEN RandomCount<=(OTHERS=>′0′); SFrameSync<=′0′; FrameSyn<=′0′; ELSIF RSCP′event AND RSCP=′1′THEN IF PnSuperFrmMk_Andy=′1′THEN--agSFrarneSync<=′1′; ELSEnull; END IF; IF PnFrmMk_Andy=′1′THEN--ag延迟的脉冲RandomCount<=(OTHERS=>′0′);FrameSync<=′1′; ELSIF SymStb=′1′AND FrameSync=′1′THENRandomCount<=RandomCount+1;IF RandomCount>340 THENFrameSync<=′0′; RandomCount<=(OTHERS=>′0′); IF SFrameSync=′1′THEN SFrameSync<=′0′; ELSE END IF;ELSEEND IF; ELSE END IF; ELSE null; END IF; END PROCESS; SyncTime<=′1′WHEN RandomCount>334 ELSE′0′;--ag--SyncTime<=′1′WHEN RandomCount>338 or RandomCount<4 ELSE′0′;--++++BLOCK 4 END--++++BLOCK 5 BEGIN PROCESS(ChipCount,RandomCount) BEGIN --IF ChipCount(0)=′0′AND -- RandomCount(5 DOWNTO 0)=ChipCount(6 DOWNTO 1)THEN IF RandomCount(6 DOWNTO 0)=ChipCount THEN RandomEn<=′1′; ELSE RandomEn<=′0′; END IF; END PROCESS;--+++BLOCK 5 END--+++BLOCK 7 BEGIN DelayPPROCESS(RSCP,RxMstrRst_N) BEGIN IF RxMstrRst_N=′0′THEN FsSt_r<=(OTHERS=>′0′); ELSIF RSCP′event AND RSCP=′1′THEN IF(SymStbPNoi AND ChipStrb)=′1′THENFsSt_r<=FrameSync &amp; SyncTime; ELSEnull; END IF; ELSE null; END IF; END PROCESS; ------------------------------------------------------------------------------ --当随机En高时即俘获pn ------------------------------------------------------------------------------ ScramblePPROCESS(RSCP,RxMstrRst_N) BEGIN IF RxMstrRst N=′0′THEN ScrmPNCi<=(OTHERS=>′0′); ScrmPNCq<=(OTHERS=>′0′); ELSIF RSCP′event AND RSCP=′1′THEN IF RandomEn=′1′AND ChipStrb=′1′THENScrmPNClLocali<=PNser;ScrmPNClLocalq<=PNser; ELSEnull; END IF; IF(SymStbPNoi AND ChipStrb)=′1′THEN CASE FsSt_r ISWHEN″11″=>--在同步时间为零 ScrmPNCi<=(OTHERS=>′0′); ScrmPNCq<=(OTHERS=>′0′);WHEN″10″=> --当需要扰码数据 IF Scram_Enable=′1′THEN ScrmPNCi<=ScrmPNClLocali; ScrmPNCq<=ScrmPNClLocalq; ELSE ScrmPNCi<=(OTHERS=>′0′); ScrmPNCq<=(OTHERS=>′0′); END IF;WHEN OTHERS=> ScrmPNCi<=(OTHERS=>′0′); ScrmPNCq<=(OTHERS=>′0′); END case; ELSE null; END IF; ELSE null; END IF;END PROCESS;--++++BLOCK7 ENDEND struct;]]></pre>Copyright1996,1997,Lockheed Martin Corporation版权所有,保留全部权利应指出的是,以上提供的具体数字和数值只是示例性的,并不是限制性的。本发明可用于具有其他数字和数值的情况。
因此,本发明提供了用来减小多用户干扰的装置和方法。这种装置和方法减小了在多个干扰信号的背景中对所需信号跟踪的抖动。
显然,根据以上精神实质本发明的实施方式可以作出种种修改和变动。因此,可以理解,以上所介绍的只是作为所附权利要求范围内的实施例和等效实施方式,本发明可以用与以上具体说明不同的方式实现。
权利要求
1.一种数据处理器,包括对一个数据流进行扰码以产生一个扰码数据流的装置;以及对所述扰码数据流进行扩频的装置。
2.一种在至少一个无线电基站与多个用户单元之间传送信息信号的方法,其中所述至少一个基站和所述多个用户单元每个都包括用于通信的一个发射机和一个接收机,所述方法包括下列步骤在一个通信源,用一个唯一标识所述多个用户单元之一的扰码模式对一个信息信号进行扰码;将扰码信息信号扩频到至少占用可用传输带宽的一部分,产生一个扩频通信信号;向一个信道发送所述扩频通信信号;在一个通信目的地,从所述信道接收扩频通信信号;以及对接收的通信信号进行解扩和解扰,得出所述信息信号。
3.一种如在权利要求2中所提出的传送信息信号的方法,其中所述扰码模式包括对所述多个用户单元的每一个都是唯一的一系列比特。
4.一种如在权利要求2中所提出的传送信息信号的方法,其中所述对信息信号扰码的步骤包括下列步骤提供包括一系列比特的扰码模式;以及将所述信息信号与这一系列比特相乘,产生所述通信信号。
5.一种如在权利要求2中所提出的传送信息信号的方法,其中所述扩频码是一个伪随机扩频码,具有与其他伪随机码扩频码基本正交的关系,而所述信道形成一个码分多地(CDMA)扩频通信系统的一部分。
6.一种如在权利要求5中所提出的传送信息信号的方法,其中所述扰码模式包括一个基本上与伪随机扩频码的比特模式相同的比特模式,而所述扰码模式的比特频率基本上与所述信息信号的比特频率相同。
7.一种如在权利要求2中所提出的传送信息信号的方法,其中所述信息信号包括一个传送传输数据的帧结构,所述帧结构包括一个指示一个帧的开始的帧同步部分、一个控制部分和多个传输数据字节。
8.一种如在权利要求7中所提出的传送信息信号的方法,其中所述扰码步骤对帧结构内的多个传输数据字节进行扰码。
9.一种如在权利要求7中所提出的传送信息信号的方法,其中所述扰码步骤对帧结构内的控制部分和多个传输数据字节进行扰码。
10.一种如在权利要求7中所提出的传送信息信号的方法,所述方法还包括下列步骤在所述扰码步骤前,对多个传输数据字节进行卷积编码和收缩;以及在所述解扰步骤后,对帧结构内的多个传输数据字节进行Viterbi解码。
11.一种通信系统,包括至少一个具有一个发射机和一个接收机的基站;多个各具有一个发射机和一个接收机的用户单元。一个扰码控制电路,用来提供分别唯一标识所述多个用户单元的相应扰码模式;配置在所述基站和所述多个用户单元中的至少一个内用一个标识所述多个用户单元之一的扰码模式对一个信息信号进行扰码从而产生一个用于在所述基站与所述多个用户单元之一之间进行通信的通信信号的装置;对所述通信信号进行扩频的装置;以及配置在所述基站和所述多个用户单元中的至少一个内对所述通信信号进行解扩和解扰从而得出所述信息信号的装置。
12.一种如在权利要求11中所提出的通信系统,其中所述扰码控制电路提供的所述扰码模式包括对所述多个用户单元的每一个都是唯一的一系列比特。
13.一种如在权利要求12中所提出的通信系统,其中所述对所述信息信号扰码的装置还包括一个乘法器,用来将所述信息信号与所述一系列比特相乘,产生所述通信信号。
14.一种如在权利要求11中所提出的通信系统,其中所述扰码控制电路由一个状态机控制。
15.一种如在权利要求11中所提出的通信系统,其中所述信息信号包括一个传送传输数据的帧结构,所述帧结构包括一个指示一个帧的开始的帧同步标志、多个控制字节和多个传输数据字节,而所述对所述信息信号扰码的装置还包括具有一个第一输入端、一个第二输入端和一个输出端的同步控制电路,所述第一输入端接收一个帧同步信号,而所述第二输入端接收一个时钟信号,所述同步控制电路将所述第一和第二输入端的输入信号合并,将得到的所述帧同步标志和所述多个控制字节加到所述输出端上;以及一个具有一个第一输入端、一个第二输入端和一个第三输入端的扰码器,所述第一输入端与所述扰码控制电路连接,用来接收所述扰码模式,所述第二输入端与所述同步控制电路的所述输出端连接,用来接收所述帧同步标志和所述多个控制字节,而所述第三输入端用来接收所述多个传输数据字节,所述扰码器对至少所述多个传输数据字节进行扰码,将所述至少经扰码的多个传输数据字节、所述第一和第二输入端的输入信号合并,提供所述帧结构。
16.一种如在权利要求11中所提出的通信系统,其中所述信息信号包括一个传送传输数据的帧结构,所述帧结构包括一个指示一个帧的开始的帧同步标志、多个控制字节和多个传输数据字节,而所述对所述信息信号扰码的装置还包括具有一个第一输入端、一个第二输入端和一个输出端的同步控制电路,所述第一输入端接收一个帧同步信号,而所述第二输入端接收一个时钟信号,所述同步控制电路将所述第一和第二输入端的输入信号合并,将得到的所述帧同步标志和所述多个控制字节加到所述输出端上;以及一个具有一个第一输入端、一个第二输入端和一个第三输入端的扰码器,所述第一输入端与所述扰码控制电路连接,用来接收所述扰码模式,所述第二输入端与所述同步控制电路的所述输出端连接,用来接收所述帧同步标志和所述多个控制字节,而所述第三输入端用来接收所述多个传输数据字节,所述扰码器对至少所述多个传输数据字节和所述多个控制字节进行扰码,将所述至少经扰码的多个传输数据字节和经扰码的多个控制字节、所述第一输入端的输入信号、所述帧同步标志合并,提供所述帧结构。
17.一种如在权利要求11中所提出的通信系统,所述系统是一个码分多址(CDMA)扩频通信系统,它还包括提供唯一标识所述多个用户单元中的每个用户单元的扩频序列的扩频控制电路;以及将标识所述多个用户单元中的一个有关用户单元的所述扩频序列作用到所述通信信号上的装置。
18.一种如在权利要求17中所提出的通信系统,其中所述多个用户单元中的一个用户单元的扰码模式包括一个基本上与所述用户单元的所述扩频序列的比特模式相同的比特模式,而所述扰码模式的比特频率基本上与所述信息信号的比特频率相同。
19.一种如在权利要求11中所提出的通信系统,所述通信系统还包括一个对所述信息信号进行编码的卷积编码器;以及收缩所述编码信息信号的装置,所述收缩装置具有一个与所述卷积编码器连接的输入端和一个与所述扰码装置连接的输出端。
20.一种通信系统,包括至少一个具有一个发射机和一个接收机的基站;多个各具有一个发射机和一个接收机的用户单元;一个配置在所述基站和所述多个用户单元中的至少一个内提供要传输的数据的数据源;对所述数据源进行编码的装置,所述装置提供各包括一个频率为比特发生率的同相和正交的信道;一个用相应扰码序列对所述同相信道和所述正交信道中的每个信道进行扰码的扰码电路;以及一个用相应扩频序列对所述经扰码的同相信道和所述经扰码的正交信道中的每个信道进行扩频电路,其中,在所述基站和所述多个用户单元中的所述至少一个内,所述发射机发射所述经扩频、扰码的同相信道和所述经扩频、扰码的正交信道。
21.一种如在权利要求20中所提出的通信系统,其中所述编码装置还包括一个对所述数据进行编码从而提供经编码的同相和正交信道的卷积编码器;以及收缩所述经编码的同相和正交信道从而提供经收缩、编码的同相和正交信道的装置。
22.一种如在权利要求21中所提出的通信系统,所述系统还包括在所述基站和所述多个用户单元中的至少一个内对所述发送的经收缩、编码、扩频和扰码的同相和正交信道进行解扩、解扰、解收缩和解码从而得到所述数据的装置。
全文摘要
诸如扩频通信系统那样的多用户通信系统(10)内的用户(14)向系统的中心站或基站(12)发送信号和从那里接收信号。为了保证系统(10)正常工作,必需避免这些用户信号相互干扰。为此,每个用户的数据各自予以扰码,使不同用户发送的数据随机化,以改善接收机(21)的跟踪性能。每个用户(14)的数据以在系统(10)中对这个用户是唯一的方式独立进行扰码,以改善接收机(21)的跟踪性能和检测性能。这种扰码使多用户干扰成为零均值,从而能通过积分来平均掉多用户干扰。扰码所用的模式或序列与扩频所用的模式或序列除了频率以外最好完全一致。
文档编号H04L9/20GK1266567SQ98808038
公开日2000年9月13日 申请日期1998年6月8日 优先权日1997年6月11日
发明者L·A·布特菲尔德, T·R·吉尔洛伦兹, 小L·A·吉布森, D·M·格里芬, J·M·哈里斯, S·B·珀金斯, R·W·斯特加尔 申请人:L-3通讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1