NumPy 1.14 - Discrete Fourier Transform (numpy.fft)

असतत फूरियर रूपांतरण (numpy.fft)




numpy

असतत फूरियर रूपांतरण (numpy.fft)

मानक एफएफटी

fft ([, n, अक्ष, आदर्श]) एक आयामी असतत फूरियर ट्रांसफॉर्म की गणना करें।
ifft ([, n, अक्ष, आदर्श]) एक आयामी व्युत्क्रम असतत फूरियर ट्रांसफॉर्म की गणना करें।
fft2 ([ए, एस, कुल्हाड़ियों, आदर्श]) 2-आयामी असतत फूरियर ट्रांसफॉर्म की गणना करें
ifft2 ([ए, एस, कुल्हाड़ियों, आदर्श]) 2-आयामी व्युत्क्रम असतत फूरियर ट्रांसफॉर्म की गणना करें।
fftn ([ए, एस, कुल्हाड़ियों, आदर्श]) एन-आयामी असतत फूरियर ट्रांसफॉर्म की गणना करें।
ifftn ([ए, एस, कुल्हाड़ियों, आदर्श]) एन-डायनामिक व्युत्क्रम असतत फूरियर ट्रांसफॉर्म की गणना करें।

असली एफएफटी

rfft ([ए, एन, अक्ष, आदर्श]) वास्तविक इनपुट के लिए एक आयामी असतत फूरियर ट्रांसफॉर्म की गणना करें।
irfft ([ए, एन, अक्ष, आदर्श]) वास्तविक इनपुट के लिए n-बिंदु DFT के व्युत्क्रम की गणना करें।
rfft2 ([, s, axes, norm]) वास्तविक सरणी के 2-आयामी FFT की गणना करें।
irfft2 ([, s, axes, norm]) एक वास्तविक सरणी के 2-आयामी उलटा एफएफटी की गणना करें।
rfftn ([, s, कुल्हाड़ियों, आदर्श]) वास्तविक इनपुट के लिए एन-आयामी असतत फूरियर ट्रांसफॉर्म की गणना करें।
irfftn ([, s, axes, norm]) वास्तविक इनपुट के एन-आयामी एफएफटी के व्युत्क्रम की गणना करें।

हर्मिटियन एफएफटी

hfft ([ए, एन, अक्ष, आदर्श]) एक सिग्नल के FFT की गणना करें जिसमें हेर्मिटियन समरूपता है, अर्थात, एक वास्तविक स्पेक्ट्रम।
ihfft ([ए, एन, अक्ष, आदर्श]) एक सिग्नल के व्युत्क्रमानुपाती FFT की तुलना करें जिसमें हरमिटियन समरूपता हो।

हेल्पर दिनचर्या

fftfreq (n [, d]) असतत फूरियर रूपांतरण नमूना आवृत्तियों को लौटाएं।
rfftfreq (n [, d]) असतत फूरियर ट्रांसफॉर्म सैंपल फ्रिक्वेंसी (आरएफटी, इरफेट के साथ उपयोग के लिए) लौटें।
fftshift (x [, कुल्हाड़ियों]) स्पेक्ट्रम के केंद्र में शून्य-आवृत्ति घटक को शिफ्ट करें।
ifftshift (x [, कुल्हाड़ियों]) fftshift का विलोम।

पृष्ठभूमि की जानकारी

फूरियर विश्लेषण मूल रूप से आवधिक घटकों के योग के रूप में एक फ़ंक्शन को व्यक्त करने के लिए और उन घटकों से फ़ंक्शन को पुनर्प्राप्त करने के लिए एक विधि है। जब फ़ंक्शन और इसके फूरियर ट्रांसफॉर्म दोनों को विवेकीकृत समकक्षों के साथ बदल दिया जाता है, तो इसे असतत फूरियर ट्रांसफॉर्म (डीएफटी) कहा जाता है। डीएफटी भाग में संख्यात्मक कंप्यूटिंग का एक मुख्य आधार बन गया है क्योंकि इसे कंप्यूटिंग के लिए बहुत तेज़ एल्गोरिथ्म कहा जाता है, जिसे फास्ट फूरियर ट्रांसफ़ॉर्म (एफएफटी) कहा जाता है, जिसे गॉस (1805) के लिए जाना जाता था और Cooley द्वारा अपने वर्तमान रूप में प्रकाश में लाया गया था और टके [CT600] । एट अल दबाएं। [NR600] फूरियर विश्लेषण और इसके अनुप्रयोगों के लिए एक सुलभ परिचय प्रदान करते हैं।

क्योंकि असतत फूरियर ट्रांसफॉर्म अपने इनपुट को ऐसे घटकों में अलग करता है जो असतत आवृत्तियों पर योगदान करते हैं, इसमें डिजिटल सिग्नल प्रोसेसिंग में बड़ी संख्या में एप्लिकेशन होते हैं, उदाहरण के लिए, फ़िल्टरिंग के लिए, और इस संदर्भ में ट्रांसफॉर्मेट के लिए असतत इनपुट को सिग्नल के रूप में संदर्भित किया जाता है , जो समय डोमेन में मौजूद है। आउटपुट को स्पेक्ट्रम या ट्रांसफॉर्म कहा जाता है और आवृत्ति डोमेन में मौजूद होता है।

कार्यान्वयन का विवरण

डीएफटी को परिभाषित करने के कई तरीके हैं, घातांक, सामान्यीकरण आदि के संकेत में भिन्न। इस कार्यान्वयन में, डीएफटी को परिभाषित किया गया है।

A_k = \ sum_ {m = 0} ^ {n-1} a_m \ exp \ left \ {- 2 \ pi i {mk \ n n} \ right \} \ qquad k = 0, \ ldots, n-1।

DFT सामान्य रूप से जटिल इनपुट और आउटपुट के लिए परिभाषित किया गया है, और रैखिक आवृत्ति पर एकल-आवृत्ति घटक है च एक जटिल घातांक द्वारा दर्शाया गया है a_m = \ exp \ {2 \ pi i \, f m \ Delta t \} , कहा पे \ डेल्टा टी नमूना अंतराल है।

परिणाम में दिए गए मूल्य तथाकथित एक € €standardâ € क्रम का पालन करते हैं: यदि A = fft(a, n) , तो A[0] में शून्य-आवृत्ति शब्द (संकेत का योग) होता है, जो हमेशा विशुद्ध रूप से वास्तविक होता है वास्तविक जानकारी। तब A[1:n/2] में सकारात्मक-आवृत्ति शब्द शामिल होते हैं, और A[n/2+1:] में नकारात्मक-आवृत्ति की आवृत्ति होती है, जो क्रमिक रूप से नकारात्मक आवृत्ति के क्रम में होती है। इनपुट बिंदुओं की एक समान संख्या के लिए, A[n/2] सकारात्मक और नकारात्मक Nyquist आवृत्ति दोनों का प्रतिनिधित्व करता है, और शुद्ध रूप से वास्तविक इनपुट के लिए भी वास्तविक है। इनपुट बिंदुओं की एक विषम संख्या के लिए, A[(n-1)/2] में सबसे बड़ी सकारात्मक आवृत्ति होती है, जबकि A[(n+1)/2] में सबसे बड़ी नकारात्मक आवृत्ति होती है। रूटीन np.fft.fftfreq(n) आउटपुट में संबंधित तत्वों की आवृत्तियों को देते हुए एक सरणी देता है। रूटीन np.fft.fftshift(A) बदलाव और उनकी आवृत्तियों को शून्य-आवृत्ति घटकों को मध्य में रखने के लिए, और np.fft.ifftshift(A) उस शिफ्ट को np.fft.ifftshift(A)

जब इनपुट a समय-डोमेन संकेत है और A = fft(a) , np.abs(A) इसका आयाम स्पेक्ट्रम है और np.abs(A)**2 इसका पावर स्पेक्ट्रम है। चरण स्पेक्ट्रम np.angle(A) द्वारा प्राप्त किया जाता है।

उलटा डीएफटी के रूप में परिभाषित किया गया है

a_m = \ frac {1} {n} \ sum_ {k = 0} ^ {n-1} A_k \ exp \ left \ {2 \ pi i {mk over \ _ n \ _ \ _ \ _ \ _ qquad_ = 0, \ ldots, n-1।

यह घातीय तर्क के संकेत और डिफ़ॉल्ट सामान्यीकरण द्वारा आगे के परिवर्तन से भिन्न होता है 1 / n

मानकीकरण

डिफॉल्ट नॉर्मलाइजेशन में डायरेक्ट ट्रांसफ़ॉर्म अनसक्लेड होते हैं और इनवर्स ट्रांसफ़ॉर्म को स्केल किया जाता है 1 / n"ortho" कीवर्ड तर्क norm निर्धारित करके एकात्मक परिवर्तन प्राप्त करना संभव है (डिफ़ॉल्ट None ) ताकि प्रत्यक्ष और उलटा दोनों रूपांतरों को बढ़ाया जा सके 1 / \ sqrt {n}

रियल और हर्मिटियन रूपांतरित होते हैं

जब इनपुट शुद्ध रूप से वास्तविक होता है, तो इसका परिवर्तन हर्मिटियन होता है, अर्थात आवृत्ति पर घटक f_k आवृत्ति पर घटक का जटिल संयुग्म है -f_k , जिसका अर्थ है कि वास्तविक आदानों के लिए नकारात्मक आवृत्ति घटकों में कोई जानकारी नहीं है जो कि सकारात्मक आवृत्ति घटकों से पहले से उपलब्ध नहीं है। rfft फ़ंक्शन के परिवार को वास्तविक इनपुट पर संचालित करने के लिए डिज़ाइन किया गया है, और यह समरूपता केवल सकारात्मक आवृत्ति घटकों की गणना करके, Nyquist आवृत्ति तक और इसमें शामिल हैं। इस प्रकार, n इनपुट पॉइंट्स n/2+1 जटिल आउटपुट पॉइंट उत्पन्न करते हैं। इस परिवार के व्युत्क्रम इसके इनपुट के समान समरूपता को मानते हैं, और n अंक के आउटपुट के लिए n/2+1 इनपुट बिंदुओं का उपयोग करता है।

इसके विपरीत, जब स्पेक्ट्रम विशुद्ध रूप से वास्तविक होता है, तो संकेत हर्मिटियन होता है। hfft का hfft परिवार आवृत्ति डोमेन में n वास्तविक बिंदुओं के लिए इनपुट (समय) डोमेन में n/2+1 जटिल बिंदुओं का उपयोग करके इस समरूपता का शोषण करता है।

उच्च आयामों में, FFTs का उपयोग किया जाता है, उदाहरण के लिए, छवि विश्लेषण और फ़िल्टरिंग के लिए। एफएफटी की कम्प्यूटेशनल दक्षता का मतलब है कि यह बड़ी मात्रा में गणना करने के लिए एक तेज़ तरीका भी हो सकता है, इस संपत्ति का उपयोग करके कि समय डोमेन में एक कन्वोकेशन आवृत्ति डोमेन में बिंदु-दर-बिंदु गुणन के बराबर है।

उच्च आयाम

दो आयामों में, DFT के रूप में परिभाषित किया गया है

A_ {kl} = \ sum_ {m = 0} ^ {M-1} \ sum_ {n = 0} ^ {N-1} a_ {mn} \ exp \ left \ {- 2 \ pi i \ {{{ mk \ over M} + {nl \ over N} \ right) \ right \} \ qquad k = 0, \ ldots, M-1; \ quad l = 0, \ ldots, N-1;

जो उच्च आयामों के लिए स्पष्ट तरीके से फैलता है, और उच्च आयामों में व्युत्क्रम भी उसी तरह से विस्तारित होता है।

संदर्भ

[CT600] कॉली, जेम्स डब्ल्यू।, और जॉन डब्ल्यू। ट्युकी, 1965, कॉम्प्लेक्स फूरियर सीरीज़ की मशीन गणना के लिए एक एल्गोरिथ्म, एक € गणित। कंप्यूटर। 19: 297-301।
[NR600] प्रेस, डब्ल्यू।, टेउकोल्स्की, एस।, वेटरलाइन, डब्ल्यूटी, और फ्लेनरी, बीपी, 2007, न्यूमेरिकल रेसिपी: द आर्ट ऑफ साइंटिफिक कंप्यूटिंग , ch। 12-13। कैम्ब्रिज Univ। प्रेस, कैम्ब्रिज, यूके।

उदाहरण

उदाहरण के लिए, विभिन्न कार्यों को देखें।