ฉันต้องการใช้ STFT สำหรับการวิเคราะห์แบบหลายจุด ฉันรู้ว่าการตรวจจับชิ้นงานที่มีอยู่ในสัญญาณนั้นเป็นเพียงการเริ่มต้น ยังฉันมีปัญหากับมัน
44100Hz
สมมติว่าผมมีสัญญาณที่มีความถี่ตัวอย่าง 'CD' พร้อมหน้าต่างของ1024
ตัวอย่างที่ฉันได้รับมติ bin 22500Hz/512=43Hz
ความถี่ของ นี้ก็พอเพียงที่จะมองเห็นโน้ตเปียโนสูงเช่น:
และC5 = 523.251Hz
C#5 = 554.365
ฉันเคยคิดว่า1024
ค่อนข้างเป็นหน้าต่างบานใหญ่ แต่มันอาจจะไม่ใช่และโดยปกติจะใช้หน้าต่างขนาดใหญ่กว่าเพื่อตรวจจับชิ้นงาน?
สามารถเพิ่มความละเอียดความถี่ด้วยวิธีอื่นนอกเหนือจากการเพิ่มขนาดหน้าต่างซึ่งการแก้ไขเวลาแย่ลงหรือไม่ ฉันคิดถึงสองวิธี:
method1:
- แบ่งสัญญาณออกเป็นคลื่นความถี่ด้วย bandpassfilters (เช่น
0-11.25Hz
และ11.25-22.5Hz
) - Downsample แบนด์ที่สูงขึ้นเพื่อให้ความถี่สูงดั้งเดิมตอนนี้เป็นความถี่ต่ำ (เช่นสำหรับแบนด์ที่สอง
11.25-22.5Hz -> 0Hz-22.5Hz
) - ไม่แน่ใจว่าเป็นไปได้ - ถังขยะที่เกิดขึ้นพร้อมกันตั้งค่าด้วยฉลากที่ปรับ
Method2:
- ใช้ชุดตัวกรอง lowpass พร้อมเพิ่มขีด จำกัด
- ดำเนินการ FFT เมื่อเพิ่มช่วงความถี่
- สำหรับแต่ละความถี่ให้ใช้ความละเอียดที่ดีที่สุด (ถังขยะจาก FFT แรกซึ่งรวมถึงความถี่นี้)
- สิ่งนี้จะทำให้ความถี่ต่ำมีความละเอียดที่ดีขึ้น แต่ฉันคิดว่ามันโอเคเพราะสำหรับโน้ตที่สูงขึ้นความแตกต่างของความถี่ก็น่ากลัวกว่า
ฉันจะขอบคุณข้อสังเกตใด ๆ เกี่ยวกับปัญหานี้
ฉันยังอ่านที่นี่: ขนาดหน้าต่างอัตราตัวอย่างมีผลต่อการประมาณระยะห่างของ FFT อย่างไร เกี่ยวกับวิธีการปรับปรุงผลลัพธ์การเลือกสูงสุด ฉันคิดว่าจะพยายามใช้มัน