北京邮电大学基于MATLAB的CDMA2000前向业务信道仿真学院:信息与通信工程学院班级:20092111xx班姓名:姓名姓名姓名学号:学号学号学号班内序号:numnumnum基于MATLAB的CDMA2000前向业务信道仿真一、实验目的1.了解移动通信发展历史2.掌握CDMA系统的技术:(1)信道编码、交织、加扰、扩频、调制(2)关键技术:RAKE接收机(3)信道结构:导频、业务(4)长码、短码和Walsh码在CDMA系统中的作用3.了解CDMA1X的技术特点Walsh码、Turbo码二、相关知识简介1.移动通信发展历程2.多址技术频分多址:频分,有时也称之为信道化,就是把整个可分配的频谱划分成许多单个无线电信道(发射和接收载频对),每个信道可以传输一路话音或控制信息。在系统的控制下,任何一个用户都可以接入这些信道中的任何一个。模拟蜂窝系统是FDMA结构的一个典型例子,数字蜂窝系统中也同样可以采用FDMA,只是不会采用纯频分的方式,比如GSM和CDMA系统就采用了FDMA。时分多址是在一个带宽的无线载波上,按时间(或称为时隙)划分为若干时分信道,每一用户占用一个时隙,只在这一指定的时隙内收(或发)信号,故称为时分多址。此多址方式在数字蜂窝系统中采用,GSM系统也采用了此种方式。TDMA是一种较复杂的结构,最简单的情况是单路载频被划分成许多不同的时隙,每个时隙传输一路猝发式信息。TDMA中关键部分为用户部分,每一个用户分配给一个时隙(在呼叫开始时分配),用户与基站之间进行同步通信,并对时隙进行计数。当自己的时隙到来时,移动台就启动接收和解调电路,对基站发来的猝发式信息进行解码。同样,当用户要发送信息时,首先将信息进行缓存,等到自己时隙的到来。在时隙开始后,再将信息以加倍的速率发射出去,然后又开始积累下一次猝发式传输。TDMA的一个变形是在一个单频信道上进行发射和接收,称之为时分双工(TDD)。其最简单的结构就是利用两个时隙,一个发一个收。当移动台发射时基站接收,基站发射时移动台接收,交替进行。TDD具有TDMA结构的许多优点:猝发式传输、不需要天线的收发共用装置等等。它的主要优点是可以在单一载频上实现发射和接收,而不需要上行和下行两个载频,不需要频率切换,因而可以降低成本。TDD的主要缺点是满足不了大规模系统的容量要求。码分多址是一种利用扩频技术所形成的不同的码序列实现的多址方式。它不像FDMA、TDMA那样把用户的信息从频率和时间上进行分离,它可在一个信道上同时传输多个用户的信息,也就是说,允许用户之间的相互干扰。其关键是信息在传输以前要进行特殊的编码,编码后的信息混合后不会丢失原来的信息。有多少个互为正交的码序列,就可以有多少个用户同时在一个载波上通拧。每个发射机都有自己唯一的代码(伪随机码),同时接收机也知道要接收的代码,用这个代码作为信号的滤波器,接收机就能从所有其他信号的背景中恢复成原来的信息码(这个过程称为解扩)。码分多址包含两个基本的技术,一个是多址技术,一个是扩谱技术。多址技术可以通过扩频来实现,使不同用户的信息分离开来并在同一时间同一频率上传送。而扩谱技术可以大大降低噪音干扰。3.CDMA简介CDMA(CodeDivisionMultipleAccess)又称码分多址,是在无线通讯上使用的技术,CDMA允许所有使用者同时使用全部频带(1.2288Mhz),且把其他使用者发出讯号视为杂讯,完全不必考虑到讯号碰撞(collision)问题。CDMA中所提供语音编码技术,通话品质比目前GSM好,且可把用户对话时周围环境噪音降低,使通话更清晰。就安全性能而言,CDMA不但有良好的认证体制,更因其传输特性,用码来区分用户,防止被人盗听的能力大大增强。WidebandCDMA(WCDMA)宽带码分多址传输技术,为IMT-2000的重要基础技术,将是第三代数字无线通信系统标准之一。4.CDMA发展历程5.CDMA2000的发展CDMA2000是TIA标准组织用于指代第三代CDMA的名称。适用于3GCDMA的TIA规范称为IS-2000,该技术本身被称为CDMA2000。CDMA2000的第一阶段也称为1x,其使拥有现有IS-95系统的通信公司能将其整体系统容量增加一倍,并可将数据速率增加到高达614kbps。比1x更高的CDMA2000技术进展包括1xEV(高速数据速率),即为CDMA20001×EV,是一种3G移动通信标准,分两个阶段:CDMA20001×EV-DO(DataOnly),采用话音分离的信道传输数据,和CDMA20001×EV-DV(DataandVoice),即数据信道与话音信道合一。CDMA2000也称为CDMAMulti-Carrier,由美国高通北美公司为主导提出,摩托罗拉、Lucent和后来加入的韩国三星都有参与,韩国现在成为该标准的主导者。这套系统是从窄频CDMAOne数字标准衍生出来的,可以从原有的CDMAOne结构直接升级到3G。三、实验原理1.CDMA2000前向业务信道2.CRC校验模块A.CRC编码模块原理实验中使用的系统循环码生成多项式为:先将信元多项式左移8位,使用生成多项式除以信元多项式所得余数即为CRC校验位,然后将信元多项式与校验位相合并产生系统循环码。函数如下:%msg为信号function[encode]=CrcEncode(msg)%8bitCRC生成多项式generator=[110011011];%x^kc=[100000000];%对序列乘以x^8,表示左移8个0multip=conv(c,msg);%对多项式的除,就等于做反卷积[divid,remainder]=deconv(multip,generator);%对除法的余数做模二运算remainder=mod(remainder(end-7:end),2);%在原序列后面加上CRC码encode=[msg,remainder];主函数调用即可,代码如下:encoded(nu,:)=CrcEncode(source(nu,:));B.CRC检错原理:如果接受到的码多项式可以被生成多项式所整除,则没有出现误码,如果不能,则没有出现误码。函数如下:%输入code为要进行解码的码源%返回值sign是指示是否出现错误1为有错,0为无错function[sign]=CrcDecode(code)generator=[110011011];%8bitCRC生成多项式[divid,remainder]=deconv(code,generator);%对多项式的除,就等于做反卷积remainder=mod(remainder(end-7:end),2);%对除法的余数做模二运算ifisequal(remainder,[00000000]);sign=0;%如果正确,指示0elsesign=1;%如果错误,指示1end主函数调用即可,代码如下:err_blk_CRC=err_blk_CRC+CrcDecode(decision1);3.卷积编码模块A.编码编码器性质:(2,1,9)输出位数:2输入位数:1约束长度为:9编码器结构(编码器生成多项式):[561,753](八进制),即反馈位置为:[101110001,111101011]使用poly2trellis得到编码器结构;相关代码如下:%卷积吗生成多项式conv_poly=[561,753];%(2,1,9)约束长度是9conv_constraints_length=9;%产生编码和译码所需的格图trellis=poly2trellis(conv_constraints_length,conv_poly);使用convenc函数进行卷积编码相关代码如下:%卷积编码form_code=convenc([encoded(nu,:),tail],trellis);B.解卷积使用维特比译码的方法进行解卷积。直接调用vitdec函数,其输入信号为经过解调,解扩频,解交织,解重复后的接收信号。译码后输出为96bit数据,去掉8位尾码,剩余80位数据+8位校验码。然后使用CRC检错模块对其进行检错。相关代码如下:%维特比译码decision1=vitdec(deinterleaved1,trellis,tb_len,'term','unquant');4.重复模块%将数据进行一次重复;code=[form_code,form_code];%解重复,将码长度变为原来的一半deinterleaved1=deinterleaved(1:(Num_coded_bits/2));5.块交织模块交织器参数:由于输入数据位384bit所以查表可得对应交织器的M,J值都为6按照规定交织顺序为:BRO表示二进制的倒序。具体实现方法如下:对i/J向下取整,然后转换为二进制数,然后将其变成其倒序(100——011),然后与相加,其中m=6;函数如下:functionlocation=matintr(i)%交织器MJ都为6temp=dec2bin(floor((i-1)/6),6);%按照交织函数,倒序二进制数location=64*(mod((i-1),6))+bin2dec(temp(end:-1:1))+1;解交织:采用逆向的方法求得每一位原本对应的位置,将顺序进行替换。相关代码如下:%解交织fori=1:Num_coded_bitsdeinterleaved(i)=combined_real(nu,matintr(i));end6.加扰模块在CDMA系统中,用户信息的加密是通过将用户信息加扰实现的,而这里所用的扰码就是M-序列。图中所示是一个M-序列产生器。它由移位寄存器序列和掩码组成。输出的序列的周期是2N-1(N为移位寄存器的个数)。即:在输出2N-1个信息后,移位寄存器序列恢复到初态。在CDMA系统中,用到两种M-序列,一种是长码,周期为242-1,另一种是短码,周期为215-1。加扰用的是长码。而后面的调制用的是短码。可以看出,对于不同的掩码,移位寄存器序列的输出的M-序列就不同,我们称为相位不同。实际上,CDMA系统中就是给不同的用户分配不同的掩码,从而使各个用户得到不同的M-序列(扰码)。长码有许多特性:长码为一周期为242-1的m-序列移位相加特性:输出序列Ck和Ck+t(Ck时移t)的相加后的序列仍然是序列Ck的一个时移序列自相关特性:不同相位的m-序列的相关值为-1长码的作用:长码在前向用作扰码加密控制功率控制比特的插入长码在反向提供信道化在这里,我们根据PPT给出的扰码多项式(为2^42-1的m序列)对应的函数为M_code函数。在函数中,利用PN序列生成器,修改相应的多项式属性、初始状态属性和长度属性从而生成所需的m序列。产生M序列的函数如下:functionseq_m=M_code(n,length)%n用于m序列产生器中第一个m序列的初始状态%length用于指定产生的序列长度poly_x=[1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,1,1,1,1];%产生PN序列生成器对象m_pn=commsrc.pn;%修改PN序列生成器对象的生成多项式属性m_pn.GenPoly=poly_x;%修改PN序列生成器对象的初始状态属性m_pn.InitialStates(1:42)=bitget(n,1:42);%修改PN序列生成器对象的序列长度属性m_pn.NumBitsOut=length;%产生序列seq_m=generate(m_pn);7.扩频模块CDMA2000中用到的正交码为Walsh函数,Walsh函数是1923年由数学家Walsh证明其为正交函数而得名。它用Wal(n,t)表示,其中n为序号。在CDMA系统中,每个前向码分信道用1.2288Mbit/s比特率的64阶Walsh函数进行扩频,以使各前向码分信道间相互正交,在每