- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《扩频通信系统仿真
重庆交通大学信息科学与工程学院
综合性设计性实验报告
业:
学 号:
姓 名:
实验所属课程: 移动通信原理与应用
实验室(中心):
指 导 教 师 :
2013年月
教师评阅意见:
签名: 年 月 日 实验成绩:
一、题目
扩频通信系统仿真实验
二、仿真要求扩频通信系统的多用户数据传输
①传输的数据随机产生,要求采用频带传输(BPSK调制);
②扩频码要求采用周期为63(或127)的m序列;
③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;
④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);
⑤三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。
三、仿真方案详细设计
发射机原理图
接收机原理
由上图可知,整个设计由发送端、信道和接收机组成。
其中发射端主要完成m序列的产生,随机0,1序列的产生。然后利用m序列对产生的随机序列进行扩频,然后再用cos(wt)对其进行调制。
信道主要模拟信号的多径传输,在这个信道中一共有三个用户的数据进行传输,用户一经过了2径衰落,用户二经过了3径衰落,用户三经过了4径衰落。
接收端接收到的信号是几路多径信号的加噪后的叠加,首先要完成信号的解扩,然后再解调,滤波,抽样判决最后分别与原始信号比较并统计误码率
现对主要功能部分进行详细描述
1.扩频码(m序列)的产生
扩频码为伪随机序列,本实验采用自相关特性好,互相关特性较差的M序列,因为有三路用户,故选取带有6位移位寄存器,周期为63的m序列。其对应的二进制序列分别为:1000011,1100111,1101101.以1000011为例,其具体的寄存器结构图如下所示:初始化各寄存器单元内容为1
1 1 1 1 1 1 1
产生m序列的matlab程序如下
function c=genMseq(b)
N=length(b)-1;
D=ones(1,N);
A=b(N:-1:1);
c=[];
for i=1:2^N-1
c1=rem(sum(D.*A),2);
c=[c,D(N)];
D=[c1,D(1:N-1)];
end
c=c*2-1; %变为1,-1的序列
End
2、扩频
扩频的主要思想是每一位数据位都扩展成长度为m序列长的信息,其具体做法是将数据信息中的‘1’用m序列代替,而对于‘-1’用-m序列代替,这样对每一个数据位都进行扩展就实现了对原始数据的扩频。其结构框图如下
Signal 扩频码
M序列
其仿真代码如下:
function ssignal=dsss(signal,c)
signal=signal*2-1;
ssignal=[];
for i=1:length(signal)
ssignal=[ssignal,signal(i)*c];
end
end
3、多径信道的仿真
function multiS=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)];
if k==2
multiS=modusignal+r1;
else if k==3
multiS=modusignal+r1+r2;
else if k==4
mu
文档评论(0)