目录
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