您好,欢迎访问三七文档
..MATLAB仿真直接序列扩频通信1.摘要直接序列扩频通信系统(DS-CDMA)因其抗干扰性强、隐蔽性好、易于实现码分多址(CDMA)、抗多径干扰、直扩通信速率高等众多优点,而被广泛应用于许多领域中。针对频通信广泛的应用,本文用MATLAB工具箱中的SIMULINK通信仿真模块和MATLAB函数对直接序列扩频通信系统进行了分析和仿真,使其更加形象和具体。关键字:扩频通信m序列gold正交序列matlab仿真2.引言直接序列扩频(DSSS—DirectSequenceSpreadSpectrum)技术是当今人们所熟知的扩频技术之一。这种技术是将要发送的信息用伪随机码(PN码)扩展到一个很宽的频带上去,在接收端,用与发端扩展用的相同的伪随机码对接收到的扩频信号进行相关处理,恢复出发送的信息。它是二战期间开发的,最初的用途是为军事通信提供安全保障,是美军重要的无线保密通信技术。这种技术使敌人很难探测到信号。即便探测到信号,如果不知道正确的编码,也不可能将噪声信号重新汇编成原始的信号。有关扩频通信技术的观点是在1941年由好莱坞女演员HedyLamarr和钢琴家GeorgeAntheil提出的。基于对鱼雷控制的安全无线通信的思路,他们申请了美国专利#2.292.387。不幸的是,当时该技术并没有引起美国军方的重视,直到十九世纪八十年代才引起关注,将它用于敌对环境中的无线通信系统。直序扩频解决了短距离数据收发信机、如:卫星定位系统(GPS)、3G移动通信系统、WLAN(IEEE802.11a,IEEE802.11b,IEE802.11g)和蓝牙技术等应用的关键问题。扩频技术也为提高无线电频率的利用率(无线电频谱是有限的因此也是一种昂贵的资源)提供帮助。3.直接序列扩频DS-SS是直接用具有高码率的扩频码序列在发送端去扩展信号的频谱。而在收端,用相同的扩频码序列去进行解扩,把展宽的扩频信号还原成原始的信息。..4.DS-CDMA通信系统原理图在实验中,我们采用;两种扩频码进行仿真。M序列和正交Gold序列,扩频后的数据通过脉冲成型滤波器后通过信道同时到达接收端,在接收端分别对不同用户信息数据进行解扩,恢复各个用户的原始信息。5.仿真设计步骤1、m序列的DS-CDMA在AWGN下的性能的仿真。2、正交Gold序列的DS-CDMA在AWGN下的性能的仿真。3、对比两个扩频码在AWGN信道下的性能曲线,分析哪种扩频码更适合在AWGN..信道中传输,传输衰减最小,对比m序列和正交Gold序列的抗干扰能力。6.实验仿真运行结果从图中可以看出,由于正交Gold序列在完全同步时,它们的互相关值为0,因此其BER性能并不随着用户数的增加而恶化。在信噪比为2、4、6时误比特率基本相同。由图可以看出来当误比特率仿真时候小于10-3时结果就会有一定的偏差。但还是可以看出正交Gold序列比M序列的性能要好。所以,初步得出结论:正交Gold序列在AWGN信道下的抗干扰能力更强,衰减比,序列要小。..对比图4-1和图4-3,显然M序列在瑞利衰落信道下的性能要比能过AWGN信道下的性能要差7.总结对于本仿真而言,已基本完成了设计任务书的设计和研究目的,通过用MATLAB对DS-CDMA系统的仿真调试、结果分析,让我组熟悉了DS-CDMA的工作原理,加深了对扩频通信的认识,并深刻的了解PN码在不同信道的衰落情况。通过仿真结果中波形的直观方式,更让我们了解到了系统衰减的规律。但是在本设计中也存在着缺陷与不足1、在本设计中过程中可能由于程序过于复杂,信息本身所占用的带宽偏大,用来传输信息的带宽相对不够大,造成结果并不明显,信息衰减严重。2、在设计中只考虑到加性高斯信道所带来的干扰,在实际通信信道却是复杂多变,存在着各种各样的情况,所以最后的接收信号是在很简单的干扰下得出。要想应用于实际中,必须加入各种噪声来考虑,以实现真实系统的设计。3、实验中,我们选择加大传输带宽,来弥补其他干扰带来的影响,可能会造成..消耗过大,浪费带宽的结果,实际应用中是不实用的。只能作为仿真,进行研究。即使如此,在本次设计的整个过程中,以上的结果已经令我们受益匪浅。通信系统的性能分析和仿真,随着通信技术、信息技术和计算机技术的发展以及网络系统的大量应用,显得越来越重要。参考文献[1]刘学勇,编著.通信系统建模与仿真(电子工业出版社)[2]邓薇,编著.MATALB函数速查手册(人民邮电出版社)[3]【美】WilliamC.Y.Lee,著.移动通信工程理论和应用(第二版)(人民邮电出版社)[4]王华奎,李艳萍等编著.移动通信原理与技术(清华大学出版社)程序%1.函数mseq用于产生m序列:function[mout]=mseq(n,taps,inidata,num)%****************************************************************%说明:函数mseq用于产生num个阶数为n的m序列%n:m序列的阶数n%taps:反馈寄存器的连接位置%inidata:寄存器的初始值序列%num:输出的m序列的个数%mout:输出的m序列,如果num1,则每一行为一个m序列%****************************************************************ifnargin4%输入参数判断num=1;endmout=zeros(num,2^n-1);%寄存器输出值的初始化,全0fpos=zeros(n,1);%反馈寄存器连接位置的初始化fpos(taps)=1;%反馈寄存器连接位置..forii=1:2^n-1mout(1,ii)=inidata(n);%寄存器的输出值temp=mod(inidata*fpos,2);%计算反馈数据inidata(2:n)=inidata(1:n-1);%寄存器移位一次inidata(1)=temp;%更新第1个寄存器的值endifnum1%如果要输出多个m序列,生成其他m序列forii=2:nummout(ii,:)=shift(mout(ii-1,:),1);%shift函数完成序列的循环移位,上一个序列向右循环移位endend%2.函数goldseq用于产生gold序列function[gout]=goldseq(m1,m2,num)%****************************************************************%m1:m序列1%m2:m序列2%num:生成的Gold序列个数%gout:生成的Gold序列输出%****************************************************************ifnargin3%如果没有指定生成的Gold序列个数,默认为1num=1;endgout=zeros(num,length(m1));forii=1:num%根据Gold序列生成方法生成Gold序列gout(ii,:)=xor(m1,m2);m2=shift(m2,1);end%函数shift用于完成循环移位function[outregi]=shift(inregi,shiftr)%****************************************************************%inregi:输入序列%shiftr:循环右移的位数%outregi:输出序列..%****************************************************************v=length(inregi);%输入序列的长度outregi=inregi;%输出序列初始化为输入序列shiftr=rem(shiftr,v);%求余,使移位的值在[0,v]之间ifshiftr0outregi(:,1:shiftr)=inregi(:,v-shiftr+1:v);%循环移位把最后shiftr位移到前shiftr位outregi(:,1+shiftr:v)=inregi(:,1:v-shiftr);%完成剩余的移位elseifshiftr0outregi(:,1:v+shiftr)=inregi(:,1-shiftr:v);outregi(:,v+shiftr+1:v)=inregi(:,1:-shiftr);end%3.直接序列扩频主程序代码function[ber]=dscdma(user,seq)%user:同时进行扩频通信的用户数%seq:扩频码1:M-序列2:Gold序列3:正交Gold序列%ber:该用户数下的误码率%****************************初始化部分*****************************sr=256000.0;%符号速率nSymbol=10000;%每种信噪比下发送的符号数M=4;%4-QAM调制br=sr*log2(M);%比特速率graycode=[0132];%Gray编码规则EbNo=0:2:10;%Eb/No变化范围%**************************脉冲成形滤波器参数**************************delay=10;%升余弦滤波器时延Fs=8;%滤波器过采样数rolloff=0.5;%升余弦滤波器滚降因子rrcfilter=rcosine(1,Fs,'fir/sqrt',rolloff,delay);%设计根升余弦滤波器%**********************扩频码产生参数**********************%直接序列扩频主程序代码..function[ber]=dscdma(user,seq)%user:同时进行扩频通信的用户数%seq:扩频码1:M-序列2:Gold序列3:正交Gold序列%ber:该用户数下的误码率%****************************初始化部分*****************************sr=256000.0;%符号速率nSymbol=10000;%每种信噪比下发送的符号数M=4;%4-QAM调制br=sr*log2(M);%比特速率graycode=[0132];%Gray编码规则EbNo=0:2:10;%Eb/No变化范围%**************************脉冲成形滤波器参数**************************delay=10;%升余弦滤波器时延Fs=8;%滤波器过采样数rolloff=0.5;%升余弦滤波器滚降因子rrcfilter=rcosine(1,Fs,'fir/sqrt',rolloff,delay);%设计根升余弦滤波器%**********************扩频码产生参数**********************%user=user1;%用户数stage=3;%m序列的阶数ptap1=[13];%m序列1的寄存器连接方式ptap2=[23];%m序列2的寄存器连接方式regi1=[111];%m序列1的寄存器初始值regi2=[111];%m序列2的寄存器初始值%********************扩频码的生成*********************switchseqcase1%M-序列code=mseq(stage,ptap1,regi1,user);case2%Gold序列m1=mseq(stage,ptap1,regi1);..m2=mseq(stage,ptap2,regi2);code=goldseq(m1,m2,user);case3%正交Gold序列m1=mseq(stage,ptap1,regi1);m2=mseq(stage,ptap2,regi2);code=[goldseq(m1,m2,user),zeros(user,1)];endcode=code*2-
本文标题:直接序列扩频通信
链接地址:https://www.777doc.com/doc-6063368 .html