ADC ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਅਤੇ LSB ਦੀ ਗਣਿਤਕ ਸਮਝ
ਐਨਾਲਾਗ-ਟੂ-ਡਿਜੀਟਲ ਕਨਵਰਟਰ (ADC) ਭੌਤਿਕ ਸੰਸਾਰ ਦੇ ਨਿਰੰਤਰ ਵੋਲਟੇਜ ਸਿਗਨਲਾਂ ਨੂੰ ਡਿਜੀਟਲ ਪ੍ਰਣਾਲੀਆਂ ਲਈ ਨਿਸ਼ਚਿਤ ਮੁੱਲਾਂ ਵਿੱਚ ਬਦਲਦੇ ਹਨ। ਇਸ ਪਰਿਵਰਤਨ ਦੀ ਬਾਰੀਕੀ ਅਤੇ ਗੁਣਵੱਤਾ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਕਨਵਰਟਰ ਦੇ ਬਿੱਟ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਅਤੇ ਰੈਫਰੈਂਸ ਵੋਲਟੇਜ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ। ADC Resolution Calculator ਇੱਕ ਮੁਫ਼ਤ ਔਨਲਾਈਨ ਟੂਲ ਹੈ ਜੋ ਕਿਸੇ ADC ਦੇ ਬਿੱਟ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਅਤੇ ਰੈਫਰੈਂਸ ਵੋਲਟੇਜ ਦੇ ਆਧਾਰ 'ਤੇ ਉਸਦਾ ਸਟੈਪ ਸਾਈਜ਼, ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ, ਅਤੇ ਆਦਰਸ਼ ਸਿਗਨਲ-ਟੂ-ਨੋਇਸ ਰੇਸ਼ੋ (SNR) ਦੀ ਗਣਨਾ ਕਰਦਾ ਹੈ।
ਇਸ ਟੂਲ ਦੀ ਮਦਦ ਨਾਲ ਯੂਨੀਪੋਲਰ ਅਤੇ ਬਾਈਪੋਲਰ ਦੋਵੇਂ ਤਰ੍ਹਾਂ ਦੀਆਂ ਇਨਪੁਟ ਰੇਂਜਾਂ ਦਾ ਮੁਲਾਂਕਣ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਇਨਪੁਟ ਵੋਲਟੇਜ ਅਤੇ ਡਿਜੀਟਲ ਕੋਡ ਦੇ ਵਿਚਕਾਰ ਆਪਸੀ ਪਰਿਵਰਤਨ ਕਰਨ ਦੀ ਸਹੂਲਤ ਦਿੰਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਖਾਸ ਟਾਰਗੇਟ ਵੋਲਟੇਜ ਬਦਲਾਅ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਲੋੜੀਂਦੇ ਘੱਟੋ-ਘੱਟ ਬਿੱਟ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਦੀ ਗਣਨਾ ਵੀ ਕਰਦਾ ਹੈ। ਹਰੇਕ ਗਣਨਾ ਦੇ ਪਿੱਛੇ ਮੌਜੂਦ ਫਾਰਮੂਲਿਆਂ ਅਤੇ ਉਹਨਾਂ ਵਿੱਚ ਮੁੱਲਾਂ ਦੇ ਪ੍ਰਤਿਸਥਾਪਨ (substitution) ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਪਸ਼ਟ ਰੂਪ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਤਾਂ ਜੋ ਸਿਧਾਂਤਕ ਸੀਮਾਵਾਂ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਸਮਝਿਆ ਜਾ ਸਕੇ।
ਕੈਲਕੁਲੇਟਰ ਦੇ ਇਨਪੁਟ ਅਤੇ ਆਉਟਪੁੱਟ ਪੈਰਾਮੀਟਰ
ਇਸ ਟੂਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਉਪਭੋਗਤਾ ਨੂੰ ਹੇਠ ਲਿਖੇ ਇਨਪੁਟ ਪ੍ਰਦਾਨ ਕਰਨੇ ਪੈਂਦੇ ਹਨ:
- ਰੈਜ਼ੋਲਿਊਸ਼ਨ N (ਬਿੱਟ): 1 ਤੋਂ 32 ਤੱਕ ਦੀ ਪੂਰਨ ਸੰਖਿਆ ਜੋ ਕਨਵਰਟਰ ਦੀ ਨਾਮਾਤਰ ਬਿੱਟ ਚੌੜਾਈ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।
- ਰੈਫਰੈਂਸ ਵੋਲਟੇਜ: ਇੱਕ ਪਾਜ਼ਿਟਿਵ ਸੰਖਿਆ ਜੋ ਸਿਸਟਮ ਦੀ ਰੈਫਰੈਂਸ ਵੋਲਟੇਜ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।
- ਰੈਫਰੈਂਸ ਯੂਨਿਟ: ਰੈਫਰੈਂਸ ਵੋਲਟੇਜ ਨੂੰ ਮਾਪਣ ਦੀ ਇਕਾਈ।
- ਇਨਪੁਟ ਰੇਂਜ: "ਯੂਨੀਪੋਲਰ · 0 ਤੋਂ Vref" ਜਾਂ "ਬਾਈਪੋਲਰ · −Vref ਤੋਂ +Vref" ਵਿੱਚੋਂ ਕੋਈ ਇੱਕ ਚੋਣ।
- ਦਿਖਾਏ ਜਾਣ ਵਾਲੇ ਦਸ਼ਮਲਵ: ਨਤੀਜਿਆਂ ਵਿੱਚ ਦਿਖਾਏ ਜਾਣ ਵਾਲੇ ਦਸ਼ਮਲਵ ਸਥਾਨਾਂ ਦੀ ਸੰਖਿਆ।
- ਬਦਲੋ (ਮਾਪ ਬਿੰਦੂ - ਵਿਕਲਪਿਕ): ਪਰਿਵਰਤਨ ਮੋਡ ਦੀ ਚੋਣ ਜਿਵੇਂ ਕਿ "ਵੋਲਟੇਜ → ਕੋਡ" ਜਾਂ "ਕੋਡ → ਵੋਲਟੇਜ"।
- ਇਨਪੁਟ ਵੋਲਟੇਜ (ਵਿਕਲਪਿਕ): ਉਹ ਵੋਲਟੇਜ ਜਿਸ ਨੂੰ ਡਿਜੀਟਲ ਕੋਡ ਵਿੱਚ ਬਦਲਣਾ ਹੈ।
- ਕੋਡ (ਕਾਊਂਟਸ) (ਵਿਕਲਪਿਕ): 0 ਤੋਂ ਲੈ ਕੇ ਕਨਵਰਟਰ ਦੇ ਸਭ ਤੋਂ ਉੱਪਰਲੇ ਕੋਡ ਤੱਕ ਦੀ ਇੱਕ ਪੂਰਨ ਸੰਖਿਆ ਜਿਸ ਨੂੰ ਵੋਲਟੇਜ ਵਿੱਚ ਬਦਲਣਾ ਹੈ।
- ਵੋਲਟੇਜ ਯੂਨਿਟ: ਇਨਪੁਟ ਵੋਲਟੇਜ ਜਾਂ ਕੋਡ ਵੋਲਟੇਜ ਦੀ ਇਕਾਈ।
- ਰਿਜ਼ੌਲਵ ਕਰਨ ਲਈ ਸਭ ਤੋਂ ਛੋਟਾ ਬਦਲਾਅ (ਵਿਕਲਪਿਕ): ਲੋੜੀਂਦੇ ਬਿੱਟ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ ਇੱਕ ਪਾਜ਼ਿਟਿਵ ਟਾਰਗੇਟ ਵੋਲਟੇਜ ਸਟੈਪ।
- ਸਟੈਪ ਯੂਨਿਟ: ਸਭ ਤੋਂ ਛੋਟੇ ਬਦਲਾਅ ਦੀ ਇਕਾਈ।
ਇੰਟਰਫੇਸ 'ਤੇ ਮੌਜੂਦ "ਉਦਾਹਰਨ ਲੋਡ ਕਰੋ" ਬਟਨ ਨਾਲ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ ਭਰੇ ਜਾ ਸਕਦੇ ਹਨ ਅਤੇ "ਸਾਫ਼ ਕਰੋ" ਬਟਨ ਨਾਲ ਸਾਰੇ ਇਨਪੁਟਸ ਨੂੰ ਰੀਸੈੱਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਗਣਨਾ ਤੋਂ ਬਾਅਦ ਟੂਲ ਹੇਠ ਲਿਖੇ ਨਤੀਜੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ:
ਸਟੈਪ ਸਾਈਜ਼ ਅਤੇ ਨੋਇਸ
- LSB ਸਟੈਪ ਦਾ ਆਕਾਰ: ਲੀਸਟ ਸਿਗਨੀਫੀਕੈਂਟ ਬਿੱਟ (LSB) ਸਟੈਪ ਦਾ ਆਕਾਰ, ਜਿਸ ਦੇ ਨਾਲ ਇਹ ਸਟੈਪ ਪੂਰੇ ਪੈਮਾਨੇ ਦੇ ਪ੍ਰਤੀਸ਼ਤ (%) ਅਤੇ ppm (parts per million) ਦੇ ਰੂਪ ਵਿੱਚ ਵੀ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ।
- ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਲੈਵਲ: ਡਿਸਕ੍ਰੀਟ ਪੱਧਰਾਂ ਦੀ ਕੁੱਲ ਸੰਖਿਆ (2^N)।
- ਸਭ ਤੋਂ ਉੱਪਰਲਾ ਕੋਡ: ਅਧਿਕਤਮ ਡਿਜੀਟਲ ਆਉਟਪੁੱਟ ਕੋਡ (2^N - 1)।
- ਫੁੱਲ-ਸਕੇਲ ਰੇਂਜ: ਕਨਵਰਟਰ ਦੀ ਕੁੱਲ ਵੋਲਟੇਜ ਸੀਮਾ।
- ਅਧਿਕਤਮ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ (±½ LSB): ਸਿਧਾਂਤਕ ਤੌਰ 'ਤੇ ਅਧਿਕਤਮ ਸੰਭਵ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ।
- ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਨੋਇਸ (rms): ਰੂਟ-ਮੀਨ-ਸਕੁਏਅਰ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਨੋਇਸ ਵੋਲਟੇਜ।
- ਆਦਰਸ਼ SNR (ਫੁੱਲ-ਸਕੇਲ ਸਾਈਨ): ਡੈਸੀਬਲ (dB) ਵਿੱਚ ਸਿਧਾਂਤਕ ਅਧਿਕਤਮ ਸਿਗਨਲ-ਟੂ-ਨੋਇਸ ਰੇਸ਼ੋ।
- ਡਾਇਨਾਮਿਕ ਰੇਂਜ: ਡੈਸੀਬਲ (dB) ਵਿੱਚ ਸਿਧਾਂਤਕ ਡਾਇਨਾਮਿਕ ਰੇਂਜ।
ਮਾਪ ਬਿੰਦੂ 'ਤੇ
- ਆਉਟਪੁੱਟ ਕੋਡ: ਵੋਲਟੇਜ-ਟੂ-ਕੋਡ ਪਰਿਵਰਤਨ ਤੋਂ ਪ੍ਰਾਪਤ ਡਿਜੀਟਲ ਕੋਡ।
- ਬਾਈਨਰੀ: ਆਉਟਪੁੱਟ ਕੋਡ ਦਾ ਬਾਈਨਰੀ ਰੂਪ।
- ਹੈਕਸਾਡੈਸੀਮਲ: ਆਉਟਪੁੱਟ ਕੋਡ ਦਾ ਹੈਕਸਾਡੈਸੀਮਲ ਰੂਪ।
- ਕੋਡ ਵੋਲਟੇਜ: ਦਿੱਤੇ ਗਏ ਡਿਜੀਟਲ ਕੋਡ ਦੇ ਬਰਾਬਰ ਦੀ ਸਹੀ ਵੋਲਟੇਜ।
- ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ: ਅਸਲ ਇਨਪੁਟ ਵੋਲਟੇਜ ਅਤੇ ਕੋਡ ਵੋਲਟੇਜ ਵਿਚਕਾਰ ਅੰਤਰ।
- ਇਸ ਕੋਡ ਲਈ ਇਨਪੁਟ ਵਿੰਡੋ: ਇਨਪੁਟ ਵੋਲਟੇਜ ਦੀ ਉਹ ਰੇਂਜ ਜੋ ਇਸ ਖਾਸ ਡਿਜੀਟਲ ਕੋਡ 'ਤੇ ਮੈਪ ਹੁੰਦੀ ਹੈ।
ਤੁਹਾਨੂੰ ਕਿੰਨੇ ਬਿੱਟ ਚਾਹੀਦੇ ਹਨ?
"ਰਿਜ਼ੌਲਵ ਕਰਨ ਲਈ ਸਭ ਤੋਂ ਛੋਟਾ ਬਦਲਾਅ" ਫੀਲਡ ਵਿੱਚ ਇੱਕ ਟਾਰਗੇਟ ਸਟੈਪ ਦਰਜ ਕਰਨ 'ਤੇ, ਟੂਲ ਉਸ ਸਟੈਪ ਨੂੰ ਰਿਜ਼ੌਲਵ ਕਰਨ ਲਈ ਘੱਟੋ-ਘੱਟ ਕਿੰਨੇ ਬਿੱਟ ਚਾਹੀਦੇ ਹਨ, ਇਹ ਗਣਨਾ ਕਰਦਾ ਹੈ:
N ≥ log₂(FSR ÷ ਸਟੈਪ)
ਨਤੀਜਾ ਹਮੇਸ਼ਾ ਅਗਲੀ ਪੂਰਨ ਸੰਖਿਆ ਤੱਕ ਰਾਊਂਡ ਅੱਪ ਹੁੰਦਾ ਹੈ। ਫਿਰ ਲੋੜ ਦੀ ਤੁਲਨਾ ਚੁਣੀ ਗਈ ਬਿੱਟ ਚੌੜਾਈ ਨਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ: ਜੇਕਰ ਕਨਵਰਟਰ ਟਾਰਗੇਟ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ ਤਾਂ ਟੂਲ ਇਸਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ; ਨਹੀਂ ਤਾਂ ਮੌਜੂਦਾ ਕਨਵਰਟਰ ਅਸਲ ਵਿੱਚ ਕਿਹੜਾ ਸਟੈਪ ਸਾਈਜ਼ ਰਿਜ਼ੌਲਵ ਕਰ ਸਕਦਾ ਹੈ, ਉਹ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ।
ਗਣਿਤਕ ਫਾਰਮੂਲੇ ਅਤੇ ਪ੍ਰਤਿਸਥਾਪਨ
ਟੂਲ ਹਰੇਕ ਗਣਨਾ ਲਈ ਵਰਤੇ ਗਏ ਫਾਰਮੂਲਿਆਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਵਿੱਚ ਉਪਭੋਗਤਾ ਦੇ ਮੁੱਲਾਂ ਨੂੰ ਪ੍ਰਤਿਸਥਾਪਿਤ ਕਰਕੇ ਦਿਖਾਉਂਦਾ ਹੈ:
- LSB ਸਟੈਪ ਦਾ ਆਕਾਰ: LSB = FSR ÷ 2^N
- ਅਧਿਕਤਮ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ: ±LSB ÷ 2
- ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਨੋਇਸ (rms): LSB ÷ √(12)
- ਆਦਰਸ਼ SNR (ਫੁੱਲ-ਸਕੇਲ ਸਾਈਨ): SNR = 6.02 × N + 1.76 dB
- ਡਾਇਨਾਮਿਕ ਰੇਂਜ: 6.02 × N dB
- ਯੂਨੀਪੋਲਰ ਕੋਡ: code = round(Vᵢₙ ÷ LSB)
- ਬਾਈਪੋਲਰ ਕੋਡ: code = round((Vᵢₙ + Vᵣef) ÷ LSB)
- ਯੂਨੀਪੋਲਰ ਵੋਲਟੇਜ: V = code × LSB
- ਬਾਈਪੋਲਰ ਵੋਲਟੇਜ: V = code × LSB - Vᵣef
- ਮਾਪ ਬਿੰਦੂ 'ਤੇ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ: ਕੋਡ ਵੋਲਟੇਜ - ਇਨਪੁਟ ਵੋਲਟੇਜ
- ਲੋੜੀਂਦਾ ਰੈਜ਼ੋਲਿਊਸ਼ਨ: N ≥ log₂(FSR ÷ step) (ਅਗਲੀ ਪੂਰਨ ਸੰਖਿਆ ਤੱਕ ਰਾਊਂਡ ਅੱਪ)
ਕਾਰਜਸ਼ੀਲ ਉਦਾਹਰਨ
ਜੇਕਰ ਅਸੀਂ 12 ਬਿੱਟ ਰੈਜ਼ੋਲਿਊਸ਼ਨ, 3.3 V ਰੈਫਰੈਂਸ ਵੋਲਟੇਜ ਅਤੇ ਯੂਨੀਪੋਲਰ ਰੇਂਜ ਦੀ ਚੋਣ ਕਰਦੇ ਹਾਂ, ਤਾਂ ਗਣਨਾ ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ ਹੋਵੇਗੀ:
- ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਲੈਵਲ = 2¹² = 4,096
- ਸਭ ਤੋਂ ਉੱਪਰਲਾ ਕੋਡ = 4,095
- LSB = 3.3 V ÷ 4,096 ≈ 805.6641 µV
- ਅਧਿਕਤਮ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ = ± 402.832 µV
- ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਨੋਇਸ ≈ 232.5752 µV rms
- ਆਦਰਸ਼ SNR ≈ 74.01 dB
- ਡਾਇਨਾਮਿਕ ਰੇਂਜ ≈ 72.25 dB
ਜੇਕਰ ਇਸੇ ਸੈਟਿੰਗ ਵਿੱਚ 1.65 V ਦਾ ਇਨਪੁਟ ਦਿੱਤਾ ਜਾਵੇ, ਜੋ ਕਿ ਬਿਲਕੁਲ ਮਿਡ-ਸਕੇਲ ਹੈ, ਤਾਂ ਇਹ ਕੋਡ 2,048 (ਬਾਈਨਰੀ 1000 0000 0000, ਹੈਕਸਾਡੈਸੀਮਲ 0x800) 'ਤੇ ਮੈਪ ਹੋਵੇਗਾ ਅਤੇ ਇਸਦੀ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ ਜ਼ੀਰੋ ਹੋਵੇਗੀ।
ਨਿਯਮ ਅਤੇ ਵਿਸ਼ੇਸ਼ ਸਥਿਤੀਆਂ (Edge Cases)
ਕੈਲਕੁਲੇਟਰ ਕੁਝ ਖਾਸ ਗਣਿਤਕ ਨਿਯਮਾਂ ਅਤੇ ਸੀਮਾਵਾਂ ਦੇ ਤਹਿਤ ਕੰਮ ਕਰਦਾ ਹੈ:
- ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਮਾਡਲ: ਇਹ ਟੂਲ ਇੱਕ ਆਦਰਸ਼ ਕੁਆਂਟਾਈਜ਼ਰ ਨੂੰ ਮਾਡਲ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਪਹਿਲਾ ਕੋਡ ਟ੍ਰਾਂਜ਼ਿਸ਼ਨ ਅੱਧੇ ਸਟੈਪ (1 / 2 LSB) 'ਤੇ ਹੁੰਦਾ ਹੈ।
- ਸਿਧਾਂਤਕ ਸੀਮਾਵਾਂ: ਸਾਰੇ ਅੰਕੜੇ ਇੱਕ ਆਦਰਸ਼ ਕਨਵਰਟਰ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ। ਇੱਕ ਅਸਲੀ ADC ਵਿੱਚ INL, DNL, ਆਫਸੈੱਟ, ਗੇਨ ਅਤੇ ਰੈਫਰੈਂਸ ਤਰੁੱਟੀਆਂ ਸ਼ਾਮਲ ਹੁੰਦੀਆਂ ਹਨ, ਇਸਲਈ ਆਦਰਸ਼ SNR ਅਤੇ ±1 / 2 LSB ਦੀ ਸੀਮਾ ਸਿਰਫ਼ ਸਿਧਾਂਤਕ ਅਧਿਕਤਮ ਸੀਮਾਵਾਂ ਹਨ, ਨਾ ਕਿ ਅਸਲ ਪ੍ਰਦਰਸ਼ਨ।
- ਯੂਨੀਪੋਲਰ ਅਤੇ ਬਾਈਪੋਲਰ ਰੇਂਜ: ਯੂਨੀਪੋਲਰ ਵਿੱਚ ਫੁੱਲ-ਸਕੇਲ ਰੇਂਜ (FSR) Vᵣef ਦੇ ਬਰਾਬਰ ਹੁੰਦੀ ਹੈ। ਬਾਈਪੋਲਰ ਵਿੱਚ FSR ਦਾ ਮੁੱਲ 2 × Vᵣef ਹੁੰਦਾ ਹੈ, ਜਿੱਥੇ ਕੋਡ 0 ਦਾ ਮਤਲਬ -Vᵣef ਹੈ ਅਤੇ ਮਿਡ-ਸਕੇਲ ਕੋਡ 2^(N-1) ਦਾ ਮਤਲਬ 0 V ਹੁੰਦਾ ਹੈ।
- ਹਾਈ ਰੇਲ ਕਲਿੱਪਿੰਗ: ਜੇਕਰ ਇਨਪੁਟ ਵੋਲਟੇਜ ਉੱਚੀ ਸੀਮਾ ਤੋਂ ਉੱਪਰ ਚਲੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਆਉਟਪੁੱਟ ਸਭ ਤੋਂ ਉੱਪਰਲੇ ਕੋਡ (2^N - 1) 'ਤੇ ਸੈਚੁਰੇਟ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ ਟੂਲ ਚੇਤਾਵਨੀ ਦਿੰਦਾ ਹੈ: "ਇਨਪੁਟ ਉੱਚੀ ਸੀਮਾ ਤੋਂ ਉੱਪਰ ਹੈ: ਆਉਟਪੁੱਟ ਸਭ ਤੋਂ ਉੱਪਰਲੇ ਕੋਡ 'ਤੇ ਸੈਚੁਰੇਟ ਹੋ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਦਿਖਾਈ ਗਈ ਤਰੁੱਟੀ ਅਸਲ ਬਾਕੀ ਬਚੀ ਤਰੁੱਟੀ ਹੈ — ±½ LSB ਦੀ ਸੀਮਾ ਹੁਣ ਲਾਗੂ ਨਹੀਂ ਹੁੰਦੀ।"
- ਲੋਅ ਰੇਲ ਕਲਿੱਪਿੰਗ: ਜੇਕਰ ਇਨਪੁਟ ਵੋਲਟੇਜ ਨੀਵੀਂ ਸੀਮਾ ਤੋਂ ਹੇਠਾਂ ਚਲੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਆਉਟਪੁੱਟ ਕੋਡ 0 'ਤੇ ਸੈਚੁਰੇਟ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ ਟੂਲ ਚੇਤਾਵਨੀ ਦਿੰਦਾ ਹੈ: "ਇਨਪੁਟ ਨੀਵੀਂ ਸੀਮਾ ਤੋਂ ਹੇਠਾਂ ਹੈ: ਆਉਟਪੁੱਟ ਕੋਡ 0 'ਤੇ ਸੈਚੁਰੇਟ ਹੋ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਦਿਖਾਈ ਗਈ ਤਰੁੱਟੀ ਅਸਲ ਬਾਕੀ ਬਚੀ ਤਰੁੱਟੀ ਹੈ — ±½ LSB ਦੀ ਸੀਮਾ ਹੁਣ ਲਾਗੂ ਨਹੀਂ ਹੁੰਦੀ।"
- ਬਿਲਕੁਲ ਮਿਡ-ਸਕੇਲ: ਜੇਕਰ ਇਨਪੁਟ ਵੋਲਟੇਜ ਰੇਂਜ ਦੇ ਬਿਲਕੁਲ ਮੱਧ ਵਿੱਚ ਹੋਵੇ, ਤਾਂ ਟੂਲ ਨੋਟ ਕਰਦਾ ਹੈ: "ਬਿਲਕੁਲ ਮਿਡ-ਸਕੇਲ: ਅੱਧਾ ਸਪੈਨ ਜ਼ੀਰੋ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਤਰੁੱਟੀ ਦੇ ਨਾਲ ਕੋਡ ‹code› 'ਤੇ ਮੈਪ ਹੁੰਦਾ ਹੈ।"
ਗ਼ਲਤੀ ਸੁਨੇਹੇ (Error Messages)
ਜੇਕਰ ਕੋਈ ਇਨਪੁੱਟ ਕਨਵਰਟਰ ਦੀਆਂ ਭੌਤਿਕ ਜਾਂ ਗਣਿਤਕ ਸੀਮਾਵਾਂ ਦੀ ਉਲੰਘਣਾ ਕਰਦਾ ਹੈ, ਤਾਂ ਟੂਲ ਹੇਠ ਲਿਖੀਆਂ ਗ਼ਲਤੀਆਂ ਵਿੱਚੋਂ ਇੱਕ ਦਿਖਾਉਂਦਾ ਹੈ:
- ਗੈਰ-ਸੰਖਿਅਕ ਇਨਪੁੱਟ:
"‹field›: “‹token›” ਕੋਈ ਸੰਖਿਆ ਨਹੀਂ ਹੈ।" - ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਸੀਮਾ ਤੋਂ ਬਾਹਰ:
"ਰੈਜ਼ੋਲਿਊਸ਼ਨ 1 ਅਤੇ 32 ਦੇ ਵਿਚਕਾਰ ਬਿੱਟਾਂ ਦੀ ਇੱਕ ਪੂਰਨ ਸੰਖਿਆ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।" - ਰੈਫਰੈਂਸ ਵੋਲਟੇਜ ਜ਼ੀਰੋ ਜਾਂ ਨੈਗੇਟਿਵ:
"ਰੈਫਰੈਂਸ ਵੋਲਟੇਜ ਜ਼ੀਰੋ ਤੋਂ ਵੱਧ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।" - ਗੈਰ-ਪੂਰਨ ਡਿਜੀਟਲ ਕੋਡ:
"ਕੋਡ ਗਿਣਤੀ ਦੀ ਇੱਕ ਪੂਰਨ ਸੰਖਿਆ ਹੁੰਦਾ ਹੈ।" - ਡਿਜੀਟਲ ਕੋਡ ਸੀਮਾ ਤੋਂ ਬਾਹਰ:
"ਕੋਡ ‹bits›-ਬਿੱਟ ਕਨਵਰਟਰ ਲਈ 0 ਅਤੇ ‹max› ਦੇ ਵਿਚਕਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।" - ਟਾਰਗੇਟ ਸਟੈਪ ਜ਼ੀਰੋ ਜਾਂ ਨੈਗੇਟਿਵ:
"ਹੱਲ ਕਰਨ ਲਈ ਸਭ ਤੋਂ ਛੋਟਾ ਬਦਲਾਅ ਜ਼ੀਰੋ ਤੋਂ ਵੱਧ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।" - ਸੰਖਿਅਕ ਓਵਰਫਲੋ:
"ਕੋਈ ਮੁੱਲ ਜਾਂ ਵਿਚਕਾਰਲਾ ਨਤੀਜਾ ਸਮਰਥਿਤ ਸੰਖਿਆ ਰੇਂਜ ਤੋਂ ਵੱਧ ਗਿਆ ਹੈ।"
ਨਿੱਜਤਾ ਅਤੇ ਸਥਾਨਕ ਪ੍ਰੋਸੈਸਿੰਗ
ਤੁਹਾਡੇ ਦੁਆਰਾ ਦਰਜ ਕੀਤੀ ਗਈ ਹਰ ਸੰਖਿਆ ਇਸੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ — ਕੁਝ ਵੀ ਅਪਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ। ਸਾਰੀਆਂ ਗਣਨਾਵਾਂ ਤੁਹਾਡੇ ਡਿਵਾਈਸ 'ਤੇ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਜਿਸ ਨਾਲ ਤੁਹਾਡੇ ਡਿਜ਼ਾਈਨ ਪੈਰਾਮੀਟਰ ਅਤੇ ਮਾਪ ਡਾਟਾ ਨਿੱਜੀ ਰਹਿੰਦੇ ਹਨ।
ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ (FAQ)
ਕੁਝ ਸਰੋਤ 2^N ਨਾਲ ਅਤੇ ਕੁਝ 2^N − 1 ਨਾਲ ਕਿਉਂ ਵੰਡਦੇ ਹਨ?
ਇਹ ਇੱਕੋ ਕਨਵਰਟਰ ਦੇ ਦੋ ਵੱਖ-ਵੱਖ ਮਾਡਲ ਹਨ। ਡਾਟਾਸ਼ੀਟਾਂ ਅਤੇ ਕਲਾਸਿਕ ਕੁਆਂਟਾਈਜ਼ੇਸ਼ਨ ਸਿਧਾਂਤ LSB = FSR ÷ 2^N ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਨ, ਜਿਸ ਵਿੱਚ ਪਹਿਲਾ ਕੋਡ ਟ੍ਰਾਂਜ਼ਿਸ਼ਨ ਅੱਧੇ ਸਟੈਪ 'ਤੇ ਹੁੰਦਾ ਹੈ — ਇਹ ਉਹ ਮਾਡਲ ਹੈ ਜੋ ਇਹ ਪੇਜ ਵਰਤਦਾ ਹੈ। Vref ÷ (2^N − 1) ਰੂਪ ਸਭ ਤੋਂ ਉੱਪਰਲੇ ਕੋਡ ਨੂੰ ਬਿਲਕੁਲ Vref 'ਤੇ ਮੈਪ ਕਰਨ ਤੋਂ ਆਉਂਦਾ ਹੈ, ਜੋ ਕਿ ਮਾਈਕ੍ਰੋਕੰਟਰੋਲਰ ਟਿਊਟੋਰਿਅਲਸ ਵਿੱਚ ਆਮ ਹੈ। 12 ਬਿੱਟਾਂ 'ਤੇ ਦੋਵਾਂ ਵਿੱਚ ਲਗਭਗ 0.02% ਦਾ ਅੰਤਰ ਹੁੰਦਾ ਹੈ, ਜੋ ਕਿਸੇ ਵੀ ਅਸਲੀ ਰੈਫਰੈਂਸ ਦੀ ਸਹਿਣਸ਼ੀਲਤਾ ਤੋਂ ਬਹੁਤ ਘੱਟ ਹੈ; ਵੱਖ-ਵੱਖ ਸਰੋਤਾਂ ਤੋਂ ਸੰਖਿਆਵਾਂ ਦੀ ਜਾਂਚ ਕਰਦੇ ਸਮੇਂ ਬਸ ਇਹਨਾਂ ਦੋਵਾਂ ਨੂੰ ਆਪਸ ਵਿੱਚ ਨਾ ਮਿਲਾਓ।
ਕੀ 12-ਬਿੱਟ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਦਾ ਮਤਲਬ 12-ਬਿੱਟ ਸ਼ੁੱਧਤਾ ਹੈ?
ਨਹੀਂ। ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਸਿਰਫ਼ ਕੋਡ ਦੀ ਚੌੜਾਈ ਹੈ — ਕਿ ਰੇਂਜ ਨੂੰ ਕਿੰਨੇ ਬਾਰੀਕ ਹਿੱਸਿਆਂ ਵਿੱਚ ਵੰਡਿਆ ਗਿਆ ਹੈ। ਸ਼ੁੱਧਤਾ ਕਨਵਰਟਰ ਦੇ INL ਅਤੇ ਆਫਸੈੱਟ/ਗੇਨ ਤਰੁੱਟੀਆਂ, ਰੈਫਰੈਂਸ ਦੀ ਸਹਿਣਸ਼ੀਲਤਾ (tolerance) ਅਤੇ ਨੋਇਸ, ਅਤੇ ਇਸਦੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਸਰਕਟ ਦੁਆਰਾ ਸੀਮਿਤ ਹੁੰਦੀ ਹੈ। ਇਹੀ ਕਾਰਨ ਹੈ ਕਿ ਡਾਟਾਸ਼ੀਟਾਂ ENOB ਦਾ ਹਵਾਲਾ ਦਿੰਦੀਆਂ ਹਨ: ਇੱਕ 12-ਬਿੱਟ SAR ਆਮ ਤੌਰ 'ਤੇ 10–11 ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਬਿੱਟ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇੱਥੇ ਦਿਖਾਇਆ ਗਿਆ 74 dB ਆਦਰਸ਼ SNR ਉਹ ਅਧਿਕਤਮ ਸੀਮਾ ਹੈ ਜਿਸ ਤੱਕ ਕੋਈ ਵੀ ਅਸਲੀ 12-ਬਿੱਟ ਕਨਵਰਟਰ ਨਹੀਂ ਪਹੁੰਚਦਾ।
ਇੱਕ ±Vref ਇਨਪੁਟ ਗਣਿਤ ਨੂੰ ਕਿਵੇਂ ਬਦਲਦਾ ਹੈ?
ਸਪੈਨ ਦੁੱਗਣਾ ਹੋ ਕੇ 2 × Vref ਹੋ ਜਾਂਦਾ ਹੈ, ਇਸਲਈ ਉਹੀ ਕਨਵਰਟਰ ਦੁੱਗਣੇ ਚੌੜੇ ਸਟੈਪਸ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ: LSB = 2 × Vref ÷ 2^N। ਕੋਡ ਨੈਗੇਟਿਵ ਰੇਲ ਤੋਂ ਪਾਜ਼ਿਟਿਵ ਰੇਲ ਤੱਕ ਚੱਲਦੇ ਹਨ — ਕੋਡ 0 ਦਾ ਮਤਲਬ −Vref ਹੈ, ਮੱਧ ਕੋਡ 2^(N−1) ਦਾ ਮਤਲਬ 0 V ਹੈ, ਅਤੇ ਸਭ ਤੋਂ ਉੱਪਰਲਾ ਕੋਡ +Vref ਤੋਂ ਇੱਕ ਸਟੈਪ ਹੇਠਾਂ ਹੁੰਦਾ ਹੈ। ਉੱਪਰ ਬਾਈਪੋਲਰ ਰੇਂਜ ਦੀ ਚੋਣ ਕਰੋ ਅਤੇ ਜ਼ੀਰੋ ਵੋਲਟ ਬਿਲਕੁਲ ਮੱਧ ਕੋਡ 'ਤੇ ਆ ਜਾਵੇਗਾ।
ਜਦੋਂ ਸਟੈਪ ਦਾ ਆਕਾਰ ਬਹੁਤ ਮੋਟਾ ਹੋਵੇ ਤਾਂ ਮੈਂ ਕੀ ਕਰ ਸਕਦਾ ਹਾਂ?
ਜਦੋਂ ਸਿਗਨਲ ਵਿੱਚ ਥੋੜ੍ਹਾ ਜਿਹਾ ਨੋਇਸ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਓਵਰਸੈਂਪਲਿੰਗ ਅਤੇ ਔਸਤ ਕੱਢਣ ਨਾਲ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਵਧਾਇਆ ਜਾ ਸਕਦਾ ਹੈ: 4× ਵੱਧ ਸੈਂਪਲਾਂ ਦੀ ਔਸਤ ਕੱਢਣ ਨਾਲ ਲਗਭਗ ਇੱਕ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਬਿੱਟ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ, 16× ਨਾਲ ਦੋ ਪ੍ਰਾਪਤ ਹੁੰਦੇ ਹਨ, ਬਸ਼ਰਤੇ ਨੋਇਸ ਵ੍ਹਾਈਟ (white) ਅਤੇ ਗੈਰ-ਸੰਬੰਧਿਤ (uncorrelated) ਹੋਵੇ — ਇੱਕ ਬਿਲਕੁਲ ਸਾਫ਼, ਬਿਲਕੁਲ ਸਥਿਰ ਸਿਗਨਲ ਬਸ ਉਸੇ ਕੋਡ ਨੂੰ ਦੁਹਰਾਉਂਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਵਧੇਰੇ ਬਿੱਟਾਂ ਵਾਲੇ ਕਨਵਰਟਰ 'ਤੇ ਜਾਓ ਜਾਂ ਇੱਕ ਪ੍ਰੋਗਰਾਮੇਬਲ-ਗੇਨ ਸਟੇਜ ਜੋੜੋ ਤਾਂ ਜੋ ਸਿਗਨਲ ਰੇਂਜ ਦੇ ਵਧੇਰੇ ਹਿੱਸੇ ਨੂੰ ਭਰ ਸਕੇ।