Número efetivo de bits do ADC de 14 bits

18

Eu tenho um ADC de 14 bits . No entanto, observando a folha de dados (consulte a tabela 2 na página 5), ​​o número efetivo de bits (ENOB) é sempre menor que 12 bits.

Por que meu DAC está reivindicando ser um ADC de 14 bits quando possui apenas precisão de 12 bits? Qual é o sentido de ter dois bits extras se eles não fazem sentido?

Randomblue
fonte
11
Embora possam não ser muito úteis em um amostrador de banda larga de uma só vez, como um escopo, eles são significativos em aplicativos que se integram ao longo do tempo, como um rádio de software. Com uma das implementações baseadas em FPGA, seria fácil adicionar um bit de modo para desativá-lo e ver a diferença na saída dos filtros subsequentes com e sem os bits 'falsos' como entrada.
22712 Chris Stratton
11
É assim que o chip é projetado. Mesmo se você obtiver os dados de 14 bits, poderá observar que o último valor dos dados estará flutuando e isso é devido aos bits de ruído. Eu usei um ADC - AD7190 de 24 bits e ele fornece apenas 18 bits sem ruído.
precisa saber é o seguinte

Respostas:

17

Você foi enganado!

14-bit é marketing, e o hardware também fornece isso, então eles dizem que você não tem nada a reclamar. Logo acima de ENOB na ficha técnica, ele fornece os números SINAD (Sinal de ruído e distorção). São 72 dB e 1 bit corresponde a um nível de 6 dB, de modo que 72 dB são de fato 12 bits. Os 2 bits mais baixos são ruídos.

É possível recuperar dados que são mais baixos que o nível mínimo de ruído, mas precisam de uma correlação muito boa, o que significa que deve ser muito previsível.

stevenvh
fonte
8
OK, downvoter, apenas me diga o que há de errado aqui.
11116 stevenvh
3
Talvez o downvoter é o designer do IC :-)
stevenvh
3
@ Simpl: Não necessariamente. Você deve ler a folha de dados de qualquer A / D que planeja usar. Há muitas vantagens e desvantagens no design de A / Ds, portanto, o que você pode obter variará amplamente. Muitos A / Ds são bons para contar com -1 / 2, mas, como mostra este exemplo, alguns não são. Como sempre, LEIA A FOLHA DE DADOS.
Olin Lathrop
4
Isso não é "marketing talk". Na verdade, isso é bastante comum em conversores de alto desempenho, como usados ​​em rádios de software, etc. Para muitas aplicações, em algum momento do processamento de sinal, você filtrará e reduzirá a amostra, de forma que seja possível detectar um sinal de banda estreita com um nível de potência distante, bem abaixo do nível de ruído da banda larga (mas você faz isso em software, de modo que possa colocar um número variável de filtros em qualquer lugar da largura de banda desejada. Até certo ponto, você conseguiria isso de qualquer maneira se apenas mascarasse o "não confiável" pedaços, mas você fazer melhor com eles do que sem eles.
Chris Stratton
2
Qualquer sinal de largura de banda mais estreita que o ADC está melhor correlacionado. Você está descartando algo de utilidade cotidiana como um caso especial.
21912 Chris Stratton
14

Suponha que se deseje medir uma tensão constante com a maior precisão possível, usando um ADC que retorne um valor de 8 bits para cada medição. Suponha ainda que ADC seja especificado para que um código de N seja nominalmente retornado para tensões entre (N-0,5) / 100 e (N + 0,5) / 100 volts (portanto, por exemplo, um código de 47 representaria nominalmente algo entre 0,465 e 0,475 volts). O que alguém gostaria de ter na saída ADC se alimentado com uma tensão de estado estacionário de precisamente 0,47183 volts?

Se o ADC sempre emitir o valor que representa o intervalo acima definido no qual a entrada cai (47 neste caso), não importa quantas leituras forem feitas, o valor parecerá ser 47. Resolvendo algo mais refinado do que seria impossível.

Suponha, em vez disso, que o ADC tenha sido construído de forma que um valor aleatório de "pontilhamento" distribuído linearmente de -0,5 a +0,5 seja adicionado a cada leitura antes de convertê-lo em um número inteiro? Nesse cenário, uma voltagem de 47.183 volts retornaria uma leitura de 48, aproximadamente 18,3% das vezes, e um valor de 47 nos outros 81,7% das vezes. Se alguém calculou a média de 10.000 leituras, espera-se que seja aproximadamente 47.183. Por causa da aleatoriedade, pode ser um pouco maior ou menor, mas deve estar bem próximo. Observe que, se se faz leituras suficientes, pode-se atingir um nível arbitrário de precisão esperada, embora cada bit adicional exija mais do que duplicar o número de leituras.

Adicionar precisamente um LSB de pontilhamento linearmente distribuído seria um comportamento muito bom para um ADC. Infelizmente, implementar esse comportamento não é fácil. Se o pontilhamento não for distribuído linearmente, ou se sua magnitude não for precisamente um LSB, a quantidade de precisão real que se poderia obter da média seria severamente limitada, não importa quantas amostras sejam usadas. Se, em vez de adicionar um LSB de aleatoriedade linearmente distribuída, adicionar vários valores de LSB, atingir um determinado nível de precisão exigirá mais leituras do que seria necessário usando a aleatoriedade ideal de um LSB, mas o limite máximo para a precisão que pode ser alcançada fazer um número arbitrário de leituras será muito menos sensível a imperfeições na fonte de pontilhamento.

Observe que, em alguns aplicativos, é melhor usar um ADC que não atrapalhe o resultado. Isso é especialmente verdadeiro nas circunstâncias em que alguém está mais interessado em observar mudanças nos valores de ADC do que nos próprios valores precisos. Se resolver rapidamente a diferença entre uma taxa de aumento de +3 unidade / amostra e +5 unidade / amostra é mais importante do que saber se uma tensão de estado estacionário é precisamente 13,2 ou 13,4 unidades, um ADC sem oscilação pode ser melhor que um hesitando. Por outro lado, o uso de um ADC pontilhado pode ser útil se alguém quiser medir as coisas com mais precisão do que uma única leitura permitiria.

supercat
fonte
2

Lição bônus: você realmente tem 14 bits de precisão , mas apenas 12 bits de precisão .

gbarry
fonte
11
Isso não deveria ser "resolução" em vez de "precisão"? Precisão refere-se ao erro espalhado por diferentes conversões e com ruído gaussiano nos dois LSBs que também terão 12 bits.
12135 stevenvh
Fui ler algumas definições e acredito que você está certo. Costumo me esquivar da "resolução" nesta era do vídeo, mas ainda é o melhor termo. Acho que talvez no ensino médio eles não explicassem bem a precisão corretamente.
Gbarry 17/07
1

Uma advertência adicional ... às vezes você realmente quer aleatoriedade .

Por exemplo:

Em aplicativos criptográficos (segurança / autenticidade), é necessária uma aleatoriedade pura "indiscutível". O uso de LSBs de um conversor (aqueles abaixo do nível de ruído) é uma maneira rápida de gerar números puramente aleatórios.

Quando o hardware ADC está disponível para outros fins (sensores e similares), é uma maneira rápida e fácil de propagar a comunicação segura. Você pode aprimorar o efeito maximizando o ganho no amplificador de entrada, se disponível (muitos MCUs oferecem esse recurso) e flutuando a entrada.

A aleatoriedade da ADC deriva principalmente de dois princípios físicos: ruído de quantização e ruído térmico.

Esses efeitos têm um limite no nível macroscópico. Por exemplo, números suficientemente afastados do limite de bits não precisam ser arredondados e, portanto, não apresentam erro de quantização ou aleatoriedade. O ruído térmico não afeta os bits mais significativos na conversão na maioria dos cenários.

Por extensão, você pode ver que a variação dos parâmetros de conversão (tempo de amostragem, profundidade, taxa, tensão de referência) afetará a alteração na aleatoriedade dos resultados movendo o limiar da aleatoriedade (aumentando-a aumentando ou diminuindo-a diminuindo o limiar) ) Efeito semelhante é alcançado variando os parâmetros ambientais / do sistema (temperatura, fonte de alimentação, etc.).

Dito isto, muitos geradores de números aleatórios de hardware comercial bem-sucedidos confiam nessa técnica porque os efeitos externos apenas reduzem a aleatoriedade - eles nunca a eliminam (fisicamente impossível).

Você pode compensar uma redução na aleatoriedade fazendo mais conversões e acrescentando os resultados. Esse processo de extensão de bits (concatenação de bits baixos de conversões sucessivas) é usado nos Dongles do Núcleo STM32, no FST-01 (incluindo NeuG 1.0), na família de dispositivos Grang da LE Tech e em muitos outros.

Os dispositivos Grang geram bits convertendo em mais de 400 milhões de conversões por segundo (1 bit por conversão). Se você fizer conversões suficientes, poderá garantir alta aleatoriedade mesmo diante das condições ambientais.

DrFriedParts
fonte
2
É uma péssima idéia supor que o ruído ADC é uma boa fonte de ruído aleatório. É bem provável que esteja relacionado a outras coisas acontecendo no circuito, à temperatura do IC e a muitas outras coisas. Se você precisar de uma aleatoriedade genuína, teste sua fonte!
Connor Lobo
"Testar sua fonte" é um requisito óbvio em qualquer esquema. No entanto, não é de modo algum "uma péssima idéia" ... mesmo se correlacionada com a temperatura. Isso apenas reduz a aleatoriedade, não a elimina. Você pode compensar por extensão de bits (concatenação de bits baixos de conversões sucessivas).
RedReaderPreço
Eu disse que é uma má idéia para assumir , não uma má idéia em geral. Se você testar minuciosamente a aleatoriedade da sua fonte de ruído ADC e verificar, então eu não teria problemas com isso.
Connor Lobo