2022年基于卷积编码的扩频通信系统软件平台方案设计书.docx

上传人:Che****ry 文档编号:12909004 上传时间:2022-04-26 格式:DOCX 页数:27 大小:242.18KB
返回 下载 相关 举报
2022年基于卷积编码的扩频通信系统软件平台方案设计书.docx_第1页
第1页 / 共27页
2022年基于卷积编码的扩频通信系统软件平台方案设计书.docx_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《2022年基于卷积编码的扩频通信系统软件平台方案设计书.docx》由会员分享,可在线阅读,更多相关《2022年基于卷积编码的扩频通信系统软件平台方案设计书.docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品学习资源摘要 .1前言. .21 设计内容及要求 31.1设计目的 . .31.2设计任务 . .31.3 设计内容 32 设计原理 42.1数据源 . .42.2卷积编码 . .42.3 m序列发生器 42.4 扩频与解扩 42.4.1 扩频 42.4.2解扩. .42.5 Viterbi译码 52.6 牢靠度评估 63 软件仿真及结果分析 74 心得体会 85 附录 9参考文献 25摘要MATLAB是一种用于科学运算的高性能语言;它可将运算、可视化和程序设计欢迎下载精品学习资源集成在一个特别简单使用的环境中;MATLAB是一个交互系统,它的基本数据元素是数组,特殊适合解决用矩阵和向量组

2、织数据的科学技术运算问题;此次课设就是 利用 MATLAB软件编写程序实现卷积编码和Viterbi译码的算法,并且实现扩频通信系统的扩频与解扩,从而得出信噪比与误码率之间的关系;前言欢迎下载精品学习资源扩频通信是 现代通信系统中新的通信方式,它具有较强的抗干扰、抗衰落和抗多径性能,频谱利用率高;扩频信号是不行猜测的、伪随机的宽带信号,其带宽远大于要传输的数据 信息带宽,同时接收机中必需有与宽带载波同步的副本;在发端输人的信息先调制形成数字信号,然后由扩频码发生器产生的扩频码序列去调制数字信号以展宽信号的频谱,展宽后的信号再调制到射频发送出去;在接收端收到的宽带射频信号,变频至中频,然后由本地产

3、生的与发端相同的扩频码序列去相关解扩,再经信息解调,复原成原始信息输出;通信系统都要进行3 次调制和相应的解调;一次调制为信息调制;与一般通信系统比较,多了扩频调制和解扩部分;扩频通信具备如下特点:1 数字传输方式; 2 传输信号的带宽远大于被传信息带宽; 3带宽的展宽,是利用与被传信息无关的函数扩频函数 对被传信息的信元重新进行调制实现的; 4接收端用相同的扩频函数进行相关解调解扩,求解出被传信息的数据;用扩频函数也称伪随机码 调制和对信号相关处理是扩频通信有别于其他通信的两大特点;1 设计内容及要求欢迎下载精品学习资源m序 列发生器数据源卷积编码扩频信道解扩Viterbi译码判决数据1.1

4、 设计目的锤炼同学综合运用所学学问设计实际通信系统的才能,为同学走向工作岗位处理本专业方向的各种实际问题打好基础,做到学以致用;详细到本次设计:(1) )学习通信中的纠错编码技术及其主要应用;(2) )把握扩频通信原理技术及其特点,明白其在通信系统中特殊是第三代移动通信系统所采纳的码分多址( CDM)A 技术中的应用;(3) )学会用 C或 MATLAB软件方法设计一般通信系统;(4) )学习 CDMA手机的信息处理过程,把握其基带电路主要组成部分和工作原理及功能;模拟 CDMA手机的信息处理过程;完成基带电路主要组成部分的软件平台设计并评估系统的牢靠性;1.2 设计任务(1) )建立 CDM

5、A手机处理信息的卷积编码扩频通信系统(2) )软件实现卷积编码和 Viterbi译码的算法(3) )软件实现扩频通信系统的扩频与解扩(4) )评估卷积编码扩频通信系统的牢靠性1.3 设计内容本次课程设计主要实现的任务有:建立卷积编码扩频通信系统;软件实现卷积编码和 Viterbi译码的算法;软件实现扩频通信系统的扩频与解扩;评估卷积编码扩频通信系统的牢靠性;系统设计的总体框图如图1-1:图 1-12 设计原理欢迎下载精品学习资源2.1 数据源随机产生 bt=b0,b1,b2, 的二进制数据2.2 卷积编码卷积码 又称连环码 ,是由伊莱亚斯 P.Elis提出的一种非分组码;它把 k 比特信息段编

6、成 n 比特的码组,该码组不仅同当前的k 比特信息段有关,而且仍同前面的N-1 个信息段有关联 N 为大于 1 的整数 ;通常,把卷积码记作 n,k,N,其中 k 为输入码元数, n 为输出码元数, N为约束长度,表示编码器的储备器级数;卷积编码属于信道编码,主要用来订正码元的随机差错,它是以牺牲效率来换取可靠性,利用增加监督位,进行检错和纠错;图 2-12.3 m 序列发生器二进制的 m序列是一种重要的伪随机序列,有良好的自相关特性,有时称为伪噪声序列; m 序列是最长线性移位寄存器序列的简称;顾名思义,m 序列是由多级移位寄存器或其推迟元件通过线性反馈产生的最长的码序列;它能产生的的最大长

7、度的码序列为 2n-1 位;2.4扩频与解扩将编码输出与扩频码相乘,即完成扩频;将扩频后的信号(叠加有噪声)与扩频码相乘,即为解扩;2.4.1扩频扩频通信的基本特点是传输信号所占用的频带宽度W远大于原始信息本身实际所需的最小 有效 带宽DF ,其比值称为处理增益 Gp,其中 Gp = W/DF;卷积码编码器是一个由k 个输入端、 n 个输出端,且具有 N-1 或 m节移位寄存器构成的有限状态记忆系统,通常称为时序网络,其原理如图2-1 所示;欢迎下载精品学习资源任何信息的有效传输都需要肯定的频率宽度,为了充分利用有限的频率资源, 增加通路数目,人们广泛挑选不同调制方式,采纳宽频信道 同轴电缆、

8、微波和光纤等 和压缩频带等措施,同时力求使传输的媒介中传输的信号占用完量窄的带宽;因现今使用的电话、广播系统中,无论是采纳调幅、调频或脉冲编码调制制式, Gp值一般都在十多倍范畴内,统称为“窄带通信”,而扩频通信的Gp值,高达数百、上千,称为“宽带通信”;如图图2-2 为扩频系统能够一般原理图:欢迎下载精品学习资源2.4.2解扩图 2-2欢迎下载精品学习资源正如在一般的窄带通信中,已调信号在接收端都要进行解调来复原所传的信息;在扩频通信中接收端就用与发送端相同的扩频码序列与收到的扩频信号进行相关解调,复原所传的信息;换句话说,这种相关解调起到解扩的作用;即把扩展以后的信号又复原成原先所传的信息

9、;这种在发端把窄带信息扩展成宽带信号,而在收端又将其解扩成窄带信息的处理过程,会带来一系列好处;弄清晰扩频和解扩处理过程的机制,是懂得扩频通信本质的关键所在;基本的扩频过程就是在收端产生与发端完全相同的PN码,对收到的扩频信 号,在平稳调制器中再一次进行二相相移键控调制;可以看动身端相移键控调制后 的信号在收端又被复原成原先的载波信号;当然一个必要的条件是本地的PN码信号的相位必需和收到的相移后的信号在相移点对准,才能正确地将相移后的信号再 翻转过来;2.5 Viterbi译码Viterbi译码算法是一种卷积码的解码算法;卷积码的Viterbi译码是依据接收码字序列查找编码时通过网格图正确路径

10、的过程,找到正确路径即完成了译码欢迎下载精品学习资源过程,并可以订正接收码字中的错误比特;所谓“正确”,是指最大后验条件概率: P C/ R = maxj P Cj/ R ,其译码流程为:(1) )依据接收码符号运算出相应的分支量度值;(2) )进入某一状态的分支量度与其前状态路径量度累加求和;( 3)比较到达当前状态的新的路径量度的大小,挑选最大者作为新的状态路径量度储备起来,并储存与此路径对应的码字;( 4)对全部状态都实施上述加、比、选运算;( 5)在每一译码时刻,满意延时就从256条留存路径中,挑选路径量度最大的一条路径作为译码数输出;( 6)进入下一译码时刻,重复以上步骤,直至译码终

11、止;2.6 牢靠度评估用误码率( BER)指标,运算公式BER检测到的数据错误数总输入数据 数据量尽可能大 数据源发射端 接收端判决数据比较两个数据3 软件仿真及结果分析本次课设需要仿真的内容如下:欢迎下载精品学习资源(1) 直接进行信号传输 , 即没有进行卷积和扩频的程序一. ;本程序仿真得到的图形见附录中图 5-1 ;(2) 没有进行卷积,进行扩频,扩频周期L=15 的程序二;本程序仿真得到的图形见附录中图 5-2 ;(3) 没有进行卷积,进行扩频,扩频周期L=31 的程序三;本程序仿真得到的图形见附录中图 5-3 ;(4) 进行卷积,进行扩频,扩频周期L=15 的程序四;本程序仿真得到的

12、图形见附录中图 5-4 ;(5) 转变卷积码的值,扩频周期仍为15 的程序五;本程序仿真得到的图形见附录中图 5-5 ;通过以上图形可以得出的结论如下:在加入卷积后,系统的抗干扰才能比没有加卷积的时候强;加入扩频比不加扩频的时候抗干扰才能强,并且扩频因子越大,系统的抗干扰才能越强;在相同条件下, 码率越小系统的抗干扰才能越好;4 心得体会转瞬间为期三周的专业方向课程设计就终止了;这次课程设计也是我们高校学习中欢迎下载精品学习资源的最终一次课程设计了,因此对于这次课程设计我也更加珍爱,比以前更加认真对待;回想以前的多次课程设计,好像也觉得这次比以前学到的东西要多;究竟这次课程设计是我们专业方向的

13、课设,对专业只是的要求也比较高,不仅让我们能巩固到进入高校以来所学的专业学问,更让我们提前体会到进入社会后从事专业技术工作的状态;这次课程设计要求我们用到MATLAB软件工具或者是 C 语言进行软件的编程,来实现课设中所要求的卷积编码和Viterbi译码的算法以及实现扩频通信系统的扩频与解扩;这就要求我们对MATLAB和 C 语言能够娴熟应用,面对复杂的程序编写刚开头我和我的小组成员有点儿手足无措,不知从哪里入手,但经过老师对课设原 理的基本讲解后,我们对课设实现的基本模块也有了初步明白;在这个基础上我们 有从图书馆借来 MATLAB的相关书籍来作为参考,也把和通信原理课本相关的学问内容进行了

14、巩固;最终我们针对课设原理的模块各个击破,最终最终把程序完 成了,病进行了相关的仿真和调试;通过这次课设又让我进一步学习到了小组合作的重要性,也学到了在面对困难及问题的时候不能慌张,要认真认真的从中一步步找错误,急于求成只能让问题更复杂;在以后毕业的工作中更需要这种合作精神以及严谨认真的态度;这些对我们以后的进展都很重要;5 附录欢迎下载精品学习资源程序一:本程序未加扩频码,未加扩频EN = input 请输入信噪比(用分贝表示) : ;L= input 请输入数据帧长度 = 信息比特数 + 尾比特数 , 默认值: 400 : ;if isemptyLL = 400;endferrlim=in

15、put 请输入程序终止的帧错误数 ,默认值 : 15 : ;if isemptyferrlimferrlim = 15 ;endc=-1 -1 -1 1 1 1 1 -1 1 -1 1 1 -1 -1 1;N=lengthc;g=1 0 1;1 1 1;k0=1;for j=1:lengthEN ;errsj = 0;nferrj = 0 ;nframe = 0;while nferrjferrlimnframe = nframe + 1;tem=rand1,L;for i=1:Lif temi=0Dbi=1 ;elseDbi=0;endend err=lengthfindDb=d ;if e

16、rr0nferrj=nferrj+1 ;enderrsj = errsj + err;欢迎下载精品学习资源if remnframe,3=0 | nferrj=ferrlim% Bit error rateberj = errsj/nframe/L ;% Frame error rateferj = nferrj/nframe ;% Display intermediate results in processfprintf* Eb/N0 = % 5.2f db *n, ENj;fprintfFrame size = %d, rate 1/%d. n, L, 2;fprintf%d frames

17、 transmitted, %d frames in error.n, nframe, nferrj;fprintf%8.4e, berj ;fprintfn ;fprintf%8.4e, ferj ;fprintfn ;fprintf*nn;end% Save intermediate results end%whileend%nENsemilogyEN,ber,.;end%diary off程序二:本程序无卷积,扩频周期L=15EN = input 请输入信噪比(用分贝表示) :;L=input 请输入数据帧长度 =信息比特数 +尾比特数 ,默认值: 400:;ferrlim=input

18、请输入程序终止的帧错误数 , 默认值: 15 : ;if isemptyferrlimferrlim = 15 ;endif isemptyLL = 400;endc=-1 -1 -1 1 1 1 1 -1 1 -1 1 1 -1 -1 1;N=lengthc;g=1 0 1;1 1 1;k0=1;for j=1:lengthEN ;errsj = 0;nferrj = 0 ;nframe = 0;while nferrjferrlimnframe = nframe + 1;tem=rand1,L;欢迎下载精品学习资源for i=1:Lif temi=0 Dbi=1;elseDbi=0;end

19、end err=lengthfindDb=d ;if err0nferrj=nferrj+1 ;enderrsj = errsj + err;if remnframe,3=0 | nferrj=ferrlim% Bit error rateberj = errsj/nframe/L ;% Frame error rateferj = nferrj/nframe ;% Display intermediate results in process fprintf*Eb/N0=%5.2fdb *n, ENj;fprintfFrame size = %d, rate 1/%d. n, L, 2;fp

20、rintf%d frames transmitted, %d frames in error.n, nframe, nferrj;fprintf%8.4e, berj ;fprintfn ;fprintf%8.4e, ferj ;fprintfn ;fprintf*nn;欢迎下载精品学习资源endend%while end%nEN% Save intermediate results欢迎下载精品学习资源semilogyEN,ber,.;%diary off欢迎下载精品学习资源程序三:本程序无卷积,扩频周期L=31EN = input 请输入信噪比(用分贝表示) :;L=input 请输入数据帧

21、长度 =信息比特数 +尾比特数 ,默认值: 400:;ferrlim=input 请输入程序终止的帧错误数 , 默认值: 31: ;if isemptyferrlim ferrlim = 31 ;endif isemptyLL = 400;endc=-1 1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 -1 -1 1 -1 1 1 1 1 -1 -1 -1 -1 -1 ;N=lengthc;g=1 0 1;1 1 1;k0=1;for j=1:lengthEN ;errsj = 0;nferrj = 0 ;nframe = 0;while nferrjf

22、errlimnframe = nframe + 1;tem=rand1,L;for i=1:Lif temi=0欢迎下载精品学习资源elseDbi=1 ;Dbi=0;endend err=lengthfindDb=d ;if err0nferrj=nferrj+1 ;end欢迎下载精品学习资源errsj = errsj + err;if remnframe,3=0 | nferrj=ferrlim% Bit error rateberj = errsj/nframe/L ;% Frame error rateferj = nferrj/nframe ;% Display intermediat

23、e results in process fprintf*Eb/N0=%5.2f db *n, ENj;fprintfFrame size = %d, rate 1/%d. n, L, 2;fprintf%d frames transmitted, %d frames in error.n, nframe, nferrj;fprintf%8.4e, berj ;fprintfn ;fprintf%8.4e, ferj ;fprintfn ;fprintf*nn;欢迎下载精品学习资源endend%while end%nEN% Save intermediate results欢迎下载精品学习资源

24、semilogyEN,ber,.;end%diary off程序四 :本程序包含卷积,扩频周期L=15EN = input 请输入信噪比(用分贝表示) : ;L= input 请输入数据帧长度 = 信息比特数 + 尾比特数 , 默认值: 400 : ;if isemptyLL = 400;endferrlim=input 请输入程序终止的帧错误数 , 默认值: 15 : ;if isemptyferrlimferrlim = 15 ;endc=-1 -1 -1 1 1 1 1 -1 1 -1 1 1 -1 -1 1;% 产生 m 序列N=lengthc;g=1 0 1;1 1 1;k0=1;%

25、 卷积生成矩阵for j=1:lengthEN ;errsj = 0;%赋初值nferrj = 0 ;nframe = 0;while nferrjferrlimnframe = nframe + 1;tem=rand1,L;欢迎下载精品学习资源for i=1:L%判决生成单极性序列 dt if temi=0% 判决生成扩频后的序列DbtDbi=1 ;elseDbi=0;endend Dd,survivor_state,cumulated_metric=viterbig,k0,Db;%viterbi 译码err=lengthfindDd=d ;%比较 Db 与 d if err0nferrj=

26、nferrj+1 ;enderrsj = errsj + err;if remnframe,3=0 | nferrj=ferrlim% Bit error rateberj = errsj/nframe/L ;% Frame error rateferj = nferrj/nframe ;% Display intermediate results in process fprintf*Eb/N0=%5.2fdb *n, ENj;fprintfFrame size = %d, rate 1/%d. n, L, 2;fprintf%d frames transmitted, %d frames

27、in error.n, nframe, nferrj;fprintf%8.4e, berj ;fprintfn ;fprintf%8.4e, ferj ;fprintfn ;fprintf*nn;end% Save intermediate results欢迎下载精品学习资源end%while end%jsemilogyEN1:lengthEN,ber1:lengthEN,* ;程序五 :本程序转变卷积,扩频周期L=15EN = input 请输入信噪比(用分贝表示) : ;L= input 请输入数据帧长度 = 信息比特数 + 尾比特数 , 默认值: 400 : ;if isemptyLL

28、= 400;endferrlim=input 请输入程序终止的帧错误数 , 默认值: 15 : ;if isemptyferrlimferrlim = 15 ;endc=-1 -1 -1 1 1 1 1 -1 1 -1 1 1 -1 -1 1;% 产生 m 序列N=lengthc;g=0 0 1 0 1 0 0 1;0 0 0 0 0 0 0 1;1 0 0 0 0 0 0 1;k0=2;% 卷积生成矩阵for j=1:lengthEN ;errsj = 0;%赋初值nferrj = 0 ;nframe = 0;while nferrjferrlimnframe = nframe + 1;te

29、m=rand1,L;for i=1:L%判决生成单极性序列 dt if temi=0% 判决生成扩频后的序列DbtDbi=1;elseDbi=0;欢迎下载精品学习资源end endDd,survivor_state,cumulated_metric=viterbig,k0,Db;%viterbi 译码err=lengthfindDd=d ;%比较 Db 与 d if err0nferrj=nferrj+1 ;enderrsj = errsj + err;if remnframe,3=0 | nferrj=ferrlim% Bit error rateberj = errsj/nframe/L

30、;% Frame error rateferj = nferrj/nframe ;% Display intermediate results in process fprintf*Eb/N0=%5.2fdb *n, ENj;fprintfFrame size = %d, rate 1/%d. n, L, 2;fprintf%d frames transmitted, %d frames in error.n, nframe, nferrj;fprintf%8.4e, berj ;fprintfn ;fprintf%8.4e, ferj ;fprintfn ;fprintf*nn;end% S

31、ave intermediate results end%whileend%jsemilogyEN1:lengthEN,ber1:lengthEN,* ;卷积码子程序function output=cnv_encdg,k0,input if remlengthinput,k00input=input,zerossize1:k0-remlengthinput,k0 ;endn=lengthinput/k0;if remsizeg,2,k00errorError,g is not of the right size. endl=sizeg,2/k0;n0=sizeg,1;u=zerossize1:

32、l-1*k0,input,zerossize1:l-1*k0 ;u1=ul*k0:-1:1 ;for i=1:n+l-2欢迎下载精品学习资源u1=u1,ui+l*k0:-1:i*k0+1;enduu=reshapeu1,l*k0,n+l-1;output=reshaperemg*uu,2,1,n0*l+n-1;* g=0 0 1 0 1 0 0 1;0 0 0 0 0 0 0 1;1 0 0 0 0 0 0 1;k0=2;input=1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1;output=cnv_encdg,k0,input* g=1 0 1;1 1 1;k0=1;c

33、hannel_output=0 1 1 0 1 1 1 1 0 1 0 0 0 1;decoder_output,survivor_state,cumulated_metric=viterbig,k,channel_outputViterbi 译码子程序functiondecoder_output,survivor_state,cumulated_metric=viterbig,k,channel_output n=sizeg,1;if remsizeg,2,k=0errorSize of g and k do not agree endif remsizechannel_output,2,n

34、=0errorchannel output not of the right size endL=sizeg,2/k;number_of_states=2L-1*k ;for j=0:number_of_states-1for l=0:2k-1 next_state,memory_contents=nxt_statj,l,L,k;inputj+1,next_state+1=l;branch_output=remmemory_contents*g,2; nextstatej+1,l+1=next_state;outputj+1,l+1=int_statebranch_output;end end

35、state_metric=zerosnumber_of_states,2; depth_of_trellis=lengthchannel_output/n;channel_output_matrix=reshapechannel_output,n,depth_of_trellis; survivor_state=zerosnumber_of_states,depth_of_trellis+1;for i=1:depth_of_trellis-L+1欢迎下载精品学习资源flag=zeros1,number_of_states; if istate_metricj+1,1+branch_metri

36、c|flagnextstate j+1,l+1+1=0state_metricnextstatej+1,l+1+1,2=state_metricj+1,1+branch_metric; survivor_statenextstatej+1,l+1+1,i+1=j;flagnextstatej+1,l+1+1=1;end endendstate_metric=state_metric:,2:-1:1;endfor i=depth_of_trellis-L+2:depth_of_trellis flag=zeros1,number_of_states; last_stop=number_of_states/2i-depth_of_trellis

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁