В этом примере показано, как модулировать и затем демодулировать выборки сетки ресурса 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
функция и выход демодулятора из модели.
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');