Arduino Duemilanove की अधिकतम नमूना दर?


11

G'day सब!

मेरे पास एक Arduino Duemilanove है जो इस समय खाली जगह पर लटका हुआ है और मैंने सोचा कि मैं कुछ ऑडियो इंटरफेसिंग परियोजनाओं की कोशिश कर सकता हूं। मैं बस सोच रहा हूँ कि मैं किस तरह की सैंपलिंग फ़्रीक्वेंसी में सिंगल एनालॉग इनपुट का उपयोग कर सकता हूँ और चिप पर कुछ सरल एल्गोरिदम लागू कर सकता हूँ, फिर एलइडी से बंधे कुछ डिजिटल आउटपुट का उपयोग करके रिपोर्टिंग करता हूँ।

अगर संभव हो तो मैं ~ 44.1 kHz पर नमूना लेना चाहूंगा।

पहली बात के लिए मैं एक साधारण गिटार ट्यूनर कोशिश करना चाहता हूं।


ओह - यह ATMega168 संस्करण है।
स्केच फेलेची

4
@ सदस्यता लें, यदि आप किसी टिप्पणी में विवरण जोड़ने के बजाय आपको प्रश्न संपादित कर सकते हैं।
क्लिंट लॉरेंस

1
गिटार ट्यूनर के लिए, आवृत्ति अनुमान के बारे में स्टैकओवरफ़्लो पर कई प्रश्न हैं। stackoverflow.com/questions/65268/… मैंने उनमें से कुछ के लिए एक गुच्छा का उत्तर दिया है और कुछ तरीकों के लिए यहाँ नमूना कोड पोस्ट किया है: gist.github.com/255291
endolith

जवाबों:


15

मुझे नहीं लगता कि आप उस संकल्प को तेजी से पूरा कर सकते हैं। ATMega168 अपने पूर्ण रिज़ॉल्यूशन पर केवल 15 ksps पर नमूना ले सकता है।

कहा जा रहा है कि, आपको एक कार्यशील गिटार ट्यूनर प्राप्त करने के लिए एक उपयुक्त नमूना दर प्राप्त करने में सक्षम होना चाहिए। 44.1 kHz की सबसे अधिक संभावना है कि आप जितनी तेजी से एक ई गिटार एक 330 हर्ट्ज के आसपास है कि उच्च ई स्ट्रिंग के मौलिक की आवश्यकता होगी की तुलना में काफी तेजी से होता है।


शानदार - जो मेरे प्रश्न का उत्तर हाथ से देता है। मुझे नहीं लगता था कि 168 पूर्ण मानव ऑडियो स्पेक्ट्रम नमूने के लिए सक्षम होगा, लेकिन अगर मैं कम से कम 660 हर्ट्ज का नमूना दर प्राप्त कर सकता हूं तो मुझे उच्च अल स्ट्रिंग की पहचान करने में सक्षम होना चाहिए। मैं हालांकि सुरक्षा और संवेदनशीलता के लिए थोड़ा ऊपर उठता हूँ। धन्यवाद!
स्केच फलेची

फोन प्रणाली 8000 हर्ट्ज पर नमूने लेती है।
जोफोरर

8

एनालॉग इनपुट को पढ़ने में हमें लगभग 100 (0.0001 सेकेंड) का समय लगता है, इसलिए पढ़ने की अधिकतम दर लगभग 10,000 गुना दूसरी होती है।

http://arduino.cc/en/Reference/AnalogRead

रोब।


4

'AVR गिटार ट्यूनर' के लिए Google, वहाँ कुछ परियोजनाएं हैं जो पहले से ही ऐसा करती हैं, और वे AVR की गति के साथ बहुत अधिक परेशानी के बिना ऐसा करने में सक्षम प्रतीत होते हैं।


3

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


1
मेरी चिंता, मुझे लगता है, यह है कि आपको वास्तव में मौलिक निकालने के लिए एफएफटी चलाने की आवश्यकता है। गिटार जब तार से टकराता है, तो सभी प्रकार की आवृत्तियों का उत्पादन होता है, और शून्य क्रॉसिंग को गिनने से आपको स्क्वायर तरंग के निर्माण के लिए पर्याप्त जानकारी मिलती है, जिससे एफएफटी पूरी तरह से बेकार हो जाता है।
wackyvorlon

सिंगल-नोट गिटार आउटपुट (विशेष रूप से इलेक्ट्रिक) एक साइन लहर का एक निकट सन्निकटन है, एक बार जब आप प्रारंभिक क्षणिक पिछले हो जाते हैं। मौलिक के आयाम के पास कहीं भी कोई अजीब सामंजस्य नहीं है। सभी सस्ते डिजिटल गिटार ट्यूनर केवल शून्य-क्रॉसिंग टाइमिंग करते हैं और आवृत्ति डोमेन में कुछ भी नहीं करते हैं। यहाँ एक AVR 2323 (Arduino के लिए करीबी रिश्तेदार) पर तकनीक का एक उदाहरण है myplace.nu/avr/gtuner/index.htm और यहाँ मिडी साथ Arduino का उपयोग कर एक और बाहर है youtube.com/watch?v=oGKE1vmAWCA
todbot

मुझे नहीं लगता कि गिटार ट्यूनर शून्य क्रॉसिंग की गिनती करते हैं, और यह निश्चित रूप से एक अच्छा तरीका नहीं है। यह साइन वेव के करीब भी नहीं है, और प्रति चक्र में कई शून्य क्रॉसिंग हो सकते हैं: flic.kr/p/7ns9nu
एंडोलिथ

मैंने जो ट्यूनर देखे हैं, उनमें इनपुट सिग्नल को चालू करने के लिए एक कम-पास फिल्टर था, जितना संभव हो एक साइन लहर में।
टॉडबोट

3

वहाँ कई ADCs उपलब्ध हैं जो सीरियल हैं, I2S I2C पर आधारित NXP का मानक है। वे आपको बहुत अधिक गति पर भी आसानी से एनालॉग में खींचने की अनुमति देते हैं। यह लिंक आपको एक NXP भाग में मिलना चाहिए जो ऑडियो के लिए डिज़ाइन किया गया है: UDA1361TS

नि: शुल्क नमूने अपने दोस्त :)


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

1

सबसे पहले, अपने विशेष आवेदन के लिए, आपको वास्तव में केवल 1 kHz या इतनी नमूना दर की आवश्यकता होती है, यह मानते हुए कि आप मौलिक आवृत्ति को ट्यून कर रहे हैं, न कि इनहेरोमोनिक पार्टिकल्स में से एक ...

वैसे भी, अधिकतम संभव नमूना दर के लिए, Arduino मैनुअल कहता है:

एनालॉग इनपुट को पढ़ने के लिए लगभग 100 माइक्रोसेकंड (0.0001 सेकेंड) लगते हैं, इसलिए अधिकतम पढ़ने की दर एक सेकंड में लगभग 10,000 गुना है।

यह 10 kHz नमूना आवृत्ति अधिकतम होगा। तथापि। आप सीधे एडीसी रजिस्टरों तक पहुंचकर उच्च नमूना दर प्राप्त कर सकते हैंArduino रीयलटाइम ऑडियो प्रसंस्करण पेज उदाहरण के लिए 15 kHz पर दो चैनलों का उपयोग करता है,। तो 10 kHz अधिकतम केवल अंतर्निर्मित एनालॉगरेड () फ़ंक्शन का उपयोग करते समय होता है, क्योंकि इसमें बहुत अधिक ओवरहेड होता है।

ADC को 50 kHz और 200 kHz के बीच की घड़ी की गति के साथ सर्वश्रेष्ठ संचालन के लिए अनुकूलित किया गया है:

डिफ़ॉल्ट रूप से, क्रमिक सन्निकटन सर्किटरी को अधिकतम रिज़ॉल्यूशन प्राप्त करने के लिए 50 kHz और 200 kHz के बीच एक इनपुट घड़ी आवृत्ति [ADC घड़ी] की आवश्यकता होती है।

चूँकि ADC रूपांतरण में 13 घड़ी चक्र लगते हैं, इसलिए यह 4 kHz से 15 kHz के नमूने की दर होगी। AVR120 के अनुसार : AVR पर ADC की विशेषता और अंशांकन :

अनुकूलतम प्रदर्शन के लिए, ADC घड़ी 200 kHz से अधिक नहीं होनी चाहिए। हालांकि, 1 मेगाहर्ट्ज तक की आवृत्तियां एडीसी संकल्प को काफी कम नहीं करती हैं।

1 मेगाहर्ट्ज से अधिक आवृत्तियों के साथ एडीसी को संचालित करना विशेषता नहीं है।

1 मेगाहर्ट्ज घड़ी की आवृत्ति = 77 kHz नमूना आवृत्ति, इसलिए यह यथार्थवादी अधिकतम है।

मंच धागा तेजी से एनालॉग पढ़ें? इस बारे में अधिक है।


0

ऑन-चिप कनवर्टर इस एप्लिकेशन के लिए काम करेगा क्योंकि अन्य लोगों ने बताया है, लेकिन आपको वास्तव में बाहरी एडीसी का उपयोग करना चाहिए। यह आपको बहुत परेशानी से बचाएगा, और माइक्रो की घड़ी से कम शोर के साथ, और आंतरिक एडीसी का उपयोग करने की तुलना में अधिक सटीकता के साथ, अपने माइक्रो को एसपीआई या आई 2 सी पर नमूना करने के लिए उच्च डेटा दर से मुक्त करेगा। यदि आप अधिक रिज़ॉल्यूशन और / या उच्चतर डेटा दर चाहते हैं, तो LTC1867 जैसी किसी चीज़ का उपयोग करें, जो आपको 175kHz तक का सैंपल देगा (हालाँकि आप इसे जितनी जल्दी चाहें, उतनी बार देख सकते हैं) और फिर 24-बिट डेटा पढ़ें SPI पर 20MHz तक। देखें कि वास्तविक एडीसी क्या कर सकता है? :) उस तरह की शक्ति के साथ (और एक 24- या 32-बिट डीएसपी), आप अपने ऑडियो को संपीड़ित और संग्रहीत कर सकते हैं, इसे फ़िल्टर कर सकते हैं, इसे संशोधित कर सकते हैं, इसे वापस खेल सकते हैं ... संभावनाएं अनंत हैं।


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