Этот пример сравнивает Мультинесущую набора фильтров (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, с помощью полной занятой полосы, однако, без циклического префикса.
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 и измеряет 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'])
FBMC Reception for K = 4, BER = 0 at SNR = 12 dB
% Restore RNG state
rng(s);
Пример представляет основную передачу, и получите характеристики схемы модуляции FBMC. Исследуйте этот пример путем изменения количества перекрывающихся символов, длин БПФ, длин защитной полосы и значений ОСШ.
Обратитесь к UFMC по сравнению с Модуляцией OFDM для примера, который описывает схему модуляции Универсальной фильтрованной мультинесущей (UFMC).
FBMC рассматривается выгодным по сравнению с OFDM путем продукта выше спектрального КПД. Из-за на фильтрацию поднесущей, это подвергается большей задержке фильтра (по сравнению с UFMC) и также требует обработки OQAM, которая требует модификаций для обработки MIMO.
Дальнейшие исследования должны включать модификации для обработки MIMO с большим количеством полной обработки уровня ссылки включая оценку канала и эквализацию [2].
"Физический уровень FBMC: краткая информация", проект 2010 PHYDYAS EU FP7. http://www.ict-phydyas.org
Шеллмен, M., Чжао, Z., Лин, H., Siohan, P., Раятева, N., Luecken, V., Ishaque, A., "основанный на FBMC воздух взаимодействует через интерфейс для мобильного 5G: Проблемы и предлагаемые решения", CROWNCOM 2014, стр 102-107.
Farhang-Boroujeny, B., "OFDM по сравнению с мультинесущей набора фильтров", IEEE® Signal Proc. Мэг., издание 28, стр 92-112, май 2011.
Чудо, 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.