1 / 12
文档名称:

扩频通信系统仿真实验报告.doc

格式:doc   大小:123KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

扩频通信系统仿真实验报告.doc

上传人:小屁孩 2020/8/4 文件大小:123 KB

下载得到文件列表

扩频通信系统仿真实验报告.doc

文档介绍

文档介绍:重庆交通大学信息科学与工程学院综合性设计性实验报告专业:通信工程专业11级学号:姓名:实验所属课程:移动通信原理与应用实验室(中心):软件与通信实验中心指导教师:2013年3月教师评阅意见:签名:年月日实验成绩:一、题目扩频通信系统仿真实验二、仿真要求扩频通信系统的多用户数据传输①传输的数据随机产生,要求采用频带传输(BPSK调制);②扩频码要求采用周期为63(或127)的m序列;③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);⑤三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。三、仿真方案详细设计通信系统的总体框图如下用户1发射机用户2发射机用户3发射机多径,高斯信道用户1接收机用户2接收机用户3接收机发射机原理图扩频信号Signal扩频码调制之后的信号接收机原理接收信号扩频码解扩信号解调信号LBF由上图可知,整个设计由发送端、信道和接收机组成。其中发射端主要完成m序列的产生,随机0,1序列的产生。然后利用m序列对产生的随机序列进行扩频,然后再用cos(wt)对其进行调制。信道主要模拟信号的多径传输,在这个信道中一共有三个用户的数据进行传输,用户一经过了2径衰落,用户二经过了3径衰落,用户三经过了4径衰落。接收端接收到的信号是几路多径信号的加噪后的叠加,首先要完成信号的解扩,然后再解调,滤波,(m序列)的产生扩频码为伪随机序列,本实验采用自相关特性好,互相关特性较差的M序列,因为有三路用户,故选取带有6位移位寄存器,周期为63的m序列。其对应的二进制序列分别为:1000011,1100111,,其具体的寄存器结构图如下所示:初始化各寄存器单元内容为11111111产生m序列的matlab程序如下functionc=genMseq(b) N=length(b)-1;D=ones(1,N);A=b(N:-1:1);c=[];fori=1:2^N-1 c1=rem(sum(D.*A),2);c=[c,D(N)];D=[c1,D(1:N-1)];endc=c*2-1;%变为1,-1的序列End2、扩频扩频的主要思想是每一位数据位都扩展成长度为m序列长的信息,其具体做法是将数据信息中的‘1’用m序列代替,而对于‘-1’用-m序列代替,这样对每一个数据位都进行扩展就实现了对原始数据的扩频。其结构框图如下 Signal扩频码M序列其仿真代码如下:functionssignal=dsss(signal,c)signal=signal*2-1;ssignal=[];fori=1:length(signal)ssignal=[ssignal,signal(i)*c];endend3、多径信道的仿真functionmultiS=channels(modusignal,snr,k)%模拟多径衰落len=length(modusignal);x1=randn(1,len);y1=randn(1,len);r1=abs(x1+j*y1).*modusignal;r1=[zeros(1,5),r1(1:length(modusignal)-5)];x2=randn(1,len);y2=randn(1,len);r2=abs(x2+j*y2).*modusignal;r2=[zeros(1,8),r2(1:length(modusignal)-8)];x3=randn(1,len);y3=randn(1,len);r3=abs(x3+j*y3).*modusignal;r3=[zeros(1,10),r3(1:length(modusignal)-10)];ifk==2multiS=modusignal+r1;elseifk==3multiS=modusignal+r1+r2;elseifk==4multiS=modusignal+r1+r2+r3;endendendmultiS=awgn(multiS,snr);4、接收端解扩在假定扩频码与接收信号同步的情况下, 可对接收信号进行解扩, 其解扩的过程与扩频的过程一样, 也是利用扩频码与接收信号进行相乘即可。其原理图如下:d(t)c(t)cos(2πf0t)解扩d(t)cos(2πf0t)C(t)解扩代码如下:functiondessignal=dedsss(receiveSignal,c,chipRate,fs)L=fs/chipRate;c1=[];fori=1:length(c)c1=[c1,c(i)*ones(1,L)];enddessignal=[];for