CDMA通信系统中的接入信道部分进行仿真与分析资料,可作为毕业设计

       CDMA蜂窝网移动通信是在频分多址(FDMA)模拟蜂窝网和时分多址(TDMA)数字蜂窝网基础上发展起来的,既有共同点,也有很多独特的地方:从技术角度来看.CDMA蜂窝网技术是最先进的,同时又是最复杂的。可以说,在一定范围内,它反映了现代通信的技术水平。

       本次课题选择的是反向链路的接入信道部分进行软件的仿真,所运用的软件是MATLAB。运用MATALAB软件中的模块进行接入信道的构建,并对信道的原理进行分析和验证。本论文是按照从理论到仿真分析与验证的步骤顺序来的,最后进行全面的总结。

       接入信道数据以每20毫秒88比特的速率产生,因为 卷积编码器在每帧后复位,所以每帧的数据都加上8比特的尾。故数据进入编码器的速率是(88+8)/0.02=4800bit/s,如图所示。这些数据进行码率1/3,约束长度为9的卷积编码。编码器中出来的数据率是3×4.8=14.4ksps。

      为了使接入信道和反向业务信道有相同的块交织方案,接入信道的符号进行了重复,使进入交织器的为2×14.4=3×9.6=28.8ksps,和反向业务信道达最高数据率9600bit/s的数据进入交织器时的速率一样。交织方案是读入一帧的数据(28.8×20=576符号),按列写入18列×32行的矩阵,然后以某种顺序按行读出,以使数据符号在时间上分开。

        交织后的符号送到一个(64,6)的沃尔什编码器。沃尔什编码是用每组6个编码符号(c0、……c5)来选择2^6=64阶沃尔什序列Hi中的一个。选择时要按下列准则来计算序号i:

这里的i是64×64哈达码矩阵的行号,而{cj}是经过编码的二进制(0,1)符号.因此符号速率的增长比率为64/6,从28800sps增加到307200cps,单位是”沃尔什编码”每秒.这个步骤可以看作是一个(n=64,k=6)的纠错编码.它也可以解释为一种用二进制信道符号进行64进制正交调制的形式.

      接入信道符号进一步用一个特定的相位偏置是靠移位积存器的输出与一个随用户不同而不同的42比特模板序列进行内积来产生的.对于接入信道,模板是用伪随机产生的接入信道和相应的寻呼信道编号以及基站辩识参数构成的.

      在脉冲成型与发送之前,长PN码扩谱后的基带数据流分别与I路Q路正交短PN码相乘,Q路相乘后延时了半个码片,形成OQPSK调制和正交分集。注意:这个操作中,符号没有被扩谱,因为短PN码的速率也是102288Mcps.还要注意到,图4021表明所有小区中的所有移动台都采用零偏置的短PN码,不同用户的信号只用它们唯一的长PN码相位加以区别.下表总结了接入信道的调制参数。

                接入信道调制参数

      参数              数值                单位

   数据速率              4800               bit/s

   PN码片速率          1.2288              Mcps

  代码速率             1/3                 Bit/码符号

  码符号重复            2                  符号/码符号

  发端占空比            100                %

  码符号速率           28800               sps

  调制                 6                   码符号/模符号

  调制速率             4800                sps

  沃尔什码片速率       307.2                kcps    

  模符号间隔           208.33               µs

  PN码片/码符号       42.67

  PN码片/模符号       256

PN码片/沃尔什码片    4   

       特定移动台的接入信道传送只能在指定的接入信道时隙中进行,接入信道时隙事实20毫秒帧长的睁倍数.接入信道时隙的每一次传送开始都有一随机短延时,以分散不同的移动台的起始传送时间,这些移动台可能在同一时隙内在不同的信道中传送.接入信道有96个数据零作报头,以帮助基站捕获信号.移动台第一次使用接入信道时,只能发送按某种程序形成的试探”消息”,直到决定了该移动台的适当功率水平为止.

  1.  对各个模块所对应的原理进行详细的说明   

        CDMA(码分多址)是一种利用惟一码序列进行扩频多址接人数字通信的技术。CDMA信道包括基站和移动台之间的前向CDMA信道和反向CDMA信道。前者是从基站到移动台的信道,后者是从移动台到基站的信道。

        反向CDMA信道被移动台用来和基站通信,同时在发送之前通过直接序列扩频共享相同的CDMA频率分配。反向CDMA信道是从移动台到基站的反向链路。在反向CDMA信道发送的数据被封装成20ms帧。反向CDMA信道包括接人信道和反向业务信道。接人信道用于短信令消息交换,提供呼叫发起、寻呼响应、指令和注册。反向业务信道用于从单个移动台向单个或多个基站传输用户数据和信令业务。

       前向CDMA信道包含导信倍道、同步信道、寻呼信道和前向业务信道。这些信道每路都经过适当的Wash函数正文扩展,然后以1.2288Mc/s固定速率由正交相位导频PN序列扩展。

      反向CDMA信道由接人信道和反向业务信道组成。反向信道上发送的所有数据都经过卷积编码、块交织、64阶正交调制和长码直接序列扩展再发送。

2.1 卷积编码

        现代数字通信系统常常设计成以非常高的速率传输。卷积码已应用于很多个同系统,例如,不仅在CDMA移动通信系统种应用卷积编码/译码,而且在空间和卫星也应用。为了防止系统出错,经常会使用卷积码。信息数据序列划分成许多长度为k的小块,每段小块被编码长度为n的码字符号。卷积码(n,k,m)由k个输入、具有m阶存储的n个输出线性时序电路实现。通常,n和k是较小的整数,且k<n,但m相当大。特别地,当k=1时,信息序列不再分成小块,以便可以连续处理,因此,卷积码的发展产生了很多有线和无线通信信道数字传输的实际应用。

        卷积码(n,k,m)指定的码率为:R=k/n,编码器级数为m=K—1,其中K是码的约束长度。编码器存储阶数等于数据序列时延。m级n维生成序列集通常可以按如下方式描述:

其中j=1,2,…,k表示输入端数,j=1,2,…,n表示模2加法器数(输出端)。方程(2.1)也可以以多项式形式表达为:***************************************

其中D是时延操作符,每一项D的幂对应于该项的单位时延数。

每个生成序列直接由从编码器级到各自模2加法器的连接序列确定,1表示连接,0表示断开。每个生成序列包含m+1位二进制数。如果每次信息序列输入 编码器1比特,那么编码器输出序列 可以通过合并 离散卷积得到,基站对前向CDMA信道如同步、寻呼和业务信道上发送的数据进行卷积编码。前向CDMA信道使用码率R=1/2、约束长度为9的(2,1,8)卷积码。

 由于码率为1/2,所以每次编码器输入一位数据,编码器输出就产生两位编码符号。

初始化后第一个输出符号 是由生成序列 编码的符号,第二个输出符号 是由生成序列 编码的符号,如图2.1所示,卷积编码包含连续时延数据序列选定抽头的模2加。

例如,以1.2kb/s速率传输的前向业务信道帧结构包含24比特(20ms)。这24比持由16位信息比特和8位编码器尾比特组成,如图2.2所示。最后8位编码尾比特全部设成0。如果信息序列表示成d=(1010100100000101),相应的多项式为  。由于16位信息比特后面有8位编码器比特,则前向业务信道帧表示为M=(101010010000010100000000)或者写成多项式形式:

图2.1显示了用于该信道的(2,1,8)卷积码。由于m=8,n=2,因此该编码器包含一个具有2个模2加法器的8级移位寄存器和用于编码器连续输出的转向器。对图2.1的卷积编码器,两个生成序列分别为:

2.2 交织技术介绍

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

交织是排列符号序列的过程。这种为获得时间分集的重排过程称为交织,可以以两种方法考虑:块交织和卷积交织。

    交织常重复或编码相结合,是一种防止突发错误的时间分集形式.符号在进入突发信道传送之前被改变顺序或进行交织.如果传送时发生突法错误,恢复原来顺序就可以在时间上分散错误.如果交织器设计良好,那么错误将会随机地分布,用编码技术几容易纠正.

    最常见的交织技术的两种中,最常见的类型是块交织.这种方式常在数据分块分帧的情况下使用,入IS-95系统.另一方面,卷积交织对连续少数据流来说是比较实用的类型.块交织很容易实现,尔卷积交织有很好的性能.连续操作使得卷积交织的初始开销变得不重要.IS-95用了以类似块交织技术为基础的交织形式,将在下面进一步讨论.

    有几个描叙交织器性能的参数.重要的参数之一是最小间隔S,指突发连续错误分布的最小距离.一般来说这个参数依赖于突发长度,突发长度增加则S变小.极端情况下,突变长度与序列长度一样,则最小间隔是,因为不论如何排列,错误之间总是相互挨着的.交织时,读取一部分符号同时需要存储另一些符号,因此就带来了延时.一般来说,这种延时也出现在解交织时.延时D表示交织和解交织时带来的额外读/写操作量.而刚提到,处理过程需要一些存储单元,用M来表示.为了达到较好的交织器性能,最小间隔越大越好,延时和存储容量越小越好.所以性能通常可用最小间隔与延时的比S/D以及最小间隔和存储容量的比S/M来描述.

一个(I,J)的块交织器可以看成是一个J行I列的存储矩阵.数据按列写入,按行读出.如图(2.1)所示。符号从矩阵的左上角开始写入,从右下角开始读出.连续的数据处理要求有两个矩阵;一个用于数据写入,另一个用于数据的读出/解交织过程也要求有两个矩阵,用于反转交织过程.

    交织器的最小间隔可以通过改变读出的行顺序来改变,延时和存储要求在这个操作种不变.B≤I情况下,最大的最小间隔由上面所说的读出方法得到.然而,这种方法使得B>I时S=1.其他的方法可以减小B≤I时的最小间隔而增加B>I时的最小间隔.IS-95就用了这样的技术.除非仔细观察考虑读出的方法,否则一般最小间隔 都是减少的.

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

2.3  沃尔什函数说明

沃尔什函数是正交的、归一化的和完备的。“正交”是指两个不同的函数相乘,并在给定区间上积分,其结果为0。“归一化”的意思是如果两个函数相同,那么它们乘积的积分为1。最后,“完备”大致可理解为:在给定的区间内,可使用这个正交函数集中函数的线性组合来逼近任意给定的函数,在正交函数的个数趋于无限的条件下,均方误差在“均值意义上”趋近于0。

2.3.1 沃尔什函数特性说明

我们将N阶的沃尔豕函数定义为N段函数的集合,记为{Wj(t);t∈(0,T),j=0,1,…,N-1},定义如下:

  1. 除了在一些跳变点上取值0外,Wj(t)仅在集合{+1,-1}中取值;
  2. 对于所有的j,有Wj(0)=1;
  3.  在区间(0,T)内,Wj(t)精确地有j次符号变化(穿越零点);
  4. 关于区域的中点,每一个函数Wj(t)不是奇函数就是偶函数。

一个沃尔什函数集由N个函数构成,并按照穿越零点(符号改变)的次数来定义它们的阶数。

第一个函数W0(t)在整个(0,1)区间上没有过零点,而W1(t)在整个定义区域上有一个过零点。
转化为二值逻辑{0,1}表示,即+l “0”,-1 “1”, 并将图5.1中的所有8阶沃尔什函数的整个下标集j=0,1,…,7用二进制表示出来,于是我们可以写出8个沃尔什序列,如图3.2所示。

    当考虑一个 阶的沃尔什函数集(序列)时,可以注意到序列关于K轴上的点K=T/2,,…,具有对称性,其中T是沃尔什函数的周期。沃尔什函数关于这些点要么奇对称,要么偶对称。这些点位j=K,K—1,…,1,亦即。考虑任意一个N=16阶的沃尔什函数,

将沃尔什函数的下标j用k位二进制数表示出来,即j=(j1,j2,..jk)。如果jk=0,则函数关于 轴处偶对称,k=1,2,…,k;如果jk=l,那么函数关于这个轴处奇对称。在沃尔什序列中,与沃尔什函数中的定义相同,第一个值总是0,即研Wj(0)=1,而Wj0=0。

对沃尔什序列w13,可以分析如下:在W13中,(j1,j2,j3,j4)=(1,l,0,1),因此可以判断:

j1/2=1,表示序列关于T/16处奇对称

j2=1,表示序列关于T/8处奇对称

j3=O,表示序列关于T/4处偶对称

j4=1,表示序列关于T/2处奇对称

于是,以0打头按照对称的要求,可以写出如下序列:

    W13=0  1  0  1  1  0  1  0  1  0  1  0  O  1  0  1

这个序列与前面一开始给出的一样。

     同样,根据观察,可以得出沃尔什函数关于对称轴(中点)的位置的特性如下:

    ·沃尔什函数关于(0,T)的中点,也即在T/2处的对称轴ax上奇对称或偶对称。

    ·沃尔什函数关于子区间(O,T/2)和(T/2,T)的中点T/4,3T/4处具有同样的对称性将这些中点对称轴定义为ak-1。

·同样的处理过程重复k次,直到子区间的中点为T/N,3T/N,…,(N—1)/N,这里 。这些中点对称轴称为a1,这些轴具有同样的对称性。

2.3.2 沃尔什函数的产生方法介绍

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

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

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

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

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

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码片扩展,即 。

2.5 QPSK和OQPSK调制

  为了使频带效率最大,高频谱效率的CDMA信道调制技术要求在相位正交的两个载波同时发送。正交调制在扩频中极为重要,它对某些类型的干扰不敏感。

令 为原始数据流,为双极性脉冲,-1代表二进制l,+l代表二进制0.如图2.5.1所示。该脉冲数据流分成同相流 (偶数比特)和正交相位流 (奇数比特),如图2.5.2和图2.5.3所示。注意, 和 分别具有d(t)的一半速率。

    s(t)的方程也用于偏移QPSK(OQPSK)信令。OQR5K和标准的非偏移QPSK在两个基带波形对齐方面不同。两种脉冲流 和 相互交错,因此个是同时地改变状态。这两种调制方案的不同在于脉冲流 和 定时移位了,以至于两种数据流差Tb对齐,如图2.5.7和2.5.8所示。载波相位每Tb秒可能的变化限制在 和 。然而在作偏移QPSK下,两种脉冲流 和 时间一致,载波相位每2Tb秒变化一次,如图2.5.7和2.5.8所示。对应于QPSK数据流的典型OPSK波形如图所示。

2.6 长码的产生

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

当在当在接入信道上传输时,先进行长码直接序列扩展,然后发送。扩展操作包括64阶正交调制器输出序列和长码的模2。

CAN:接入信道编号

PCN:寻呼信道编号

BASE-ID:基站标识

PLLOT-PN:前向CDMA信道PN偏移

1100011:长码掩码头                       

                

2.7 短码的产生

    直接序列扩展之后,反向业务伯道和接人信道进行正交相位扩展。

    另外,前向CDMA信道正交扩展之后,每个码道(导频、同步、寻呼或前向业务信道)进行正交相位扩展。

    扩展序列是长度为 或32768个PN码片的正交相位序列。该正交相位序列称为导频PN序列.分别基于下列抽头多项式;

3  MTALAB软件中的SIMULINK的简介

MATLAB通信工具箱(communication Toolbox)中提供了许多MATLAB函数和SIMULINK仿真模块,可以用来对通信系统进行仿真和分析。这些函数和模块涉及通信系统的各个部分,用户可以根据自己的需要进行选择,从而构筑自己的通信系统模型。

SIMULINK仿真工具包是MATLAB的工具包之一,是实现动态系统建摸、仿真和分析的一个集成环境。它可以仿真线形或非线形系统、连续时间系统、离散时间系统或两者混合系统,也可以仿真多速率系统。

SIMULINK提供了一个用于建摸的图形用户界面,主要实用于构造比较复杂的动态系统模型。它的主要特点在于使用户可以通过简单的鼠标操作和拷贝等命令建立起直观的系统框图模型,并进行交互性的动态仿真。所谓交互性,指的是用户可以在仿真的同时修改系统参数,仿真输出结果随着参数的改变而改变。SIMULINK的特性使它同以往的仿真工具有了较大的改进,用户可以脱离复杂的基于微分方程的计算方法,转而使用简单直观的框图式构造方法。

SIMULINK有一个重要特征,它是构造于MATLAB的之上的。因此SIMULINK用户可以直接使用基于MATLAB的工具对模型进行构造、优化和仿真。这里所说的基于MATLAB的工具,指的是MATLAB应用于工具箱和专门用于某些领域的特定M文件的集合。通信工具箱就是MATLAB应用工具箱的一种。由于应用工具箱均由MATLAB的原代码编写而成,用户可以在SIMULINK的工作平台上方便地调用工具箱中的各种工具,从而实现了各类工具箱之间的无缝连接。

SIMULINK的应用包括建摸和仿真两部分。所谓建摸,指的是从SIMULINK的七个标准模块子库或MATLAB其他工具包模块库中选择所需的模块,并拷贝到用户的模型窗口中,经过连线和设置模块参数等构筑起用户自己的仿真模型的过程。SIMULINK完全采用“抓取”来构造动态系统,系统的创建过程就是绘制框图的过程。而通信模块的创建和仿真,一般是在SIMULINK工作窗口内利用COMMLIB库中通信模块构筑用户设计的通信模型,然后再利用SIMULINK工作窗口中特有的菜单选项进行仿真。

在打开SIMULINK之前,首先要运行MATLAB。打开SIMULINK主工作界面的方式有两种:

  1. 在MATLAB的工作窗口中键入“simulink”指令。
  2. 在MATLAB窗口的状态栏中点击SIMULINK图标。

需要注意的是,SIMULINK对模块或模型文件的操作一般都有两种方式:

  1. 菜单操作方式——在被操作模型的SIMULINK窗口下进行。
  2. 命令操作方式——在MTALAB的工作窗口中通过一些固定调用格式的指令对模块或模型文件进行调用、仿真等操作。

按照上述的方式打开的SIMULINK工作窗口就是SIMULINK的标准模块库的窗口,同时被打开的还有一个新的模型文件窗口(标记为untitled).

  1. 子系统模块(Subsystem Block)

当一个动态模型包含许多环节时,往往把系统功能分块,每一块建立一个子系统。在设计中使用子系统,可以降低模型的复杂度,减少窗口的数目,并易于对模型进行扩充和修改。设计一个SIMULINK框图,可以采用“自顶向下”的设计方式,下构造处总体模型,再分别建立各个子系统;也可以采用“自顶向下”的设计方式,先完成每个部分底层设计,封装为子系统后,再用其搭建一个总体框图。

下面简要给出采用“自顶向下”模式设计子系统的主要步骤:

(1)在MATLAB工作窗口中键入sinmulink指令,打开SIMULINK标准模块库。从它的[File]菜单中选取[New]命令,创建新的方框图窗口。

(2)用鼠标双击SIMULINK模块库中Connections图表,打开下一级子模块库,将其中的子系统模块(Subsystem)用鼠标拖至用户新建的文件窗口中。

(3)双击子系统模块,打开一个空白的子系统窗口,按照功能要求添加模块,并用输入端口代表送入子系统的信号,输出端口代表输出信号。

2. 封装功能

具有封装功能是SIMULINK模块一个非常有用的特点。通过封装可以为子系统建立用户自定义的对话筐和图标;可以在当前图形窗口中隐藏子系统的设计内容,用简单的图标来代替子系统。另一方面,由于子系统中每个模块都有一个对话筐,进行仿真的时候,必须打开每个对话筐分别定义参数值,应用起来比较麻烦。而封装功能可以将子系统中的多个对话筐合并为一个单独的对话筐——封装对话筐,封装对话筐中的参数在仿真时被直接送入子系统的各个模块中,从而简化了用户定义仿真参数过程。同时,通过在封装对话筐中自定义的模块参数域、模块描述信息和模块帮助信息等,可以使仿真模型有一个更友好的用户界面。

4.2 对各个模块进行分析与验证

   4.2.1源中部分(subsystem1)设置、说明与分析:

在源这部分里面,我们用贝努力二进制产生器产生所需的二进制代码,所产生的码序列是服从贝努力概率分布的。为了满足设计的需要,我们同时将贝努力产生器的输出值设为[80×1]且基于帧格式的输出方式,也即:基于帧格式输出的80行和1列的矩阵。再利用CRC产生8位循环冗余检验(CRC)码,在数据尾部加入CRC码的作用有两点:第一,可以在接收时确定帧(包)是否发生了错误,第二,可以辅助确定接收的帧的数据速率,最终对数据速率的确定则是卷积译码器。另外,利用 Zero Pad(零填充模块)模块,在数据帧末端加入8个比特的0,其作用在于,在每帧卷积编码结束后,对卷积编码其中的移位积存器复位。由于MATLAB中的卷积编码器具有自动复位功能,因此这个零填充模块并不是必须的。但在此,我们仍然将此模块设置为插入8个尾比特零,可以使数据的速率达到我们最终的要求。模块的参数设置见下面的各图形。

Bernoulli模块参数设置说明:

(1)Probability of a zero :0.5表示的是以概率0.5取值为1,以0.5的概率取值为-1;

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

(3)将输出数据设置为基于帧结构的方式,也即:选择Frame-based outputs的选项,原因在于,CRC码产生模块的输入必须基于帧数据结构的。

(4)每帧的数据为80比特,所以,将每帧的抽样次数设置为80,也即:Samples per frame设置为80。

Zero Pad模块参数设置说明:

  1. 在这里将Pad signal at设置为End是因为,我们期望在数据末尾插入8个0尾比特。
  2. 由于我们在CRC的输出为[88×1]的比特数据,也即一列的数据,所以,为了在同一的数据后面添加8个0数据,我们在这里就将Pad along设置为:Columns.
  3. 在该模块的输出端,我们要求帧数据的比特数为96,也即为了在帧数据后面加入8个0,因而将Specified number of output rows设置为96。

     综合上面所述,我们将上三个模块构建为一个“源(source)”子系统。

            Repeat模块的输出数据如下:

111111001111001100

001100110000000011

110000000000111100

001111000000001111

001111001111110011

111111000011001100

111100111100000011

111100111111001111

111111110011110000

110011001100111100

111111001100111100

000011001100111100

000011000000111111

111100000000110011

001100111111110000

110011110000111100

111111001100110000

000000110011000011

111111001100110000

111111111100110000

000011111111110011

001100111111111100

000011110000110000

001100001111110011

000000001100001100

000000110011111100

111100000011000011

110000000011110011

000011001100001100

000000001100111111

000000110000001111

111100111111000000

数据说明:本来重复模块的输出数据是[576×1]的基于帧结构的数据形式,但是,为了与后面的交织器的输出数据相比较,我们将[576×1]的数据转化为[32×18]的数据形式,576个数据比特是按照行的顺序写入矩阵的。从这个矩阵数据中我们可以看出,由于重复2次的原因,相临的数据比特数都至少是2的倍数,也即说明每个比特符号至少重复了一次,从而也再次验证了重复模块设置与仿真的正确性。

Matrix交织器输出的也是[576×1]的基于帧的数据形式,为了明显地更容易的比较与验证,我们将该数据转化为[18×32]的矩阵形式,它的数据形式应该是上面Repeat模块输出数据[32×18]的转置形式,也即数据应该完全成转置形式对应。因为,它是重复模块输出后576个数据按照行的顺序写入,再按照列的顺序读出的。这里我们将[18×32]表示成下面它的转置矩阵形式,也即: 的形式,因此读出的顺序按行。 

Matrix交织器输出数据  (576位)

10100111111001011011000000110001

10100111111001011011000000110001

11011111101001101011010100100001

11011111101001101011010100100001

10011100111110011011101000001000

10011100111110011011101000001000

01000011100000110101111001000011

01000011100000110101111001000011

10001011011100101011110110001101

10001011011100101011110110001101

10001101100000100100110101110001

10001101100000100100110101110001

00101000111111111011111101010100

00101000111111111011111101010100

10110101011110010000010011001110

10110101011110010000010011001110

01011011000011000100100100110110

01011011000011000100100100110110

 Matrix交织器输出数据

对照上叙两组数据,我们根据理论分析知,如果将repeat模块的输出数据连成576个比特符号,同时也将Matrix模块的输出数据,按列的形式读出(也即上叙数据按照行顺序读出),并连成576个比特符号,那么,我们得到的数据应该均是576个比特符号,而且,他们的排列顺序也应该完全一致。基于此分析,我们再对上面的两组数据进行比较,我们可以得出,上叙两组数据完全符合,而且两矩阵数据完全成转置形式对应。因此,我们的验证也成功。

Bit to Integer Converter模块的作用是将Matrix交织器输出的576个比特符号写入[32×18]的矩阵,并将矩阵的每一行转化为一个十进制的数据输出。

下面将Matrix交织器的输出数据按照行的顺序写入[32×18]的矩阵中去,表示如下:

101001111110010110      

110000001100011010

011111100101101100

000011000111011111

101001101011010100

100001110111111010

011010110101001000

011001110011111001

101110100000100010

011100111110011011

101000001000010000

111000001101011110

010000110100001110

000011010111100100

001110001011011100

101011110110001101

100010110111001010

111101100011011000

110110000010010011

010111000110001101

100000100100110101

110001001010001111

111110111111010101

000010100011111111

101111110101010010

110101011110010000

010011001110101101

010111100100000100

110011100101101100

001100010010010011

011001011011000011

000100100100110110

          图4.2.3.12

对于第一行数据101001111110010110,我们将其转换为十进制的数据,计算方法如下:

 =171926

其中 表示第一行转化为10进制的数据符号。

同样可以计算出 、 ……的十进制数据分别为:197402、129388……。下面是Bit to Integer Converter模块仿真输出的十进制数据。对比我们可以发现,数据是完全吻合的。

 

   I路异或输出的值是Subsystem的输出数据和I路短码产生器输出的异或,对图4.2.4.5 Subsystem读值、图4.2.4.6 iPN读值和图4.2.4.7 iXOR读值的数据分析,我们可以发现,数据符合。同理可以验证Q路异或输出数据是正确的。Q路延时模块输出的数据是Q路异或输出数据经过延时半个短码片而得到的,所以,数据变换为半个码片后的数据。使用Double模块的目的是为了使Unipolar to Bipolar Converter模块的输入数据按照该模块的要求达到匹配,即:数据类型为“unit8”,而Double模块的作用正是使输入信号转换为符合要求的数据类型。最后,为了使输出数据映射为双极性类型的数据,我们将这里的数据,经过极性变换而得到。

5  经验总结

在这个学期里,通过对CDMA通信系统相关知识和MATLAB中的SIMULINK部分的学习,使我在通信知识方面和MATLAB的软件应用方面有了很大的提高,对处理事情的方法也有所提高。

由于本次的设计是选择CDMA通信的反向接入信道作为课题的,该信道涉及到新的知识点很多,都需要自己去学习。刚开始的时候感觉是无从下手,原因在于:自己对基本理论和MATLAB软件的不熟悉,所思考的处理方式方向根本就不对,导致白白地浪费了很长的一段时间,什么结果也没有出来。不过在老师和同学的帮助下,我还是及时地确定了正确的学习方向。所以,我认为,在做自己不是很了解的方向的课题时,最好还是,先花一定的时间来确定处理事件的方法和方向还是必要的。

这次课题是用软件来对接入信道进行仿真,方法在该软件里有三种,我选择的是是用里面的模块库中的模块来构建、分析和仿真的。软件的仿真,尤其是使用里面的模块来构建,我们首先应该对该模块很熟悉,这样才能很好的对模块予以运用,但对我们刚刚接触该知识的人来说,这一点我们是缺乏的。因此,我们就需要充分利用软件本身的帮助优势来解决问题。同时,我们在遇到问题时,我们应该从该问题的入口处切入,“顺藤摸瓜”的形式来使问题的来源更清晰,从而更容易解决问题。例如:在这次仿真中,一开始,我们就不懂得运用Buffer模块,也不懂得从问题处切入,导致在长码和Walsh码异或时,出现数据宽度不匹配的问题,使用了很多的模块也解决不了,最后,在偶尔的机会时才用这个模块解决了问题。在后面,I路和Q路的数据输出前极性转换处也出现了问题,不过,我们利用前面的经验,很快就解决了问题。

因此,这次的毕业设计课题不仅使我学到了更多的知识,也使我学会更好地处理遇到的问题。

有意者可联系:微信号:Wsf18729286646    共同探讨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静水流深深深!

谢谢你的鼓励,我感激不尽!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值