No necesitas usar un rectificador y un capacitor, ambos los puedes emular en el programa de captura...
Primero, necesitas que tu circuito entregue 2.5 V o VDD/2 cuando no tenga señal (0 volts), eso le permitirá al ADC capturar tanto los semiciclos positivos y los negativos...
Eso se hace de manera muy simple con un amplificador operacional y un divisor resistivo para generar el offset de VDD / 2
El rango de valores será tal que voltajes mayores a 0 V te darán un rango de 128 a 255 y voltajes menores a 0 V irán de 127 a 0 <=== Si solo usas 8 bits del ADC
El rango de valores será tal que voltajes mayores a 0 V te darán un rango de 512 a 1023 y voltajes menores a 0 V irán de 511 a 0 <=== Si usas 10 bits del ADC
Después, sacas el valor ABSOLUTO de cada muestra, eso es muy sencillo, si el bit MSB de la conversión = 0 complementas el valor de la captura, sea positivo o negativo el valor, después de esa comparación vuelves el bit MSB = 0
El resultado es que para valores positivos y negativos el rango irá de 0 a 127 (8 bits) o de 0 a 511 (10 bits)
Hasta ahí ya tienes un rectificador de onda completa.
Después, tu rutina de captura de muestras deberá guardar la muestra actual, y una copia de ella, la cual será usada como la muestra anterior (Para el siguiente loop)
Comparas ambas muestras, si la muestra actual es mayor a la muestra anterior, el voltaje es mayor y ese es el pico de la señal, sino, muestra actual = muestra anterior.
Ahora ya rectificaste y obtuviste el pico de la señal, es obvio que deberás descargar ese pico, lo cual se hace con un capacitor, pero acá no existe un capacitor, sino que hay que emular uno.
Emular un capacitor que se descarga es muy sencillo, considera lo siguiente.
Un capacitor se descarga (y carga) exponencialmente, bueno, un número binario también...
Si tuvieras un valor inicial de digamos... 1024, y lo rotaras para dividirlo entre los, las secuencias obtenidas serian...
512 => 256 => 128 => 64 => 32 => 16 => 8 => 4 => 2 => 1 => 0
Si graficas cada tiempo o evento en el eje de las X, y el valor binario / 2 en el eje Y, vas a obtener una curva exponencial, similar si no es que idéntica a la que tiene un capacitor, luego, partiendo de esa idea, es posible simular el tiempo de descarga del capacitor tal que puedas generar el efecto deseado en tu sistema.
Acá en el foro está un ejemplo de como seria el circuito y como se ve el efecto ya de las capturas, precisamente en el modo de barras se despliega el valor pico.
http://www.todopic.com.ar/foros/index.php?topic=31783.0Saludos