1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y5qWkpxx
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
前向链路指由基站发往移动台的无线通信链路,也称作下行链路。IS-95系统前向链路最多可以有64个同时传输的信道,它们是在PN序列上再采用正交的Walsh码进行区分的信道,采用同一个射频载波发射。而来自不同基站的前向链路信号则是通过PN短码的不同偏置来区分。
前向链路的码分物理信道采用的正交码为64阶的Walsh函数,即生成的Walsh序列长度为64个码片。正交信号共有64个Walsh码型。因此,可提供的码分物理信道共64个。利用码分物理信道可以传送不同功能的信息,按照所传送信息功能的不同而分类的信道称为逻辑信道。前向链路中的逻辑信道包括以下几种:
(1)导频信道(PilotChannel)导频信道用于发送导频信息,供移动台识别基站,并提取相干载波以进行相干解调。
(2)同步信道(SynchronizingChannel)同步信道用于发送同步信息,供移动台建立与系统之间的同步。
(3)寻呼信道(PagingChannel)寻呼信道供基站在呼叫建立阶段发送相关的控制信息。
(4)前向业务信道(ForwardTrafficChannel)
4.部分源码
%+++++++++++++++++++扰码生成多项式++++++++++++++++++++++
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