mirror of https://github.com/pvnis/srsRAN_4G.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.0 KiB
Matlab
77 lines
2.0 KiB
Matlab
10 years ago
|
filename='../../debug/dist_ra.dat';
|
||
|
|
||
|
enb.NDLRB = 50;
|
||
|
enb.CyclicPrefix = 'Normal';
|
||
|
enb.PHICHDuration = 'Normal';
|
||
|
enb.CFI = 2;
|
||
|
enb.Ng = 'Sixth';
|
||
|
enb.CellRefP = 1;
|
||
|
enb.NCellID = 196;
|
||
|
enb.NSubframe = 5;
|
||
|
enb.NTotalSubframes=1;
|
||
|
enb.DuplexMode = 'FDD';
|
||
|
|
||
|
dci.NDLRB = enb.NDLRB;
|
||
|
dci.DCIFormat = 'Format1C';
|
||
|
dci.AllocationType=1;
|
||
|
%dci.Allocation.Bitmap='01111000011110000';
|
||
|
%dci.Allocation.Subset=3;
|
||
|
dci.Allocation.RIV = 33;
|
||
|
dci.Allocation.Gap = 0;
|
||
|
dci.ModCoding=6;
|
||
|
dci.RV=0;
|
||
|
dci.DuplexMode = enb.DuplexMode;
|
||
|
dci.NTxAnts = enb.CellRefP;
|
||
|
pdcch.RNTI = 65535;
|
||
|
pdcch.PDCCHFormat = 3;
|
||
|
|
||
|
pdsch.Modulation='QPSK';
|
||
|
pdsch.RNTI=pdcch.RNTI;
|
||
|
if (enb.CellRefP == 1)
|
||
|
pdsch.TxScheme='Port0';
|
||
|
else
|
||
|
pdsch.TxScheme='TxDiversity';
|
||
|
end
|
||
|
pdsch.NLayers=enb.CellRefP;
|
||
|
pdsch.trblklen=176;
|
||
|
pdsch.RV=dci.RV;
|
||
|
|
||
|
% Begin frame generation
|
||
|
subframe = lteDLResourceGrid(enb);
|
||
|
|
||
|
%%% Create Reference Signals
|
||
|
rsAnt = lteCellRS(enb);
|
||
|
indAnt = lteCellRSIndices(enb);
|
||
|
subframe(indAnt) = rsAnt;
|
||
|
|
||
|
%%% Create PDCCH
|
||
|
[dciMessage,dciMessageBits] = lteDCI(enb,dci);
|
||
|
codedDciBits = lteDCIEncode(pdcch,dciMessageBits);
|
||
|
pdcchInfo = ltePDCCHInfo(enb);
|
||
|
pdcchBits = -1*ones(1,pdcchInfo.MTot);
|
||
|
candidates = ltePDCCHSpace(enb,pdcch,{'bits','1based'});
|
||
|
pdcchBits (candidates(1,1):candidates(1,2)) = codedDciBits;
|
||
|
pdcchSymbols = ltePDCCH(enb, pdcchBits);
|
||
|
pdcchIndices = ltePDCCHIndices(enb,{'1based'});
|
||
|
subframe(pdcchIndices) = pdcchSymbols;
|
||
|
|
||
|
% Create PDSCH
|
||
|
pdsch.prbset = lteDCIResourceAllocation(enb,dci);
|
||
|
|
||
|
[pdschIndices,pdschInfo] = ltePDSCHIndices(enb,pdsch,pdsch.prbset);
|
||
|
|
||
|
dlschTransportBlk=randi([0 1],pdsch.trblklen,1);
|
||
|
pdschcodeword = lteDLSCH(enb,pdsch,pdschInfo.G,dlschTransportBlk);
|
||
|
%crced = lteCRCEncode(dlschTransportBlk, '24A');
|
||
|
%encoded = lteTurboEncode(crced);
|
||
|
%pdschcodeword2 = lteRateMatchTurbo(encoded,pdschInfo.G,pdsch.RV);
|
||
|
pdschSymbols = ltePDSCH(enb,pdsch,pdschcodeword);
|
||
|
|
||
|
subframe(pdschIndices) = pdschSymbols;
|
||
|
|
||
|
txwaveform = lteOFDMModulate(enb,subframe);
|
||
|
|
||
|
write_complex(filename,sum(txwaveform,2));
|
||
|
fprintf('Written signal to %s\n',filename);
|
||
|
|