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-процентную потерю в возможном спектральном КПД.

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

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

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

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

% 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 по сравнению с Модуляцией OFDM для примера, который описывает схему модуляции Мультипоставщика услуг набора фильтров (FBMC). F-OFDM по сравнению с примером Модуляции OFDM описывает Фильтрованную-OFDM схему модуляции.

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

Выбранная библиография

  1. Schaich, F., Дикий, T., Чен, Y., "Претенденты формы волны на 5G - Пригодность для короткого Пакета и Низких Передач Задержки", Автомобильная Технологическая Конференция, стр 1-5, 2014.

  2. Дикий, T., Schaich, F., Чен И., "воздушный дизайн интерфейса 5G на основе Universal, Фильтрованной (UF-) OFDM", Proc. 19-й Международной Конференции по Цифровой обработке сигналов, стр 699-704, 2014.