直接序列扩频通信系统仿真设计Word下载.docx
《直接序列扩频通信系统仿真设计Word下载.docx》由会员分享,可在线阅读,更多相关《直接序列扩频通信系统仿真设计Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
硬件设计电路,需要详细分析安装调试过程,分析实验结果。
仿真设计类要求有仿真流程图、调试时的电脑屏幕截图;
实物设计类要求图纸布局合理,符合工程要求,使用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]黄智伟.基于NIMultisim的电子电路计算机仿真设计与分析(修订版)[M]。
北京:
电子工业出版社,2011,6.
4.课程设计工作进度计划:
序号
起迄日期
工作内容
2015。
6.15~2015.6。
20
查阅资料,系统方案设计
6。
21~2015。
6.24
用编程语言或者仿真软件进行设计
2015.6.25~2015。
28
程序、软件、实物的调试,排除故障,分析实验结果
2015.6。
29~2015。
30
分析总结,整理设计报告
主指导教师
王明华
日期:
2015年6月13日
摘要
随着微处理器技术和大规模集成电路技术的快速发展,以及一些新的元器件的应用,扩频通信技术已经迈上了一个新的台阶,不仅在军事中占有重要的地位,在个人通信和计算机通信中也得到了广泛的应用,成为当今最具潜力的通信技术之一。
因此,研究扩频通信具有很深远的意义。
而直接序列扩频通信系统也因其抗干扰能力强、隐蔽性好、抗多径干扰、直扩通信速率高以及已用于实现码分多址等优点而被广泛应用。
直接序列扩频主要是将要发送的信息用PN码(伪随机码)扩展到一个较宽的频带上去,在接收端用与发送端扩展用的相同的PN码对接收到的扩频信号进行处理,恢复发送的信息.本次实验将深入的研究和学习直接序列扩频通信系统并对其进行仿真,将所学到的知识进行归纳和总结,以此巩固通信专业基础知识,也可以复习MATLAB等学习工具的使用方法,为今后的个人学习和工作打下基础。
关键词:
直接序列;
扩频通信;
仿真设计
Abstract
Withtherapiddevelopmentofthemicroprocessortechnologyandlargescaleintegratedcircuittechnology,andtheapplicationofsomenewcomponents,spreadspectrumcommunicationtechnologyhassteppedonaanewlevel,notonlyplaysanimportantroleinthemilitary,inpersonalcommunicationandcomputercommunicationhasalsobeenwidelyused,becomeoneofthemostpotentialcommunicationtechnologytoday.Therefore,itisveryimportanttostudythespreadspectrumcommunication。
Thedirectsequencespreadspectrumcommunicationsystemhasbeenwidelyusedinthesystembecauseofitsstronganti-interferenceability,goodconcealment,antimultipathinterference,highdirectspreadcommunicationrateandhasbeenusedtorealizecodedivisionmultipleaccess.
DirectsequencespreadspectrumismainlytosendinformationbyPN(pseudorandomcodeisextendedtoawidebandatthereceiverandtransmitterisextendedwiththesamePNcodeofreceivedspreadspectrumsignalsareprocessedtorecoverthetransmittedinformation.Thisexperimentwillbein-depthstudyandlearndirectsequencespreadspectrumcommunicationsystemandthesimulationanalysiswascarriedout,tolearntheknowledgeoftheinductionandthesummary,inordertostrengthenthecommunicationonthebasisofprofessionalknowledge,canalsoreviewoftheMATLABtoolsforlearningtouse,tolaythefoundationforfuturelearningandwork。
Keywords:
directsequence;
spreadspectrumcommunication;
simulationdesign
1、直接扩频通信简介
1。
1直接扩频通信的理论基础
扩频通信是将等待传送的信息被伪随机编码调制,实现频谱扩展后再传输,接收端采用相同的编码进行解调,恢复原始信息数据。
扩频通信的可行性是从香农公式引申而来,其内容如下公式所示.
(1—1)
其中,C为系统信道容量(bit/s);
W为系统信道带宽;
N为噪声功率S为信号功率。
由上式可得,加大带宽W或提高信噪比S/N可以提高信道容量C.也就是说当信道容量C一定时,信道带宽W和信噪比S/N是可互换的,增加带宽可以降低对信噪比的要求,使有用信号的功率接近甚至消失在噪声功率之下。
扩频通信就是通过增加带宽来换取较低的信噪比,这就是扩频通信的基本思想和理论依据。
当信噪比不能提高时,可以通过增大带宽,提高信道容量。
扩频通信的方式有很多种,例如直接序列扩频、跳频扩频、跳时扩频等.这次实验将对直接序列扩频进行分析和仿真。
2直接序列扩频的基本原理
直接序列扩频的原理是,直接用具有高速率的扩频码序列在发送端去扩展信号的频谱。
而接收端,用相同的扩频码序列进行解扩,把展宽的扩频信号还原成原始信息。
如图1-1。
图1-1直扩通信系统的组成框图
信息
信码m(t)
BPSK调制
载波
PN码
扩频解调
本地PN码
BPSK解调
本地载波
(3)
(4)载波
011
1111
1
(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加法器的运算规则可用下式表示
(1—2)
当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.1MATLAB的介绍
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。
主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵运算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB通信工具箱中的系统仿真,分为用SIMULINK模块框图进行仿真和用MATLAB函数进行的仿真两种。
本次实验我们将采用MATLAB函数进行仿真,在用MATLAB函数的仿真中,函数根据数据流的次序依次执行,意味着所处理的数据,首先要经过一个阶段运算,然后再激活下一个阶段,这种仿真被称为数据流的仿真.
2。
2直接序列扩频通信系统MATLAB仿真过程
直接序列扩频通信系统主要组成分为七个部分,分别为信源部分、扩频部分、调制部分、信道传输部分、解调部分、解扩部分和信宿部分。
在两个用户的信息中我们给定的是0和1的信息,在本次是严重,我们为了在调制和扩频中更加容易计算,我们将数据中的0用-1来代替.
图2-1直扩通信系统的组成框图
直接序列扩频的matlab仿真组成框图如图2—1所示.
3直接序列扩频通信系统MATLAB仿真波形
编写直接序列扩频通信系统MATLAB仿真程序,检查错误后输出相应波形。
本次仿真实验将输出七个波形,从这七个波形可以较直观的看到直接序列扩频通信系统的每一个调制过程。
在本次仿真中,我们用户给定所要传输的信息为0101101。
输出波形如图2—2。
图2-2用户输入的信息
输入用户信息后进行扩频,既将输入的信息与PN码进行模2运算,输出波形如图2—3所示。
图2—3用PN码扩频后的波形
其中,PN码的产生是由一个PN码发生器来完成的。
PN码发生器如图2-4所示其中PN码的波形如图2—5所示。
初始值1010
D1
D2
D3
D4
图2-4PN码发生器
图2-5PN码波形图
扩频之后进行调制,在本次试验中,我们采用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码不仅码字相同,而且相位相同,否则会使有用信号自身相互抵消.解扩处理将信号压缩到信号频带内,由宽带信号恢复为窄带信号。
同时将干扰信号扩展,降低干扰信号的谱密度,使之进入到信息频带内的功率下降,从而使系统获得处理增益,提高系统的抗干扰能力。
为了方便分析,对系统作如下假设:
系统各用户同步;
系统各用户功率相同;
仅考虑白噪声干扰引起的误码,忽略信号传输、调制解调过程中的误码.
2调试分析
使用MATLAB编写程序研究正弦干扰信号振幅与误码率的关系。
加入噪声和干扰后,取LC=20,用3个不同的正弦信号干扰,其振幅分别为0,3,7。
假定在误码率运算中的加性噪声是固定的,进行多次运算,而且在每次运算中,信号能量取值都满足所需的信噪比要求,输出波形如图3—1所示。
图3—1不同振幅和信噪比对误码率的影响
总结仿真实验归纳如下:
1.系统误码率与信道里的信噪比大小有关.
2.正弦干扰信号的振幅越大,误码率越大.
从系统仿真的结果看来,直序扩频技术拥有良好的抗干扰能力。
4、心得和体会
这次实验做的确实不易,通过总结以前学习的知识和查阅相关资料艰难的完成了本次实验,这其中请教了不少同学。
因为格式和内容的问题重做了好几次,在这其中也学会了论文的基本格式。
交给老师检查之后,发现最开始做的内容只是验证了直接序列扩频通信系统的公式,导致需要修改大部分的内容.在做抗干扰性分析的时候,本想在本身仿真的程序中加入噪声,因为自身掌握的知识有限,或者说“学艺不精"
,在尝试多次加噪声失败后重新编写了程序进行分析。
通过这次实验,我深刻体会到自己对通信原理课程的掌握度以及对MATLAB软件的熟练度不够,很多问题都是临时发现并解决的。
还有就是做实验之前,对实验的大致流程在脑内一定要清晰,否则做起实验来乱七八糟,完全没有思路。
编程的时候也要一个模块一个模块来,写好一个模块就要调试一个模块,切记不可全部写完了再调试。
参考文献
[1]张蕾,郑实勤.基于MATLAB的直接序列扩频通信系统性能仿真分析研究[J].电气传
动自动化,2007年。
[2]樊昌信,曹丽娜.通信原理(第7版).国防工业出版社。
8
[3]曹志刚,钱亚生.现代通信原理.北京:
清华大学出版社,1992。
[4]刘敏,魏玲.MATLAB通信仿真与应用。
国防工业出版社,,2001。
[5]王立宁,等。
MATLAB与通信仿真.北京:
人民邮电出版社.2000。
附录
源程序:
直扩系统MATLAB仿真:
functiondscdmamodem(user,snr_in_dbs)
%建立模型:
用户信息,snr_in_dbs为信噪比
%设置初始参数
user=[0101101];
closeall
%定义步长变量%
length_user=length(user);
%改变用户数据中的0为—1
fori=1:
length_user
ifuser(i)==0
user(i)=—1;
end
end
%用户传输前设置
fc=3;
%载频
eb=2;
%每个字符的能量
tb=1;
%每个信息比特所占的时间
%用户输入的数据信息
t=0.01:
0.01:
tb*length_user;
basebandsig=[];
length_user
forj=0。
01:
0.01:
tb
ifuser(i)==1
basebandsig=[basebandsig1];
else
basebandsig=[basebandsig—1];
figure
plot(basebandsig)
axis([0100*length_user—1.51。
5]);
title('
用户输入的信息’)
%用户的BPSK调制过程
bpskmod=[];
forj=0.01:
bpskmod=[bpskmodsqrt(2*eb)*user(i)*cos(2*pi*fc*j)];
length(bpskmod)
%用户BPSK调制后的波形图输出
plot(bpskmod)
axis([0100*length_user-33]);
title('
用户经BPSK调制之后的波形’)
%扩频
%PN码发生器
seed=[1—11-1];
%设PN码初始值为1000
spreadspectrum=[];
pn=[];
fori=1:
forj=1:
10%PN码和数据比特码的比率设为10:
pn=[pnseed(4)];
ifseed(4)==seed(3)temp=—1;
elsetemp=1;
seed(4)=seed(3);
seed(3)=seed
(2);
seed
(2)=seed
(1);
seed
(1)=temp;
spreadspectrum=[spreadspectrumuser(i)*pn];
%扩频过程
pnupsampled=[];
len_pn=length(pn);
len_pn
forj=0.1:
0.1:
ifpn(i)==1
pnupsampled=[pnupsampled1];
pnupsampled=[pnupsampled-1];
length_pnupsampled=length(pnupsampled);
sigtx=bpskmod。
*pnupsampled;
%扩频码波形输出
figure
plot(pnupsampled)
axis([0100*length_user-22])
PN码波形图'
)
%扩频后的波形图输出
plot(sigtx)
axis([0100*length_user-33]);
title(’用PN码扩频后的波形图'
composite_signal=sigtx;
%高斯白噪声信道传输
snr_in_dbs=20%设信噪比为20
composite_signal=awgn(composite_signal,snr_in_dbs);
%从信道中解扩出用户的信息
rx=composite_signal。
*pnupsampled;
plot(rx)
title(’用户解扩后的波形’)
%BPSK解调过程
demodcar=[];
forj=0.01:
0。
demodcar=[demodcarsqrt(2*eb)*cos(2*pi*fc*j)];
bpskdemod=rx。
*demodcar;
plot(bpskdemod)
title(’用户经BPSK解调之后的波形’)
len_dmod=length(bpskdemod);
sum=zeros(1,len_dmod/100);
len_dmod/100
forj=(i-1)*100+1:
i*100
sum(i)=sum(i)+bpskdemod(j);
%检波过程
rxbits=[];
fori=1:
ifsum(i)>
rxbits=[rxbits1];
else
rxbits=[rxbits0];
length_rxbits=length(rxbits);
t=0。
tb*length_