IS-95前向链路系统误码率matlab仿真,包括扩频调制,匹配滤波,RAKE接收

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

       前向链路指由基站发往移动台的无线通信链路,也称作下行链路。IS-95系统前向链路最多可以有64个同时传输的信道,它们是在PN序列上再采用正交的Walsh码进行区分的信道,采用同一个射频载波发射。而来自不同基站的前向链路信号则是通过PN短码的不同偏置来区分。

       前向链路的码分物理信道采用的正交码为64阶的Walsh函数,即生成的Walsh序列长度为64个码片。正交信号共有64个Walsh码型。因此,可提供的码分物理信道共64个。利用码分物理信道可以传送不同功能的信息,按照所传送信息功能的不同而分类的信道称为逻辑信道。前向链路中的逻辑信道包括以下几种:

(1)导频信道(PilotChannel)导频信道用于发送导频信息,供移动台识别基站,并提取相干载波以进行相干解调。

(2)同步信道(SynchronizingChannel)同步信道用于发送同步信息,供移动台建立与系统之间的同步。

(3)寻呼信道(PagingChannel)寻呼信道供基站在呼叫建立阶段发送相关的控制信息。

(4)前向业务信道(ForwardTrafficChannel)

扩频调制

扩频基本结构如下:
————————————————

匹配滤波

        匹配滤波(matched filtering)是最佳滤波的一种,当输入信号具有某一特殊波形时,其输出信噪比达到最大。在形式上,一个匹配滤波器由以按时间反序排列的输入信号构成。且滤波器的振幅特性与信号的振幅谱一致。因此,对信号的匹配滤波相当于对信号进行互相关运算。地震勘探使用可控震源时,对得到的记录所进行的变换就是匹配滤波的实例。

RAKE接收

      RAKE接收(Rake Receive):其基本原理是将无线通信系统中,幅度明显大于噪声背景的多径分量取出,对其进行延时和相位校正,使之在某一时刻对齐,并按一定的规则进行合并,变矢量合并为代数求和,有效地利用多径分量,提高多径分集的效果。

       RAKE接收机是一种能分离多径信号并有效合并多径信号能量的最终接收机。RAKE接收技术是第三代CDMA移动通信系统中的一项重要技术。在CDMA移动通信系统中,由于信号带宽较宽,存在着复杂的多径无线电信号,通信受到多径衰落的影响。RAKE接收技术实际上是一种多径分集接收技术,可以在时间上分辨出细微的多径信号,对这些分辨出来的多径信号分别进行加权调整、使之复合成加强的信号。由于该接收机中横向滤波器具有类似于锯齿状的抽头,就像耙子一样,故称该接收机为RAKE接收机。

2.仿真效果预览

matlab2022a仿真结果如下:

3.MATLAB核心程序

 
%+++++++++++++++++++扰码生成多项式++++++++++++++++++++++
Gs_ind = [42, 35, 33, 31, 27, 26, 25, 22, 21, 19, 18, 17, 16, 10, 7, 6, 5, 3, 2, 1, 0]'; 
Gs = zeros(43, 1); 
Gs(43-Gs_ind) = ones(size(Gs_ind)); 
Zs = [zeros(length(Gs)-1, 1); 1];  		
% 长序列生成器的初始状态
%++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
%++++++++++++++++++++++AWGN信道++++++++++++++++++++++++ 
EbEc = 10*log10(ChipRate/BitRate); 
EbEcVit = 10*log10(L); 
EbNo = [0 : 0.5 : 3.5]; 		%仿真信噪比范围(dB)    
%++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
%------------------------------------------------------
 
%-------------------------主程序-------------------------
 
ErrorsB = []; ErrorsC = []; NN = []; 
if (SD == 1) 
   fprintf('\n SOFT Decision Viterbi Decoder\n\n'); 
else 
   fprintf('\n HARD Decision Viterbi Decoder\n\n'); 
end 
 
for i=1:length(EbNo) 
   fprintf('\nProcessing %1.1f (dB)', EbNo(i)); 
   iter = 0;	ErrB = 0; ErrC = 0; 
   while (ErrB <300) & (iter <150) 
      drawnow; 
       
      %++++++++++++++++++++++发射机+++++++++++++++++++++++ 
      TxData = (randn(N, 1)>0);        
      % 速率为19.2Kcps
      [TxChips, Scrambler] = PacketBuilder(TxData, G_Vit, Gs); 
      % 速率为1.2288Mcps
      [x PN MF] = Modulator(TxChips, MFType, Walsh);   
      %++++++++++++++++++++++++++++++++++++++++++++++++++++++
       
      %++++++++++++++++++++++++信道+++++++++++++++++++++++++++ 
      noise = 1/sqrt(2)*sqrt(R/2)*( randn(size(x)) + j*randn(size(x)))*10^(-(EbNo(i) - EbEc)/20); 
      r = x+noise; 
      %++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
      
      %+++++++++++++++++++++++++接收机++++++++++++++++++++++++ 
      RxSD = Demodulator(r, PN, MF, Walsh); %软判决,速率为19.2 Kcps 
      RxHD = (RxSD>0); 		                % 定义接收码片的硬判决
      if (SD)  
        [RxData Metric]= ReceiverSD(RxSD, G_Vit, Scrambler); %软判决
      else 
        [RxData Metric]= ReceiverHD(RxHD, G_Vit, Scrambler); %硬判决
      end 
     %++++++++++++++++++++++++++++++++++++++++++++++++++++++  
       
      if(show) 
         subplot(311); plot(RxSD, '-o'); title('Soft Decisions'); 
         subplot(312); plot(xor(TxChips, RxHD), '-o'); title('Chip Errors'); 
         subplot(313); plot(xor(TxData, RxData), '-o');  
         title(['Data Bit Errors. Metric = ', num2str(Metric)]); 
         pause; 
      end         
A126

4.完整MATLAB

V

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我爱C编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值