このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
UFMC と OFDM 変調
この例では、ユニバーサル フィルター マルチキャリア (UFMC) と直交周波数分割多重方式 (OFDM) を比較し、第 5 世代 (5G) 通信システム用の変調方式の候補の利点について説明します。
UFMC は、3GPP Release 14 の間は 3GPP RAN 研究段階 I の OFDM の代替波形として考えられていました。
はじめに
OFDM は、マルチキャリア変調方式であり、LTE や Wi-Fi® など 4G 通信システムで幅広く採用されてきました。チャネル遅延に対するロバスト性、シングルタップ周波数領域イコライズ、効率的な実装など多くの利点があります。頻繁に強調されることがない点として、高いサイドローブによるスペクトルの使用率の損失や、厳密な同期要件などのコストが挙げられます。このため、5G 通信システムでこれらの要因のいくつかを克服するために新しい変調方式が検討されるようになりました。
たとえば、20 MHz のチャネル帯域幅の LTE システムで、12 サブキャリアのそれぞれに 100 リソース ブロックを使用し、個々のサブキャリアに 15 kHz の間隔があるとします。これは、割り当てられたスペクトルの 18 MHz しか利用しておらず、10% の損失につながっています。また、OFDM シンボルあたり 144 または 160 サンプルのサイクリック プレフィックスが、別に最大 7% の効率の損失を生じ、全体では有効なスペクトル効率の 17% を損失しています。
5G システムの現在定義されている ITU 要件では、アプリケーションにより高いデータ転送速度、より低いレイテンシ、およびより効果的なスペクトル効率が要求されています。この例では、ユニバーサル フィルター マルチキャリア (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 は (FBMC との比較時に) 既存の MIMO 方式で機能する複素数直交性を保持するため、QAM を引き続き使用できます。
サブキャリア (N) の全帯域は、サブバンドに分けられます。各サブバンドには固定の数のサブキャリアがあり、特定の送信にすべてのサブバンドが必要になることはありません。各サブバンドの N-pt IFFT が計算され、割り当てられない搬送波にはゼロが挿入されます。各サブバンドは長さ 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;
% Compute peak-to-average-power ratio (PAPR) pm = powermeter(Measurement="Peak-to-average power ratio",ComputeCCDF=true); paprUFMC = pm(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]));
% Compute peak-to-average-power ratio (PAPR) pm = powermeter(Measurement="Peak-to-average power ratio",ComputeCCDF=true); paprOFDM = pm(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 受信機
次の例では、OFDM のように、FFT ベースの基本的な UFMC の受信処理について示します。サブバンドのフィルター処理により、受信時間のウィンドウが FFT 演算に対して 2 のべき乗の次の長さへ拡張されます。すべての代替の周波数の値は、サブキャリアのメインローブに対応します。通常のシナリオでは、チャネルとサブバンド フィルター処理の複合効果のイコライズに、サブキャリアごとのイコライズが使用されます。
この例では、モデル化されるチャネル効果がないため、サブバンド フィルターのみがイコライズされます。目的の SNR を達成するために受信した信号にノイズが追加されます。
% 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);
% 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);
% 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 変調方式の基本的な送信および受信特性を示しました。サブバンドの数、サブバンドごとのサブキャリアの数、フィルター長、サイドローブの減衰、および SNR について、さまざまなシステム パラメーター値を使用して調査してください。
フィルター バンク マルチキャリア (FBMC) 変調方式を説明する例については、FBMC と OFDM 変調を参照してください。F-OFDM と OFDM 変調の例では、フィルター処理された OFDM 変調方式を説明しています。
UFMC は、より高いスペクトル効率を提供するため OFDM と比較して有利であると考えられています。サブバンド フィルター処理はサブバンド間のガードを削減し、さらにフィルター長を短縮する利点があります。このため、この方式は短いバーストに適しています。また、後者の特性は、非常に長いフィルター長に課題のある FBMC と比較して有利です。
参考文献
Schaich, F., Wild, T., Chen, Y., "Waveform Contenders for 5G - Suitability for Short Packet and Low Latency Transmissions", Vehicular Technology Conference, pp. 1-5, 2014.
Wild, T., Schaich, F., Chen Y., "5G air interface design based on Universal Filtered (UF-)OFDM ", Proc. of 19th International Conf. on Digital Signal Processing, pp. 699-704, 2014.