Этот пример измеряет EVM в нисходящем сигнале Ссылочного канала измерения (RMC) и нисходящей Тестовой модели (E-TM) сигнал, согласно требованиям измерения EVM, заданным в TS 36.104, Приложении E [1].
Этот пример создает сигнал RMC и применяет некоторый шум к передаче к образцовому передатчику EVM. Смещение частоты и смещение IQ также применяются. Сигнал, которому повреждают, затем обрабатывается согласно требованиям измерения EVM, заданным в TS36.104, Приложении E [1]. Этот пример измеряет пик и RMS EVM, усредненный через 2 кадра входного сигнала.
Средний EVM измеряется в двух местах вовремя (низко и высоко), где низкие и высокие места соответствуют выравниванию окна FFT в запуске и конце циклического префикса. LTE Toolbox™ требует, чтобы низкие и высокие места были заданы как часть циклической длины префикса.
Обратите внимание на то, что для мультиантенны RMCs, измерение EVM принимает, что каждый получает антенну сигнала, непосредственно соединяется с каждой антенной сигнала передачи, как показано в Приложении I.1.1 [2] TS36.141. В соответствии с требованиями измерения EVM, заданными в приложении E [1] TS 36.104, PDSCH декодирующее использование только Нулевая коррекция Принуждения. Для рисунка приема PDSCH, который включает полное декодирование MIMO, смотрите Поиск Ячейки, MIB и пример Восстановления SIB1.
Наконец EVM Тестовой модели (E-TM), который сигнал измеряется, показывая, как синхронизировать сигнал E-TM, который был сгенерирован за пределами MATLAB® или это проигрывалось беспроводное, будучи сгенерированным в MATLAB.
Setup передатчик согласно TS36.101 RMC [3].
% eNodeB Configuration rng('default'); % Set the default random number generator rmc = lteRMCDL('R.5'); % Configure RMC rmc.PDSCH.RVSeq = 0; % Redundancy version indicator rmc.TotSubframes = 20; % Total number of subframes to generate % Create eNodeB transmission with random PDSCH data txWaveform = lteRMCDLTool(rmc,randi([0 1],rmc.PDSCH.TrBlkSizes(1),1));
Смоделируйте передатчик EVM и добавьте смещения IQ и частота.
% Model EVM with additive noise ofdmInfo = lteOFDMInfo(rmc); txEVMpc = 1.2; % Transmit EVM in per cent evmModel = txEVMpc/(100*sqrt(double(ofdmInfo.Nfft)))* ... complex(randn(size(txWaveform)),randn(size(txWaveform)))/sqrt(2); rxWaveform = txWaveform+evmModel; % Add frequency offset impairment to received waveform foffset = 33.0; % Frequency offset in Hertz t = (0:length(rxWaveform)-1).'/ofdmInfo.SamplingRate; rxWaveform = rxWaveform.*repmat(exp(1i*2*pi*foffset*t),1,rmc.CellRefP); % Add IQ offset iqoffset = complex(0.01,-0.005); rxWaveform = rxWaveform+iqoffset;
Получатель синхронизируется с полученным сигналом и вычисляет и отображает измеренный EVM.
% Apply frequency estimation and correction for the purposes of performing % timing synchronization foffset_est = lteFrequencyOffset(rmc,rxWaveform); rxWaveformFreqCorrected = lteFrequencyCorrect(rmc,rxWaveform,foffset_est); % Synchronize to received waveform offset = lteDLFrameOffset(rmc,rxWaveformFreqCorrected,'TestEVM'); rxWaveform = rxWaveform(1+offset:end,:); % Use 'TestEVM' pilot averaging cec.PilotAverage = 'TestEVM';
PDSCH EVM вычисляется путем вызова hPDSCHEVM
.
Средний EVM для нисходящего RMC отображен. Сначала результаты для низкого и высокого ребра, EVM вычисляются для каждого подкадра в кадре и их средних значениях, отображены в командном окне. Макс. из этих средних значений является EVM на кадр. Итоговый EVM для нисходящего RMC является средним значением EVM через все кадры. Много графиков также производятся:
EVM по сравнению с символом OFDM
EVM по сравнению с поднесущей
EVM по сравнению с блоком ресурса
EVM по сравнению с символом OFDM и поднесущей (т.е. сетка ресурса EVM)
Обратите внимание на то, что измерение EVM, отображенное в командном окне, только вычисляется через выделенные блоки ресурса PDSCH, в соответствии со стандартом LTE. Графики EVM показывают через все блоки ресурса (выделенные или освобожденные), позволяя качеству сигнала быть измеренными в более общем плане. В освобожденных блоках ресурса EVM вычисляется, принимая, что полученные элементы ресурса имеют ожидаемое значение нуля.
EVM каждого поставщика услуг E-UTRA для QPSK, 16QAM, 64QAM и 256QAM схемы модуляции на PDSCH должен быть лучше, чем необходимый EVM 17,5%, 12,5%, 8% и 3,5% соответственно согласно таблице 6.5.2-1 [1] TS 36.104.
% Compute and display EVM measurements
[evmmeas, plots] = hPDSCHEVM(rmc,cec,rxWaveform);
Low edge EVM, subframe 0: 1.289% High edge EVM, subframe 0: 1.290% Low edge EVM, subframe 1: 1.397% High edge EVM, subframe 1: 1.392% Low edge EVM, subframe 2: 1.330% High edge EVM, subframe 2: 1.324% Low edge EVM, subframe 3: 1.233% High edge EVM, subframe 3: 1.237% Low edge EVM, subframe 4: 1.234% High edge EVM, subframe 4: 1.228% Low edge EVM, subframe 6: 1.292% High edge EVM, subframe 6: 1.290% Low edge EVM, subframe 7: 1.348% High edge EVM, subframe 7: 1.342% Low edge EVM, subframe 8: 1.338% High edge EVM, subframe 8: 1.335% Low edge EVM, subframe 9: 1.332% High edge EVM, subframe 9: 1.320% Averaged low edge EVM, frame 0: 1.312% Averaged high edge EVM, frame 0: 1.308% Averaged EVM frame 0: 1.312% Low edge EVM, subframe 0: 1.239% High edge EVM, subframe 0: 1.241% Low edge EVM, subframe 1: 1.229% High edge EVM, subframe 1: 1.228% Low edge EVM, subframe 2: 1.218% High edge EVM, subframe 2: 1.220% Low edge EVM, subframe 3: 1.216% High edge EVM, subframe 3: 1.220% Low edge EVM, subframe 4: 1.240% High edge EVM, subframe 4: 1.240% Low edge EVM, subframe 6: 1.218% High edge EVM, subframe 6: 1.207% Low edge EVM, subframe 7: 1.244% High edge EVM, subframe 7: 1.243% Low edge EVM, subframe 8: 1.252% High edge EVM, subframe 8: 1.247% Low edge EVM, subframe 9: 1.253% High edge EVM, subframe 9: 1.250% Averaged low edge EVM, frame 1: 1.234% Averaged high edge EVM, frame 1: 1.233% Averaged EVM frame 1: 1.234% Averaged overall EVM: 1.274%
Наконец EVM Тестовой модели (E-TM), который сигнал измеряется, показывая, как синхронизировать сигнал E-TM, который был сгенерирован за пределами MATLAB или это проигрывалось беспроводное, будучи сгенерированным в MATLAB. Следующие шаги выполняются:
Загрузите полученную форму волны: форма волны сгенерирована в hGetTestModelWaveform
, чтобы моделировать беспроводную форму волны E-TM, полученную на уровне возвращенной частоты дискретизации. Для получения дополнительной информации на беспроводной передаче и анализе форм волны Тестовой модели, обратитесь к следующему примеру: Генерация Формы волны и Передача с помощью LTE Toolbox с Тестовым оборудованием и Измерительным оборудованием.
Создайте локальную настройку Тестовой модели: Затем конфигурационная структура, представляющая содержимое формы волны E-TM, создается с помощью функционального lteTestModel
. В порядке создать настройку, должны быть известны номер Тестовой модели и пропускная способность.
Передискретизируйте к ожидаемому уровню выборки: функциональный lteOFDMInfo
называется, чтобы получить некоторую информацию о модуляции/демодуляции OFDM, используемой в LTE Toolbox для настройки Тестовой модели tmconfig
. Наиболее важной информацией здесь является ofdmInfo.SamplingRate
, который дает уровень выборки, ожидаемый для демодуляции OFDM формы волны. Функция resample
используется, чтобы передискретизировать полученную форму волны к этому уровню выборки.
Выполните синхронизацию: синхронизация исправления и оценки и синхронизации смещения Частоты выполняется с помощью тех же шагов как показано ранее в этом примере.
Измерьте EVM: EVM измеряется путем вызова hPDSCHEVM
.
% Load the captured Test Model waveform [tmsignal,SR] = hGetTestModelWaveform(); % Create a local Test Model configuration, corresponding to the known E-TM % number and bandwidth tmconfig = lteTestModel('1.1','5MHz'); ofdmInfo = lteOFDMInfo(tmconfig); % Resample the captured waveform to match the expected sampling rate used % by LTE Toolbox for the Test Model bandwidth tmsignal = resample(tmsignal,ofdmInfo.SamplingRate,SR); % Apply frequency estimation and correction for the purposes of performing % timing synchronization foffset_est = lteFrequencyOffset(tmconfig,tmsignal); tmsignalFreqCorrected = lteFrequencyCorrect(tmconfig,tmsignal,foffset_est); % Synchronize the captured waveform offset = lteDLFrameOffset(tmconfig,tmsignalFreqCorrected,'TestEVM'); tmsignal = tmsignal(1+offset:end,:); % Compute EVM measurements, with plotting disabled cec.PilotAverage = 'TestEVM'; alg.EnablePlotting = 'Off'; evm_tm = hPDSCHEVM(tmconfig,cec,tmsignal,alg);
Low edge EVM, subframe 0: 2.166% High edge EVM, subframe 0: 1.922% Low edge EVM, subframe 1: 2.010% High edge EVM, subframe 1: 1.904% Low edge EVM, subframe 2: 2.060% High edge EVM, subframe 2: 1.915% Low edge EVM, subframe 3: 1.988% High edge EVM, subframe 3: 1.910% Low edge EVM, subframe 4: 2.074% High edge EVM, subframe 4: 1.920% Low edge EVM, subframe 5: 2.010% High edge EVM, subframe 5: 1.913% Low edge EVM, subframe 6: 2.082% High edge EVM, subframe 6: 1.912% Low edge EVM, subframe 7: 2.047% High edge EVM, subframe 7: 1.920% Low edge EVM, subframe 8: 1.989% High edge EVM, subframe 8: 1.905% Low edge EVM, subframe 9: 2.021% High edge EVM, subframe 9: 1.905% Averaged low edge EVM, frame 0: 2.044% Averaged high edge EVM, frame 0: 1.912% Averaged EVM frame 0: 2.044% Averaged overall EVM: 2.044%
Этот пример использует следующие функции помощника:
3GPP TS 36.104 "Передача радио базовой станции (BS) и прием"
3GPP TS 36.141 "Проверка на соответствие стандарту базовой станции (BS)"
3GPP TS 36.101 "Передача радио оборудования пользователя (UE) и прием"