Is this a possible lteEPDCCHDecode bug
11 views (last 30 days)
Show older comments
I have the following code that uses the "single candidate" variation of lteEPDCCHDecode:
enb = lteRMCDL('R.13');
[txSignal,~,info] = lteRMCDLTool(enb,[1;0;0;1]);
% Configure propagation channel
chcfg.DelayProfile = 'EPA';
chcfg.NRxAnts = 1;
chcfg.DopplerFreq = 70;
chcfg.MIMOCorrelation = 'Low';
chcfg.SamplingRate = info.SamplingRate;
chcfg.Seed = 1;
chcfg.InitPhase = 'Random';
chcfg.InitTime = 0;
txSignal = [txSignal; zeros(15,4)];
N = length(txSignal);
noise = 1e-3*complex(randn(N,chcfg.NRxAnts),randn(N,chcfg.NRxAnts));
rxSignal = lteFadingChannel(chcfg,txSignal)+noise;
% Synchronization and OFDM demodulation
offset = lteDLFrameOffset(enb,rxSignal);
rxGrid = lteOFDMDemodulate(enb,rxSignal(1+offset:end,:));
% Channel estimation
cec.FreqWindow = 9;
cec.TimeWindow = 9;
cec.InterpType = 'Cubic';
cec.PilotAverage = 'UserDefined';
cec.InterpWinSize = 3;
cec.InterpWindow = 'Causal';
cec.Reference = 'EPDCCHDMRS';
% EPDCCH configuration
chs.EPDCCHNID = 123;
chs.EPDCCHType = 'Distributed';
chs.EPDCCHPRBSet = [1:6];
chs.EPDCCHECCE = [0 23];
% Received symbols
griddims = lteResourceGridSize(enb); % Resource grid dimensions
sym_per_sf = griddims(2); % Number of OFDM symbols in a subframe
rx_sf = rxGrid(:,1:sym_per_sf,:);
[cand_chest,cand_noiseest] = lteDLChannelEstimate(enb, chs, cec, rx_sf);
[epdcchIndices,epdcchInfo] = lteEPDCCHIndices(enb,chs);
disp(epdcchInfo);
[cand_sym,cand_chest_sym] = lteExtractResources(epdcchIndices,rx_sf,cand_chest);
% Decode EPDCCH
[cand_bits,cand_symbols] = lteEPDCCHDecode(enb,chs,cand_sym,cand_chest_sym,cand_noiseest);
I get the following output
>> EPDCCH_Decode
EPDCCHG: 1248
EPDCCHGd: 624
nEPDCCH: 104
NECCE: 24
NECCEPerPRB: 4
NEREGPerECCE: 4
EPDCCHPorts: [1 3]
Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 1-by-2.
Error in lteEqualizeMMSE (line 119)
out(scNo,symbNo,:) = G*r;
^^^^^^^^^^^^^^^^^^
Error in lteEPDCCHDecode (line 440)
[symbols(:,p),csi(:,p)] = lteEqualizeMMSE(rxsym,squeeze(hest(:,:,p)),noiseest);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error in EPDCCH_Decode (line 47)
[cand_bits,cand_symbols] = lteEPDCCHDecode(enb,chs,cand_sym,cand_chest_sym,cand_noiseest);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I verified that the parameter cand_sym is of size EPDCCHGd x nRxAnt and cand_chest of size EPDCCHGd x nRxAnt x 4. Note in lteEqualizeMMSE(reGrid, Hest, n0) the following lines appear to produce incorrect results:
noSc = size(reGrid,1);
noSymb = size(reGrid,2);
noRxAnt = size(Hest,3);
noTxAnt = size(Hest,4);
any ideas on what is wrong?
0 Comments
Answers (0)
See Also
Categories
Find more on LTE Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!