CDMA接入信道原理与仿真分析

更新时间:2024-06-10 01:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 接入信道原理

在CDMA系统无线链路中,各种逻辑信道都是由不同的码序列来区分的。因为任何一个通信网络除主要传输业务信息外,还必须传输有关控制信息。对于大容量系统一般采用集中控制方式,以便加快建立链路的过程。为此,CDMA蜂窝系统在基站到移动台的传输方向(前向)上设置了导频信道、同步信道、寻呼信道和正向业务信道,这些信道每路都经过适当的Wash函数正交扩展,然后以1.2288Mc/s固定速率由正交相位导频PN序列扩展;在移动台至基站的传输方向(反向)上设置了接入信道和反向业务信道。反向信道上发送的所有数据都经过卷积编码、块交织、64阶正交调制和长码直接序列扩展再发送。因此可得接入信道的组成方框图如图2.1所示:

码元 接入信道比特(每帧88比特) 4.4kbps 4.8kbps I信道序列1.2288Mc/s 4.8 ks/s 14.4 ks/s 28.8 ks/s 加编码器尾比特 卷积编码器 码元重复 码元 分组交织器 64进制 正交调制器 调制码元 (沃尔什子码) coswt 基带滤波器 + + D + S(t) 基带滤波器 长码产生器 + Q信道序列+ simwt 1.2288Mc/s 长码掩码 图2.1 接入信道组成方框图

下面对反向信道数据经过的主要模块原理进行详细叙述。

2.1 卷积编码原理

卷积码(convolutional code)是由伊利亚斯(P.Elias)发明的一种非分组码。现代数字通信系统常常设计成以非常高的速率传输。卷积码已应用于很多个同系统,例如,不仅在CDMA移动通信系统种应用卷积编码/译码,而且在空间和卫星也应用。为了防止系统出错,经常会使用卷积码。信息数据序列划分成

许多长度为k的小块,每段小块被编码长度为n的码字符号。卷积码(n,k,m)由k个输入、具有m阶存储的n个输出线性时序电路实现。通常,n和k是较小的整数,且k

卷积码(n,k,m)指定的码率为:R=k/n,编码器级数为m=K—1,其中K是码的约束长度。图2.1.1所示卷积码编码器的一般原理框图。编码器由三种主要元件构成,包括Nk级寄存器、n各模2加法器和一个旋转开关。每个模2加法器的输入端数目可以不同,它连接到一些移存器的输出端。模2加法器的输出端接到旋转开关上。将时间分成等间隔的时隙,在每个时隙中有K比特从左端进入移存器,并且移存器各级暂存的信息向右移K位。旋转开关每时隙旋转一周,输出n比特(n>k)。

1 ? k 1 ? k 每次输入k比特 1 ? k ? 1 ? k Nk级移存器 1 + 2 + n + n个模2加法器 每输入k比特旋转1周 编码输出 图2.1.1 卷积编码器的一般原理框图

接入信道和反向业务信道所传输的数据都要进行卷积编码,卷积编码的码率为1/3,约束长度为9,设卷积编码器的生成多项式为:

g1(x)?1?x2?x3?x5?x6?x7?x8

g2(x)?1?x1?x3?x4?x7?x8

1258g(x)?1?x?x?x?x3

下面通过图2.1.2具体讨论该卷积编码过程:

输入bi b8 b7 b6 b5 b4 b3 b2 b1 b0 + + + 编码输出

图2.1.2 (2,1,8)卷积编码原理框图

设输入信息比特序列为?b0b1?b8?,则输入bi时,编码器输出3b即ci,di,ei,输入和输出对应的关系如下:

ci=b8⊕b7⊕b6⊕b5⊕b3⊕b2⊕b0 di=b8⊕b7⊕b4⊕b3⊕b1⊕b0 ei=b8⊕b5⊕b2⊕b1⊕b0

2.2交织技术原理

直接扩频CDMA支持同时在数量很大的用户群体而不光是单个用户之间的数字通信服务。这将反映在如何利用额外的维数和冗余来提高性能。使用了两种处理技术:用于提高额外冗余的交织技术和用于前向纠错的编码技术。

交织技术作为一项改善通信系统性能的方式,将数据按照一定的规则打乱,把原先聚集成片的误码分散,使得突发性错误转化为随机性错误,这样使得错误码字个数在纠错码的纠错范围内,接收端就可以用较短的码字进行纠错。

纠错编码基本上都是用于无记忆信道的,即针对随机错误设计的,然而噪声、干扰等会引起突发错误(连续多个错误),单纯地靠纠错编码不能抵抗突发错误,所以在实际应用中往往要结合数据交织技术。在发送端加上数据交织器,在接收端加上去交织器,使信道中的突发错误分散开来,将原来属于突发差错的信道改成独立的随机差错信道,从而充分发挥纠错编码的作用,因此交织技术实际上是一种信道改造技术。

交织常与重复或编码相结合,是一种防止突发错误的时间分集形式.符号在进入突发信道传送之前被改变顺序或进行交织.如果传送时发生突法错误,恢复

原来顺序就可以在时间上分散错误.如果交织器设计良好,那么错误将会随机地分布,用编码技术容易纠正.

交织是排列符号序列的过程。这种为获得时间分集的重排过程称为交织,可以考虑两种方法:块交织和卷积交织,其中最常见的类型是块交织。这种方式常在数据分块分帧的情况下使用,如IS-95系统.另一方面,卷积交织对连续少数据流来说是比较实用的类型。块交织很容易实现,而卷积交织有很好的性能。IS-95用了以类似块交织技术为基础的交织形式,将在下面进一步讨论。

假定由一些4比特组成的消息分组,把4个相继分组中的第1个比特取出来,并让这4个第1比特组成一个新的4比特分组,称作第一帧,4个消息分组中的比特2~4,也作同样处理,如图2.1.3所示。

然后依次传送第1比特组成的帧,第2比特组成的帧,??。在传输期间,帧2丢失,如果没有交织,那就会丢失某一整个消息分组,但采用了交织,仅每个消息分组的第2比特丢失,再利用信道编码,全部分组中的消息仍能得以恢复,这就是交织技术的基本原理。概括地说,交织就是把码字的b个比特分散到n个帧中,以改变比特间的邻近关系,因此n值越大,传输特性越好,但传输时延也越大,所以在实际使用中必须作折衷考虑。

1 x 3 4 1 x 3 4 1 x 3 4 1 x 3 4 帧2丢失后的消息分组 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 消息分组 交织 交织后的消息分组 图2.1.3 交织原理

IS-95系统交织一帧之内的数据,除了同步信道之外,其他信道都是20毫秒,同步信道的一帧周期上26.66毫秒.因此,所有的IS-95的交织器在块数据上操作.严格地说,并没有用块交织,但是交织的类型设计要依赖于信道和原始数据率.例如,反向链路通过矩阵之中以非传统的方法读出各行数据以改变最小间隔特性.

2.3正交调制原理

沃尔什函数是正交的、归一化的和完备的。“正交”是指两个不同的函数相乘,并在给定区间上积分,其结果为0。“归一化”的意思是如果两个函数相同,那么它们乘积的积分为1。最后,“完备”大致可理解为:在给定的区间内,可

使用这个正交函数集中函数的线性组合来逼近任意给定的函数,在正交函数的个数趋于无限的条件下,均方误差在“均值意义上”趋近于0。 2.3.1 Walsh函数波形

Walsh函数是一种非正弦的完备函数系,其连续波形如图所示。由于它仅有两个可能的取值:+1或-1,所以比较适合用来表示和处理数字信号。利用Walsh函数的正交性,可获得CDMA的地址码。若对图中的Walsh函数波形在8个等间隔采样,即得到离散Walsh函数,可用8*8的Walsh函数矩阵表示。采用负逻辑从上往下排列可得图所示函数对应的矩阵如式所示: 2.3.2 沃尔什函数的产生方法

沃尔什函数的产生方法有多种,可以使用莱德马契函数,也可以使用哈达玛短阵,还可以利用沃尔什函数自身的对称特性。下面仅以用哈达玛矩阵产生方式来介绍。

哈达码矩阵是一个方阵,方阵的每一个元素为+1或-1,列与列之间是正交的。如果一个矩阵的第列的元素都是1,那么我们说这个矩阵是规范。可以使用0代替+1,而使用1代替-1,即使用逻辑值{0,1}来表示哈达码矩阵,那么2×2的2阶哈达码矩阵可以表示为:

H??11???00?2?1?1??01?????

如果HN是一个N×N的哈达码矩阵,于是有:

T HNHN?NIN

这里IN 是一个N×N的单位。如果规定N≥1为哈达码矩阵的阶数,那么N可取值为1,2,或4t(t为整数).设Ha和Hb分别为 a阶和b阶的哈达码矩阵,那么Ha×Hb=Hab的阶数为ab,运算规则如下:如果Ha矩阵中一个元素为+1(或逻辑值 0),那么用Hb来代入,如果该元素为-1(或为逻辑值1),则用-Hb(或Hb的补)代入。如果N为2的幂,并规定H1=[+1]=[0],于是H2N可以由下式求得: ?HNH2N?? ??HN

___HN?____?HN??这里规定HN为HN取负(为其补值)。N?2t的哈达码矩阵可以由N=2阶的哈达码矩阵的规范形式连乘得到。

如果N?2t,则所有的哈达玛矩阵的行序列和列序列都是沃尔什序列。然而,用沃尔什函数表示和哈达玛函数表示之间存在一些差别,即哈达玛函数的行序号和列序号都与符号改变(过零点)的次数没有关系,而沃尔什函数却具有这种关系。显然,由哈达玛函数生成的沃尔什函数不是按照符号改变的次数排序的,因而需要一种方法对这两种排序进行相互转换。

2.4直接序列扩展

反向CDMA信道中,反向业务信道和接人信道将由长码直接序列扩展,以提供有限的保密性。对反向业务信道,直接序列(DS)扩展操作包含对数据脉冲随机发生器输出数据和长码模2加。数据脉冲随机发生器产生掩码符号0和1,随机地掩蔽由于码重复产生的冗余数据。掩码符号由帧数据率和长码的最后14比特位确定。对于接人信道,DS扩展操作包含64阶正交调制器输出和长码的模2加。

设d(t)为Walsh码片调制的数据序列,Tb为数据比特时间间隔。Walsh调制的数据序列被长码c(t)的扩展则码片模2加。每个c(t)脉冲称为码片,Tc表示码片时间间隔,Tb=4Tc。扩展PN码片序列速率固定在1.2288Mc/s。由于6个编码符号由64个时间正交Walsh函数之一调制,调制符号发送速率固定在28.8/6=4.8ks/s。因此,每个Walsh码片由4个PN码片扩展,即

1.2288?106/307.2?103?4。由1.2288Mc/s长码PN码片相乘的直接序列d(t)如

图4.1所示。

图 2.4.1

2.5 长码掩码产生原理

长码提供了限的保密性。长码是242?1的PN序列,用于前向CDMA信道的扰码和反向CDMA信道的扩领。长码在前向业务信道和反问业务俏道惟一标识移动台。长码的特点是使用长码掩码来形成公用长码或私有长码。长码还用在相同

CDMA信道上区分多重接人信道。

当在当在接入信道上传输时,先进行长码直接序列扩展,然后发送。扩展操作包括64阶正交调制器输出序列和长码的模2加,长码周期为242?1个码片,由码发生器的242?1LFSR抽头多项式P(x)指定:

p(x)?1?x1?x2?x3?x5?x6?x7?x10?x16?x17?x18?x19?x21

2526273133354222252627313335?x22??xx??xx??xx??xx??xx??xx??xx?x42

2.6 短码产生原理

正交扩频后的信号,都要进行四相调制。在同向支路(I)和正交支路(Q)引入两个正交的m序列,即I信道引导PN序列和Q信道引导PN序列,序列周期长度为32768,其构成是以下列多项式为基础的:

对于相同I序列:

PI(x)?1?x5?x7?x8?x9?x13?x15 对于正交相位Q序列:

345610111215 P(x)?1?x?x?x?x?x?x?x?xQ引导PN序列的主要作用是给不同基站发出的信号赋予不同的特征,便于移动台识别所需的基站。不同的基站虽然使用相同的PN序列,但个基站PN序列的自相关特性在时间偏移大于一个子码码元宽度后,其自相关系数值接近0,因而移动台用相关器很容易将不同基站的信号区分出来。通常一个基站的PN序列在其所有配置的频率上,都采用相同的时间偏置,而在一个CDMA蜂窝系统中,时间偏置也可以再用。

第二章 信道的仿真与分析

3.1 信道的总体仿真图

根据系统接入信道的原理及原理框图,得出CDMA通信系统接入信道的总体仿真图如下:

图3.1 信道总体仿真图

根据CDMA通信系统接入信道的组成方框图,大致可以将接入信道分成3个组成部分:

1.帧处理子系统。帧处理子系统由加编码尾比特、卷积编码器及码元重复3个环节构成,研究中调用Bemoulli Binary Generator产生成帧随机数据,调用General CRC Generator、Zero Pad、Convolutional Encoder以及Repeat模块依次实现加编码尾比特,卷积编码与码元重复。

2.交织子系统。交织子系统用于实现码元的分组交织,研究中调用Matrix Interleaver、Bit to Integer、General Block Deinterleaver以及Integer to Bit Converter模块实现块交织。

3.调制子系统。调制子系统主要由正交调制器、长码产生器、IQ信道序列等环节组成,研究中调用IS-95A Rev Ch Walsh Modulator 、IS-95A Long Code Generator、PN Sequnce Generator等模块依次实现了码元的正交调制、长码掩码的产生及IQ信道序列的产生。

下面分别对这3个子系统进行仿真、分析与验证:

3.2 帧处理子系统

在帧处理子系统中,调用Bemoulli Binary Generator模块产生成帧随机信号,所产生的码序列服从贝努力概率分布,研究中,所需的码序列是基于帧格式输出的,所以这里将贝努力的输出设置为基于帧格式输出,根据原理,设置为88bit/帧,帧长为20ms。接着调用General CRC Generator模块产生8位循环冗余检验(CRC)码,CRC码有两个作用:一是帧校验,指示该帧是否有错;二是指示传输速率。接着调用Zero Pad模块,在数据帧末端加入8个bit的0,用于对卷积编码器进行复位,同时使得数据速率达到所需的要求。然后调用Convolutional Encoder对码元序列进行卷积编码,为了使块交织模块输入的数据为576个符号,在这里调用Repeat模块对码元进行重复,使得输出满足要求。各模块详细设置如下:

图3.2.1 Bernoulli模块设置

Bernoulli模块设置说明:

⑴Probability of a zero:0.5表示模块以0.5的概率输出1,,0.5的概率输出0。

⑵Sample time:表示抽样时间,20/1000表示的是20毫秒,因为输出序列帧长为20ms ;80是指每帧中含有80个比特数据,对于4800bit/s的速率而言,应该每帧的比特数为96个,由于后面的CRC产生器和Zero Pad分别产生了8个冗余循环码和8个尾比特0码,所以这里设置为80。综上所得这里每个比特

的抽样时间为20/1000/80s.

⑶Frame-based outputs:将输出数据设置为基于帧结构的方式,由于研究所需的数据输入必须基于帧数据结构的,所以这里选择Frame-based outputs的选项。

⑷Samples per frame:由于每帧的数据是80比特,所以这里将抽样次数设置为80。

图3.2.2 CRC模块设置

CRC模块设置说明:

Generator polynomial:对于反向信道的Half Rate(半速率,也即为4800bit/s)而言,Generatal CRC Generator的生成多项式为:

3478g(x)?1?x?x?x?x?x 所以将Generator polynomial设置为:[1 1 0 1 1 0 0 1 1]。

图3.3.2 Bit to Interger Converter模块设置

Bit to Interger Converter设置说明:

Number of bits interger:为了将每行的18位比特转换成一个整数,所以这里的参数设置为18。

图3.3.3 General Block Interleaver模块设置

General Block Interleaver模块设置说明:

Elements:该参数是指交织模块的输出顺序,这里设置为[1:1:32]是指按1-32行的顺序依次输出。

图3.3.4 Integer to Bit Converter模块设置

Integer to Bit Converter模块设置说明:

Number of bits per integer:为了对Bit to Interger Converter输出的数据进行还原,所以这里设置为18,即将每个整数转换为18位二进制比特。

综上所述,可得交织子系统模块的仿真图如下所示:

图3.3.5 交织子系统仿真图

其中To Workspace模块是为了将数据输出到Matlab的workspace窗口,用于验证交织的过程。下面对Repeat模块输出取前108位数据进行分析验证:

Repeat模块输出即simout4输出前108位数据按[32*18]排列为: 111111001111001100 110011000000111111 000000000000000000 001100110000000000 001100110011111100 001100110011000011

Matrix Interleaver模块即simout5输出的前108位数据按[32*18]排列为: 11000011010111110001011111010010 11000011010111110001011111010010 10011110000101001010101000110100 100111100001

对于矩阵交织器其作用是把输入的数据按行写入矩阵中,然后按列顺序输出数据。比较simout4与simout5的数据,可知simout5输出的数据是simout4的数据按列输出的排列,即simout输出数据为simout4的转置,理论与仿真结果想吻合。

Bit to Interger Converter模块即simout6输出的前6位数据为: 200060,97580,55237,250526,21160,215521。

由于Bit to Interger Converter模块的作用是将每行的比特数转换成一个整数,对于第一行数据111111001111001100,我们将其转换为十进制的数据为200060,第2-6行转换成十进制为97580,55237,250526,21160,212221。对比Bit to Interger Converter模块输出数据可以发现,数据是完全吻合的。

General Block Interleaver模块即simout7输出数据为: 200060,97580,55237,250526,21160,215521。

由于General Block Interleaver模块的作用是把输入的数据按照自己设定的顺序进行置换,实现交织的过程,由于Elements设置为[1:1:32],所以顺序包吃不变,改变Elements的参数,即可改变数据输出的顺序。

Integer to Bit Converter模块输出前108位数据为: 110000110101111100 010111110100101100 001101011111000101 111101001010011110 000101001010101000 110100100111100001

对比Integer to Bit Converter模块输出数据与Matrix Interleaver模块数据可得,数据输出理论与仿真相吻合。

3.4 调制子系统

根据接入信道的原理框图,可以将调制子系统分成两部分:正交扩频与四相调制。仿真中,调用IS-95A Rev Ch Walsh Modulator模块对交织后的数据进行正交调制,正交调制后的信号再与长码进行模2加,然后进行四相调制,在同相支路和正交支路引入两个正交的m序列,即I信道引导PN序列和Q信道引导序列。各模块详细设置及原理解释如下:

图3.4.1 正交扩频模块设置

正交扩频模块设置说明:

⑴Walsh order:Walsh正交调制过程中,用每6个比特的二进制数据来选取Walsh正交符号集中的某一行符号,且任何一行的数据符号的位数为64位,其简单计算公式为i?c0?2c1?4c2?8c3?16c4?32c5,i为Walsh正交符号集得行号。所以这里设置为64。

⑵Input vector length:是指输入数据的长度。从块交织输出的数据为576位,所以这里设置为576。

图3.4.2 Buffer模块设置

Buffer模块设置说明:

Output buffer size(per channel):根据直接序列扩展的原理,每个Walsh码片由4个PN码片扩展,因此这里将该参数与长码产生器的output frame size同时设置为4。

图3.4.5 长码产生模块设置

长码产生模块设置说明

⑴output frame size:输出码序列的大小,与Buffer模块的Output buffer size(per channel)参数设置相同,所以这里也设置为4。

⑵sample time:抽样时间的设置与前面抽样时间的设置保持一致,所以这里设置为20/1000/80。

图3.4.6 极性转换模块设置

极性转换模块设置说明:

⑴M-ary number:由于仿真所使用的为二进制数,所以此处将该参数设置为2。

⑵P0larity:由于Walsh调制器输出的是双极性的二进制数,而长码产生器输出的是单极性的二进制数,为了将两者匹配进行模2加,所以此处要将Walsh调制器输出的-1转换成1,1转换成0,所以这里将参数设置为Negative。

图3.4.7 异或模块设置

异或模块设置说明:

⑴operator:由于研究中使用该模块的作用是实现buffer模块输出数据与长码模块输出数据的摸2加,所以此处选择异或(XOR)来实现模2加的目的。

⑵sample time:此处抽样时间依然与前面系统的抽样时间保持一致,所以此处设置为20/1000/80。

综上所述可得正交调制部分的仿真图如下:

图3.4.8 正交调制子系统

利用示波器观察得正交扩频前后的波形如下所示:

图3.4.9 正交调制前后波形

由以上波形可知,进入Walsh调制模块的波形为576位二进制数据,输出全为1。

利用To Warkplace观察到异或模块输出前后的数据(即Beffer模块与进制转换模块)分别为:Beffer模块输出全为1;进制转换模块输出全为0。由此可知,进制转换的结果是正确而的,仿真结果与理论相吻合。

利用To Warkplace观察到长码产生模块输出的数据为: 1000 0001 0101 0011 1110 1010 1111 1100 异或模块输出的数据为:

1000 0001 0101 0011 1110 1010 1111 1100

比较以上两组数据可得,异或的结果是正确的,仿真与理论分析相吻合。

利用scope对异或模块前后的数据进行观察,所得波形图如下所示:

图3.4.10 异或模块前后波形

由以上波形图同样可得,异或的结果是正确的,也即仿真结果与理论是吻合的。

图3.4.11 I路短码产生模块设置

I路短码产生模块设置说明:

⑴Generator polynomial:根据

I

路短码生成多项式

PI(x?)1 0 1 0 0 0 ?15x?7x?8x?9x?1,所以此处可以将该参数设置为x?x1 0 1 0 0 0 0 1。

⑵Sample time:采样时间与前面各模块的采样时间保持一致,所以此处设置为20/1000/80。

⑶Frame-based outputs:本该选项系统所有得数据都是基于帧传输的,所以选择。

⑷simples per frame:为了与前面异或模块输出的数据大小保持一致,此处同样设置为4。

图3.4.12 Q路短码产生模块

Q路短码产生模块说明:

Generator polynomial:根据

Q

路短码生成多项式

345610111215PQ(x)?1?x?x?x?x?x?x?x?x,所以此处将该参数设置为1 0 1 1

1 0 0 0 1 1 1 1 0 0 1。其他参数的设置说明同I路模块。

图3.4.15 Delay模块设置

Delay模块设置说明:

Sample time:该模块的目的是将Q路的信号延时1/2个码片,形成OQPSK

调制和正交分集。1/2码片大小计算方式为:由于Q路的数据速率为1.2288Mcps,所以整个码片的时长为1/(1.2288?106)?8.138?10?7s,1/2码片长为4.069?107s,也409.6ns。

综上所述可得四相调制子系统的仿真图如下所示:

图3.4.16 四相调制子系统

利用示波器对正交调制模块,I路短码产生模块及I路异或模块输出的数据进行观察,所得波形图如下所示:

图3.4.17 I路短码产生模块及I路异或模块输出波形图

利用示波器对正交调制模块,Q路短码产生模块及Q路异或模块输出的数据进行观察,所得波形图如下所示:

图3.4.18 Q路短码产生模块及Q路异或模块输出波形图

由以上波形图可知,异或模块的波形图是正交调制模块与IQ路短码的异或结果,仿真与理论是相吻合的。

利用示波器对I支路Unipolar to bipolar Convertor模块前后的数据进行观察得其波形图如下所示:

图 3.4.19 I路Unipolar to bipolar Convertor模块前后波形

利用示波器对Q支路Unipolar to bipolar Convertor模块前后的数据进行观察得其波形图如下所示:

图 3.4.20 Q路Unipolar to bipolar Convertor模块前后波形

由以上波形可得,Unipolar to bipolar Convertor模块实现了将单极性数

据转换成双极性的数据的功能,将IQ支路的数据分别以双极性的格式进行输出,仿真结果与理论分析相符。

本文来源:https://www.bwwdw.com/article/fpw6.html

Top