Is this a possible lteEPDCCHDecode bug

조회 수: 12 (최근 30일)
Sean
Sean 2025년 8월 13일
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개)

카테고리

Help CenterFile Exchange에서 LTE Toolbox에 대해 자세히 알아보기

태그

제품


릴리스

R2025a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by