मैं एक आवृत्ति बनाम समय की साजिश कैसे बनाऊं?


9

मैं केमिकल इंजीनियर हूं, ईई नहीं, इसलिए यह थोड़ा मुश्किल है।

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

यहाँ एक प्रकार की कायापलट है, जिसे मैं एक ध्वनि तरंग (पियानो नोट जी) से स्पष्ट करता हूं। जैसा कि आप देख सकते हैं, यह ग्राफ तीन अक्षों के रूप में है, जिसमें तीसरा रंग द्वारा दर्शाया गया है।

धन्यवाद!

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

जवाबों:


5

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

हालाँकि, ऐसा प्रतीत होता है कि आपने जो ग्राफ दिखाया है, वह इनमें से कुछ तकनीकों का उपयोग नहीं करता है; इसलिए मुझे संदेह है कि यह वह नहीं है जिसकी आपको तलाश है। क्षैतिज अक्ष पर कुछ "स्मीयरिंग" प्रतीत होता है (उदाहरण के लिए t = 1.2s पर) और यह एक निश्चित संकेत है कि विश्लेषण चंक्स के बीच एक उच्च ओवरलैप के साथ किया गया है।

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

फ्रेम 1: t = 0..t = 40ms; फ्रेम 2: टी = 40ms..t = 80ms

यह बहुत अच्छी तरह से हो सकता है:

फ्रेम 1: t = 0..t = 40ms; फ्रेम 2: t = 10ms..t = 50ms

यह अतिव्यापी एफएफटी खिड़की के आकार को कम किए बिना एक उच्च अस्थायी समाधान का भ्रम दे सकता है। ध्यान दें कि यह केवल समय अक्ष पर एक घटना को सही ढंग से पता लगाने में मदद कर सकता है - यह समय के करीब दो घटनाओं को हल करने में मदद नहीं करेगा ... ठीक उसी तरह जैसे कि एफएफटी आकार में वृद्धि एक आवृत्ति चोटी के स्थान की पहचान करने में मदद कर सकती है, लेकिन इसके साथ नहीं दो आसन्न आवृत्ति चोटियों का संकल्प।


आप अन्य तरीके से कैसे जाएंगे (स्पेक्ट्रोग्राम से ऑडियो सिग्नल में बदलना)
पीटी

4

हां, कई लोगों ने समय-आवृत्ति विश्लेषण पर काम किया है।

"मेरे डेटा को टुकड़ों में काटें, प्रत्येक चंक पर एफएफटी का प्रदर्शन करें" एक अच्छा विचार है। एफएफटी करने से ठीक पहले, प्रत्येक चंक पर एक "विंडो फ़ंक्शन" लागू करना, कई कलाकृतियों से बचने में मदद करता है। ओवरलैप के लिए चोकिंग की अनुमति देने से भी मदद मिलती है। उन बारीकियों के बाद, आप गेबर परिवर्तन के साथ समाप्त होते हैं , जो सबसे लोकप्रिय अल्पकालिक फूरियर रूपांतरण (STFT) लगता है।

जैसा कि आप पहले ही बता चुके हैं, और जैसा कि विकिपीडिया लेख बताता है, सभी अल्पकालिक फूरियर ट्रांसफॉर्म तकनीकों में एक ट्रेडऑफ़ है:

  • जब आप समय-श्रृंखला को बहुत छोटे टुकड़ों में काटते हैं, तो आपको अत्यधिक सटीक समय की जानकारी मिलती है, जब एक टोन शुरू होता है और बंद हो जाता है, लेकिन आवृत्ति की जानकारी बहुत धुंधली होती है।
  • जब आप समय-श्रृंखला को बहुत लंबे टुकड़ों में काटते हैं, तो आपको एक स्वर की सटीक आवृत्ति के रूप में अत्यधिक सटीक आवृत्ति जानकारी मिलती है, लेकिन सटीक समय जो शुरू होता है और बंद हो जाता है वह धुंधली होती है।

यह एक प्रसिद्ध समस्या है, लेकिन अफसोस, न केवल इसे हल नहीं किया गया है, यह साबित हो गया है कि दोनों के बीच अनिश्चितता अपरिहार्य है - गैबर सीमा, हाइजेनबर्ग-गैबर सीमा, अनिश्चितता सिद्धांत , आदि।

यदि मैं आप थे, तो मैं गेबर परिवर्तन की गणना करने के लिए कई ऑफ-द-शेल्फ पुस्तकालयों में से एक के साथ शुरू करूंगा, और समय श्रृंखला को विभिन्न लंबाई में काटने के साथ प्रयोग करूंगा। वहाँ एक बहुत अच्छा मौका है आप भाग्यशाली होंगे और आप कुछ समय के साथ समाप्त हो जाएंगे जो पर्याप्त समय स्थानीयकरण और पर्याप्त आवृत्ति भेदभाव देता है।

अगर वह इस एप्लिकेशन के लिए काम नहीं करता है, तो मैं समय-आवृत्ति प्रतिनिधित्व और समय-आवृत्ति विश्लेषण के लिए अन्य तरीकों पर आगे बढ़ूंगा - वेवलेट ट्रांसफॉर्म , चिरप्लेट ट्रांसफॉर्म , फ्रैक्शनल फूरियर ट्रांसफॉर्म (एफआरएफटी), आदि।

संपादित करें: ऑडियो डेटा से स्पेक्ट्रोग्राम / झरना भूखंड उत्पन्न करने के लिए कुछ स्रोत कोड :

स्पेक्ट्रोग्राम की छवि उपरोक्त उपयोगिताओं से रिवर्स दिशा में जाती है।


गैबर परिवर्तन केवल गाऊसी खिड़कियों के साथ है। यदि आप दूसरी विंडो का उपयोग करते हैं, तो यह सिर्फ एक STFT है। (और यह सच है कि गाऊसी खिड़कियां डिजिटल में मौजूद नहीं हैं क्योंकि वे अनंत तक
टेंपर करती हैं

@endolith: आप सही हैं। गैबोर ट्रांसफॉर्म एक "गॉसियन विंडो फ़ंक्शन" का उपयोग करता है जो कि परिमित लंबाई के लिए छोटा होता है - यह बहुत करीब है, लेकिन गणितीय रूप से एक आदर्श गॉसियन के समान नहीं है।
डेविड कैरी

मुझे लगता है कि गैबोर ट्रांसफ़ॉर्म एक निरंतर परिवर्तन है, एक अभिन्न का उपयोग करते हुए, इसलिए इसमें खिड़की के रूप में एक गैर-चालित गाऊसी हो सकता है?
एंडोलिथ

@endolith: हाँ, सिद्धांत रूप में, एक व्यक्ति एक खिड़की के रूप में एक गैर-काटे गए गॉसियन का उपयोग कर सकता है। व्यवहार में, चूंकि व्यावहारिक रूप से गॉसियन की सभी ऊर्जा केंद्र की कूबड़ के कुछ ही समय के भीतर होती है, ट्रंकेटेड विंडो का उपयोग करके व्यावहारिक रूप से हमेशा आउटपुट चार्ट में कोई बोधगम्य अलग नहीं होता है। चूंकि सॉफ्टवेयर जो स्पेक्ट्रोग्राम झरना भूखंडों का उत्पादन करता है, वह बार-बार गौसियन विंडो को लागू करता है और फिर चार्ट के हर कॉलम के लिए एक एफएफटी करता है, "ट्रंकिंग नहीं" उस सॉफ़्टवेयर को असहनीय रूप से धीमा कर देगा।
डेविड कैरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.