รหัสสุ่มเทียม (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 ครั้ง (ไม่กี่วินาที) |