สิ่งประดิษฐ์ใน FFT


10

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

ฉันคิดว่าภาพนั้นอธิบายได้ด้วยตนเอง สัญญาณ IFFT เป็นเพียงการแปลงผกผันของ "FFT spectrum" และพล็อต "ความแตกต่าง" คือความแตกต่างระหว่างสัญญาณ IFFT และสัญญาณดั้งเดิม ( )IFFT - Original

เห็นได้ชัดว่ามีสิ่งของบางอย่างแม้ว่าจะเล็กจริง ๆ ฉันอยากรู้ว่าทำไมพวกเขาถึงเกิดขึ้นตั้งแต่แรก เป็นเพราะหน้าต่าง จำกัด ของการแปลงฟูริเยร์หรือไม่? หรือเพราะบางสิ่งในอัลกอริทึม FFT

หมายเหตุ:พล็อตนี้มี 32 คะแนน แต่ฉันได้ตรวจสอบกับ 100, 1,000, 1024, 256 และ 64 คะแนนและมีสิ่งตกค้างนี้ในความแตกต่างของขนาดที่คล้ายกันเสมอ (ทั้งหรือ )10161015


4
คณิตศาสตร์ที่มีความแม่นยำ จำกัด ทั้งหมดมีข้อผิดพลาดไม่ใช่เฉพาะ FFT
endolith

คำตอบ:


16

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


จะมีสถานการณ์ที่ข้อผิดพลาดนี้อาจระเบิดเกินความแม่นยำจุดลอยตัวหรือไม่?
Kitchi

6
และเพื่อยืนยันคำตอบของ @ MattL:และมี mantissa 53 บิตในเลขทศนิยมที่มีความแม่นยำสองเท่า ดังนั้นข้อผิดพลาดในการปัดเศษที่คุณเห็นนั้นอยู่ใน 2 บิตสุดท้าย นั่นเป็นเรื่องดีเท่าที่จะได้รับ 1016253
หลงทางตรรกะ

@ Kitchi: ใช่มีหลายสถานการณ์ที่ข้อผิดพลาดทางตัวเลขอาจเป็นปัญหาที่สำคัญแม้ในรูปแบบจุดลอยตัว เมทริกซ์ผกผันจะเป็นหนึ่งในตัวอย่างมากมาย ทุกอย่างจะทำอย่างไรกับจำนวนสภาพ
Matt L.

1
@MattL - ยอดเยี่ยม! ขอบคุณสำหรับการอ้างอิง
Kitchi

7

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

EPS ที่ไม่มีอาร์กิวเมนต์คือระยะห่างจาก 1.0 ถึงจำนวนความแม่นยำสองเท่าที่ใหญ่กว่าถัดไปนั่นคือ EPS = 2 ^ (- 52)

ข้อผิดพลาดที่คุณเห็นในพล็อตของคุณอยู่ในช่วงที่ส่งคืนโดย eps (นั่นคือ 2 ^ (- 52))

แม้ว่าคุณจะคาดหวังคุณค่าที่แท้จริงในผลลัพธ์จาก IFFT ของคุณคุณอาจเห็นว่าส่วนจินตภาพของคุณไม่เท่ากับศูนย์ สิ่งเดียวกัน

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