扩频通信系统仿真实验.docx
- 文档编号:9590675
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:171.67KB
扩频通信系统仿真实验.docx
《扩频通信系统仿真实验.docx》由会员分享,可在线阅读,更多相关《扩频通信系统仿真实验.docx(21页珍藏版)》请在冰豆网上搜索。
扩频通信系统仿真实验
重庆交通大学信息科学与工程学院
综合性设计性实验报告
专业:
通信工程14级
学号:
姓名:
实验所属课程:
移动通信原理与应用
实验室(中心):
信息技术软件实验室
指导教师:
2016年11月
仿真实验评分标准:
□A实验报告各项目认真填写,仿真结果正确,具有清晰的设计思路及仿真结果分析。
90分以上
□B实验报告各项目认真填写,仿真结果基本正确,具有较为清晰的设计思路并对仿真结果进行了较为清晰的分析。
80分以上
□C实验报告各项目认真填写,设计思路正确,能得到仿真结果。
70分以上
□D实验报告进行为较为认真的填写,有设计思路。
60分以上
□E实验报告有未完成项或各项填写不属实或他人代做或抄袭。
不及格
实验成绩:
一、题目
扩频通信系统仿真实验
二、仿真要求
传输的数据随机产生,要求采用频带传输(DBPSK调制);
扩频码要求采用周期为63(或127)的m序列;
仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;
设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);
三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。
三、仿真方案详细设计
通信系统的总体框图:
发送部分接收部分
发射机原理图
接收机原理
如图,整个设计由发送端、信道和接收机组成。
其中发射端主要完成m序列的产生,随机0,1序列的产生。
然后利用m序列对产生的随机序列进行扩频,然后再用DPSK调制方式先对其进差分编码再进行调制。
信道主要模拟信号的多径传输,在这个信道中一共有三个用户的数据进行传输,用户一经过了2径衰落,用户二经过了3径衰落,用户三经过了4径衰落。
接收端接收到的信号是几路多径信号的加噪后的叠加,首先要完成信号的解扩,然后再解调,滤波,抽样判决,差分译码最后分别与原始信号比较并统计误码率。
流程图:
扩频
解扩
1.扩频码(m序列)的产生:
扩频码为伪随机序列,本实验采用自相关特性好,互相关特性较差的M序列,因为有三路用户,故选取带有6位移位寄存器,周期为63的m序列。
其对应的二进制序列分别为:
1000011,1100111,1101101.以1000011为例,其具体的寄存器结构图如下所示:
初始化各寄存器单元内容为1
1
1
1
1
1
1
2、扩频:
扩频的主要思想是每一位数据位都扩展成长度为m序列长的信息,其具体做法是将数据信息中的‘1’用m序列代替,而对于‘-1’用-m序列代替,这样对每一个数据位都进行扩展就实现了对原始数据的扩频。
其结构框图如下
Signal扩频码
M序列
3、2DPSK调制:
2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。
现假设用Φ表示本码元初相与前一码元初相之差,并规定:
Φ=0表示0码,Φ=π表示1码。
则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如下图:
2DPSK信号
在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。
如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。
所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。
定义为本码元初相与前一码元初相之差,假设:
∆Φ=0→数字信息“0”;
∆Φ=π→数字信息“1”。
则数字信息序列与2DPSK信号的码元相位关系可举例表示如下:
数字信息:
1011011101
DPSK信号相位:
π00π00π0ππ0
或:
0ππ0ππ0π00π
一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。
2DPSK信号的的模拟调制法框图如下图所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。
模拟调制法
4、多径信道:
因为信号通过各个路径的距离不同,所以各个路径电波到达接收机的时间不同,相位也就不同。
不同相位的多个信号在接收端叠加,有时是同相叠加而加强,有时是反相叠加而减弱。
这样接收信号的幅度将急剧变化,即产生了所谓的多径衰落。
5、接收端解扩:
在假定扩频码与接收信号同步的情况下, 可对接收信号进行解扩, 其解扩的过程与扩频的过程一样, 也是利用扩频码与接收信号进行相乘即可。
其原理图如下:
6、2DPSK解调:
2DPSK信号解调的差分相干解调法差分相干解调,原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。
它的原理框图如下图所示。
差分相干解调原理图
四、仿真结果及结论
原信号和扩频之后的信号
图1
原信号频谱与扩频后信号频谱
图2
扩频信号与差分编码信号
图3
差分信号和调制后的信号图如下
图4
第一个用户信号经过扩频,调制之后的信号以及三个用户信号分别经过2径,3径,4径信道后的叠加信号之和如下图所示
图5
第一个原始用户信号与其经过接收端解扩,解调,抽样判决之后的最终信号的比较如下
图6
第二个原始用户信号与其经过接收端解扩,解调,抽样判决之后的最终信号的比较如下
图7
第三个原始用户信号与其经过接收端解扩,解调,抽样判决之后的最终信号的比较如下
图8
扩频通信的理论基础为香农公式:
C=Blog(1+S/N)
由公式可知,我们可以用牺牲带宽的办法来换取较低的信噪比,增加系统的抗干扰能力。
直接序列扩频,是直接利用具有高码率的扩频码序列在发送端扩展信号的频谱,而在接收端,用相同的扩频码序列进行解扩,把展宽的扩频信号还原成原始的信息,是一种数字调制方法。
由图2可知,信号经过扩频后信号的频谱被展宽了,并且频谱功率降低了,这使得扩频通信系统具有较强的抗干扰能力,且具有很强的隐蔽性和抗侦查,抗窃听的能力。
这种能力随着扩频增益的增大而增大。
扩频增益的提高就需要提高扩频码m序列的位数了。
因为m序列具有良好的自相关特性和互相关特性,正是这两大特性使得在接收端可以很好的进行扩频码的同步,以及多路用户的区分,从而具有很好的抗多径干扰能力。
图3展现的是扩频信号与差分编码信号,从图上观察后可知信号周期明显扩大。
图4展现的是差分信号和调制后的信号,区分0,1两种二进制数所利用的是两种不同相位的正弦信号。
图5的上半部分为用户1的信号,下半部分为三个用户经过叠加的信号,由图可知,三个信号叠加过后有点儿像一个信号上面叠加了一些噪声。
A用户经过的是两径信道,B用户经过的是三径信道,C用户经过的是四径信道,所以在接收端A用户的误码率最低,其次是B用户,最后是C用户。
本实验没有进行扩频码的同步,所以效果不是那么地好。
由图6、7、8可知接收端还是能比较好的恢复出原信号的。
说明了扩频通信还是具有较好的抗干扰能力的。
五、总结与体会
做完了整个实验,整个实验可以概括为扩频码的产生,扩频与解扩,2DPSK调制与解调,多径信道的传输这四个部分,扩频码产生的部分要注意寄存器的阶数n与扩频码的长度满足特定的关系:
c=2^n-1,且对于不同阶数的寄存器其反馈系数也有严格的限制。
扩频就是在每一个码元周期内扩频码与原信号直接相乘,扩频后周期和频谱都会进行相应的扩大,抗干扰能力也有了显著的提高,解调过程采用的是相干解调就是让扩频后的信号再次与扩频码相乘达到解调的目的。
2DPSK的调制中最重要的是差分码的产生,两种二进制数对应不同相位的正弦信号,解调过程包括与本地载波相乘、低通滤波、抽样判决、差分译码四大部分,本次实验采用的是相干解调,抽样判决中所采用的判决门限为0.25。
在进行多径信道传输时,三个用户所经历的信道径数不一致,根据最后的结果可知用户所经历的衰落径数越多,解调后的误码率越高。
很明显这次实验包含了这学期所学的移动通信原理和以前所学的通信原理的相关知识。
在经过了一段时间对于相关知识的摸索和深入理解之后,才慢慢的开始尝试,同时也是在经历例如调试失败等很多问题之后,也没能得到了最终想要的结果,最终还是靠其他同学的帮助完成了实验。
所以实验过程中很多问题都是通过向同学询问或者进行网上查询之后才得以解决,这个过程中我对整个扩频通信系统的各个组成部分有了较为浅显的理解,对其正真的精髓还是有很多疑惑,不能完全理解,所以还是需要课余的用功。
总之做这个实验很辛苦,绝大部分代码需要自己去学理和理解,也是自己对于学习了matlab之后的一次比较大的应用,发现以前学的东西远远不够完成此次实验,也就是说,本次实验是我和很多同学一起完成的。
六、主要仿真代码
此为产生1,-1数据流的函数
functionsignal=information(N)
signal=rand(1,N)>=0.5;
signal=signal*2-1;%将产生的0,1比特流转化为-1,1比特流
end
一个周期的扩频码的产生
functionc=genMseq(b)%b为c的个数,比阶数多一
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)];
end
c=c*2-1;
End
扩频
functionssignal=dsss(signal,c)
ssignal=[];
fori=1:
length(signal)
ssignal=[ssignal,signal(i)*c];
end
End
采用2DPSK的调制方式
functionmodusignal=modu(signal,dataRate,fc,fs)
Num_Unit=fs/dataRate;%在一个码元周期内的采样点数
High_Level=ones(1,Num_Unit);
Low_Level=zeros(1,Num_Unit);
A=1;%载波幅度
N=length(signal);
b=zeros(1,N);
modusignal=zeros(1,Num_Unit*N);
sign_orign=zeros(1,Num_Unit*N);
t=0:
1/fs:
N/dataRate-1/fs;%产生频率为fs,长度为N的时间序列
signal=(signal+1)/2;
%---------------------------------------------------
%>>>>>>>>>>>>>>>>>差分编码部分>>>>>>>>>>>>>>
%---------------------------------------------------
forn=1:
N
b(n+1)=xor(signal(n),b(n));
end
forn=1:
N
b(n)=b(n+1);
end
forI=1:
N
ifb(I)==1
sign_orign((I-1)*Num_Unit+1:
I*Num_Unit)=High_Level;
else
sign_orign((I-1)*Num_Unit+1:
I*Num_Unit)=Low_Level;
end
end
forI=1:
N
ifb(I)==1
modusignal((I-1)*Num_Unit+1:
I*Num_Unit)=A*cos(2*pi*fc*t((I-1)*Num_Unit+1:
I*Num_Unit)+(pi/2));
else
modusignal((I-1)*Num_Unit+1:
I*Num_Unit)=A*cos(2*pi*fc*t((I-1)*Num_Unit+1:
I*Num_Unit));
end
end
figure
subplot(2,1,1)
plot(t,sign_orign);
%axis([0,(1/dataRate)*(N+1),-(A/2),A+(A/2)]);
title('差分编码后的信号');
grid
subplot(2,1,2);
plot(t,modusignal);
axis([0,(1/dataRate)*(N+1),-3*(A/2),3*(A/2)]);
title('调制后的信号');
Grid
多径信道
functionmultiS=channels(modusignal,snr,k)
%模拟多径衰落
len=length(modusignal);
x1=randn(1,len);
y1=randn(1,len);
r1=abs(x1+1i*y1).*modusignal;
r1=[zeros(1,5),r1(1:
length(modusignal)-5)];
x2=randn(1,len);
y2=randn(1,len);
r2=abs(x2+1i*y2).*modusignal;
r2=[zeros(1,8),r2(1:
length(modusignal)-8)];
x3=randn(1,len);
y3=randn(1,len);
r3=abs(x3+1i*y3).*modusignal;
r3=[zeros(1,10),r3(1:
length(modusignal)-10)];
ifk==2
multiS=modusignal+r1;
elseifk==3
multiS=modusignal+r1+r2;
elseifk==4
multiS=modusignal+r1+r2+r3;
end
end
end
multiS=awgn(multiS,snr);
解扩函数
functiondessignal=dedsss(recieveSignal,c,chipRate,fs)
%chipRate为码片速率
L=fs/chipRate;
c1=[];
fori=1;length(c)
c1=[c1,c(i)*ones(1,L)];
end
dessignal=[];
fori=1:
length(c1):
length(recieveSignal)
dessignal=[dessignal,recieveSignal(i:
(i+length(c1)-1)).*c1];
end
end
解调函数
functiondemodusignal=demodu(signal,dataRate,fc,fs)
Num_Unit=fs/dataRate;
N=length(signal);
A=1;
demodusignal=zeros(1,N*Num_Unit);
t=0:
1/fs:
N/fs-1/fs;%产生频率为fs,长度为N的时间序列
dt=signal.*cos(2*pi*fc*t);
figure
subplot(2,1,1)
plot(t,dt);
%axis([0,(1/dataRate)*(N+1),-3*(A/2),3*(A/2)]);
title('相乘后的波形');
grid
%---------------------------------------------------
%>>>>>>>>>>>>>>>>>>>低通滤波部分>>>>>>>>>>>>>>>>>>>>
%---------------------------------------------------
[n,Wn]=buttord(2*pi*fc/4,2*pi*fc/2,3,25,'s');%临界频率采用角频率表示,3为通带内衰,25阻带内衰
[b,a]=butter(n,Wn,'s');
[bz,az]=impinvar(b,a,fs);%映射为数字的
dt=filter(bz,az,dt);
subplot(2,1,2)
plot(t,dt);
axis([0,(1/dataRate)*(N+1),-3*(A/2),3*(A/2)]);
title('低通滤波后的波形');
grid
%---------------------------------------------------
%>>>>>>>>>>>>>抽样判决&逆码变换部分>>>>>>>>>>>>>>>
%--------------------------------------------------
c=zeros(1,N);
d=zeros(1,N);
forI=1:
N
ifdt((2*I-1)/2*Num_Unit)<0.25
c(I)=1;
else
c(I)=0;
end
end
d
(1)=xor(c
(1),0);
forn=2:
N
d(n)=xor(c(n),c(n-1));
end
forI=1:
N
if(d(I)==1)
demodusignal((I-1)*Num_Unit+1:
I*Num_Unit)=High_Level;
else
demodusignal((I-1)*Num_Unit+1:
I*Num_Unit)=Low_Level;
end
end
figure
plot(t,demodusignal);
axis([0,(1/dataRate)*(N+1),-3*(A/2),3*(A/2)]);
title('逆码变换后的波形');
grid
end
主函数
dataRate=1000;
chipRate=31*dataRate;
fc=chipRate*2;
fs=fc*8;
N=2;
c=31;
b1=[1,0,0,0,0,1,1];
b2=[1,1,0,0,1,1,1];
b3=[1,1,0,1,1,0,1];
snr=-20:
2:
-10;
fori=1:
length(snr)
signal1=information(N);
signal2=information(N);
signal3=information(N);
c1=genMseq(b1);
c2=genMseq(b2);
c3=genMseq(b3);
dssignal1=dsss(signal1,c1);
dssignal2=dsss(signal2,c2);
dssignal3=dsss(signal3,c3);
modusignal1=modu(dssignal1,chipRate,fc,fs);
modusignal2=modu(dssignal2,chipRate,fc,fs);
modusignal3=modu(dssignal3,chipRate,fc,fs);
receivesignal1=channels(modusignal1,snr(i),2);
receivesignal2=channels(modusignal2,snr(i),3);
receivesignal3=channels(modusignal3,snr(i),4);
dedssignal1=dedsss(receivesignal1,c1,chipRate,fs);
demoSignal1=demodu(dedssignal1,dataRate,fc,fs);
dedssignal2=dedsss(receivesignal2,c2,chipRate,fs);
demoSignal2=demodu(dedssignal2,dataRate,fc,fs);
dedssignal3=dedsss(receivesignal3,c3,chipRate,fs);
demoSignal3=demodu(dedssignal3,dataRate,fc,fs);
err_bit1(i)=sum(demoSignal1~=signal1)/N;
err_bit2(i)=sum(demoSignal2~=signal2)/N;
err_bit3(i)=sum(demoSignal3~=signal3)/N;
end
semilogy(snr,err_bit1,'-s',snr,err_bit2,'-h',snr,err_bit3,'-*');
legend('用户1','用户2','用户3');
xlabel('信噪比');
ylabel('误比特率');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 系统 仿真 实验