क्या डीएफटी या एफएफटी के बिना एक आवृत्ति खोजने के लिए एक एल्गोरिथ्म है?


34

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

मैंने ऐसा कभी नहीं सुना। क्या आप ऑडियो सिग्नल प्राप्त कर सकते हैं और DFT या FFT एल्गोरिथ्म का उपयोग किए बिना आवृत्ति की गणना कर सकते हैं?

जवाबों:


29

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

बेहतर समाधान चरण-बंद लूप , विलंब-बंद लूप , ऑटो सहसंबंध, शून्य क्रॉसिंग डिटेक्शन और ट्रैकिंग, अधिकतम या न्यूनतम पहचान और ट्रैकिंग और इन विधियों के निश्चित रूप से बुद्धिमान संयोजन पर आधारित हो सकते हैं।

पूर्व प्रसंस्करण हमेशा मदद करता है।


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

किसी को भी इस के साथ मेरी मदद कर सकते हैं: - stackoverflow.com/questions/42359344/…
dreamBegin

12

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

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

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

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

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


8

पिच का पता लगाने के कई बहुमुखी और जिज्ञासु तरीकों से किया जा सकता है। इसे करने का एक तरीका ऑटोक्रेलेशन का उपयोग करना है । यह पेपर एक उदाहरण देता है कि इसका उपयोग कैसे किया जा सकता है। 1-बिट सहसंबंधक का उपयोग करके स्वतःसंबंध को हास्यास्पद रूप से सरल बनाया जा सकता है (किसी भी कारण से उस पर कोई सभ्य कागज नहीं मिल सकता है)। इसलिए सैद्धांतिक रूप से, एफएफटी की तुलना में पिच का तेजी से पता लगाया जा सकता है, लेकिन मुझे संदेह है कि यह वास्तव में चालाक पूर्व प्रसंस्करण के बिना बहुत अधिक सटीक होगा ।


मुझे लगता है कि लिंक टूट गया है? ...
Spacey

नहीं, सभी काम करता है। मैंने अभी इसकी जाँच की।
फोनन

7

इसके अलावा अपेक्षाकृत नए एल्गोरिथम परिभाषित हिल्बर्ट-हुआंग ट्रांसफ़ॉर्म (HHT) पर एक नज़र डालें । यह गैर-स्थिर-गैर-रैखिक संकेतों को संभाल सकता है जो आपके आवेदन के लिए प्रासंगिक हो सकता है।


यह काफी रत्न था जब मैंने इसे पाया, हालांकि यह आपको फूरियर अपघटन नहीं देता है, बल्कि तात्कालिक आवृत्ति अपघटन है।
२३:२६ पर स्पेसी

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

3

यदि आप वास्तव में जानते हैं कि आप किस आवृत्ति के बिन में DFT / FFT की तलाश कर रहे हैं तो आप केवल उस बिन का मान प्राप्त करने के लिए Goertzel एल्गोरिथ्म का उपयोग कर सकते हैं।

http://en.wikipedia.org/wiki/Goertzel_algorithm


1
यह एक आवृत्ति खोजने के लिए नहीं है, हालांकि।
16

3

मुझे एक महीने पहले एक गिटार मिला है और पीएलएल-आधारित ट्यूनर लिखना शुरू कर दिया है ।

पीएलएल को समझने के लिए जिन संसाधनों का उपयोग किया गया था, उनमें से एक पॉल लुत्स का " अंडर -फेस-लॉक्ड लूप्स" पृष्ठ था।


2

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


जाहिरा तौर पर यह FFT का उपयोग करता है? mathworks.com/help/toolbox/signal/ref/peig.html
एंडोलिथ

1
@endolith आप इसमें शामिल किसी भी FFT के बिना गणना कर सकते हैं। सहसंबंध मैट्रिक्स से, आपको eigenvectors मिलते हैं, और फिर शोर उप-क्षेत्र। तो आप के खिलाफ परियोजना के लिए अपने स्वयं के आवृत्ति वेक्टर का निर्माण कर सकते हैं, इसलिए कोई FFT का उपयोग नहीं किया।
स्पेसी

1

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

लेकिन अगर आप सिग्नल प्रोसेसिंग के साथ फैंसी जाना चाहते हैं, तो संगीत विधि देखें:

http://en.wikipedia.org/wiki/Multiple_signal_classification

आशा करता हूँ की ये काम करेगा


0

डीएफटी / एफएफटी का उपयोग किए बिना पिच के आकलन के कई तरीके मौजूद हैं, उनमें से कुछ संगीत विधि सहित इस पत्र में सूचीबद्ध हैं: https://ieeexplore.ieee.org/abstract/document/6521410/ इस पत्र में सिमुलेशन परिणाम इंगित करते हैं। जब मौलिक आवृत्ति बहुत कम होती है, तो सटीक एनएलएस विधि सूचीबद्ध के बीच दूसरों को बेहतर बनाती है।

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