Этот пример показывает, как Отношение Степени Смежного Канала (ACLR) может быть измерено в сигнале нисходящего Опорного Канала Измерения (RMC) с использованием LTE Toolbox™.
Этот пример выполняет измерения коэффициента утечки смежного канала (ACLR) в соответствии с TS36.104, раздел 6.6.2 [1] для формы волны нисходящего канала. ACLR используется как мера величины утечки степени в смежные каналы и определяется как отношение фильтрованной средней степени, центрированной на назначенной частоте канала, к фильтрованной средней степени, центрированной на смежной частоте канала. Минимальные требования соответствия ACLR приведены для несущих E-UTRA (LTE) и несущих UTRA (W-CDMA).
Пример структурирован следующим образом:
Нисходящая форма волны генерируется с помощью строения Опорного Канала Измерения (RMC)
Параметры для измерений ACLR вычисляются, включая необходимую скорость сверхчастоты дискретизации, чтобы гарантировать сигнал, способный представлять как E-UTRA, так и UTRA 1-й и 2-й смежные несущие с самое большее 85% заполнением полосы пропускания
Форма волны переизбирается по мере необходимости
E-UTRA ACLR вычисляется с помощью квадратного фильтра измерения
UTRA ACLR вычисляется с использованием фильтра Root Raise Cosine (RRC)
Отображаются измерения ACLR
Нисходящий RMC используется для измерения ACLR и создается с использованием lteRMCDL
и lteRMCDLTool
.
% Generate the downlink configuration structure for RMC R.6 cfg = lteRMCDL('R.6'); % Generate the waveform which is a T-by-P matrix where T is the number of % time-domain samples and P is the number of receive antennas [waveform, ~, info] = lteRMCDLTool(cfg, [1; 0; 0; 1]); % Write the sampling rate and chip rate to the configuration structure to % allow the calculation of ACLR parameters cfg.SamplingRate = info.SamplingRate; cfg.UTRAChipRate = 3.84; % UTRA chip rate in MCPS
Параметры, необходимые для измерения ACLR, вычисляются с помощью вспомогательной функции hACLRParameters.m
Определите необходимую избыточную дискретизацию. Если скорость дискретизации формы входа (cfg.SamplingRate
) недостаточно для охвата всей полосы пропускания (aclr.BandwidthACLR
) смежных каналов (допускающих заполнение полосы пропускания не более 85%), для вычислений ACLR должна использоваться расширенная версия формы волны. aclr.OSR
- коэффициент увеличения дискретизации.
Определение параметров UTRA; скорости чипов и полосы пропускания.
% Calculate ACLR measurement parameters
[aclr, nRC, R_C, BWUTRA] = hACLRParameters(cfg);
Форма волны, сгенерированная выше, не имеет фильтрации, поэтому существуют значительные из полосы спектральных выбросов из-за неявного прямоугольного формирования импульса в модуляции OFDM (каждая поднесущая OFDM имеет форму синуса в частотный диапазон). В порядок достижения хорошей эффективности ACLR, фильтрация должна применяться к форме волны. Фильтр разработан с полосой переходов, которая начинается с ребра занятой полосы пропускания передачи (aclr.BandwidthConfig
) и останавливается на краю общей полосы пропускания канала (aclr.Bandwidth
). Этот фильтр не включает изменение скорости, он просто формирует спектр в пределах исходной полосы пропускания формы волны. Фильтр сначала проектируется, затем применяется к форме волны.
% Design filter firFilter = dsp.LowpassFilter(); firFilter.SampleRate = info.SamplingRate; firFilter.PassbandFrequency = aclr.BandwidthConfig/2; firFilter.StopbandFrequency = aclr.Bandwidth/2; % Apply filter waveform = firFilter(waveform);
ACLR для E-UTRA и UTRA измеряется с помощью двух вспомогательных функций:
hACLRMeasurementEUTRA.m измеряет E-UTRA ACLR с помощью квадратного окна на смежных каналах. Принимается ДПФ сигнала измерения и энергия соответствующих интервалов, используемых для вычисления степеней смежного канала.
hACLRMeasurementUTRA.m измеряет UTRA ACLR с помощью RRC фильтра на смежных каналах с коэффициентом отката 0,22 и пропускной способностью, равной скорости чипа.
% Apply required oversampling resampled = resample(waveform,aclr.OSR,1); % Calculate E-UTRA ACLR aclr = hACLRMeasurementEUTRA(aclr, resampled); % Calculate UTRA ACLR aclr = hACLRMeasurementUTRA(aclr, resampled, nRC, R_C, BWUTRA);
Результаты ACLR возвращаются в структуре aclr
. aclr
содержит поля:
Bandwidth
: Пропускная способность канала, сопоставленная с cfg.NDLRB
или cfg.NULRB, в Герце. Это - общая полоса пропускания назначенного канала.
BandwidthConfig
: Строение полосы пропускания передачи, сопоставленная с cfg.NDLRB или
cfg.NULRB
, в Герце. Это ширина полосы пропускания канала, которая содержит активные поднесущие.
BandwidthACLR
: Пропускная способность, необходимая для представления как E-UTRA, так и UTRA 1-й и 2-й смежных несущих; частота дискретизации, используемая внутри для измерений ACLR, будет поддерживать эту полосу пропускания с заполнением полосы пропускания не более 85%.
OSR
: Целое число коэффициента избыточной дискретизации входа waveform требуется для создания сигнала, способного представлять как E-UTRA, так и UTRA 1-ю и 2-ю смежные несущие, т.е. представлять aclr.BandwidthACLR
с заполнением пропускной способности не более 85%.
SamplingRate
: Частота дискретизации внутреннего сигнала измерения, из которого вычисляется ACLR. Если OSR=1, этот сигнал является входом сигнала; если OSR>1
, этот сигнал является входом сигнала с повышенной дискретизацией OSR
. Поэтому:
aclr.SamplingRate = OSR*cfg.SamplingRate
.
EUTRAPowerdBm
: Степень, в децибелах относительно 1mW в 1ОМ, вход в интересующем канале E-UTRA, т.е. в квадратном фильтре полосы пропускания aclr.BandwidthConfig с центром в 0Hz.
EUTRAdB
: Вектор ACLR E-UTRA, в децибелах относительно aclr.EUTRAPowerdBm, измеренный для смежных каналов [-2, -1, 1, 2].
EUTRACenterFreq
: Вектор центральных частот E-UTRA, в Герце, для смежных каналов [-2, -1, 1, 2].
UTRAPowerdBm
Вектор степеней в децибелах относительно 1mW в 1ОМ входе в интересующем канале UTRA; каждый элемент вектора соответствует каждой из настроенных частот чипов UTRA, т.е. UTRAPowerdBm(i) обеспечивает степень входа в RRC-фильтре, предназначенном для
R=cfg.UTRAChipRate(i)
Mchips/s, alpha=0.22
, с центром 0 Гц.
UTRAdB
: Матрица ACLR UTRA, в децибелах относительно aclr.EUTRAPowerdBm. В столбцах приведены значения для смежных каналов [-2, -1, 1, 2], а в строках приведены значения для каждой из настроенных частот чипов UTRA. Обратите внимание, что, как требуется стандартом, эти ACLR относятся к aclr.EUTRAPowerdBm
, не aclr.UTRAPowerdBm
.
UTRACenterFreq
: Матрица центральных частот UTRA, в Герце. В столбцах приведены значения для смежных каналов [-2, -1, 1, 2], а в строках приведены значения для каждой из настроенных частот чипов UTRA.
hACLRResults.m отображает ACLR и строит графики степеней смежных каналов. Согласно TS 36.104 Таблица 6.6.2.1-1 [1], минимальный необходимый ACLR для базовой станции в парном спектре составляет 45 дБ. Поскольку результаты ACLR превышают 45 дБ, они соответствуют требованиям.
minACLR = 45; hACLRResults(aclr,minACLR);
Bandwidth: 5000000 BandwidthConfig: 4500000 BandwidthACLR: 25000000 OSR: 4 SamplingRate: 30720000 EUTRACenterFreq: [-10000000 -5000000 5000000 10000000] EUTRAPowerdBm: -0.5918 EUTRAdB: [79.2357 72.1187 72.2046 79.2157] UTRAPowerdBm: -1.3397 UTRAdB: [80.3117 72.5323 72.5011 80.3540] UTRACenterFreq: [-10000000 -5000000 5000000 10000000]
Спектр формы волны отображается в сочетании с передающей спектральной маской, определенной в TS 36.104. Этот пример принимает, что форма волны соответствует BS средней области значений, как описано в таблице 36,104 TS 6,2-1 и степень устанавливается на 38 0 д Бм (~ 21 5 д Бм/100 кГц). Соответствующая спектральная маска приведена в TS 36.104 Таблица 6.6.3.2C-5 «Пределы нежелательной эмиссии рабочей полосы BS средней области значений для 5, 10, 15 и 20MHz полосы пропускания канала, 31 < P_max,c < = 38dBm.»
% Adjust waveform power to maximum rated output power P_max = 38.0; % TS 36.104 Table 6.2-1 bsWaveform = resampled * 10^((P_max-aclr.EUTRAPowerdBm)/20); % Create a spectrum analyzer, configure it for the waveform sampling rate % and a resolution bandwidth of 100kHz, configure and display the spectral % mask in TS 36.104 Table 6.6.3.2C-5, and perform spectrum analysis of the % waveform rbw = 100e3; % resolution bandwidth vbw = 30e3; % video bandwidth spectrumAnalyzer = dsp.SpectrumAnalyzer; spectrumAnalyzer.Name = 'Operating Band Unwanted Emissions'; spectrumAnalyzer.Title = spectrumAnalyzer.Name; spectrumAnalyzer.SampleRate = info.SamplingRate * aclr.OSR; spectrumAnalyzer.RBWSource = 'Property'; spectrumAnalyzer.RBW = rbw; spectrumAnalyzer.AveragingMethod = 'Exponential'; spectrumAnalyzer.ForgettingFactor = hvbw2ff(vbw,spectrumAnalyzer.SampleRate); spectrumAnalyzer.ShowLegend = true; spectrumAnalyzer.ChannelNames = {'Transmit waveform'}; spectrumAnalyzer.YLimits = [-120 40]; % "Frequency offset of measurement filter center frequency" in table f_offset = [0.05; 5.05; 10.05; 10.05] * 1e6; % "Minimum requirement" in table (dBm/100kHz) mask_power = [(P_max-53); (P_max-60)*[1; 1]; min(P_max-60,-25)*[1; 1];]; % Add vertical mask segment at the band edge; no particular in-band power % mask is required to be met for this test f_offset = [repmat(f_offset(1),2,1); f_offset]; mask_power = [NaN; spectrumAnalyzer.YLimits(2); mask_power]; % Extend mask to analysis bandwidth edge, assumed to be closer to the edge % frequency of the carrier of interest than f_offset_max (the offset to the % frequency 10MHz outside the downlink operating band) mask_freq = [f_offset + aclr.Bandwidth/2; spectrumAnalyzer.SampleRate/2]; % Add a mirrored version of the mask to cover negative frequencies, and % enable the mask mask_power = [flipud(mask_power); mask_power]; mask_freq = [-flipud(mask_freq); (mask_freq)]; spectrumAnalyzer.SpectralMask.EnabledMasks = 'Upper'; spectrumAnalyzer.SpectralMask.UpperMask = [mask_freq, mask_power]; % Perform spectrum analysis spectrumAnalyzer(bsWaveform);
Наконец, форма волны уменьшается и повторно синхронизируется, и выполняется измерение EVM. Для получения дополнительной информации о выполнении измерений EVM, смотрите Измерение величины вектора ошибок PDSCH (EVM). Согласно TS 36.104 Таблица 6.5.2-1 [1], максимальное значение EVM при 64QAM созвездия составляет 8%. Поскольку общее значение EVM, около 0,78%, ниже 8%, это измерение соответствует требованиям.
downsampled = resample(resampled,1,aclr.OSR); offset = lteDLFrameOffset(cfg,downsampled,'TestEVM'); cec.PilotAverage = 'TestEVM'; evmsettings.EnablePlotting = 'Off'; evm = hPDSCHEVM(cfg,cec,downsampled(1+offset:end,:),evmsettings);
Low edge EVM, subframe 0: 0.741% High edge EVM, subframe 0: 0.707% Low edge EVM, subframe 1: 0.885% High edge EVM, subframe 1: 0.789% Low edge EVM, subframe 2: 0.785% High edge EVM, subframe 2: 0.699% Low edge EVM, subframe 3: 0.698% High edge EVM, subframe 3: 0.667% Low edge EVM, subframe 4: 0.817% High edge EVM, subframe 4: 0.640% Low edge EVM, subframe 6: 0.840% High edge EVM, subframe 6: 0.747% Low edge EVM, subframe 7: 0.732% High edge EVM, subframe 7: 0.696% Low edge EVM, subframe 8: 0.742% High edge EVM, subframe 8: 0.745% Averaged overall EVM: 0.783%
Можно изменить части этого примера, чтобы вычислить ACLR (согласно TS36.101, раздел 6.6.2.3 [2]) для восходящего канала при помощи lteRMCUL
на месте lteRMCDL
чтобы сгенерировать форму волны.
В этом примере используются следующие вспомогательные функции:
3GPP TS 36.104 «Радиопередача и прием базовой станции (BS)»
3GPP TS 36.101 «Радиопередача и прием пользовательского оборудования (UE)»