Xx大学信息科学与工程学院
综合性设计性实验报告
专 业:
学 号:
姓 名:
实验所属课程:移动通信原理与应用
实验室(中心):软件与通信实验中心
指 导 教 师 :
20##年3月
一、题目
扩频通信系统仿真实验
二、仿真要求
扩频通信系统的多用户数据传输
①传输的数据随机产生,要求采用频带传输(BPSK调制);
②扩频码要求采用周期为31的m序列;
③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;
④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);
⑤三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。
三、仿真方案详细设计
仿真方案详细设计
扩频技术:
扩频技术实质是在发送端将欲发送的数据信息的频带展宽到一个比原信号带宽宽的多的频带上去,接收端通过相关接收方法,再将其恢复到原来信息带宽的一种技术。扩频通信的信号带宽与信息带宽之比则高达100~1000,属于宽带通信。
扩展频谱技术的理论基础是Shannon公式
式中,C为信道容量,意指单位时间内信道中无差错传输的最大信息量,其单位为b/s;B为信号频带宽度,单位为Hz;S为信号功率,单位为W;N为噪声功率,单位为W;S/N为输入功率与噪声功率之比,称为信噪功率比。
扩频系统组成:
扩频系统主要由3部分组成,即发射机,信道,接收机
发射机:
信源→将随机产生的0,1数据比特流对应变成-1,1,提供要传输的信息,即原始数据a(t)。
扩频→发射机的核心部分,利用扩频码M序列(c(t))将a(t)信号带宽拓的非常宽,得到扩频信号d(t)=a(t)*c(t)。
调制→为了使信号在信道中进行传输,将信号进行调制处理,s(t)=a(t)*c(t)*cos(2πf0t )。
对扩频码的要求:
自相关特性(良好的自相关特性,便于扩频码的同步)
互相关特性(良好的互相关特性,便于区分不同的用户)
扩频码包括m序列Walsh码,Gold码,M序列,Hadama矩阵,本实验采用M序列。M序列是最长线性移位寄存器序列的简称。顾名思义,M序列是由多级移位寄存器或其延迟元件通过线性反馈产生的最长的码序列。在二进制移位寄存器中,若n为移位寄存器的级数,n级移位寄存器共有2n个状态,除去全零状态外,还剩下2n-1种状态,因此它能产生的最大长度的码序列为2n-1位。故产生m序列的线性反馈移位寄存器称做最长线性移位寄存器。
产生M序列的移位寄存器的电路结构,即反馈线连接不是随意的,M序列的周期T也不能取任意值,而是必须满足:T=2n-1 (n是移位寄存器的级数)。
上图中B0B1B2B3...Bn是反馈系数
在本仿真中,人为自定义反馈系数为8进制45(1 0 0 1 0 1),67(1 1 0 1 1 1),75(1 1 1 1 0 1),有上述理论可得出级数为5(寄存器个数为5),M序列周期T=31.
信道:在扩频系统中,信号传输过程,有自身信号的衰落,有外界高斯白噪声的干扰,还有多径的影响。本仿真系统主要考虑多径对扩频系统的影响。本仿真中,多径通过信号延时的叠加得出。
接收机:
混频→接收端天线上感应的信号经高放的选择放大和混频后,得到包括以下几部分的信号:有用信号sI (t)、信道噪声nI (t)、干扰信号JI (t)和其它网的扩频信号sJ (t)等,即收到的信号(经混频后)为 rI(t)=sI(t)+nI(t)+JI(t)+sI(t)
解扩→是接收机的核心部分,解扩要求接收端提供和发送端相同结构且完全同步的伪随机(PN)码序列c(t),如果接收机中的c’(t)与发端c(t)相同且同步,得到解扩信号rI’(t)=a(t)*c(t)*cos(2πf0t )*c(t),利用了伪随机序列的强的自相关特性和弱的互相关特性,接收机中利用相同且同步的伪随机(PN)码序列进行解扩的接收方法,常称为相关接收方法。
解调→对解扩后的信号进行解调,然后进行抽样判决,对信号进行恢复。a(t)=r’(t)*cos(2πf0t )
上图为各种信号的图示
四、仿真结果及结论
为了观察到较好的图示效果,仿真时只产生了7个数据
第一行分别是3个用户信号的信源波形
第一行分别是3个用户信号的扩频波形
第一行分别是3个用户信号的调制波形
第一行为3个用户信号分别调制后的叠加信号
第二行为经过多径后的信号(延时效果)
第一行为分别对调制信号进行解扩
第一行为分别对调制信号进行解调
第一行分别为解调信号经过滤波器后的波形
第二行分别为抽样判决恢复原始输入信号
五、总结与体会
各种数据的含义、大小:
n:为输入的初始信息个数,这里n=7
signal1,signal2,signal3:用户1,2,3各产生7个长度的随机1/-1数据
S1,S2,S3:抽样画图时用到的数据
b1,b1,b3:人为初始定义的反馈系数(长度为6)
c1,c2,c3:由b1,b2,b3得到的M序列(长度为31)
ssignal1,ssignal2,ssignal3:分别为由c1,c2,c3对signal1,signal2,signal3进行扩频得到的扩频信号。(长度7*31=217)
B1,B2,B3:抽样画图时用到的数据
datarate=1:定义的信源码元的速率(datarate=1)
chiprate=datarate*31:定义码片速率(chiprate=31)
fc=chiprate*1:一个码片用一个载波表示(fc=31)
fs=fc*16:一个载波内抽样16个点(fs=496)
carrier:载波(长度16)
modusignal1:由ssignal1,fc,fs等参数进行调制得到,modusignal2、3同理
(长度为7*31*16=3472)
djmodusignal:为3路用户调制信息的叠加,其中延时为100个单位(长度为3472+100=3572),后面为了去除多径的100的数据,把长度减去了100,所以为3472。
jkdjmodusignal1: 对经过多径后的信号分别进行解扩(长度为3472),jkdjmodusignal2,jkdjmodusignal3同理。
jmodusignal1:对信号进行解调(长度为3472),jmodusignal2,jmodusignal3同理
y1:经过滤波器的解调信号(长度3521,其中包含了滤波器的延时)
Y1:对滤波后的信号进行抽样判决(长度为7)
Yy:抽样画图时用到的数据(长度为3472)
以上对仿真过程中用到的参数进行了解释,并详细计算了参数的长度,
验证了程序的准确性。
通过本次试验,了解了扩频通信系统的组成部分,各部分的功能,系统的工作原理,然后利用Matlab软件,然后将这些理论变成仿真系统
六、主要仿真代码
主函数
clear;
clc;
%----------产生信源数据-----------
n=input('input:\n');
[signal1,S1]=generate(n);
[signal2,S2]=generate(n);
[signal3,S3]=generate(n);
%----------产生伪随机序列---------
b1=[1 0 0 1 0 1];c1=genemseq(b1);
b2=[1 1 1 1 0 1];c2=genemseq(b2);
b3=[1 1 0 1 1 1];c3=genemseq(b3);
%-------对信源数据进行扩频--------
[ssignal1,B1]=DSSS(signal1,c1);
[ssignal2,B2]=DSSS(signal2,c2);
[ssignal3,B3]=DSSS(signal3,c3);
%----------初始化datarate/chiprate/fc/fs/carrier------------
datarate=1;
chiprate=datarate*31;
fc=chiprate*1;
fs=16*fc;
%---------------对扩频信号进行调制-------------------
[modusignal1,carrier]=modu(ssignal1,chiprate,fc,fs);
[modusignal2,carrier]=modu(ssignal2,chiprate,fc,fs);
[modusignal3,carrier]=modu(ssignal3,chiprate,fc,fs);
modusignal=modusignal1+modusignal2+modusignal3;
%---------画出信源波形---------
figure(1);
subplot(331),plot(S1);
axis([0 length(S1) -1.5 1.5]);
title('信源1波形');
subplot(332),plot(S2);
axis([0 length(S2) -1.5 1.5]);
title('信源2波形');
subplot(333),plot(S3);
axis([0 length(S3) -1.5 1.5]);
title('信源3波形');
%--------画出扩频波形----------
subplot(334),plot(B1);
axis([0 length(B1) -1.5 1.5]);
title('扩频1波形');
subplot(335),plot(B2);
axis([0 length(B2) -1.5 1.5]);
title('扩频2波形');
subplot(336),plot(B3);
axis([0 length(B3) -1.5 1.5]);
title('扩频3波形');
%------------画出调制波形---------------
subplot(337),plot(modusignal1);
axis([0 length(modusignal1) -1.5 1.5]);
title('调制1波形');
subplot(338),plot(modusignal2);
axis([0 length(modusignal2) -1.5 1.5]);
title('调制2波形');
subplot(339),plot(modusignal3);
axis([0 length(modusignal3) -1.5 1.5]);
title('调制3波形');
%------------信号经过多径----------------
djmodusignal=mulpath(modusignal);
djmodusignal=djmodusignal(1:end-100);
%----画出调制波形和经过多径后的调制波形----
figure(2);
subplot(211),plot(modusignal);
axis([0 length(modusignal) -3.5 3.5]);
title('调制波形');
subplot(212),plot(djmodusignal);
axis([0 length(djmodusignal) -3.5 3.5]);
title('多径波形');
%---------------分别对信号进行解扩--------------------
jkdjmodusignal1=jDSSS(djmodusignal,c1,chiprate,fs);
jkdjmodusignal2=jDSSS(djmodusignal,c2,chiprate,fs);
jkdjmodusignal3=jDSSS(djmodusignal,c3,chiprate,fs);
%---------------分别对信号进行解调--------------------
jmodusignal1=jmodu(jkdjmodusignal1,carrier);
jmodusignal2=jmodu(jkdjmodusignal2,carrier);
jmodusignal3=jmodu(jkdjmodusignal3,carrier);
%---------------画出解扩波形----------------
figure(3)
subplot(231),plot(jkdjmodusignal1);
axis([0 length(jkdjmodusignal1) -3.5 3.5]);
title('解扩1波形');
subplot(232),plot(jkdjmodusignal2);
axis([0 length(jkdjmodusignal2) -3.5 3.5]);
title('解扩2波形');
subplot(233),plot(jkdjmodusignal3);
axis([0 length(jkdjmodusignal3) -3.5 3.5]);
title('解扩3波形');
%---------------画出解调波形--------------
subplot(234),plot(jmodusignal1);
axis([0 length(jmodusignal1) -3.5 3.5]);
title('解调1波形');
subplot(235),plot(jmodusignal2);
axis([0 length(jmodusignal2) -3.5 3.5]);
title('解调2波形');
subplot(236),plot(jmodusignal3);
axis([0 length(jmodusignal3) -3.5 3.5]);
title('解调3波形');
%-----分别对解调信号进行滤波-----
load lowNum;
IN=(length(lowNum)-1)/2;
R=ones(1,ceil(IN));
V1=jmodusignal1;V1=[V1,R];
y1=filter(lowNum,1,V1);
V2=jmodusignal2;V2=[V2,R];
y2=filter(lowNum,1,V2);
V3=jmodusignal3;V3=[V3,R];
y3=filter(lowNum,1,V3);
%-----分别对滤波信号进行抽样判决---------
[Y1,Yy1]=cypj(y1,IN);
[Y2,Yy2]=cypj(y2,IN);
[Y3,Yy3]=cypj(y3,IN);
%--------画出滤波后的信号--------
figure(4);
subplot(231),plot(y1);
axis([IN length(y1)+IN -3 3]);
title('滤波1波形');
subplot(232),plot(y2);
axis([IN length(y2)+IN -3 3]);
title('滤波2波形');
subplot(233),plot(y3);
axis([IN length(y3)+IN -3 3]);
title('滤波3波形');
%--------画出抽样判决后的波形--------
subplot(234),plot(Yy1);
axis([IN length(Yy1)+IN -1.5 1.5]);
title('抽样判决1波形');
subplot(235),plot(Yy2);
axis([IN length(Yy2)+IN -1.5 1.5]);
title('抽样判决2波形');
subplot(236),plot(Yy3);
axis([IN length(Yy3)+IN -1.5 1.5]);
title('抽样判决3波形');
生成信源数据函数
function [signal,S]=generate(n)
signal=(rand(1,n)>=0.5)*2-1;
S=[];
for i=1:length(signal)
if signal(i)==1
S=[S,ones(1,20)];
else
S=[S,-ones(1,20)];
end
end
生成伪随机序列(M序列)函数
function c=genemseq(b)
L=length(b)-1;
c=[];
D=ones(1,L);
for i=1:2^L-1
cnew=rem(sum(b(2:end).*D),2);
c=[c,D(L)];
D=[cnew,D(1:L-1)];
end
c=2*c-1;
扩频函数
function [ssignal,B]=DSSS(signal,c)
ssignal=[];
for i=1:length(signal)
ssignal=[ssignal,signal(i)*c];
end
B=[];
for i=1:length(ssignal)
if ssignal(i)==1
B=[B,ones(1,20)];
else
B=[B,-ones(1,20)];
end
end
调制函数
function [modusignal,carrier]=modu(ssignal,chiprate,fc,fs)
t=linspace(0,1/chiprate,fs/chiprate);
carrier=sin(2*pi*fc*t);
modusignal=[];
for i=1:length(ssignal)
modusignal=[modusignal,carrier*ssignal(i)];
end
多径函数
function djmodusignal=mulpath(modusignal)
delay0=[modusignal,zeros(1,100)];
delay1=[zeros(1,100),modusignal];
delay2=[zeros(1,50),modusignal,zeros(1,50)];
djmodusignal=delay0+delay1+delay2;
解扩函数
function jkdjmodusignal=jDSSS(djmodusignal,c,chiprate,fs)
L=fs/chiprate;
c1=[];
for i=1:length(c)
c1=[c1,c(i)*ones(1,L)];
end
c2=[];
for j=1:(length(djmodusignal)/length(c1))
c2=[c2,c1];
end
jkdjmodusignal=[];
jkdjmodusignal=[jkdjmodusignal,djmodusignal.*c2];
解调函数
function jmodusignal=jmodu(jkdjmodusignal,carrier)
len=length(jkdjmodusignal)/16;
jmodusignal=[];
for i=0:len-1
jmodusignal=[jmodusignal,jkdjmodusignal(i*16+1:i*16+16).*carrier];
end
抽样判决函数
function [Y,Yy]=cypj(y,IN)
Y=[];
for i=1:length(y)/496
Y(i)=sum(y((ceil(IN)+496*(i-1)):(ceil(IN)+496*i)));
end
for j=1:length(Y)
if Y(j)>0
Y(j)=1;
else
Y(j)=-1;
end
end
Yy=[];
for k=1:length(Y)
if Y(k)==1
Yy=[Yy,ones(1,496)];
else
Yy=[Yy,-ones(1,496)];
end
end
综合实验报告20xx20xx年度第一学期名称通信系统仿真题目院系电子与通信工程系班级学号学生姓名指导教师设计周数1成绩日期20xx…
综合实验报告20xx20xx年度第一学期名称通信系统仿真题目院系电子与通信工程系班级通信0901学号学生姓名指导教师孙景芳设计周数…
科技学院综合实验报告(20XX--20XX年度第一学期)名称:通信系统仿真题目:2-3增量调制系统院系:信息工程系班级:通信12K…
重庆交通大学信息科学与工程学院综合性设计性实验报告专业学号姓名实验所属课程移动通信原理与应用实验室中心软件与通信实验中心指导教师2…
科技学院综合实验报告20xx20xx年度第一学期名称通信系统仿真题目院系班级学号学生姓名指导教师李保罡孙景芳王雅宁设计周数成绩日期…
综合实验报告20xx20xx年度第一学期名称通信系统仿真题目院系信息工程系班级学号学生姓名指导教师孙景芳王雅宁设计周数1成绩日期2…
目录仿真一LMS算法和RLS算法11自适应滤波的基本原理111自适应最小均方LMS算法112递归最小二乘方RLS算法22仿真实验4…
实验报告书课程实验报告课程名称学生姓名学生学号系统仿真综合实验1实验报告书一实验题目在一个驾驶执照分理处司机的到达速率为每小时50…
系统仿真实验报告班级电气工程及其自动化1301班学号姓名指导老师完成时间20xx年4月19日目录实验一MATLAB中矩阵与多项式的…
实验一工艺原则布置实验项目名称工艺原则布置ProcessLayout实验项目性质综合性实验所属课程名称设施规划与物流分析实验计划学…