В этом примере показано, как Смежное Отношение Степени Утечки Канала (ACLR) может быть измерено в нисходящем сигнале Ссылочного канала измерения (RMC) использование LTE Toolbox™.
Этот пример выполняет Смежное Отношение степени Утечки Канала (ACLR) измерения согласно TS36.104, Раздел 6.6.2 [1] для нисходящей формы волны. ACLR используется в качестве меры суммы степени, просачивающейся в смежные каналы, и задан как отношение отфильтрованной средней степени, сосредоточенной на присвоенной частоте канала к отфильтрованной средней степени, сосредоточенной на смежной частоте канала. Минимальные требования соответствия ACLR даны для E-UTRA (LTE) несущие и UTRA (W-CDMA) несущие.
Пример структурирован можно следующим образом:
Нисходящая форма волны сгенерирована с помощью настройки Ссылочного канала измерения (RMC)
Параметры для измерений ACLR вычисляются включая необходимый уровень сверхдискретизации, чтобы гарантировать сигнал, способный к представлению и E-UTRA и 1-е и 2-е смежные несущие UTRA с самое большее 85%-м заполнением полосы пропускания
Форма волны сверхдискретизирована как требуется
E-UTRA ACLR вычисляется с помощью квадратного фильтра измерения
UTRA ACLR вычисляется с помощью фильтра Корневого косинуса повышения (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 поднесущая имеет форму sinc в частотном диапазоне). Для того, чтобы достигнуть хорошей эффективности 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 и 1-е и 2-е смежные несущие UTRA; частота дискретизации, используемая внутренне для измерений ACLR, поддержит эту полосу пропускания с самое большее 85%-м заполнением полосы пропускания.
OSR
: Целочисленное отношение сверхдискретизации входа waveform
требуемый создать сигнал, способный к представлению и E-UTRA и 1-е и 2-е смежные несущие UTRA т.е. представлять aclr.BandwidthACLR
с самое большее 85%-м заполнением полосы пропускания.
SamplingRate
: Частота дискретизации внутреннего измерения сигнализирует, от которого вычисляется ACLR. Если OSR=1
, этот сигнал является входной формой волны; если OSR>1
, этот сигнал является входной формой волны, сверхдискретизированной OSR
. Поэтому: aclr.SamplingRate = OSR*cfg.SamplingRate
.
EUTRAPowerdBm
: Степень, в децибелах относительно 1 мВт в 1 Оме, входа в канале E-UTRA интереса т.е. в квадратном фильтре полосы пропускания aclr.BandwidthConfig
сосредоточенный в 0Hz.
EUTRAdB
: Вектор из E-UTRA ACLRs, в децибелах относительно aclr.EUTRAPowerdBm
, измеренный для смежных каналов [-2,-1, 1, 2].
EUTRACenterFreq
: Вектор из E-UTRA сосредотачивает частоты, в Герц, для смежных каналов [-2,-1, 1, 2].
UTRAPowerdBm
: Вектор из степеней, в децибелах относительно 1 мВт в 1 Оме, входа в канале UTRA интереса; каждый элемент вектора соответствует каждому из сконфигурированных уровней чипа UTRA т.е. UTRAPowerdBm(i)
дает степень входа в фильтре RRC, спроектированном для R=cfg.UTRAChipRate(i)
Макхипс/с, alpha=0.22
, сосредоточенный на уровне 0 Гц.
UTRAdB
: Матрица A UTRA ACLRs, в децибелах относительно aclr.EUTRAPowerdBm
. Столбцы дают значения для смежных каналов [-2,-1, 1, 2], и строки дают значения для каждого из сконфигурированных уровней чипа UTRA. Обратите внимание на то, что как требуется по стандарту, эти ACLRs относительно aclr.EUTRAPowerdBm
, не aclr.UTRAPowerdBm
.
UTRACenterFreq
: Матрица A UTRA сосредотачивает частоты в Герц. Столбцы дают значения для смежных каналов [-2,-1, 1, 2], и строки дают значения для каждого из сконфигурированных уровней чипа UTRA.
hACLRResults.m отображает ACLR и строит смежные степени канала. Согласно таблице 6.6.2.1-1 [1] TS 36.104, минимум потребовал, чтобы 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 как описано в таблице 6.2-1 TS 36.104 и степени установлен в 38.0dBm (~21.5dBm/100kHz). Соответствующая спектральная маска обеспечивается в таблице 6.6.3.2C-5 TS 36.104 "Средний диапазон BS операционная полоса нежелательные пределы эмиссии для 5, 10, полоса пропускания канала на 15 и 20 МГц, 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 см. Измерение Величины вектора ошибок (EVM) PDSCH. Согласно таблице 6.5.2-1 [1] TS 36.104, максимальный 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) и прием"