การถอดรหัส Convolution ด้วย Viterbi Algorithm
การถอดรหัส Convolution นั้นมีขั้นตอนที่ซับซ้อนกว่าวิธีการเข้ารหัสมาก ซึ่งการถอดรหัสมีหลายวิธีแต่การถอดรหัสด้วย Viterbi Algorithm นั้นเป็นวิธีที่ให้ประสิทธิภาพสูง ซึ่งลักษณะการทำงานของ Viterbi Algorithm เป็นแบบ Maximum Likelihood Decoding โดยผลลัพธ์ที่ได้จากการถอดรหัสจะเป็นเส้นทางเพียงเส้นทางเดียวที่มีความน่าจะเป็นสูงสุดจากเส้นทางทั้งหมดใน Trellis Diagram ซึ่งมีลักษณะเหมือนกับข้อมูลที่ถูกส่งมากที่สุด โดย Viterbi Algorithm นั้น มีขั้นตอนในการทำงานแบ่งเป็น 3 ขั้นตอน [3] ดังต่อไปนี้
ขั้นตอนที่ 1 Branch Metric Generation
ขั้นตอนนี้คำนวณหาค่า Branch Metric (BM) จากข้อมูลอินพุตที่รับเข้ามา r กับค่าเอาต์พุตของการเข้ารหัส C การคำนวณหาค่า Branch Metric ต้องคำนวณทุกๆ สาขาหรือ Branch โดย Branch เท่ากับ 2K การคำนวณหาค่า Branch Metric
โดย ค่า BM แทนค่า Branch Metric ระหว่าง State i ไปยัง State j ณ เวลา n
ค่า r แทนค่า ข้อมูลอินพุตที่รับเข้ามา ณ เวลา n
ค่า C แทนค่าเอาต์พุตของการเข้ารหัสระหว่าง State i ไปยัง State j ณ เวลา n
ขั้นตอนที่ 2 Survivor Path และ Path Metric Update
ขั้นตอนนี้คำนวณหาค่า Survivor Path และ Path Metric จากจำนวน State การทำงานทั้งหมดค่า Path Metric ที่เลือกไว้เพื่อใช้ในการหาค่า Path Metric ครั้งต่อไป (Update) ส่วนค่า Survivor Path เป็นค่าที่ใช้ในการตัดสินใจหาค่าเอาต์พุต โดยการคำนวณหาค่า Survivor Path และ Path Metric นั้นค่าของ Branch Metric และ Path Metric จะถูกเข้าด้วยกัน ซึ่งผลการบวกนั้นมีสองค่าที่เข้ามาในแต่ละจุดเชื่อมต่อ (Trellis Node) ของ Trellis Diagram โดยค่า Path Metric เป็นค่าที่เลือกจากค่าผลบวกที่น้อยกว่า ส่วนค่า Survivor Path เป็น State การทำงานที่น้อยกว่าจากการเลือก Path Metric
โดย ค่า PM แทน Path metric ระหว่าง State i ไปยัง State j ณ เวลา n
ค่า C แทนค่าเอาต์พุตของการเข้ารหัสระหว่าง State i ไปยัง State j ณ เวลา n
ขั้นตอนที่ 3 Optimum Paths Trace Back
ขั้นตอนนี้เป็นขั้นตอนการตัดสินใจหาค่าเอาต์พุต โดยใช้ค่า Survivor Path ในแต่ละ State ที่บันทึกไว้มาตัดสินใจเลือกเส้นทางของข้อมูล โดยการตัดสินใจหาเส้นทางของข้อมูลจะเริ่มจาก Survivor Path ในอดีต (Trace Back) โดยในการเริ่มต้นที่เวลาผ่านไป L (Latency) โดยในทางปฏิบัติการ L ต้องมีค่ามากกว่าห้าเท่าของค่า K (Constrain Length) จึงทำให้การถอดรหัสได้ข้อมูลที่ถูกต้องสูง
รูปแบบการทำงานของการถอดรหัสด้วยวิธี Viterbi มีสองแบบ ได้แก่ Hard Decision และ Soft Decision ซึ่งอธิบายได้ดังนี้คือ การทำงานของวงจรถอดรหัสแบบ Hard Decision นั้น ข้อมูลอินพุตที่รับจากส่วนของมอดูเลชั่นที่ถูกจัดระดับเป็นสองระดับคือ “0” และ “1” ต่ออินพุตหนึ่งบิต ส่วนของการทำงานของวงจรถอดรหัสแบบ Soft Decision นั้น ข้อมูลอินพุตที่รับจากส่วนของมอดูเลชันที่ถูกจัดระดับมากกว่าสองระดับต่ออินพุตหนึ่งบิต เช่น 4 ระดับ (2 บิต) หรือ 8 ระดับ (3 บิต) เป็นต้น การทำงานแบบ Soft Decision จะมีความซับซ้อนมากกว่าแบบ Hard Decision แต่ให้ค่า Coding Gain ที่มากกว่า โดยการทำงานแบบ Hard Decision นั้นใช้สำหรับช่องสัญญาณแบบ Binary Symmetric หรือ Discrete Memoryless Channel ส่วนทำงานแบบ Soft Decision นั้นเหมะสมกับช่องสัญญาณแบบ AWGN (Additive White Gaussian Noise) ซึ่งการทำงานแบบ Soft Decision นั้นให้ค่า Coding Gain ที่มากกว่าแบบ Hard Decision ประมาณ 2 dB [4]
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น