क्या दोहरा फूरियर रूपांतरण करने के लिए कोई व्यावहारिक अनुप्रयोग है? … या एक समय क्षेत्र इनपुट पर उलटा फूरियर रूपांतरण?


11

गणित में आप एक फ़ंक्शन के डबल व्युत्पन्न, या डबल इंटीग्रल ले सकते हैं। ऐसे कई मामले हैं जहां एक दोहरे व्युत्पन्न मॉडल का प्रदर्शन एक व्यावहारिक वास्तविक दुनिया की स्थिति है, जैसे किसी वस्तु के त्वरण का पता लगाना।

चूंकि फूरियर ट्रांसफॉर्म एक इनपुट के रूप में एक वास्तविक या जटिल सिग्नल लेता है, और एक आउटपुट के रूप में एक कॉम्प्लेक्स सिग्नल का उत्पादन करता है, इसलिए आपको उस आउटपुट को लेने और दूसरी बार फूरियर ट्रांसफॉर्म को लागू करने से रोकना कुछ भी नहीं है ... क्या करने के लिए कोई व्यावहारिक उपयोग हैं? यह? क्या यह कुछ जटिल वास्तविक दुनिया स्थितियों को मॉडल करने में मदद करता है?

इसी तर्क के साथ, कुछ भी आपको अपने मूल समय-डोमेन इनपुट सिग्नल के उल्टे फूरियर ट्रांसफॉर्म को लेने से नहीं रोकेगा ... क्या यह कभी उपयोगी होगा? क्यों या क्यों नहीं?

जवाबों:


9

"क्या कोई व्यावहारिक अनुप्रयोग है?" निश्चित रूप से हाँ, कम से कम कोड की जांच करने के लिए, और त्रुटियों को बाध्य करें।

"सिद्धांत, सिद्धांत और अभ्यास मैच में। व्यवहार में, वे नहीं करते हैं।" इसलिए, गणितीय रूप से, नहीं, जैसा कि मैट द्वारा उत्तर दिया गया है। क्योंकि (जैसा कि पहले ही उत्तर दिया गया है), (एक संभावित स्केलिंग कारक तक)। हालांकि, यह कम्प्यूटेशनल रूप से उपयोगी हो सकता है, क्योंकि उपर्युक्त समीकरण आमतौर पर असतत फूरियर रूपांतरण, और इसके तेज अवतार, एफएफटी के माध्यम से कार्यान्वित किया जाता है।F(F(x(t)))=x(t)

एक पहला कारण इच्छाशक्ति से यह पता लगाने के लिए है कि फूरियर कार्यान्वयन, चाहे आपके द्वारा कोडित किया गया हो, किसी अन्य व्यक्ति या किसी पुस्तकालय से, यह आपके डेटा पर क्या करना चाहिए। नमूना आदेश, स्केलिंग कारक, इनपुट प्रकार (वास्तविकता, बिट-डेप्थ) या लंबाई पर सीमाएं एफएफटी जैसे फूरियर कार्यान्वयन के लिए संभावित बाद की त्रुटियों के स्रोत हैं। इसलिए एक पवित्रता की जाँच के रूप में, यह जांचना हमेशा अच्छा होता है कि कार्यान्वित संस्करण विरासत में मिले, कम से कम लगभग, सैद्धांतिक गुण। जैसा कि आप देखेंगे, जैसा कि माचुपिचू द्वारा दिखाया गया है, आप वास्तव में उलटे एक वास्तविक इनपुट को पुनर्प्राप्त नहीं करते हैं: अक्सर, काल्पनिक भाग बिल्कुल शून्य नहीं होता है, और वास्तविक भाग वह होता है जो अपेक्षित होता है, लेकिन अपूर्ण कंप्यूटर गणना के कारण एक छोटी सापेक्ष त्रुटि के भीतर (फ्लोटिंग पॉइंट) मशीन-निर्भर सहिष्णुता के भीतर। यह निम्नलिखित चित्र पर दिखाई देता है। FFT को एक यादृच्छिक 32-नमूना सिग्नल पर दो बार लागू किया जाता है, और फ़्लिप किया जाता है। जैसा कि आप देख सकते हैं, डबल परिशुद्धता फ़्लोट्स का उपयोग करके त्रुटि छोटी है।

डेटा, इसका डबल फ़्लिप FFT और त्रुटि

यदि त्रुटि अपेक्षाकृत छोटी नहीं है, तो आपके द्वारा उपयोग किए जाने वाले कोड में गलतियां हो सकती हैं।

एक दूसरा टोमोग्राफी की तरह विशाल डेटा वॉल्यूम या पुनरावृत्त FFT संगणनाओं की बड़ी मात्रा से संबंधित है। वहां, पिछली छोटी सापेक्ष त्रुटियां जमा हो सकती हैं और प्रचारित हो सकती हैं, और यहां तक ​​कि कम्प्यूटेशनल डाइवर्जेंस या त्रुटियों को भी कुछ विवरणों के लिए प्रेरित कर सकते हैं । यह निम्नलिखित चित्र पर दिखाई देता है। इतने लंबे सिग्नल ( नमूने) के लिए, हम निम्नलिखित पुनरावृत्तियों का प्रदर्शन करते हैं: जहां एफएफटी को दर्शाता है। प्रदर्शित आंकड़ा सबमर्सिबल है। और हम अधिकतम त्रुटि की गणना करते हैंप्रत्येक पुनरावृत्ति पर।x01e6

xk+1=Re(f(f(f(f(xk)))))
fmax|xkx0|

डेटा, इसकी चार गुना FFT और पुनरावृत्तियों पर अधिकतम त्रुटियां

जैसा कि आप देख सकते हैं, सिग्नल के आकार के कारण त्रुटि के परिमाण का क्रम बदल गया है। साथ ही, अधिकतम त्रुटि लगातार बढ़ जाती है। पुनरावृत्तियों के बाद यह काफी छोटा रहता है। लेकिन आप अनुमान लगा सकते हैं कि, -वॉक्सेल क्यूब और लाखों पुनरावृत्तियों के साथ, यह त्रुटि नगण्य हो सकती है।10001000×1000×1000

त्रुटि को बाध्य करना, और पुनरावृत्तियों पर इसके व्यवहार का मूल्यांकन करने से इस तरह के व्यवहार का पता लगाने में मदद मिल सकती है, और फिर उचित थ्रेसहोल्ड या राउंडिंग द्वारा कम किया जा सकता है।

अतिरिक्त जानकारी:


1
मैं वास्तव में इस उत्तर से प्यार करता हूं और मैंने इसे स्वीकृत उत्तर के रूप में चिह्नित किया होगा, लेकिन मुझे लगता है कि इस सवाल पर आने वाले अधिकांश लोगों की तलाश होगी जो मैट में लिंक में प्रदान की गई सैद्धांतिक जानकारी है। एक महान जवाब के लिए हालांकि +1।
tjwrona1992

1
मैं वास्तव में आपकी टिप्पणी की सराहना करता हूं। हालांकि, मैंने उचित आंकड़ों के साथ उत्तर को अपडेट किया है, यह दिखाने के लिए कि असतत फूरियर कार्यान्वयन मामलों में त्रुटियां।
लॉरेंट डूवल

17

नहीं, फूरियर ट्रांसफॉर्म को दो बार लेना समय उलटा (या आप जिस भी आयाम में हैं, उसके उलटा) के बराबर है। आपको बस बार एक स्थिरांक मिलता है जो फ़ॉइलर ट्रांसफ़ॉर्म के लिए आपके द्वारा उपयोग किए जाने वाले स्केलिंग के प्रकार पर निर्भर करता है।x(t)

उलटा फूरियर रूपांतरण एक समय डोमेन सिग्नल के लिए लागू होता है जो आवृत्ति आवृति के साथ स्पेक्ट्रम देता है। अधिक विवरण के लिए इस उत्तर पर एक नज़र डालें ।


4
आपने बस मेरे दिमाग को फिर से उड़ा दिया।
tjwrona1992

क्या मैं मैट का वर्णन करता हूं। L ने कहा लेकिन अपने कोड के साथ 2D में? यानी हमें f (-x, -y) मिलता है।
मच्युपचू

@ माचुपिचू, हाँ जो सही लगता है।
tjwrona1992

haha तो आप मेरे जवाब का चयन कर सकते हैं शीर्ष एक ^ ^ (वह 53K प्रतिनिधि है तो यह उसके लिए कोई फर्क नहीं पड़ता है)
Machupicchu

ठीक इसके बाद मैंने कहा कि मुझे महसूस हुआ कि सिग्नल हाहा पलटने के लिए डबल फूरियर ट्रांसफॉर्म से ज्यादा आसान तरीके हैं
tjwrona1992

16

जबकि फूरियर ट्रांसफॉर्म को सीधे एक पंक्ति में दो बार लेने से आपको केवल एक तुच्छ समय-उलटा होता है जो एफटी के बिना लागू करने के लिए बहुत सस्ता होगा , उपयोगी सामान है जो फूरियर ट्रांसफॉर्म लेकर, कुछ अन्य ऑपरेशन को लागू करने और फिर से कर सकता है फूरियर उस के परिणाम को बदलने। सबसे प्रसिद्ध उदाहरण है ऑटो सहसंबंध है, जो की तरह है घुमाव के साथ ही एक संकेत के। और कनवल्शन ( एन 2 ) हैं यदि भोलेपन से लागू किया जाता है, लेकिन केवल ( एन · लॉग एन) जब फूरियर रूपांतरण के माध्यम से चक्कर लेना। इसलिए ऑटोक्रेलेशन आम तौर पर एक सिग्नल को एफटी द्वारा किया जाता है, जो पूर्ण-वर्ग को ले जाता है, और आईएफटी-आईएनजी जो समय डोमेन में वापस आ जाता है।


2
इसके अलावा, वहाँ cepstrum है , फूरियर रूपांतरण के लघुगणक का उलटा फूरियर रूपांतरण। इसका उपयोग आवधिक संकेतों का पता लगाने के लिए किया जा सकता है।
ओली नीमितालो

12

2 डी फूरियर ट्रांसफॉर्म (2D डीएफटी) का उपयोग इमेज प्रोसेसिंग में किया जाता है क्योंकि एक इमेज को 2 डी सिग्नल के रूप में देखा जा सकता है। उदाहरण के लिए एक ग्रेस्केल छवि , , का मतलब है कि निर्देशांक और में छवि की तीव्रता मान z है। उदाहरण के लिए इसे देखें:II(x,y)=zxy

https://ch.mathworks.com/help/matlab/ref/fft2.html

इसे इस्तेमाल करे:

x=imread('cameraman.tif');
X=fft2(fft2(x));
imagesc(abs(X));

और इसकी तुलना करें:

x=imread('cameraman.tif');
X= ifft2(fft2(x));
imagesc(abs(X));

बल्कि ऐसा है। मैंने fft2 को कई बार लागू किया, दूसरी बार ifft2 को नहीं। मुझे लगता है कि यह दिखाता है कि @ मट्ट एल ने क्या कहा:

"फूरियर ट्रांसफॉर्म को दो बार लेना समय उलटा करने के बराबर है",

आप देख सकते हैं कि आईएफटी () में सकारात्मक के बजाय -i काल्पनिक नकारात्मक के कारण छवि उलटी है।

यहाँ छवि विवरण दर्ज करें

मैंने इसे 1D सिग्नल के लिए भी किया था (उदाहरण के लिए अस्थायी):

यहाँ छवि विवरण दर्ज करें


मुझे पता है कि 2 डी फूरियर ट्रांसफॉर्म के रूप में ऐसी कोई चीज है, लेकिन यह एक इनपुट सिग्नल लेने और एल्गोरिथम के माध्यम से चलाने और फिर उस रन के आउटपुट को लेने और फिर से चलाने के समान नहीं है।
tjwrona1992

1
फूरियर रूपांतरण वियोज्य है।
माचुपिचु

मेरा प्रश्न 2D फूरियर रूपांतरण के लिए भी लागू होगा। आप सिद्धांत में 2 डी इनपुट सिग्नल ले सकते हैं, 2 डी फूरियर ट्रांसफॉर्म लागू कर सकते हैं, फिर 2 डी आउटपुट सिग्नल ले सकते हैं और इसे इनपुट के रूप में उपयोग कर सकते हैं और 2 डी फूरियर ट्रांसफॉर्म को फिर से लागू कर सकते हैं।
tjwrona1992

मतलाब में देखें कि अगर आप निम्न कार्य करते हैं तो क्या खुशी होगी: cf. मैंने अपना उत्तर
मच्युपचू

1
मैं आपको पूर्ण मूल्य के बजाय वास्तविक भाग का उपयोग करने का सुझाव
लॉरेंट

6

दूसरे प्रश्न का उत्तर देने के लिए, डिजिटल संचार में अभी सेलफोन में उपयोग की एक तकनीक है जो आईएफएफटी को टाइम-डोमेन सिग्नल पर लागू करने का अच्छा उपयोग करती है। OFDM ट्रांसमीटर पर डेटा के एक समय-डोमेन अनुक्रम में एक IFFT लागू होता है, फिर रिसीवर पर FFT के साथ इसे उलट देता है। हालांकि साहित्य IFFT-> FFT का उपयोग करना पसंद करता है, लेकिन वास्तव में इससे कोई फर्क नहीं पड़ता कि कौन पहले आता है।

OFDM ट्रांसमीटर का आरेख

यहाँ मुख्य लाभ वामावर्त के उत्तर से संबंधित है। एक प्रकार की विकृति है जिसे मल्टीपाथ फिडिंग कहा जाता है , और घने शहरी क्षेत्रों में सेलफोन को इसके बहुत से सामना करना पड़ता है। हम अज्ञात गुणांक के साथ एक दृढ़ विश्वास के रूप में बहुपथ लुप्त होती मॉडल करना पसंद करते हैं। क्योंकि घटनाओं की श्रृंखला आईएफएफटी-> ट्रांसमिट-> मल्टीपाथ-> प्राप्त करें-> एफएफटी जैसे कुछ दिखती है, मल्टीपैथ लुप्त होती एफएफटी के माध्यम से जाएगी और अज्ञात मूल्यों के साथ एक सरल बिंदु-दर-बिंदु गुणा बन जाएगी। ये मान सजा गुणांक की तुलना में अनुमान लगाने और ठीक करने में बहुत आसान हैं।

यह प्रभाव एक सिग्नल को अधिक लचीला बनाने में सक्षम बनाता है जो मल्टीथैथ / फेडिंग के लिए होता है जो पूरे आवृत्ति चैनल को बाहर (या "नल") कर सकता है। यह लेख बताता है कि कैसे

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


वाह यह अविश्वसनीय रूप से दिलचस्प है! धन्यवाद! :)
tjwrona1992

1

यह जानकारी उपयोगकर्ता "बर्डवाइज" द्वारा प्रदान की गई थी, लेकिन उसके पास खुद को पोस्ट करने के लिए पर्याप्त प्रतिष्ठा नहीं थी इसलिए मैं इसे यहां उसके लिए पोस्ट करूंगा क्योंकि यह प्रासंगिक और उपयोगी लगता है।

"टिप्पणी करने के लिए इस मंच में मेरे पास पर्याप्त बिंदु नहीं हैं, इसलिए मैं इसे यहां कर रहा हूं: Accord.Math Hilbert Transform के स्रोत कोड पर एक नज़र डालें और आप देखेंगे कि यह एक व्यवहार्य विकल्प क्यों हो सकता है: https: //github.com/primaryobjects/Accord.NET/blob/master/Sources/Accord.Math/Transforms/HilbertTransform.cs

व्यावहारिक उपयोग में एसएसबी ट्रांसमीटर, या लगभग किसी भी मॉडुलन योजना का निर्माण शामिल है। आईक्यू मॉड्यूलेशन को देखें और आप देखेंगे कि -90 डिग्री की फेज शिफ्ट प्रासंगिक क्यों है। त्रिकोणमितीय सिद्धांतों का एक उत्पाद। उदा। https://user.eng.umd.edu/~tretter/commlab/c6713slides/ch7.pdf

हिल्बर्ट ट्रांसफ़ॉर्म नकारात्मक घटकों को शून्य करने के एफएफटी के बीच एक मध्य चरण का उपयोग करता है। आप इसे अन्य आवृत्तियों को फ़िल्टर करने के लिए भी दुरुपयोग कर सकते हैं। "

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