วิธีการกู้คืนระยะผู้ให้บริการในซอฟต์แวร์?


13

ตัวเลือกสำหรับการกู้คืนเฟสของสัญญาณ BPSK ในซอฟต์แวร์คืออะไร? แหล่งข้อมูลเดียวที่ฉันสามารถหาได้ออนไลน์มีไดอะแกรมของวงจร - ดูเหมือนว่าไม่มีใครเต็มใจที่จะอธิบายสิ่งนี้กับผู้คนที่ไม่คุ้นเคยกับวงจรแอนะล็อก

ฉันต้องการคำอธิบายเกี่ยวกับการทำงานของทฤษฎีการกู้คืนข้อมูลของผู้ให้บริการและจะรัก pseudocode หรือตัวอย่างโค้ด


โดยปกติเราไม่ได้ให้ตัวอย่างโค้ดโดยเฉพาะอย่างยิ่งสำหรับสิ่งที่ซับซ้อนเช่นเดียวกับ demodulator ของ BPSK
Jim Clay

1
ดังที่ JimClay ระบุไว้คุณไม่น่าจะได้รับใครสักคนที่มีเวลามากพอที่จะให้รหัสแหล่งที่มาเต็มรูปแบบสำหรับการใช้ตัวถอดรหัส อย่างไรก็ตามกลไกของการสร้างการใช้งานควรจะง่ายถ้าคุณเข้าใจแนวคิด โดยทั่วไปผู้รับซอฟต์แวร์จะมีโครงสร้างที่คล้ายกับเทคนิคฮาร์ดแวร์ที่สอดคล้องกัน (เช่นซิงโครไนเซอร์ที่ไม่ใช้ความไม่เชิงเส้นของฟีดเดอร์หรือการป้อนกลับ PLL-bsed) คุณมีโทโพโลยีเฉพาะที่คุณวางแผนจะกำหนดเป้าหมายหรือไม่
เจสันอาร์

ขอบคุณสำหรับความคิดเห็นของคุณ @JimClay และ JasonR - ฉันไม่ได้ตั้งใจจะขอซอร์สโค้ดที่ใช้งานได้ ฉันได้อัปเดตคำถามให้มีความเฉพาะเจาะจงมากขึ้น: ฉันแค่มองหาคำอธิบายใด ๆ ที่ไม่ได้เข้าใจความหมายของวงจรอะนาล็อกและวงจรไดอะแกรม
Keith

คำตอบ:


25

ในการ demodulate สัญญาณ key-shift phase ซึ่ง BPSK นั้นเป็นวิธีที่ง่ายที่สุดคุณจะต้องกู้คืนความถี่พาหะเฟสและระยะเวลาของสัญลักษณ์

สัญญาณ Bursty สัญญาณ บางสัญญาณมีการระเบิดและให้ลำดับข้อมูลที่รู้จักเรียกว่า preamble หรือ mid-amble (ขึ้นอยู่กับว่ามันจะปรากฏขึ้นที่จุดเริ่มต้นหรือกลางของการระเบิด) Demodulators สามารถใช้ตัวกรองที่ตรงกันซึ่ง "ดู" สำหรับลำดับข้อมูลที่ทราบและใช้เพื่อคำนวณความถี่ระยะเวลาและสัญลักษณ์ของการระเบิด พวกเขาทำเช่นนี้สำหรับทุก ๆ การระเบิดและไม่จำเป็นต้องกังวลกับ "ดริฟท์" (ระยะทางทีละน้อยที่สร้างขึ้นระหว่าง demodulator และสัญญาณที่ได้รับเป็นข้อผิดพลาดเล็ก ๆ น้อย ๆ สะสม) เพราะโดยทั่วไปแล้วการระเบิดจะสั้นพอ ปัญหา.

สัญญาณต่อเนื่องจาก นั้นมีสัญญาณต่อเนื่อง พวกมันมีหลายวิธีที่จะกู้คืนยากกว่าสัญญาณที่ออกมาเพราะปกติคุณไม่มีลำดับข้อมูลที่เป็นที่รู้จักเพื่อช่วยในการล็อคสัญญาณและคุณไม่ต้องกังวลกับการดริฟท์แม้หลังจากที่คุณล็อคสัญญาณแล้ว ฉันจะพยายามอธิบายขั้นตอนหลักที่มักใช้ในการกู้คืนสัญญาณอย่างต่อเนื่องในระดับสูง

การกู้คืนผู้ให้บริการ

โดยปกติแล้วคุณจะรู้ว่าสัญญาณที่คุณกำลังมองหานั้นอยู่ที่ความถี่ใดหรืออย่างน้อยก็จะเป็นชุดความถี่ แม้ว่าจะมีความรู้นี้ แต่คุณมักจะต้องสามารถแก้ไขความถี่ออฟเซ็ตได้เนื่องจากไม่มีเครื่องส่งสัญญาณสองเครื่องส่งที่ความถี่เดียวกัน มีข้อผิดพลาดอยู่เสมอ วิธีปกติแล้วคือการผสมความถี่ที่คุณคิดว่าสัญญาณจะเป็นที่และจากนั้นแก้ไขข้อผิดพลาดความถี่ที่เหลือ สามารถทำได้ด้วยCostas Loopหรือโดยการใช้กำลังสี่ของข้อมูลสัญญาณเบสแบนด์และมองหาการเพิ่มความถี่ ควรมีการเพิ่มความถี่ในการชดเชยของผู้ให้บริการ * 4 (เช่นถ้าคุณนำ FFT ของข้อมูลไปยังกำลัง 4 และดูการเพิ่มความถี่ที่ 8300 Hz นั่นหมายความว่าผู้ให้บริการชดเชย 8300/4 = 2075 Hz) นี่เป็นวิธีที่มีประสิทธิภาพมากในการล็อคค่าเริ่มต้นสำหรับการชดเชยความถี่ คุณยังสามารถใช้มันเพื่อชดเชยการดริฟท์ถ้าคุณทำซ้ำเป็นครั้งคราว มีอีกวิธีในการชดเชยการดริฟท์ซึ่งฉันจะสัมผัสในภายหลัง

ผู้ให้บริการเฟส

ณ จุดนี้ถ้าคุณพล็อตข้อมูลที่ซับซ้อนของคุณในระนาบเชิงซ้อน (แกน x เป็นจริงแกน y เป็นจินตภาพ) มันควรมีหน้าตาดังต่อไปนี้ -

BPSK ที่หมุน

ejπ

BPSK ที่หมุนและมิร์เรอร์

ejω

BPSK ที่มีเสียงดัง

เมื่อข้อมูลได้รับการแก้ไขเฟสคุณสามารถวางส่วนจินตภาพของข้อมูลได้เพราะมันจะไม่เพิ่มข้อมูลใด ๆ

สัญลักษณ์เวลา

ปกติแล้วคุณควรรู้ระยะเวลาของสัญลักษณ์ของสัญญาณที่คุณพยายามจะ demodulate หากคุณจำเป็นต้องกำหนดระยะเวลา / ความถี่ของสัญลักษณ์คุณสามารถทำได้ในลักษณะเดียวกันกับวิธีตรวจจับการชดเชยของผู้ให้บริการ คุณสามารถจัดตารางข้อมูลซึ่งจะทำให้ความถี่เพิ่มขึ้นสองเท่าของความถี่สัญลักษณ์

เช่นเดียวกับผู้ให้บริการคุณจะต้องทำให้เฟส (จังหวะ) ถูกต้องและชดเชยการดริฟท์ วิธีปกติสำหรับปัญหาทั้งสองนี้คือการค้นหาการข้ามศูนย์ เว้นเสียแต่ว่าเสียงดังจะไม่ดีนักมันควรข้ามจุดศูนย์ในช่วงกลางของการเปลี่ยนสัญลักษณ์จาก -1 เป็น 1 หรือจาก 1 เป็น -1 แม้ว่าเสียงจะทำให้สิ่งนี้เกิดขึ้นในช่วงกลางของสัญลักษณ์มันจะไม่เกิดขึ้นบ่อยนัก

แผนภาพตา

รูปภาพด้านบนมักเรียกว่า "eye diagram" หรือ "eye pattern" มันเป็นสัญลักษณ์สองช่วงกว้างและมีสัญลักษณ์มากมาย "ซ้อนกัน" อยู่ด้านบนของกันและกัน ฉันไม่รู้ว่าคุณคุ้นเคยกับออสซิลโลสโคปหรือไม่ แต่คุณสามารถรับออสซิลโลสโคปเพื่อแสดงภาพเช่นนี้ได้ อย่างไรก็ตาม "X's" สองรายการเป็นการเปลี่ยนสัญลักษณ์ เส้นสูงถึงต่ำใน X คือเมื่อสัญลักษณ์เปลี่ยนจาก 1 เป็น -1 และเส้นต่ำถึงสูงใน X คือเมื่อสัญลักษณ์เปลี่ยนจาก -1 เป็น 1 จุดระหว่างนั้นโดยที่ เส้นสีชมพูคือสถานที่ที่เหมาะสมที่สุดในการเก็บตัวอย่างข้อมูลเพื่อดูว่าสัญลักษณ์นั้นเป็น 1 หรือ -1

เทคนิคเดียวกันนี้สามารถใช้จัดการกับการกำหนดเวลาสัญลักษณ์ ใช้ค่าเฉลี่ยของระยะทางจากการข้ามศูนย์ก่อนหน้าและการข้ามศูนย์ต่อ หากค่าเฉลี่ยทั้งสองใกล้เคียงกันทุกอย่างก็ดี หากหนึ่งมีขนาดใหญ่กว่าอีกแล้วคุณจะต้องเปลี่ยนตำแหน่งที่คุณจะคว้าตัวอย่างของคุณ

เมื่อคุณสุ่มตัวอย่างสัญลักษณ์ที่จุดที่ถูกต้องแล้วจุดข้อมูลของคุณควรได้รับสิ่งที่ดูเหมือนกับจุดกลุ่มดาว BPSK คลาสสิก

กลุ่มดาว BPSK ที่มีเสียงดัง

ฉันหวังว่านี่จะช่วยได้.


เพื่อทำให้โพสต์ที่ยอดเยี่ยมนี้ดีขึ้นคุณอาจเพิ่มส่วนของการกู้คืนนาฬิกาก่อนกำหนดเวลาสัญลักษณ์
LWZ

ฉันคิดว่าฉันอาจรู้สิ่งที่คุณมีในใจ แต่ฉันไม่แน่ใจ คุณนึกถึงอะไรเป็นพิเศษ?
Jim Clay

ขอบคุณมาก! ฉันไม่ได้คิดว่าจะมองหาจุดผ่านศูนย์หรือวางแผนของจริง / จินตภาพบน x / y ด้วยวิธีนี้ ฉันเพิ่งดูกราฟของเฟสและสงสัยว่าจะซิงโครไนซ์ทุกอย่างอย่างไร ขอบคุณอีกครั้ง!
Keith

@JimClay ที่จุดเริ่มต้นของส่วนกำหนดเวลาสัญลักษณ์ของคุณคุณกล่าวว่า "ปกติแล้วคุณควรรู้ระยะเวลาสัญลักษณ์ของสัญญาณที่คุณพยายามจะ demodulate" และโดยปกติจะเป็นหน่วยกู้คืนนาฬิกาเพราะปกติคุณชนะ ' ไม่ส่งนาฬิกาพร้อมกับข้อมูลของคุณ สำหรับสัญญาณ BPSK นี่เป็นเรื่องง่ายที่คุณเพียงแค่จัดสัญญาณสี่เหลี่ยมซึ่งจะลบข้อมูล จากนั้นคุณดูที่สเปกตรัมพลังงานควรมีความถี่สูงสุดที่เรียกว่าเสียงนาฬิกาซึ่งให้ระยะเวลาสัญลักษณ์
LWZ

เพิ่มย่อหน้าในความถี่สัญลักษณ์
Jim Clay
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.