GnuRadio CC Decoder หรือวิธีใช้ FEC Extended Decoder
ฉันกำลังพยายามกู้คืนสัญญาณดาวเทียมที่เข้ารหัสตามมาตรฐาน CCSDS ซึ่งรวมถึงรหัส Convolutional ที่มีอัตรา 1/2 และความยาวข้อ จำกัด 7
ฉันรับสัญญาณผ่าน SDR ที่เชื่อมต่อโดยตรงกับผู้ส่งโดยใช้สายโคแอกซ์และการลดทอนบางส่วนระหว่างนั้น เพื่อวัตถุประสงค์ในการทดสอบฉันกำลังส่ง 0 และ 1 สลับกัน สำหรับการถอดรหัสและการถอดรหัสฉันกำลังใช้กราฟที่แนบมากับโพสต์นี้
จนถึงตัวถอดรหัส Convolutional ดูเหมือนว่าทุกอย่างจะทำงานได้โดยไม่มีปัญหา เมื่อปิดใช้งานรหัสทั้งบนผู้ส่งและผู้รับฉันสามารถถอดรหัสข้อมูลได้โดยไม่มีปัญหาใด ๆ เมื่อโค้ดคอนโวลูชันทำงานอยู่บางครั้งตัวถอดรหัสจะสามารถถอดรหัสข้อมูลได้อย่างถูกต้อง แต่โดยส่วนใหญ่แล้วเอาต์พุตจะมีขยะเท่านั้น
ฉันจึงสงสัยว่าฉันใช้บล็อกตัวถอดรหัสผิดวิธีหรือไม่? เอกสารเกี่ยวกับวิธีใช้บล็อกนี้อย่างถูกต้องนั้นหายาก ฉันได้ลองใช้การตั้งค่าต่างๆสำหรับนิยามตัวถอดรหัสแล้ว แต่ก็ยังไม่มีอะไรช่วยได้
ใครสามารถช่วยฉันด้วยเรื่องนี้? ขอแสดงความนับถือวาลคิรี
คำตอบ
ภายในมาตรฐานการเข้ารหัสช่อง CCSDS มีคำซิงโครไนซ์ที่เรียกว่า ASM
เป็นลำดับรูปแบบ 32, 64 หรือ 256 บิตซึ่งใช้สำหรับการซิงโครไนซ์ภายในสตรีม มีประโยชน์ในการแก้ปัญหาสองจุดที่ฉันอธิบายด้านล่าง
ภายในแผนภาพบล็อก GNU ของคุณฉันเห็นสองสิ่งที่อาจเป็นปัญหา:
ความไม่ชัดเจนของเฟส: ไม่มีกลไกในการแก้ความไม่ชัดเจนของเฟสของ BPSK ในการดีมอดูเลชัน ฉันไม่แน่ใจจริงๆว่าตัวถอดรหัส Viterbi ทำงานได้ดีหรือไม่หากไม่ได้รับการแก้ไข (ความไม่ชัดเจน)
ความคลุมเครือสองบิตของ CC: รหัสประเภทนี้ที่มีอัตรา 1/2 สร้างบิตที่เข้ารหัสสองบิตสำหรับหนึ่งที่ไม่ได้เข้ารหัส ที่อินพุตของตัวถอดรหัสคุณต้องซิงโครไนซ์กับบิตเข้ารหัสแรกของคู่
สิ่งนี้สามารถอธิบายได้ว่าบางครั้งระบบของคุณทำงานหลังจากเปิด / ปิด มีโอกาสมากกว่าสองหรืออาจสี่ ...
ข้อสังเกตอื่น ๆ การใช้รูปแบบการสลับ 0 และ 1 อาจทำให้คุณพลาดการแก้ไขข้อบกพร่องบางอย่าง ลองใช้รูปแบบ 32 บิต
แจ้งให้เราทราบหากคุณพบบางสิ่ง