Friday, October 19, 2012

Channel Coding Processing for DL-SCH,PCH,MCH

Hal pertama yang harus dilakukan untuk memahami chanel coding processing di physical ini adalah familiar dengan bagan di bawah :

hal yang sangat penting untuk diketahui dari bagan di atas adalah inputnya berupa transport block dari MAC layer, dan outputnya adalah IQ data yagn akan ditrasmit oleh physical layer. Jadi dari bagan tersebut proses secara keseluruhan adalah mengubah transport block dari mac layer menjadi bit stream data yang siap dikirimkan oleh physical layer.
Nah sekarang mari melangkah ke bagan pertama yaitu, CRC Attachment. Proses ini cukup sederhana yaitu hanya menambahkan 24 bit CRC pada akhir setiap data pada transport block. Ilustrasi seperti terlihat di bawah :


Kemudian step berikutnya adalah Segmentasi code block CRC. Prinsip kerjanya yaitu memotong transport block dari step pertama menjadi block-block yang lebih kecil kemudian menambahkan CRC lagi pada setiap block2 kecil tersebut. Step dua ini terdengar sederhana, namun pertanyaannya mengapa block2 tadi harus dipecah lagi menjadi block2 kecil ? apakah setiap output dari step pertama harus selalu dipecah menjadi block2 kecil ? Nah perlu diketahui bahwa block2 yang dipecah distep ke 2 ini hanyalah block yang ukuran datanya yang besar saja. Jadi tidak semua output dari step satu akan displit lagi menjadi block2 yang lebih kecil. Jika block tersebut di pecah, maka ukuran maksimumnya adalah 6144 bit, hal ini sebagaimana yang dispesifikasikan di 36.212 bab 5.1.2-Code block segmentation and code block CRC attachment-. Ilustrasi untuk step 2 ini seperti terlihat di bawah :

Step ketiga adalah chanel coding. Chanel coding ini menggunakan turbo coding processing. Jika kita mengacu ke 36.212 mengenai turbo coding, secara sederhana input satu bit maka outputnya menjadi tiga bit setelah melewati turbo coding processor (ini berarti coding rate 1/3). Nah pada step ketiga ini, berarti 1 blok data menjadi 3 blok data seperti terlihat di bawah :



Step berikutnya adalah Rate Matching. Ide utamanya yaitu menggabungkan kembali 3 blok data dari turbo coding menjadi 1 blok data. Heum, mungkin orang2 yang bidangnya di physical mempunyai penjelasan yang cukup baik bagaimana proses mengubah satu blok menjadi 3 block di turbo coding atau mengubah kembali 3 block data menjadi 1 block di rate matching. Namun karena sy diamanahkan di MAC layer, jadi penjelasannya 3 block data menjadi 1 block TITIK wkwkwk..... =))
ilustrasinya seperti terlihat di bawah :



Sebagai tambahan untuk rate matching ini seperti terlihat :


Blok diagram ini diambil dari 36.212. Seperti terlihat bahwa 3 blok dari turbo coding digabung menjadi satu pada blok rate matching sehingga menghasilkan satu keluaran bit stream data. Tujuan kita pada step ini adalah berusaha mempelajari secara mandiri proses dari  "interleaving", "Bitcollection", dan "Bit selection and pruning."

Step terakhir adalah code block concatenation. Seperti namanya, pada bagian ini digabungkan beberapa blok data menjadi satu blok bit stream yang panjang.



Nah setelah melewati step terakhir tersebut, skr muncul pertanyaan, Apakah bit stream yang dihasilkan dari step terakhir ini sudah final dan akan langsung ditransmit melalui antena ? Jawabnya adalah BLM.... justru output dari step terakhir ini adalah input untuk proses berikutnya di physical layer. Jadi sebenarnya masih banyak yang harus dipelajari lagi untuk memahami blok2 diagram di physical layer yang dapat membuat rambut kita menjadi rontok.... tapi untung di Indonesia banyak yang jualan shampoo, sekalipun shampo palsu :D

Untuk overview pada physical layer untuk step berikutnya bisa dilihat pada diagram di bawah :



Thursday, October 18, 2012

HARQ Process in LTE

Sebenarnya HARQ (Hybrid ARQ) adalah suatu proses yang agak kompleks dan susah untuk dipahami secara mendetail apalagi dalam posting seperti ini. Namun ada baiknya jika dapat diperoleh gambaran secara umum tentang HARQ process tersebut.

HARQ adalah gabungan dari kata "Hybrid" dan "ARQ". Hybrid berarti adalah kombinasi dari sesuatu sedangkan ARQ adalah Automatic Repeat request. Jadi secara sederhana HARQ itu adalah ARQ yang dikombinasikan dengan sesuatu, nah sesuatu tersebut adalah FEC, Forward Error Correction... :D

Terdapat perbedaan pada HARQ process jika menggunakan sistem FDD atau TDD untuk uplink dan downlink. Namun pada postingan ini yang dibahas hanyalah yang FDD saja.

Di dalam sistem FDD, terdapat 8 HARQ process yang dapat berjalan secara paralel untuk uplink dan downlink.
1) Downlink
   - Pada downlink dapat digunakan 8 HARQ process secara paralell (asynchronous process)
   - UE tidak tahu sama sekali tentang informasi HARQ process sebelum menerima informasi tersebut melalui   DCI berupa Process ID, RV, NDI, dsb..
Di sini akan diberikan ilustrasi mengenai, HARQ process untuk downlink :
i) Network Layer atas (RRC atau TE) --> Layer bawah : mengirim data ke layer bawah
ii) Netwok --> UE : mengirim data melalui PDSCH
iii) UE menerima PDSCH data
iv) UE mengecek CRC data tersebut, error atau tidak
v) Pada step ini kita mempunyai dua buah kasus :
    1) Jika UE mempunyai data yang akan dikiirim ke eNB, maka UE akan mengirim ACK/NACK ke eNB melalui PSUCH
    2) Jika UE tidak mempunyai data untuk dikirim ke eNB, maka UE akan mengirim ACK/NACK tersebut melalui PUCCH
vi) eNB menerima laporan CRC dari UE, dan  melakukan salah satu langkah di bawah :
     1) Jika menerima ACK, eNB mengirim data baru berikutnya
     2) Jika menerima NACK, HARQ process pada eNB melakukan retransmisi data dengan redudancy version yang berbeda dengan sebelumnya.
Untuk lebih jelasnya bisa dilihat pada flow di bawah :



2) Uplink

  1.  HARQ process harus menggunakan proses tertentu yang dikirim pada subframe tertentu juga (proses synchronous). UE harus menggunakan nomer HARQ process yang sama pada setiap 8 subframes
  2. Karena UE harus menggunakan HARQ process ID pada subframe tertentu, maka eNB mengetahui secara pasti kapan dan HARQ process ID seperti apa yang akan dikirim oleh UE. eNB juga tahu secara pasti tentang RV dan MCS yang digunakan oleh UE.
  3. Ada dua mode operasi pada uplink ini, yaitu Adaptive dan Non-Adaptive HARQ
Flow di bawah adalah contoh HARQ process untuk Adapative UL transmission. Intinya adalah pada setiap transmisi, UE menggunakan RV dan MCS yang berbeda yang diperoleh dari DCI 0 yang dikirimkan oleh eNB.





Kemudian flow di bawah adalah contoh buat Non adaptive HARQ process. Intinya adalah UE menggunakan RV secara berurutan sesuai standard 36.321. Dan menggunakan konfigurasi uplink seperti konfigurasi sebelumnya sampai diterima konfigurasi yang baru DCI 0.


Nah sekarang, bagaimana UE mengetahui untuk menggunakan adaptive atau non-adaptive pada transmisi uplinknya ?

  • UE menggunakan "adaptive retransmission" jika memperoleh DCI 0 dan NDI-nya blm ditoggled. Pada kasus ini, UE tidak pedul nilai dari HARQ feedback (PHICH), UE akan melakukan retransmisi jika memperoleh informasi dari DCI 0
  • UE akan mengetahui akan menggunakan "Non Adapative retransmission" jika memperoleh HARQ feedback (PHICH = NACK) tetapi tidak memperoleh informasi konfigurasi dari DCI 0 yang baru