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

Этот пример сравнивает Мультипоставщика услуг набора фильтров (FBMC) с Ортогональным мультиплексированием деления частоты (OFDM) и подсвечивает достоинства схемы модуляции кандидата Пятого поколения (5G) системы связи.

FBMC был рассмотрен как альтернативную форму волны к OFDM в 3GPP, ЗАПУСТИЛ фазу I исследования во время 3GPP Релиз 14.

Введение

Этот пример сравнивает модуляцию Мультипоставщика услуг набора фильтров (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 фильтрует каждую поднесущую модулируемый сигнал в системе мультипоставщика услуг. Прототипный фильтр является тем, используемым в нулевом поставщике услуг частоты, и является основанием для других фильтров поднесущей. Фильтры характеризуются перекрывающимся фактором, K, который является количеством символов мультипоставщика услуг, которые накладываются во временном интервале. Прототипный порядок фильтра может быть выбран как 2*K-1, где K = 2, 3, или 4 и выбран согласно проекту [1] PHYDYAS.

Текущая реализация FBMC использует распространение частоты. Это использует ОБПФ длины 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]));

Степень спектральная плотность сигнала передачи 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]));

Сравнивая графики спектральной плотности для схем OFDM и FBMC, FBMC имеет более низкие лепестки стороны. Это позволяет более высокое использование выделенного спектра, ведя к увеличенному спектральному КПД.

Получатель FBMC без канала

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

Обработку получать-конца показывают в следующей схеме.

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'])

% Restore RNG state
rng(s);
FBMC Reception for K = 4, BER = 0 at SNR = 12 dB

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

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

Обратитесь к UFMC по сравнению с Модуляцией OFDM для примера, который описывает схему модуляции Универсального фильтрованного мультипоставщика услуг (UFMC).

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

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

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

  1. "Физический уровень FBMC: краткая информация", проект 2010 PHYDYAS EU FP7. http://www.ict-phydyas.org

  2. Шеллмен, M., Чжао, Z., Лин, H., Siohan, P., Раятева, N., Luecken, V., Ishaque, A., "основанный на FBMC воздух взаимодействует через интерфейс для мобильного 5G: Проблемы и предлагаемые решения", CROWNCOM 2014, стр 102-107.

  3. Farhang-Boroujeny, B., "OFDM по сравнению с мультипоставщиком услуг набора фильтров", IEEE® Signal Proc. Мэг., издание 28, стр 92-112, май 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.