exponenta event banner

Модулировать и демодулировать сетку ресурсов LTE

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

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

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 и выход демодулятора из модели.

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');

См. также

Блоки