exponenta event banner

UFMC в сравнении с модуляцией OFDM

В этом примере сравнивается универсальное фильтруемое многочастотное мультиплексирование (UFMC) с мультиплексированием с ортогональным частотным разделением каналов (OFDM) и выделяются преимущества схемы модуляции-кандидата для систем связи пятого поколения (5G).

UFMC рассмотрели как альтернативную форму волны к OFDM в 3GPP, УПРАВЛЯЛ фазой I исследования во время 3GPP Выпуск 14.

Введение

OFDM, как метод модуляции с множеством несущих, широко используется 4G системами связи, такими как LTE и Wi-Fi ®. Она имеет много преимуществ: устойчивость к задержкам канала, выравнивание частотной области с одним отводом и эффективная реализация. Часто не выделяются такие затраты, как потеря спектральной эффективности из-за более высоких боковых лепестков и строгие требования к синхронизации. Таким образом, рассматриваются новые способы модуляции для 5G систем связи, чтобы преодолеть некоторые из этих факторов.

Например, система LTE с полосой пропускания канала 20 МГц использует 100 блоков ресурсов по 12 поднесущих каждая с интервалом между поднесущими 15 кГц. При этом используется только 18 МГц выделенного спектра, что приводит к 10-процентным потерям. Кроме того, циклический префикс 144 или 160 выборок на символ OFDM приводит к еще примерно 7-процентной потере эффективности для общей 17-процентной потери в возможной спектральной эффективности.

С учетом требований МСЭ к 5G системам приложения требуют более высоких скоростей передачи данных, более низких задержек и более эффективного использования спектра. Этот пример фокусируется на новом методе модуляции, известном как универсальная фильтруемая мультинесущая (UFMC), и сравнивает его с OFDM в рамках общей структуры.

s = rng(211);       % Set RNG state for repeatability

Системные параметры

Определите системные параметры для примера. Эти параметры могут быть изменены для изучения их влияния на систему.

numFFT = 512;        % number of FFT points
subbandSize = 20;    % must be > 1 
numSubbands = 10;    % numSubbands*subbandSize <= numFFT
subbandOffset = 156; % numFFT/2-subbandSize*numSubbands/2 for band center

% Dolph-Chebyshev window design parameters
filterLen = 43;      % similar to cyclic prefix length
slobeAtten = 40;     % side-lobe attenuation, dB

bitsPerSubCarrier = 4;   % 2: 4QAM, 4: 16QAM, 6: 64QAM, 8: 256QAM
snrdB = 15;              % SNR in dB

Универсальная фильтруемая модуляция с несколькими несущими

UFMC рассматривается как обобщение модуляций Filtered OFDM и FBMC (Multi-несущая банка фильтров). Вся полоса фильтруется в отфильтрованном OFDM, а отдельные поднесущие фильтруются в FBMC, в то время как группы поднесущих (поддиапазоны) фильтруются в UFMC.

Эта группировка поднесущих позволяет уменьшить длину фильтра (по сравнению с FBMC). Кроме того, UFMC по-прежнему может использовать QAM, поскольку сохраняет комплексную ортогональность (при сравнении с FBMC), которая работает с существующими схемами MIMO.

Полная полоса поднесущих (N) разделена на поддиапазоны. Каждый поддиапазон имеет фиксированное количество поднесущих, и не все поддиапазоны необходимо использовать для данной передачи. Вычисляется N-pt IFFT для каждого поддиапазона, вставляя нули для нераспределенных несущих. Каждый поддиапазон фильтруется фильтром длины L, и отклики от различных поддиапазонов суммируются. Фильтрация выполняется для уменьшения внеполосных спектральных излучений. Могут применяться различные фильтры для каждого поддиапазона, однако в этом примере один и тот же фильтр используется для каждого поддиапазона. Для фильтрации выхода IFFT по поддиапазону [1] используется окно Чебышева с параметризованным затуханием боковых лепестков.

Обработка на передающем конце показана на следующей диаграмме.

% Design window with specified attenuation
prototypeFilter = chebwin(filterLen, slobeAtten);

% Transmit-end processing
%  Initialize arrays
inpData = zeros(bitsPerSubCarrier*subbandSize, numSubbands);
txSig = complex(zeros(numFFT+filterLen-1, 1));

hFig = figure;
axis([-0.5 0.5 -100 20]);
hold on; 
grid on

xlabel('Normalized frequency');
ylabel('PSD (dBW/Hz)')
title(['UFMC, ' num2str(numSubbands) ' Subbands, '  ...
    num2str(subbandSize) ' Subcarriers each'])

%  Loop over each subband
for bandIdx = 1:numSubbands

    bitsIn = randi([0 1], bitsPerSubCarrier*subbandSize, 1);
    % QAM Symbol mapper
    symbolsIn = qammod(bitsIn, 2^bitsPerSubCarrier, 'InputType', 'bit', ...
    'UnitAveragePower', true);
    inpData(:,bandIdx) = bitsIn; % log bits for comparison
    
    % Pack subband data into an OFDM symbol
    offset = subbandOffset+(bandIdx-1)*subbandSize; 
    symbolsInOFDM = [zeros(offset,1); symbolsIn; ...
                     zeros(numFFT-offset-subbandSize, 1)];
    ifftOut = ifft(ifftshift(symbolsInOFDM));
    
    % Filter for each subband is shifted in frequency
    bandFilter = prototypeFilter.*exp( 1i*2*pi*(0:filterLen-1)'/numFFT* ...
                 ((bandIdx-1/2)*subbandSize+0.5+subbandOffset+numFFT/2) );    
    filterOut = conv(bandFilter,ifftOut);
    
    % Plot power spectral density (PSD) per subband
    [psd,f] = periodogram(filterOut, rectwin(length(filterOut)), ...
                          numFFT*2, 1, 'centered'); 
    plot(f,10*log10(psd)); 
    
    % Sum the filtered subband responses to form the aggregate transmit
    % signal
    txSig = txSig + filterOut;     
end
set(hFig, 'Position', figposition([20 50 25 30]));
hold off;

Figure contains an axes. The axes with title UFMC, 10 Subbands, 20 Subcarriers each contains 10 objects of type line.

% Compute peak-to-average-power ratio (PAPR)
PAPR = comm.CCDF('PAPROutputPort', true, 'PowerUnits', 'dBW');
[~,~,paprUFMC] = PAPR(txSig);
disp(['Peak-to-Average-Power-Ratio (PAPR) for UFMC = ' num2str(paprUFMC) ' dB']);
Peak-to-Average-Power-Ratio (PAPR) for UFMC = 8.2379 dB

Модуляция OFDM с соответствующими параметрами

Для сравнения рассмотрим существующую методику модуляции OFDM, используя полный занятый диапазон, однако, без циклического префикса.

symbolsIn = qammod(inpData(:), 2^bitsPerSubCarrier, 'InputType', 'bit', ...
    'UnitAveragePower', true);

% Process all sub-bands together
offset = subbandOffset; 
symbolsInOFDM = [zeros(offset, 1); symbolsIn; ...
                 zeros(numFFT-offset-subbandSize*numSubbands, 1)];
ifftOut = sqrt(numFFT).*ifft(ifftshift(symbolsInOFDM));

% Plot power spectral density (PSD) over all subcarriers
[psd,f] = periodogram(ifftOut, rectwin(length(ifftOut)), numFFT*2, ...
                      1, 'centered'); 
hFig1 = figure; 
plot(f,10*log10(psd)); 
grid on
axis([-0.5 0.5 -100 20]);
xlabel('Normalized frequency'); 
ylabel('PSD (dBW/Hz)')
title(['OFDM, ' num2str(numSubbands*subbandSize) ' Subcarriers'])
set(hFig1, 'Position', figposition([46 50 25 30]));

Figure contains an axes. The axes with title OFDM, 200 Subcarriers contains an object of type line.

% Compute peak-to-average-power ratio (PAPR)
PAPR2 = comm.CCDF('PAPROutputPort', true, 'PowerUnits', 'dBW');
[~,~,paprOFDM] = PAPR2(ifftOut);
disp(['Peak-to-Average-Power-Ratio (PAPR) for OFDM = ' num2str(paprOFDM) ' dB']);
Peak-to-Average-Power-Ratio (PAPR) for OFDM = 8.8843 dB

Сравнивая графики спектральных плотностей для схем OFDM и UFMC, UFMC имеет более низкие боковые лепестки. Это позволяет увеличить использование выделенного спектра, что приводит к повышению спектральной эффективности. UFMC также показывает несколько лучший PAPR.

Приемник UFMC без канала

Следующий пример подчеркивает базовую обработку приема UFMC, которая, подобно OFDM, основана на FFT. Фильтрация поддиапазонов расширяет временное окно приема до следующей длины мощности двух для операции БПФ. Каждое альтернативное значение частоты соответствует основному лепестку поднесущей. В типичных сценариях выравнивание по поднесущим используется для выравнивания эффекта соединения канала и фильтрации поддиапазонов.

В этом примере выравнивается только фильтр поддиапазонов, поскольку не моделируются эффекты канала. Шум добавляется к принятому сигналу для достижения требуемого SNR.

% Add WGN
rxSig = awgn(txSig, snrdB, 'measured');

Обработка на стороне приема показана на следующей диаграмме.

% Pad receive vector to twice the FFT Length (note use of txSig as input)
%   No windowing or additional filtering adopted
yRxPadded = [rxSig; zeros(2*numFFT-numel(txSig),1)];

% Perform FFT and downsample by 2
RxSymbols2x = fftshift(fft(yRxPadded));
RxSymbols = RxSymbols2x(1:2:end);

% Select data subcarriers
dataRxSymbols = RxSymbols(subbandOffset+(1:numSubbands*subbandSize));

% Plot received symbols constellation
constDiagRx = comm.ConstellationDiagram('ShowReferenceConstellation', ...
    false, 'Position', figposition([20 15 25 30]), ...
    'Title', 'UFMC Pre-Equalization Symbols', ...
    'Name', 'UFMC Reception', ...
    'XLimits', [-150 150], 'YLimits', [-150 150]);
constDiagRx(dataRxSymbols);

Figure UFMC Reception contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title UFMC Pre-Equalization Symbols contains an object of type line. This object represents Channel 1.

% Use zero-forcing equalizer after OFDM demodulation
rxf = [prototypeFilter.*exp(1i*2*pi*0.5*(0:filterLen-1)'/numFFT); ...
       zeros(numFFT-filterLen,1)];
prototypeFilterFreq = fftshift(fft(rxf));
prototypeFilterInv = 1./prototypeFilterFreq(numFFT/2-subbandSize/2+(1:subbandSize));

% Equalize per subband - undo the filter distortion
dataRxSymbolsMat = reshape(dataRxSymbols,subbandSize,numSubbands);
EqualizedRxSymbolsMat = bsxfun(@times,dataRxSymbolsMat,prototypeFilterInv);
EqualizedRxSymbols = EqualizedRxSymbolsMat(:);

% Plot equalized symbols constellation
constDiagEq = comm.ConstellationDiagram('ShowReferenceConstellation', ...
    false, 'Position', figposition([46 15 25 30]), ...
    'Title', 'UFMC Equalized Symbols', ...
    'Name', 'UFMC Equalization');
constDiagEq(EqualizedRxSymbols);

Figure UFMC Equalization contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title UFMC Equalized Symbols contains an object of type line. This object represents Channel 1.

% BER computation
BER = comm.ErrorRate;

% Perform hard decision and measure errors
rxBits = qamdemod(EqualizedRxSymbols, 2^bitsPerSubCarrier, 'OutputType', 'bit', ...
    'UnitAveragePower', true);
ber = BER(inpData(:), rxBits);

disp(['UFMC Reception, BER = ' num2str(ber(1)) ' at SNR = ' ...
    num2str(snrdB) ' dB']);
UFMC Reception, BER = 0 at SNR = 15 dB
% Restore RNG state
rng(s);

Заключение и дальнейшие исследования

В примере представлены основные характеристики схемы модуляции UFMC как на передающем, так и на приемном концах системы связи. Изучите различные значения системных параметров для количества поддиапазонов, количества поднесущих на поддиапазон, длины фильтра, ослабления боковых лепестков и SNR.

Пример, описывающий схему модуляции блока фильтров с множеством несущих (FBMC), приведен в разделе FBMC и OFDM Modulation. Пример модуляции F-OFDM и OFDM описывает схему модуляции Filtered-OFDM.

UFMC считается выгодным по сравнению с OFDM, предлагая более высокую спектральную эффективность. Фильтрация поддиапазонов имеет преимущество уменьшения защитных элементов между поддиапазонами, а также уменьшения длины фильтра, что делает эту схему привлекательной для коротких пакетов. Последнее свойство также делает его привлекательным по сравнению с FBMC, который страдает от гораздо большей длины фильтра.

Избранная библиография

  1. Schaich, F., Wild, T., Chen, Y., «Waveform Contenders for 5G - Пригодность для передачи коротких пакетов и с низкой задержкой», Vehicular Technology Conference, pp. 1-5, 2014.

  2. Wild, T., Schaich, F., Chen Y., «5G air interface design based on Universal Filtered (UF-) OFDM», Proc. of 19th International Conf. on Digital Signal Processing, pp. 699-704, 2014.