Pendahuluan
Standar GSM menentukan frame TDMA sebagai kombinasi dari 8 slot waktu. Setiap slot waktu memiliki durasi 3/5200 detik (sekitar 0,577 ms) dan nomor slot waktu (TN) dari 0 hingga 7. Frame GSM menggunakan modulasi GMSK, di mana satu simbol setara dengan satu bit. Setiap slot waktu memiliki panjang 156,25 bit. Isi dari slot waktu disebut burst. Waktu transmisi burst dalam slot waktu didefinisikan dalam nomor bit (BN). BN merujuk pada periode bit tertentu dalam slot waktu. Bit dengan nomor bit terendah ditransmisikan terlebih dahulu. BN0 adalah periode bit pertama dan BN156 adalah periode seperempat bit terakhir.
Sebuah TDMA berisi delapan slot waktu yang masing-masing dipisahkan oleh periode penjaga. Setiap slot waktu hanya dapat membawa satu jenis burst. Jenis burst yang tersedia adalah: burst normal (NB), burst koreksi frekuensi (FB), burst sinkronisasi (SB), burst akses (AB), atau burst dummy.
Burst Normal (NB)
Burst normal terdiri dari field bit berikut dan dapat muncul di frame uplink atau downlink. Semua bit ekor adalah nol. Berdasarkan kode urutan pelatihan (TSC) yang ditentukan, field urutan pelatihan berisi salah satu dari delapan kemungkinan urutan pelatihan.
| Nomor Bit | Panjang Field | Isi Field |
|---|---|---|
| 0 - 2 | 3 | bit ekor |
| 3 - 60 | 58 | bit terenkripsi |
| 61 - 86 | 26 | bit urutan pelatihan |
| 87 - 144 | 58 | bit terenkripsi |
| 145 - 147 | 3 | bit ekor |
| 148 - 156 | 8.2500 | periode penjaga (bit) |
Burst Akses (AB)
Burst akses terdiri dari field bit berikut dan hanya dapat muncul di frame uplink. Semua bit ekor adalah nol.
| Nomor Bit | Panjang Field | Isi Field |
|---|---|---|
| 0 - 7 | 8 | bit ekor diperpanjang |
| 8 - 48 | 41 | bit urutan sinkronisasi |
| 49 - 84 | 36 | bit terenkripsi |
| 85 - 87 | 3 | bit ekor |
| 88 - 156 | 68.2500 | periode penjaga (bit) |
Burst Koreksi Frekuensi (FB)
Burst koreksi frekuensi terdiri dari field bit berikut dan hanya dapat muncul di frame downlink. Semua bit ekor dan bit tetap adalah nol. Memodulasi semua nol dengan modulator GMSK menghasilkan rotasi fase konstan -90 derajat untuk setiap durasi simbol. Oleh karena itu, burst ini menghasilkan carrier tanpa modulasi dengan offset frekuensi positif sebesar 1625/24 kHz.
| Nomor Bit | Panjang Field | Isi Field |
|---|---|---|
| 0 - 2 | 3 | bit ekor |
| 3 - 144 | 142 | bit tetap |
| 145 - 147 | 3 | bit ekor |
| 148 - 156 | 8.2500 | periode penjaga (bit) |
Burst Sinkronisasi (SB)
Burst sinkronisasi terdiri dari field bit berikut dan hanya dapat muncul di frame downlink. Semua bit ekor adalah nol.
| Nomor Bit | Panjang Field | Isi Field |
|---|---|---|
| 0 - 2 | 3 | bit ekor |
| 3 - 41 | 39 | bit terenkripsi |
| 42 - 105 | 64 | bit urutan pelatihan diperpanjang |
| 106 - 144 | 39 | bit terenkripsi |
| 145 - 147 | 3 | bit ekor |
| 148 - 156 | 8.2500 | periode penjaga (bit) |
Burst Dummy
Burst dummy terdiri dari field bit berikut dan hanya dapat muncul di frame downlink. Semua bit ekor adalah nol. Bit campuran berisi urutan satu dan nol yang telah ditentukan.
| Nomor Bit | Panjang Field | Isi Field |
|---|---|---|
| 0 - 2 | 3 | bit ekor |
| 3 - 144 | 142 | bit campuran |
| 145 - 147 | 3 | bit ekor |
| 148 - 156 | 8.2500 | periode penjaga (bit) |
Periode Penjaga
Standar GSM mengharuskan stasiun bergerak untuk meredam transmisi mereka selama periode antar burst. Kenaikan dan penurunan level daya sinyal terjadi selama periode penjaga. Bagian yang berguna dari burst dimulai setengah jalan melalui nomor bit 0. Bagian yang berguna berakhir di tengah BN87 untuk AB dan BN147 untuk NB, FB, SB, dan burst dummy.
Menghasilkan Satu Frame Uplink
Konfigurasikan frame TDMA GSM uplink menggunakan objek gsmUplinkConfig.
cfg = gsmUplinkConfig()Atur slot waktu 2 dan 5 untuk membawa burst akses. Karena indeks array dimulai dari 1, tetapi slot waktu dimulai dari 0, atur elemen ketiga dan keenam dari BurstType menjadi "AB".
cfgype([2 5] +1) = "AB"Tetapkan kode urutan pelatihan 3, 5, 1, 7, 0, dan 2 ke slot waktu 0, 1, 3, 4, 6, dan 7.
cfg([0 1 3 4 6 7] +1) = [3 5 1 7 0 2]Hasilkan sampel baseband dari frame menggunakan fungsi gsmFrame.
x = gsmFrame(cfg);Plot frame. Dapatkan laju sampel dari bentuk gelombang yang dihasilkan menggunakan fungsi gsmInfo, lalu hitung nilai sumbu waktu dalam ms.
wfInfo = gsmInfo(cfg); Rs = wfInfoRate; t = (0:length(x) - 1)/Rs*1e3; subplot(2,1,1) plot(t,abs(x)) grid on axis([0 5 0 1.2]) title('GSM Uplink TDMA Frame - Amplitude') xlabel('Time (ms)') ylabel('Amplitude') subplot(2,1,2) plot(t,unwrap(angle(x))) grid on title('GSM Uplink TDMA Frame - Phase') xlabel('Time (ms)') ylabel('Phase (rad)')Plot spektrogram dari frame.
figure spectrogram(x,500,[],[],Rs,'centered') title('GSM Uplink TDMA Frame - Spectrogram')Menghasilkan Satu Frame Downlink
Konfigurasikan frame TDMA GSM downlink menggunakan objek gsmDownlinkConfig.
cfg = gsmDownlinkConfigAtur slot waktu 0 untuk membawa burst koreksi frekuensi, atur slot waktu 4 dan 6 untuk membawa burst dummy, dan atur slot waktu 2 menjadi kosong.
cfgype(0 +1) = "FB"; cfgype([4 6] +1) = "Dummy"; cfgype(2 +1) = "Off"Hasilkan sampel baseband dari frame menggunakan fungsi gsmFrame. Fungsi ini menyisipkan bit acak sebagai pengganti bit terenkripsi.
x = gsmFrame(cfg);Menghasilkan Struktur Multiframe
Buat struktur multiframe 51-frame. Buat tiga objek gsmDownlinkConfig dengan konfigurasi burst yang ditentukan. Untuk merakit multiframe 51-frame, gunakan objek pertama dan kedua sekali, lalu ulangi objek ketiga untuk 49 frame berikutnya. Ulangi struktur multiframe 3 kali.
cfg1 = gsmDownlinkConfig('BurstType',["FB" "NB" "NB" "NB" "NB" "Dummy" "NB" "NB"]); cfg2 = gsmDownlinkConfig('BurstType',["SB" "NB" "NB" "NB" "NB" "Dummy" "NB" "NB"]); cfg3 = gsmDownlinkConfig('BurstType',["NB" "NB" "NB" "NB" "NB" "Dummy" "NB" "NB"]); wfInfo = gsmInfo(cfg); frameLength = wfInfoengthInSamples; x = zeros(frameLength*51*3,1); for p=1:3 x1 = gsmFrame(cfg1); x2 = gsmFrame(cfg2); x3 = gsmFrame(cfg3,49); x((p-1)*frameLength*51+1:p*frameLength*51) = [x1;x2;x3]; endMensimulasikan Efek Kontrol Daya dan Rugi Propagasi
Atur redaman daya untuk slot waktu 0, 3, dan 7 menjadi 2, 6, dan 10 dB.
cfg = gsmUplinkConfig; cfgation([0 3 7] +1) = [2 6 10]Plot daya frame.
x = gsmFrame(cfg); wfInfo = gsmInfo(cfg); Rs = wfInfoRate; t = (0:length(x) - 1)/Rs*1e3; plot(t, 20*log10(abs(x))) axis([0 5 -20 5]) grid on title('GSM Uplink TDMA Frame Power') xlabel('Time (ms)') ylabel('Power (dB)')Menyesuaikan Perilaku Kenaikan dan Penurunan Daya
Sesuaikan karakteristik kenaikan burst. Atur RiseTime ke durasi 3,125 simbol.
cfg = gsmDownlinkConfig; cfgme = 3.125; gsmCheckTimeMask(cfg)Pindahkan awal durasi waktu naik ke kiri sebesar 1,5 simbol dengan mengatur RiseDelay menjadi -1,5.
cfglay = -1.5; gsmCheckTimeMask(cfg)Atur FallTime ke durasi 2,75 simbol. Pindahkan awal waktu turun ke kanan sebesar 0,25 durasi simbol dengan mengatur FallDelay menjadi 0,25.
cfg = gsmDownlinkConfig; cfgme = 2.75; cfglay = 0.25; gsmCheckTimeMask(cfg)Referensi
- 3GPP TS 45.001. "GSM/EDGE Physical layer on the radio path. General description." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
- 3GPP TS 45.002, "GSM/EDGE Multiplexing and multiple access on the radio path." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
- 3GPP TS 45.004, "GSM/EDGE Modulation." General description." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
Fungsi Pembantu
normalBurstDescription
function d = normalBurstDescription() BitNumber = ["0 - 2";"3 - 60";"61 - 86";"87 - 144";"145 - 147";"148 - 156"]; LengthOfField = {3;58;26;58;3;8.25}; ContentsOfField = ["tail bits";"encrypted bits";"training sequence bits";"encrypted bits";"tail bits";"guard period (bits)"]; d = table(BitNumber,LengthOfField,ContentsOfField); endfrequencyCorrectionBurstDescription
function d = frequencyCorrectionBurstDescription() BitNumber = ["0 - 2";"3 - 144";"145 - 147";"148 - 156"]; LengthOfField = {3;142;3;8.25}; ContentsOfField = ["tail bits";"fixed bits";"tail bits";"guard period (bits)"]; d = table(BitNumber,LengthOfField,ContentsOfField); endsynchronizationBurstDescription
function d = synchronizationBurstDescription() BitNumber = ["0 - 2";"3 - 41";"42 - 105";"106 - 144";"145 - 147";"148 - 156"]; LengthOfField = {3;39;64;39;3;8.25}; ContentsOfField = ["tail bits";"encrypted bits";"extended training sequence bits";"encrypted bits";"tail bits";"guard period (bits)"]; d = table(BitNumber,LengthOfField,ContentsOfField); enddummyBurstDescription
function d = dummyBurstDescription() BitNumber = ["0 - 2";"3 - 144";"145 - 147";"148 - 156"]; LengthOfField = {3;142;3;8.25}; ContentsOfField = ["tail bits";"mixed bits";"tail bits";"guard period (bits)"]; d = table(BitNumber,LengthOfField,ContentsOfField); endaccessBurstDescription
function d = accessBurstDescription() BitNumber = ["0 - 7";"8 - 48";"49 - 84";"85 - 87";"88 - 156"]; LengthOfField = {8;41;36;3;68.25}; ContentsOfField = ["extended tail bits";"synch. sequence bits";"encrypted bits";"tail bits";"guard period (bits)"]; d = table(BitNumber,LengthOfField,ContentsOfField); end