ฉันมีสัญญาณ EEG จำนวนมากและฉันต้องการวิเคราะห์โดยใช้วิธีการเชิงเส้นเช่น STFT (การแปลงฟูริเยร์เวลาสั้น) ใน STFT ฉันจะปรับความยาวหน้าต่างการวิเคราะห์ให้เหมาะสมเพื่อสะท้อนสเปกตรัมความถี่ของแต่ละหน้าต่างการวิเคราะห์ในวิธีที่เหมาะสมได้อย่างไร
ฉันมีสัญญาณ EEG จำนวนมากและฉันต้องการวิเคราะห์โดยใช้วิธีการเชิงเส้นเช่น STFT (การแปลงฟูริเยร์เวลาสั้น) ใน STFT ฉันจะปรับความยาวหน้าต่างการวิเคราะห์ให้เหมาะสมเพื่อสะท้อนสเปกตรัมความถี่ของแต่ละหน้าต่างการวิเคราะห์ในวิธีที่เหมาะสมได้อย่างไร
คำตอบ:
นี่คือ "หลักการความไม่แน่นอน" แบบคลาสสิกของการแปลงฟูริเยร์ คุณสามารถมีความละเอียดสูงในเวลาหรือความละเอียดสูงในความถี่ แต่ไม่ทั้งสองอย่างในเวลาเดียวกัน ความยาวหน้าต่างอนุญาตให้คุณแลกเปลี่ยนระหว่างสองสิ่งนี้
หากคุณต้องการตรวจสอบ "เหตุการณ์" ในสัญญาณ EEG ของคุณด้วยความละเอียดประมาณ 10ms แสดงว่าสิ่งนี้ควรเป็นความยาวหน้าต่างของคุณ สิ่งนี้จะให้ความละเอียดความถี่ประมาณ 100 Hz
ความยาวหน้าต่างที่เหมาะสมจะขึ้นอยู่กับแอปพลิเคชันของคุณ หากแอปพลิเคชันของคุณเป็นแบบที่คุณต้องการข้อมูลโดเมนเวลาให้แม่นยำยิ่งขึ้นลดขนาดหน้าต่างของคุณ หากแอปพลิเคชันต้องการข้อมูลโดเมนความถี่ให้เฉพาะเจาะจงมากขึ้นให้เพิ่มขนาดของหน้าต่าง อย่างที่ฮิลมาร์พูดเอาไว้Uncertainty Principle
คุณไม่มีทางเลือกอื่น คุณไม่สามารถรับความละเอียดที่สมบูรณ์แบบในทั้งสองโดเมนพร้อมกัน คุณสามารถได้รับการแก้ไขที่สมบูรณ์แบบในโดเมนเดียวเท่านั้นโดยมีค่าใช้จ่ายเท่ากับศูนย์การแก้ปัญหาในโดเมนอื่น (โดเมนเวลาและความถี่) หรือในระหว่างการแก้ปัญหา แต่ในทั้งสองโดเมน
ฉันไม่รู้ว่าสิ่งนี้จะตอบคำถามของคุณหรือไม่เมื่อคุณถามเกี่ยวกับ STFT โดยเฉพาะ คุณสามารถลองใช้wavelet transforms
เพื่อรับข้อมูลในสัญญาณ Wavelet transforms
จะให้ความละเอียดของคุณในช่วงที่ใหญ่กว่ามากโดยการวิเคราะห์สัญญาณที่ความละเอียดหลายหน้าต่าง
ฉันไม่รู้จัก EEG แต่ปัญหาพื้นฐาน (บางทีฉันควรจะพูดพื้นฐาน) เมื่อใช้ STFT คือการเลือกความยาวหน้าต่างที่เหมาะสม หาก EEG ของคุณเป็นระยะและคุณต้องการแก้ไขพื้นฐานและเสียงประสานคุณควรใช้หน้าต่าง 'ยาว' หากคุณต้องการตรวจจับการโจมตีหรือการปรากฏตัวของบางเหตุการณ์หรือคุณสนใจซองจดหมายของสเปกตรัมมากขึ้นคุณสามารถใช้หน้าต่าง 'สั้น'
ฉันได้ใช้เวลามากเวลาหน้าต่างการเพิ่มประสิทธิภาพในการวิเคราะห์เวลาความถี่หรือธนาคารกรอง หนึ่งสามารถปรับให้เหมาะสมสำหรับการตรวจจับ denoising แยกสัญญาณ ... มันขึ้นอยู่กับแอปพลิเคชันมาก เมื่อการวิเคราะห์ความถี่ - เวลาซ้ำซ้อนโดยทั่วไปการวิเคราะห์หรือสังเคราะห์หน้าต่างเป็นงานที่แตกต่างกัน และความยาวเพียงหนึ่งพารามิเตอร์ในการออกแบบหน้าต่าง
ปัญหามีความซับซ้อนมากขึ้นเนื่องจากสูตรการแยกส่วนของการมองโลกในแง่ดีมีความซับซ้อนมากกว่ากรณีโดเมนเวลาต่อเนื่อง (ดูตัวอย่างการแปลง Gabor ที่มีความเข้มข้นเหมาะสมที่สุดสำหรับส่วนประกอบความถี่เวลาท้องถิ่น )
ดังนั้นกฎข้อปฏิบัติที่ใช้กันทั่วไปในปัจจุบันของฉันคือ: เริ่มต้นด้วยรูปร่างและความยาวของหน้าต่างที่ดูเหมือนว่าใช้ได้ จากนั้นทำการวิเคราะห์ซ้ำด้วยหน้าต่างสองบานที่มีความยาวสองเท่าครึ่งและรวมผลลัพธ์
โดยปกติแล้วขนาดหน้าต่างที่กว้างจะให้ความละเอียดความถี่ที่ดีขึ้น แต่ความละเอียดของเวลาต่ำและในทางกลับกัน ดูตัวอย่างนี้ที่ฉันสร้าง spectrogram ของคลื่นไซน์ที่มี 5kHz และอัตราตัวอย่าง 22050Hz จากรหัส C ++ ของฉัน
spectrogram ด้านบนมีขนาดหน้าต่าง 2048 ตัวอย่างและทับซ้อนกัน 1024 ตัวอย่าง
ดู spectrogram นี้:
อันนี้มีขนาดหน้าต่าง 512 ตัวอย่างและทับซ้อนกัน 256 ตัวอย่าง
คุณเห็นความแตกต่างหรือไม่ อันแรกมีความละเอียดความถี่ดีกว่าอันที่สอง แต่อันที่สองมีความละเอียดเวลาดีกว่าเมื่อเทียบกับครั้งแรก ดังนั้นการเลือกขนาดหน้าต่างขึ้นอยู่กับแอปพลิเคชันของคุณ หากคุณกำลังจัดการกับตัวอย่างเสียงพูดเพื่อติดตามระยะห่างการเลือกขนาดหน้าต่างที่ใหญ่ขึ้นควรเป็นขนาดที่เหมาะสม