Main Content

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

gsmDownlinkConfig

GSM ダウンリンク TDMA フレーム構成オブジェクトの作成

R2019b 以降

説明

gsmDownlinkConfig オブジェクトは GSM ダウンリンク TDMA フレーム構成オブジェクトです。gsmDownlinkConfig オブジェクトを使用して、GSM ダウンリンク波形を作成します。

作成

説明

cfggsmdl = gsmDownlinkConfig は GSM ダウンリンク TDMA フレーム構成オブジェクトを作成します。

cfggsmdl = gsmDownlinkConfig(sps)SamplesPerSymbol プロパティを sps に設定します。

cfggsmdl = gsmDownlinkConfig(___,Name,Value) は、前述の構文のいずれかを使用して、1 つ以上の名前と値のペアの引数を設定します。たとえば、'RiseTime',4 は、バースト立ち上がり時間を 4 シンボルに設定します。各プロパティを引用符で囲みます。名前と値のペアの引数は、他のすべての入力引数の後で指定します。

プロパティ

すべて展開する

シンボルあたりのサンプル数。4 の正の整数倍として指定します。

データ型: double

TDMA フレームのタイム スロット 0 ~ 7 のバースト タイプ。以下のいずれかのオプションを指定します。

  • 各値が "NB""FB""SB""Dummy"、または "Off" の 8 要素の行ベクトル — 各要素は、対応するタイム スロットのバースト タイプを指定します。

  • "NB" — 各タイム スロットでノーマル バーストを使用してデータを送信します。

  • "FB" — 各タイム スロットで周波数補正バーストを使用してデータを送信します。

  • "SB" — 各タイム スロットで時間同期バーストを使用してデータを送信します。

  • "Dummy" — 各タイム スロットでダミー バーストを使用してデータを送信します。

  • "Off" — 8 つのどのタイム スロットにもデータが含まれていません。

詳細については、GSM フレーム、タイム スロット、およびバーストを参照してください。

メモ

BurstType プロパティは列挙値です。コード生成を実行するには、コード生成およびGSM ダウンリンク波形の MEX 生成の例を参照してください。

例: ["NB" "AB" "AB" "NB" "Off" "NB" "AB" "Off"] は、タイム スロット 0、3、および 5 でノーマル バースト、タイム スロット 1、2、および 6 でアクセス バーストをそれぞれ使用し、タイム スロット 4 と 7 ではデータを送信しないフレームを構成します。

TDMA フレームのタイム スロット 0 ~ 7 におけるノーマル バーストのトレーニング シーケンス符号 (TSC)。以下のいずれかのオプションを指定します。

  • 範囲 [0, 7] にある整数の 8 要素の行ベクトル — 各要素は、対応するノーマル バースト タイム スロットの TSC 値を指定します。

  • 範囲 [0, 7] の整数 — 各ノーマル バースト タイム スロットの TSC 値を指定します。

詳細については、トレーニング シーケンス コード (TSC)を参照してください。

例: [5 7 0 0 0 0 0 0] は、タイム スロット 0 でトレーニング シーケンス 5、タイム スロット 1 でトレーニング シーケンス 7、タイム スロット 2 ~ 7 でトレーニング シーケンス 0 をそれぞれ使用するフレームを構成します。

依存関係

あるタイム スロットでこのプロパティを有効にするには、BurstType の対応する要素を "NB" に設定します。

データ型: double

TDMA フレームのタイム スロット 0 ~ 7 のパワーの減衰 (dB 単位)。以下のいずれかのオプションを指定します。

  • 非負の整数の 8 要素の行ベクトル — 各要素は、対応するタイム スロットの減衰パワー値を指定します。

  • 非負の整数 — 各タイム スロットのパワー減衰値を指定します。

例: [0 0 0 0 0 0 0 3] は、タイム スロット 0 ~ 6 のバースト信号強度に 0 dB の減衰を適用し、タイム スロット 7 のバースト信号強度に 3 dB の減衰を適用するフレームを構成します。

データ型: double

シンボル単位のバースト立ち上がり時間。範囲 [1/SamplesPerSymbol, 29] の正のスカラーとして指定します。ここで、増分解像度は 1/SamplesPerSymbol です。合計立ち上がりおよび立ち下がり期間 (RiseTime - RiseDelay + FallTime + FallDelay) は 9.25 シンボル未満でなければなりません。バーストの立ち上がりエッジの特徴的形状は正弦波です。

詳細については、GSM フレーム、タイム スロット、およびバーストを参照してください。

データ型: double

シンボル単位のバースト立ち上がり遅延。範囲 [–10, 10] の正のスカラーとして指定します。ここで、増分解像度は 1/SamplesPerSymbol です。合計立ち上がりおよび立ち下がり期間 (RiseTime - RiseDelay + FallTime + FallDelay) は 9.25 シンボル未満でなければなりません。バースト立ち上がり遅延は、バーストの有効部分の開始時を基準にして測定されます。詳細については、GSM フレーム、タイム スロット、およびバーストを参照してください。

バースト立ち上がり遅延が 0 の場合、バーストの有効部分の開始時にバーストが最大限の振幅に到達します。バースト立ち上がり遅延が正の場合、有効部分の開始の RiseDelay シンボル後にバーストが最大限の振幅に到達します。バースト立ち上がり遅延が負の場合、有効部分の開始の RiseDelay シンボル前にバーストが最大限の振幅に到達します。

データ型: double

シンボル単位のバースト立ち下がり時間。範囲 [1/SamplesPerSymbol, 29] の正のスカラーとして指定します。ここで、増分解像度は 1/SamplesPerSymbol です。合計立ち上がりおよび立ち下がり期間 (RiseTime - RiseDelay + FallTime + FallDelay) は 9.25 シンボル未満でなければなりません。バーストの立ち下がりエッジの特徴的形状は正弦波です。

詳細については、GSM フレーム、タイム スロット、およびバーストを参照してください。

データ型: double

シンボル単位のバースト立ち下がり遅延。範囲 [–10, 10] の正のスカラーとして指定します。ここで、増分解像度は 1/SamplesPerSymbol です。合計立ち上がりおよび立ち下がり期間 (RiseTime - RiseDelay + FallTime + FallDelay) は 9.25 シンボル未満でなければなりません。バースト立ち下がり遅延は、バーストの有効部分の終了時を基準にして測定されます。詳細については、GSM フレーム、タイム スロット、およびバーストを参照してください。

バースト立ち下がり遅延が 0 の場合、バーストの有効部分の終了時にバーストが最大限の振幅から減少し始めます。バースト立ち下がり遅延が正の場合、有効部分の終了の FallDelay シンボル後にバーストが最大限の振幅から減少し始めます。バースト立ち下がり遅延が負の場合、有効部分の終了の FallDelay シンボル前にバーストが最大限の振幅から減少し始めます。

データ型: double

すべて折りたたむ

既定の設定を使用して GSM ダウンリンク TDMA フレーム構成オブジェクトを作成してから、1 つの TDMA フレームが含まれる GSM 波形を作成します。GSM TDMA フレームには 8 つのタイム スロットがあり、8.25 個のシンボル (約 30.46x10e-3 ms) の保護期間だけ互いに離れています。GSM 波形をプロットします。

既定の設定を使用して GSM ダウンリンク TDMA フレーム構成オブジェクトを作成します。

cfggsmdl = gsmDownlinkConfig
cfggsmdl = 
  gsmDownlinkConfig with properties:

           BurstType: [NB    NB    NB    NB    NB    NB    NB    NB]
    SamplesPerSymbol: 16
                 TSC: [0 1 2 3 4 5 6 7]
         Attenuation: [0 0 0 0 0 0 0 0]
            RiseTime: 2
           RiseDelay: 0
            FallTime: 2
           FallDelay: 0

関数 gsmInfo を使用して、構成された gsmDownlinkConfig オブジェクトに関する情報を表示します。プロットのタイムスケールの計算に使用するために、サンプルレートを変数 Rs に割り当てます。

wfInfo = gsmInfo(cfggsmdl)
wfInfo = struct with fields:
              SymbolRate: 2.7083e+05
              SampleRate: 4.3333e+06
    BandwidthTimeProduct: 0.3000
    BurstLengthInSymbols: 156.2500
       NumBurstsPerFrame: 8
    BurstLengthInSamples: 2500
    FrameLengthInSamples: 20000

Rs = wfInfo.SampleRate;

関数 gsmFrame を使用して GSM 波形を作成し、GSM 波形をプロットします。

waveform = gsmFrame(cfggsmdl);

t = (0:length(waveform)-1)/Rs*1e3;
subplot(2,1,1)
plot(t,abs(waveform))
grid on
axis([0 5 0 1.2])
title('GSM Downlink Waveform - Amplitude')
xlabel('Time (ms)')
ylabel('Amplitude')
subplot(2,1,2)
plot(t,unwrap(angle(waveform)))
grid on
title('GSM Downlink Waveform - Phase')
xlabel('Time (ms)')
ylabel('Phase (rad)')

Figure contains 2 axes objects. Axes object 1 with title GSM Downlink Waveform - Amplitude, xlabel Time (ms), ylabel Amplitude contains an object of type line. Axes object 2 with title GSM Downlink Waveform - Phase, xlabel Time (ms), ylabel Phase (rad) contains an object of type line.

シンボルあたり 8 サンプルを指定する GSM ダウンリンク TDMA フレーム構成オブジェクトを作成してから、1 つの GSM ダウンリンク TDMA フレームが含まれる GSM 波形を作成します。GSM TDMA フレームは 8 タイム スロットであり、8.25 シンボル (約 30.46x10e-3 ms) の保護期間だけ各タイム スロットが互いに離れています。GSM 波形をプロットします。

シンボルあたり 8 サンプルを指定して GSM ダウンリンク TDMA フレーム構成オブジェクトを作成します。

sps = 8;
cfggsmdl = gsmDownlinkConfig(sps)
cfggsmdl = 
  gsmDownlinkConfig with properties:

           BurstType: [NB    NB    NB    NB    NB    NB    NB    NB]
    SamplesPerSymbol: 8
                 TSC: [0 1 2 3 4 5 6 7]
         Attenuation: [0 0 0 0 0 0 0 0]
            RiseTime: 2
           RiseDelay: 0
            FallTime: 2
           FallDelay: 0

関数 gsmInfo を使用して、構成された gsmDownlinkConfig オブジェクトに関する情報を表示します。プロットのタイムスケールの計算に使用するために、サンプルレートを変数 Rs に割り当てます。

wfInfo = gsmInfo(cfggsmdl)
wfInfo = struct with fields:
              SymbolRate: 2.7083e+05
              SampleRate: 2.1667e+06
    BandwidthTimeProduct: 0.3000
    BurstLengthInSymbols: 156.2500
       NumBurstsPerFrame: 8
    BurstLengthInSamples: 1250
    FrameLengthInSamples: 10000

Rs = wfInfo.SampleRate;

関数 gsmFrame を使用して GSM 波形を作成し、GSM 波形をプロットします。

waveform = gsmFrame(cfggsmdl);

t = (0:length(waveform)-1)/Rs*1e3;
subplot(2,1,1)
plot(t,abs(waveform))
grid on
axis([0 5 0 1.2])
title('GSM Downlink Waveform - Amplitude')
xlabel('Time (ms)')
ylabel('Amplitude')
subplot(2,1,2)
plot(t,unwrap(angle(waveform)))
grid on
title('GSM Downlink Waveform - Phase')
xlabel('Time (ms)')
ylabel('Phase (rad)')

Figure contains 2 axes objects. Axes object 1 with title GSM Downlink Waveform - Amplitude, xlabel Time (ms), ylabel Amplitude contains an object of type line. Axes object 2 with title GSM Downlink Waveform - Phase, xlabel Time (ms), ylabel Phase (rad) contains an object of type line.

2 つの GSM ダウンリンク TDMA フレーム構成オブジェクトを作成します。最初の gsmDownlinkConfig オブジェクトでは既定の設定を指定し、2 番目のオブジェクトでは、タイム スロットあたりの信号強度を調整します。両方の構成の GSM 波形を生成します。これらの波形をプロットし、2 番目の波形のタイム スロットあたりの信号の減衰を確認します。

既定の設定を使用して GSM ダウンリンク TDMA フレーム構成オブジェクトを作成します。

cfggsmdl = gsmDownlinkConfig
cfggsmdl = 
  gsmDownlinkConfig with properties:

           BurstType: [NB    NB    NB    NB    NB    NB    NB    NB]
    SamplesPerSymbol: 16
                 TSC: [0 1 2 3 4 5 6 7]
         Attenuation: [0 0 0 0 0 0 0 0]
            RiseTime: 2
           RiseDelay: 0
            FallTime: 2
           FallDelay: 0

タイム スロットあたりの信号減衰設定を調整して、別の GSM ダウンリンク TDMA フレーム構成オブジェクトを作成します。

cfggsmdl2 = gsmDownlinkConfig('Attenuation',[1 0 3 4 5 6 4 2])
cfggsmdl2 = 
  gsmDownlinkConfig with properties:

           BurstType: [NB    NB    NB    NB    NB    NB    NB    NB]
    SamplesPerSymbol: 16
                 TSC: [0 1 2 3 4 5 6 7]
         Attenuation: [1 0 3 4 5 6 4 2]
            RiseTime: 2
           RiseDelay: 0
            FallTime: 2
           FallDelay: 0

関数 gsmInfo を使用して、構成された gsmDownlinkConfig オブジェクトに関する情報を表示します。プロットのタイムスケールの計算に使用するために、サンプルレートを変数 Rs に割り当てます。

wfInfo = gsmInfo(cfggsmdl)
wfInfo = struct with fields:
              SymbolRate: 2.7083e+05
              SampleRate: 4.3333e+06
    BandwidthTimeProduct: 0.3000
    BurstLengthInSymbols: 156.2500
       NumBurstsPerFrame: 8
    BurstLengthInSamples: 2500
    FrameLengthInSamples: 20000

Rs = wfInfo.SampleRate;

関数 gsmFrame を使用して、1 つの TDMA フレームを含む GSM 波形を作成します。GSM TDMA フレームには 8 つのタイム スロットがあり、8.25 シンボル (約 30.46x10e-3 ms) の保護期間だけ各タイム スロットが互いに離れています。各 GSM 波形をプロットします。

waveform = gsmFrame(cfggsmdl);
waveform2 = gsmFrame(cfggsmdl2);

t = (0:length(waveform)-1)/Rs*1e3;
subplot(2,1,1)
plot(t,[abs(waveform),abs(waveform2)])
grid on
axis([0 5 0 1.2])
title('GSM Downlink Waveform - Amplitude')
xlabel('Time (ms)')
ylabel('Amplitude')
subplot(2,1,2)
plot(t,[unwrap(angle(waveform)),unwrap(angle(waveform2))])
grid on
title('GSM Downlink Waveform - Phase')
xlabel('Time (ms)')
ylabel('Phase (rad)')

Figure contains 2 axes objects. Axes object 1 with title GSM Downlink Waveform - Amplitude, xlabel Time (ms), ylabel Amplitude contains 2 objects of type line. Axes object 2 with title GSM Downlink Waveform - Phase, xlabel Time (ms), ylabel Phase (rad) contains 2 objects of type line.

補助関数 createDownlinkWaveform から GSM 波形 MEX 関数を生成して実行します。補助関数 createDownlinkWaveform は GSM ダウンリンク波形を作成します。

MATLAB 関数の書き込み

createDownlinkWaveform.m を開いてコードを表示します。補助関数 createDownlinkWaveform は、gsmDownlinkConfig オブジェクトと関数 gsmInfo および関数 gsmFrame を使用して GSM ダウンリンク波形を生成します。

GSM 波形の生成

補助関数 createDownlinkWaveform を使用して、2 つの TDMA フレームを含む GSM 波形を作成し、その波形をプロットします。

[x,t] = createDownlinkWaveform(2);

figure
subplot(2,1,1);
plot(t,abs(x));
grid on;
title('GSM Downlink Waveform - Amplitude');
xlabel('Time (ms)');
ylabel('Amplitude')
subplot(2,1,2);
plot(t,unwrap(angle(x)));
grid on;
title('GSM Downlink Waveform - Phase');
xlabel('Time (ms)');
ylabel('Phase (rad)')

Figure contains 2 axes objects. Axes object 1 with title GSM Downlink Waveform - Amplitude, xlabel Time (ms), ylabel Amplitude contains an object of type line. Axes object 2 with title GSM Downlink Waveform - Phase, xlabel Time (ms), ylabel Phase (rad) contains an object of type line.

MEX 関数の生成

ビルド ターゲットを指定しない場合、コード生成は既定で MEX コード生成になります。既定では、codegen は生成された MEX 関数に createDownlinkWaveform_mex という名前を付けます。補助関数 createDownlinkWaveform から MEX 関数を生成し、その MEX 関数を実行して 2 つの TDMA フレームを作成します。

codegen createDownlinkWaveform -args 3
Code generation successful.

MEX 関数を使用した波形の生成

MEX 関数を実行し、結果をプロットします。波形はランダム データを使用して作成されるため、補助関数 generateDownlinkFrame または関数 createDownlinkWaveform_mex を実行するたびに位相のプロットは変化します。

[x,t] = createDownlinkWaveform_mex(2);

figure
subplot(2,1,1);
plot(t,abs(x));
grid on;
title('MEX - GSM Downlink Waveform - Amplitude');
xlabel('Time (ms)');
ylabel('Amplitude')
subplot(2,1,2);
plot(t,unwrap(angle(x)));
grid on;
title('MEX - GSM Downlink Waveform - Phase');
xlabel('Time (ms)');
ylabel('Phase (rad)')

Figure contains 2 axes objects. Axes object 1 with title MEX - GSM Downlink Waveform - Amplitude, xlabel Time (ms), ylabel Amplitude contains an object of type line. Axes object 2 with title MEX - GSM Downlink Waveform - Phase, xlabel Time (ms), ylabel Phase (rad) contains an object of type line.

MATLAB® Function ブロックと Communications Toolbox™ の関数を使用して、Simulink® で GSM 波形発生器をモデル化します。

GSM ダウンリンク波形の生成

MATLAB Function (Simulink) ブロックには gsmDownlinkWaveform 関数コードが含まれています。MATLAB Function ブロック内のコードは、gsmDownlinkConfig オブジェクトと関数 gsmFrame を使用して GSM 波形を作成します。

gsmDownlinkConfig オブジェクトは、シンボルあたり 16 サンプルと、次の表に示す GSM ダウンリンク TDMA フレームのタイム スロット構成を指定します。

$$ \begin{array}{|c|l|c|}
\hline\vphantom{\displaystyle\int}\mathbf{Timeslot}&\begin{array}{l}\mathbf{Burst\ Type}\end{array}&\mathbf{Attenuation}\\
\hline0&\begin{array}{l}\mathrm{Normal\ burst}\end{array}&\begin{array}{l}\mathrm{0\ dB}\end{array}\\
\hline1&\begin{array}{l}\mathrm{Frequency Correction\ burst}\end{array}&\begin{array}{l}\mathrm{0\ dB}\end{array}\\
\hline2&\begin{array}{l}\mathrm{Normal\ burst}\end{array}&\begin{array}{l}\mathrm{3\ dB}\end{array}\\
\hline3&\begin{array}{l}\mathrm{Synchronization\ burst}\end{array}&\begin{array}{l}\mathrm{0\ dB}\end{array}\\
\hline4&\begin{array}{l}\mathrm{No\ data}\end{array}&\begin{array}{l}\mathrm{0\ dB}\end{array}\\
\hline5&\begin{array}{l}\mathrm{Normal\ burst}\end{array}&\begin{array}{l}\mathrm{6\ dB}\end{array}\\
\hline6&\begin{array}{l}\mathrm{Dummy\ burst}\end{array}&\begin{array}{l}\mathrm{0\ dB}\end{array}\\
\hline7&\begin{array}{l}\mathrm{Normal\ burst}\end{array}&\begin{array}{l}\mathrm{3\ dB}\end{array}\\
\hline\end{array} $$

出力波形には、GMSK シンボルごとに 16 サンプルがあります。関数 gsmFrame は波形のサンプルを生成します。

モデルの検証

GSM 標準 3GPP TS 45.001 および 3GPP TS 45.002 に従って、gsmDownlinkWaveform 関数コードを含む MATLAB Function ブロックのサンプル時間は、1625e3/6 シンボル/秒の GSM シンボル レートに設定されます。関数 gsmInfo を使用して、現在の gsmDownlinkConfig オブジェクト設定を表示します。

wfInfo = 

  struct with fields:

              SymbolRate: 2.7083e+05
              SampleRate: 4.3333e+06
    BandwidthTimeProduct: 0.3000
    BurstLengthInSymbols: 156.2500
       NumBurstsPerFrame: 8
    BurstLengthInSamples: 2500
    FrameLengthInSamples: 20000

MATLAB Function (Simulink) ブロックのモデル サンプル時間を wfInfo.FrameLengthInSamples/wfInfo.SampleRate に設定します。[サンプル時間] パラメーターを表示するには、MATLAB Function ブロックを右クリックし、[ブロック パラメーター (Subsystem)] を選択することによって [ブロック パラメーター] ダイアログ ボックスを開きます。

シミュレーションを実行する前に、MATLAB Function ブロックのサンプルレートを設定しなければなりません。コールバック関数 PreLoadFcn および InitFcn は、gsmDownlinkConfig オブジェクトと wfInfo 構造体を作成して、MATLAB Function ブロックを構成します。コールバック関数を表示するには、[モデル化] タブの [設定] セクションで、[モデル設定][モデル プロパティ] を選択します。次に、[コールバック] タブで、[モデルのコールバック] ペイン内のコールバック関数 PreLoadFcn または InitFcn を選択します。

結果

シミュレーションを実行して、時間領域信号とスペクトログラムを表示します。

詳細

すべて展開する

参照

[1] 3GPP TS 45.001. "GSM/EDGE Physical layer on the radio path. General description." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] 3GPP TS 45.002. "GSM/EDGE Multiplexing and multiple access on the radio path." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[3] 3GPP TS 45.004. "GSM/EDGE Modulation." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

拡張機能

バージョン履歴

R2019b で導入