ฉันจะปรับความยาวหน้าต่างให้เหมาะสมใน STFT ได้อย่างไร


12

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


หากคุณกำลังจะเพิ่มประสิทธิภาพบางอย่างคุณต้องมีการวัดที่เป็นกลาง คำถามของคุณไม่ได้บอกว่าคุณวัดความยาวหน้าต่าง "ดีที่สุด" ได้อย่างไร คุณหมายถึงอะไรโดยการสะท้อนคลื่นความถี่ด้วยวิธีที่เหมาะสม?
Jason R

@Menen: คุณต้องการวิเคราะห์สัญญาณ EEG เพื่อทำอะไรกับพวกเขา
ศรีราม

จำเป็นต้องมีการโหวตและการตรวจสอบคำตอบที่ดีที่สุด
Laurent Duval

คำตอบ:


5

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

หากคุณต้องการตรวจสอบ "เหตุการณ์" ในสัญญาณ EEG ของคุณด้วยความละเอียดประมาณ 10ms แสดงว่าสิ่งนี้ควรเป็นความยาวหน้าต่างของคุณ สิ่งนี้จะให้ความละเอียดความถี่ประมาณ 100 Hz


3

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

ฉันไม่รู้ว่าสิ่งนี้จะตอบคำถามของคุณหรือไม่เมื่อคุณถามเกี่ยวกับ STFT โดยเฉพาะ คุณสามารถลองใช้wavelet transformsเพื่อรับข้อมูลในสัญญาณ Wavelet transformsจะให้ความละเอียดของคุณในช่วงที่ใหญ่กว่ามากโดยการวิเคราะห์สัญญาณที่ความละเอียดหลายหน้าต่าง


0

ฉันไม่รู้จัก EEG แต่ปัญหาพื้นฐาน (บางทีฉันควรจะพูดพื้นฐาน) เมื่อใช้ STFT คือการเลือกความยาวหน้าต่างที่เหมาะสม หาก EEG ของคุณเป็นระยะและคุณต้องการแก้ไขพื้นฐานและเสียงประสานคุณควรใช้หน้าต่าง 'ยาว' หากคุณต้องการตรวจจับการโจมตีหรือการปรากฏตัวของบางเหตุการณ์หรือคุณสนใจซองจดหมายของสเปกตรัมมากขึ้นคุณสามารถใช้หน้าต่าง 'สั้น'


0

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

ปัญหามีความซับซ้อนมากขึ้นเนื่องจากสูตรการแยกส่วนของการมองโลกในแง่ดีมีความซับซ้อนมากกว่ากรณีโดเมนเวลาต่อเนื่อง (ดูตัวอย่างการแปลง Gabor ที่มีความเข้มข้นเหมาะสมที่สุดสำหรับส่วนประกอบความถี่เวลาท้องถิ่น )

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


-1

โดยปกติแล้วขนาดหน้าต่างที่กว้างจะให้ความละเอียดความถี่ที่ดีขึ้น แต่ความละเอียดของเวลาต่ำและในทางกลับกัน ดูตัวอย่างนี้ที่ฉันสร้าง spectrogram ของคลื่นไซน์ที่มี 5kHz และอัตราตัวอย่าง 22050Hz จากรหัส C ++ ของฉัน

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

spectrogram ด้านบนมีขนาดหน้าต่าง 2048 ตัวอย่างและทับซ้อนกัน 1024 ตัวอย่าง

ดู spectrogram นี้:

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

อันนี้มีขนาดหน้าต่าง 512 ตัวอย่างและทับซ้อนกัน 256 ตัวอย่าง

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


คลื่นไซน์ง่ายไม่ดีสำหรับการอธิบายความละเอียดของความถี่ แม้แต่การกวาดไซน์ก็ยังดีกว่า
jojek

ดังนั้นการป้อนข้อมูลแบบไหนที่คุณคิดว่าดี?
vishnu

ฉันได้กล่าวถึงข้างต้นแล้ว
jojek

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