?? mupdltxchain.m
字號:
function [Out] = mUPDLRXchain(SlotVecs,ZoneD,BurstD)
% Downlink Rx (MS) chain of user processing of IEEE 802.16-2004
% (WiMAX, OFDMA only)
%
% [Out] = mUPDLRXchain(SlotVecs,ZoneD,BurstD)
%
% This function chains up all the required Matlab functions and processes
% the payload data of one burst (In). After modulation mapping the data is
% mapped into the defined data region of the zone (SlotVecs).
%
% SlotVecs: input/output matrix that is the FP interface (complex)
% one column per slot vector, 48*ZoneD.NumSubch rows
% ZoneD : zone descriptor
% BurstD : downlink burst descriptor
%
% Out : output vector, payload data for one burst
% (unsigned bytes, values 0 or 255)
%
% Matlab 7 Release 14 SP2
% The communication toolbox is required.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Property of Freescale
% Freescale Confidential Proprietary
% Freescale Copyright (C) 2005 All rights reserved
% ----------------------------------------------------------------------------
% $RCSfile: mUPDLTXchain.m.rca $
% $Revision: 1.3 $
% $Date: Mon Oct 23 19:56:18 2006 $
% Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%path is relative to the UP/*/SPManager/matlab folder
addpath('../../../CM/Utilities/matlab');
addpath('../../../DL/SPKernel/RepSlotMap/matlab');
addpath('../../../UL/SPKernel/DemodMap/matlab');
addpath('../../../DL/SPKernel/SlotSeg/matlab');
addpath('../../../UL/SPKernel/DIL/matlab');
addpath('../../../UL/SPKernel/DePunct/matlab');
addpath('../../../UL/SPKernel/Viterbi/matlab');
addpath('../../../UL/SPKernel/DeRand/matlab');
addpath('../../../UL/SPKernel/CodeBlkDeseg/matlab');
%slot demapping + derepetition
slotdemap_out = mDerepSlotDemapDLRX(SlotVecs,ZoneD,BurstD);
%demodulation mapping
% demodmap_out = mDemodMapper_OFDM(slotdemap_out,BurstD.ModMode,BurstD.Distance);
[m,k]=size(slotdemap_out);
demodmap_out = mDemodMapper_DL(slotdemap_out,ones(1,k),BurstD.ModMode,BurstD.Distance);%dumy value for Block size
%slot desegmentation (combine slots to code blocks)
[slotdeseg_out,BlkSize] = mSlotDesegDLRX(demodmap_out,BurstD);
%deinterleaving
[dil_out,BlkSize] = mDIL(slotdeseg_out,BlkSize,BurstD.ModMode);
%depuncturing
[depunct_out,BlkSize] = mDepuncturing(dil_out,BlkSize,BurstD.PunctMode);
%viterbi decoding
%[vitdec_out_bits,BlkSize] = mVitDecoder_DL(depunct_out,BlkSize,BurstD.FECType,BurstD.PunctMode);
[vitdec_out_bits,BlkSize] = mVitDecoder(depunct_out,BlkSize,BurstD.FECType,BurstD.PunctMode,'n');
%data packing
vitdec_out = mBytePack(vitdec_out_bits);
BlkSize=BlkSize/8;
%de-randomize
if BurstD.IUC==255,
% do not derandomize FCH
derand_out = vitdec_out;
else
[derand_out,BlkSize] = mDerandomizer(vitdec_out,BlkSize);
end
%code block de-segmentation
Out=mCodeBlkDeseg(derand_out,BlkSize);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -