Is this a possible lteEPDCCHDecode bug
11 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!