एफएफटी में कलाकृतियों


10

मुझे हाल ही में एहसास हुआ कि एफएफटी सही नहीं हैं। मतलब अगर मैं एक सिग्नल लेता हूं और फिर इसे FFT लेता हूं, और फिर एक उलटा FFT करता हूं, जिसके परिणामस्वरूप आउटपुट बिल्कुल इनपुट के समान नहीं है। यहाँ एक छवि है जो आपको दिखाती है कि मेरा क्या मतलब है:FFT हमेशा काम नहीं करता है

मुझे लगता है कि छवि काफी आत्म व्याख्यात्मक है। आईएफएफटी सिग्नल "एफएफटी स्पेक्ट्रम" का उलटा रूपांतरण है और "अंतर" प्लॉट आईएफएफटी सिग्नल और मूल सिग्नल के बीच का अंतर है (IFFT - मूल)।

स्पष्ट रूप से कुछ कलाकृतियाँ हैं, हालाँकि वे वास्तव में छोटी हैं। मैं जानना चाहता हूं कि वे पहले स्थान पर क्यों हैं। क्या यह फूरियर परिवर्तन की परिमित खिड़की के कारण है? या एफएफटी एल्गोरिथ्म में कुछ के कारण?

नोट: इस प्लॉट के ३२ अंक हैं, लेकिन मैंने १००, १०००, १०२०, २१५, ६४ और ६४ अंकों के साथ जांच की है, और हमेशा एक समान परिमाण के अंतर में यह अवशेष है (या तो10-16 या 10-15)।


4
सभी सीमित-सटीक गणित में ये त्रुटियां हैं, न कि केवल एफएफटी।
एंडोलिथ

जवाबों:


16

आपके द्वारा देखे जाने वाले अंतर अस्थायी बिंदु प्रारूप में संख्यात्मक त्रुटियों के कारण हैं। एक एफएफटी और एक उलटा एफएफटी प्रदर्शन करने के लिए आवश्यक सभी ऑपरेशन केवल परिमित परिशुद्धता के साथ किए जा सकते हैं और आपने अपने निचले दाएं भूखंड में इस परिमित सटीकता का परिणाम दिखाया है।


क्या कोई ऐसी स्थिति होगी जहां यह त्रुटि फ्लोटिंग पॉइंट परिशुद्धता से परे हो सकती है?
किच्ची

6
और सिर्फ @ मैटल के जवाब की पुष्टि करने के लिए: 10-162-53और डबल-सटीक फ़्लोटिंग पॉइंट संख्या में मंटिसा के 53 बिट्स हैं। तो आपको जो गोल त्रुटि दिखाई दे रही है, वह अंतिम 2 बिट्स में है। के रूप में अच्छा है कि यह हो जाता है।
भटकते हुए तर्क

@ किची: हाँ, कई स्थितियाँ हैं जहाँ संख्यात्मक त्रुटियाँ एक बड़ी समस्या हो सकती हैं, यहाँ तक कि फ्लोटिंग पॉइंट फॉर्मेट में भी। मैट्रिक्स उलटा कई उदाहरणों में से एक होगा। यह सभी को शर्त संख्या के साथ करना होगा ।
मैट एल

1
@MattL। - आश्चर्यजनक! संदर्भ के लिए धन्यवाद।
किच्ची

7

सामान्य तौर पर एक नंबर को डिजिटल रूप में बिल्कुल नहीं दिखाया जा सकता है। एक त्रुटि पेश की गई है। यदि आप माटलैब में हैं तो आप कमांड पर eps लिख सकते हैं, यह आपको एक नंबर देता है।

ईपीएस, बिना किसी तर्क के, 1.0 से अगली बड़ी दोहरी सटीक संख्या की दूरी है, जो ईपीएस = 2 ^ (- 52) है।

आपके द्वारा अपने भूखंड में दिखाई देने वाली त्रुटि eps द्वारा दी गई सीमा में है (जो कि 2 ^ (- 52) है)।

भले ही आप अपने IFFT से अपने आउटपुट में वास्तविक मूल्यों की उम्मीद करते हैं, लेकिन आप देख सकते हैं कि आपका काल्पनिक हिस्सा बिल्कुल शून्य के बराबर नहीं है। वही चीज।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.