MATLAB में FFT क्या करता है?

Matlab Mem Fft Kya Karata Hai



फास्ट फूरियर रूपांतरण (FFT) के अत्यधिक अनुकूलित संस्करण को संदर्भित करता है असतत फूरियर रूपांतरण (डीएफटी) जो समय डोमेन के माध्यम से असतत संकेतों को आवृत्ति डोमेन में परिवर्तित करता है। आवृत्ति सामग्री, चरण, और संकेत के अन्य पहलुओं के माध्यम से देखा जा सकता है एफएफटी संगणना।

यह लेख हमें के काम के बारे में सिखाने जा रहा है एफएफटी MATLAB में।

एफएफटी को समझना

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







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



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



MATLAB में FFT का उपयोग कैसे करें

MATLAB नामक एक अंतर्निहित फ़ंक्शन प्रदान करता है एफएफटी जो हमें प्रदर्शन करने की अनुमति देता है फास्ट फूरियर रूपांतरण (FFT) संकेतों पर गणना इस फ़ंक्शन का उपयोग करना आसान है और फ़्रीक्वेंसी डोमेन में संकेतों का विश्लेषण और हेरफेर करने के लिए विभिन्न विकल्प प्रदान करता है:





का उपयोग करने के लिए वाक्य रचना एफएफटी MATLAB में कार्य नीचे दिए गए हैं:

एफ = एफएफटी ( एक्स )

एफ = एफएफटी ( एक्स, एन )

एफ = एफएफटी ( एक्स, एन, मंद )

यहाँ:



एफ = एफएफटी (एक्स) की गणना करता है असतत फूरियर रूपांतरण (डीएफटी) x का उपयोग कर रहा है फास्ट फूरियर रूपांतरण (FFT) कलन विधि।

  • यदि x एक वेक्टर का प्रतिनिधित्व करता है, एफएफटी (एक्स) वेक्टर के फूरियर रूपांतरण को प्राप्त करता है।
  • यदि एक्स एक मैट्रिक्स का प्रतिनिधित्व करता है, एफएफटी (एक्स) एक वेक्टर के रूप में प्रत्येक कॉलम का इलाज करके प्रत्येक कॉलम का फूरियर रूपांतरण प्रदान करता है।

एफ = एफएफटी (एक्स, एन) एन-पॉइंट डीएफटी देता है। जब कोई मान प्रदान नहीं किया जाता है तो F का आकार x के समान होता है।

  • यदि x एक सदिश है और इसकी लंबाई n से कम है, तो x अनुगामी शून्य के साथ पैडिंग प्राप्त करता है जब तक कि यह n तक नहीं पहुँच जाता।
  • यदि x एक वेक्टर है और इसकी लंबाई n से अधिक है, तो इसे उस लंबाई n तक छोटा कर दिया जाता है।
  • यदि x एक मैट्रिक्स है, तो प्रत्येक कॉलम को वेक्टर केस माना जाता है।

एफ = एफएफटी (एक्स, एन, मंद) दिए गए आयाम मंद के साथ फूरियर ट्रांसफॉर्म उत्पन्न करता है। हम कहते हैं, एफएफटी (एक्स, एन, 2) यदि x एक मैट्रिक्स का प्रतिनिधित्व करता है तो प्रत्येक पंक्ति के लिए एन-पॉइंट फूरियर ट्रांसफॉर्म देता है।

निम्नलिखित उदाहरण के काम का वर्णन करते हैं एफएफटी MATLAB में कार्य करता है।

उदाहरण 1

हम इसका उपयोग कर सकते हैं एफएफटी MATLAB में विशिष्ट आवृत्ति घटकों और यादृच्छिक शोर के साथ एक संकेत के उत्पादन और विश्लेषण को प्रदर्शित करने के लिए।

उदाहरण के लिए:

रास = 2000 ;

एफएस = 1500 ;

टीएस = 1 / एफएस;

टीवी = ( 0 :एलएस- 1 ) * टीएस;

च = 0.6 * बिना ( 2 * अनुकरणीय * पचास * टीवी ) + 3 * randn ( आकार ( टीवी ) ) + बिना ( 2 * अनुकरणीय * 120 * टीवी ) ;

कथानक ( 1000 * टीवी ( 1 : पचास ) ,एफ ( 1 : पचास ) )

xलेबल ( 'टीवी (एमएस)' )

ylabel ( 'एफ (टीवी)' )

शीर्षक ( 'जीरो-मीन रैंडम नॉइज़ वाले खराब सिग्नल' )

एफ = एफएफटी ( एफ ) ;

पीएस2 = पेट ( एफ/ रास ) ;

पीएस 1 = पीएस 2 ( 1 : रास / 2 + 1 ) ;

PS1 ( 2 :अंत- 1 ) = 2 *पीएस1 ( 2 :अंत- 1 ) ;

एफ = एफएस* ( 0 : ( रास / 2 ) ) / रास ;

कथानक ( एफ, पीएस 1 )

शीर्षक ( 'आयाम स्पेक्ट्रम (एकल-पक्षीय) PS1 f(t) के लिए' )

xलेबल ( 'एफ (हर्ट्ज)' )

ylabel ( '|पीएस1(एफ)|' )

प्रदान किया गया कोड लंबाई के साथ एक संकेत उत्पन्न करता है 2000 नमूने (एलएस) , एक नमूना आवृत्ति 1500 हर्ट्ज (एफएस) , और ए नमूना अवधि (टीएस) . समय वेक्टर (टीवी) इन पैरामीटर्स के आधार पर बनाया गया है। सिग्नल एफ शून्य-औसत यादृच्छिक शोर के साथ 50 हर्ट्ज और 120 हर्ट्ज पर साइनसोइडल घटकों के संयोजन से बना है। इसके बाद इसे पहले 50 नमूनों के एक खंड के साथ प्लॉट किया जाता है। कोड आगे की गणना करता है एफएफटी संकेत की और गणना करता है आयाम स्पेक्ट्रम (PS1) . अंत में, आयाम स्पेक्ट्रम को हर्ट्ज में संबंधित आवृत्तियों (एफ) के विरुद्ध प्लॉट किया जाता है।

उदाहरण 2

यहाँ एक और उदाहरण है जो उपयोग करता है एफएफटी समय डोमेन के माध्यम से आवृत्ति डोमेन में गॉसियन पल्स परिवर्तन के लिए MATLAB में कार्य करता है।

एफएस = 500 ;

टीएस = - 0.5 : 1 / एफएस: 0.5 ;

रास = लंबाई ( टी ) ;

च = 1 / ( 4 * वर्ग ( 2 * अनुकरणीय * 0.02 ) ) * ( ऍक्स्प ( -ts.^ 2 / ( 2 * 0.02 ) ) ) ;

कथानक ( टीएस, एफ )

xलेबल ( 'समय (टी)' )

ylabel ( 'एफ (टी)' )

शीर्षक ( 'समय क्षेत्र' )

जैसे = 2 ^अगलीpow2 ( रास ) ;

एफ = एफएस* ( 0 : ( जैसे/ 2 ) ) / उदा;

एफ = एफएफटी ( एफ, एनपी ) ;

पीएफ = पेट ( एफ/एनपी ) ;

कथानक ( एफ, पीएफ ( 1 : जैसे/ 2 + 1 ) )

xलेबल ( '(एफ)' )

ylabel ( '|पीएफ(एफ)|' )

शीर्षक ( 'आवृत्ति डोमेन' )

प्रदान किया गया कोड समय डोमेन में एक गॉसियन पल्स सिग्नल उत्पन्न करता है और इसकी आवृत्ति सामग्री का विश्लेषण करता है फास्ट फूरियर रूपांतरण (FFT) MATLAB में। टाइम डोमेन सिग्नल प्लॉट किया जाता है, और फिर एफएफटी आवृत्ति डोमेन प्रतिनिधित्व प्राप्त करने के लिए किया जाता है। परिणामस्वरूप आयाम स्पेक्ट्रम इसी आवृत्तियों के खिलाफ प्लॉट किया गया है।

उदाहरण 3

निम्नलिखित उदाहरण विभिन्न आवृत्तियों के साथ तीन साइनसोइडल सिग्नल उत्पन्न करता है और उन्हें टाइम डोमेन में प्लॉट करता है एफएफटी MATLAB में कार्य करता है।

एफएस = 2500 ;

टीएस = 1 / एफएस;

रास = 3000 ;

टी = ( 0 :एलएस- 1 ) * टीएस;

आर1 = बिना ( 3 * अनुकरणीय * 60 *टी ) ;

आर2 = बिना ( 3 * अनुकरणीय * 140 *टी ) ;

आर3 = बिना ( 3 * अनुकरणीय * 350 *टी ) ;

च = [ आर 1; आर 2; r3 ] ;

के लिए के = 1 : 3

उपप्लॉट ( 3 , 1 ,क )

कथानक ( टी ( 1 : 250 ) ,एफ ( क, 1 : 250 ) )

शीर्षक ( [ 'पंक्ति संख्या' , num2str ( ) , ' (समय क्षेत्र)' ] )

अंत

जैसे = 2 ^अगलीpow2 ( रास ) ;

घ = 2 ;

एफ = एफएफटी ( एफ, एनपी, डी ) ;

पीएस2 = पेट ( एफ/ रास ) ;

पीएस 1 = पीएस 2 ( :, 1 : जैसे/ 2 + 1 ) ;

PS1 ( :, 2 :अंत- 1 ) = 2 *पीएस1 ( :, 2 :अंत- 1 ) ;

के लिए के = 1 : 3

उपप्लॉट ( 3 , 1 ,क )

कथानक ( 0 : ( एफएस/एनपी ) : ( एफएस/ 2 -एफएस/एनपी ) पीएस 1 ( क, 1 : जैसे/ 2 ) )

शीर्षक ( [ 'पंक्ति संख्या' , num2str ( ) , '(आवृत्ति डोमेन)' ] )

अंत

उपरोक्त कोड में, समय डोमेन में आउटपुट विंडो में तीन साइनसोइडल तरंगें, आर 1, आर 2, और आर 3 प्रदर्शित की जाती हैं। फ़्रीक्वेंसी डोमेन सिग्नल 'PS1' तरंगों के लिए FFT फ़ंक्शन का उपयोग करके उनके प्रत्येक एकल-साइड आयाम स्पेक्ट्रा की गणना करने के लिए बनाया गया है।

निष्कर्ष


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