Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

マルチバンド信号の生成

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

はじめに

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

システム設定

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

MultibandCombiner System object™ は、キャリア アグリゲーションに必要なタスクを実行します。入力信号のサンプル レートが十分に高くないと、目的のキャリア アグリゲーションを実現するための周波数シフト後に元の信号の周波数成分が歪みます。OutputSampleRateSource プロパティを "Auto" に設定すると、出力サンプル レートが自動的に計算されます。また、結果として得られる信号のサンプル レートの十分な高さを確保して、エイリアシングを回避することが必要な場合は、2 つの信号を内挿するようにオブジェクトが構成されます。System object の info メソッドは出力信号のサンプル レートを示します。内挿後、オブジェクトは指定された周波数シフトを信号に適用し、それらを 1 つの信号に結合します。アルゴリズム処理の詳細については、comm.MultibandCombinerのリファレンス ページを参照してください。

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

nFrames = 10; % Number of data frames
M = 4;        % Modulation order (QPSK modulation)
Fs1 = 60e3;   % Input sample rate

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

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

2 つのマルチバンド コンバイナー オブジェクトを作成します。一方は帯域内連続アグリゲーション用に指定された周波数オフセットをもち、他方は帯域内非連続アグリゲーション用に指定された周波数オフセットをもちます。

sigCombinerCB = comm.MultibandCombiner( ...
    InputSampleRate=Fs1, ...
    FrequencyOffsets=[-30e3, 30e3], ...
    OutputSampleRateSource="Auto");
Fs2 = info(sigCombinerCB).OutputSampleRate;

sigCombinerNCB = comm.MultibandCombiner( ...
    InputSampleRate=Fs1, ...
    FrequencyOffsets=[-60e3, 60e3],OutputSampleRateSource="Auto");
Fs3 = info(sigCombinerNCB).OutputSampleRate;

個別のスペクトル アナライザーのスコープを作成して、ベースバンド信号、帯域内連続信号、および帯域内非連続信号を表示します。

scopeSF = 0.7; % Scale factor for scope position
spectrumBB = spectrumAnalyzer( ...
    Name="Baseband Signals", ...
    NumInputPorts=2, ...
    SampleRate=60e3, ...
    ShowLegend=true, ...
    ChannelNames={'QPSK Signal','GMSK Signal'});
spectrumBB.Position = scopeSF * spectrumBB.Position;
spectrumBB.Position(1) = spectrumBB.Position(1) - ...
    spectrumBB.Position(3);

spectrumCB = spectrumAnalyzer( ...
    Name="Intra-Band Contiguous", ...
    NumInputPorts=1, ...
    SampleRate=Fs2);
spectrumCB.Position = scopeSF * spectrumCB.Position;

spectrumNCB = spectrumAnalyzer( ...
    Name="Intra-Band Non-Contiguous", ...
    NumInputPorts=1, ...
    SampleRate=Fs3);
spectrumNCB.Position = scopeSF * spectrumNCB.Position;
spectrumNCB.Position(1) = spectrumNCB.Position(1) + ...
    spectrumNCB.Position(3);

for k = 1:nFrames
    
    % 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 baseband 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

可視化

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

まとめとその他の調査

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

  1. 帯域幅が異なるベースバンド信号を使用する。MultibandCombiner System object ではすべての入力信号が同じサンプル レートを持つ必要があるため、MultibandCombiner System object を使用する前に 1 つ以上の信号をリサンプリングして、すべてのベースバンド信号を同じレートにします。

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

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

さらに、キャリア アグリゲーションに必要な処理について学習し、場合によっては処理を変更するために、MultibandCombiner System object について調査します。また、OutputSampleRateSource を "Auto" に設定することにより出力サンプル レートを自動計算するようにオブジェクトを設定することに加え、MultibandCombiner オブジェクトを使用する前にベースバンド入力信号を目的のレートに内挿してから、OutputSampleRateSource を "Property" に、"OutputSampleRate" を "InputSampleRate" と等しい値に設定して、System object で内挿が行われないようにすることもできます。