Main Content

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

gsmFrame

GSM 波形の作成

R2019b 以降

説明

gsmWaveform = gsmFrame(gsmCfg) は、入力 GSM 構成オブジェクトに基づいて、1 つの TDMA フレームをもつ GSM 波形を作成します。送信データ バーストの暗号化ビット フィールドはランダム データで埋められます。詳細については、GSM フレーム、タイム スロット、およびバーストを参照してください。

gsmWaveform = gsmFrame(gsmCfg,numFrames) は、同じ構成の numFrames 個の TDMA フレームをもつ GSM 波形を作成します。各フレームで、送信データ バーストの暗号化ビット フィールドはランダム データで埋められます。詳細については、GSM フレーム、タイム スロット、およびバーストを参照してください。

すべて折りたたむ

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

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

cfggsmul = gsmUplinkConfig
cfggsmul = 
  gsmUplinkConfig 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 を使用して、構成された gsmUplinkConfig オブジェクトに関する情報を表示します。プロットのタイムスケールの計算に使用するために、サンプルレートを変数 Rs に割り当てます。

wfInfo = gsmInfo(cfggsmul)
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(cfggsmul);

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 Uplink Waveform - Amplitude')
xlabel('Time (ms)')
ylabel('Amplitude')
subplot(2,1,2)
plot(t,unwrap(angle(waveform)))
grid on
title('GSM Uplink Waveform - Phase')
xlabel('Time (ms)')
ylabel('Phase (rad)')

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

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

GSM アップリンク TDMA フレーム構成オブジェクトを作成します。各フレームの最後を識別できるように、最後のタイム スロットに 3 dB の減衰を指定します。

cfggsmul = gsmUplinkConfig('Attenuation',[0 0 0 0 0 0 0 3])
cfggsmul = 
  gsmUplinkConfig 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 3]
            RiseTime: 2
           RiseDelay: 0
            FallTime: 2
           FallDelay: 0

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

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

spf = wfInfo.FrameLengthInSamples;

関数 gsmFrame を使用して GSM 波形を作成し、GSM 波形をプロットします。各フレームの最後のタイム スロットは、そのフレームの他のタイム スロットよりも 3 dB 小さくなります。

numFrames = 5;
waveform = gsmFrame(cfggsmul,numFrames);

t = 8*(0:length(waveform)-1)/spf;

numTS = 8*numFrames;
subplot(2,1,1)
plot(t,abs(waveform))
grid on
axis([0 numTS 0 1.2])
title('GSM Uplink Waveform - Amplitude')
xlabel('Time Slots')
ylabel('Amplitude')
subplot(2,1,2)
plot(t,unwrap(angle(waveform)))
grid on
title('GSM Uplink Waveform - Phase')
xlabel('Time Slots')
ylabel('Phase (rad)')

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

既定の設定を使用して 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.

入力引数

すべて折りたたむ

GSM 構成。gsmUplinkConfig または gsmDownlinkConfig オブジェクトとして指定します。

波形の TDMA フレームの数。正の整数として指定します。

データ型: double

出力引数

すべて折りたたむ

出力された時間領域の波形。長さが Ns の複素数値列ベクトルとして返されます。ここで、Ns は時間領域のサンプル数を表します。関数は、複素同相直交 (IQ) サンプルの形式で、この波形を生成します。

詳細

すべて折りたたむ

GSM フレーム、タイム スロット、およびバースト

GSM の送信は TDMA フレームで構成されています。各 GSM TDMA フレームは 8 つのタイム スロットで構成されています。タイム スロットの送信データ コンテンツは "バースト" と呼ばれます。3GPP TS 45.011 の 5.2 節に記載されているように、通常のシンボル周期を使用する場合、GSM タイム スロットには 156.25 のシンボル区間があります。これは、15/26 ms または約 576.9 マイクロ秒の時間間隔に相当します。8.25 個のシンボルまたは約 30.46 マイクロ秒の保護期間で各タイム スロットは分離されています。GSM 標準では、シンボルは 1 ビット期間として説明されています。GSM は GMSK 変調を使用するため、ビット期間あたり 1 ビットが存在します。タイム スロット内のバーストの送信タイミングは、ビット番号 (BN) で定義されます。BN は、タイム スロット内の特定のビット期間を表します。最小の BN をもつビットが最初に送信されます。BN0 は最初のビット期間で、BN156 は最後の 4 分の 1 ビット期間です。

3GPP TS 45.011 に掲載されている次の図は、さまざまなフレーム タイプ間の関係とさまざまなバースト タイプ間の関係を示しています。

次の表は、サポートされているバースト タイプとそれらの特性を示しています。

バースト タイプ説明リンク方向有効期間
NBノーマル バーストアップリンク/ダウンリンク147
FB周波数補正バースト ダウンリンク147
SB同期バーストダウンリンク147
Dummyダミー バーストダウンリンク147
ABアクセス バーストアップリンク87
Off送信されるバーストなしアップリンク/ダウンリンク0

3GPP TS 45.002 の 5.2.2 節で説明されている "有効期間" は GSM バーストの特性の 1 つです。バーストの有効期間 (有効部分) は、BN0 の半分を過ぎたところから始まり、保護期間が始まる前の半分のビット期間で終わるように定義されます。"保護期間" は、連続するタイム スロットのバースト間の期間です。3GPP TS 45.004 の 2.2 節に掲載されている次の図は、バーストの有効部分とアクティブ部分の間での先頭と末尾の 2 分の 1 ビットの差を示しています。

詳細については、波形生成のための GSM TDMA フレームのパラメーター化を参照してください。

トレーニング シーケンス コード (TSC)

ノーマル バーストには、指定された TSC に基づいてビット パターンが割り当てられるトレーニング シーケンス ビット フィールドが含まれています。GSM の場合、ノーマル バースト タイプのタイム スロットでは以下の 8 つのトレーニング シーケンスのいずれかを選択できます。

トレーニング シーケンス コード (TSC)

トレーニング シーケンス ビット (BN61、BN62、...、BN86)
0(0,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1)
1(0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,0,1,1,1)
2(0,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,0,0,1,1,1,0)
3(0,1,0,0,0,1,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,1,1,1,1,0)
4(0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,1,1,0,1,0,1,1)
5(0,1,0,0,1,1,1,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0)
6(1,0,1,0,0,1,1,1,1,1,0,1,1,0,0,0,1,0,1,0,0,1,1,1,1,1)
7(1,1,1,0,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0)

詳細については、3GPP TS 45.002 の 5.2.3 節を参照してください。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2019b で導入