2011-03-09 18 views
6

के लिए स्केलिंग कारक मैंने एक साधारण परीक्षण कार्यक्रम लिखा, जहां मैं कॉम्प्लेक्स एफटी के कॉम्प्लेक्स कर रहा था और मैंने अभी कुछ डेटा 1..50 जेनरेट किया और सरणी के प्रत्येक इंडेक्स के लिए वास्तविक और काल्पनिक भाग में फंस गया।सीयूएफएफटी

जब मैं ऐसा करते हैं IFFT (FFT (ए)) की तरह एक ऑपरेशन = एक

उन्हें बाहर का परीक्षण करने के

, मैं प्रत्येक लाइब्रेरी के लिए अलग-अलग परिणाम हो रही है।

FFTW, मैं, लेन (ए) द्वारा उत्पादन विभाजित करने के लिए मूल एक

वापस पाने के लिए हालांकि, ऐसा करने से आगे तो CUFFT साथ FFT रिवर्स है जैसे मैं (sqrt से विभाजित करने के लिए है यह लग रहा है (2) * 50) मूल डेटा पर वापस जाने के लिए।

यह अतिरिक्त वर्ग रूट कारक कहां से आ रहा है?

सीयूएफएफटी दस्तावेज के अनुसार: सीयूएफएफटी सामान्यीकृत एफएफटी करता है; यानी, एफएफटी को इनपुट डेटा सेट पर आगे बढ़कर पर एक व्यस्त एफएफटी के बाद तत्वों की संख्या के आधार पर इनपुट के बराबर डेटा उत्पन्न करता है। डेटा सेट के आकार के पारस्परिक रूप से स्केलिंग को स्केलिंग उपयोगकर्ता के लिए उपयुक्त फिट के रूप में करने के लिए छोड़ दिया जाता है।

धन्यवाद अग्रिम में

+0

क्या यह 1 डी एफएफटी फ़ंक्शन है? – fabrizioM

+0

क्या आप उन परिवर्तनों का उल्लेख कर सकते हैं जो आप कर रहे हैं? sqrt (2) नाम तत्काल समझ में आता है। –

+0

यह सही नहीं लगता है। सीयूडीए दस्तावेज स्पष्ट रूप से कहता है कि इसे सरणी की लंबाई से स्केल किया जाना चाहिए। क्या आप वाकई लंबाई की गणना कर रहे हैं? – Mikola

उत्तर

0

यह जटिल संख्या के पूर्ण मूल्यों की गणना के तरीके के साथ एक समस्या हो रही है। std :: जटिल पुस्तकालय में, यह वेक्टर की दूरी की गणना कर रहा था।

6

CUFFT FFTW रूप में एक ही व्यवहार है, यह unnormalized FFTs गणना करता है। IFFT(FFT(A))=n A जहां एन वेक्टर की लंबाई है। लंबाई n नमूने की संख्या में है (फ्लोट या बाइट्स नहीं)। सी 2 आर और आर 2 सी के साथ एफएफटीडब्ल्यू और सीयूएफएफटी के बीच कुछ पैडिंग अंतर हैं जो एक साधारण तुलना को खराब कर सकते हैं, लेकिन सी 2 सी के लिए नहीं। मैं आपके डेटा सेटअप और लंबाई की गणना को दोबारा जांचूंगा, और एफएफटीडब्ल्यू और सीयूएफएफटी दोनों में अपनी योजना को सत्यापित करूंगा।