Модулируйте и демодулируйте ресурсную сетку LTE

В этом примере показано, как модулировать и затем демодулировать выборки сетки ресурса LTE. Модель соединяет блок LTE OFDM Modulator с блоком LTE OFDM Demodulator. Чтобы проверить алгоритмы обоих блоков, этот пример сравнивает выход демодулятора с входом модулятора. Можно сгенерировать HDL-код из любого блока.

Сгенерируйте вход ресурсную сетку с помощью LTE Toolbox™.

enb = lteRMCDL('R.6');
enb.CyclicPrefix='Normal';
enb.TotSubframes = 1;

% --------------------------------------------------------------
%      NDLRB              |   Sampling Rate (MHz)
% --------------------------------------------------------------
%   	6                  |   R.4
%   	15                 |   R.5
%   	25                 |   R.6
%   	50                 |   R.7
%   	75                 |   R.8
%   	100                |   R.9
% --------------------------------------------------------------

[~,LTEGrid,info] = lteRMCDLTool(enb,[1;0;0;1]);

NDLRB=info.NDLRB;
if strcmp(enb.CyclicPrefix,'Normal')
    CPType=false;
else
    CPType=true;
end

sampling_time=1/30.72e6;
modulatorLatency=4137+2048*2;
demodulatorLatency=4137+2048*2;
stoptime=enb.TotSubframes*(30720+modulatorLatency+demodulatorLatency)*sampling_time;

Преобразуйте системы координат выборки LTEGrid в поток выборок с управляющими сигналами для входа в модель Simulink ®.

idlecyclesbetweensamples = 0;
idlecyclesbetweenframes  = 0;

[dataIn,ctrl] = whdlFramesToSamples(mat2cell(LTEGrid(:),numel(LTEGrid),1),...
                idlecyclesbetweensamples,idlecyclesbetweenframes);
validIn = logical(ctrl(:,3));

Запустите модель Simulink, чтобы модулировать и демодулировать выборки и сохранить выходные выборки в переменную рабочей области.

open_system('LTEHDLOFDMModDemodExample')
sim('LTEHDLOFDMModDemodExample');

rxgridSimulink = dataOut(validOut);

Сравните вход модулятора, сгенерированный из lteRMCDLTool function, и выход демодулятора из модели.

figure('units','normalized','outerposition',[0 0 1 1])
subplot(2,1,1);
plot(real(LTEGrid(:)));
hold on
plot(squeeze(real(rxgridSimulink)));
legend('Real part of LTE grid','Real part of demodulated waveform');
title('Comparision of Input to OFDM Modulator with Output from OFDM Demodulator');
xlabel('OFDM Subcarriers');
ylabel('Real part of the time-domain waveform');

subplot(2,1,2)
plot(imag(LTEGrid(:)))
hold on
plot(squeeze(imag(rxgridSimulink)))
legend('Imag part of LTE grid','Imag part of demodulated waveform');
title('Comparision of Input to OFDM Modulator with Output from OFDM Demodulator');
xlabel('OFDM Subcarriers');
ylabel('Imag part of the time-domain waveform');

См. также

Блоки