扩频通信系统仿真实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆交通大学信息科学与工程学院综合性设计性实验报告
专业:通信工程专业10级
学号:
姓名:
实验所属课程:移动通信原理与应用
实验室(中心):软件与通信实验中心
指导教师:
2013年3月
一、题目
扩频通信系统仿真实验
二、仿真要求
扩频通信系统的多用户数据传输
①传输的数据随机产生,要求采用频带传输(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
产生m 序列的matlab 程序如下
❖ function c=genMseq(b)
t
0cos ω扩频码调制之后的信号
扩频码
t
0cos ω
❖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
multiS=modusignal+r1+r2+r3;
end
end
end
multiS=awgn(multiS,snr);
4、接收端解扩
在假定扩频码与接收信号同步的情况下, 可对接收信号进行解扩, 其解扩的过程与扩频的过程一样, 也是利用扩频码与接收信号进行相乘即可。其原理图如下:
解扩代码如下:
❖function dessignal=dedsss(receiveSignal,c,chipRate,fs)
❖L=fs/chipRate;
❖c1=[];
❖for i=1:length(c)
❖c1=[c1,c(i)*ones(1,L)];
❖end
❖dessignal=[];
❖for i=1:length(c1):length(receiveSignal)
❖dessignal=[dessignal,reciveSignal(i:i+length(c1)-1).*c1];
❖end
❖end
5、调制与解调
本文采用的是BPSK调制解调方式。发送端将扩频后的信号s乘上载波cos(2*πft)即完成了调制,接收端再乘以载波cos(2*πft)做相干解调,必须保证接收端乘以的载波与发送端的载波是相干的才能很好的解调,最后再经过一个低通滤波器滤除相乘过程中产生的高频成分即完成了解调。
四、仿真结果及结论
原信号和扩频之后的信号
图1
原信号频谱与扩频后信号频谱
图2