Efektywna liczba bitów 14-bitowego ADC

18

Mam 14-bitowy ADC . Jednak patrząc na arkusz danych (patrz tabela 2 na stronie 5), efektywna liczba bitów (ENOB) jest zawsze mniejsza niż 12 bitów.

Dlaczego mój DAC twierdzi, że jest 14-bitowym ADC, skoro ma tylko 12-bitową dokładność? Po co mieć dwa dodatkowe bity, jeśli są bez znaczenia?

Randomblue
źródło
1
Chociaż mogą nie być zbytnio przydatne w jednopunktowym samplerze szerokopasmowym, takim jak luneta, mają one znaczenie w aplikacjach, które integrują się z czasem, takich jak radio programowe. Dzięki jednej z implementacji opartych na FPGA łatwo byłoby dodać bit trybu, aby wyłączyć maskowanie ich i zobaczyć różnicę w wydajności kolejnych filtrów z wejściowymi bitami „fałszywymi” i bez nich.
Chris Stratton,
1
Tak zaprojektowano układ. Nawet jeśli otrzymujesz 14-bitowe dane, możesz zauważyć, że ostatnia wartość danych będzie się zmieniać, a to z powodu bitów szumu. Użyłem 24-bitowego ADC - AD7190 i daje on tylko 18 bitów bez szumów.
PsychedGuy

Odpowiedzi:

17

Zostałeś oszukany!

14-bit mówi o marketingu, a sprzęt daje ci to, więc powiedzą, że nie masz na co narzekać. Tuż nad ENOB w arkuszu danych podaje numery SINAD (sygnał do szumu i zniekształceń). To 72 dB, a 1 bit odpowiada poziomowi 6 dB, więc 72 dB to w rzeczywistości 12 bitów. 2 najniższe bity to szum.

Możliwe jest wyszukiwanie danych, które są niższe niż poziom szumu, ale wymaga bardzo dobrej korelacji, co oznacza, że ​​musi być bardzo przewidywalna.

stevenvh
źródło
8
OK, downvoter, po prostu powiedz mi, co tu jest nie tak.
stevenvh,
3
Może downvoter jest projektantem układu scalonego :-)
stevenvh
3
@ Simpl: niekoniecznie. Musisz przeczytać arkusz danych każdego A / D, którego zamierzasz użyć. Istnieje wiele kompromisów w projektowaniu A / D, więc to, co możesz uzyskać, będzie się znacznie różnić. Wiele A / D ma wartość + -1 / 2, ale jak pokazuje ten przykład, niektóre nie. Jak zawsze PRZECZYTAJ ARKUSZ DANYCH.
Olin Lathrop,
4
To nie jest „mowa marketingowa”. W rzeczywistości jest to dość powszechne w konwerterach o wysokiej wydajności, stosowanych w radiotelefonach programowych itp. W wielu takich aplikacjach w pewnym momencie przetwarzania sygnału będziesz filtrować i próbkować w dół, tak że możesz wykryć wąskopasmowy sygnał o poziomie mocy daleko, daleko poniżej poziomu szumu szerokopasmowego (ale robisz to w oprogramowaniu, dzięki czemu możesz umieścić zmienną liczbę takich filtrów w dowolnym miejscu w żądanej przepustowości. Do pewnego stopnia i tak byś to zrobił, gdybyś po prostu ukrył „niewiarygodne” bitów, ale radzisz sobie z nimi lepiej niż bez nich
Chris Stratton
2
Każdy sygnał węższej przepustowości niż adc jest lepiej skorelowany. Odrzucasz coś codziennego użytku jako szczególny przypadek.
Chris Stratton
14

Załóżmy, że chcemy zmierzyć stałe napięcie tak dokładnie, jak to możliwe, używając ADC, który zwróci wartość 8-bitową dla każdego pomiaru. Załóżmy ponadto, że ADC jest określony, aby kod N był nominalnie zwracany dla napięć między (N-0,5) / 100 a (N + 0,5) / 100 woltów (więc np. Kod 47 nominalnie reprezentowałby coś między 0,465 a 0,475 wolty). Co należy mieć na wyjściu ADC, jeśli jest ono zasilane napięciem ustalonym wynoszącym dokładnie 0,47183 wolta?

Jeśli ADC zawsze wyprowadza wartość reprezentującą zdefiniowany powyżej zakres, w którym mieści się wejście (w tym przypadku 47), to bez względu na to, ile odczytów wykonasz, wartość będzie wyglądać na 47. Rozwiązanie czegoś drobniejszego niż to byłoby niemożliwy.

Załóżmy, że zamiast tego ADC skonstruowano tak, aby do każdego odczytu dodawano losową wartość „ditheru” liniowo rozłożoną od -0,5 do +0,5 przed zamianą na liczbę całkowitą? W tym scenariuszu napięcie 47,183 woltów zwróci odczyt 48, około 18,3% czasu, a wartość 47 pozostałych 81,7% czasu. Jeśli obliczyć średnio 10 000 odczytów, należy oczekiwać, że będzie to około 47,183. Ze względu na losowość może być nieco wyższa lub niższa, ale powinna być całkiem blisko. Zauważ, że jeśli weźmiesz wystarczającą liczbę odczytów, możesz osiągnąć dowolny poziom oczekiwanej precyzji, chociaż każdy dodatkowy bit wymagałby więcej niż podwojenia liczby odczytów.

Dodanie dokładnie jednego LSB rozproszonego liniowo ditheringu byłoby bardzo miłym zachowaniem dla ADC. Niestety wdrożenie takiego zachowania nie jest łatwe. Jeśli dithering nie jest liniowo rozłożony lub jeśli jego wielkość nie jest dokładnie jednym LSB, ilość rzeczywistej precyzji, jaką można uzyskać z uśredniania, byłaby poważnie ograniczona, bez względu na to, ile próbek zostanie użytych. Jeśli zamiast dodawać jeden LSB losowo rozmieszczonej losowości, dodaje się wiele wartości LSB, osiągnięcie określonego poziomu dokładności będzie wymagało więcej odczytów niż byłoby wymagane przy idealnej losowości jednego LSB, ale ostateczny limit dokładności, który można osiągnąć poprzez wykonanie dowolnej liczby odczytów będzie znacznie mniej wrażliwy na niedoskonałości źródła ditheringu.

Zauważ, że w niektórych aplikacjach najlepiej użyć ADC, który nie ditheruje jego wyniku. Jest to szczególnie prawdziwe w okolicznościach, w których bardziej interesuje nas obserwowanie zmian wartości ADC niż samych wartości precyzyjnych. Jeśli ważniejsze jest szybkie rozwiązanie różnicy między jednostką +3 jednostki / próbką a szybkością wzrostu jednostki +5 / próbki, niż wiedza, czy napięcie w stanie ustalonym wynosi dokładnie 13,2 czy 13,4 jednostek, ADD nie dithering może być lepszy niż dithering jeden. Z drugiej strony, użycie ADC z ditheringiem może być pomocne, jeśli ktoś chce mierzyć rzeczy dokładniej niż pozwala na to pojedynczy odczyt.

supercat
źródło
2

Lekcja bonusowa: Naprawdę dostajesz 14 bitów precyzji , ale tylko 12 bitów dokładności .

gbarry
źródło
1
Czy nie powinna to być „rozdzielczość” zamiast „precyzja”? Precyzja odnosi się do błędu rozłożonego na różne konwersje oraz z szumem Gaussa na dwóch LSB, które również będą 12-bitowe.
stevenvh
Poszedłem i przeczytałem kilka definicji i uważam, że masz rację. W tym wieku filmów mam tendencję do unikania „rozdzielczości”, ale nadal jest to najlepszy termin. Myślę, że może w liceum nie dość dokładnie wyjaśnili precyzję.
gbarry
1

Dodatkowe zastrzeżenie ... czasami naprawdę chcesz losowości .

Na przykład:

W aplikacjach kryptograficznych (bezpieczeństwo / autentyczność) wymagana jest czysta „niemożliwa do wymyślenia” losowość. Korzystanie z LSB konwertera (tych poniżej poziomu szumu) jest szybkim sposobem na generowanie liczb czysto losowych.

Gdy sprzęt ADC jest dostępny do innych celów (czujniki i tym podobne), jest to szybki i łatwy sposób na zainicjowanie bezpiecznej komunikacji. Możesz wzmocnić efekt, maksymalizując wzmocnienie wzmacniacza wejściowego, jeśli jest dostępny (wiele MCU oferuje taką funkcję) i przesuwając wejście.

Losowość ADC wynika przede wszystkim z dwóch fizycznych zasad: hałasu kwantyzacji i hałasu termicznego.

Efekty te mają próg na poziomie makroskopowym. Na przykład liczby wystarczająco oddalone od granicy bitów nie muszą być zaokrąglane, a zatem nie występują błędy kwantyzacji ani losowość. Szum termiczny nie wpływa na bardziej znaczące bity konwersji w większości scenariuszy.

Po rozszerzeniu widać, że zmienianie parametrów konwersji (czas próbkowania, głębokość, częstotliwość, napięcie odniesienia) wpłynie na zmianę losowości wyników poprzez przesunięcie progu losowości (zwiększenie go przez podniesienie lub zmniejszenie przez obniżenie progu ). Podobny efekt osiąga się poprzez zmianę parametrów środowiskowych / systemowych (temperatura, zasilanie itp.).

To powiedziawszy, wiele udanych komercyjnych generatorów liczb losowych opiera się na tej technice, ponieważ efekty zewnętrzne tylko zmniejszają losowość - w żadnym wypadku nie eliminują jej (fizycznie niemożliwe).

Możesz zrekompensować zmniejszenie losowości, wykonując więcej konwersji i dodając wyniki. Ten proces rozszerzenia bitów (konkatenacji małych bitów konwersji) jest wykorzystywany w kluczach STM32 Nucleo, FST-01 (w tym NeuG 1.0), rodzinie urządzeń LEg Grang i wielu innych.

Urządzenia Grang generują bity poprzez konwersję z prędkością ponad 400 milionów konwersji na sekundę (1 bit na konwersję). Jeśli wykonasz wystarczającą liczbę konwersji, możesz zagwarantować wysoką losowość nawet w obliczu warunków otoczenia.

DrFriedParts
źródło
2
Bardzo źle jest założyć, że szum ADC jest dobrym źródłem szumów losowych. Jest całkiem prawdopodobne, że jest to skorelowane z innymi rzeczami zachodzącymi w obwodzie, temperaturą IC i wieloma innymi rzeczami. Jeśli potrzebujesz prawdziwej przypadkowości, sprawdź swoje źródło!
Connor Wolf,
„Testowanie źródła” jest oczywistym wymogiem w każdym schemacie. Jednak nie jest to wcale „bardzo zły pomysł” ... nawet jeśli jest skorelowany z temperaturą. To tylko zmniejsza losowość, a nie ją eliminuje. Możesz skompensować rozszerzenie bitów (konkatenację małych bitów konwersji).
DrFriedParts 21.04.2013
Powiedziałem, że jest to zły pomysł do założenia , a nie zły pomysł w ogóle. Jeśli dokładnie przetestujesz losowość źródła szumu ADC i to się sprawdzi, nie miałbym z tym problemów.
Connor Wolf,