Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

マルチバンド信号の生成

この例では、Communications Toolbox™ のコンポーネントを使用してマルチバンド信号を効率的に生成する方法を示します。

はじめに

より高いデータ転送速度を求めるモバイル用途の消費者需要の爆発的な増加により、伝送速度が高まってきています。ほとんどの新しい無線規格には、2 つ以上の搬送波を 1 つのデータ チャネルに結合することでデータ容量を高める手法が含まれています。これは、5G および LTE の用語ではキャリア アグリゲーション、Wi-Fi® の用語ではチャネル ボンディングと呼ばれます。次の図は、3 種類の異なるキャリア アグリゲーションを示しています。

システム設定

この例では、ベースバンド シミュレーションでキャリア アグリゲーションをモデル化する 1 つの手法を示します。2 つのベースバンド信号を生成します。1 つは QPSK 変調信号で、もう 1 つは GMSK 変調信号です。信号の占有帯域幅はそれぞれ 60 kHz です。

SignalAggregator System object™ は、キャリア アグリゲーションに必要なタスクを実行します。入力信号のサンプル レートが十分に高くないと、目的のキャリア アグリゲーションを実現するための周波数シフト後に元の信号の周波数成分が歪みます。InterpolationMode プロパティを 'Auto' に設定すると、2 つの信号を内挿することで、結果として得られる信号のサンプル レートが周波数成分が歪まない十分な高さになるようにオブジェクトが構成されます。内挿後、オブジェクトは指定された周波数シフトを信号に適用し、それらを 1 つの信号に結合します。次のブロック線図は SignalAggregator の処理を示しています。

システム シミュレーション

% Number of simulation iterations
nIter = 10;
% QPSK modulation
M = 4;
% Scale factor for scope position
scopeSF = 0.7;

qpskTxFilter = comm.RaisedCosineTransmitFilter('RolloffFactor', 0.3, ...
    'OutputSamplesPerSymbol', 2);

gmskMod = comm.GMSKModulator('BitInput', true', 'SamplesPerSymbol', 2);

% Frequency offset for intra band contiguous aggregation
sigCombinerCB = SignalAggregator('InterpolationMode', 'Auto', ...
    'FrequencyOffset', [30e3, 90e3], 'SampleRate', 60e3);

% Frequency offset for intra band non contiguous aggregation
sigCombinerNCB = SignalAggregator('InterpolationMode', 'Auto', ...
    'FrequencyOffset', [30e3, 150e3], 'SampleRate', 60e3);

spectrumBB = dsp.SpectrumAnalyzer('Name', 'Baseband Signals', ...
    'NumInputPorts', 2, ...
    'SampleRate', 60e3, 'Method', 'Filter bank', ...
    'AveragingMethod', 'Exponential', 'ShowLegend', true, ...
    'ChannelNames', {'QPSK Signal', 'GMSK Signal'});
spectrumBB.Position = scopeSF * spectrumBB.Position;
spectrumBB.Position(1) = spectrumBB.Position(1) - ...
    spectrumBB.Position(3);

spectrumCB = dsp.SpectrumAnalyzer('Name', 'Intra-Band Contiguous', ...
    'NumInputPorts', 1, ...
    'SampleRate', 240e3, 'Method', 'Filter bank', 'AveragingMethod', 'Exponential');
spectrumCB.Position = scopeSF * spectrumCB.Position;

spectrumNCB = dsp.SpectrumAnalyzer('Name', 'Intra-Band Non-Contiguous', ...
    'NumInputPorts', 1, ...
    'SampleRate', 360e3, 'Method', 'Filter bank', 'AveragingMethod', 'Exponential');
spectrumNCB.Position = scopeSF * spectrumNCB.Position;
spectrumNCB.Position(1) = spectrumNCB.Position(1) + ...
    spectrumNCB.Position(3);

for k=1:nIter

    % Generate QPSK signal
    data = randi([0, M-1], 200, 1);
    modSig = pskmod(data, M, pi/4, 'gray');
    qpskSignal = qpskTxFilter(modSig);

    % Generate GMSK signal
    data = randi([0, 1], 200, 1);
    gmskSignal = gmskMod(data);

    % Visualize the two signals
    spectrumBB(qpskSignal, gmskSignal);

    % Upsample, frequency shift and combine the two signals to model
    % intra band contiguous carrier aggregation
    combinedSignal = sigCombinerCB([qpskSignal, gmskSignal]);

    % Visualize the resulting signal
    spectrumCB(combinedSignal);

    % Upsample, frequency shift and combine the two signals to model
    % intra band non contiguous or inter band non contiguous carrier
    % aggregation
    combinedSignal = sigCombinerNCB([qpskSignal, gmskSignal]);

    % Visualize the resulting signal
    spectrumNCB(combinedSignal);
end

release(spectrumBB);
release(spectrumCB);
release(spectrumNCB);

可視化

帯域内連続アグリゲーションでは、それぞれ 60 kHz 幅の 2 つの連続する帯域を占有する 2 つの 60 kHz 幅の信号を基に、1 つの信号が生成されます。帯域内不連続アグリゲーションでは、2 つの信号が、不連続の帯域を占有します。これは、Intra-Band Non-Contiguous Spectrum Analyzer 内で信号スペクトル間のギャップにより示されます。帯域間不連続アグリゲーションも、信号の周波数シフトを適切に行うことで同様に実現できます。

まとめとその他の調査

この例は、ほとんどの新しい無線通信規格でデータ転送速度を高めるために使用されているキャリア アグリゲーションをモデル化する手法を示したものです。System object を使用して、必要な内挿、周波数シフト、信号結合の処理をカプセル化しています。さまざまな方法でさらに調査することができます。

  1. 帯域幅が異なるベースバンド信号を使用する

  2. 集約するベースバンド信号を 2 つより増やす

  3. 別のアグリゲーションの帯域と搬送波を使用して帯域間非連続アグリゲーションをモデル化する

さらに、キャリア アグリゲーションに必要な処理について学習し、場合によっては処理を変更するために、SignalAggregator System object について調査します。'Auto' InterpolationMode では、SignalAggregator System object は、目的のキャリア アグリゲーションを実現するための周波数シフト後に結果として得られる信号のサンプル レートが元の信号の周波数成分が歪まない十分な高さになるように 2 つの信号を内挿します。また、SignalAggregator オブジェクトを使用する前にベースバンド入力信号を目的のレートに内挿し、'None' InterpolationMode を使用して System object で内挿が行われないようにすることもできます。

付録

この例では、次の System object が使用されています。