एफएफटी लंबाई और आवृत्ति संकल्प के बीच क्या संबंध है?


67

अगर मैंने उचित नमूनाकरण विधियों (Nyquist, फ़िल्टरिंग, आदि) का उपयोग करके एक संकेत का नमूना लिया है, तो मैं अपने एफएफटी की लंबाई को संबंधित आवृत्ति संकल्प से कैसे संबंधित कर सकता हूं जो मैं प्राप्त कर सकता हूं?

जैसे अगर मेरे पास 2,000 हर्ट्ज और 1,999 हर्ट साइन लहर है, तो मैं उन दो तरंगों के बीच अंतर को सही ढंग से बताने के लिए एफएफटी की लंबाई कैसे निर्धारित करूंगा?

जवाबों:


81

आवृत्ति संकल्प एफएफटी लंबाई और इनपुट सिग्नल के नमूने दर के बीच संबंध पर निर्भर है।

यदि हम FFT के लिए 8192 नमूने एकत्र करते हैं तो हमारे पास होगा:

8192 samples2=4096 FFT bins

यदि हमारे नमूने की दर 10 kHz है, तो Nyquist-Shannon नमूना प्रमेय कहता है कि हमारे सिग्नल में 5 kHz तक की आवृत्ति सामग्री हो सकती है। फिर, हमारी आवृत्ति बिन संकल्प है:

5 kHz4096 FFT bins1.22 Hzbin

यह अवधारणात्मक लेकिन सरलीकृत तरीके से समझाने का सबसे आसान तरीका हो सकता है: आपका बिन रिज़ॉल्यूशन बस , जहाँ इनपुट सिग्नल की सैंपलिंग दर है और N FFT अंकों की संख्या है। इस्तेमाल किया (नमूना लंबाई)।fsampNfsamp

हम ऊपर से देख सकते हैं कि छोटे एफएफटी डिब्बे प्राप्त करने के लिए हम या तो एफएफटी चला सकते हैं (यानी एफएफटी चलाने से पहले उसी दर पर अधिक नमूने ले सकते हैं ) या हमारी नमूना दर कम कर सकते हैं।

कैच:

लौकिक रिज़ॉल्यूशन और फ़्रीक्वेंसी रिज़ॉल्यूशन के बीच हमेशा एक व्यापार होता है।

ऊपर दिए गए उदाहरण में, हमें एफएफटी को चलाने से पहले 8192 नमूनों को इकट्ठा करने की आवश्यकता है, जो कि 10 kHz पर नमूना लेने पर 582 सेकंड लगते हैं।

यदि हम एक लंबे एफएफटी को चलाकर छोटे एफएफटी डिब्बे प्राप्त करने का प्रयास करते हैं तो आवश्यक नमूनों को एकत्र करने में अधिक समय लगेगा।

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

इस उदाहरण में, यदि एक 1999 हर्ट्ज टोन शुरू होता है और 8192 सैंपल FFT के पहले हाफ में बंद हो जाता है और 2002 Hz टोन विंडो के दूसरे हाफ में बजता है, तो हम दोनों को देखेंगे, लेकिन वे एक ही समय में दिखाई देंगे। समय।

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

आपके उदाहरण में, यदि आप अपनी नमूना दर को 4096 हर्ट्ज से कुछ कम करते हैं, तो आपको केवल 1 हर्ट्ज डिब्बे * 4096 हर्ट्ज को प्राप्त करने के लिए केवल 4096 पॉइंट एफएफटी की आवश्यकता है, तो आपको केवल 1 हज़ार डिब्बे प्राप्त करने के लिए 4096 पॉइंट एफएफटी की आवश्यकता है और अभी भी एक हल कर सकते हैं 2khz संकेत। यह FFT बिन आकार को कम करता है, लेकिन सिग्नल की बैंडविड्थ को भी कम करता है।

अंततः एफएफटी के साथ हमेशा आवृत्ति संकल्प और समय संकल्प के बीच एक व्यापार बंद हो जाएगा। आपको सभी लक्ष्यों तक पहुँचने के लिए एक संतुलनकारी कार्य करना होगा।


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

@kurtuk मैं एक भीड़ में इसे बाहर थूकता हूं, जब मैं कुछ खाली समय (या यदि आप चाहें तो इसे संपादित करने के लिए स्वतंत्र महसूस कर सकते हैं) को स्वरूपण को साफ कर दूंगा।
मार्क

1
@kortuk, नाम एक 'ओ' से शुरू होता है। मुझे लगता है कि आपके पास था, मैं सिर्फ अपने विचार साझा कर रहा था, अगर आप पहले से ही नहीं जानते थे, लेकिन पूरे समुदाय के लिए और अधिक।
कोर्तुक

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

यह भी ध्यान देने योग्य है कि एक समान आवृत्ति / समय डोमेन ट्रेड-ऑफ एनालॉग और IIR फ़िल्टर पर लागू होता है।
कालेब रिस्टर

10

मूल FFT रिज़ॉल्यूशन , जहाँ नमूना आवृत्ति है।fsNfs

दो बहुत बारीकी से अंतरित संकेतों को अलग करने की क्षमता दृढ़ता से रिश्तेदार आयाम और उपयोग किए गए विंडोिंग फ़ंक्शन पर निर्भर करती है।

आप पा सकते हैं कि बॉडलाइन सिग्नल विश्लेषक के साथ खेलना इस मामले पर कुछ अंतर्ज्ञान विकसित करने का एक अच्छा तरीका है - और नहीं, कुछ एफएफटी को चलाने और एक समय में एक स्पेक्ट्रम की साजिश रचने के लिए मैटलैब या पायथन / नम्पी वास्तव में समान नहीं है।

EDIT: शून्य के साथ इनपुट को पैड करने और एक बड़ा एफएफटी लेने के लिए एक ट्रिक भी है। यह आपकी विभेदन क्षमता में सुधार नहीं करेगा बल्कि स्पेक्ट्रम को अधिक पठनीय बना सकता है। यह मूल रूप से वेक्टर ग्राफिक्स में एंटीएलियासिंग के समान एक चाल है।


क्या मैं अकेला हूँ जो लेटेक्स कोड को ठीक से प्रदर्शित नहीं करता है?
स्टीवनव

@stevenvh मेरे लिए भी काम नहीं करता।
छत

मेरे लिये कार्य करता है। लेटेक्स केवल 2 स्थानों पर है।
कोर्तुक

2
निश्चित (पहले से कुछ समय के लिए)। फ़ायरफ़ॉक्स की NoScript ऐड-ऑन ब्लॉक किए गए mathjax.org पर है।
स्टीवनवह

3

यह ध्यान देने योग्य है कि एक एफएफटी नमूना के विभिन्न जोड़ (k = 0..sample_length-1) के कई युग्मों की गणना करने का एक विकल्प है [k] * SineRefWave [j] [k] और नमूना [j] * CosRefWave [j ] [के], सभी के लिए जे तक नमूना लंबाई आधा है। यदि उन सभी आवृत्तियों पर आयाम रीडआउट की आवश्यकता होती है, तो एक एफएफटी उन सभी को ओ (एनएलजीएन) समय में गणना करेगा, जबकि व्यक्तिगत रूप से उन्हें कंप्यूटिंग करने में ओ (एन ^ 2) समय लगेगा। दूसरी ओर, अगर किसी को केवल कुछ आवृत्तियों पर आयाम रीडआउट की आवश्यकता होती है, तो एक को अक्सर उन्हें व्यक्तिगत रूप से गणना करने से बेहतर होगा, खासकर अगर कोई प्रोसेसर या डीएसपी का उपयोग कर रहा है जो कुशलतापूर्वक योग की उस शैली की गणना कर सकता है।

यह भी ध्यान देने योग्य है कि जबकि एक एफएफटी उदाहरण के साथ एक 20ms नमूना खिड़की एक 1975Hz टोन, या आवृत्तियों (1975-N) हर्ट्ज और (1975 + एन) Hz के बीच N <25, के बीच अंतर करने में सक्षम नहीं होगा। इसका उपयोग सैंपलिंग विंडो की तुलना में सटीकता के साथ पृथक आवृत्तियों को मापने के लिए किया जा सकता है यदि पास में कोई अन्य वर्णक्रमीय सामग्री नहीं है। १ ९ Hz५ हर्ट्ज की आवृत्ति १ ९ ५० हर्ट्ज और २००० हर्ट्ज के डिब्बे में समान रूप से बढ़ेगी, जैसा कि १ ९ 1974४ हर्ट्ज और १ ९ .६ हर्ट्ज टन का संयोजन होगा। हालांकि, एक अलग 1974Hz टोन, 2000Hz बिन की तुलना में 1950Hz बिन में अधिक मजबूती से उठाएगा, और 1976Hz टोन 2000Hz बिन में अधिक मजबूती से उठाएगा।


1

आवृत्ति संकल्प एफएफटी की लंबाई पर निर्भर नहीं करता है, लेकिन कुल नमूना समय टी की लंबाई, यानी यह 1 / टी है, जो आपके द्वारा प्राप्त न्यूनतम आवृत्ति घटक भी है।

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


0

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


-3

इस तस्वीर को देखो। यह स्पष्ट है। एफएस और एफएफटी संकल्प के बीच संबंध

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


5
यह इस तस्वीर से पूरी तरह से स्पष्ट नहीं है कि क्या हो रहा है। (यह मदद नहीं करता है कि चित्र अंग्रेजी में नहीं है।) इससे क्या पता चलता है कि अन्य उत्तरों का उल्लेख नहीं किया गया है?
ग्रेग डी'ऑन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.