2011-04-20 12 views
5

मुझे पता है कि समय डोमेन रूपांतरण दो मैट्रिस के बीच एक बहुत महंगा संचालन है और आप जटिल विमान में उन्हें बदलकर आवृत्ति डोमेन में प्रदर्शन कर सकते हैं और गुणा का उपयोग कर सकते हैं (और फिर समय डोमेन में वापस)एफएफटी के साथ कनवॉल्यूशन, यह कैसे काम करता है?

वैसे भी मैं यह समझ में नहीं आता कि यह CUDA एसडीके में कैसे किया जाता है जहां डेटा और कर्नेल को गद्देदार बनाया जाता है और दो बफर (m_Padded कर्नेल और m_PaddedData) में डाल दिया जाता है, यह Cooley-Tuckey विधि को तेज़ करना चाहिए, फिर फ़ंक्शन cufftExecC2C को पहले बदलने के लिए कहा जाता है कर्नेल (और सी 2 सी क्यों? जटिल-से-जटिल, क्यों जटिल नहीं है?) जटिल विमान में और फिर पूरे डेटा को उसी विमान में

परिभाषित कर्नेल spProcess2D_ कर्नेल तब एक में kicks डी आवृत्ति डोमेन में डेटा और कर्नेल के बीच गुणा को सामान्यीकृत और निष्पादित करता है (दो कार्यों के गुणा को कैसे करें? मुझे लगता है कि उनका मतलब दो कार्यों को लिखना है) और सी 2 सी रूपांतरण के साथ वापस (अभी भी सोच रहा है कि क्यों सी 2 सी और सी 2 आर नहीं)

+0

क्या आप 'simpleCUFFT.cu' उदाहरण का जिक्र कर रहे हैं? –

+0

हाँ सर, बिल्कुल –

उत्तर

2

यह एफएफटी के साथ क्यों किया जा सकता है, आपको convolution theorem के बारे में पढ़ने की जरूरत है।

सामान्य रूप से, आपका इनपुट डेटा जटिल हो सकता है। इसलिए यही कारण है कि सी 2 सी का उपयोग किया जाता है।

+1

धन्यवाद लेकिन मैं यह नहीं खोज रहा हूं कि यह किया जा सकता है, मैं उससे सहमत हूं। लेकिन मुझे नहीं पता कि यह कैसे "0" लागू किया गया है –

+0

@ पॉल: फिर मुझे यकीन नहीं है कि आपका प्रश्न क्या है ... –

+0

मुझे यकीन नहीं है कि सीएफडीए एसडीके में एफएफटी कैसे लागू किया गया है, मैंने इसे पढ़ा लेकिन इसे समझ नहीं सकता –

संबंधित मुद्दे