GnuRadio CC Decoder หรือวิธีใช้ FEC Extended Decoder

Oct 16 2020

ฉันกำลังพยายามกู้คืนสัญญาณดาวเทียมที่เข้ารหัสตามมาตรฐาน CCSDS ซึ่งรวมถึงรหัส Convolutional ที่มีอัตรา 1/2 และความยาวข้อ จำกัด 7

ฉันรับสัญญาณผ่าน SDR ที่เชื่อมต่อโดยตรงกับผู้ส่งโดยใช้สายโคแอกซ์และการลดทอนบางส่วนระหว่างนั้น เพื่อวัตถุประสงค์ในการทดสอบฉันกำลังส่ง 0 และ 1 สลับกัน สำหรับการถอดรหัสและการถอดรหัสฉันกำลังใช้กราฟที่แนบมากับโพสต์นี้

จนถึงตัวถอดรหัส Convolutional ดูเหมือนว่าทุกอย่างจะทำงานได้โดยไม่มีปัญหา เมื่อปิดใช้งานรหัสทั้งบนผู้ส่งและผู้รับฉันสามารถถอดรหัสข้อมูลได้โดยไม่มีปัญหาใด ๆ เมื่อโค้ดคอนโวลูชันทำงานอยู่บางครั้งตัวถอดรหัสจะสามารถถอดรหัสข้อมูลได้อย่างถูกต้อง แต่โดยส่วนใหญ่แล้วเอาต์พุตจะมีขยะเท่านั้น

ฉันจึงสงสัยว่าฉันใช้บล็อกตัวถอดรหัสผิดวิธีหรือไม่? เอกสารเกี่ยวกับวิธีใช้บล็อกนี้อย่างถูกต้องนั้นหายาก ฉันได้ลองใช้การตั้งค่าต่างๆสำหรับนิยามตัวถอดรหัสแล้ว แต่ก็ยังไม่มีอะไรช่วยได้

ใครสามารถช่วยฉันด้วยเรื่องนี้? ขอแสดงความนับถือวาลคิรี

คำตอบ

gotchi85 Oct 19 2020 at 10:44

ภายในมาตรฐานการเข้ารหัสช่อง CCSDS มีคำซิงโครไนซ์ที่เรียกว่า ASM

เป็นลำดับรูปแบบ 32, 64 หรือ 256 บิตซึ่งใช้สำหรับการซิงโครไนซ์ภายในสตรีม มีประโยชน์ในการแก้ปัญหาสองจุดที่ฉันอธิบายด้านล่าง

ภายในแผนภาพบล็อก GNU ของคุณฉันเห็นสองสิ่งที่อาจเป็นปัญหา:

  • ความไม่ชัดเจนของเฟส: ไม่มีกลไกในการแก้ความไม่ชัดเจนของเฟสของ BPSK ในการดีมอดูเลชัน ฉันไม่แน่ใจจริงๆว่าตัวถอดรหัส Viterbi ทำงานได้ดีหรือไม่หากไม่ได้รับการแก้ไข (ความไม่ชัดเจน)

  • ความคลุมเครือสองบิตของ CC: รหัสประเภทนี้ที่มีอัตรา 1/2 สร้างบิตที่เข้ารหัสสองบิตสำหรับหนึ่งที่ไม่ได้เข้ารหัส ที่อินพุตของตัวถอดรหัสคุณต้องซิงโครไนซ์กับบิตเข้ารหัสแรกของคู่

สิ่งนี้สามารถอธิบายได้ว่าบางครั้งระบบของคุณทำงานหลังจากเปิด / ปิด มีโอกาสมากกว่าสองหรืออาจสี่ ...

ข้อสังเกตอื่น ๆ การใช้รูปแบบการสลับ 0 และ 1 อาจทำให้คุณพลาดการแก้ไขข้อบกพร่องบางอย่าง ลองใช้รูปแบบ 32 บิต

แจ้งให้เราทราบหากคุณพบบางสิ่ง