Модуляция UFMC и OFDM

Этот пример сравнивает Универсальную Фильтрованную Множественную Несущую (UFMC) с ортогональной Частотой Деление Мультиплексирования (OFDM) и подсвечивает достоинства схемы модуляции кандидата для систем связи Пятой Генерации (5G).

UFMC рассматривался как альтернативная форма волны OFDM в фазе I 3GPP исследования RAN во время 3GPP релиза 14.

Введение

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

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

С учетом требований ITU к 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 рассматривается как обобщение фильтрованных модуляций OFDM и FBMC (Filter Bank Multi-carrier). Вся полоса фильтруется в фильтрованном OFDM и отдельные поднесущие фильтруются в FBMC, в то время как группы поднесущих (поддиапазоны) фильтруются в UFMC.

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

Полная полоса поднесущих (N) разделена на поддиапазоны. Каждый поддиапазон имеет фиксированное количество поднесущих, и не все поддиапазоны должны использоваться для данной передачи. Вычисляется N-pt IFFT для каждого поддиапазона, вставляя нули для неотделенных несущих. Каждый поддиапазон фильтруется фильтром длины L, и отклики от различных поддиапазонов суммируются. Фильтрация проводится для уменьшения внеполосных спектральных выбросов. Могут применяться различные фильтры на поддиапазон, однако в этом примере для каждого поддиапазона используется один и тот же фильтр. Для фильтрации выходного сигнала ОБПФ по поддиапазону [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. Фильтрация поддиапазона расширяет временное окно приема до следующей степени двойки диапазонов для операции БПФ. Каждое значение альтернативной частоты соответствует основной доле поднесущей. В типичных сценариях эквализация по поднесущим используется для выравнивания эффекта соединения канала и фильтрации поддиапазона.

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

% 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 как на передающем, так и на приемном концах системы связи. Исследуйте различные значения системных параметров для количества поддиапазонов, количества поднесущих на поддиапазон, длины фильтра, ослабления боковых лепестков и ОСШ.

См. FBMC vs. OFDM Modulation для примера, который описывает схему модуляции Filter Bank Multi-Carrier (FBMC). Пример модуляции F-OFDM против OFDM описывает схему модуляции Filtered-OFDM.

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

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

  1. Schaich, F., Wild, T., Chen, Y., «Waveform Contenders for 5G - Patability for Short Packet and Low Latency Transmissions», Traffular Technology Conference, pp. 1-5, 2014.

  2. Wild, T., Schaich, F., Chen Y. «, 5G дизайн радиоинтерфейса на основе Universal Filtered (UF-) OFDM», Proc. of 19 International Conf. on Digital Signal Processing, pp. 699-704, 2014.