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

Этот пример сравнивает Filter Bank Multi-Carrier (FBMC) с ортогональным частотным разнесением (OFDM) и подсвечивает преимущества схемы модуляции кандидата для систем связи пятого поколения (5G).

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

Введение

Этот пример сравнивает модуляцию Filter Bank Multi-Carrier (FBMC) с типовой модуляцией OFDM. FBMC предлагает способы преодоления известных ограничений OFDM пониженной спектральной эффективности и строгих требований синхронизации. Эти преимущества привели к тому, что он был рассмотрен как один из методов модуляции для 5G систем связи [2, 4].

Этот пример моделирует модуляцию Filter Bank Multi-Carrier с конфигурируемыми параметрами и подсвечивает базовую обработку сигнала при приеме и передаче.

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

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

Задайте системные параметры для примера. Можно изменить эти параметры, чтобы исследовать их влияние на систему.

numFFT = 1024;           % Number of FFT points
numGuards = 212;         % Guard bands on both sides
K = 4;                   % Overlapping symbols, one of 2, 3, or 4
numSymbols = 100;        % Simulation length in symbols
bitsPerSubCarrier = 2;   % 2: 4QAM, 4: 16QAM, 6: 64QAM, 8: 256QAM
snrdB = 12;              % SNR in dB

Фильтрация банковской модуляции с несколькими несущими

FBMC фильтрует каждый модулированный сигнал поднесущей в системе с несколькими несущими. Фильтр прототипа является фильтром, используемым для несущей нулевой частоты, и является базисом для других фильтров поднесущей. Фильтры характеризуются коэффициентом перекрытия К, который является количеством многосветных символов, которые перекрываются во временном интервале. Порядок фильтра прототипа может быть выбран как 2 * K-1, где K = 2, 3 или 4 и выбран согласно проекту PHYDYAS [1].

В текущей реализации FBMC используется расширение частоты. Он использует IFFT длины N * K с символами, перекрывающимися с задержкой N/2, где N - количество поднесущих. Этот выбор проекта облегчает анализ FBMC и сравнение с другими методами модуляции.

Для достижения полной емкости используется обработка смещенной квадратурной амплитудной модуляции (OQAM). Действительная и мнимая части комплексных данных символа не передаются одновременно, так как мнимая часть задерживается на половину длительности символа.

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

% Prototype filter
switch K
    case 2
        HkOneSided = sqrt(2)/2;
    case 3
        HkOneSided = [0.911438 0.411438];
    case 4
        HkOneSided = [0.971960 sqrt(2)/2 0.235147];
    otherwise
        return
end
% Build symmetric filter
Hk = [fliplr(HkOneSided) 1 HkOneSided];

% Transmit-end processing
%   Initialize arrays
L = numFFT-2*numGuards;  % Number of complex symbols per OFDM symbol
KF = K*numFFT;
KL = K*L;
dataSubCar = zeros(L, 1);
dataSubCarUp = zeros(KL, 1);

sumFBMCSpec = zeros(KF*2, 1);
sumOFDMSpec = zeros(numFFT*2, 1);

numBits = bitsPerSubCarrier*L/2;    % account for oversampling by 2
inpData = zeros(numBits, numSymbols);
rxBits = zeros(numBits, numSymbols);
txSigAll = complex(zeros(KF, numSymbols));
symBuf = complex(zeros(2*KF, 1));

% Loop over symbols
for symIdx = 1:numSymbols
    
    % Generate mapped symbol data
    inpData(:, symIdx) = randi([0 1], numBits, 1);
    modData = qammod(inpData(:, symIdx), 2^bitsPerSubCarrier, ...
        'InputType', 'Bit', 'UnitAveragePower', true);
    
    % OQAM Modulator: alternate real and imaginary parts
    if rem(symIdx,2)==1     % Odd symbols
        dataSubCar(1:2:L) = real(modData);
        dataSubCar(2:2:L) = 1i*imag(modData);
    else                    % Even symbols
        dataSubCar(1:2:L) = 1i*imag(modData);
        dataSubCar(2:2:L) = real(modData);
    end
    
    % Upsample by K, pad with guards, and filter with the prototype filter
    dataSubCarUp(1:K:end) = dataSubCar;
    dataBitsUpPad = [zeros(numGuards*K,1); dataSubCarUp; zeros(numGuards*K,1)];
    X1 = filter(Hk, 1, dataBitsUpPad);
    % Remove 1/2 filter length delay
    X = [X1(K:end); zeros(K-1,1)];
    
    % Compute IFFT of length KF for the transmitted symbol
    txSymb = fftshift(ifft(X));
    
    % Transmitted signal is a sum of the delayed real, imag symbols
    symBuf = [symBuf(numFFT/2+1:end); complex(zeros(numFFT/2,1))];
    symBuf(KF+(1:KF)) = symBuf(KF+(1:KF)) + txSymb;
    
    % Compute power spectral density (PSD)
    currSym = complex(symBuf(1:KF));
    [specFBMC, fFBMC] = periodogram(currSym, hann(KF, 'periodic'), KF*2, 1);
    sumFBMCSpec = sumFBMCSpec + specFBMC;
    
    % Store transmitted signals for all symbols
    txSigAll(:,symIdx) = currSym;
end

% Plot power spectral density
sumFBMCSpec = sumFBMCSpec/mean(sumFBMCSpec(1+K+2*numGuards*K:end-2*numGuards*K-K));
plot(fFBMC-0.5,10*log10(sumFBMCSpec));
grid on
axis([-0.5 0.5 -180 10]);
xlabel('Normalized frequency');
ylabel('PSD (dBW/Hz)')
title(['FBMC, K = ' num2str(K) ' overlapped symbols'])
set(gcf, 'Position', figposition([15 50 30 30]));

Figure contains an axes. The axes with title FBMC, K = 4 overlapped symbols contains an object of type line.

Спектральная плотность степени передающего сигнала FBMC строится, чтобы выделить низкие утечки вне полосы.

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

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

for symIdx = 1:numSymbols
    
    inpData2 = randi([0 1], bitsPerSubCarrier*L, 1);
    modData = qammod(inpData2, 2^bitsPerSubCarrier, ...
        'InputType', 'Bit', 'UnitAveragePower', true);
    
    symOFDM = [zeros(numGuards,1); modData; zeros(numGuards,1)];
    ifftOut = sqrt(numFFT).*ifft(ifftshift(symOFDM));
    
    [specOFDM,fOFDM] = periodogram(ifftOut, rectwin(length(ifftOut)), ...
        numFFT*2, 1, 'centered');
    sumOFDMSpec = sumOFDMSpec + specOFDM;
end

% Plot power spectral density (PSD) over all subcarriers
sumOFDMSpec = sumOFDMSpec/mean(sumOFDMSpec(1+2*numGuards:end-2*numGuards));
figure;
plot(fOFDM,10*log10(sumOFDMSpec));
grid on
axis([-0.5 0.5 -180 10]);
xlabel('Normalized frequency');
ylabel('PSD (dBW/Hz)')
title(['OFDM, numFFT = ' num2str(numFFT)])
set(gcf, 'Position', figposition([46 50 30 30]));

Figure contains an axes. The axes with title OFDM, numFFT = 1024 contains an object of type line.

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

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

Пример реализует базовый демодулятор FBMC и измеряет BER для выбранного строения в отсутствие канала. Обработка включает согласованную фильтрацию с последующим разделением OQAM для формирования принятых символов данных. Они преобразуются в биты, и определяется результирующая вероятность битовой ошибки. В присутствии канала линейные многопоточные эквалайзеры могут использоваться, чтобы смягчить эффекты частотно-селективного затухания.

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

BER = comm.ErrorRate;

% Process symbol-wise
for symIdx = 1:numSymbols
    rxSig = txSigAll(:, symIdx);
    
    % Add WGN
    rxNsig = awgn(rxSig, snrdB, 'measured');
    
    % Perform FFT
    rxf = fft(fftshift(rxNsig));
    
    % Matched filtering with prototype filter
    rxfmf = filter(Hk, 1, rxf);
    % Remove K-1 delay elements
    rxfmf = [rxfmf(K:end); zeros(K-1,1)];
    % Remove guards
    rxfmfg = rxfmf(numGuards*K+1:end-numGuards*K);
    
    % OQAM post-processing
    %  Downsample by 2K, extract real and imaginary parts
    if rem(symIdx, 2)
        % Imaginary part is K samples after real one
        r1 = real(rxfmfg(1:2*K:end));
        r2 = imag(rxfmfg(K+1:2*K:end));
        rcomb = complex(r1, r2);
    else
        % Real part is K samples after imaginary one
        r1 = imag(rxfmfg(1:2*K:end));
        r2 = real(rxfmfg(K+1:2*K:end));
        rcomb = complex(r2, r1);
    end
    %  Normalize by the upsampling factor
    rcomb = (1/K)*rcomb;
    
    % De-mapper: Perform hard decision
    rxBits(:, symIdx) = qamdemod(rcomb, 2^bitsPerSubCarrier, ...
        'OutputType', 'bit', 'UnitAveragePower', true);
end

% Measure BER with appropriate delay
BER.ReceiveDelay = bitsPerSubCarrier*KL;
ber = BER(inpData(:), rxBits(:));

% Display Bit error
disp(['FBMC Reception for K = ' num2str(K) ', BER = ' num2str(ber(1)) ...
    ' at SNR = ' num2str(snrdB) ' dB'])
FBMC Reception for K = 4, BER = 0 at SNR = 12 dB
% Restore RNG state
rng(s);

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

Пример представляет основные характеристики передачи и приема схемы модуляции FBMC. Исследуйте этот пример, изменив количество перекрывающихся символов, длины БПФ, длины защитной полосы и значения ОСШ.

См. UFMC vs. OFDM Modulation для примера, который описывает схему универсальной фильтрованной многосветной модуляции (UFMC).

FBMC считается выгодным по сравнению с OFDM, предлагая более высокую спектральную эффективность. Из-за фильтрации по поднесущим она вызывает большую задержку фильтра (по сравнению с UFMC), а также требует обработки OQAM, которая требует модификаций для обработки MIMO.

Дальнейшие исследования должны включать изменения для обработки MIMO с более полной обработкой на канальном уровне, включая оценку канала и эквализацию [2].

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

  1. «Физический слой FBMC: праймер», PHYDYAS EU FP7 Project 2010. http://www.ict-phydyas.org

  2. Schellman, M., Zhao, Z., Lin, H., Siohan, P., Rajatheva, N., Luecken, V., Ishaque, A., «радиоинтерфейс на базе FBMC для 5G мобильного: Вызовы и предлагаемые решения», CROROWRONCCOM OM 2014, PP P.

  3. Farhang-Boroujeny, B., «OFDM versus filter bank multicarrier», IEEE ® Signal Proc. Mag., vol. 28, pp. 92-112, May 2011.

  4. Чудо, G., Kasparick, M., Дикий, T., Schaich, F., Еджиэн Чен, Дрыянский, M., Буцзковский, M., Pietrzyk, S., Michailow, N., Matthe, M., Гэспэр, я., Mendes, L., Festag, A., Fettweis, G., Дор, J.-B., Cassiau, N., Ktenas, D., Айсберг, V., Eged, B., Vago, P., «5GNOW: Промежуточная структура системы координат и концепции приемопередатчика», семинары Globecom, стр 565-570, 2014.

Для просмотра документации необходимо авторизоваться на сайте