วันพุธที่ 14 มกราคม พ.ศ. 2552

การถอดรหัส

การถอดรหัส 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 แสดงดังการถอดรหัส (Decoding)การถอดรหัส หมายถึงการอ่านหรือแปลงเลขจากอินพุตระบบหนึ่งให้แสดงเลขอินพุตนั้นออกมาเป็นเลขอีกระบบหนึ่ง หลักการออกแบบและการนำไอซีถอดรหัสไปใช้งาน สิ่งแรกที่ควรรู้คือ ตารางการทำงานหรือหน้าที่การทำงาน (Function Table) ของไอซีเบอร์นั้นๆ เพราะจะทำให้ทราบถึงสภาพการทำงานที่ต้องการ ตัวอย่างในตารางที่ 1 เป็นตารางการทำงานของวงจรถอดรหัสที่มี 3 อินพุตและมี 8 เอาท์พุตหรือเรียกว่า “Octal Decoder (3-line-to-8-line)” โดยมีเอาท์พุตให้เลือกใช้ 2 แบบ คือ แอกทีฟ 1 (High) และแอกทีฟ 0 (Low) ซึ่งในตารางที่ 1 (ก) เป็นเอาท์พุตแบบแอกทีฟ 1 (Action High) หมายถึงเอาท์พุตที่ถูกเลือกจะแสดงค่าลอจิก 1 นอกนั้นจะเป็นลอจิก 0 ส่วนตารางที่ 1 (ข) เป็นเอาท์พุตแบบแอกทีฟ 0 (Action Low) หมายถึง เอาท์พุตที่ถูกเลือกจะแสดงค่าลอจิก 0 นอกนั้นเป็นลอจิก 1โดย ค่า 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 ซึ่งแสดงดัง(2)โดย ค่า 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]

ไม่มีความคิดเห็น: