扩频通信系统matlab仿真实验——扩频通信系统的多用户数据传输(采用DBPSK调制、m序列、路径数分别为2,3,4、进行差错比较分析)

一、仿真要求

要求:扩频通信系统的多用户数据传输
①传输的数据随机产生,要求采用频带传输(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;       %将产生的01比特流转化为-11比特流
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 )
  • 3
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩923

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值