直接序列扩频通信系统仿真设计(共26页).doc
精选优质文档-倾情为你奉上 南华大学 通信原理课程设计设计题目: 直接序列扩频通信系统仿真设计 专 业: 通信工程 学生姓名: 谭雪棋 学 号: 起迄日期: 2015年6月15日2015年6月30日指导教师: 王明华 系主任: 邓贤君 专心-专注-专业 通信原理课程设计任务书1课程设计的内容和要求(包括原始数据、技术要求、工作要求等):(1)技术要求1)该系统包括:数字信源、PN码发生器、扩频调制、BPSK调制、AWGN信道、扩频解调、信息解调;2)用matlab编程实现各功能模块;3)分析BER性能。(2)工作要求:查阅参考文献,利用通信原理基本理论,分析系统工作原理,设计系统方框图;掌握计算机辅助设计方法,利用Matlab/Simulink、Systemview、Multisim、MaxPlusIII、QuartusII等软件进行仿真设计,具备独立设计能力;熟悉通信系统的调试和测量方法;掌握电子电路安装调试技术,选择合适的元器件搭接实际电路,掌握电路的测试和故障排除方法,提高分析问题和解决问题的能力。不能直接从网上或其他资料下载拷贝,一旦发现雷同35%以上,则相关雷同设计的成绩都为不及格。按时完成设计报告;提交的电子稿必须在附录中含有全套仿真源文件、或设计原图(电子稿是以“学生学号姓名”为命名的压缩文件);并提交纸质设计报告书。随机抽查,并进行最后答辩。2对课程设计成果的要求包括图表(或实物)等硬件要求:写出设计说明书,语言流畅简洁,文字35005000字。用软件编程语言实现时,写出详细的注释,并画出各种信号的时域频域波形,分析实验结果;硬件设计电路,需要详细分析安装调试过程,分析实验结果。仿真设计类要求有仿真流程图、调试时的电脑屏幕截图;实物设计类要求图纸布局合理,符合工程要求,使用Protel软件绘出原理图(SCH)和印制电路板(PCB),器件的选择要有计算依据。3主要参考文献:1樊昌信.通信原理(第6版)M.北京:电子工业出版社,2012,12.2樊昌信,曹丽娜 .通信原理教程(第3版)M.北京:国防工业出版社,2006,9.3刘学勇 .详解MATLAB/Simulink通信系统建模与仿真M.北京:电子工业出版社,2011,11.4张水英 ,.通信原理及MATLAB/Simulink仿真M.北京:人民邮电出版社,2012,9.5.通信原理MATLAB仿真教程M.北京:人民邮电出版社,2010,11.6赵静 ,.基于MATLAB的通信系统仿真M.北京:北京航空航天大学出版社,2010,1.7.基于NI Multisim的电子电路计算机仿真设计与分析(修订版)M.北京:电子工业出版社,2011, 6.4课程设计工作进度计划:序号起 迄 日 期工 作 内 容2015.6.152015.6.20查阅资料,系统方案设计2015.6.212015.6.24用编程语言或者仿真软件进行设计2015.6.252015.6.28程序、软件、实物的调试,排除故障,分析实验结果2015.6.292015.6.30分析总结,整理设计报告主指导教师王明华日期: 2015 年 6 月 13 日摘 要随着微处理器技术和大规模集成电路技术的快速发展,以及一些新的元器件的应用,扩频通信技术已经迈上了一个新的台阶,不仅在军事中占有重要的地位,在个人通信和计算机通信中也得到了广泛的应用,成为当今最具潜力的通信技术之一。因此,研究扩频通信具有很深远的意义。而直接序列扩频通信系统也因其抗干扰能力强、隐蔽性好、抗多径干扰、直扩通信速率高以及已用于实现码分多址等优点而被广泛应用。直接序列扩频主要是将要发送的信息用PN码(伪随机码)扩展到一个较宽的频带上去,在接收端用与发送端扩展用的相同的PN码对接收到的扩频信号进行处理,恢复发送的信息。本次实验将深入的研究和学习直接序列扩频通信系统并对其进行仿真,将所学到的知识进行归纳和总结,以此巩固通信专业基础知识,也可以复习MATLAB等学习工具的使用方法,为今后的个人学习和工作打下基础。关键词:直接序列;扩频通信;仿真设计AbstractWith the rapid development of the microprocessor technology and large scale integrated circuit technology, and the application of some new components, spread spectrum communication technology has stepped on a a new level, not only plays an important role in the military, in personal communication and computer communication has also been widely used, become one of the most potential communication technology today. Therefore, it is very important to study the spread spectrum communication. The direct sequence spread spectrum communication system has been widely used in the system because of its strong anti-interference ability, good concealment, anti multipath interference, high direct spread communication rate and has been used to realize code division multiple access.Direct sequence spread spectrum is mainly to send information by PN (pseudo random code is extended to a wide band at the receiver and transmitter is extended with the same PN code of received spread spectrum signals are processed to recover the transmitted information. This experiment will be in-depth study and learn direct sequence spread spectrum communication system and the simulation analysis was carried out, to learn the knowledge of the induction and the summary, in order to strengthen the communication on the basis of professional knowledge, can also review of the MATLAB tools for learning to use, to lay the foundation for future learning and work.Keywords: direct sequence;spread spectrum communication;simulation design目 录1、直接扩频通信简介11.1 直接扩频通信的理论基础11.2 直接序列扩频的基本原理12、直接序列扩频系统matlab 仿真32.1 MATLAB的介绍32.2 直接序列扩频通信系统MATLAB仿真过程32.3 直接序列扩频通信系统MATLAB仿真波形43、 直接序列扩频通信系统的抗干扰性93.1 直扩系统抗干扰性的原理93.2 调试分析94、心得和体会11参考文献12附 录131、直接扩频通信简介1.1 直接扩频通信的理论基础 扩频通信是将等待传送的信息被伪随机编码调制,实现频谱扩展后再传输,接收端采用相同的编码进行解调,恢复原始信息数据。扩频通信的可行性是从香农公式引申而来,其内容如下公式所示。 (1-1)其中,C为系统信道容量(bit/s);W为系统信道带宽;N为噪声功率S为信号功率。由上式可得,加大带宽W或提高信噪比S/N可以提高信道容量C。也就是说当信道容量C一定时,信道带宽W和信噪比S/N是可互换的,增加带宽可以降低对信噪比的要求,使有用信号的功率接近甚至消失在噪声功率之下。 扩频通信就是通过增加带宽来换取较低的信噪比,这就是扩频通信的基本思想和理论依据。当信噪比不能提高时,可以通过增大带宽,提高信道容量。扩频通信的方式有很多种,例如直接序列扩频、跳频扩频、跳时扩频等。这次实验将对直接序列扩频进行分析和仿真。1.2 直接序列扩频的基本原理直接序列扩频的原理是,直接用具有高速率的扩频码序列在发送端去扩展信号的频谱。而接收端,用相同的扩频码序列进行解扩,把展宽的扩频信号还原成原始信息。如图1-1。图1-1 直扩通信系统的组成框图信息信码m(t)BPSK调制载波PN 码扩频解调本地PN码BPSK解调本地载波(3)(4)载波0 1 11 1 1 10101(1)信码m(t)(2)伪码p(t)(5)PSK已调波(7)相位(6)相位(9)解调输出(8)中频调相图1-2 直扩通信系统的主要相位或波形在发送端输入信息m(t)(二进制数据),图中为0、1两个码元,其码元宽度为。加入扩频解调器(模2加法器),扩频码是一个PN码(伪随机码),记作p(t)。伪码的波形如图 1-2 中的第(2)个波形,其码元宽度为,且取=16。模2加法器的运算规则可用下式表示 (12) 当m(t)与p(t)符号相同时,c(t)为0;而当m(t)与p(t)不同时,则为1。c(t)的波形如图1-2所示中的第(3)个波形。由图可见,当信码m(t)为0时,c(t)与p(t)相同;而当信码m(t)为1时,则c(t)为p(t)取反既是。显然,包含信码的c(t)其码元宽度已变成了,即已进行了频谱扩展。经过分析可知,通过扩频调制信号c(t)可看作只取1的二进制波形,然后对载频进行调制。通过发射机中推动级、功放和输出电路加至天线发射出去。图1-2中的第(5)个图为已调波 的波形。这里,当c(t)为一码时,已调波与载波取反相;而当c(t)为0码时,取同相。已调波与载波的相位关系如图1-2中的第(6)个图所示。发射信号经过信道传输,经过接收机的输入电路、高频放大器等,输出信号仍为。相关器完成相干解调和解扩。接收端的PN码与发端的PN码相同。接收端本地调相情况与发端相似,这里的调制信号是p(t),即调相器输出信号的相位仅取决于p(t),当p(t)=1时,的相位为;当p(t)=0时,的相位为0。信号的相位如图1-2中(7)所示。相关器在这里可等效为对输入相关器的、进行模2相加。同号模2相加为0,异号模2相加为。因此相关器的输出的中频相位如图1-2中的(8)所示。经检波后输出原始信息。2、直接序列扩频系统matlab 仿真2.1 MATLAB的介绍MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵运算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB通信工具箱中的系统仿真,分为用SIMULINK模块框图进行仿真和用MATLAB函数进行的仿真两种。本次实验我们将采用MATLAB函数进行仿真,在用MATLAB函数的仿真中,函数根据数据流的次序依次执行,意味着所处理的数据,首先要经过一个阶段运算,然后再激活下一个阶段,这种仿真被称为数据流的仿真。2.2 直接序列扩频通信系统MATLAB仿真过程直接序列扩频通信系统主要组成分为七个部分,分别为信源部分、扩频部分、调制部分、信道传输部分、解调部分、解扩部分和信宿部分。在两个用户的信息中我们给定的是0和1的信息,在本次是严重,我们为了在调制和扩频中更加容易计算,我们将数据中的0用1来代替。图2-1 直扩通信系统的组成框图信息信码m(t)BPSK调制载波PN 码扩频解调本地PN码BPSK解调本地载波直接序列扩频的matlab仿真组成框图如图2-1所示。2.3 直接序列扩频通信系统MATLAB仿真波形编写直接序列扩频通信系统MATLAB仿真程序,检查错误后输出相应波形。本次仿真实验将输出七个波形,从这七个波形可以较直观的看到直接序列扩频通信系统的每一个调制过程。 在本次仿真中,我们用户给定所要传输的信息为。输出波形如图2-2。图2-2 用户输入的信息 输入用户信息后进行扩频,既将输入的信息与PN码进行模2运算,输出波形如图2-3所示。图2-3 用PN码扩频后的波形 其中,PN码的产生是由一个PN码发生器来完成的。PN码发生器如图2-4所示其中PN码的波形如图2-5所示。初始值 1 0 1 0D1D2D3D4图2-4 PN码发生器图2-5 PN码波形图扩频之后进行调制,在本次试验中,我们采用BPSK调制。数据调制后输送出其调制之后的波形。调制后的传输信道选用的高斯白噪声信道,在本次仿真中信噪比设定为20。调制之后送入信道等待传输至接收端。经过BPSK调制后的波形如图2-6所示。图2-6 用户经BPSK调制后的波形在信道的接收端进行的过程和输入端是相反的。首先解调,这里选用的也是BPSK的解调。其解调输出波形如图2-7所示。图2-7 经BPSK解调后的波形解调之后进行解扩,解扩时使用的PN码和扩频时使用PN码需保持一致,以此保证解扩出的信息的正确性。经过BPSK解扩输出的波形如图2-8所示。图2-8 用户经BPSK解扩后的波形将经过BPSK解扩后的信息送入低通滤波器中进行检波,检波之后将输出相应的信息。经过检波后的波形如图2-9所示。图2-9 用户经检波后的波形3、 直接序列扩频通信系统的抗干扰性3.1 直扩系统抗干扰性的原理直接序列扩频通信系统采用高码率的扩频码序列PN码,在发送端与要发送的信号进行模2加,产生扩频序列,由于序列码元很窄,占用很宽的频带,达到扩频的目的,然后用扩频序列去调制载波并予以传输。在接收端接收到的扩频信号经放大混频后,用与发端相同且同步的PN码对扩频信号进行解扩。由于收发端PN码的相关系数为1,可以完全恢复所传的信息,而干扰和噪声由于与接收机PN码不相关,在相关解调时降低了进入信号通频带内的干扰。扩频的运算是信息流与PN码模二加的过程。解扩的过程与扩频过程完全相同,即将接收的信号用PN码进行第二次扩频处理。要求使用的PN码与发送端扩频用PN码不仅码字相同,而且相位相同,否则会使有用信号自身相互抵消。解扩处理将信号压缩到信号频带内,由宽带信号恢复为窄带信号。同时将干扰信号扩展,降低干扰信号的谱密度,使之进入到信息频带内的功率下降,从而使系统获得处理增益,提高系统的抗干扰能力。为了方便分析,对系统作如下假设: 系统各用户同步;系统各用户功率相同;仅考虑白噪声干扰引起的误码, 忽略信号传输、调制解调过程中的误码。3.2 调试分析使用MATLAB编写程序研究正弦干扰信号振幅与误码率的关系。加入噪声和干扰后,取LC=20,用3个不同的正弦信号干扰,其振幅分别为0,3,7。假定在误码率运算中的加性噪声是固定的,进行多次运算,而且在每次运算中,信号能量取值都满足所需的信噪比要求,输出波形如图3-1所示。图3-1 不同振幅和信噪比对误码率的影响总结仿真实验归纳如下:1. 系统误码率与信道里的信噪比大小有关。2. 正弦干扰信号的振幅越大,误码率越大。从系统仿真的结果看来,直序扩频技术拥有良好的抗干扰能力。4、心得和体会这次实验做的确实不易,通过总结以前学习的知识和查阅相关资料艰难的完成了本次实验,这其中请教了不少同学。因为格式和内容的问题重做了好几次,在这其中也学会了论文的基本格式。交给老师检查之后,发现最开始做的内容只是验证了直接序列扩频通信系统的公式,导致需要修改大部分的内容。在做抗干扰性分析的时候,本想在本身仿真的程序中加入噪声,因为自身掌握的知识有限,或者说“学艺不精”,在尝试多次加噪声失败后重新编写了程序进行分析。通过这次实验,我深刻体会到自己对通信原理课程的掌握度以及对MATLAB软件的熟练度不够,很多问题都是临时发现并解决的。还有就是做实验之前,对实验的大致流程在脑内一定要清晰,否则做起实验来乱七八糟,完全没有思路。编程的时候也要一个模块一个模块来,写好一个模块就要调试一个模块,切记不可全部写完了再调试。参考文献1 张蕾,郑实勤.基于MATLAB的直接序列扩频通信系统性能仿真分析研究J.电气传 动自动化,2007年.2 樊昌信,曹丽娜.通信原理(第7版).国防工业出版社.123 曹志刚, 钱亚生.现代通信原理北京:清华大学出版社,1992.4 刘 敏, 魏 玲.MATLAB 通信仿真与应用.北京:国防工业出版社,2001.5 王立宁, 等. MATLAB与通信仿真.北京:人民邮电出版社.2000.附 录源程序:直扩系统MATLAB仿真:function dscdmamodem(user,snr_in_dbs)%建立模型:用户信息,snr_in_dbs为信噪比 %设置初始参数user=0 1 0 1 1 0 1 ;close all %定义步长变量%length_user=length(user); %改变用户数据中的0为-1for i=1:length_user if user(i)=0 user(i)=-1; endend% 用户传输前设置 fc=3; % 载频eb=2; % 每个字符的能量tb=1; % 每个信息比特所占的时间%用户输入的数据信息t=0.01:0.01:tb*length_user; basebandsig=;for i=1:length_user for j=0.01:0.01:tb if user(i)=1 basebandsig=basebandsig 1; else basebandsig=basebandsig -1; end endendfigureplot(basebandsig)axis(0 100*length_user -1.5 1.5);title('用户输入的信息') % 用户的BPSK调制过程 bpskmod=;for i=1:length_user for j=0.01:0.01:tb bpskmod=bpskmod sqrt(2*eb)*user(i)*cos(2*pi*fc*j); endendlength(bpskmod)%用户BPSK调制后的波形图输出figure plot(bpskmod) axis(0 100*length_user -3 3); title(' 用户经BPSK调制之后的波形 ')% 扩频 %PN码发生器seed=1 -1 1 -1; % 设PN码初始值为1000spreadspectrum=;pn=;for i=1:length_user for j=1:10 %PN码和数据比特码的比率设为10:1 pn=pn seed(4); if seed (4)=seed(3) temp=-1; else temp=1; end seed(4)=seed(3); seed(3)=seed(2); seed(2)=seed(1); seed(1)=temp; endspreadspectrum=spreadspectrum user(i)*pn;end%扩频过程pnupsampled=;len_pn=length(pn);for i=1:len_pn for j=0.1:0.1:tb if pn(i)=1 pnupsampled=pnupsampled 1; else pnupsampled=pnupsampled -1; end endendlength_pnupsampled=length(pnupsampled); sigtx=bpskmod.*pnupsampled; %扩频码波形输出 figureplot(pnupsampled) axis(0 100*length_user -2 2)title(' PN码波形图 ')%扩频后的波形图输出 figureplot(sigtx)axis(0 100*length_user -3 3);title(' 用PN码扩频后的波形图 ')composite_signal=sigtx;%高斯白噪声信道传输snr_in_dbs=20 %设信噪比为20composite_signal=awgn(composite_signal,snr_in_dbs); %从信道中解扩出用户的信息rx=composite_signal.*pnupsampled;figureplot(rx)title('用户解扩后的波形')% BPSK解调过程 demodcar=;for i=1:length_user for j=0.01:0.01:tb demodcar=demodcar sqrt(2*eb)*cos(2*pi*fc*j); endendbpskdemod=rx.*demodcar;figureplot(bpskdemod)title('用户经BPSK解调之后的波形')len_dmod=length(bpskdemod);sum=zeros(1,len_dmod/100);for i=1:len_dmod/100 for j=(i-1)*100+1:i*100 sum(i)=sum(i)+bpskdemod(j); endend%检波过程 rxbits=; for i=1:length_user if sum(i)>0 rxbits=rxbits 1; else rxbits=rxbits 0; end end length_rxbits=length(rxbits); t=0.01:0.01:tb*length_rxbits; savbandsig=;for i=1:length_rxbits for j=0.01:0.01:tb if user(i)=1 savbandsig=savbandsig 1; else savbandsig=savbandsig -1; end endendfigureplot(savbandsig)axis(0 100*length_user -2 2);title('用户经检波之后的波形 )直扩系统抗干扰性gngauss:function gsrv1,gsrv2=gngauss(m,sgma)if nargin = 0, m=0; sgma=1;elseif nargin = 1, sgma=m; m=0;end;u=rand; % 一个统一的随机变量在(0,1) z=sgma*(sqrt(2*log(1/(1-u); % 瑞利分布随机变量u=rand; % 另一个统一的随机变量在(0,1)gsrv1=m+z*cos(2*pi*u);gsrv2=m+z*sin(2*pi*u);直扩系统抗干扰性ss_Pe94:functionp=ss_Pe94(snr_in_dB,lc,A,w0)snr=10(snr_in_dB/10);sgma=1;Lc=20;Eb=2*sgma2*snr;E_chip=Eb/Lc;N=10000;num_of_err=0;for i=1:N, temp=rand; if(temp<0.5), data=-1; else data=1; end; for j=1:Lc, repeated_data(j)=data; end; for j=1:Lc, temp=rand; if(temp<0.5), pn_seq(j)=-1; else pn_seq(j)=1; end; end; trans_sig=sqrt(E_chip)*repeated_data.*pn_seq; noise=sgma*randn(1,Lc); n=(i-1)*Lc+1:i*Lc; interference=A*sin(w0*n); rec_sig=trans_sig+noise+interference; temp=rec_sig.*pn_seq; decision_variable=sum(temp); if(decision_variable<0), decision=-1; else decision=1; end; if(decision=data), num_of_err=num_of_err+1; end;end;p=num_of_err/N;直扩系统抗干扰性分析:Lc=20; %每个信息比特为对应的PN码片数A1=0; A2=3; A3=7;A4=0; w0=1; SNRindB=-30:1:30;for i=1:length(SNRindB), smld_err_prb1(i)=ss_Pe94(SNRindB(i),Lc,A1,w0); smld_err_prb2(i)=ss_Pe94(SNRindB(i),Lc,A2,w0); smld_err_prb3(i)=ss_Pe94(SNRindB(i),Lc,A3,w0); end; SNRindB4=0:1:8;for i=1:length(SNRindB4), smld_err_prb4(i)=ss_Pe94(SNRindB4(i),Lc,A4,w0); end; x=SNRindB;y1=smld_err_prb1;y2=smld_err_prb2;y3=smld_err_prb3;semilogy(x,y1,x,y2,x,y3);