一、仿真要求
要求:扩频通信系统的多用户数据传输
①传输的数据随机产生,要求采用频带传输(DBPSK调制);
②扩频码要求采用周期为63(或127)的m序列; ③仿真从基站发送数据到三个不同的用户,各不同用户分别进行数据接收;
④设计三种不同的功率延迟分布,从基站到达三个不同的用户分别经过多径衰落(路径数分别为2,3,4);
⑤三个用户接收端分别解出各自的数据并与发送前的数据进行差错比较。
二、仿真方案详细设计
通信系统的总体框图
发射机原理图
接收机原理图
如图二图三,该通信系统设计由发射机、信道、接收机三部分组成。
发射端主要完成m序列的产生,产生随机的0 1序列,利用m序列对产生的随机序列进行扩频,在用DBPSK调制方式进行调制。
信道主要是模拟信号的多径传输,在这个信道中一共有三个用户的数据进行传输,用户1经过了2径衰落,用户2经过了3径衰落,用户3经过了4径衰落。
接收机主要完成对信号的解扩、解调、滤波、抽样判决。
扩频通信系统发射机设计
扩频通信系统接收机设计
系统整体流程图
扩频码(m序列)的产生
扩频码为伪随机序列,因为有三路用户,故选取带有6位移位寄存器,周期为63的m 序列。其对应的二进制序列分别为:1000011,1100111,1101101.以1000011为例,其具体的寄存器结构图如下所示:初始化各寄存器单元内容为1
DBPSK的调制解调:
多径信道
因为信号通过各个路径的距离不同,所以各个路径电波到达接收机的时间不同,相位也就不同。不同相位的多个信号在接收端叠加,有时是同相叠加而加强,有时是反相叠加而减弱。这样接收信号的幅度将急剧变化,即产生了所谓的多径衰落。
三、仿真结果及结论
差分编码后的信号与调制后的信号
与载波相乘后的波形
通过低通滤波器后的波形
误差比较
四、总结与体会
整个实验做完,总体感觉挺难的,即使能清楚原理,但是在写仿真程序的时候有点不知道从何下手,尽管该实验的一些方面的知识点老师讲过,但是在一些细节上还是很有难度,比如BPSK调制解调改为DBPSK调制解调。
做完了整个实验,整个实验的设计可以概括为扩频码的产生,扩频与解扩,DBPSK调制与解调,多径信道的传输这四个部分,扩频码产生的部分要注意寄存器的阶数 n 与扩频码的长度满足特定的关系: c=2^n-1,且对于不同阶数的寄存器其反馈系数也有严格的限制。扩频就是在每一个码元周期内扩频码与原信号直接相乘,扩频后周期和频谱都会进行相应的扩大,抗干扰能力也有了显著的提高,解调过程采用的是相干解调就是让扩频后的信号再次与扩频码相乘达到解调的目的。DBPSK的调制中最重要的是差分码的产生,两种二进制数对应不同相位的正弦信号,解调过程包括与本地载波相乘、低通滤波、抽样判决、差分译码四大部分,本次实验采用也只能采用相干解调,抽样判决中所采用的判决门限为0.25。在进行多径信道传输时,三个用户所经历的信道径数不一致,根据最后的结果可知用户所经历的衰落径数越多,解调后的误码率越高。
五、主要仿真代码
(1,-1)比特流的产生函数
function signal=information (N)
signal=rand (1,N) >=0.5;
signal=signal*2-1; %将产生的0,1比特流转化为-1,1比特流
end
扩频码(m序列)的产生函数
function c=genMseq(b)%b为c的个数,比阶数多一
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;
end
扩频
function ssignal=dsss (signal, c)
ssignal=[ ];
for i=1 : length(signal)
ssignal=[ssignal,signal(i)*c];
end
end
DBPSK调制函数
function modusignal=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 )