ADC रिझोल्यूशन आणि LSB चे गणित
ॲनालॉग-टू-डिजिटल कन्व्हर्टर (ADC) निवडताना आणि त्याचा वापर करताना, कन्व्हर्टरचा पायरीचा आकार (Step size) आणि सैद्धांतिक नॉईज मर्यादा समजून घेणे अत्यंत महत्त्वाचे असते. ADC रिझोल्यूशन कॅल्क्युलेटर हे एक विनामूल्य ऑनलाइन साधन आहे जे बिट रिझोल्यूशन आणि संदर्भ व्होल्टेजच्या आधारे ADC चा पायरीचा आकार, क्वांटायझेशन त्रुटी आणि आदर्श सिग्नल-टू-नॉईज रेशो (SNR) यांची अचूक गणना करते.
या साधनाद्वारे युनिपोलर (Unipolar) आणि बायपोलर (Bipolar) अशा दोन्ही इनपुट रेंजचे मूल्यांकन केले जाऊ शकते. तसेच, इनपुट व्होल्टेज आणि डिजिटल कोड यांच्यात परस्पर रूपांतरण करून, विशिष्ट व्होल्टेज बदल रिझॉल्व्ह करण्यासाठी किमान किती बिट्सचे रिझोल्यूशन आवश्यक आहे हे देखील शोधता येते. हे साधन प्रत्येक गणितासाठी पूर्णपणे सोडवलेली सूत्रे आणि त्यातील मूल्यांचे प्रतिस्थापन (Substitution) दर्शवते, ज्यामुळे वापरकर्त्याला सैद्धांतिक मर्यादा समजणे सोपे जाते.
कन्व्हर्टर आणि रेंजचे इनपुट
कॅल्क्युलेटर वापरताना खालील इनपुट मूल्ये प्रविष्ट केली जातात:
- रिझोल्यूशन N (बिट्स): १ ते ३२ मधील पूर्ण संख्या — कन्व्हर्टरची नाममात्र बिट रुंदी.
- संदर्भ व्होल्टेज: संदर्भ व्होल्टेज दर्शवणारी एक धन संख्या.
- संदर्भ युनिट: संदर्भ व्होल्टेज मोजण्याचे युनिट.
- इनपुट रेंज: "युनिपोलर · ० ते Vref" किंवा "बायपोलर · −Vref ते +Vref" यापैकी एक निवड.
- दर्शविलेले दशांश: निकालांमध्ये दाखवायच्या दशांश स्थळांची संख्या.
- रूपांतरित करा (मोजमाप बिंदू - पर्यायी): "व्होल्टेज → कोड" किंवा "कोड → व्होल्टेज" यापैकी एका मोडची निवड.
- इनपुट व्होल्टेज (पर्यायी): डिजिटल कोडमध्ये रूपांतरित करायचे व्होल्टेज मूल्य.
- कोड (मोजणी) (पर्यायी): व्होल्टेजमध्ये रूपांतरित करण्यासाठी ० ते सर्वोच्च कोड दरम्यानची पूर्ण संख्या.
- व्होल्टेज युनिट: इनपुट व्होल्टेज किंवा कोड व्होल्टेजचे युनिट.
- रिझॉल्व्ह करायचा सर्वात लहान बदल (पर्यायी): आवश्यक बिट रिझोल्यूशन शोधण्यासाठीचा लक्ष्यित व्होल्टेज बदल.
- पायरीचे युनिट: सर्वात लहान बदल मोजण्याचे युनिट.
जलद चाचणीसाठी इंटरफेसवर "उदाहरणाचा लोड घ्या" आणि सर्व इनपुट रिकामे करण्यासाठी "साफ करा" हे बटण उपलब्ध आहे.
कॅल्क्युलेटरचे आउटपुट आणि परिणाम
साधनाद्वारे मोजलेले सर्व निकाल खालील विशिष्ट लेबल अंतर्गत दर्शविले जातात:
पायरीचा आकार आणि नॉईज
- LSB पायरीचा आकार: सर्वात लहान महत्त्वपूर्ण बिटचा (Least Significant Bit) पायरीचा आकार. यासोबतच हा आकार फुल स्केलच्या टक्केवारीत आणि ppm मध्ये दर्शविला जातो.
- क्वांटायझेशन लेव्हल्स: एकूण उपलब्ध डिजिटल पायऱ्यांची संख्या (2^N).
- सर्वोच्च कोड: कन्व्हर्टरचा कमाल डिजिटल आउटपुट कोड (2^N - 1).
- फुल-स्केल रेंज: कन्व्हर्टरचा एकूण व्होल्टेज स्पॅन.
- कमाल क्वांटायझेशन त्रुटी (±½ LSB): सैद्धांतिक कमाल क्वांटायझेशन त्रुटी.
- क्वांटायझेशन नॉईज (rms): रूट-मीन-स्क्वेअर क्वांटायझेशन नॉईज व्होल्टेज.
- आदर्श SNR (full-scale sine): डेसिबलमधील सैद्धांतिक कमाल सिग्नल-टू-नॉईज रेशो.
- डायनॅमिक रेंज: डेसिबलमधील सैद्धांतिक डायनॅमिक रेंज.
मोजमाप बिंदूवर
- आउटपुट कोड: व्होल्टेज-टू-कोड रूपांतरणाचा डिजिटल निकाल.
- बायनरी: आउटपुट कोडचे बायनरी स्वरूप.
- हेक्साडेसिमल: आउटपुट कोडचे हेक्साडेसिमल स्वरूप.
- कोड व्होल्टेज: दिलेल्या डिजिटल कोडशी सुसंगत असलेले अचूक व्होल्टेज.
- क्वांटायझेशन त्रुटी: प्रत्यक्ष इनपुट व्होल्टेज आणि कोड व्होल्टेजमधील फरक.
- या कोडसाठी इनपुट विंडो: मोजलेल्या डिजिटल कोडमध्ये मॅप होणारी इनपुट व्होल्टेजची श्रेणी.
रिझोल्यूशन आकारमान स्थिती (Sizing Status)
जेव्हा रिझॉल्व्ह करायचा सर्वात लहान बदल प्रविष्ट केला जातो, तेव्हा साधन आवश्यक बिट्सची संख्या दर्शवते. जर सध्याचे बिट रिझोल्यूशन पुरेसे असेल, तर ते "‹step› रिझॉल्व्ह करण्यासाठी किमान ‹bits› बिट्स लागतात — हा ‹current›-बिट कन्व्हर्टर ते कव्हर करतो." असा संदेश दाखवते. जर ते अपुरे असेल, तर ते "‹step› रिझॉल्व्ह करण्यासाठी किमान ‹bits› बिट्स लागतात — हा ‹current›-बिट कन्व्हर्टर फक्त ‹lsb› रिझॉल्व्ह करतो." असा संदेश दाखवून सध्याचा कन्व्हर्टर प्रत्यक्षात किती बदल रिझॉल्व्ह करू शकतो हे स्पष्ट करते.
सूत्रे आणि प्रतिस्थापन (Formulas and Substitution)
कॅल्क्युलेटर प्रत्येक गणिताची पायरी खालील सूत्रांनुसार आणि वापरकर्त्याने दिलेल्या मूल्यांचे प्रतिस्थापन करून स्पष्ट करतो:
- LSB पायरीचा आकार: LSB = FSR ÷ 2^N
- कमाल क्वांटायझेशन त्रुटी: ±LSB ÷ 2
- क्वांटायझेशन नॉईज (rms): LSB ÷ √12
- आदर्श SNR (full-scale sine): SNR = ६.०२ × N + १.७६ dB
- डायनॅमिक रेंज: ६.०२ × N dB
- युनिपोलर कोड: code = round(Vin ÷ LSB)
- बायपोलर कोड: code = round((Vin + Vref) ÷ LSB)
- युनिपोलर व्होल्टेज: V = code × LSB
- बायपोलर व्होल्टेज: V = code × LSB − Vref
- मोजमाप बिंदूवरील क्वांटायझेशन त्रुटी: कोड व्होल्टेज − इनपुट व्होल्टेज
- रिझोल्यूशन आकारमान: N ≥ log₂(FSR ÷ step), जे पुढील पूर्ण संख्येकडे राउंड केले जाते
सोडवलेले उदाहरण (उदाहरणाचा लोड घ्या)
जर आपण १२ बिट्स, ३.३ V संदर्भ व्होल्टेज आणि युनिपोलर रेंज निवडली, तर खालीलप्रमाणे आकडेमोड होते:
- क्वांटायझेशन लेव्हल्स = ४,०९६
- सर्वोच्च कोड = ४,०९५
- LSB = ३.३ V ÷ ४,०९६ ≈ ८०५.६६४१ µV
- कमाल क्वांटायझेशन त्रुटी = ±४०२.८३२ µV
- क्वांटायझेशन नॉईज ≈ २३२.५७५२ µV rms
- आदर्श SNR ≈ ७४.०१ dB
- डायनॅमिक रेंज ≈ ७२.२५ dB
- जर इनपुट व्होल्टेज १.६५ V (अंत्यत अचूक मिड-स्केल) असेल, तर ते कोड २,०४८ वर मॅप होते (बायनरी: १००० ०००० ००००, हेक्साडेसिमल: ०x८००) आणि क्वांटायझेशन त्रुटी शून्य असते.
नियम आणि विशेष परिस्थिती (Edge Cases)
- क्वांटायझेशन मॉडेल: हे साधन एका आदर्श क्वांटायझरचे मॉडेल वापरते, ज्यामध्ये पहिली कोड ट्रान्झिशन अर्ध्या पायरीवर (1 / 2 LSB) होते आणि LSB ची व्याख्या FSR ÷ 2^N अशी केली जाते.
- मर्यादा: हे सर्व आकडे एका आदर्श कन्व्हर्टरचे प्रतिनिधित्व करतात. प्रत्यक्ष ADC मध्ये INL/DNL, ऑफसेट, गेन आणि संदर्भ व्होल्टेजच्या त्रुटी असतात. त्यामुळे आदर्श SNR आणि ±½ LSB ची मर्यादा या केवळ सैद्धांतिक कमाल मर्यादा आहेत.
- युनिपोलर रेंज: फुल-स्केल रेंज (FSR) ही Vᵣef एवढी असते आणि इनपुट श्रेणी 0 ते Vᵣef पर्यंत चालते.
- बायपोलर रेंज: फुल-स्केल रेंज (FSR) ही 2 × Vᵣef एवढी असते. इनपुट श्रेणी -Vᵣef ते +Vᵣef पर्यंत असते. कोड 0 हा -Vᵣef वर, तर मधला कोड 2^(N-1) हा 0 V वर मॅप होतो.
- हाय रेल क्लिपिंग: जर इनपुट व्होल्टेज हाय रेलच्या वर गेले, तर आउटपुट सर्वोच्च कोडवर सॅच्युरेट होते. अशा वेळी साधन खालील चेतावणी दर्शवते: "इनपुट हाय रेलच्या वर आहे: आउटपुट सर्वोच्च कोडवर सॅच्युरेट होते, आणि दर्शविलेली त्रुटी ही खरी उर्वरित त्रुटी आहे — ±½ LSB ची मर्यादा आता लागू होत नाही."
- लो रेल क्लिपिंग: जर इनपुट व्होल्टेज लो रेलच्या खाली गेले, तर आउटपुट कोड ० वर सॅच्युरेट होते. अशा वेळी साधन खालील चेतावणी दर्शवते: "इनपुट लो रेलच्या खाली आहे: आउटपुट कोड ० वर सॅच्युरेट होते, आणि दर्शविलेली त्रुटी ही खरी उर्वरित त्रुटी आहे — ±½ LSB ची मर्यादा आता लागू होत नाही."
त्रुटी संदेश (Error Messages)
चुकीचे इनपुट प्रविष्ट केल्यास कॅल्क्युलेटर खालील त्रुटी संदेश दर्शवतो:
- अवैध संख्या प्रविष्ट केल्यास:
"‹field›: “‹token›” ही संख्या नाही." - रिझोल्यूशन मर्यादेबाहेर असल्यास:
"रिझोल्यूशन १ ते ३२ दरम्यानची बिट्सची पूर्ण संख्या असणे आवश्यक आहे." - शून्य किंवा ऋण संदर्भ व्होल्टेज असल्यास:
"संदर्भ व्होल्टेज शून्यापेक्षा जास्त असणे आवश्यक आहे." - अपूर्णांक कोड प्रविष्ट केल्यास:
"कोड ही मोजणीची एक पूर्ण संख्या असते." - कोड मर्यादेबाहेर असल्यास:
"‹bits›-बिट कन्व्हर्टरसाठी कोड ० आणि ‹max› च्या दरम्यान असणे आवश्यक आहे." - लक्ष्यित पायरी शून्य किंवा ऋण असल्यास:
"रिझॉल्व्ह करायचा सर्वात लहान बदल शून्यापेक्षा जास्त असणे आवश्यक आहे." - अतिशय मोठ्या संख्या असल्यास:
"मूल्य किंवा मध्यवर्ती निकाल समर्थित संख्या मर्यादेपेक्षा जास्त आहे."
गोपनीयता आणि प्रक्रिया
तुम्ही या साधनामध्ये प्रविष्ट केलेली प्रत्येक संख्या याच ब्राउझरमध्ये राहते — काहीही सर्व्हरवर अपलोड केले जात नाही. सर्व गणिते स्थानिक पातळीवर वापरकर्त्याच्या डिव्हाइसवरच पूर्ण केली जातात.
वारंवार विचारले जाणारे प्रश्न (FAQ)
१. १२-बिट रिझोल्यूशन म्हणजे १२-बिट अचूकता असा होतो का?
नाही. रिझोल्यूशन म्हणजे केवळ कोडची रुंदी असते — रेंज किती सूक्ष्मपणे विभागली गेली आहे ते. अचूकता ही कन्व्हर्टरच्या INL आणि ऑफसेट/गेन त्रुटी, संदर्भाची टॉलरन्स आणि नॉईज, आणि त्याभोवतीच्या सर्किटद्वारे मर्यादित असते. म्हणूनच डेटाशीट्स ENOB उद्धृत करतात: १२-बिट SAR सामान्यतः १०–११ प्रभावी बिट्स प्रदान करतो. येथे दर्शविलेला ७४ dB चा आदर्श SNR ही कमाल मर्यादा आहे जी कोणताही खरा १२-बिट कन्व्हर्टर गाठू शकत नाही.
२. ±Vref इनपुटमुळे गणितात कसा बदल होतो?
स्पॅन दुप्पट होऊन २ × Vref होतो, त्यामुळे तोच कन्व्हर्टर दुप्पट रुंद पायऱ्या रिझॉल्व्ह करतो: LSB = २ × Vref ÷ 2^N. कोड्स ऋण रेलपासून धन रेलपर्यंत चालतात — कोड ० हा −Vref असतो, मधला कोड 2^(N−1) हा ० V असतो, आणि सर्वोच्च कोड +Vref च्या एक पायरी खाली असतो. वरील बायपोलर रेंज निवडा आणि शून्य व्होल्ट अचूकपणे मधल्या कोडवर येईल.
३. काही स्रोत 2^N ने तर इतर 2^N − 1 ने का भागतात?
हे एकाच कन्व्हर्टरचे दोन वेगवेगळे मॉडेल्स आहेत. डेटाशीट्स आणि क्लासिक क्वांटायझेशन सिद्धांत LSB = FSR ÷ 2^N अशी व्याख्या करतात, ज्यामध्ये पहिली कोड ट्रान्झिशन अर्ध्या पायरीवर होते — हेच मॉडेल हे पेज वापरते. Vref ÷ (2^N − 1) हे रूप सर्वोच्च कोडला अचूकपणे Vref वर मॅप केल्याने येते, जे मायक्रोकंट्रोलर ट्युटोरियल्समध्ये सामान्य आहे. १२ बिट्सवर या दोन्हीमध्ये सुमारे ०.०२% चा फरक असतो, जो कोणत्याही खऱ्या संदर्भाच्या टॉलरन्सपेक्षा खूपच कमी आहे; फक्त वेगवेगळ्या स्रोतांवरील संख्या तपासताना या दोन्हीची गल्लत करू नका.
४. पायरीचा आकार खूप मोठा (अस्पष्ट) असेल तर मी काय करू शकतो?
जेव्हा सिग्नलमध्ये थोडा नॉईज असतो तेव्हा ओव्हरसॅम्पलिंग आणि ॲव्हरेजिंगमुळे रिझोल्यूशन वाढवता येते: ४× पट जास्त सॅम्पल्सचे ॲव्हरेजिंग केल्यास सुमारे एक प्रभावी बिट मिळतो, १६× पट केल्यास दोन मिळतात, बशर्ते नॉईज हा व्हाईट आणि असंबंधित असावा — अगदी स्वच्छ, पूर्णपणे स्थिर सिग्नल फक्त त्याच कोडची पुनरावृत्ती करतो. त्यापलीकडे, अधिक बिट्स असलेल्या कन्व्हर्टरवर जा किंवा प्रोग्रामेबल-गेन स्टेज जोडा जेणेकरून सिग्नल रेंजचा अधिक भाग व्यापेल.