เอาท์พุทเซ็นเซอร์ลบที่มีการเหนี่ยวนำร่วมกันระหว่างพวกเขา


12

ความเป็นมา: ซอฟต์แวร์ที่ฉันใช้ในการวิเคราะห์สัญญาณของฉันคือ matlab ฉันมีสัญญาณเสียงสองสัญญาณที่ถูกบันทึกโดยใช้เซ็นเซอร์แม่เหล็กสองตัว ให้เรียกเซ็นเซอร์ตัวหนึ่งว่า A และอีกอันหนึ่ง B. A และ B มีการเหนี่ยวนำร่วมกันระหว่างพวกมัน

ในขณะที่เซ็นเซอร์ A และ B ทำงานฉันต้องการลบข้อมูลที่ได้รับในเซ็นเซอร์ A เนื่องจากการเหนี่ยวนำร่วมกันจากเซ็นเซอร์ B

ฉันพยายามลบสัญญาณ B จากสัญญาณ A เพียงแค่เขียนใน matlab (AB) แต่มันก็ให้คำตอบที่แปลกประหลาด ฉันคิดว่ามันมาจากการเปลี่ยนแปลงที่ฉันมีในระยะ เวลาในการบันทึกเริ่มต้นของแทร็กทั้งสองเท่ากันดังนั้นฉันจึงคิดว่ามันไม่ล่าช้า

ฉันอยากจะรู้วิธีการทำกระบวนการลบในทางทฤษฎีและถ้าใครมีเคล็ดลับวิธีการใช้งานได้อย่างง่ายดายใน MATLAB ฉันอยากจะรู้

ฉันจะซาบซึ้งในความช่วยเหลือจริงๆ

ขอบคุณล่วงหน้า.

ด้านล่างฉันแนบรูปภาพของกราฟสัญญาณ ในรูปแรกคุณสามารถเห็นสัญญาณที่ได้รับจากเซ็นเซอร์ A และเซ็นเซอร์ B ในภาพที่สองฉันพล็อตเซ็นเซอร์ A เป็นสีแดงและเซ็นเซอร์ B เป็นสีน้ำเงินในช่วง 2.12: 2.16 และซูมเข้าไปอีก

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


ดังนั้นจากแปลงของคุณดูเหมือนว่าไม่มี crosstalk จากแหล่ง 1 ถึง 2 เท่ามากจาก 2 เป็น 1 เท่านั้นการซ้อนทับของคุณบนภาพนั้นไม่ถูกต้องแล้ว ("ต้องถูกลบออกจากแหล่งที่ 2") หรือไม่ ดูเหมือนว่าคุณกำลังพยายามลบซอร์ส 2 จาก 1 ใช่ไหม
Jason R

ถูกต้อง.
user1017064

เพื่อยืนยันแนวคิดการเปลี่ยนเฟสให้พล็อตรูปคลื่นทั้งคู่อย่างใกล้ชิดเท่านั้นรวมถึงจากดัชนี 2.3 ถึง 2.4 หรือบางอย่างดังนั้นคุณสามารถเห็นคลื่นเดี่ยวในทั้งสองช่อง
endolith

คำตอบ:


4

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

สมมติว่าคุณมีสัญญาณเสียงสองตัว xa (t) และ xb (t) และสองสัญญาณเซ็นเซอร์ ya (t) และ yb (t) เนื่องจากมีการเชื่อมต่อระหว่างเซ็นเซอร์คุณจะได้รับการพูดคุยข้ามและเราสามารถเขียนในโดเมนความถี่

Ya(w) = Haa(w)*xa(w) + Hba(w)*xb(w)
Yb(w) = Hab(w)*xa(w) + Hbb(w)*xb(w)

โดยที่ Hxy (w) คือฟังก์ชั่นการถ่ายโอนจากสัญญาณ "x" ไปยังสัญญาณเซ็นเซอร์ "y" ฟังก์ชั่นการถ่ายโอนทั้ง 4 รูปแบบเป็นเมทริกซ์ 2x2 และเพื่อที่จะกู้คืนสัญญาณดั้งเดิมอย่างสมบูรณ์คุณต้องสลับเมทริกซ์และใช้ฟังก์ชั่นการถ่ายโอนเมทริกซ์แบบกลับด้านกับสัญญาณเซ็นเซอร์ที่คุณได้รับ

เนื่องจาก cross talk ของคุณมีขนาดเล็กคุณสามารถวัดฟังก์ชันถ่ายโอน Hba (w) โดยตรงและลบออกดังนี้: วัดฟังก์ชันถ่ายโอนจากสัญญาณ A ไปยังเซ็นเซอร์ B เมื่อสัญญาณ B เป็น 0 สร้างตัวกรองจากฟังก์ชันถ่ายโอนนี้ ( FIR หรือ IIR ขึ้นอยู่กับรูปร่างของมัน) ตอนนี้คุณสามารถวัดและลบเวอร์ชันที่กรองออกจากสัญญาณเซ็นเซอร์ A จากสัญญาณเซ็นเซอร์ B:

yb(t)' = yb(t)-hab(t)**ya(t)

โดยที่ hab (t) เป็นการตอบสนองแบบแรงกระตุ้นของตัวกรอง cross talk ของคุณและ ** ตัวดำเนินการ convolution

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


Hilmar ฉันใหม่กับ matlab และฉันพบปัญหาบางอย่างเมื่อพยายามใช้คำตอบของคุณ ฉันจะขอบคุณมากสำหรับความช่วยเหลือจากทุกคน สิ่งแรกที่ฉันทำคือบันทึกสัญญาณ A เมื่อเซ็นเซอร์ B เป็น 0 ทีนี้ฉันจะใส่อาร์กิวเมนต์ตัวกรองใดลงในตัวกรองเมื่อเรียกใช้ฟังก์ชัน "ตัวกรอง" หากคุณต้องการการสร้างภาพของสัญญาณใด ๆ ที่คุณสามารถดูได้ในคำถามข้างต้น ขอบคุณอีกครั้ง.
user1017064

5

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

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


FastICA สำหรับ Matlab ไม่ได้ช่วยให้ฉันทำการลบระหว่างสัญญาณทั้งสอง ผลลัพธ์ไม่ดีพอ ในความคิดเห็นของฉันด้านบนฉันแนบลิงค์ไปยังรูปภาพซึ่งสามารถอธิบายสถานการณ์ที่ฉันเผชิญ: bit.ly/rXmVgH ขอบคุณมากสำหรับความช่วยเหลือของคุณ
user1017064
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.