Está en la página 1de 4

1

Gracador de Funciones de Densidad de Probabilidad


Escuela de Ingeniera Mecnica Elctrica, Universidad de San Carlos de Guatemala Laboratorio de Electrnica, Comunicaciones 1

Alvaro Enrique Amperez Valle,2009 15075 Jos Fabricio Mendez Cruz, 2009 15067 Walter Giovanni Cartagena, 2009 15568 Grupo Z034

ResumenEl gracador de funciones de densidad de probablidad es un dispositivo capaz de proporcionar una graca que representa las probablidades de amplitud de una seal analgica, esta seal es proporcionada a travez de un osciloscopio, en este proyecto el distivo principal utilizado es un DsPic debido a las caracteristicas del ADC de dicho microcontrolador.

F (x) =

f (u)du

(2)

y (si f es continua en x) f (x) = d F (x) dx (3)

I.

O BJETIVOS

1. Crear un dispositivo que graque sobre un osciloscopio la funcion de densidad de probablidad de una seal analogica. II. C ONSIDERACIONES P RELIMINARES

Intuitivamente, puede considerarse f (x) dx como la probabilidad de X de caer en el intervalo innitesimal [x, x + dx].

En la teora de la probabilidad, la funcin de densidad de probabilidad, funcin de densidad, o, simplemente, densidad de una variable aleatoria continua describe la probabilidad relativa segn la cual dicha variable aleatoria tomar determinado valor.

Un ejemplo de graca de densidad de probablidad seria la siguiente.

La probabilidad de que la variable aleatoria caiga en una regin especca del espacio de posibilidades estar dada por la integral de la densidad de esta variable entre uno y otro lmite de dicha regin. La funcin de densidad de probabilidad (FDP o PDF en ingls) es no-negativa a lo largo de todo su dominio y su integral sobre todo el espacio es de valor unitario.

Una funcin de densidad de probabilidad caracteriza el comportamiento probable de una poblacin en tanto especica la posibilidad relativa de que una variable aleatoria continua X tome un valor cercano a x.

Figura 1. Histograma de amplitudes

Una variable aleatoria X tiene densidad f , siendo f una funcin no-negativa integrable de Lebesgue, si:
b

P [ a X b] =
a

f (x)dx

(1)

La conversin analgica-digital (CAD) o digitalizacin consiste en la transcripcin de seales analgicas en seales digitales, con el propsito de facilitar su procesamiento (codicacin, compresin, etc.) y hacer la seal resultante (la digital) ms inmune al ruido y otras interferencias a las que son ms sensibles las seales analgicas. Un conversor digital-analgico o DAC (digital to analogue converter) es un dispositivo para convertir datos digitales

Por lo tanto, si F es la funcin de distribucin acumulativa de X , entonces:

Figura 2. Diagrama a Bloques de un ADC

El diagrama a continuacin es un diagrama posible que se podria utilizar en el proyecto, en el cual se utiliza un PIC18F4550, esta gura es la que se presenta debido a que el simulador PROTEUS, no contiene en sus librerias el microcontrolador dsPIC30F4013, para nes de demostracion de conexin se utiliza este microcontrolador presentado en la siguiente gura.

en seales de corriente o de tensin analgica. Se utilizan profundamente en los reproductores de discos compactos, en los reproductores de sonido y de cintas de vdeo digitales, y en los equipos de procesamiento de seales digitales de sonido y vdeo. La mayora de los DAC utilizan alguna forma de red reosttica. Los datos digitales se aplican a los restatos en grupos de bits. Las resistencias varan en proporciones denidas y el ujo de corriente de cada uno est directamente relacionado con el valor binario del bit recibido.

Figura 5. Diagrama del proyecto utilizando un PIC18F4550

Figura 3. Diagrama a Bloques de un DAC

El microcontrolador utilizado posee la siguiente conguracon de pines, en esta imagen se puede apreciar como cambia el orden de los perifericos, pero la conexin se trato que fuera la misma que la imagen anterior.

III. III-A. 1. 2. 3. 4. 5. 6. 7.

D ISEO E XPERIMENTAL

Equipo y Materiales

Fuente de voltaje dc. Resistencias Amplicadores LM358 dsPIC30F4013 PicKit2 Protoboard LEDs Diagramas utilizados

Figura 6. dsPIC30F4013

III-B.

El diagrama de bloques indica el orden en que la informacin (seal) es procesada por el microprocesador, el proceso de lectura, divisin, cuantizacin, promediador y salida, el dac es hecho por un arreglo r2r.

El arreglo r2r es el encargado de transformar la seal digital de 8bits de salida, los mete en un arreglo de resistencias para poder realizar un proceso similar a lo inverso de un divisor de voltaje, entonces las sumas de los voltajes realizan diferentes valores. El voltaje de salida del amplicador es el siguiente Vout = Vref IV. M EMORIA DE C ALCULOS val 2N (4)

Figura 4. Diagrama a Bloques del proyecto

Cuando se realiza un funcion de densidad de probabilidad tenemos la siguiente condicin:

ak3 + ak2 + ak1 + ak + ak+1 + ak+2 + ak+3 7 (10) Teniendo esto estos valores de Sk son desplegados en el orden de (0 k 255) a traves de uno de los puertos del microcontrolador. Estos valores son procesados de manera digital a anloga, a traves del arreglo r2r, para lo cual los calculos se realizan a travez de la formula (4). Sk = V.
Figura 7. Diagrama r2r

C ODIGO

El codigo de programacion se realizo en el entorno de programacin MikroBasic de la marca Mikroelectronica, la versin 6.0.
b

P [ a X b] =
a

f (x)dx

(5)

Durante el desarrollo de este proyecto se hicieron pruebas en excel para concluir como mostrar esta funcion en una graca, utilizando como herramienta el dsPIC30F4013, sabiendo a las limitaciones que este nos ofrece asi como nuestro presupuesto. Concluimos que una funcion de densidad se aproximaba a un histograma de la frecuencia de repeticion de los datos muestreados. Entonces recurrimos a utilizar la resolucin del dsPIC.

A continuacin se detalla el codigo explicado paso a paso, o almenos de una forma que el lector entienda la logica del programador al momento de realizarlo. 3. 4. 5. dim num as word dim lectura as word dim cont as word [256]

En esta parte del codigo de la linea 3 a 5 lo que tenemos es una lista de las diferentes variables a utilizar, asi mismo el tipo de cada una contamos con una variable tipo array de 256 posiciones que seran las muestras que tomaremos. 7. sub procedure leer 8. 9. lectura = ADC1_Read(2) div 16 10. for num = 0 to 255 11. if lectura = num then 12. if cont[num] < 255 then 13. cont[num] = cont [num] + 1 14. end if 15. end if 16. next num 17. 18. end sub Este es un procedimiento que es el encargado de tomar las muestras de la seal que proviene del ADC del pic, el cual es un adc de 12 bits es decir 212 = 4096 posibles divisones al rango de voltaje de 0 a 5 voltios, o bien el rango de voltaje aplicado en Vref y en Vref + , estos valores obtenidos de 12 bits, luego son divididos en 16 para obtener una resolucin aproximada de 8 bits, luego tenemos un ciclo de 255 valores (for num = 0 to 255) para poder hacer variar nuestra variable de tipo arreglo en sus 256 posicion y vericar si la lectura del adc se igualaba al valor de la variable num que causa la variacin de posiciones en el arreglo cont[num] provocando asi un ciclo de comparaciones Al terminar el procedimiento este regresa justo donde fue convocado. 20. main: 21. 22. ADPCFG = 0xFFF8

Figura 8. Niveles de Cuantizacin dsPIC30F4013

Debido a que la resolucin del dsPIC es de 12bits 212 , fue necesario tomar estos valores binarios de muestreo y dividirlo entre 16 24 para asi obtener una resolucin de 8 bits 28 Vm 28 = VM 212 24 (6)

A continuacin este valor es comparado con una variable k que varia de 0 a 255 si estos son iguales esta variable cambia de valor ascedentemente. Vm = k Vm = k = = (0 k 255) ak = ak + 1 ak = ak (7) (8) (9)

Una vez estos valores son almacenados en la memoria RAM del dsPIC, se les calcula un promedio con 7 valores, con la intencin de redondear la curva del histograma.

23. 24. 25. 27. 28. 29. 30. 31. 32. 33. 34.

TRISA TRISB TRISD TRISF

= = = =

0xFFFF 0x0007 0x0000 0xFFFF

for num = 0 to 255 cont[num] = 0 next num lectura = 0

si el pin 2 del puerto F (RF2) es uno, este sale del ciclo innito enviando al microcontrolador que ejecute el programa presente despues de la etiqueta dos:, el cual desplegara por el puerto B el valor de 7 valores promediados, corridos 3 espacios hacia la derecha dentro del registro PORTB de 16 bits del microcontrolador, y asi desplegar un valor binario a travez del RB3 hasta el RB10, cada valor es el que representa la probabilidad de cada una de las amplitudes de la seal de entrada del ADC del microcontrolador.

ADC1_Init_Advanced(_ADC_INTERNAL_VREFL VI. R ECOMENDACIONES Y O BSERVACIONES or El proyecto es capaz de cuantizar una seal de audio, _ADC_EXTERNAL_VREFH) no es posible cuantizar una seal de frecuencias mas altas En este fragmento de codigo iniciamos el programa princi- que estas, debido a la velocidad de muestreo del ADC del pal con la sentencia main: y luego declaramos un valor he- dsPIC30F4013, si se desea cuantizar seales con estas caxadecimal al registro ADPCFG en el cual los valores asignados racteristicas, seria necesario usar un dsPIC con velocidad de convierten en los analogos los primeros 3 canales del modulo muestreo mas alta, luego se recomienda utilizar amplicadores ADC, y el resto en digitales, los registros TRISx se utilizan de voltaje para adecuar las seales de entrada a los rangos para declarar los pines de cada puerto como entradas o salidas, de voltaje que es capaz de medir este microcontrolador, esta 1 para entradas y 0 para salidas similar a I/O ->1/0, un ciclo de diseado para funcionar de 0 a 3, no fue posible, realizarlo 255 cambios para limpiar la variable de tipo arreglo en cada de -1.25 a 1.25 como lo requeria el laboratorio, ya que uno de sus valores, un reinicio de de la variable de lectura del necesitabamos una fuente bipolar para poder denir el rango adc, con la sentencia ADC1_Init_Advanced, denimos el negativo, pero es posible realizarlo a traves de la termina tipo de voltaje de refencia que este utilizara, (mas informacin Vref del microcontrolador, cada una de estas adecuaciones es necesario hacerlas para que cumpla con los requerimentos que en la ayuda de MikroBasic usted necesite, debe recordar que el voltaje presente en cada 36. while (TRUE) una de las terminales de referencia de voltaje no debe exceder 37. if PORTF.0 = 1 then los 5V, de lo contrario daara el dsPIC, utilize atenuadores 38. for num = 0 to 255 para poder reducir los voltajes si estos sobrepasan los 5V pico 39. cont[num] = 0 a pico. 40. next num 50. while (TRUE) VII. C ONCLUSIN 51. leer El analisis grco de densidad de probabilidad de una seal 52. if PORTF.1 = 1 then de entrada es importante al momento de tomar decisiones 53. goto dos sobre como manipular la sela, o inclusive tener referencia 54. end if de la posible forma de salida de esta. 55 wend 56 end if 57. dos: 58. for num = 0 to 255 59. PORTB = ((cont[num-3]+cont[num-2] +cont[num-1]+cont[num] +cont[num+1]+cont[num+2] +cont[num+3])div 7) << 3 60. Delay_us(1) 61. next num 62. wend 63. 64. end. En esta parte del codigo se entra en ciclo innito while (TRUE), en el cual antes de entrar a otro se vuelven a regresar a cero todas las variables, en este paso hace una condicion dependiente del pin 1 del puerto F (RF1), si este es uno genera otro ciclo innito que trasladara al microcontrolador al procedimiento anteriormente mencionado, si es cero no entra en el cilo, una vez sale del procedimiento vuelve a comparar

También podría gustarte