通信专业综合实验讲义_第1页
通信专业综合实验讲义_第2页
通信专业综合实验讲义_第3页
通信专业综合实验讲义_第4页
通信专业综合实验讲义_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通信专业综合实验(讲义)二00九年七月五日

目录第一部分MATLAB通信系统仿真 1实验一CRC-16编码器的应用与性能分析 2实验二BFSK信号在不同信道中的传输性能比较 11实验三IS-95系统中的数字相位调制的仿真 21实验四CDMA2000移动通信系统的仿真(1) 31实验五CDMA2000移动通信系统的仿真(2) 44实验六CDMA2000移动通信系统的仿真(3) 59第二部分EDA(CPLD/FPGA)设计 74MAX+plusII软件设计与应用流程 75实验一数字时钟设计实验 88实验二液晶显示与应用设计实验 90实验三硬件电子琴电路设计实验 92实验四乐曲自动演奏与硬件电子琴设计实验 95实验五串行AD数据采集与显示设计实验 97第三部分单片机系统设计 99实验一基于PTR2000的无线通信系统设计 100实验二红外遥控系统设计 105实验三液位控制系统设计 112实验四基于DS18B20的测温系统设计 116第一部分MATLAB通信系统仿真实验项目与学时分配一览表序号实验项目内容提要学时实验性质演示验证设计综合1CRC-16编码器的应用与性能分析(1)熟悉掌握MATLAB的工具箱simulink的应用(2)了解循环冗余码CRC编码与译码的方法(3)了解CRC编解码的应用如在无绳电话通信标准DECT等系统中的应用。2√2BFSK信号在不同信道中的传输性能比较(1)熟悉掌握MATLAB的工具箱simulink的应用(2)了解BFSK信号的产生方法(3)了解不同信道的性能,包括:高斯白噪声信道、二进制对称信道、多径瑞利信道等4√3IS-95系统中的数字相位调制的仿真(1)熟练利用simulink工具箱实现数字信号调制解调(2)熟练掌握数字信号的各种调制解调原理(3)掌握QPSK、OQPSK、DQPSK等数字相位调制的性能及应用区别4√4CDMA2000移动通信系统的仿真(1)(1)了解CDMA2000系统的基本结构、关键技术等(2)熟悉CDMA2000系统反向(或前向)业务信道模型(3)了解CRC编码器、卷积码编码器的原理及应用。6√5CDMA2000移动通信系统的仿真(2)(1)了解CDMA2000系统的基本结构、关键技术等(2)熟悉CDMA2000系统反向(或前向)业务信道模型(3)了解无线通信系统中信号交织器和正交扩频模块的原理及应用。6√6CDMA2000移动通信系统的仿真(3)(6√实验一CRC-16编码器的应用与性能分析一、实验要求了解循环码编码与译码原理,并实现CRC码校验能力的仿真。二、实验学时2学时三、实验目的1熟悉掌握MATLAB的工具箱simulink的应用2了解循环冗余码CRC编码与译码的方法3了解CRC编解码的应用如在无绳电话通信标准DECT等系统中的应用。四、实验原理循环冗余码CRC(Cyclicredundancycheck)是一种使用相当频繁的检错码。当接收端检测到传输错误时,它并不去纠正这个错误,而是要求发送端重新发送这个信号序列。在循环冗余码的编码过程中,发送端对每一个特定长度的信息序列计算一个循环冗余码,并把这个循环冗余码附加到原来的信息序列的末尾一起发送出去。接收端接收到带有循环冗余码的信号后,从中分离出信息位序列和循环冗余码,然后根据接收到的信息位序列重新计算循环冗余码。如过这个重新计算得到的循环冗余码与分离处理的循环冗余码不同,则接收信号序列存在传输错误,此时接收端会要求发送端重新发送这个信号序列,从而实现对信号的纠错。在MATLAB中,CRC编码器有2种,通用CRC编码器和CRC_N编码器。CRC-16编码器就属于后面一种编码器,16代表生成多项式为“P=”、编码位数为16的编码器。CRC编码的一般过程如下:把输入的数据左移r位(r代表生成多项式的最高次数,如CRC-16编码器中r=16),然后除以生成多项式P,得到一个余式,这个余式就是CRC编码产生的循环冗余码。把这个余式附加到原始信息序列末尾,就得到CRC编码的输出序列。CRC编码广泛的应用于移动通信系统中,一般用于实现自动请求重传(ARQ,AutomaticRetransmissionRequest)功能的场合。而CRC-16编码在DECT(DigitalEuropeanCordlessTelephone,欧洲无绳电话通信标准)系统中得到广泛的应用。DECT是在ISDN和GSM的基础上制定的。它可用于家庭、商业通信系统及公共网的接入。处理话音通信外,还可传输数据,速率可达552Kbit/s。在DECT中用户发送和接收数据帧的间隔是10ms。每个时隙可传输480个比特信息,其中包括32bit的同步前缀,388bit的数据以及60bit的保护间隔。在388bit数据中,DECT只对48bit的头部进行CRC校验,产生16bit的校验位,剩余的320bit用于直接传输数据。DECT系统中的CRC编解码过程可以描述如图1.1所示。信源信源CRC编码数据填充信道信宿CRC检测数据截取图1.1DECT系统中的CRC_16编码过程信源每隔10毫秒产生一个长度为48bit的数据帧,数据帧经过CRC编码后产生16bitCRC检验位,此数据帧的长度变为64bit;经过数据填充后生成DECT系统所需的长度,即480bit。经过信道传输后,在接收端解码过程中,数据截取使数据帧的长度由480bit截取为64bit,CRC检测是进行CRC解码,恢复出48bit数据。为了检验CRC码的校验能力,对CRC编码之前的信号与编码之后经过信道传输的信号进行比较检查这个数据帧中是否存在传输错误。同时,在接收端的CRC检测器也产生一个关于这个数据帧的质量报告。如果这两种判断方法得到的结果相同则表示CRC检测结果是正确;否则,要么是传输过程中发生的错误比特的个数超过了CRC的检测能力,要么是信息位本身没有错误,但CRC校验位出现了传输错误导致错误的判决。因此可以获得错误判决帧所占的比例与信道误比特率之间的关系。五、实验内容1、打开MATLAB,进入simulink。2、建立DECT系统。如图1.2所示:图1.2DECT系统结构图其中,source端是信源模块,每隔10ms产生一个数据帧,并产生CRC编码,内部结构如图1.3所示;BSC是一个二进制对称信道;sink端是信宿模块,内部结构如图1.4所示。信宿模块比较复杂,它需要对CRC编码信号进行检测,然后统计误比特率,计算出CRC未能检测到的传输错误所占的比例,然后绘制这个比例与信道的误比特率之间的关系曲线图。图1.3source模块内部结构图图1.4sink模块内部结构图在图1.4中,BitComparison模块是对编码前的信号(即原信号)与去除CRC校验位的信号的比较模块。内部结构如图1.5所示:图1.5BitComparison模块内部结构图信号比较模块输出信号是关于48bit长度的数据帧的帧质量,当它等于0时,表示这48bit的数据帧没有出现传输错误;否则,模块输出1。3、设置每个模块的参数:(1)信号源个主要模块:如图1.6~1.8所示;(2)信道为二进制对称信道,如图1.9所示;(3)信宿模块设置图1.10~1.19所示。4、编写仿真程序:如图1.20所示。5、分析仿真结果,验证CRC编码的特性。图1.6贝努利二进制产生器设置图1.7CRC-N发生器设置图1.8零填充模块设置图1.9二进制对称信道设置图接收端各个模块参数设置:图1.10零填充模块设置图1.11CRC-N检测模块设置图1.12相关操作模块设置图1.13累加模块设置图1.14工作区保存模块设置图1.15选择器模块设置图1.16误码率统计模块设置图1.17单位延迟模块设置图1.18相关操作模块设置图1.19常数模块设置图1.20仿真程序示例实验二BFSK信号在不同信道中的传输性能比较一、实验要求了解频移键控原理,并实现BFSK信号在高斯白噪声信道、多径瑞利信道、伦琴衰落信道中的性能仿真,从而了解不同信道的特性。二、实验学时4学时三、实验目的1熟悉掌握MATLAB的工具箱simulink的应用;2了解BFSK信号的产生方法;3了解不同信道的性能,包括:高斯白噪声信道、多径瑞利信道、伦琴衰落信道等。四、实验原理BFSK,二进制频移键控信号,0和1分别用2种频率不同的载波进行调制而形成的信号。在MATLAB中可以由随机整数产生器产生的数据,经过BFSK基带调制器模块而形成BFSK信号。而对于信道是通信系统的基本环节之一,在信号传输的过程中,它不可避免地受到各种干扰。AWGN高斯白噪声是最常见的一种噪声,它存在于各种传输媒质中,包括有线传输信道和无线传输信道。在无线信道中,信号受到加性高斯白噪声干扰的同时,还会受到瑞利衰落或伦琴衰落的影响。这种影响表现为信号的一种快速衰落过程,它对无线信号的传输质量起了决定性的作用,因此,无线通信系统的很多研究工作都是围绕着如何降低这种干扰进行的。AWGN,加性高斯白噪声,它表现为信号围绕平均值的一种随机波动过程。其均值为0,方差表现为噪声功率的大小。一般情况下,噪声功率越大,信号的波动幅度越大,接收端接收到的信号的误比特率就越高。多径瑞利衰落信道,是移动通信系统中一种相当重要的衰落信道类型,在很大程度上影响着移动通信系统的质量。在移动通信系统中,发送端和接收端都可能处在不停的运动状态中,发送端和接收端的这种相对运动将产生多普勒频移。频移的大小与速度和方向密切相关,可以计算为:其中,v是发送端和接收端相对运动速度,是运动方向和发送端与接收端连线的夹角,f是载波波长。在多径信道中,发送端发出的信号经过多个发射之后沿多条路径到达接收端,这些路径具有不同的时延和不同的接收强度,它们之间的相互作用形成了衰落。而对于伦琴衰落信道形成的场合在于,若移动通信系统中的发送端和接收端之间存在一条占优势的视距传播路径,又有多条反射路径时,就需要同时用伦琴衰落信道模块和多径衰落信道来仿真。视距传播路径的能量与反射路径的能量之间的比值K影响伦琴衰落的大小。K因子越大,表示发送端与接收端的视距传播路径的能量越强;当K等于0时,发送端与接收端不存在视距传播路径。因此K值越大,信号在伦琴衰落信道中的误比特率性能将优于多径衰落信道。本实验通过MATLAB建立3中仿真系统:BFSK在高斯白噪声AWGN的信道下的性能;BFSK在多径瑞利衰落信道中的传输性能,信道的模型由多径瑞利衰落信道模型与AWGN模型的组合而成;BFSK在多径伦琴衰落信道中的传输性能,其信道模型由伦琴衰落信道模块、多径瑞利衰落信道模块与AWGN组成。通过比较这3种系统的仿真结果来分析各种信道的性能。五、实验内容1、打开MATLAB,进入simulink。2、建立BFSK在高斯白噪声AWGN的信道下的传输系统。如图2.1所示:图2.1AWGN信道下BFSK传输系统其中,source端是信源模块,产生速率为10kbit/s、帧长度为1秒的二进制数据Data,通过BFSK调制产生调制信号Signal,内部结构如图2.2所示;AWGN是高斯白噪声信道,信号的信噪比等于SNR;sink端是信宿模块,内部结构如图2.3所示,对Signal信号进行解调,并把解调的信号与信源source产生的信号data进行比较,计算误比特率。最后根据信噪比SNR与误比特率的对应关系绘制对数曲线。图2.2source模块内部结构图图2.3sink模块内部结构图设置每个模块的参数:(1)信号源个主要模块:如图2.4~2.5所示;(2)信道为AWGN模块,如图2.6所示;(3)信宿模块设置图2.7~2.10所示。图2.4图2.5图2.6图2.7图2.8图2.9图2.103、建立BFSK在多径瑞利衰落信道中的传输系统,如图2.11所示。其中的Source与Sink系统与图2.2和图2.3相同,信道模块如图2.12所示。其中多径衰落模块设置如图2.13所示,而AWGN模块设置与图2.6相同。图2.11BFSK在多径瑞利信道上的传输模型图2.12多径瑞利衰落信道图2.134、建立BFSK在多径伦琴衰落信道中的传输系统,如图2.14所示。其中的Source与Sink系统与图2.2和图2.3相同,信道模块如图2.15所示。其中伦琴衰落模块设置如图2.16所示,多径衰落模块设置如图2.13所示,而AWGN模块设置与图2.6相同。图2.14BFSK在多径伦琴信道上的传输模型图2.15图2.165、编写仿真程序,如图2.17所示。6、分析仿真结果。图2.17仿真程序示例实验三IS-95系统中的数字相位调制的仿真一、实验要求了解各种常见的数字相位调制原理,并实现QPSK、OQPSK、DQPSK仿真。二、实验学时4学时三、实验目的1熟练利用simulink工具箱实现数字信号调制解调2熟练掌握数字信号的各种调制解调原理3掌握QPSK、OQPSK、DQPSK等数字相位调制的性能及应用区别四、实验原理在IS-95系统中,前向信道(从基站到移动台方向的信道)采用QPSK调制方式对两个支路的二进制信号进行调制。而在反向信道中则采用OQPSK,其中Q支路信号比I支路信号落后半个码片周期,以提高调制信号的整形和同步效果。QPSK是一种多进制数字相位调制方式,把输入信号的1、2、3、4分别映射为4个不同相位,这些相位之间的间隔等于π/2。在IS-95系统中的QPSK调制相位映射如表3-1:表3-1IS-95系统QPSK相位映射表I支路数据Q支路数据相位00π/4103π/411-3π/401-π/4除了QPSK、OQPSK之外,常见的相位调制还有DQPSK,是差分形式的QPSK调制,相邻的数据之间的相位偏移为相对偏移,相当与输入的信号是经过差分编码的信号再经过QPSK调制,具有较好的抗噪声能力。本实验通过建立QPSK、OQPSK和DQPSK3种调制解调系统的仿真模型来考察这几种数字相位调制的性能。五、实验内容1、打开MATLAB,进入simulink。2、建立QPSK系统。如图3.1所示:保存名称为‘qpskmodel.mdl’图3.1QPSK系统结构图源为BernoulliBinaryGenerator(贝努力二进制序列产生器),产生一个二进制向量,向量长度为2,分别代表QPSK的两个输入信号I、Q。数值转换模块(BittoIntegerConverter)把贝努力二进制序列产生器输出的2位二进制向量和QPSK解调器输出的1个二进制序列转换成四进制数进行比较。最后的输出通过误码率统计模块(ErrorRateCalculation)来统计QPSK调制解调的误码率。需要注意的是,当QPSK调制器和解调器中的Samplespersymbol参数大于1时,解调信号落后调制前信号的时间为1个周期,因此,必须设置延时时间。整个系统各个模块的参数设置见表3-2、3-3、3-4、3-5、3-6、3-7。表3-2BernoulliBinaryGenerator参数设置参数名称参数值ProbabilityofaZero0.5InitialseedxInitialSeedSampletimexSampleTimeFrame-basedoutputsUncheckedInterlpretvectorparametersas1-DUnchecked表3-3QPSKModulatorBaseband参数设置参数名称参数值InputtypeBitConstellationorderingGrayPhaseoffset(rad)xPhaseOffsetSamplespersymbolxSamplesPerSymbol表3-4AWGNChannel参数设置参数名称参数值Initialseed67ModeSignaltonoiseratio(SNR)SNR(dB)xSNRInputsignalpower(watts)1表3-5QPSKDemodulatorBaseband参数设置参数名称参数值OnputtypeBitConstellationorderingGrayPhaseoffset(rad)xPhaseOffsetSamplespersymbolxSamplesPerSymbol表3-6BittoIntegerConverter参数设置参数名称参数值Numberofbitsperinteger2表3-7ErrorRateCalculation参数设置参数名称参数值ReceivedelayxReceiveDelayComputationdelay0ComputationmodeEntireframeOutputdataWorkspaceVariablenamexErrorRateResetportUncheckedStopsimulationUnchecked3、建立OQPSK系统。如图3.2所示:保存名称为‘OQPSK1.mdl’图3.2OQPSK调制解调系统图信源、信道、接收模块等设置如前面表所示,调制解调模块的设置如表3-8、3-9所示。表3-8OQPSKModulatorBaseband参数设置参数名称参数值InputtypeBitPhaseoffset(rad)xPhaseOffsetSamplespersymbolxSamplesPerSymbol表3-9OQPSKDemodulatorBaseband参数设置参数名称参数值OutputtypeIntegerPhaseoffset(rad)xPhaseOffsetSamplespersymbolxSamplesPerSymbol4、建立DQPSK系统。如图3.3所示:保存名称为‘DQPSK1.mdl’。图3.3DQPSK调制解调系统图信源、信道、接收模块等设置如前面表所示,调制解调模块的设置如表3-10、3-11所示。表3-10DQPSKModulatorBaseband参数设置参数名称参数值InputtypeBitConstellationorderingBinaryPhaseoffset(rad)xPhaseOffsetSamplespersymbolxSamplesPerSymbol表3-11DQPSKDemodulatorBaseband参数设置参数名称参数值OnputtypeIntegerConstellationorderingBinaryPhaseoffset(rad)xPhaseOffsetSamplespersymbolxSamplesPerSymbol5、设置每个模型的仿真时间长度为:xSimulationTime,并编写仿真程序:如图3.4所示。6、分析仿真结果,比较各种数字相位调制解调的特性。图3.4仿真程序示例实验四CDMA2000移动通信系统的仿真(1)一、实验要求实现CDMA2000反向业务信道的发射机的仿真,并分析仿真结果。二、实验学时6学时三、实验目的1了解CDMA2000系统的基本结构、关键技术等2熟悉CDMA2000系统反向(或前向)业务信道模型3了解CRC编码器、卷积码编码器的原理及应用。四、实验原理CDMA2000由IS-95移动通信系统演进而来,它在室内环境中能达到最高传输速率为2 Mbps,步行环境下能够达到384Kbps,车载环境下能达到144Kbps。本实验将按照IS-2000协议的要求设计CDMA2000系统的仿真模型。CDMA2000可以工作在多个频段,其中北美频段的反向信道—上行信道采用824~849MHz;前向信道—下行信道,采用869~894MHz。CDMA20001x前向信道和反向信道的码片速率为1.2288Mbps。前向信道和反向信道可以采用多种传输速率和帧长,这些传输速率和帧长可以划分不同的无线配置。CDMA2000前向信道共有9种无线配置方式,而反向信道则有6种不同的无线配置方式。在CDMA2000中,反向业务信道包括反向基本信道、反向专用控制信道和反向补充信道,其中反向基本信道和反向专用控制信道主要用于传输速率较低的话音数据以及控制信令数据,而反向补充信道则可以实现高速率的数据传输。对于CDMA2000反向业务信道,单载波CDMA2000使用无线配置3和4,即RC3和RC4。其数据帧在调制之前一般要经过CRC编码、卷积编码、信号重建、信号抽取以及块交织等过程。RC3的数据帧调制的流程如图4.1所示。信道比特流信道比特流添加帧质量指示添加8bit填充位卷积符号重复符号抽取块交织图4.1RC3反向基本信道和反向补充信道RC3支持多种类型的数据帧,这些数据帧的长度从16bit到6120bit,帧长可以为5ms、20ms、40ms或80ms。每帧数据先经过一个CRC编码器产生特定长度的CRC校验位,在CDMA2000中这些校验位被称为帧质量指示(FQI,FrameQualityIndicator)。同时,为了使卷积码编码器在对一帧数据完成编码之后内部状态能够自动复位,RC3在每个数据帧的末尾添加8bit编码器尾部。通常所描述的数据传输速率是在完成上述2个过程之后的数据帧的传输速率,这其中包括了CRC编码产生的检验位和预留的8bit数据。CDMA2000在RC3的反向业务帧中使用了码率为1/4和1/2卷积编码器,这两种编码器的约束长度都等于9。因此,数据帧在卷积编码之后长度分别增加到原来的4倍和2倍,通过提供足够的信息冗余度来提高信号的抗噪声性能。RC3数据帧通过卷积编码器之后还需要根据数据传输的速率决定是否对其实施信号重复,以及信号重复的倍数,从而把低速率的数据通过重复提高到较高的速率。对于特定长度的数据帧,CDMA2000还采用了抽取技术,以一定的比例去掉卷积编码信号中的某些数据。接收端采用卷积译码器能够根据抽取信号还原得到原来的数据。因此,信号抽取技术能够在不影响信号解码的条件下实现更高的数据传输速率。最后,CDMA2000对每个反向业务帧实施交织。通过交织,原先的数据传输顺序被打乱,数据帧中相邻的信息位在一定的时间间隔之后才能被传输。接收端通过一个相反的变换可以得到交织前的数据,从而能够有效的对抗由于信道衰落而引起的突变传输错误。RC4的反向业务信道与RC3类似也支持5ms帧、20ms帧、40ms帧和80ms帧,但这些数据帧的长度与RC3不同,从而产生不同的传输速率。对于长度较大的补充信道数据帧,除了采用卷积编码之外,还可以采用Turbo编码方式对数据帧进行编码。Turbo编码把卷积和交织过程结合起来,能够增强信号的抗干扰能力,提高系统的性能。在完成CDMA2000反向业务数据帧的编码和交织之后,这些数据帧进入QPSK调制器调制。反向业务信道的信号编码和调制过程可以归纳为如图4.2所示。sinsin(wct)反向业务信道比特流添加帧质量指示添加8bit填充位卷积符号重复块交织64相正交调制随机扰码长码产生器符号转换符号转换信道增益信道增益基带滤波器基带滤波器cos(wct)Q信道PN序列I信道PN序列s(t)图4.2反向业务信道的信号编码和调制CRC编码器在CDMA20001x中,每个数据帧首先经过一个CRC编码器,产生长度不等的CRC校验码位(16bit、12bit、10bit、8bit或6bit)。这些CRC校验位称为帧质量指示(FQI,FrameQualityIndicator),它们用于协助接收端检查数据帧的好坏。对于长度为16bit的CRC编码器,它的生成多项式为:g(x)=x16+x15+x14+x11+x6+x5+x2+x+1。它适用于RC3中长度等于24bit、360bit、744bit、1512bit、3048bit和6120bit的数据帧。对于长度为16bit的CRC编码器,它的生成多项式为:g(x)=x12+x11+x10+x9+x8+x4+x+1。它适用于RC3中长度等于172bit的数据帧,以及RC4中长度等于267bit的数据帧。对于长度为10bit的CRC编码器,它的生成多项式为:g(x)=x10+x9+x8+x7+x6+x4+x3+x+1。它用于计算RC4中长度等于125bit的数据帧的帧质量指示。对于长度为8bit的CRC编码器,它的生成多项式为:g(x)=x8+x7+x4+x3+x+1。它适用于RC3中长度等于80bit的数据帧以及RC4中长度等于55bit的数据帧。对于长度为6bit的CRC编码器,它的生成多项式为:g(x)=x6+x5+x2+x+1。它适用于RC3中长度等于16bit和40bit的数据帧,以及RC4中长度等于21bit的数据帧。另外,对于RC1和RC2,CDMA20001x还使用了另外一种长度为6bit的编码器,其生成多项式为g(x)=x6+x2+x+1。需要注意的一点是,在对RC4中长度为21bit、55bit、125bit以及267bit的数据帧实施CRC编码之前,CDMA20001x在这此数据帧之后添加一个1bit的填充位,使它们的长度分别变成22bit、56bit、126bit以及268bit。卷积码编码器CDMA2000系统设计了3种类型的卷积编码器,它们的约束长度都等于9,码率分别等于1/4、1/3和1/2。1/4码率的卷积编码器产生的输出序列的长度是输入信号序列4倍,它有4个生成多项式,其中g0(x)=x8+x7+x6+x5+x4+x2+x+1,g1(x)=x8+x7+x5+x4+x3+1,g2(x)=x8+x6+x3+x+1,g3(x)=x8+x5+x4+x3+x+1,它们分别对应于八进制数765、671、513和473。码率为1/3的卷积编码器,它产的输出序列的长度是输入信号序列3倍,并且这3个生成多项式分别为g0(x)=x8+x6+x5+x3+x2+x+1,g1(x)=x8+x7+x5+x4+x+1,g2(x)=x8+x7+x6+x3+1,它们分别对应于八进制数557、663和711。码率为1/2的卷积编码器,它只有两个生成多项式,这两个生成多项式是g0(x)=x8+x7+x6+x5+x3+x+1,g1(x)=x8+x6+x5+x4+1,用八制表示为753和561。五、实验内容:1、CRC编码模块下面我们来设计CDMA2000移动台RCR编码器,这个CRC编码能够根据信道的无线配置自动选择相应的CRC编码器,并且在输入的数据帧后面添加特定长度的帧质量指示(FQI)。图4.3所示是我们设计的CRC编码器的模块图及其参数设置对话框。图4.3CRC编码器模块及其参数设置对话框图4.3所示的CRC编码器是由Simulink模块库中的零填充(ZeroPad)模块和通用CRC编码器(GeneralCRCGenerator)模块构成的,如图4.4所示。图4.4CRC编码器模块内部结构表1和表2列出了CDMA2000移动台CRC编码器模块中零填充模块和通用CRC编码器模块的参数设置情况,其中我们使用了两个变量xPaddedFrameLength和xGenPoly,它们分别表示数据填充的长度以及CRC编码器的生成多项式。表1零填充(ZeroPad)模块的参数设置参数名称参数值模块类型ZeroPadPadsignalatEndPadalongColumnsNumberofoutputrowsUser-SpecifiedSpecifiednumberofoutputrowsxPaddedFrameLengthActionwhentruncationoccursNone表2通用CRC编码器(GeneralCRCGenerator)模块的参数设置参数名称参数值模块类型GeneralCRCGeneratorGeneratorxGenPolyInitialstates[0]Checksumsperframe1图4.5CRC编码器子系统各面板的参数设置在创建完CDMA2000移动台CRC编码器子系统之后,可以把这个子系统封装起来,使之具有Simulink模块相同的外部特征。选中这个子系统,单击鼠标右键后从弹出式菜单中选择Masksubsystem,然后选择Editmask设置封装模块的外观和参数。图4.5所示是设置这个子系统的封装参数时的Parameter以及Initialization面板的属性。从图4.5所示中可以看到,为这个封装子系统,创建了4个参数:RadioConfiguration、BitRate、FrameLength以及FrameDuration,与这些参数对应的内部变量名称分别为xRC、xBitRate、xFrameLen和xFrameDuration,这些内部变量对应于封装子系统中参数设置对话的各个参数,并且可以用于封装子系统内部的各个模块中。在Initialization面板中,通过MS_FQI_Initialization.m实现对上述各个参数的初始化过程。通过个单独的M文件来实现封装子系统的初始化使得用户能够方便地编写复杂的初始化代码,这种方式将应用于本章后面的各个子系统中。MS_FQI_Initialization.m文件根据数据帧的无线配置情况和数据帧的长度选择相应的CRC编码生成多项式,基代码如下:%MS_FQI_Initialization.m%大多数情况不需要对数据帧进行填充,因此填充长度等于输入数据帧的长度xPaddedFrameLength=xFrameLength;%根据无线配置设置CRC生成多项式和填充长度,只支持RC3和RC4。switchxRCcase3switchxFrameLength%长度为16和40的数据帧采用6位CRC编码case{16,40}xGenPoly=[6210];%长度为80的数据帧采用6位CRC编码case80xGenPoly=[874310];%长度为172的数据帧采用6位CRC编码case172xGenPoly=[12111098410];%长度为24、360、744、1512、3048、6120的数据帧采用6位CRC编码case{24,360,744,1512,3048,6120}xGenPoly=[1615141165210];otherwiseerror('invalidframelengthforRadioConfiguration3inblock<FrameQualityIndicator>');endcase4switchxFrameLengthcase21xPaddedFrameLength=22;xGenPoly=[6210];case55xPaddedFrameLength=56;xGenPoly=[874310];case125xPaddedFrameLength=126;xGenPoly=[12111098410];case267xPaddedFrameLength=268;xGenPoly=[1615141165210];case{24,552,1128,2280,4584}xGenPoly=[1615141165210];otherwiseerror('invalidframelengthforRadioConfiguration4inblock<FrameQualityIndicator>');endotherwiseerror('invalidorUnhandleRadioConfigurationinblock<FrameQualityIndicator>');end2、卷积码编码器下面开始设计CDMA2000移动台的卷积编码器模块。在这个模块中,卷积编码器使用的生成多项取决于输入数据帧的无线配置类型以及数据帧的长度。同时,卷积编码器还在每帧输入数据的后边预先添加8个0,用于在每帧数据的编码器结束之后对各寄存器进行复位。在CDMA2000移动台卷积编码器模块图及其参数设置对话框如图4.6所示。图4.6卷积编码器模块及其参数设置图CDMA2000移动台卷积编码器模块由一个零填充(ZeroPad)模块和一个卷积编码器(ConvolutionalEncoder)模块组成,这两个模块都是Simulink模块库的自带模块。图4.7所示是CDMA2000移动台卷积编码器模块的组成框图。图4.7卷积编码器模块内部结构表3和表4分别列出了cmda2000移动台卷积编码器模块中零填充模块和卷积编码器模块的参数设置情况,其中使用了两个封装子系统变量xPaddedFrameLength和xTrellisStructure,它们分别表添加编码尾部后数据帧的长度以及卷积编码器的Trellis参数设置。表3零填充(ZeroPad)模块的参数设置参数名称参数值模块类型ZeroPadPadsignalatEndPadalongColumnsNumberofoutputrowsUser-SpecifiedSpecifiednumberofoutputrowsxPaddedFrameLengthActionwhentruncationoccursNone表4卷积编码器(ConvolutionalEncoder)模块的参数设置参数名称参数值模块类型ConvolutionalEncoderTrellisstructurexTrellisStructureResetNone最后,我们把这个子系统转化成一个封装子系统。子系统的封装过程与工节介绍的CRC编码器封装子系统的创建过程类似,其中Icon面板Drawingcommands设置为disp(‘ConvolutionalEncoder\n\n(CDMA2000MS)’);Initializationcommands设置为MS_Encoder_Initialization,并且创建4个封装子系统内部变量xRC、xBitRate、xFrameLength和xFrameDuration,它们分别表示一边输入数据的无线配置、数据率、原始数据帧长度(即CRC编码之前的数据帧频长度)以及数据帧周期(单位是ms)下面的程式序是MS_Encoder_Initialization.m文件的代码,其中实现了对封装子系统内部各个变量的初始化,这些代码将在Simulink初始化过程中执行。%MS_Encoder_Initialization.m%根据无线配置设置卷积码编码器Trellis参数和填充长度,只支持RC3和RC4。switchxRCcase3switchxFrameLengthcase6120xTrellisStructure=poly2trellis(9,[753561]);xPaddedFrameLength=6144;case3048xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=3072;case1512xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=1536;case744xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=768;case360xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=384;case172xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=192;case80xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=96;case40xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=54;case16xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=30;case24xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=48;otherwiseerror('Error:InvalidFrameLengthforRadioConfiguration3incdma2000MobileStationblock<ConvolutionalEncoder>');endcase4switchxFrameLengthcase4584xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=4608;case2280xTrellisStructure=poly2trellis(9,[765671513473]);xPaddedFrameLength=2304;case1128xTrellisStructure=poly2trellis(9,[756671513473]);xPaddedFrameLength=1152;case552xTrellisStructure=poly2trellis(9,[756671513473]);xPaddedFrameLength=576;case267xTrellisStructure=poly2trellis(9,[756671513473]);xPaddedFrameLength=288;case125xTrellisStructure=poly2trellis(9,[756671513473]);xPaddedFrameLength=144;case55xTrellisStructure=poly2trellis(9,[756671513473]);xPaddedFrameLength=72;case21xTrellisStructure=poly2trellis(9,[756671513473]);xPaddedFrameLength=36;case24xTrellisStructure=poly2trellis(9,[756671513473]);xPaddedFrameLength=48;otherwiseerror('Error:InvalidFrameLengthforRadioConfiguration4incdma2000MobileStationblock<ConvolutionalEncoder>');endend在使用CDMA2000移动台卷积编码器模块时,只需设置输入数据帧的无线配置、数据率、原始数据帧长度以及数据帧周期4个参数,模块将根据这4个参数的设置情况自动选择相应的卷积编码器,完成数据帧的卷积编码过程。

实验五CDMA2000移动通信系统的仿真(2)一、实验要求实现CDMA2000反向业务信道的发射机的仿真,并分析仿真结果。二、实验学时6学时三、实验目的1了解CDMA2000系统的基本结构、关键技术等2熟悉CDMA2000系统反向(或前向)业务信道模型3了解无线通信系统中信号交织器和正交扩频模块的原理及应用。四、实验原理1、信号交织器CDMA2000移动台信号交织器模块实现对RC3和RC4反向业务帧的信号重复、信号抽取和信号交织功能,其模块框和参数设置对话框如图4.8所示。图4.8信号交织器模块及其参数设置图图4.9所示是CDMA2000移动台信号交织器模块的内部结构,它由一个信号重复(Repeat)模块、一个信号抽取(Puncture)模块、两个帧状态转(FrameStatusConversion和FrameStatusConversion1)模块和S-函数(S-function)模块组成。图4.9信号交织器模块内部结构表5、表6、表7、表8和表9分别列出了CDMA2000移动台信号交织器模块中信号重复模块(Repeat)、信号抽取(Puncture)模块、帧状态转换(FrameStatusConversion和FrameStatusConversion1)模块和S-函数(S-function)模块的参数设置情况。表5信号重复(Repeat)模块的参数设置参数名称参数值模块类型RepeatRepetitioncountxRepetitionCountInitialconditions0Frame-basedmodeMaintaininputframerate表6信号抽取(Puncture)模块的参数设置参数名称参数值模块类型PunctureRepetitioncountxPunctureVector表7帧状态转换(FrameStatusConversion)模块的参数设置参数名称参数值模块类型FrameStatusConversionInheritoutputframestatusfromRefinputportUncheckedOutputSignalSample-based表8S-function模块的参数设置参数名称参数值模块类型S-functionS-functionnameMS_SFUN_InterleaverS-functionparametersxInterleaverSize表9帧状态转换1(FrameStatusConversion1)模块的参数设置参数名称参数值模块类型FrameStatusConversionInheritoutputframestatusfromRefinputportUncheckedOutputSignalFrame-based对于CDMA2000中的RC3-6反向信道数据帧,输入数据按照0,12…,N-1的下标顺序写入一个固定长度的交织器,然后按照交织器顺序Ai读出数据(即在第i个时刻读取交织器中的第Ai个数据),其中Ai=2m(imodJ)+BROm([i/J]),i=0,12…,N-1,BROm(y)表示mbit整数y首尾翻转之后得到的二进制序列对应的整数。例如,6表示成三位二进制数为110,首尾翻转之后得到二进制序列011,它对应于整数3,因此,BRO3(6)=3。在上述计算过程中,m和J是由交织器长度决定的两个参数,它与交织器长度的对应关系如表表10交织器参数交织器长度mJ384667686121536624307264861447481228879657651823046364608736921677218432872368648144CDMA2000移动台信号交织器模块的交织功能是由M文件S-函数MS_SFUN_Interleaver实现的,它需要一个额外的输入变量,用于设置交织过程中使用的交织器的长度。S-函数根据这个输入参数计算数据帧的置换方式,并且输出交织后的数据帧。MS_SFUN_Interleaver.m文件的代码如下:function[sys,x0,str,ts]=MS_SFUN_Interleaver(t,x,u,flag,interleaver_size)%==============================================================%M文件S-函数的主体部分%函数名称:MS_SFUN_Interleaver%主要功能:根据输入参数flag的数值调用相应的函数%==============================================================switchflag,case0,%当flag等于0时,调用mdlInitializeSizes函数进行初始化[sys,x0,str,ts]=mdlInitializeSizes(interleaver_size);case2,%当flag等于2时,调用mdlUpdate函数计算离散状态的数值sys=mdlUpdate(t,x,u,interleaver_size);case3,%%当flag等于3时,调用mdlOutputs函数计算输出信号的数值sys=mdlOutputs(t,x,u);otherwiseerror(['Unhandledflag=',num2str(flag)]);end%endMS_SFUN_Interleaver%===========================================%S函数初始化%向Simulink返回S函数各种信号的长度、初始设置和抽样时间设置%===========================================function[sys,x0,str,ts]=mdlInitializeSizes(interleaver_size)%调用simsizes获得一个用于存放长度信息的结构sizes=simsizes;sizes.NumContStates=0;sizes.NumDiscStates=2;sizes.NumOutputs=-1;sizes.NumInputs=-1;sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;%通过simsizes把sizes结构返回给syssys=simsizes(sizes);%设置S-函数的初始状态[mJ]=mdlInterleaverInit(interleaver_size);x0=[mJ]';str=[];ts=[-10];%初始化抽样时间%更新S函数的离散状态并且向Simulink返回这些状态的数值functionsys=mdlUpdate(t,x,u,interleaver_size)[mJ]=mdlInterleaverInit(interleaver_size);sys=[mJ]';%endmdlUpdate%计算S函数的输出信号并且返回Simulink作为模块的输出functionsys=mdlOutputs(t,x,u)m=x(1);J=x(2);exp_m=2^m;A=zeros(exp_m*J,1);fori=0:length(u)-1quotient=fix(i/J);BRO=0;fork=1:mifbitget(quotient,k)=1BRO=bitset(BRO,m-k+1);endendA(exp_m*mod(i,J)+BRO+1)=u(i+1);endsys=A;function[m,J]=mdlInterleaverInit(interleaver_size)switchinterleaver_sizecase384m=6;J=6;case768m=6;J=12;case1536m=6;J=12;case3072m=6;J=48;case6144m=7;J=48;case12288m=7;J=96;case576m=5;J=18;case2304m=6;J=36;case4608m=7;J=36;case9216m=7;J=72;case18432m=8;J=72;case18432m=8;J=144;otherwiseerror('Error:InvalidInterleaverSizeinMS_SFUN_Interleaver');end最后一个步骤是把这个子系统转化成一个封装子系统。在子系统的封装过程中,我们把Icon面板的Drawingcommands设置为disp(‘TurboEncoder\n\n(CDMA2000MS)’),并且创建两个封装子系统内部变量xFrameLength和xCodeRate,它们分别表示输入信号的数据帧长度以及Turbo编码的速率。其中,xCodeRate是一个Popup方式的变量,它的选择项可以是rate1/2、rate1/3或者1/4。下面的程序段是MS_Interleavor_Initialization.m文件的代码,其中实现了对封装子系统内部各个变量的初始化,这些代码将在Simulink初始化过程中执行。%MS_Interleaver_Initialization.mswitchxRCcase3switchxFramelengthcase6120xRepetitionCount=1;xPunctureVector=[1];xInterleaverSize=12288;case3084xRepetitionCount=1;xPunctureVector=[1];xInterleaverSize=12288;case1512xRepetitionCount=1;xPunctureVector=[1];xInterleaverSize=6144;case744xRepetitionCount=1;xPunctureVector=[1];xInterleaverSize=3072;case360xRepetitionCount=1;xPunctureVector=[1];xInterleaverSize=1536;case172xRepetitionCount=2;xPunctureVector=[1];xInterleaverSize=1536;case80xRepetitionCount=4;xPunctureVector=[1];xInterleaverSize=1536;case40xRepetitionCount=8;xPunctureVector=[111111110];xInterleaverSize=1536;case16xRepetitionCount=16;xPunctureVector=[11110];xInterleaverSize=1536;case24xRepetitionCount=2;xPunctureVector=[1];xInterleaverSize=384;otherwiseerror('Error;InvalidFrameLengthforRadioConfiguration3incdma2000MobileStationlock<Interleaver>');endcase4switchxFrameLengthcase4584xRepetitionCount=1;xInterleaverSize=12288;case2280xRepetitionCount=1;xInterleaverSize=6144;case1128xRepetitionCount=1;xInterleaverSize=3072;case552xRepetitionCount=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论