您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于matlab的直接序列扩频通信系统仿真
基于MATLAB的直接序列扩频通信系统仿真1.实验原理:直接序列扩频(DSSS)是直接利用具有高码率的扩频码系列采用各种调制方式在发端与扩展信号的频谱,而在收端,用相同的扩频码序去进行解扩,把扩展宽的扩频信号还原成原始的信息。它是一种数字调制方法,具体说,就是将信源与一定的PN码(伪噪声码)进行摸二加。例如说在发射端将1用11000100110,而将0用00110010110去代替,这个过程就实现了扩频,而在接收机处只要把收到的序列是11000100110就恢复成1是00110010110就恢复成0,这就是解扩。这样信源速率就被提高了11倍,同时也使处理增益达到10DB以上,从而有效地提高了整机倍噪比。1.1直扩系统模型直接序列扩频系统是将要发送的信息用伪随机码(PN码)扩展到一个很宽的频带上去,在接收端用与发送端相同的伪随机码对接收到的扩频信号进行相关处理,恢复出发送的信号。对干扰信号而言,与伪随机码不相关,在接收端被扩展,使落入信号通频带内的干扰信号功率大大降低,从而提高了相关的输出信噪比,达到了抗干扰的目的。直扩系统一般采用频率调制或相位调制的方式来进行数据调制,在码分多址通信中,其调制多采用BPSK、DPSK、QPSK、MPSK等方式,本实验中采取BPSK方式。直扩系统的组成如图1所示,与信源输出的信号a(t)是码元持续时间为Ta的信息流,伪随机码产生器产生伪随机码c(t),每个伪随机码的码元宽度为Tc(TcTa)。将信息码与伪随机码进行相乘或模二加,产生一速率与伪随机码速率相同的扩频序列,这时信息带宽已经被展宽(如图2b),然后用扩频序列去调制载波,则信号频谱被搬移到射频上(如图2c)。在接收端,接收到的信号经混频后,用与发射同步的伪随机码对中频信号进行相关解扩,将信号的频带恢复为信息的频带,然后再进行解调,恢复出所传送的信息a(t)。对信道中的干扰,这些干扰包括:窄带干扰、多径干扰、多址干扰等。由于这些干扰与伪随机码不相关,接收机的相关解扩对它们相当于一次扩频,将干扰和噪声的频谱展宽,降低了功率谱密度,经滤波后就大大降低了进入信号通频带内的干扰功率,使解调器的输入信噪比得到提高,从而提高了系统的抗干扰能力。图2给出了直扩系统的频谱图。[1]图1直扩系统组成框图1.2扩频通信常用的伪随机码常用的伪随机码主要有m序列、GOLD序列、WALSH码和OVSF码,其中最常见的是m序列。GOLD码是m序列的复合码,是由2个码长相等,码时钟速率相同的序列优选对模2加构成,每改变2个序列相对位移就可得到一个新的GOLD序列。GOLD序列具有良好的自、互相关特性,且地址数远远大于m序列地址数,结构简单,易于实现,在工程上得到较为广泛的应用。WALSH函数是一种非正弦的完备正交函数系,具有理想的互相关特性,两两之间的互相关函数为0,亦即它们是正交的,因而在码分多址通信中,WALSH函数可以作为地址码使用,在IS-95中,正向传输信道就使用了64阶WALSH函数。OVSF码是一种正交可变扩频因子码,保证在不同时隙上的不同扩频因子的扩频码正交,而在每个时隙上可使用的码的数目不固定,与每个物理信道的数据速率和扩频因子有关,OVSF码在TD-SCDMA系统中得到了广泛使用。[2]1.3扩频通信技术的优点扩频通信之所以得到重视和发展,并成为近代通信主要研究和发展的方向,是因为它具有其它通信系统不能与之相比的独特性能。1)抗同频干扰性能好。接收机采用相关运算只接收PN码相同的扩频信号,对所有载波频率相同的信号或干扰具有很强的抑制能力。2)良好的抗衰落性能。一般信道中的衰落是有频率选择性的,不会对宽频带的扩频信号接收产生太大的影响。3)抗多径干扰能力强。由于扩频系统中采用的PN码具有很好的自相关性,互相关性很弱,不同的路径传输来的信号能容易地被分离开,并在时间和相位上重新对齐,形成几路信号功率的叠加,从而改善了接收系统的性能,增加了系统的可靠性。[3]2部分程序代码及仿真结果仿真参数:信源速率2kbps,扩频因子:64,调制方式:BPSK,信道:高斯信道closeallclearallSNR=[1:1:15]Rb=0.25;Tb=1/Rb;M=100;L=400;N=M*L;dt=Tb/L;df=1/(N*dt);Bs=N*df/2;T=N*dt;t=linspace(-T/2,T/2,N);x=sign(rand(1,M)-0.5);t0=linspace(0,T,M);fori=1:100;d((1+(i-1)*400):i*400)=x(i);endfigure(1)plot(t,d)xlabel('t(ms)');ylabel('s(t)(V)');title('信源');axis([0,200,-1.5,1.5]);gridonfs=4000;z=reshape(d,2,N/2);Q=z(1,:);I=z(2,:);tq=linspace(-T/2,T/2,length(I));BPSK=(I.*cos(2*fs*pi*tq)-Q.*sin(2*fs*pi*tq))/sqrt(2);figure(2)plot(tq,QPSK)xlabel('t(ms)');ylabel('QPSK(t)(V)');title('BPSK信号');axis([0,200,-1.5,1.5]);gridonuser=1;seq=1;stage=3;ptap1=[13];ptap2=[23];regi1=[111];regi2=[111];switchseqcase1code=mseq(stage,ptap1,regi1,user);case2m1=mseq(stage,ptap1,regi1);m2=mseq(stage,ptap2,regi2);code=goldseq(m1,m2,user);case3m1=mseq(stage,ptap1,regi1);m2=mseq(stage,ptap2,regi2);code=[goldseq(m1,m2,user),zeros(user,1)];endxxx=codeclen=length(code);xlength=100*50;x_code=zeros(1,xlength);fori=1:xlengthifmod(i,7)~=0x_code(i)=sign(code(mod(i,7))-0.5);elseifmod(i,7)==0x_code(i)=sign(code(7)-0.5);endendk_code=zeros(1,length(QPSK));fori=1:5000k_code((1+(i-1)*4):i*4)=x_code(i);ãendfigure(3)plot(tq,k_code)xlabel('t(ms)');ylabel('k_code(t)(V)');title('扩频码');axis([20,25,-1.5,1.5]);gridonb=BPSK.*k_code;fc=4e4;td=linspace(0,T,length(b));s=b.*cos(2*fc*pi*td);figure(4)plot(td,s)xlabel('t(ms)');ylabel('s(t)(V)');title('扩频调制信号');axis([20,31,-1.5,1.5]);gridonr=awgn(s,SNR(10),'measured');rs=r.*cos(2*fc*pi*td);figure(5)plot(td,rs)xlabel('t(ms)');ylabel('rs(t)(V)');title('扩频解调信号');axis([20,28,-1.5,1.5]);gridonjk_code=rs.*k_code;figure(6)plot(td,jk_code)xlabel('t(ms)');ylabel('rk(t)(V)');axis([20,33,-1.5,1.5]);gridon[f,rf]=T2F(td,jk_code);[tl,l]=lpf(f,rf,fc/10000);liremod=cos(2*fs*pi*tq)*sqrt(2).*l;[fi,lif]=T2F(tq,liremod);[tji,iremod]=lpf(fi,lif,fs/10000);iremodo=sign(iremod);lqremod=(-1)*sin(2*fs*pi*tq)*sqrt(2).*l;[fq,lqf]=T2F(tq,lqremod);[tjq,qremod]=lpf(fq,lqf,fs/10000);qremodo=sign(qremod);zl=[qremodo,iremodo];figure(7)plot(t,zl)xlabel('t(ms)');ylabel('zl(t)(V)');axis([0,200,-1.5,1.5]);gridonz2=0;xo=zeros(size(x));fori=1:100z2=0forj=1+(i-1)*400:i*400z2=z2+zl(j);endifz2=0xo(i)=1;elsexo(i)=-1;endendfigure(8)plot(t0,xo)xlabel('t(ms)');ylabel('xo(t)(V)');title('解调后输出的信号');axis([0,400,-1.5,1.5]);gridonfora=1:15r=awgn(s,SNR(a),'measured');;rs=r.*cos(2*fc*pi*td);jk_code=rs.*k_code;[f,rf]=T2F(td,jk_code);[tl,l]=lpf(f,rf,fc/10000);liremod=cos(2*fs*pi*tq)*sqrt(2).*l;[fi,lif]=T2F(tq,liremod);[tji,iremod]=lpf(fi,lif,fs/10000);¨iremodo=sign(iremod);lqremod=(-1)*sin(2*fs*pi*tq)*sqrt(2).*l;[fq,lqf]=T2F(tq,lqremod);[tjq,qremod]=lpf(fq,lqf,fs/10000);qremodo=sign(qremod);zl=[qremodo,iremodo];z2=0;xo=zeros(size(x));fori=1:100z2=0forj=1+(i-1)*400:i*400z2=z2+zl(j);endifz2=0xo(i)=1;elsexo(i)=-1;endendz=0;fori=1:100if(x(i)~=xo(i))z=z+1;endendz1(a)=z/100endfigure(8)plot(SNR,z1)xlabel('SNR');ylabel('z1');title('误码率');axis([0,15,10^(-4),1]);gridon程序运行结果:3仿真参数:信源速率2kbps,扩频因子:64,调制方式:BPSK,信道:高斯信道4总结与感想:扩频通信以其较强的抗干扰、抗衰落、抗多径性能而成为第三代通信的核心技术,本文阐述了扩频通信的理论基础和实现方法,利用MATLAB,详细讲述了各模块的设计,并给出了仿真建模中需注意的问题。在给定仿真条件下,运行了仿真系统,验证了所建仿真模型的正确性。通过仿真研究了扩频增益和输出端信噪比的关系,结果表明,在相同误码率下,增大扩频增益,可以提高系统输出端的信噪比,从而提高系统的抗干扰能力。参考文献[1]邵保华.软件无线电在扩频通信发射中的应用研究[D].哈尔滨工程大学,2004年.[2]张蕾,郑实勤.基于MATLAB的直接序列扩频通信系统性能仿真分析研究[J].电气传动自动化,2007年第3期.[3]查光明,熊贤祚.扩频通信[M].西安电子科技大学出版社,1990年.
本文标题:基于matlab的直接序列扩频通信系统仿真
链接地址:https://www.777doc.com/doc-4145604 .html