คุณสามารถเพิ่มความละเอียดความถี่ของ FFT โดยไม่เพิ่มขนาดหน้าต่างได้หรือไม่


12

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

44100Hzสมมติว่าผมมีสัญญาณที่มีความถี่ตัวอย่าง 'CD' พร้อมหน้าต่างของ1024ตัวอย่างที่ฉันได้รับมติ bin 22500Hz/512=43Hzความถี่ของ นี้ก็พอเพียงที่จะมองเห็นโน้ตเปียโนสูงเช่น: และC5 = 523.251HzC#5 = 554.365

ฉันเคยคิดว่า1024ค่อนข้างเป็นหน้าต่างบานใหญ่ แต่มันอาจจะไม่ใช่และโดยปกติจะใช้หน้าต่างขนาดใหญ่กว่าเพื่อตรวจจับชิ้นงาน?

สามารถเพิ่มความละเอียดความถี่ด้วยวิธีอื่นนอกเหนือจากการเพิ่มขนาดหน้าต่างซึ่งการแก้ไขเวลาแย่ลงหรือไม่ ฉันคิดถึงสองวิธี:

method1:

  1. แบ่งสัญญาณออกเป็นคลื่นความถี่ด้วย bandpassfilters (เช่น0-11.25Hzและ11.25-22.5Hz)
  2. Downsample แบนด์ที่สูงขึ้นเพื่อให้ความถี่สูงดั้งเดิมตอนนี้เป็นความถี่ต่ำ (เช่นสำหรับแบนด์ที่สอง11.25-22.5Hz -> 0Hz-22.5Hz) - ไม่แน่ใจว่าเป็นไปได้
  3. ถังขยะที่เกิดขึ้นพร้อมกันตั้งค่าด้วยฉลากที่ปรับ

Method2:

  1. ใช้ชุดตัวกรอง lowpass พร้อมเพิ่มขีด จำกัด
  2. ดำเนินการ FFT เมื่อเพิ่มช่วงความถี่
  3. สำหรับแต่ละความถี่ให้ใช้ความละเอียดที่ดีที่สุด (ถังขยะจาก FFT แรกซึ่งรวมถึงความถี่นี้)
  4. สิ่งนี้จะทำให้ความถี่ต่ำมีความละเอียดที่ดีขึ้น แต่ฉันคิดว่ามันโอเคเพราะสำหรับโน้ตที่สูงขึ้นความแตกต่างของความถี่ก็น่ากลัวกว่า

ฉันจะขอบคุณข้อสังเกตใด ๆ เกี่ยวกับปัญหานี้

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


ถ้าคุณรู้ว่ามันมีองค์ประกอบไซน์เพียงอันเดียวคุณสามารถใส่พาราโบลาเข้ากับถังขยะใกล้เคียงของยอดเขาและสอดแทรกเพื่อหายอด "จริง" ไม่แน่ใจว่าจะเปรียบเทียบกับวิธีเฟสที่อธิบายโดย @pichenettes อย่างไร
endolith

คำตอบ:


9

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

ดูตัวอย่างฟังก์ชั่น ifgram ในการใช้งานแบบจำลอง Matlab ของสัญญาณเสียงแบบไซน์

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


คุณหมายความว่าอย่างไรโดยวิธีการทางพารามิเตอร์ คุณเป็นเช่นนั้นหรือไม่เมื่อหลายเดือนก่อนได้พูดถึงอัลกอริธึมที่เหมือน FFT แต่มีสเกลคู่ความถี่มากกว่าสเกลความถี่สม่ำเสมอ
Jim Clay

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

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

@JimClay: นี่อาจจะย้ายที่นี่หรือ
endolith

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

2

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

วิธีการประมาณค่าผลลัพธ์ FFT ทั่วไปสำหรับการประมาณค่าความละเอียดที่สูงกว่านั้น ได้แก่ การประมาณพาราโบลา, การแก้ไข Sinc, การเติมข้อมูลในศูนย์ให้เป็น FFT ที่ยาวกว่ามากและวิธีการส่งสัญญาณเฟสโดยใช้ (เล็กน้อย) การชดเชยหน้าต่างซ้อนกัน

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


1

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

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

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

ขอบคุณสำหรับคำตอบความคิดเห็นและลิงก์ทั้งหมด


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

1

หากคุณเก็บ "ประวัติ" ของอินพุตและใช้เพื่อซ้อนทับ DFT ของคุณก็จะให้ข้อมูลเพิ่มเติมเพื่อดึงเนื้อหาสเปกตรัมออกมา แน่นอนว่าขึ้นอยู่กับลักษณะของสัญญาณของคุณ มันจะคล้ายกันในรูปแบบของฟังก์ชันการแจกแจงความน่าจะเป็น

สิ่งนี้จะทำให้ DFT ของคุณมีระยะห่างใกล้กันมากขึ้น อย่างไรก็ตามมันยังคงเพิ่มความไม่แน่นอนทางเวลาของแต่ละ DFT ซึ่งถูก จำกัด โดยกฎแห่งธรรมชาติ: ค่าที่แน่นอนของพฤติกรรมทางโลกและทางสเปกตรัมไม่สามารถกำหนดพร้อมกันได้

แม้ว่าเนื้อหาความถี่จะไม่แตกต่างกันมากนักในหน้าต่าง แต่ก็น่าจะใช้ได้

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