Show HN: โปรเจกต์สร้างตัวรับสัญญาณ GPS
(axleos.com)- gypsum เป็นโปรเจกต์สร้างตัวรับสัญญาณที่ถอดรหัสสัญญาณ GPS ตั้งแต่ต้นเพื่อหาตำแหน่ง โดยตอนที่ 1 จากซีรีส์ 4 ตอนมุ่งเน้นการค้นหาสัญญาณดาวเทียมที่จมอยู่ใต้สัญญาณรบกวน
- GPS เป็น สัญญาณแบบ broadcast ที่ดาวเทียมราว 30 ดวงส่งไปทั่วโลก ดังนั้นดาวเทียมจึงไม่รู้ว่าใครกำลังฟังอยู่ และศูนย์ข้อมูลก็ไม่สามารถรับคลื่นวิทยุแทนผู้ใช้ได้
- สัญญาณ GPS ที่มาถึงเสาอากาศบนพื้นโลกอาจมีกำลังต่ำกว่าสัญญาณรบกวนรอบข้างถึง 100,000 เท่า และอ่อนกว่าสัญญาณเซลลูลาร์ทั่วไปถึง 100 ล้านเท่า จึงแทบมองไม่เห็นโดยตรง
- ตัวรับจะเปรียบเทียบ C/A code ที่ทั้งดาวเทียมและตัวรับรู้ร่วมกันซ้ำ ๆ เพื่อเฉลี่ยสัญญาณรบกวนแบบสุ่ม และค้นหาสัญญาณข้อมูล 50bps บน PRN code 1Mbps
- การ acquire หรือ acquisition เป็นขั้นตอนที่ใช้การคำนวณสูง โดยค้นหาร่วมกันทั้ง PRN ของแต่ละดาวเทียม, Doppler shift ±5kHz และเฟสของโค้ด เพื่อหาดาวเทียมที่มองเห็นได้ รวมถึงเวลาหน่วงและความเร็วสัมพัทธ์โดยประมาณ
โปรเจกต์ฟังสัญญาณ GPS โดยตรง
- gypsum เป็นโปรเจกต์สร้าง ตัวรับสัญญาณ GPS ตั้งแต่ต้น
- ซีรีส์ 4 ตอนนี้กล่าวถึงกระบวนการถอดรหัสสัญญาณ GPS เพื่อหาตำแหน่ง โดยตอนที่ 1 เป็นขั้นตอนการค้นหาสัญญาณและ acquisition ดาวเทียม
- GPS มีดาวเทียมประมาณ 30 ดวง ส่งสัญญาณครอบคลุมทั่วโลก และสัญญาณนี้มีอยู่รอบตัวเสมอไม่ว่าจะอยู่ที่ระดับความสูงใดหรือสภาพอากาศเป็นอย่างไร
- GPS เริ่มต้นในปี 1978 และ ณ เวลาที่เขียนบทความนี้ผ่านมาแล้ว 45 ปี
บีคอนเงียบ ๆ กับการคำนวณตำแหน่งที่ใช้เซิร์ฟเวอร์แทนไม่ได้
- สัญญาณดาวเทียม GPS ตอนส่งออกมามีกำลังใกล้เคียงกับหลอดไฟในบ้าน แต่เมื่อมาถึงพื้นโลกจะอ่อนมากอย่างยิ่ง
- GPS ใกล้เคียงกับรูปแบบ send-and-forget คือดาวเทียมไม่รู้ว่าใครกำลังฟังอยู่
- วิทยุ FM และทีวี broadcast ก็มีลักษณะคล้ายกัน
- ด้วยโครงสร้างแบบนี้ จึงยากที่ใครจะเก็บเงินค่าเข้าถึง GPS โดยตรง
- การคำนวณตำแหน่งไม่เหมาะกับโครงสร้างที่ให้เว็บเซอร์วิสประมวลผลแทนแล้วส่งผลลัพธ์กลับมา
- GPS ต้องฟัง คลื่นวิทยุ ที่เดินทางมาถึงตำแหน่งของผู้ใช้โดยตรง
- ศูนย์ข้อมูลไม่สามารถฟังคลื่นวิทยุที่เข้ามายังตำแหน่งของผู้ใช้แทนได้
สำรวจย่านความถี่ GPS ด้วย SDR
- หากต้องการรับสัญญาณ GPS ด้วยซอฟต์แวร์และทำ post-processing ต้องมีตัวรับ RF ที่ปรับจูนได้ และอุปกรณ์นี้คือ software-defined radio (SDR)
- ใช้ SDR++ ในการสำรวจสเปกตรัม
- ระหว่างใช้งาน SDR จำเป็นต้องเข้าใจแนวคิดบางอย่าง
- bias tee: วงจรภายใน SDR จ่ายไฟ DC ให้เสาอากาศที่เชื่อมต่อผ่าน SMA โดย SDR ที่ใช้ปิดฟังก์ชันนี้ไว้เป็นค่าเริ่มต้น จึงต้องเปิดเอง
- automatic gain control(AGC): วงจรฮาร์ดแวร์หรือฟังก์ชันซอฟต์แวร์ที่พยายามขยายสัญญาณอ่อนเพื่อปรับปรุงอัตราส่วนสัญญาณต่อสัญญาณรบกวน (SNR) ของข้อมูลที่รับได้
- IQ samples: I คือองค์ประกอบ in-phase ส่วน Q คือ quadrature หรือ imaginary ทำให้สามารถประมวลผลในมุมของเวลา แอมพลิจูด และขั้วสัญญาณได้
- SDR จะมีสไปก์ขนาดใหญ่ที่ความถี่ศูนย์กลางที่ปรับจูนไว้
- สำหรับผู้เริ่มต้น อาจดูเหมือนมีสัญญาณแรงไม่ว่าจะมองไปตรงไหน
- สามารถลดสไปก์นี้ได้ด้วยการปรับจูนให้เบี่ยงออกจากความถี่ศูนย์กลางเล็กน้อย หรือใช้ IQ correction ของซอฟต์แวร์
วิธีค้นหาสัญญาณที่จมอยู่ใต้สัญญาณรบกวน
- ที่เสาอากาศบนพื้นโลก สัญญาณ GPS มาถึงด้วยกำลังต่ำกว่าพลังงานและสัญญาณรอบข้างถึง 100,000 เท่า
- สัญญาณ GPS อาจต่ำกว่า thermal noise floor ได้สูงสุดถึง 50dB
- ดาวเทียม GPS รุ่นใหม่ถูกออกแบบให้ส่งสัญญาณที่มาถึงตัวรับในระดับประมาณ -130dBm
- thermal noise floor ของสภาพแวดล้อมที่อยู่อาศัยทั่วไปในแบนด์วิดท์ C/A อยู่ที่ประมาณ -110dBm
- เมื่อเทียบกัน สัญญาณเซลลูลาร์อยู่ที่ประมาณ -50dBm และแรงกว่าสัญญาณ GPS ถึง 100 ล้านเท่า
- GPS ใช้เทคนิค spread-spectrum เพื่อระบุและถอดรหัสสัญญาณที่จมอยู่ใต้สัญญาณรบกวนเช่นนี้
ฟังสัญญาณที่ไม่ได้ยินด้วย C/A code และ PRN
- ดาวเทียม GPS ส่งข้อมูลที่ผู้รับไม่รู้ควบคู่ไปกับสัญญาณที่ทั้งดาวเทียมและตัวรับรู้ร่วมกัน
- สัญญาณนี้เรียกว่า C/A code, PRN code หรือ chipping code และดาวเทียมทำซ้ำ 1,000 ครั้งต่อวินาที
- C/A ย่อมาจาก coarse acquisition
- ใน GPS ที่เดิมถูกวางแนวคิดไว้สำหรับการทหาร C/A code เป็นขั้นตอนความละเอียดต่ำเพื่อ lock เข้ากับ P code ที่แม่นยำกว่า
- ปัจจุบัน C/A code เป็นฐานของ GPS พลเรือนส่วนใหญ่ ส่วน P code ยังคงใช้ได้เฉพาะทางทหารเท่านั้น
- เหตุผลที่ตัวรับพลเรือนไม่สามารถใช้ P code ได้คือไม่รู้ค่า chipping sequence
- หากสูตรสร้าง P code เปิดเผยต่อสาธารณะ ก็สามารถ lock ด้วยเทคนิคเดียวกับ C/A code ได้
- เหตุผลที่ P code แม่นยำกว่าคือทำงานด้วย chipping rate ที่สูงกว่า
- ตัวรับจะรวมและเปรียบเทียบ PRN ที่คาดไว้กับสัญญาณจริงที่รับได้ซ้ำ ๆ
- สัญญาณรบกวนแบบสุ่มจะถูกเฉลี่ยเข้าหา 0 เมื่อเวลาผ่านไป
- สัญญาณ PRN จะสะสมต่อเนื่องและมีขนาดใหญ่ขึ้น
- GPS ใช้ code-division multiple access(CDMA) เพื่อจัดการดาวเทียมหลายดวงพร้อมกัน
- สัญญาณข้อมูลจริงถูกส่งโดยผสมอยู่กับ PRN code
- PRN code ทำงานที่ 1Mbps
- สัญญาณข้อมูลส่งด้วยความเร็วที่ช้ากว่ามากคือ 50bps
- ด้วยอัตราข้อมูลที่ต่ำ PRN code จึงยังคงเป็นสัญญาณอ้างอิงที่เสถียรได้เป็นเวลาค่อนข้างนาน
การสร้าง C/A code สำหรับดาวเทียมแต่ละดวง
- เนื่องจากมีดาวเทียมหลายดวง ตัวรับจึงต้องรู้ว่ามองเห็นดาวเทียมดวงใดบ้าง
- ดาวเทียม GPS แต่ละดวงมี PRN code เฉพาะของตนเองและมีความเสถียร
- โค้ดนี้ถูกกำหนดไว้ใน
Table 3-I (Code Phase Assignments)ของ IS-GPS-200L ซึ่งเป็นข้อกำหนด GPS พลเรือน - ออนไลน์มีแหล่งข้อมูลมากมายที่อธิบายวิธีสร้าง PRN code แต่มีแหล่งข้อมูลที่ทำซ้ำได้เพื่อใช้เทียบ PRN code ทั้งชุดไม่มากนัก
ขั้นตอน acquisition: ค้นหาดาวเทียมที่มองเห็นได้
- ตัวรับ GPS จะสร้างสำเนา PRN ที่ดาวเทียมแต่ละดวงส่งออกมา เพื่อค้นหาดาวเทียมที่มองเห็นบนท้องฟ้า และหาค่า PRN นั้นในข้อมูลที่เสาอากาศเก็บมาได้
- ขั้นตอนนี้คือ acquisition และเป้าหมายคือ lock เข้ากับดาวเทียมที่อยู่เหนือผู้ใช้
- ตัวรับจะจับ snapshot ข้อมูลจากเสาอากาศสั้น ๆ ราว 1 วินาที แล้วคำนวณ correlation กับ PRN จำลองแต่ละชุด
- หากมี correlation สูงระหว่าง PRN จำลองกับข้อมูลจริง แปลว่าดาวเทียมของ PRN นั้นกำลังส่งสัญญาณมาจากด้านบน
- สัญญาณที่รับได้จริงแตกต่างจาก PRN ในอุดมคติ
- สัญญาณ GPS อ่อนลงเมื่อเดินทางผ่านชั้นบรรยากาศของโลก
- เนื่องจากดาวเทียมเคลื่อนที่อย่างรวดเร็ว สัญญาณที่รับได้จึงเกิด Doppler-shifted
- ความเร็ววงโคจรของดาวเทียม GPS เป็นค่าที่รู้กันดี จึงกำหนดช่วง Doppler shift ที่คาดได้
- ดาวเทียมที่เคลื่อนเข้าหาจะมีความถี่เพิ่มขึ้นสูงสุด +5kHz
- ดาวเทียมที่เคลื่อนออกไปจะมีความถี่ลดลง -5kHz
- เพราะเวลาเริ่มรับสัญญาณเป็นค่าใดก็ได้ จึงอาจเริ่มฟังจากกลางคันของการส่ง PRN
- ขั้นตอน acquisition ค้นหาพร้อมกันในสามแกน
- PRN code ของดาวเทียมแต่ละดวง
- ช่วง Doppler shift ที่คาดไว้
- เฟส สำหรับเลื่อน PRN จำลองให้ตรงกับ PRN ที่รับได้
- ปริมาณการคำนวณสูง แต่เมื่อพบพารามิเตอร์ที่ถูกต้อง สไปก์ของ correlation จะปรากฏชัดเจน
วิธีติดตั้งใช้งานและผลลัพธ์ของตอนที่ 1
- การติดตั้งใช้งานแปลง PRN แต่ละชุดจากโดเมนเวลาไปเป็นโดเมนความถี่ แล้วทำ correlation ระหว่างความถี่ของข้อมูลดาวเทียมที่เข้ามากับสเปกตรัมของ PRN code แต่ละชุด
- วิธีนี้คือ frequency-domain cross correlation
- ออฟเซ็ตเฟสในโดเมนเวลาจะกลายเป็นการเลื่อนขององค์ประกอบความถี่ ดังนั้นการค้นหา Doppler shift และการค้นหาเฟสจึงจัดการได้ในการคำนวณเดียวกัน
- Doppler shift จะถูกทำให้ลู่เข้าในลักษณะคล้าย binary search เพื่อหาค่าที่ให้สไปก์ correlation แรงที่สุดสำหรับดาวเทียมแต่ละดวงที่มองเห็นได้
- ผลลัพธ์ของตอนที่ 1 คือสามารถระบุดาวเทียม GPS ที่อยู่เหนือผู้ใช้ในขณะนั้น และได้ phase/time delay กับ Doppler shift/relative velocity โดยประมาณของดาวเทียมแต่ละดวง
- ขั้นตอนถัดไปต่อใน Part 2: Tracking Pinpricks
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ปัจจุบันสามารถหารีซีฟเวอร์แบบ direct RF sampling หรือ direct RF conversion ที่เร็วพอสำหรับ GPS ได้ ตัวอย่าง: Xilinx RFSoc https://www.mouser.com/datasheet/2/903/ds889_zynq_usp_rfsoc_..., บทความของ National Instruments https://www.ni.com/en/solutions/aerospace-defense/radar-elec..., ฮาร์ดแวร์สำเร็จรูปที่เกี่ยวข้อง https://www.ni.com/en-us/shop/category/flexrio-custom-instru...
น่าแปลกอยู่บ้างที่ NI มองว่า direct RF conversion คุ้มค่าต้นทุน แต่กลับขายอุปกรณ์ราคา 30,000 ดอลลาร์ ถึงอย่างนั้น ถ้าต้องการทำต้นแบบการรับสัญญาณแบนด์วิดท์กว้างที่มีความสอดคล้องของเฟสแถว ๆ 3GHz และมีห้องแล็บกับงบประมาณที่เหมาะสม ก็อาจคุ้มที่จะซื้อสักสองสามเครื่อง แต่ถ้าเป็นการผลิตจำนวนมาก ก็น่าจะรอให้ต้นทุนบอร์ดที่ทำเองลดลง หรือดูว่าสามารถใช้รีซีฟเวอร์แบบ heterodyne ดั้งเดิมได้หรือไม่
สำหรับการใช้งานทางทหาร หากกังวลเรื่องอาวุธติดตาม RF ขั้นสูง รีซีฟเวอร์แบบ direct conversion อาจเหมาะกว่า เพราะไม่มี การรั่วไหลของ local oscillator ที่อุปกรณ์ฝ่ายตรงข้ามตรวจจับได้
เวลาเห็นคำว่า “from scratch” ก็ทำให้อยากรู้ว่าทำจากศูนย์จริง ๆ แค่ไหน พอเห็นว่าฮาร์ดแวร์เป็น RTL-SDR ก็แอบผิดหวังนิดหน่อย แต่ การถอดรหัสโปรโตคอล น่าสนใจมาก และผลลัพธ์ก็ยอดเยี่ยม
GPS เริ่มต้นในปี 1978 แต่จนถึงปี 2000 สัญญาณยังถูกทำให้เสื่อมลงโดยเจตนาด้วยวิธีที่เรียกว่า “selective availability” ด้วยเหตุนี้ GPS จึงแทบใช้ไม่ได้จริงสำหรับหลายกรณีการใช้งาน ไม่เหมาะกับระบบนำทางบนถนนอย่างแน่นอน และมีประโยชน์แบบจำกัดสำหรับการสำรวจพื้นที่ห่างไกลหรือการเดินเรือ
น่าประทับใจมากที่ gypsum สามารถเริ่มจาก cold start แล้วจับตำแหน่งพร้อมเวลาที่แม่นยำได้โดยฟังสัญญาณจากเสาอากาศไม่ถึงหนึ่งนาที และดูเหมือนจะดีกว่ารีซีฟเวอร์เชิงพาณิชย์ในปัจจุบันด้วยซ้ำ ตอนเดินทางด้วยรถช่วงต้นทศวรรษ 2000 ต้องจอดไหล่ทางรอ 15–20 นาทีให้รีซีฟเวอร์ GPS จับตำแหน่งก่อนออกเดินทาง และถ้าไม่ได้ก็ออกไปโดยดูแผนที่กระดาษแทน
แม้ผ่านไป 46 ปี ชั้นวิทยุก็ยังคงความเข้ากันได้ทั้งแบบย้อนหลังและไปข้างหน้าอย่างสมบูรณ์ และตัวชี้วัดสำคัญอย่างเวลาในการระบุตำแหน่งครั้งแรกกับค่าความคลาดเคลื่อนระยะเทียบเท่าผู้ใช้ก็ดีขึ้น 10–1000 เท่า โดยไม่ต้องเปลี่ยนโปรโตคอลแบบไม่เข้ากัน
กำลังส่ง RF รวมที่ให้บริการทั่วโลกน้อยกว่าการใช้ไฟของครัวเรือนทั่วไปในสหรัฐฯ และต่ำกว่า 5G, ทีวี, วิทยุ AM/FM มาก อีกทั้งยังอยู่ต่ำกว่าระดับพื้นสัญญาณรบกวน ซึ่งทำได้เพราะการใช้ Gold code แบบซ้อนกัน
ยังถูกออกแบบให้ แชร์ความถี่ กับระบบคู่แข่งอย่าง Galileo ได้ด้วย ซึ่งเป็นสิ่งที่พบได้ยากในเครือข่ายมือถือ เฟสของข้อมูลมอดูเลตและพาหะถูกตรึงไว้ ทำให้สิ่งอย่างการถอดรหัสเฟสพาหะเป็นไปได้ และช่วยให้ได้ pseudorange กับความแม่นยำที่ดีกว่าเดิม
โดยรวมแล้ว ดูเหมือนว่าผู้ออกแบบจะมีวิสัยทัศน์ล่วงหน้าอย่างมหาศาล หรือโชคดีอย่างมหาศาล หรือทั้งสองอย่าง
สิ่งที่หมายถึงในที่นี้คือเริ่มจากฮาร์ดแวร์ที่ไม่รู้อะไรเกี่ยวกับ GPS เลย กล่าวคืออุปกรณ์ที่ทำได้เพียงสุ่มตัวอย่างสนามแม่เหล็กไฟฟ้า แล้วค่อยสร้างรีซีฟเวอร์ขึ้นมา
เหตุผลที่ฮาร์ดแวร์ยุคก่อนมี เวลาในการระบุตำแหน่งครั้งแรก ช้า โดยพื้นฐานแล้วเกี่ยวข้องกับความก้าวหน้าของพลังประมวลผล รีซีฟเวอร์ GPS แบบดั้งเดิมต้องดาวน์โหลด ‘almanac’ ของดาวเทียมทั้งหมด และด้วยรูปแบบกับความเร็วในการส่งข้อมูลของ GPS แม้เงื่อนไขจะเหมาะสมก็ยังต้องใช้เวลาอย่างน้อย 12.5 นาที
ด้วยพลังประมวลผลสมัยใหม่ รีซีฟเวอร์รวมถึง gypsum สามารถหาเหล่าดาวเทียมที่มองเห็นได้ด้วยการ brute force พื้นที่ค้นหา แทนที่จะรอคำใบ้ที่ส่งลงมาจากอากาศ เทคนิคนี้คือวิธีที่อธิบายไว้ท้ายภาค 1
ในปี 1999 ผมต่อรีซีฟเวอร์ Delorme Earthmate Hyperformance GPS รุ่น RS-232 เข้ากับ Toughbook แล้วรัน Delorme Street Atlas USA ประมาณเวอร์ชัน 6.0 เพื่อเดินทางด้วยรถ
ระหว่างขับข้ามประเทศ มันให้คำแนะนำเส้นทางที่ใช้ได้ดีพอ ไม่มีการนำทางระดับช่องจราจร แต่ก่อนถึงทุกจุดเลี้ยวมันบอกให้เลี้ยวพร้อมชื่อถนนด้วย
เวอร์ชันนั้นยังมีการรู้จำเสียงด้วย พูดอะไรอย่าง “อีกไกลไหม?” แล้วมันจะบอกเวลาถึงโดยประมาณของจุดแวะถัดไปกับปลายทางสุดท้าย รวมถึงตำแหน่งปัจจุบัน ซึ่งค่อนข้างสนุก
ถ้าค่าความคลาดเคลื่อนเชิงวงกลมแบบกรณีแย่ทั่วไปภายใต้ selective availability อยู่ราว 30 เมตร ก็แม่นพอสำหรับการนำทางบนถนน ยกเว้นพื้นที่ที่หนาแน่นมาก ๆ และแม้ในพื้นที่แบบนั้นแค่เหลือบดูแผนที่ก็พอ ส่วนบนถนนเปิดโล่งนั้นยอดเยี่ยมมาก
รีซีฟเวอร์ GPS ยุคก่อนใช้จำนวนช่องติดตามเป็นจุดขายทางการตลาด โดยรีซีฟเวอร์ราคาถูกมีฮาร์ดแวร์พอติดตามดาวเทียมได้เพียง 6–8 ดวง ขณะที่รุ่นแพงติดตามได้ 12 ดวง
ดังนั้นรีซีฟเวอร์แบบ software-defined นี้จึงทำหน้าที่ส่วนใหญ่ที่เดิมทีฮาร์ดแวร์เป็นคนทำ และสามารถติดตามดาวเทียมทั้งหมดที่มองเห็นได้
แนวทาง software-defined มีข้อดีที่ทรงพลัง เช่น การได้มาซึ่งสัญญาณดาวเทียมในช่วงต้นจะคำนวณ cross-correlation ระหว่างสัญญาณที่รับกับ Gold code หลายชุด หากประมวลผลสิ่งนี้ใน โดเมนฟูริเยร์ ก็จะจับสัญญาณได้ค่อนข้างเร็ว
ถ้าต้องการเครื่องรับ GPS แบบ DIY ฮาร์ดคอร์ที่ลงลึกถึงระดับทรานซิสเตอร์ น่าจะอ่าน https://lea.hamradio.si/~s53mv/navsats/theory.html ได้สนุก เป็นเครื่องรับ GPS DIY สไตล์ยุค 1990 มีทั้งแผนผังวงจรวาดมือ, PCB วาดมือ และเสาอากาศทำเอง
อีกอย่าง ในช่วงปลายทศวรรษ 1990 แม้มันจะไม่เหมาะนักในสภาพแวดล้อมเมืองหนาแน่น แต่ก็เป็นพื้นที่ที่แม้แต่เครื่องรับสมัยใหม่ก็มักลำบาก และยังสามารถทำ การแก้ไข GPS เชิงอนุพันธ์ สำหรับรถยนต์ได้ด้วย ใช้งานได้ในพื้นที่มหานครชายฝั่งที่มีประชากรหนาแน่นอย่าง NYC
ระบบนำทางรถยนต์รุ่นเก่านั้นเทอะทะและข้อมูลแผนที่โดยรวมก็แย่มาก แต่เพราะการใช้งานแบบ Selective Availability จึงพูดยากว่า “ไร้ประโยชน์อย่างแน่นอน”
แน่นอนว่ายอมรับว่ามันค่อนข้างแย่ เพียงแต่ Selective Availability เป็นแค่ปัจจัยหนึ่ง และถ้ามีพลังประมวลผลกับแผนที่ที่ดีกว่าในปัจจุบัน ต่อให้มีความคลาดเคลื่อนตำแหน่งจาก Selective Availability ก็น่าจะชดเชยได้ง่ายขึ้น
ถ้อยคำทางกฎหมายในกฎที่ปรับปรุงแล้ว https://www.space.commerce.gov/itar-controls-on-gps-gnss-rec... ซับซ้อนมากจนยากจะเข้าใจด้วยซ้ำว่ายังมีผลอยู่หรือไม่
พูดถึง SDR แล้ว ITAR ก็เป็นเหตุผลที่โมดูลเรดาร์พาสซีฟของ GNU Radio ที่ทีม Kraken RF ทำไว้ถูกถอดลงเช่นกัน
ผมก็ชอบ https://ciechanow.ski/gps/ ซึ่งมีภาพประกอบเจ๋ง ๆ ที่เหมาะจะดูควบคู่กับคำอธิบายนี้
กราฟิกแบบอินเทอร์แอกทีฟ ของเขานั้นเอาชนะไม่ได้เลย
เมื่อรวมกับความสามารถในการสร้างซอฟต์แวร์ที่ช่วยการวิเคราะห์และนำโซลูชันสุดท้ายไปใช้งาน ก็กลายเป็นโปรเจกต์ที่ยอดเยี่ยม ผมเรียน GPS และทำงานกับมันมาหลายปีแล้ว แต่ก็ยังไม่ได้รู้ทุกอย่าง รออ่านโค้ดอยู่
มองย้อนกลับไปแล้วรู้สึกว่าเป็นสิ่งที่ทำได้ดีมาก ตอนนี้ผมรู้สึกว่าเข้าใจขอบเขตของ RF ได้จับต้องได้มากขึ้น และใช้มันได้เหมือนเครื่องมือ ทำให้นึกถึงส่วนที่ผมชอบในตัวคอมพิวเตอร์เอง
ถ้าสูตรสร้าง P code ถูกเปิดเผย เครื่องรับ GPS สำหรับพลเรือนก็น่าจะล็อกสัญญาณได้ด้วยเทคนิคเดียวกับ C/A code
ผมยังอ่านไม่จบทั้งหมด แต่สงสัยว่ามีวิธี brute force หรือใช้กลเม็ดอื่นเพื่อให้ได้ ลำดับชิปปิงของ P code สำหรับ GPS ที่แม่นยำขึ้นหรือเปล่า?
ถ้าสนใจเรื่องราวการพัฒนา GPS หนังสือ “GPS Declassified” ของ Richard Easton เล่าไว้ได้น่าสนใจ
GPS ทำงานได้แม้ในโหมดเครื่องบิน และทำงานได้แม้กระทั่งอยู่บนเครื่องบินจริง ๆ ทำงานได้โดยไม่มีบริการเซลลูลาร์หรือ Wi‑Fi สหรัฐฯ ควบคุมกลุ่มดาวเทียม GPS และสามารถปิด GPS ในบางพื้นที่เมื่อจำเป็นได้ และเคยทำจริงแล้วด้วย นั่นจึงทำให้ประเทศอื่น ๆ ยิงกลุ่มดาวเทียม GNSS ของตัวเองขึ้นไป
อีกเรื่องที่น่าสนใจคือดาวเทียม GPS ไม่ได้ส่งตำแหน่งลงมา แต่ส่งแค่ เวลา เท่านั้น การลองทำสิ่งนี้ด้วยข้อมูลที่รับจากโทรศัพท์เป็นแบบฝึกหัดที่สนุกมาก และโทรศัพท์ก็เชื่อมต่อกับดาวเทียมโดยตรง
เพิ่มเติมคือเมื่อไม่นานมานี้ผมได้เรียนหลักการพื้นฐานของการนำทางด้วยดวงดาว แม้กลไกจะแตกต่างกันโดยสิ้นเชิง แต่ก็น่าสนใจที่มันพึ่งพาการรักษาเวลาให้แม่นยำอย่างมากเช่นกัน เหมือนมีความสมมาตรกันอยู่
เครื่องรับ GPS ไม่กี่เครื่องแรกที่ผมใช้เป็นอุปกรณ์เดี่ยวที่ไม่มีการเชื่อมต่อข้อมูลใด ๆ เลย ดังนั้นการที่ GPS ไม่ต้องใช้ข้อมูลจึงรู้สึกเป็นเรื่องแน่นอนอยู่แล้ว
อย่างไรก็ดี อุปกรณ์อย่างโทรศัพท์มักได้รับข้อมูลนั้นจากแหล่งอื่น เพราะเร็วกว่าการรอการส่งข้อมูลจาก GPS มาก
ความสามารถในการปิด GPS ในพื้นที่เฉพาะตามใจนั้น ตามที่ผมเข้าใจ ไม่มีอยู่ในดาวเทียม GPS รุ่นใหม่ ๆ อีกแล้ว และอาจไม่มีอยู่ในดาวเทียมทั้งหมดที่กำลังใช้งานอยู่ในปัจจุบันด้วย
ถ้าใช้ iPhone หลังลงจอด รูปเหล่านั้นจะถูกเชื่อมโยงกับตำแหน่ง ณ ตอนที่ถ่าย ทำให้ภายหลังสามารถย้อนหา地形ที่น่าสนใจซึ่งบังเอิญเห็นได้
ถึงขั้นใส่คำค้นที่ใช้และบทสนทนาในใจเอาไว้ด้วย ไม่ใช่แค่สอนวิธีจับปลา แต่เหมือนแสดงให้ดูว่าจะหาชิ้นส่วนมาประกอบเครื่องตกปลาเองได้อย่างไร เป็นติวทอเรียลประเภทที่ผมชอบที่สุด
แต่ก็ขอบคุณมากจริง ๆ ที่มองแนวทางแบบนั้นในแง่ดี