Sie sind auf Seite 1von 9

PONTIFICIA UNIVERSIDAD JAVERIANA ELECTRONICA NO LINEAL HCTOR IVN HOYOS DAZA SERGIO VILLALOBOS

ANALISIS DE PRUEBAS A UN CONVERSOR ANLOGO DIGITAL IDEAL Para una seal de entrada sinusoidal con los siguientes parmetros: - Amplitud: 2.5 V - Frecuencia: 1 kHz - Offset: +2.5V - La simulacin est dada para 32 ciclos de la seal sinusoidal de entrada. - El ADC muestrea coherentemente la sea de entrada. - El cdigo de salida se incrementa cada 1 LSB para el cambio en el voltaje de entrada. El voltaje de referencia (VREF) es el mismo valor que el voltaje de full escala (VFS) y se establece en +5V. La seal unipolar de entrada se vara de 0 V a +5V. - Se toman 1024 muestras de la seal de entrada para cada ciclo de sta. Para una seal sinusoidal de 1 KHz, se tiene idealmente 1024 muestras cada 1 ms. La grfica de la seal de entrada es:

4.5

3.5

Seal de entrada (V)

2.5

1.5

0.5

5 Tiempo (s)

9 x 10
-4

La seal de salida del ADC es:

250

200

Seal de salida (bits)

150

100

50

5 Tiempo (s)

10 x 10
-4

Anlisis de Histograma para una seal rampa lineal a la entrada: Las pruebas de histograma de un ADC implica la recoleccin de un gran nmero de muestras digitalizadas en un perodo de tiempo, para una seal de entrada bien definida con una funcin de densidad de probabilidad conocida. La funcin de transferencia del ADC se determina a continuacin con un anlisis estadstico de las muestras. Una forma de onda lineal triangular que ligeramente satura el ADC es aplicada. La frecuencia de la forma de onda debe ser lo suficientemente baja de tal manera que el ADC no tiene errores AC relacionados, y la frecuencia no debe ser sub-armnicamente relacionada con la frecuencia de muestreo. Un total de muestras M T se recogen para los cdigos 1 a 2n - 2. La forma de onda triangular se debe ajustar de tal manera que el nmero de overflows no es ms grande de lo necesario para asegurar que el ADC est suficientemente saturado y que la porcin de la forma de onda dentro del rango de ADC es lineal con la precisin requerida (10% overdrive es razonable para la mayora de los ADCs). Con ste anlisis es fcil determinar cdigos anchos, estrechos, y los cdigos que faltan en la grfica. Para una seal triangular de amplitud 2,5 V, offset de 2,5 V, frecuencia de 1 KHz y con las mismas especificaciones del ADC se consigue realizar la prueba de histograma. La grfica de la seal triangular es:

4.5 4 3.5

Seal de entrada (V)

3 2.5 2 1.5 1 0.5 0

0.5

1.5 Tiempo (s)

2.5 x 10
-3

La grfica del anlisis de histograma se presenta a continuacin:


300

Numero de ocurrencias para cada cdigo (h(n) actual)

250

200

150

100

50

50

100

150 Codigo Binario (n)

200

250

300

La prueba de histograma elimina los efectos de entrada referidos a ruido, promediando la entrada para todos los cdigos. El ruido y la histresis asociada con cada transicin de cdigo individual tambin se promedian. DNL describe la desviacin entre dos valores analgicos correspondientes a los valores de entrada digitales adyacentes. Es una especificacin importante para el error de medicin en un convertidor de digital a anlogo (DAC), ya que determina su precisin. Idealmente, cualquiera de los dos cdigos digitales adyacentes corresponde a la salida de tensiones analgicas que estn exactamente a un bit menos significativo de separacin (LSB). No linealidad diferencial es una medida del peor caso de la desviacin de 1LSB ideal. La grfica del anlisis de DNL para la seal triangular de entrada:

12

10

DNL

50

100

150 Codigo binario (n)

200

250

300

Los errores de DNL se acumulan para producir un total de l no linealidad integral (INL). Lo anterior se define como la desviacin mxima de la pendiente ideal del ADC y se mide desde el centro del paso. Se expresan como cuentas. La grfica de INL para la seal de entrada triangular es:
1800

1600

1400

1200

1000

INL
800 600 400 200 0

50

100

150 Codigo binario (n)

200

250

300

Otra aplicacin del histograma es la medicin de la entrada del ADC referida a ruido. Esto se logra al ingresar una seal DC referida a tierra a ADC y la posterior grabacin de un nmero de muestras de salida. Si el voltaje pico-a-pico de la seal de entrada referido a ruido del ADC es inferior a 1 LSB, todas las muestras de salida deben corresponder a un valor de cdigo nico. Si la entrada de DC pasa a caer exactamente en una transicin de cdigo, las muestras se dividen entre dos cdigos adyacentes. Asumiendo que el ruido es gaussiano, la seal de entrada referida a ruido es simplemente la desviacin estndar () de la distribucin, y se expresa generalmente en LSBs rms.

Para grfica de la entrada DC del ADC referida a ruido Gaussiano, se tuvo en cuenta una seal DC de 5 V referida a tierra. La grfica se presenta a continuacin:
400

350

300

Nmero de ocurrencias

250

200

150

100

50

0 -100

100

200 Cdigo de salida

300

400

500

600

El espectro de la seal de salida del ADC muestra la relacin entre el piso promedio de ruido y el nivel de ruido de cuantizacin. Las grficas del espectro de la seal sinusoidal ms ruido Gaussiano se muestran a continuacin:
Espectro de amplitud de la seal sinusoidal 2.5

Frecuencia fundamental
1.5

|Y(f)|
1 0.5

0.8

0.9

1.1

1.2 1.3 1.4 Frecuencia (Hz)

1.5

1.6

1.7

Espectro de amplitud de la seal sinusoidal 0.05 0.045 0.04 0.035

Frecuencia fundamental Armnicos

SFDR

|Y(f)|

0.03 0.025 0.02 0.015 0.01 0.005 0 50 100 150 200 250 300 Frecuencia (Hz) 350 400 450 500

Para una ventana Blackmann-Harris se tiene la siguiente respuesta:

Dominio del tiempo 1 0.9 0.8 0.7 0.6

Amplitud

0.5 0.4 0.3 0.2 0.1 0

10

15 20 Muestras

25

30

35

El cdigo generado en MATLAB para el desarrollo de los modelos y pruebas del ADC se presenta a continuacin: % DEFINIR SEAL DE ENTRADA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% time_step = [0:0.00000098:0.032]; amplitude = 2.5; offset = 2.5; frequency = 1000; input = amplitude * sin(2 * pi * frequency * time_step) + offset; plot(time_step, input); grid; xlabel('Tiempo (s)'); ylabel('Seal de entrada (V)'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% % CALCULAR SALIDA IDEAL (DOMINIO DEL TIEMPO) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% no_of_bits = 8; Vref = 5.0; Vfs = Vref; LSB = Vfs / (2^(no_of_bits)); output = round((input / LSB)); plot(time_step, output);

grid; xlabel('Tiempo (s)'); ylabel('Seal de salida (bits)'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DEFINIR SEAL TRIANGULAR DE ENTRADA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% time_step = [0:0.00000098:0.032]; amplitude = 2.5; offset = 2.5; frequency = 1000; inputT = amplitude * sawtooth(2.*pi.*frequency.*time_step) + offset; plot(time_step, inputT); grid; xlabel('Tiempo (s)'); ylabel('Seal de entrada (V)'); %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CALCULAR HISTOGRAMA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% no_of_bits = 8; Vref = 5.0; Vfs = Vref; LSB = Vfs / (2^(no_of_bits)); outputT = round((inputT / LSB)); %hist(outputT,125); code = 0:255; DNL = (hist(outputT,code)/16)-1; %bar(DNL); INL=cumsum(DNL); bar(INL); %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CALCULAR HISTOGRAMA CON RUIDO GAUSSIANO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% inputDC=5*ones(1,32654); %plot(time_step,u); %grid; %xlabel('Tiempo (s)'); %ylabel('Voltaje (V)'); y = awgn(inputDC,10,'measured') no_of_bits = 8; Vref = 5.0; Vfs = Vref; LSB = Vfs / (2^(no_of_bits)); outputDC = round((y / LSB));

hist(outputDC,500); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CALCULAR FFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% time_step = [0:0.00000098:0.032]; amplitude = 2.5; offset = 2.5; frequency = 1000; input = amplitude * sin(2 * pi * frequency * time_step) + offset; input2=awgn(input,10,'measured'); NFFT = 2^nextpow2(32654); Y = (fft(input2,NFFT))/(32654); Fs=1024; f = Fs/2*linspace(0,1,NFFT/2+1); F=Fs/2; plot(f,2*abs(Y(1:NFFT/2+1))) ; title('Espectro de amplitud de la seal sinusoidal'); xlabel('Frecuencia (Hz)'); ylabel('|Y(f)|'); %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CALCULAR VENTANA BLACKMANN HARRIS 4-TERM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% N = 32; input2=blackmanharris(N); wvtool(input2); %plot(input2) ; %grid; %title('Dominio del tiempo'); %xlabel('Muestras'); %ylabel('Amplitud');

Das könnte Ihnen auch gefallen