PlusMagi's Blog By Pitt Phunsanit Technology เจาะลึกโครงสร้างรหัสสุ่มเทียม: จากวงจร LFSR สู่ Gold Codes และ JPL Composite Codes ในการสำรวจอวกาศ

เจาะลึกโครงสร้างรหัสสุ่มเทียม: จากวงจร LFSR สู่ Gold Codes และ JPL Composite Codes ในการสำรวจอวกาศ

รหัสสุ่มเทียม (Pseudo-Noise Sequences) คือกุญแจสำคัญที่ทำให้ระบบ CDMA, ดาวเทียม GPS และเครือข่ายสถานีอวกาศห้วงลึก (DSN) สามารถแยกแยะสัญญาณและวัดระยะทางข้ามระบบสุริยะได้อย่างแม่นยำ


Linear Feedback Shift Register (LFSR) และ m-sequences

วงจรพื้นฐานที่สุดในการสร้างรหัสสุ่มคือ LFSR ซึ่งทำงานบนฟีลด์จำกัด Galois Field GF(2) หากเลือกพหุนามป้อนกลับ (Characteristic Polynomial) ที่เป็น Primitive Polynomial ระดับขั้น r วงจรจะสามารถสร้างรหัสที่มีความยาวคาบสูงสุด เรียกว่า
m-sequences (Maximal Length Sequences)

N = 2ʳ – 1

สมบัติเด่นของ m-sequences
มีฟังก์ชันสหสัมพันธ์ในตัวเอง (Autocorrelation) ในอุดมคติ โดยจะมีพีคสูงเด่นชัดเจนเฉพาะเมื่อเลื่อนเฟสตรงกันพอดี (τ = 0) และมีค่าต่ำมากเป็น -1/N ในจังหวะอื่น จึงเหมาะอย่างยิ่งสำหรับการล็อกเวลาและเฟส (Time Synchronization)


ข้อจำกัดของ m-sequences และการกำเนิด Gold Codes

แม้ m-sequence จะมีคุณสมบัติ Autocorrelation ที่ยอดเยี่ยม แต่เมื่อนำลำดับสองเส้นที่ต่างกันมาเทียบกัน ค่า Cross-correlation กลับแปรปรวนและมีพีคสูง ซึ่งก่อให้เกิดปัญหาการกวนกันข้ามช่องสัญญาณ (Multiple Access Interference: MAI) ในระบบที่มีผู้ใช้งานหลายเครื่อง

Robert Gold จึงได้คิดค้น Gold Codes โดยนำคู่พหุนามพิเศษที่เรียกว่า Preferred Pair of m-sequences มาผสมกันด้วยเกต XOR ซึ่งส่งผลให้ค่า Cross-correlation ถูกจำกัดไว้เพียง 3 ค่า (Three-Valued Cross-correlation) และมีขอบเขตสูงสุดไม่เกิน t(r)

t(r) = 1 + 2^[(r+2)/2] (สำหรับ r ที่สอดคล้องกับโครงสร้างของ GPS L1 C/A Code ซึ่ง r = 10)

เทคนิคนี้ทำให้ดาวเทียม GPS ทุกดวงสามารถส่งสัญญาณบนคลื่นความถี่เดียวกัน (1575.42 MHz) ได้พร้อมกันโดยไม่ชนกัน โดยอาศัยรหัส Gold Code ที่แตกต่างกันในแต่ละดวง (PRN 1 ถึง PRN 32)


JPL Composite Codes: นวัตกรรมการวัดระยะทางข้ามดาวเคราะห์

ในภารกิจสำรวจอวกาศลึกของ NASA/JPL ยานสำรวจต้องเดินทางไกลหลายร้อยล้านกิโลเมตร การวัดระยะทางโดยไม่ให้เกิดความกำกวมของเวลา (Range Ambiguity) กำหนดให้รหัส PN ต้องมีความยาวมหาศาลระดับหมื่นล้านชิป:

  • ปัญหาคอขวด
    หากใช้รหัสเส้นเดียวยาว 10¹⁰ ชิป เครื่องรับบนโลกจะต้องเสียเวลาสแกนค้นหาเฟสแบบทีละสเต็ปนานหลายเดือนกว่าจะล็อกสัญญาณได้
  • การแก้โจทย์ด้วย Chinese Remainder Theorem (CRT)
    JPL สร้างรหัสผสม (Composite Codes) จาก m-sequences ขนาดสั้นจำนวนหลายชุด (เช่น 4–6 ชุด) ที่มีความยาวคาบเป็นจำนวนเฉพาะสัมพัทธ์กัน (L₁, L₂, L₃, L₄)
  • การประมวลผล Component-by-Component
    นำรหัสย่อยมารวมกันด้วย Majority Vote Logic ทำให้เครื่องรับบนโลกสามารถสแกนหารหัสย่อยทีละเส้นแบบแยกอิสระได้:
รูปแบบรหัส ความยาวคาบรวม (ป้องกัน Ambiguity) จำนวนครั้งที่ต้องสแกนเพื่อล็อกสัญญาณ
รหัสเดี่ยวทั่วไป L_total = L₁ · L₂ · L₃ · L₄ ≈ 1.69 × 10¹⁰ ชิป 1.69 × 10¹⁰ ครั้ง (นานหลายเดือน)
JPL Composite Code L_total ≈ 1.69 × 10¹⁰ ชิป (เท่ากัน) L₁ + L₂ + L₃ + L₄ = 1,916 ครั้ง (ไม่กี่วินาที)