Está en la página 1de 175

GENERADORDENMEROSALEATORIOS

TITULACIN:IngenieraTcnicaIndustrialenElectrnicaIndustrial

AUTOR:AlexCalvGallego

DIRECTOR:JosLuisRamrezFalo

FECHA:Septiembrede2011

Generadordenmerosaleatorios

ndicegeneral

ndice

1 ndice......................................................................................................2
2 Introduccin...........................................................................................5
2.1

Losnmerosaleatorios ................................................................................................. 6

2.1.1

Qusonlosnmerosaleatorios? ................................................................... 6

2.1.2

Nmerosaleatoriosypseudoaleatorios .......................................................... 6

2.1.3

Cmopodemosgenerarnmerosaleatorios?................................................ 8

2.1.4

Quaplicacionespuedentenerlosnmerosaleatorios?................................ 9

2.2

Estudiotericodelruidogeneradoporcomponentespasivosysemiconductores... 11

2.2.1

Queselruido?........................................................................................... 11

2.2.2

Quruidonosinteresagenerar? ................................................................. 11

2.2.3

Ruidogeneradoporcomponentespasivosysemiconductores....................... 12

2.2.4

Ruidoencomponentespasivosysemiconductores........................................ 14

3 Circuitosgeneradores ..........................................................................18
3.1

Generadorconresistor ................................................................................................ 18

3.2

GeneradorcondiodoZener......................................................................................... 22

3.3

Generadorcontransistorbipolar ................................................................................ 23

3.4

Imagenesendominiotemporalobtenidas.................................................................. 24

3.4.1

Generadorconresistor.................................................................................. 26

3.4.2

GeneradorcondiodoZener ........................................................................... 31

3.4.3

Generadorcontransistorbipolar .................................................................. 34

4 Adecuacindelaseal.........................................................................41
4.1

Circuitosutilizadosparalaadecuacin ....................................................................... 41

4.2

Generadorconresistor ................................................................................................ 46

4.3

GeneradorcondiodoZener......................................................................................... 49

4.4

Generadorcontransistorbipolar ................................................................................ 52

5 Adquisicindelasmuestras.................................................................58
6 ConexindelPICconelPCporUSB2.0 ...............................................63
7 TratamientodelosdatosconMatlab ..................................................66
7.1

Funcionamientogeneral ............................................................................................. 66

7.2

Modificacionesbsicasrealizadas............................................................................... 70
2

Generadordenmerosaleatorios
ndicegeneral

7.3
Innovacionesrealizadas .............................................................................................. 71
7.3.1

Innovacionescomunesaloscuatrocdigos................................................... 71

7.3.2

Autocorrelacin ............................................................................................ 73

7.3.3

Innovacionespropiasdecadacdigo ............................................................ 75

7.3.4

Cdigobsico................................................................................................ 76

7.3.5

Cdigoconfiltroenlarecepcindevalores................................................... 79

7.3.6

Cdigodenmerospareseimpares.............................................................. 82

7.3.7

Cdigodevalormedio .................................................................................. 85

7.3.8

Cdigogeneradordemapadebits................................................................ 86

7.3.9

Cdigoparaobtenerlamodaysufrecuencia................................................ 91

8 ResultadosobtenidosconMatlab........................................................93
8.1

Pruebasconrand()deMatlabyrandom.org.............................................................. 94

8.1.1

Funcinrand()deMatlab.............................................................................. 94

8.1.2

Pginawebrandom.org[1] .......................................................................... 96

8.2

Cdigobsico,generadorconresistorsinadecuacin............................................... 99

8.3

Cdigobsico,generadorcondiodoZenersinadecuacin...................................... 101

8.4

Cdigobsico,generadorcontransistorbipolarsinadecuacin ............................. 103

8.5

Cdigobsico,generadorconresistorconadecuacin............................................ 106

8.6

Cdigobsico,generadorcondiodoZenerconadecuacin .................................... 107

8.7

Cdigobsico,generadorcontransistorbipolarconadecuacin ............................ 108

8.8
Estudiodelosresultadosobtenidosconelcdigobsicoyelgeneradorcon
transistorbipolar................................................................................................................... 109
8.9
Estudiodelosresultadosobtenidosconelcdigoconfiltroenlarecepcinde
valoresyelgeneradorcontransistorbipolar ....................................................................... 121
8.10 Estudiodelosresultadosobtenidosconelcdigodenmerospareseimparesyel
generadorcontransistorbipolar .......................................................................................... 134
8.11 Estudiodelosresultadosobtenidosconelcdigodevalormedioyelgeneradorcon
transistorbipolar................................................................................................................... 145
8.12

Comparacinentrecdigosyconclusionesfinalessobreestos ............................... 155

8.13

Ejemplodeaplicacindelcdigogeneradordemapasdebits................................ 159

9 Conclusiones ......................................................................................161
10 Posiblesmejoras ................................................................................162
11 Presupuesto .......................................................................................165
11.1

Costedelprototipo ................................................................................................... 165


3

Generadordenmerosaleatorios
ndicegeneral

11.2 Costedeproduccindeunaseriede1000unidades ............................................... 167

12 Anexos................................................................................................171
12.1

Anexo1:Clculodelamplificadorinversor ............................................................... 171

12.2

Anexo2:Clculodelamplificadorrestadornoinversor............................................ 172

12.3

Anexo3:Clculodelamplificadorsumadornoinversor ........................................... 174

12.4Anexo4:Cdigodelmicrocontrolador
12.5Anexo5:CdigosdeMatlab
12.6Anexo6:FicherosMatlabdelosdatosobtenidosenlaspruebasrealizadas

Generadordenmerosaleatorios

Introduccin

2 Introduccin

Este proyecto, titulado Generador de nmeros aleatorios, tiene por objetivo la


realizacindeunsistemaquepermitaobtenerunasecuenciadevaloresnumricosdelosque
noseaposibleobtenerunpatrnquesirvaparapredecirfuturosvalores.Esdecir,laobtencin
denmerosaleatorios.

Elesquemabsicoparalaobtencindelosnmerosaleatorioseselsiguiente:

Figura1:Esquemabsico

La obtencin de nmeros aleatorios se basa en el ruido generado por dispositivos


pasivosysemiconductores.Paraello,seutilizarnlossiguientesdispositivoscomofuentesdel
ruido:eltransistorbipolar,eldiodoZeneryelresistor.
Con cada dispositivo se realizar un sencillo circuito electrnico que nos permitir
obtenerruidoblancoque,enelmejordeloscasos,tendramplitudesdeunaspocasdecenas
demV.

El valor de la seal de ruido obtenida se leer peridicamente mediante un


microcontrolador (PIC18F2455) utilizando un conversor de analgico a digital. Por ello, se
deber adecuar el rango del voltaje de la seal generada al rango de valores que leer el
microcontrolador.
Estevaloranalgico,ledoytransformadoadigitalporelmicrocontrolador,seenviar
a un PC mediante una comunicacin va USB. Con el fin de analizar los valores de la seal
recibidos,rlPCquerecibeeldatoloprocesarconelentornomatemticodeMATLAB.
Para valorar la calidad de la secuencia aleatoria generada se ha calculado su
autocorrelacin.Tambinsehaobtenidoelvalordelamodadelasmuestrasysufrecuencia.
Sehaestudiadoelefectodelassiguientesvariables:

Elnmerodedatosobtenidos
Elrangodevaloresdelosdatos.
Elperiododeobtencindelosdatos.

Para llegar a los resultados obtenidos, el primer paso ser conocer que son y cmo
podemosgenerarnmerosaleatorios.

Generadordenmerosaleatorios

Introduccin

2.1 Losnmerosaleatorios
2.1.1

Qusonlosnmerosaleatorios?

Aunque existen mltiples definiciones sobre los nmeros aleatorios, sin duda la ms
aceptada dentro del estudio de la estadstica y la probabilidad es la siguiente: se define
comoaleatorioaquelresultadoqueesimpredecibleofrutodelazar.Noesposiblellegarhasta
lsiguiendounasecuencia[1].
Los seres humanos vivimos en un medio aleatorio, caracterstica que tambin se
atribuyeanuestrocomportamiento.Sideseamospredecirelcomportamientodeunmaterial,
de un fenmeno climatolgico o de un grupo humano podemos generarlo a partir de datos
estadsticos.Paralograrunamejoraproximacinalarealidadnuestraherramientapredictiva
debefuncionardemanerasimilar:aleatoriamente.Deesanecesidadsurgieronlosmodelosde
simulacin.
Losnmerosaleatoriossonlabaseesencialdemuchassimulaciones,porejemplo,en
elmtododeMonteCarlo[23].Permitenalosmodelosmatemticosrepresentarlarealidad.
Engeneralcuandoserequiereunaimpredecibilidadenunosdeterminadosdatos,seutilizan
nmerosaleatorios.
Usualmente, la aleatoriedad se obtiene a partir de un generador de nmeros
aleatorios, que produce una sucesin de valores que supuestamente son una secuencia de
variablesaleatoriasindependientes.
Posteriormente a su generacin, estos nmeros aleatorios se transforman
convenientementeparasimularlasdiferentesdistribucionesdeprobabilidadqueserequieran
segnelmodeloquequeramosrepresentar.
La siguiente pregunta que nos podemos plantear es si todos los nmeros
aparentementealeatoriosloson,osienunaseriedevaloresaparentementealeatoriospuede
existirunpatrn.Porellorealizamoslasiguientedistincin:

2.1.2

Nmerosaleatoriosypseudoaleatorios

Respondiendo a la pregunta planteada, debemos distinguir entre los nmeros


aleatoriosylospseudoaleatorios.Enestosltimossepuedeobservarunpatrnqueserepite
peridicamentesirealizamosunaobservacinconunnmeroelevadodemuestras.
A menudo los nmeros aleatorios se suelen confundir con los pseudoaleatorios. Los
nmerospseudoaleatoriossonlosquesegeneranapartirdeunasemillaoraz,apartirdela
cual generamos una serie de nmeros mediante mtodos matemticos. Estos nmeros
parecenaleatorios,peroenrealidadsiguenunpatrn.
Acontinuacinpodemosverunejemplodeladiferencia:

Generadordenmerosaleatorios

Introduccin

Figura2:PseudoRandomvsTrueRandom,BoAllen[4]

EstasImagenessonunarepresentacingrficarealizadaporBoAllen,undiseadorde
pginas web, para obtener una representacin grfica en forma de mapa de bits de la
diferenciaentrenmerosaleatoriosypseudoaleatorios.
En el caso de la izquierda, los valores se han obtenido de la pgina web
http://www.random.org/. Segn la pgina web, este comportamiento aleatorio lo obtienen
delruidoatmosfrico.
En cambio, en el caso de la derecha podemos observar un mapa de bits generado a
partirdelosvaloressupuestamentealeatoriosqueretornaunafuncinrand(),disponibleenla
mayoradelenguajesdeprogramacin.EnestecasoeslafuncindePHP.
En el grfico de la izquierda se genera un mapa de bits con valores completamente
aleatorios, mientras que en el de la derecha, en el que se utiliza una funcin software, se
puedevercomoexisteunpatrn.Lospatronesvisualesqueaparecenenelmapadebitsdela
derechano deberan existir si nos interesa la generacin de nmeros completamente
aleatorios.
Este es posiblemente el caso menos complicado para realizar la distincin entre
nmeros aleatorios y pseudoaleatorios puesto que los resultados obtenidos solo pueden ser
0 o 1. Si pensamos en otros fenmenos en los que se requiere un rango ms elevado de
valores,comoenlassimulacionesestadsticas,losvideojuegos,losjuegosdeazarporinternet,
etc.seramscomplicadodescubrirestasecuencia,perotomandounnmerosuficientemente
grande de muestras podra descubrirse si los valores obtenidos son aleatorios o
pseudoaleatorios.
Una vez expuesta la diferencia entre nmeros aleatorios y pseudoaleatorios,
centrmonosenloquequeremosobtener:losnmerosaleatorios.

Generadordenmerosaleatorios
Introduccin

2.1.3 Cmopodemosgenerarnmerosaleatorios?

Laprimeraopcinquenospuedeveniralamente somosnosotrosmismos.Perolas
personassomos generadores aleatorios imperfectos: hay estudios que demuestran que
existentendenciasclarasenloshumanosparalaelaboracindesecuenciassesgadasyestn
relacionadasconcaractersticaspersonales,conlosconocimientosoinformacionespreviaso
conlaedad.
En segundo lugar, podemos aprovecharnos desituaciones realespara obtener una
tabladenmerosaleatorios,comolalistadelosnmerosdeLoteraNacionalpremiadosalo
largodesuhistoria,puessecaracterizanporquecadadgitotienelamismaprobabilidadde
serelegido,ysueleccinesindependientedelasdemsextracciones.

Estasdoscaractersticasanterioressonlabasedelosnmerosaleatorios:

Losvaloresobtenidosdebenserindependientesentres.Esdecir,nodebemosutilizar
un nmero obtenido aleatoriamente para la generacin de otros nmeros
supuestamente aleatorios, porque lo que estaremos haciendo es un generador de
nmerospseudoaleatorios.

Todoslosvaloresdebentenerlamismaprobabilidaddeobtenerse.

Aspues,podemosestablecerunapequeaclasificacinconlosdistintosmtodosde
generacinquenospermitenobtenernmerosaleatorios[5]:

Mtodos manuales: lanzamiento de monedas, lanzamientos de dados, dispositivos


mecnicos,dispositivoselectrnicos.

Mtodosdecomputacinanalgica,sonmtodosquedependendeciertosprocesos
fsicosaleatorios,porejemplo,elcomportamientodeunacorrienteelctrica.

Mtodosdecomputacindigital,cuandoseusaelordenadordigital.

Tablas de bibliotecas, son nmeros aleatorios que se han publicado, de los cuales
podemosencontrarlistasenloslibrosdeprobabilidadytablasdematemticas.Estos
nmerosfuerongeneradosporalgunodelosmtodosdecomputacinanalgica.

Paralarealizacindeesteproyectosecombinarndosdelosmtodosmencionados
anteriormente:
Por un lado, vamos a utilizar dispositivos electrnicos (microcontrolador), pero este
dispositivo nicamente se utilizar para transmitir los valores aleatorios al PC. Para la
generacin vamos a recurrir a un circuito formado con componentes electrnicos, del cual
vamos a extraer un valor analgico, es decir, utilizaremos mtodos de computacin digital y
mtodosdecomputacinanalgica.
Unacaractersticaquesedebecomentartambinsobrelageneracindelosnmeros
aleatorios es que su velocidad de generacin depender de la aplicacin que tengamos que
8

Generadordenmerosaleatorios
Introduccin

darleanuestrogenerador.Puedehaberaplicacionesenlasquenonosintereseunavelocidad
excesivamenteelevada,porejemplo,sirealizamosunaaplicacinqueseaundadoelectrnico
generando nmeros aleatorios del 1 al 6, mientras que en otras posibles aplicaciones, por
ejemplolosvideojuegosolassimulacionesdeprocesosfsicos,necesitaremosquelavelocidad
sealomsaltaposible.
Porelloesnecesariorealizarunaprimeradecisinsobrelafrecuenciadetrabajodel
generadorqueserealizar.Estadecisinsehatomadoenfuncindeloscircuitosconlosque
seobtieneelruidoblanco.
Elgeneradorseutilizarenaplicacionesdefrecuenciasbajas,orelativamentebajas,
teniendoencuentaquesepodranobtenerfrecuenciasmuchomayores.
Laideaesobtenerungeneradorconlamayorversatilidadposibleparalasaplicaciones
ms tpicas que puedan imaginarse, por ejemplo, un dado electrnico utilizado en juegos de
mesa a travs de internet, o la creacin de un mapa de bits utilizado para la obtencin de
cdigosQR[6].
Lamximafrecuenciadeobtencindelasmuestrasserde1kHz,queequivaleala
obtencindeunamuestracadamilisegundo,esdecir,milmuestrasporsegundo.Loscircuitos
realizados para la obtencin de ruido blanco y la limitacin del timer de Matlab han
determinadoestafrecuencia.
Aunque pueda parecer una frecuencia elevada, la frecuencia de obtencin de los
valorespuedesermuycercanaalafrecuenciadetrabajodeunmicrocontrolador,yengeneral
este valor es del orden de MHz, que supone aproximadamente un milln de muestras por
segundo.
2.1.4

Quaplicacionespuedentenerlosnmerosaleatorios?

En la vida cotidiana se utilizan nmeros aleatorios en situaciones tan dispares como


puedenserlosjuegosdeazar,enunaanimacinporordenador,entestparalocalizacinde
erroresenchips,enlatransmisindedatosdesdeunsatlite,enlageneracindeclaves,en
lasfinanzas,enlatelefonamvildigitalGSM,dondeseutilizanparalaasignacindeunaclave
aleatoria que sirve para autenticar al usuario o tambin para dar cierta seguridad a la
asignacininicialdenmerossecretosalastarjetasdecrdito.
En este proyecto no se ha concretado una aplicacin exclusiva debido a que se han
creadodiversoscdigosgenricosquepuedentenermltiplesaplicaciones.Sepuedeobtener
nmerosaleatoriosdedistintosrangos,distintosnmerosdemuestrasydistintasfrecuencias
degeneracin.
Para ejemplificar, en el anlisis de los valores obtenidos que se ha realizado se han
tratado dos casos muy concretos: la generacin de valores con rango de 1 a 6, como si se
tratar de un dado electrnico, y la generacin de valores lgicos, 0 o 1, con mltiples
aplicaciones posibles, como el ejemplo mencionado anteriormente de la generacin de un
mapadebits.

Generadordenmerosaleatorios

Introduccin

Referencias:

[1] El gran libro de los nmeros aleatorios. [Pgina web online]. Miguel Rodrguez Lago,
publicadoel10defebrerode2010[fechadeconsulta:18022011][Accesogratuito]

<http://www.migui.com/ciencias/matematicas/elgranlibrodelosnumerosaleatorios.html>

[2]Wikipedia.MtododeMontecarlo.[Pginawebonline].Publicadoel20dejuniode2005,
ltimaactualizacinel11deagostode2011[fechadeconsulta:06032011][Accesogratuito]

<http://es.wikipedia.org/wiki/M%C3%A9todo_de_Montecarlo>

[3] Pea Snchez de Rivera, Daniel (2001). Deduccin de distribuciones: el mtodo de


Montecarlo,enFundamentosdeEstadstica.Madrid:AlianzaEditorial.

[4]PseudorandomvsTrueRandom.[Pginawebonline].BoAllen[fechadeconsulta:1802
2011][Accesogratuito]

<http://www.boallen.com/randomnumbers.html>

[5]Nmerosaleatorios.[Pginawebonline].[Fechadeconsulta:23022011][Accesogratuito]

<http://www.estadisticaparatodos.es/taller/aleatorios/aleatorios.html>

[6] Wikipedia. Cdigo QR. [Pgina web online]. Publicado el 15 de abril de 2007, ltima
actualizacinel15deagostode2011[fechadeconsulta:25022011][Accesogratuito]

<http://es.wikipedia.org/wiki/C%C3%B3digo_QR>

[]Otrasreferenciasdeinformacingeneral:

Documentos:

Cuesta Andrea, Jordi (2009): documento PDF de la asignatura de primer curso


Mtodos estadsticos de la ingeniera de la carrera Ingeniera Tcnica
Industrial Especializacin en Electrnica de la Escuela Tcnica Superior de
IngenieradelaUniversidadRovirayVirgili.

Libros:

Peebles, Peyton Z. (2006): Principios de probabilidad, variables y seales


aleatorias.Ed.McGrawHill/InteramericanadeEspaa,S.A.

10

Generadordenmerosaleatorios

Introduccin

2.2 Estudiotericodelruidogeneradoporcomponentespasivosy
semiconductores

En este proyecto vamos a utilizar el ruido como fuente de generacin de nmeros


aleatorios.Enestecaso,yadiferenciadelamayoradelasocasionesenlasquetratamoscon
sealesyruido,nosvaainteresarfiltrarlasealprincipalparaquedarnosnicamenteconel
ruidoquelaacompaa.
El primer paso ser definir tericamente qu es el ruido y cual queremos conseguir.
Posteriormente se realizar un estudio especfico sobre el ruido en distintos componentes
pasivosysemiconductoresparatenerunaideadecmovamosagenerarelruido.

2.2.1

Queselruido?

En el mbito de lastelecomunicacionesy de losdispositivos electrnicos, en general,


se considera ruido a todas las perturbaciones elctricas que interfieren sobre las seales
transmitidasoprocesadas[1].
Tambin,deunaformageneralelruidoseasociaconlaideadeunsonidomolesto,no
deseado,bienporsuincoherencia,porsuvolumenoporambascosasalavez.Peroennuestro
caso,estesonidomolesto,nodeseado,vaaserelquerealmentenosinterese.
Si nos centramos especficamente en el mundo de la electrnica, podemos definir el
ruido elctrico como interferencias (o parsitos), no deseadas y que estn unidas a la seal
principal,demaneraquelapuedenalterarproduciendoefectosquepuedensermsomenos
perjudiciales[2].Comosehacomentado,adiferenciadelamayoradecasos,enesteproyecto
elruidopasaraserlacomponentedelasealquenosinteresar.

2.2.2

Quruidonosinteresagenerar?

En general, existe una primera clasificacin del ruido asociado a colores. En esta
clasificacin,loscoloressedistinguenporelcontenidodefrecuencia,esdecir,laamplitudde
los armnicos. Por ejemplo, el ruido rosa solo contiene armnicos significativos hasta una
frecuencia de 1 kHz aproximadamente, por lo que solo se considerara cuando trabajramos
confrecuenciasbajas.
Ennuestraaplicacin,nosvaainteresargenerarruidoblanco.Elruidoblancoesuna
seal aleatoria que se caracteriza porque sus valores de seal en dos tiempos diferentes no
guardancorrelacinestadstica[3],esdecir,enelejedeltiempolasealtomavaloresqueno
tienen ninguna relacin entre s [4]. Como consecuencia de ello, sudensidad espectral de

11

Generadordenmerosaleatorios
Introduccin

potenciaesunaconstante,esdecir,sugrficaesplana.Loquesignificaquelasealcontiene
todaslasfrecuenciasytodasellasmuestranlamismapotencia.
Esdecir,trashaberrealizadounadescomposicinespectraldeFourier,eneldominio
delafrecuenciaveramostodaslascomponentesconlamismaamplitud,simulandoelefecto
deunalneacontinuaparalelaalejehorizontal.Adiferencia,losdemsruidoscoloreadosno
contienentodaslasfrecuencias,ycomoconsecuenciatrasrealizarunarepresentacingrfica
eneldominiodefrecuenciasnoobtendramoslalneacontnuaparalelaalejehorizontal.
Lasiguienteimagencorrespondealagrficaendominiofrecuencialdelapotenciade
ruidoefectivadeunruidoblanco:

Figura3:Potenciaderuidoefectivadelruidoblanco

Para obtener la densidad espectral de tensin lo nico que tenemos que hacer es la
razcuadradadeladensidadespectraldepotencia.

2.2.3

Ruidogeneradoporcomponentespasivosysemiconductores

Para hacer un estudio del ruido que se genera en componentes pasivos y


semiconductores,primerodebemosconocerqutiposderuidoexistenenestosdispositivos.
Podemosencontrarlossiguientes:

Ruidotrmico(Johnson):

Eselresultadodelmovimientoaleatoriodeloselectronesdentrodeunmaterialpor
suagitacintrmica.Porello,podemosconsideraresteruidocomoruidoblanco.

Esindependientedelvoltajeaplicado

Tieneunarelacindirectaconlatemperatura:cuandostaaumenta,elruidotrmico
aumenta.

Enloscircuitoselectrnicos,puedecausarvariacionesdecorrienteovoltaje.

12

Generadordenmerosaleatorios

Ruidodedisparo(shot):

Introduccin

Aparececuandohayunacorrienteelctrica.

Setratadefluctuacionesdecorrienteelctricaatravsdeunconductor,causadaspor
elhechoquelacorrientesetransportaporelectrones[6].

Elniveldeesteruidoesmayorconformeaumentaelvalormediodelacorrienteque
circula[6].

SepuedemodelarmedianteunadistribucindePoisson:losportadoresdecargaque
formanlacorrientesiguenunadistribucindePoisson[6].

RuidoFlicker:

Este ruido (tambin conocido como ruido 1/f) se caracteriza porque su caracterstica
de amplitud es inversa a la frecuencia. Por lo tanto, este ruido solo se considera
cuandotrabajamosenbajasfrecuencias.

Se trata de un ruido que se obtiene experimentalmente, y su valor normalmente se


puede consultar en los documentos de caractersticas (datasheets) de los
componentes.

Esteruidoesunruidorosa,porlotanto,nonosvaainteresar.

RuidoBurst(deexplosin):

Estasociadoalasimperfeccionesdelossemiconductores.Sielprocesodefabricacin
esbueno,esteruidotienepocarelevancia.

Sedebealastransicionesentredosomsnivelesdiscretosdetensinocorriente,yse
daentiemposaleatorioseimpredecibles.

Ruidodeavalancha:

EstasociadoalasunionesPNpolarizadasinversamente:loselectronesqueatraviesan
la unin se aceleran debido al campo elctrico, generando electrones secundarios
cuando impactan contra ellos. Este proceso es aleatorio y provoca fluctuaciones de
corriente.

De los cinco tipos de ruido anteriores, los que sern ms interesantes para la
generacindelosnmerosaleatoriossernelruidotrmicoyelruidodeavalancha.

13

Generadordenmerosaleatorios
Introduccin

Comosehacomentado,elruidoFlickersepuededescartardirectamente,puestoque
no se trata de un ruido blanco. El ruido de disparo tambin se puede descartar, porque se
puede modelar mediante una distribucin estadstica, y eso es una contradiccin en la
definicindeloqueesunruidoblanco.
Finalmente,elruidodeexplosinpodrainteresarnospuestoquenosuponeninguna
contradiccinaladefinicinderuidoblanco,perocomoestasociadoalasimperfeccionesde
lossemiconductores,encasodetenerunbuensemiconductorseramuydifcilsuapreciacin.

2.2.4 Ruidoencomponentespasivosysemiconductores

A continuacin se expone un anlisis del ruido existente en los componentes que se


utilizarn como fuente de generacin del ruido blanco. La informacin se ha extrado de la
asignaturadesegundocursoTecnologaelectrnicaII.

Resistor:Considerandoelmodeloenpequeasealdeunelementoresistivonoideal.
Lostiposderuidoquemsafectarnadichoelementosern:ruidotrmicoydedisparo,
siendo el primero mucho ms intenso. Por tanto, la representacin circuital ser una
resistenciaidealenserieconunafuentederuidotrmico:

Figura4:Modeloenpequeasealdeunelementoresistivonoideal
Comopodemosver,lafuentequesimulaelruido(potenciaderuidoefectiva)depende
delossiguientesparmetros:

Elfactor4ylaconstantedeBoltzmank(1,381023J/K).

LavariableT,queeslatemperaturaenKelvin:sistaaumenta,elruidoaumentar.

LavariableR,queeselvalordelaresistencia.Observamosqueparaunvalormayorde
resistencia,elruidogeneradosermayor.

Porltimo,lavariablef,queeselanchodebandadelcircuitoenelqueseencuentre
laresistencia.Cuantomayorseaelanchodebanda,mayorserelruidoobtenido.

Conunaresistenciade1kyunanchodebandade1kHzatemperaturaambiente(25
C=298K)seobtieneunvoltajede0,13V.

14

Generadordenmerosaleatorios

Diodo:Considerandoelmodeloenpequeasealdeundiodonoideal.

Introduccin

steestarsometidoatrestiposderuido:trmico,Flickerydedisparo.Surepresentacin
circuitalseralasiguiente:

Figura 5:Modeloenpequeasealdeundiodonoideal
Ruidotrmico:losparmetrossonlosmismosquelosquesehancomentadoenelcaso
del elemento resistivo. La resistencia RS sera la resistencia limitadora de un circuito
reguladorcondiodoZener,comoelqueserealizar.
ConunaresistenciaRsde30yunanchodebandade1kHzatemperaturaambiente(25
C=298K)seobtieneunvoltajede22,2nV.
Ruidodedisparo:

Elfactor2ylacargadeunportadorq(1,61019C)sonconstantes.

LavariableIeslacorrienteatravsdeldiodo.Cuantomayorsealacorriente,mayor
serelruidoobtenido.

Porltimo,lavariablefeselanchodebandadelcircuito.Cuantomayorseaelancho
debanda,mayorserelruidoobtenido.

Conunacorrientede100mAyunanchodebandade1kHz,seobtieneunacorrientede
5,7nA.LaimpedanciadeldiodoZener1n759paraunacorrientede100mAesde30.Con
5,7nAy30seobtieneunvoltajede170nV.
RuidoFlicker:

LaconstantedeFlickerKfseadjuntaeneldatasheetdelcomponente.

La corriente I es la corriente que atraviesa el diodo. Cuanto mayor sea la corriente,


mayorserelruidoobtenido.Elvalorafseadjuntaeneldatasheetdelcomponente.

La variable fH es la frecuencia superior del circuito, y la variable fL es la frecuencia


inferior. Este valor siempre ser positivo puesto que fH >fL, y cuanto mayor sea la
relacin,mayorserelruidoobtenido.

El valor de este ruido se obtiene experimentalmente y debera estar adjunto en los


documentosdecaractersticasdeloscomponentes,aunqueesonosueleocurrir,porloqueno
sehapodidorealizarunclculoprevioparatenerunaideadelvalordeesteruido.
15

Generadordenmerosaleatorios
Introduccin

Transistorbipolar:Considerandoelmodeloenpequeasealdeuntransistorbipolar.
ste estar sometido a tres tipos de ruido: trmico, Flicker y de disparo. Su representacin
circuitalseralasiguiente:

Figura6:Modeloenpequeasealdeuntransistorbipolarnoideal
Ruidotrmico:losparmetrosdelosquedependelafuentequesimulaelruidotrmico
sonlosmismosquelosquesehancomentadoenelcasodelelementoresistivo.Eneste
casolaresistenciarxseralaresistenciadebasedeltransistorenpequeaseal.
Conunaresistenciarxde200yunanchodebandade1kHzatemperaturaambiente
(25C=298K)seobtieneunvoltajede0.57V.
RuidoFlicker:

LaconstantedeFlickerKfseadjuntaeneldatasheetdelcomponente.

LacorrienteIBeslacorrientedebasedeltransistor.Cuantomayorsealacorriente,
mayorserelruidoobtenido.Elvalorafseadjuntaeneldatasheetdelcomponente.

LasvariablesfHyfLafectancomosehacomentadoanteriormenteeneldiodo.

El valor de este ruido se obtiene experimentalmente y debera estar adjunto en los


documentosdecaractersticasdeloscomponentes,aunqueesonosueleocurrir,porloqueno
sehapodidorealizarunclculoprevioparatenerunaideadelvalordeesteruido.
Ruidodedisparo:

Elfactor2ylacargadeunportadorq(1,61019C)sonconstantes.

LavariableIBeslacorrientedebasedeltransistor,ylacorrienteICeslacorrientede
colectordeltransistor.Cuantomayorsealacorriente,mayorserelruidoobtenido.

Por ltimo, la variable f es el ancho de banda del circuito. Cuanto mayor sea el
anchodebanda,mayorserelruidoobtenido.

Conunacorriente(debaseocolector)de30mAyunanchodebandade1kHz,seobtiene
unacorrientede3,1nA.Conunaresistenciade1k(debaseocolector),seobtieneunvoltaje
de3,1V.Enestecaso,elruidodedisparodelacorrientedelcolectorsermayorqueeldela
corrientedebasepuestoqueIC=IB.
16

Generadordenmerosaleatorios

Introduccin

Referencias:

Pginasweb:

[1] Wikipedia. Ruido (fsica). [Pgina web online]. Publicado el 4 de marzo de 2005, ltima
actualizacinel16deagostode2011[fechadeconsulta:04032011][Accesogratuito]
<http://es.wikipedia.org/wiki/Ruido_(f%C3%ADsica)>
[2] Wikipedia. Ruido elctrico. [Pgina web online]. Publicado el 3 de noviembre de 2004,
ltimaactualizacinel18deabrilde2008[fechadeconsulta:05032011][Accesogratuito]
<http://es.wikipedia.org/wiki/Ruido_el%C3%A9ctrico>
[3] Wikipedia. Ruido blanco. [Pgina web online]. Publicado el 6 de julio de 2005, ltima
actualizacinel18dejuliode2011[fechadeconsulta:05032011][Accesogratuito]
<http://es.wikipedia.org/wiki/Ruido_blanco>
[4]Ruidoblanco.[Pginawebonline].ltimaactualizacinel26dediciembrede2009[fecha
deconsulta:05032011][Accesogratuito]
<http://www.duiops.net/hifi/enciclopedia/ruidoblanco.htm>
[5]Wikipedia.RuidodeJohnsonNyquist.[Pginawebonline].Publicadoel16denoviembrede
2004, ltima actualizacin el 19 de julio de 2011 [fecha de consulta: 06032011] [Acceso
gratuito]
<http://es.wikipedia.org/wiki/Ruido_de_JohnsonNyquist>
[6]Wikipedia.Ruidodedisparo.[Pginawebonline].Publicadoel8defebrerode2007,ltima
actualizacinel4deagostode2011[fechadeconsulta:06032011][Accesogratuito]
<http://es.wikipedia.org/wiki/Ruido_de_disparo>

Documentos:
VilanovaSalas,Xavier(2010):PDFdelaasignaturadesegundocursoTecnologa
electrnica II de la carrera Ingeniera Tcnica Industrial Especializacin en
ElectrnicadelaEscuelaTcnicaSuperiordeIngenieradelaUniversidadRoviray
Virgili.

Libros:
CabrRodon,Roger(2004):Manualdelectrnicabsicaitecnologiaelectrnica,
Ed.CossetniaEdicions.

17

Generadordenmerosaleatorios

Circuitosgeneradores

3 Circuitosgeneradores

Recordandolaimagendelesquemabsicoparalaobtencindelosnmerosaleatorios:

Figura7:Esquemabsico
Elprimerbloquequeapareceyqueseexplicaracontinuacineselbloquegenerador
delruidoblanco.
Paragenerarelruidoblancosehanrealizadotrescircuitos:

3.1

Elprimercircuitoutilizaelementosresistivoscomogeneradores,
El segundo circuito se ha extrado de las Application Notes del fabricante de
componenteselectrnicosMAXIM[1],yutilizacomofuentederuidoundiodoZener
polarizadoinversamente,
El tercer y ltimo circuito se ha extrado de la pgina web de la Universitt Bonn [2]
que utiliza como fuente de ruido un transistor bipolar tambin polarizado
inversamente.

Generadorconresistor

Elcasodelresistortericamenteeselptimoparalageneracindelruido,puestoque
lacomponenteprincipaldelruidoexistenteenesteelementoeselruidotrmico,queesun
tipo de ruido blanco gaussiano [3]. Por tanto, es el modelo terico con el que mejores
resultadossepodranobtener.
Elcircuitoquesehadiseadoeselsiguiente:

Figura8:Circuitogeneradorderuidoblancoconresistor
18

Generadordenmerosaleatorios
Circuitosgeneradores

La obtencin del ruido en este circuito es la siguiente: en la etapa de entrada, en


primerlugarestelfiltro,conunafrecuenciadecortede0,28Hz,paraobtenernicamentela
partecontinuadelaalimentacin.
Acontinuacin,dosdivisoresdetensinidnticos,cuyanicadiferenciaserelvalor
realdelosresistores.
La seal de cada divisor de tensin pasa por un condensador que filtra la tensin
continua,ylapartealternanofiltradaserlaentradadeunaestructuraconunamplificador
operacional restador inversor. Es decir, se realiza la resta de dos ruidos blancos, que como
resultadonosdevuelveunruidoblancoamplificadoenunfactor100,talycomosepuedever
enelanexo2[4].

Para la realizacin de este circuito se han tomado tres decisiones que se exponen a
continuacin:
La primera decisin tomada corresponde a la ganancia, y su explicacin es la
siguiente:elamplificadoroperacional741CN[5]tieneunproductodegananciaporanchode
banda de 1,5 MHz, por lo que estableciendo una ganancia de 100, obtenemos un ancho de
banda15kHz.Esteanchodebandaesmsquesuficienteporelmotivosiguiente:
Sisemuestreaunasealconunafrecuenciamuyelevadarespectoalafrecuenciadela
seal, ser predecible puesto que al realizar el desarrollo de Taylor [6], puede conocerse el
valor de la prxima muestra que se tomar teniendo en cuenta los valores de las derivadas.
Estehechosepuedeintuirenlasiguienteimagen:

Figura9:Grficatemporaldelmnimoperiododemuestreo

Si se obtuvieran muestras en cada punto marcado, se podra obtener una


reconstruccin de la seal utilizando el desarrollo de Taylor. Si aumentamos el periodo de
muestreo hasta que sea como mnimo el doble del periodo de la seal, no se podra
reconstruirlaseal.
El amplificador operacional 741CN tiene un Slewrate de 0,5 V/s. Despus de la
generacinderuidoblancoestlaetapadeadecuacin,paraobtenerunasealdeunrango
de0Va5V.Elcasoextremoseraprecisamentequelavariacinfuerade0Va5V.Paraesta
19

Generadordenmerosaleatorios
Circuitosgeneradores

variacin, obtendramos un valor de tiempo de 10 s, que corresponde a una frecuencia de


100kHz.Enlaimagenanterior,los100kHzcorrespondenalafmax.
La mxima frecuencia de muestreo es de 1 kHz, por lo que nos situamos en dos
rdenesdemagnitudpordebajodelafrecuenciadelaseal.
Si por el contrario el muestreo se realiza a frecuencia menor, puede que hayan
transcurrido varios ciclos hasta la obtencin de la siguiente muestra, y el resultado ser
aleatorio.
Desdeunpuntodevistadeldominiofrecuencial,aplicandoelteoremadeNyquist[7],
para reconstruir exactamente una seal se necesita que la frecuencia de muestreo sea
superioraldobledelamximafrecuencia.Siestonosucede,hablamosdealiasingpuestoque
nosepuedereproducirconexactitudlaseal.
Como consecuencia, cuando se produce el aliasing, si se tiene un ruido a banda
limitada, como si se tratara de un ruido coloreado, el hecho de muestrear por debajo de la
frecuenciadeNyquistharqueelruidoenlabandalimitadaseextiendaatodoelespectro,
obteniendo de esta manera un ruido blanco (en caso de que el ruido en la banda limitada
fuerablanco).
Enesteproyectosehaestablecidolafrecuenciamximademuestreoen1kHz,porlo
quelafrecuenciademuestreosesituaenmsdeunadcadapordebajodelanchodebanda.

Lasegundadecisintomadacorrespondealosvaloresdelasresistenciasquegeneran
el ruido. La dificultad que presenta la extraccin del ruido de una resistencia es sin duda la
mayordelostresgeneradoresporelsiguientemotivo:

Comosehavistoanteriormente,ladensidadespectraldelvoltajedelruidogenerado
en una resistencia es directamente proporcional a dos constantes (factor 4 y constante de
Bolzman),alatemperatura,alanchodebandadelcircuitoyalvalordelaresistencia.Sinos
centramosenesteltimoaspecto,seraptimoyconvenienteescogerresistenciasconelvalor
mselevadoposible,porejemplode1G.

Peronopodemosutilizarunasresistenciasdeunvalortanelevadoporlosdosmotivos
siguientes:

Enprimerlugar,laimpedanciadelasentradasdelosamplificadoresoperacionalesno
es infinita, concretamente en el caso del 741CN que se ha utilizado tienen una
impedanciatpicade2M,porloquesiutilizramosresistenciasde1G,lacorriente
circularahacialasentradasdelamplificador,ylosclculostericosenlosqueseaplica
elcortocircuitovirtualsuponiendoquelacorrienteenlasentradasesnulayanoseran
ciertos,yelamplificadortrabajaraenunazonadenolinealidad.

Ensegundolugarycomoseverposteriormente,existeunproblemamsgravequeel
anterior,queeselqueestablecelalimitacindelosvaloresdelasresistencias,yesel
siguiente: las entradas del microcontrolador tienen unas impedancias de unas pocas
decenas de k, por lo que todo el circuito que genere el ruido, incluyendo la etapa
20

Generadordenmerosaleatorios
Circuitosgeneradores

amplificadoraydeadecuacin,debertenerunaimpedanciadesalidaglobalinferiora
estaspocasdecenasdek.

Por tanto, el problema existente es la necesidad de que las resistencias tengan el


mayor valor posible para obtener el mayor ruido posible, pero no se pueden poner unas
resistencias de valor muy elevado porque provocarn problemas relacionados con las
impedancias,talycomosehadescritoanteriormente.

Por ltimo, la tercera decisin tomada corresponde al amplificador utilizado. La


alternativa existente es la de utilizar directamente un amplificador diferencial sin tener que
recurriraunoperacionalenunaestructuraderestador.
Despus de comprobar las distintas posibilidades existentes en el mercado, se ha
determinado que el amplificador diferencial ptimo para la aplicacin que se est
desarrollandoeselAD626ANZ[8].Loscriteriosutilizadosenlabsquedahansido:

elproductogananciaporanchodebanda,
elPSRR(PowerSupplyRejectionRatio,ofactorderechazoalaalimentacin),
elCMRR(ComonModeRejectionRatio,ofactorderechazoalmodocomn)
ylaimpedanciadelasentradas.

Lapreguntaqueseplanteaes:Porqunosehautilizadoestemodelo(elAD626LNA)
envezdelaestructuraderestadorconun741CN?
YlarespuestaaestapreguntaseobtieneenlascaractersticasdelAD626ANZ:pesea
haber buscado un modelo con las mejores caractersticas posibles, la realidad es que todas
estascaractersticasseencuentranendesventajafrentealascaractersticasdel741CN,como
sepuedeverenlasiguientetablacomparativa:
Factorquesecompara
GBW
PSRR
CMRR
InputResistance

741CN
AD626ANZ
1,5MHz
100kHz
96dB
80dB
90dB
90dB
2M
200k
Tabla1:ComparacinentreelA.O.741CNyelA.D.AD626ANZ

Por ello, la decisin tomada ha sido la de utilizar el amplificador operacional 741CN.


Finalmente, el ltimo factor utilizado para reafirmar la decisin es el aspecto econmico,
puesto que el precio unitario del amplificador operacional 741CN es de 0,35 y el del
amplificadordiferencialAD626ANZesde8,16.
En el captulo siguiente se trata la adecuacin de la seal de salida de estos
generadoresderuido.Enlsedetallarelporqudelautilizacindeunamplificadordeuso
general como puede ser el 741CN, pudiendo utilizar otros amplificadores con mejores
caractersticasqueeste.

21

Generadordenmerosaleatorios

3.2 GeneradorcondiodoZener

Circuitosgeneradores

Elsegundogeneradorqueseutilizarenelproyectocomofuentederuidosebasaenel
ruido de un diodo Zener en polarizacin inversa, trabajando en la zona de ruptura, donde
obtenemos un ruido de avalancha, explicado en el anterior captulo, como se muestra en la
siguientegrfica:

Figura10:CurvadelacaractersticatensincorrientedeldiodoZener[9]
Unaposible alternativahabrasidoqueeldiodo trabajaraenpolarizacininversasin
llegaralvoltajederuptura,dondetambinexisteunpequeomovimientodecargas,peroen
estecasoestaramoshablandodequelaamplituddelasealobtenidaseramuchomenor.
EstegeneradorestextradodeunaApplicationNotedelfabricantedecomponentes
MAXIM [1], donde se detalla el estudio realizado en la obtencin del ruido blanco. En dicho
estudioseutilizaundispositivodelmismofabricantedecomponentesparalaamplificacindel
ruido, el MAX2650 LNA (Low Noise Amplifier) [10]. En este proyecto no se utilizar dicho
dispositivoparalaamplificacindebidoaquesolosefabricaenformatoSMDynosedispone
de los materiales adecuados para trabajar con componentes fabricados en este formato. Sin
dudaesunadelasposiblesmejorasquesecomentaranenelcaptulocorrespondiente.

Por lo tanto, el generador utilizado en este caso corresponde al siguiente modelo


circuital:

Figura11:CircuitogeneradorderuidoblancocondiodoZener

22

Generadordenmerosaleatorios
Circuitosgeneradores

Enelcircuito,observamosenprimerlugareldiodoZenermodelo1n759[11]que
tiene un voltaje de ruptura en polarizacin inversa de 12 V. En el estudio realizado por
MAXIM,seprobarondiferentesdiodosZenercondistintastensionesderuptura,desdelos
5Vhastalos12V,ysedeterminqueeldiodoquetenaunatensinderupturade12V
producaunapotenciaderuidodeentre15dBy20dBsuperioraldeldiodode5V.

El otro componente con el que se realizaron pruebas fue con la resistencia R1.
Utilizando un potencimetro para variar la corriente que circula a travs del diodo,
variaronlacorrientedesde0mAhasta100mA.Lavariacinqueseobtuvoenlapotencia
del ruido era de apenas 1 dB, por lo que la decisin tomada fue la de utilizar una
resistencia que limitara lo mnimo posible la corriente que circula a travs del diodo, es
decir,queatravesaralamximacorrienteposible,dentrodelasespecificacioneselctricas
del diodo. Con esta prueba determinaron que por los resultados obtenidos, el ruido de
avalancha producido dominaba respecto al ruido trmico, al ruido flicker y al ruido de
disparo,queesproporcionalalacorriente.

3.3

Generadorcontransistorbipolar

EltercergeneradorsehaextradodelapginawebdelaUniversittBonndeAlemania
[2].Sufuncionamientoeselsiguiente:
Utiliza un transistor bipolar [12] BC548 polarizado inversamente. Para conseguir un
movimientoaleatoriodelosportadores,elterminalcolectordeltransistorquedasinconexin.
Solounospocosportadoresatraviesandelemisoralabase(debidoalapolarizacininversa),
generandodeestaformaelruidodeseado.Enlapginawebelectronica.com[13]sedetallael
comportamientodeuntransistorpolarizadoinversamenteenestascondiciones.

Elgeneradorutilizadoenestecasocorrespondealsiguientemodelocircuital:

Figura12:Circuitogeneradorderuidoblancocontransistorbipolar
23

Generadordenmerosaleatorios
Circuitosgeneradores

En primer lugar se filtra la alimentacin para obtener nicamente la componente


continua.ElfiltroRCtieneunafrecuenciadecortede0,338Hz.
Acontinuacinlasealdealimentacincirculaatravsdelaresistenciade100kque
tiene uno de sus terminales conectado al terminal emisor del transistor. Solo unos pocos
portadores circularn de emisor a base generando de esta manera el ruido. La componente
continua de la tensin se filtra con el condensador C2 de 10 nF, permitiendo el paso
nicamentedelacomponentealterna,queconformarelruidogenerado.

3.4

Imagenesendominiotemporalobtenidas

LosinstrumentosutilizadosparaalimentarloscircuitosyparacapturarlasImagenesson
lossiguientes:
Fuentedealimentacin:

Marcacomercial:HQPOWER

Modelo:PS613

Osciloscopio[14]:

Marcacomercial:OWON

Modelo:PDS5022S

Softwareutilizadoparalatransmisindedatos:
Desarrollador:LilliputTechnologyCO.,LTD

Distribuidor:OWON

Versin:2.0.4.2(build:04122009)

Antesdepoderrealizarlasmedicionesnosencontramosanteunaprimeradificultad:la
fuente de alimentacin utilizada no dispone de ninguna salida de alimentacin simtrica,
necesaria para alimentar el amplificador operacional que forma parte del primer circuito
generador de ruido, el que est basado en el resistor. Por ello, el primer paso consistir en
obtenerlaalimentacinsimtrica.

24

Generadordenmerosaleatorios
Circuitosgeneradores

Sehaimplementadoelcircuitoquesepresentaacontinuacin:

Figura13:Circuitoparalaobtencindelaalimentacinsimtrica[15]

Estecircuitoutilizaunadelasdossalidasdetensinfijadelafuentedealimentacin,
lade+12V.ElcondensadorC1sirveparadesacoplarlaalimentacin.
Acontinuacin,tenemosundivisordetensincondosresistenciasde1k,porloque
la tensin en la entrada no inversora del amplificador ser la mitad de la tensin de
alimentacin,esdecir,serde+6Vrespectoalareferenciadelafuentedealimentacin.
Aplicandoelconceptodecortocircuitovirtual,latensindelaentradanoinversoraser
lamismaqueenlaentradainversora,ycomoelcircuitoconamplificadoroperacionalpresenta
unaestructuradeseguidordetensin,latensindelaentradainversoraserlamismaquela
delasalidadelamplificadoroperacional.
El siguiente paso ser realizar un cambio en la referencia que se utilizar para los
circuitos.Estareferenciaserlatensindesalidadelamplificadoroperacional.
Es decir, el valor de esta tensin es de +6 V respecto a la referencia de la fuente. Si
ahora consideramos estos +6 V como referencia, es decir, como masa virtual, el terminal
positivodelafuentedealimentacinseencontrara+6Vrespectoaestamasavirtual,yel
terminal negativo de la fuente de alimentacin se encontrar a 6 V, obteniendo la
alimentacinsimtrica.
A continuacin se presentan las Imagenes de las seales generadas por los circuitos
anteriormente comentados. Estas Imagenes han sido tomadas en dominio temporal. Se
adjuntanlosvaloresdelasescalasdetiempoyvoltaje,ascomolosvaloresdevoltajemximo,
mnimoymedio.Comosepuedeobservarsehanaplicadomltiplesvaloresdetime/divconla
finalidad de analizar lo ms detalladamente la seal generada y poder detectar posibles
frecuenciasdominantes.

25

Generadordenmerosaleatorios

3.4.1 Generadorconresistor

Circuitosgeneradores

Lasprimerascuatrocapturasestntomadasconunmismotime/div(tiempodecada
divisn vertical) de 1 s/div, que es el valor mnimo de T para observar la seal lo ms
detalladamenteposible:

Captura1:Imagendeosciloscopiodelgeneradorconresistor
Time/div=1s/div
V/div=20mV/div
Vmax=18,4mV
Vmin=23,3mV
Vmed=2,039mV

Captura2:Imagendeosciloscopiodelgeneradorconresistor
Time/div=1s/div
V/div=50mV/div
Vmax=90,0mV
Vmin=114,0mV
Vmed=3,528mV

Captura3:Imagendeosciloscopiodelgeneradorconresistor
Time/div=1s/div
V/div=50mV/div
Vmax=80,0mV
Vmin=84,0mV
Vmed=3,528mV
26

Generadordenmerosaleatorios

Circuitosgeneradores

Captura4:Imagendeosciloscopiodelgeneradorconresistor
Time/div=1s/div
V/div=20mV/div
Vmax=12,0mV
Vmin=32,0mV
Vmed=1,391mV
Tabla2:Medicionesrealizadasconosciloscopioparaelgeneradorconresistor

Como se puede observar en las capturas 2 y 3, aparecen unos picos de tensin


reflejados en los valores de Vmax y Vmin. La seal parece no tener una forma de seal
aleatoria,talycomosedemostrarposteriormente.

Lassiguientesdoscapturasestntomadasconuntime/divde2,5s/div:

Captura5:Imagendeosciloscopiodelgeneradorconresistor
Time/div=2,5s/div
V/div=20mV/div
Vmax=20,8mV
Vmin=44,0mV
Vmed=1,695mV

Captura6:Imagendeosciloscopiodelgeneradorconresistor
Time/div=2,5s/div
V/div=20mV/div
Vmax=72,8mV
Vmin=102,4mV
Vmed=1,459mV
Tabla3:Medicionesrealizadasconosciloscopioparaelgeneradorconresistor
27

Generadordenmerosaleatorios
Circuitosgeneradores

Enambascapturassepuedeobservarunasealperidica.Estasealtieneunperiodo
de 15 s (6 divisiones 2,5 s/div), que corresponde a una frecuencia de 66,6 kHz. Esta
observacinsehacorroboradoobservandolasealendominiofrecuencialconelosciloscopio.
Lascapturasendominiofrecuencialnosehanrealizadoporqueconelsoftwaresolosepueden
transferirdatosendominiotemporal.
Lamximafrecuenciademuestreoutilizadaenesteproyectoesde1kHz.Eldoblede
esta frecuencia corresponde a 2 kHz. Por lo tanto, el doble de la frecuencia de muestreo se
encuentrapordebajode66,6kHz.Comosehaexplicadoanteriormentemedianteelteorema
de Nyquist, esta frecuencia de 66,6 kHz no afectar a la obtencin del ruido blanco en un
anchodebandade1kHz,queeslamximafrecuenciademuestreo.

Enlasiguientecaptura,sepuedevermsclaramentelasealperidica:

Captura7:Imagendeosciloscopiodelgeneradorconresistor
Time/div=5s/div
V/div=50mV/div
Vmax=80,0mV
Vmin=122,0mV
Vmed=0,244mV
Tabla4:Medicionesrealizadasconosciloscopioparaelgeneradorconresistor

De la misma manera, esta seal peridica se puede observar en las siguientes


capturas,condiferentesvaloresdetime/div:

Captura8:Imagendeosciloscopiodelgeneradorconresistor
Time/div=10s/div
V/div=50mV/div
Vmax=112,0mV
Vmin=140,0mV
Vmed=2,843mV
28

Generadordenmerosaleatorios

Circuitosgeneradores

Captura9:Imagendeosciloscopiodelgeneradorconresistor
Time/div=100s/div
V/div=100mV/div
Vmax=113,0mV
Vmin=138,0mV
Vmed=2,354mV
Tabla5:Medicionesrealizadasconosciloscopioparaelgeneradorconresistor

Por ltimo, en las dos ltimas capturas realizadas con este generador se puede
observarlaaparicindedosnuevassealesperidicas:

Captura10:Imagendeosciloscopiodelgeneradorconresistor
Time/div=1ms/div
V/div=50mV/div
Vmax=114,0mV
Vmin=146,0mV
Vmed=2,073mV

Captura11:Imagendeosciloscopiodelgeneradorconresistor
Time/div=10ms/div
V/div=50mV/div
Vmax=110,0mV
Vmin=152,0mV
Vmed=1,672mV
Tabla6:Medicionesrealizadasconosciloscopioparaelgeneradorconresistor

29

Generadordenmerosaleatorios
Circuitosgeneradores

Lasprimerasconclusionesextradasdeestecircuitogeneradorsonlassiguientes:

Laprimerasealsepuedeobservarenlacaptura10,dondeseobtienenmuchospicos
detensinequidistantes.Estasealtieneunperiodoaproximadamentede25s.
La segunda seal se puede observar en la Figura 24. Esta seal no tiene la misma
amplitud en cada periodo, pero se observan unos picos existentes cada 10 ms, que
correspondenaunafrecuenciade100Hz.
Para confirmar la existencia de las dos frecuencias dominantes comentadas
anteriormente,sehavisualizadoenelosciloscopiolasealendominiofrecuencial.
El periodo aproximado de 25 s es realmente de 15 s, comentado previamente. Se
desconoceelorigendeestafrecuenciadominante.
El periodo de 100 Hz obtenido por simple inspeccin es realmente de 50 Hz.
Posiblemente exista alguna relacin con la fuente de alimentacin, ya que 50 Hz es la
frecuenciadelaredalaqueestconectada.
Lasealderuidoqueseobtieneconlasresistenciasseamuypequea,porloquese
debe filtrar parte de la seal de alimentacin a travs de las entradas de alimentacin del
amplificador.

Losvaloresdetensinmximoy mnimosonmuy elevados.Estehecho comportar


problemasposterioresalahoradeadecuarlassealesparaconseguirunniveldetensinde0
Va5V.

Elltimoproblemaexistenteeselsiguiente:talycomoseverenlascapturasdelos
dos siguientes generadores, en este caso la seal es ms lenta, es decir, para empezar a
observarlasealconciertosdetalleshemostenidoquefijaruntime/divmnimode1s/div.
Enlosotrosdosgeneradorespodemosobtenerlasprimerascapturasconuntime/divde100
ns/div. Este hecho es debido a que en este caso ya se utiliza un amplificador operacional
741CN,quetieneunslewratede0,5V/s.

A continuacin se adjuntan las capturas correspondientes al segundo generador de


ruidoanalizadoyconstruido.

30

Generadordenmerosaleatorios

3.4.2 GeneradorcondiodoZener

Circuitosgeneradores

Lasprimerastrescapturasestntomadasconunmismotime/divde100ns/div,quees
elvalormnimodetime/divparaobservarlaseallomsdetalladamenteposible:

Captura12:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=100ns/div
V/div=5mV/div
Vmax=3,2mV
Vmin=3,8mV
Vmed=0,094mV

Captura13:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=100ns/div
V/div=5mV/div
Vmax=4,8mV
Vmin=4,2mV
Vmed=0,966mV

Captura14:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=100ns/div
V/div=5mV/div
Vmax=6,0mV
Vmin=3,8mV
Vmed=0,907mV
Tabla7:MedicionesrealizadasconosciloscopioparaelgeneradorcondiodoZener

31

Generadordenmerosaleatorios
Circuitosgeneradores

Talycomosepuedeobservarenestastresprimerascapturas,elruidoobtenidoesde
muybajaamplitud,convaloresmximosde6mV.
Adiferenciadelgeneradorconresistor,enestecasoparecequenoexisteningntipo
desealperidica.
A continuacin se adjuntan las capturas correspondientes a diferentes time/div de
valorsuperiorconelfindedeterminarsiexistealgunafrecuenciadominante:

Captura15:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=250ns/div
V/div=5mV/div
Vmax=3,4mV
Vmin=4,8mV
Vmed=0,173mV

Captura16:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=1s/div
V/div=5mV/div
Vmax=7,4mV
Vmin=6,6mV
Vmed=0,273mV

Captura17:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=10s/div
V/div=5mV/div
Vmax=8,2mV
Vmin=7,0mV
Vmed=0,02mV
32

Generadordenmerosaleatorios

Circuitosgeneradores

Captura18:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=100s/div
V/div=5mV/div
Vmax=6,2mV
Vmin=6,2mV
Vmed=0,227mV

Captura19:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=1ms/div
V/div=5mV/div
Vmax=7,0mV
Vmin=6,6mV
Vmed=0,108mV

Captura20:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=10ms/div
V/div=5mV/div
Vmax=5,6mV
Vmin=9,0mV
Vmed=0,267mV
Tabla8:MedicionesrealizadasconosciloscopioparaelgeneradorcondiodoZener

33

Generadordenmerosaleatorios
Circuitosgeneradores

Como se ha visto en las capturas obtenidas no parece existir ninguna frecuencia


dominantedeamplitudconsiderablerespectoalasealdelruido.Porelloestegeneradorde
ruidoblancoaventajaalanteriormentecomentadodelresistor.
Estehechoseconfirmatrasobservarlasealendominiofrecuencial,visualizandoen
el osciloscopio la imagen de la transformada de Fourier de la seal. Esta imagen no se ha
podidoadjuntardebidoaqueelsoftwarenopermitelatransferenciadelosdatosobtenidos
endominiofrecuencial.

Elinconvenienteeselsiguiente:lasamplitudesobtenidassonmuypequeas,nollegan
ni a la decena de milivoltios. Adems, estas amplitudes cercanas a la decena de mili voltios
correspondenalosvaloresmximosmostradosenlascapturas.
Es decir, la mayor parte de la seal se encuentra en un rango de tensin de 3 mV.
Como se comentar posteriormente, el hecho de tener estos picos de amplitud en la seal
puedesuponerunproblemaparalageneracindelosnmerosaleatorios.

3.4.3

Generadorcontransistorbipolar

Lasprimerascincocapturasestntomadasconunmismotime/divde100ns/div,que
eselvalormnimodetime/divparaobservarlaseallomsdetalladamenteposible:

Captura21:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=100ns/div
V/div=10mV/div
Vmax=28,8mV
Vmin=12,4mV
Vmed=0,408mV

Captura22:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=100ns/div
V/div=10mV/div
Vmax=17,6mV
Vmin=15,6mV
Vmed=6,229mV
34

Generadordenmerosaleatorios

Circuitosgeneradores

Captura23:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=100ns/div
V/div=10mV/div
Vmax=24,8mV
Vmin=15,2mV
Vmed=1,853mV

Captura24:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=100ns/div
V/div=10mV/div
Vmax=18,4mV
Vmin=14,0mV
Vmed=2,118mV

Captura25:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=100ns/div
V/div=10mV/div
Vmax=24,4mV
Vmin=14,4mV
Vmed=0,930mV
Tabla9:Medicionesrealizadasconosciloscopioparaelgeneradorcontransistorbipolar

Comosepuedeobservar,losresultadosobtenidosaparentansersatisfactoriosporque
adems de que no parece haber ninguna frecuencia dominante (como era el caso del
generadorconresistor),lasealtieneunamayoramplitudqueelgeneradorcondiodoZener.

35

Generadordenmerosaleatorios

Circuitosgeneradores

Captura26:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=250ns/div
V/div=10mV/div
Vmax=27,2mV
Vmin=16,4mV
Vmed=0,772mV

Captura27:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=250ns/div
V/div=10mV/div
Vmax=25,2mV
Vmin=15,6mV
Vmed=3,231mV
Tabla10:Medicionesrealizadasconosciloscopioparaelgeneradorcontransistorbipolar

Se puede observar que no aparecen frecuencias dominantes por simple inspeccin.


EstehechosecorroborarmediantelatransformadadeFourier.Lasealparecequetieneuna
tendenciaatenerunatensinmedianegativa.
A continuacin se adjuntan las capturas correspondientes a diferentes time/div de
valor superior a los expuestos hasta el momento, con el fin de determinar si existe alguna
frecuenciadominante:

Captura28:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=1s/div
V/div=10mV/div
Vmax=32,0mV
Vmin=24,0mV
Vmed=0,334mV
36

Generadordenmerosaleatorios

Circuitosgeneradores

Captura29:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=10s/div
V/div=10mV/div
Vmax=35,6mV
Vmin=21,6mV
Vmed=0,153mV

Captura30:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=100s/div
V/div=10mV/div
Vmax=37,6mV
Vmin=18,4mV
Vmed=0,128mV

Captura31:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=1ms/div
V/div=10mV/div
Vmax=38,4mV
Vmin=21,1mV
Vmed=0,894mV

37

Generadordenmerosaleatorios

Circuitosgeneradores

Captura32:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=10ms/div
V/div=10mV/div
Vmax=39,6mV
Vmin=19,6mV
Vmed=0,369mV
Tabla11:Medicionesrealizadasconosciloscopioparaelgeneradorcontransistorbipolar

Estecircuitoobtienemejoresresultadosporlosdossiguientesaspectos:

En primer lugar, no aparece ninguna frecuencia dominante como era el caso del
generadorconresistor.Estehechoquesepuedeobservarporsimpleinspeccinseha
corroboradoutilizandolafuncindelosciloscoipiodelatransformadadeFourier.De
esta forma se ha observado que en dominio frecuencial el espectro de la seal
correspondealdeunruidoblanco.

Ensegundolugar,lasamplitudesdelruidosonmayoresqueenelgeneradorcondiodo
Zener,yademslosvaloresmximosymnimosdetensinnocorrespondenapicos
deamplitudpuntualessinoquelamayorpartedelasealposeeunaamplituddeunas
pocasdecenasdemilivoltios.

Una vez analizados los tres generadores de ruido, podemos establecer las primeras
conclusiones:

Enprimerlugar,elgeneradorderuidoconresistorparecenoserunabuenaopcinen
cuantoalaobtencindelruidoblancopuestoqueexistendosfrecuenciasdominantes
enlasealobtenida.AnasserealizarnlaspruebaspertinentesconMatlabantesde
descartarestegenerador.

En segundo lugar, tanto el generador con diodo Zener como el generador con
transistor bipolar nos han permitido obtener unos buenos resultados preliminares.
Amboscasoscarecendefrecuenciasdominantes.

En tercer lugar, entre el generador con diodo Zener y el generador con transistor
bipolar existe una clara diferencia: la amplitud de la seal de ruido obtenida. Esta
diferencia puede resultar determinante cuando se trate de adecuar las amplitudes
obtenidasaunnivelde0Va5Vporquecuantomenorsealaamplituddelasealde
entrada a la etapa amplificadora, mayor ser la posibilidad de que este ruido se
coloreedebidoalafiltracindelaalimentacinenelamplificadoroperacional.
38

Generadordenmerosaleatorios

Circuitosgeneradores

Referencias:
[1]Maxim.BuildingaLowCostWhiteNoiseGenerator.[Pginawebonline].Publicadoel14de
marzode2005[fechadeconsulta:17042011][Accesogratuito]
<http://pdfserv.maximic.com/en/an/AN3469.pdf>
[2] Universitt Bonn. White noise source. [Pgina web online]. Ren Schmitz, publicado en
1999[fechadeconsulta:25042011][Accesogratuito]
<http://www.unibonn.de/~uzs159/noise.html>
[3] Wikipedia. Ruido Gaussiano. [Pgina web online]. Publicado el 17 de febrero de 2006,
ltimaactualizacinel16demayode2011[fechadeconsulta:25042011][Accesogratuito]
<http://es.wikipedia.org/wiki/Ruido_gaussiano>
[4]LlobetValero,Eduard(2010)[PDF]AsignaturadesegundocursoElectrnicaanalgicade
la carrera Ingeniera Tcnica Industrial Especializacin en Electrnica de la Escuela Tcnica
SuperiordeIngenieradelaUniversidadRovirayVirgili.
[5]National.Lm741Datasheet.[Pginawebonline,documentoPDF][Accesogratuito]
<http://www.national.com/ds/LM/LM741.pdf>
[6] Wikipedia. Serie de Taylor. [Pgina web online]. Publicado el 3 de abril de 2004, ltima
actualizacinel16dejuliode2011[fechadeconsulta:29082011][Accesogratuito]
<http://es.wikipedia.org/wiki/Serie_de_Taylor>
[7]Wikipedia.Frecuenciademuestreo.[Pginawebonline].Publicadoel4demayode2005,
ltimaactualizacinel13dejuliode2011[fechadeconsulta:29082011][Accesogratuito]
<http://es.wikipedia.org/wiki/Frecuencia_de_muestreo#Efecto_aliasing>
[8]Farnell.AD626ANZDatasheet.[Pginawebonline,documentoPDF][Accesogratuito]
<http://www.farnell.com/datasheets/77945.pdf>
[9]Electropaedia.SemiconductorsWithouttheQuantumPhysics.[Pginawebonline].[fecha
deconsulta:5082011][Accesogratuito]
<http://www.mpoweruk.com/semiconductors.htm>
[10]Maxim.MAX2650Datasheet.[Pginawebonline,documentoPDF][Accesogratuito]
<http://www.datasheetcatalog.org/datasheet/maxim/MAX2650.pdf>
[11]Generalsemiconductors.1n759Datasheet.[Pginawebonline,documentoPDF][Acceso
gratuito]
<http://www.datasheetcatalog.org/datasheet/GeneralSemiconductor/mXrxxxz.pdf>
39

Generadordenmerosaleatorios
Circuitosgeneradores

[12]Fairchild.BC548Datasheet.[Pginawebonline,documentoPDF][Accesogratuito]
<http://www.fairchildsemi.com/ds/BC/BC547.pdf>
[13]Webelectronica.Generadorderuidoparaefectosespeciales.[Pginawebonline].[fecha
deconsulta:29042011][Accesogratuito]
<http://www.clubse.com.ar/DIEGO/NOTAS/2/nota03.htm>
[14]Owon.PDSseries.[Pginawebonline].[Accesogratuito]
<http://www.owon.com.cn/eng/pdsSeries.asp>
[15]Forosdeelectronica.Alimentacinamplificadoresoperacionales.[Pginawebonline].Jose
Zarate, publicado el 7 de septiembre de 2006, ltima actualizacin el 16 de agosto de 2010
[fechadeconsulta:2052011][Accesogratuito]
<http://www.forosdeelectronica.com/f27/alimentacionamplificadoresoperacionales3141/>

40

Generadordenmerosaleatorios

Adecuacindelaseal

4 Adecuacindelaseal
4.1

Circuitosutilizadosparalaadecuacin

Debemosadecuarlassealesalrangodelecturadelaentradadelconversoranalgico
adigitaldelmicrocontrolador.
El microcontrolador utilizado, modelo PIC18F2455, se puede programar para
seleccionarelrangodevoltajedeentradadelconversoranalgicoadigital.Deestamanerano
seranecesarioamplificar lassealesdelosgeneradoresderuido,ypodramosevitarquela
amplificacin coloreara el ruido blanco. El problema es que atendiendo a las caractersticas
elctricas de este microcontrolador [1], la diferencia entre los valores mximo y mnimo de
referenciadebeser,comomnimo,de3V.
Porelloesnecesarioadecuarlassealesdeloscircuitosgeneradoresderuidoalrango
deentradadelconversoranalgicoadigitaldelmicrocontrolador,queserde+5Vrespectoa
latensindereferencia.
Paraadecuarlassealesobtenidasdeloscircuitosgeneradoresderuido,sedebern
realizar dos acciones descritas a continuacin, que sern amplificar la seal obtenida de los
circuitosgeneradoresderuidoyaadirleunatensincontinua.Unaprimeraideadelporqu
deestasdosaccionessepuedeintuirenlafigura14.

Figura14:Adecuacindelaseal
Antes de explicar las acciones que se van a realizar, debemos decidir que dispositivo
(amplificadoroperacional)seutilizar,puestoqueenfuncindeldispositivodispondremosde
unascaractersticasodeotras.
Losamplificadoresescogidossonlossiguientes:enprimerlugar,el741CN[2]queyase
haba utilizado en el caso del generador con resistor. Es un amplificador de uso
general.Ensegundolugar,despusdeconsultarcatlogosdediversosfabricantes,se
hadeterminadoqueelmejordispositivoparalaaplicacinquevamosarealizaresel
modelo LT1226 LNA [3]. Para la eleccin se han tenido en cuenta los siguientes
criterios:

elproductogananciaporanchodebanda,
elPSRR(PowerSupplyRejectionRatio,ofactorderechazoalaalimentacin),
elCMRR(ComonModeRejectionRatio,ofactorderechazoalmodocomn)
laimpedanciadelasentradas,
41

Generadordenmerosaleatorios
Adecuacindelaseal

elslewrate
Como se puede observar, los primeros cuatro criterios son los mismos que en la
comparacinrealizadaanteriormenteparaescogerunamplificadoroperacional741CNobien
elamplificadordiferencialAD626.Lanicadiferenciaeselltimocriterio,yestanimportante
comocualquieradelosotros.

Lascaractersticasquesehancomparadodeambosdispositivosonlassiguientes:
Factorquesecompara
GBW
PSRR
CMRR
InputResistance
Slewrate

741CN
LT1226LNA
1.5MHz
1GHz
96dB
94dB
90dB
94dB
2M
40M
0.5V/s
400V/s
Tabla12:ComparacinentreelA.O.741CNyelA.O.LT1226LNA

Lasdiferenciasmsnotoriasestnenelproductogananciaporanchodebanda,enla
resistenciadelasentradasyenelslewrate.
Acontinuacinsedetallaenquafectacadaunodeestosfactoresenlaaplicacinque
seestdesarrollando:

Resistenciadeentrada:

LaresistenciadeentradadelLT1226LNAes20vecessuperioraladel741CN.Apriori
puede parecer un factor decisivo en la decisin, puesto que en el caso del generador con
resistencias podramos utilizar resistencias de valor ms elevado (para obtener una mayor
amplituddesealderuido).

Perosedebetenerencuentaqueelelementoquelimitalosvaloresdelasresistencias
generadoras de ruido no es el amplificador restador, sino el microcontrolador, porque las
impedanciasdeentradadeestedispositivosondeunaspocasdecenasdek,yporesemotivo
nopodremosponerresistenciasdevalormuyelevadoenlageneracindelruido.Porlotanto,
las caractersticas del amplificador operacional 741CN en cuanto a resistencia de entrada
cumplen los requisitos deseados, sin ser necesario recurrir a un amplificador ms especfico
comopuedaserelLT1226LNA.

Productogananciaporanchodebanda:
Peseaqueladiferenciadevaloresesmsquenotable,prcticamentetresrdenesde
magnituddediferencia,sedebetenerencuentaquelafrecuenciamximademuestreoesde
1kHz.
Como se ha explicado anteriormente, si el doble de la frecuencia de muestreo es
inferior al ancho de banda, si el ruido situado en el intervalo desde 0 hasta el doble de la
frecuenciademuestreoesruidoblanco,esteruidoblancoseextenderportodoelespectro
defrecuencias.

42

Generadordenmerosaleatorios
Adecuacindelaseal

Porlotanto,silafrecuenciamximademuestreodeterminadaenesteproyectoesde
1 kHz, se necesita como mnimo un ancho de banda de 0,5 kHz para poder obtener ruido
blancoenelmuestreoamayorfrecuencia.
Conelamplificadoroperacional741CNsepuedeobtenerunanchodebandasuficiente
para la aplicacin realizada, segn la ganancia necesaria, tal y como se explicar
posteriormente.

Slewrate:

Estefactortienelamismaimportanciaquelosanteriores,debidoalsiguientemotivo:
tomamos como referencia el valor de slewrate del 741CN, que es de 0,5 V/s. En la ltima
etapa la tensin puede tener una variacin de 0 V a 5 V en el peor de los casos. Para esta
variacin, obtendramos un valor de tiempo de 10 s, que corresponde a una frecuencia de
100kHz.
Esta frecuencia se encuentra muy por encima de la frecuencia de muestreo, y
aplicandolocomentadoanteriormentesobrelaextensindelruidoenbandalimitadaatodo
elespectro,puededeterminarsequeelamplificadoroperacional741CNcumplelosrequisitos
paralaaplicacindesarrollada.
Porlotanto,sepuedeestablecerlasiguienteconclusin:noesnecesariorecurriraun
amplificador operacional con grandes caractersticas, como pueda ser el LT1226 LNA, que
supone un coste unitario de 6,70 . Con un amplificador operacional de uso general como
puede ser el 741CN, que tiene un precio unitario de 0,35 obtenemos unas caractersticas
adecuadasparalafinalidaddeseada.
Enqucasoseraconvenienterecurriraesteotrodispositivo,elLT1226LNA?Encaso
dequeserequieraunavelocidadsuperiordemuestreo,esdecir,enfrecuenciasdemuestreo
superioresa1kHz.Enestoscasosestedispositivoserasindudalamejoropcinparaescoger.
Enelcaptulo11enelquesecomentanlasposiblesmejorassedetallarestetema.
Una vez determinado el dispositivo que se va a utilizar, se describirn los circuitos
utilizadosparalaadecuacindelasealobtenidadelosgeneradoresderuido.
Enprimerlugar,sedebeamplificarlasealdebidoaqueenelmejordeloscasoslos
valores de seal obtenidos eran de decenas de mili voltios, como se ha visto en las pruebas
realizadasanteriormente.
Se deber amplificar lo suficiente como para convertir la seal de entrada que
provienedelosgeneradoresaunasealquetengaunaamplitudentreextremosde5V,para
poderobtenertodoelrangodevaloresposibleenlalecturadelmicrocontrolador.
Para realizar esta amplificacin se tiene en cuenta la decisin tomada sobre la
frecuencia mxima que utilizaramos para muestrear, que es de1 kHz. Por ello, necesitamos
queelanchodebandadelcircuitosea,comomnimo,de2kHz.Eseeselvalormnimo,perola

43

Generadordenmerosaleatorios
Adecuacindelaseal

mejoropcinserestablecerunmargendeseguridad,yutilizarcomomnimouncircuitocon
unanchodebandade10kHz.
Para ello, deberemos tener en cuenta el factor ganancia por ancho de banda del
amplificadoroperacionalutilizado.Esteamplificador,modelo741CN,tieneunanchodebanda
de1,5MHzparagananciaunitaria,esdecir,elproductoG*BWesde1,5MHz.Estosvalores
hansidoextradosdeldatasheetdeestecomponente[2].
Para realizar la fase de amplificacin, se utilizar el mismo circuito amplificador para
lostresgeneradoresderuido.Deestesedeberaobtenerlamismacoloracindelasseales
de los generadores. La finalidad es poder comparar los tres generadores en igualdad de
condiciones,siempreycuandoseaposible.
Porello,laamplificacinsebasaenelgeneradorquetengalasamplitudesmsbajas
deruido,queserelgeneradorcondiodoZener,cuyasamplitudesnoalcanzanladecenade
milivoltios.Porellonecesitaremosunfactordeamplificacinde:

Con esta ganancia y conociendo que el producto ganancia por ancho de banda del
amplificadoresconstante,elanchodebandadelcircuitoquedarareducidoa6kHz.Comose
hacomentadoanteriormente,lamejoropcineraestablecerunmargenencuandoalancho
de banda del circuito, para tener un mnimo de 10 kHz. Por ello se ha dividido la etapa de
amplificacinendosetapas,delascualesunatieneunagananciafijade100ylaotratieneuna
gananciavariable,quesepuederegularmedianteunpotencimetroutilizadocomoresistencia
devalorvariable.Lagananciamnimadelaetaparegulableesunitaria.
Elsegundofactorquehacondicionadoestadecisineselsiguiente:porelmomento
todos los clculos realizados son terico. En la parte prctica se deber realizar algn ajuste
paralaganancia,teniendoencuentaquecadageneradornecesitarunagananciadistinta.
Losclculostericosyloscircuitosimplementadospuedenconsultarseenelanexo1.
Ensegundolugar,sedebeaadirunatensincontinuaalasealamplificada.
Enlaspruebasrealizadasenelcaptuloanteriorsepuedeverquelassealesobtenidas
delosgeneradorestienenunatensinmediacercanaalos0V.Lassealesestncentradasen
0V,aexcepcindelamplificadorcontransistorbipolar,quetienelamayorpartedelosvalores
desealenelsemiejepositivodevoltaje.
Como consecuencia, cuando se amplifiquen estas seales continuarn teniendo una
partedetensinnegativa.
La finalidad de esta segunda fase de adecuacin es aadir a la seal del generador
amplificada una tensin continua de valor variable para obtener una seal con valores
comprendidosentre0Vy+5V.

44

Generadordenmerosaleatorios
Adecuacindelaseal

Sinoseaadeestapartedetensincontinua,comoelrangodetensionesdeentrada
del conversor analgicodigital del microcontrolador est entre 0 V y 5 V, las tensiones
negativasseinterpretarancomo0Vyestaramosobteniendomuchosvaloresenlalecturade
0V,disminuyendolacalidaddelgeneradordenmerosaleatorios.

Paraaadirunvalordetensincontinuaalasealseutilizalos+6Vutilizadosenla
alimentacin del amplificador operacional. Se implementar una estructura con un
amplificadoroperacional,queserladeunsumadornoinversor,cuyosclculosseencuentran
enenelanexo3[4].

Elcircuitoobtenidoparalafasedeadecuacineselsiguiente:

Figura15:Circuitodeadecuacin

Acontinuacinsemostrarnlosresultadosobtenidosconelosciloscopiodespusdela
fasedeadecuacindelasdistintassealesconcadageneradoraunosvalorescomprendidos
entrelareferenciaomasavirtualylos+5V.

Estas capturas se han obtenido con distintos valores de time/div por los mismos
motivosqueseplantearonenlasanteriorescapturasdelosgeneradoresderuido.

45

Generadordenmerosaleatorios

4.2

Adecuacindelaseal

Generadorconresistor

A continuacin se adjuntan las capturas obtenidas tras la adecuacin de la seal del


generadorbasadoenelelementoresistor:

Captura33:Imagendeosciloscopiodelgeneradorconresistor
Time/div=25s/div
V/div=2V/div
Vmax=3,76mV
Vmin=800mV
Vmed=2,163mV

Captura34:Imagendeosciloscopiodelgeneradorconresistor
Time/div=25s/div
V/div=2V/div
Vmax=3,52mV
Vmin=800mV
Vmed=2,010mV
Tabla13:Medicionesrealizadasconosciloscopioparaelgeneradorconresistor

Comparando las dos imgenes anteriores con las imgenes que se obtenan antes de
utilizarelcircuitodeadecuacinsepuedeobservarlasiguientediferencia:
Sinutilizarelcircuitodeadecuacin,lasprimerascapturasseobtienenconunvalorde
time/div de 1 s/div. Utilizando el circuito de adecuacin, las primeras capturas se obtienen
conuntime/divde25s/div.
Debidoalslewratedelamplificadoroperacional,paraobservarlasealconunnivelde
detallelomsparecidoposiblealobtenidoenlaetapadegeneracindelruido,sehatenido
queaumentarelfactortime/divhasta25s/div.

46

Generadordenmerosaleatorios

Adecuacindelaseal

Captura35:Imagendeosciloscopiodelgeneradorconresistor
Time/div=25s/div
V/div=2V/div
Vmax=4,08mV
Vmin=800mV
Vmed=2,232mV

Captura36:Imagendeosciloscopiodelgeneradorconresistor
Time/div=100s/div
V/div=2V/div
Vmax=3,84mV
Vmin=240mV
Vmed=2,159mV

Captura37:Imagendeosciloscopiodelgeneradorconresistor
Time/div=1ms/div
V/div=2V/div
Vmax=3,76mV
Vmin=560mV
Vmed=2,158mV

Captura38:Imagendeosciloscopiodelgeneradorconresistor
Time/div=10ms/div
V/div=2V/div
Vmax=4,88mV
Vmin=140mV
Vmed=2,140mV
Tabla14:Medicionesrealizadasconosciloscopioparaelgeneradorconresistor
47

Generadordenmerosaleatorios
Adecuacindelaseal

Como se puede observar en las anteriores capturas, las amplitudes en todas las
imgenesaexcepcindelaltimaestnentre240mVy4.08V.Sepodrahaberoptadopor
llegaraunniveldesealdemayoramplitud,de0Va+5V.
Sehaoptadoporestaopcindebidoalosiguiente:comovemosenlaltimaimagen,
existenunaseriedevaloresmximosymnimosrepetitivosquetienenunperiodode20ms,
es decir, una frecuencia de 50 Hz, cuyo origen posiblemente venga de la fuente de
alimentacin.Siseamplificamslaseal,apareceraelsiguienteproblema:

Figura16:Saturacindelaseal
Alamplificarlaseallosvaloresextremosdemximosymnimossesaturarandebido
aquelosamplificadoresoperacionalessealimentana5V.Laposibilidaddeobtener+5Vo0
Vseramuchomayor.
Enelcasocontrario,sinamplificarlaseal,seobtieneunagrficamsparecidaalade
laizquierdadelaimagenanterior.Laposibilidaddeobtenervalorescercanosa0Vya+5V
disminuira,locualtambinsuponeunproblema.
Con la opcin de la grfica de la derecha (saturando la seal) se obtendran mejores
resultadosenelestudiodelaautocorrelacinporqueconlaintroduccindemuchosvalores
0 se obtiene un mejor coeficiente de autocorrelacin. El problema es que la posibilidad de
obtenerlosvaloresdelosextremosesmselevada.Porejemplo,silaaplicacinutilizadafuera
la de un dado electrnico, comportara un menor riesgo apostar al valor 1 y al 6 porque
tendranmsposibilidadesdesuceder.
Esteproblemaquesehacomentadosobreladificultadque comportanlospicosdela
seal se repetir en los dos siguientes generadores, y la opcin escogida en todos los casos
serlasiguiente:intentarobtenerunospicosconvaloresmuycercanosalosextremos(0Vy
+5V)perosinllegarasaturarlaseal.
Por ltimo, se puede ver que los valores medios de la seal no se encuentran en la
mitaddelrango,quesera2,5V,sinoquesesituanen2V.Elproblemaresideenquelospicos
devalorescercanosalos5Vsonmselevadosquelospicosdevalorescercanosalos0V.Por
ellosealcanzaraanteslasaturacina+5Vquea0V.Paraevitarlosehatenidoquedisminuir
latensinmedia.
Veamos a continuacin los resultados obtenidos tras la adecuacin de la seal del
generadorcondiodoZener.
48

Generadordenmerosaleatorios

4.3

Adecuacindelaseal

GeneradorcondiodoZener

A continuacin se adjuntan las capturas obtenidas tras la adecuacin de la seal del


generadorbasadoeneldiodoZener:

Captura39:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=100s/div
V/div=2V/div
Vmax=5,28V
Vmin=1,76mV
Vmed=3,021mV

Captura40:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=100s/div
V/div=2V/div
Vmax=5,20V
Vmin=160mV
Vmed=3,047mV
Tabla15:MedicionesrealizadasconosciloscopioparaelgeneradorcondiodoZener

Como se puede ver en ambas imgenes, la seal est saturada. En este caso, el
problemaexistenteesquetenemosunasealcuyosvaloressonmuypequeos,yunospicos
conunvalormuyelevadosenrelacinalosvaloresdelaseal.
Acontinuacinseadjuntantodaslascapturasde estegenerador,yposteriormentese
detallarelproblemaexistenteconlospicosdeestaseal.

49

Generadordenmerosaleatorios

Adecuacindelaseal

Captura41:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=100s/div
V/div=2V/div
Vmax=5,20V
Vmin=0mV
Vmed=3,128mV

Captura42:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=100s/div
V/div=2V/div
Vmax=5,20V
Vmin=480mV
Vmed=3,148mV

Captura43:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=250s/div
V/div=2V/div
Vmax=5,04V
Vmin=400mV
Vmed=2,785mV

50

Generadordenmerosaleatorios

Adecuacindelaseal

Captura44:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=250s/div
V/div=2V/div
Vmax=5,04V
Vmin=560mV
Vmed=2,769mV

Captura45:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=1ms/div
V/div=2V/div
Vmax=5,20V
Vmin=0mV
Vmed=3,087mV

Captura46:ImagendeosciloscopiodelgeneradorcondiodoZener
Time/div=10ms/div
V/div=2V/div
Vmax=5,20V
Vmin=460mV
Vmed=3,284mV
Tabla16:MedicionesrealizadasconosciloscopioparaelgeneradorcondiodoZener

51

Generadordenmerosaleatorios
Adecuacindelaseal

Enlasimagenescapturadassepuedenrealizarlassiguientesobservaciones:
Enprimerlugar,pesealaaparentealeatoriedaddelasealobtenidaenlasprimeras
Imagenesqueestabantomadasconvaloresdetime/divmspequeos,sehapodidoobservar
enlasdosltimasImagenesqueexisteunafrecuenciade50Hz,correspondienteaunperiodo
de20ms,queposiblementetengasuorigenenlafuentedealimentacin.
Adiferenciadelgeneradorconresistor,enestecasosevecomolasealobtenidadel
generadordelruidopareceestarsumadaaunasealde50Hz.Esteproblemaesdebidoaque
la seal que tenemos en el generador con diodo Zener tiene unos valores de pocos mV, de
forma que es ms fcil que se coloree que las otras seales que contaban con mayores
amplitudesdeseal.
En segundo lugar, en este caso la tensin media es de 3 V aproximadamente. A
diferencia del generador con resistor, en este caso los picos que tienen unos valores ms
distantesdelamediadelasealsonlosqueseencuentranmscercanosalos0V,comose
puedeverenlaltimaimagen.
Paraevitarlaposibilidaddeobtenermsvaloresde0Venlaslecturas,sehadecidido
aumentarelvalormediodelaseal.Deestamanera,lamayoradelosvaloresobtenidosse
encontraranentre2Vy5V.
Por ltimo se adjuntan los resultados obtenidos tras la adecuacin de la seal
generadaporeltransistorbipolar,conelqueseesperanobtenerunosmejoresresultados.

4.4

Generadorcontransistorbipolar

A continuacin se adjuntan las capturas obtenidas tras la adecuacin de la seal del


generadorbasadoeneltransistorbipolar:

Captura47:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=25s/div
V/div=2V/div
Vmax=5,04V
Vmin=80mV
Vmed=2,547mV

52

Generadordenmerosaleatorios

Adecuacindelaseal

Captura48:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=25s/div
V/div=2V/div
Vmax=4,48V
Vmin=880mV
Vmed=2,449mV
Tabla17:Medicionesrealizadasconosciloscopioparaelgeneradorcontransistorbipolar

TalycomosepuedeobservarenestasdosprimerasImagenes,estegeneradorparece
responderalasexpectativasgeneradas,manteniendounatensinmediamuycercanaa2,5V
yunasealdegranamplitud.
Unodelosproblemasexistentesenlosdosanterioresgeneradoreseraquelamayora
delosvaloresdelasealseencontrabanenunrangode1,5Va3,5V,ynosepodaaumentar
esterangoporquehabaunospocosvaloresquellegabanalos0Vy5V.Encambio,eneste
generadorcontransistorbipolarlamayoradelosvaloresseencuentranenunrangode0,5V
a4,5V.
Porlotantosuponeunamejorarespectoalosdosotrosgeneradores.
A continuacin se adjuntan el resto de las capturas realizadas con la finalidad de
analizar si existe alguna frecuencia dominante, como han aparecido en los generadores
anteriores,yposteriormenteseanalizarnlosresultadosobtenidos.

Captura49:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=25s/div
V/div=2V/div
Vmax=4,16V
Vmin=80mV
Vmed=2,481mV

53

Generadordenmerosaleatorios

Adecuacindelaseal

Captura50:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=25s/div
V/div=2V/div
Vmax=5,12V
Vmin=80mV
Vmed=2,523mV

Captura51:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=50s/div
V/div=2V/div
Vmax=5,12V
Vmin=160mV
Vmed=2,609mV

Captura52:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=50s/div
V/div=2V/div
Vmax=5,12V
Vmin=80mV
Vmed=2,512mV

54

Generadordenmerosaleatorios

Adecuacindelaseal

Captura53:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=100s/div
V/div=2V/div
Vmax=4,72V
Vmin=80mV
Vmed=2,484mV

Captura54:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=1ms/div
V/div=2V/div
Vmax=5,2V
Vmin=480mV
Vmed=2,476mV

Captura55:Imagendeosciloscopiodelgeneradorcontransistorbipolar
Time/div=10ms/div
V/div=2V/div
Vmax=5,2V
Vmin=160mV
Vmed=2,495mV
Tabla18:Medicionesrealizadasconosciloscopioparaelgeneradorcontransistorbipolar

55

Generadordenmerosaleatorios
Adecuacindelaseal

La seal obtenida es de mayor calidad que las de los otros generadores por los
siguientesaspectos:

En primer lugar, la tensin media se mantiene cercana a 2,5 V, tal y como se haba
introducidotraslasdosprimerascapturasobtenidas.

Ensegundolugar,laamplituddelaseal,sintenerencuentalosvaloresextremos,es
muchomayorqueenlosotrosdosgeneradores,abarcandoprcticamentedesde0,5V
hasta4,5V.

Entercerlugar,lospicosqueseobtienennosondevalorestandistantesdelosvalores
mediosdelaseal,porloquelasaturacina0Vo+5Vsedaencontadasocasiones.
Porejemplo,enlaimagenquetieneuntime/divde1ms/div,sepuedeverqueelvalor
de0Vseobtieneen7ocasiones,teniendoencuentaqueentotaltenemosuntiempo
de10ms.

Porlotanto,alavistadelosresultadosobtenidosenlascapturasesdeesperarqueel
generadorcontransistorseaelquenosproporcionelosmejoresresultadosparalaaplicacin
desarrollada.
Apesardequeestegeneradorseaelquenosofrecelasmejorescaractersticas,sigue
existiendounproblema:lamayorpartedelasealseconcentraenelrangode0,5Va4,5V,
por lo que la obtencin de valores fuera de este rango tiene una menor probabilidad de
suceder.Porelloserealizaruncdigoespecficocomoseverposteriormente.
Unavezpresentadosloscircuitosgeneradoresdelasealaleatoria,elsiguientepaso
parapoderanalizarlosresultadosserlatransmisindelaseal.
Esta seal se muestrear de forma peridica por un microcontrolador, que leer el
valor de la seal mediante un conversor analgicodigital y lo enviar al PC utilizando una
comunicacinUSB.Porlotanto,siguiendounaestructurasecuencialenladescripcindeeste
proyecto,elsiguientepasosecentrarenelmicrocontrolador.

56

Generadordenmerosaleatorios

Adecuacindelaseal

Referencias:

Pginasweb:

[1] Microchip. PIC18F2455 Datasheet. [Pgina web online, documento PDF]. ltima
actualizacinel27deoctubrede2009[Accesogratuito].Pgina395,Parametro01.
<http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf>
[2]National.Lm741Datasheet.[Pginawebonline,documentoPDF][Accesogratuito]
<http://www.national.com/ds/LM/LM741.pdf>
[3] Linear Technology. LT1226 LNA Datasheet. [Pgina web online, documento PDF] [Acceso
gratuito]
<http://cds.linear.com/docs/Datasheet/lt1226.pdf>
[4]LlobetValero,Eduard(2010)[PDF]AsignaturadesegundocursoElectrnicaanalgicade
la carrera Ingeniera Tcnica Industrial Especializacin en Electrnica de la Escuela Tcnica
SuperiordeIngenieradelaUniversidadRovirayVirgili.

57

Generadordenmerosaleatorios

Adquisicindelasmuestras

5 Adquisicindelasmuestras

Una vez generadas las seales de ruido blanco, el siguiente paso consiste en la
adquisicindemuestrasutilizandoelmicrocontroladoryposteriormenteelenvodeestasal
PC,dondeseprocesarnconelentornomatemticoMatlab.
Para realizar la adquisicin, y el envo de las muestras por comunicacin USB, se ha
utilizado un proyecto de cdigo libre disponible en la pgina de mathworks.com [1]. Este
proyecto ha sido creado por Gabriel Jess Pool Balam, estudiante de la Escuela Modelo de
Yucatn,Mjico.
En primer lugar se ha construido el siguiente circuito para el funcionamiento del
microcontrolador:

Figura17:Esquemacircuitaldelaplacadelmicrocontrolador[1]

A continuacin, se ha modificado el cdigo del microcontrolador. Este cdigo est


escritoenlenguajeC,yseutilizaelcompiladorCCSPCWHCompiler,versin4.023.
LasmodificacionessehanrealizadosobreelcdigonombradoEjemplo2delproyecto
original.Estasmodificacionessehanrealizadodebidoaqueesteproyectodecdigolibreest
creadoconunafinalidadmuygeneral,yporellotienemltiplesfuncionesimplementadas.
Detodaslasfuncionesquetienelasnicasquesehanutilizadosonlacomunicacin
por USB entre el microcontrolador y el PC y la lectura del dato utilizando el conversor
analgicodigital.

58

Generadordenmerosaleatorios
Adquisicindelasmuestras

El cdigo modificado se encuentra disponible en el anexo 4, y a continuacin se


describen las partes bsicas de su funcionamiento, as como el funcionamiento global del
cdigo.
Las dos funciones bsicas que realiza este cdigo son las siguientes: leer un valor
utilizando el conversor analgicodigital y transferir datos por comunicacin USB. A
continuacinsedescribenlospasosrealizadosencadaunadeestasfunciones.

Lecturadeunvalorutilizandoelconversoranalgicodigital:

SeconfiguraelpuertoAcomoentradas.
TRISA

= 0x0FF;

Seescogeelpin0delpuertoAcomoentradaanalgica.
setup_adc_ports(AN0);

Seindicaelrangodevoltajedeestaentrada(deVssaVdd:de0Va+5V).

Seindicaqupinutilizarelconversoranalgicodigital.

Seindicalafrecuenciaqueusarelrelojdelconversor.

setup_adc( VSS_VDD );
set_adc_channel( 0 );
setup_adc( ADC_CLOCK_div_16 );

Esteltimopuntoesunodelosmsimportantesencuantoalasposiblesmejoraso
modificaciones que se podran realizar en este proyecto, porque es la frecuencia a la que
puede trabajar el conversor, que es el factor que limitara la velocidad en caso de querer
utilizarlamximavelocidadposibledemuestreo.
Los cinco puntos anteriores tratan la configuracin del conversor. Los siguientes
puntostratanelusodelconversorparalaadquisicindelosvalores.Estaslneasdecdigose
encuentran dentro de la funcin principal del cdigo, y solo se van a ejecutar si el PC ha
enviadoundatoalPIC.Estaconsignaeslaqueservirparaqueelconversoranalgicodigital
empiecelaconversin.

SedalaordenalconversorA/Dparaqueempiecelalecturadelvalor.
read_adc(ADC_START_ONLY);

Esperamosaquefinalicelaconversin.
while (bit_test(ADCON0,1));

Guardamoselvalordelaconversinenlavariableentrada.
entrada = read_adc(ADC_READ_ONLY);

ComolatransferenciaporUSBsevaarealizarenpaquetesde8bits,sedebe
adecuareldatoledoporelconversorqueesde10bits.Seguardaeldatoen
dosposicionesdelvectordato,quecontiene64posicionesdetamaobyte.
dato[0]= make8(entrada,0);
dato[1] = make8(entrada,1);

Conesteconversor,queesde10bits,seobtieneunrangodevaloresquevade0a
1023.ConunrangodevaloresdeVSSaVDD,cuyosvaloresson0Vy+5Vrespectivamente,se
obtienelasiguienteresolucin:
59

Generadordenmerosaleatorios

Adquisicindelasmuestras

Figura18:ConversinA/D
Aunque la grfica dibujada sea lineal por simplificacin, la forma de esta grfica
deberaserescalonada.Porlotanto,laresolucinserde:

En la ecuacin anterior, el valor de 1024 es el nmero de valores posibles que se


puedenobtener.

TransferenciaporUSB:

ParalatransferenciadelosdatosporUSBseutilizarelmtodoBulkDataTransfers.
Paraello,elprimerpasoconsisteenhabilitarlasentradasysalidasdedatosenestemtodode
transferenciaydefinireltamaodelbufferparaalmacenareldatotransferido:
#define
#define
#define
#define

USB_EP1_TX_ENABLE
USB_EP1_RX_ENABLE
USB_EP1_TX_SIZE
USB_EP1_RX_SIZE

USB_ENABLE_BULK
USB_ENABLE_BULK
64
64

El paso anterior corresponde a las inicializaciones. El siguiente paso trata la


comunicacin con el PC. Se debe esperar a que el PC haya reconocido al PIC como un
dispositivoUSBparaempezarlatransmisindelosdatos:
usb_init();
// Inicializamos el USB
usb_task();
// Habilita periferico usb e interrupciones
usb_wait_for_enumeration();
// Esperamos hasta que el PicUSB sea
configurado por el host

Elsiguientepasoseencuentradentrodelbuclequeseejecutaindefinidamenteenel
menprincipal.Paraempezararealizarlaconversinanalgicodigitalsedeberncumplirlas
siguientesdoscondiciones:
60

Generadordenmerosaleatorios

Adquisicindelasmuestras

if(usb_enumerated())
if (usb_kbhit(1))

// Si el PicUSB est configurado


// si el PC ha enviado un dato

AcontinuacinserealizaralaconversinyelenviodelosdatosalPC.
Porltimoyamododerecapitulacin,sedescribeelfuncionamientogeneral:
1.
2.
3.
4.
5.

Seenciendeelleddelpin6delpuertoB.
SeesperaaqueelPCreconozcaeldispositivoPICcomoUSB.
Seapagaelleddelpin6yseenciendeeldelpin7delmismopuerto.
SeconfiguraelADC.
Bucleprincipal:
a. SielPICestreconocidoporelPCyenumerado:
i. SielPChaenviadoundato:
1. Seguardaeldato.
2. SerealizalaadquisicinutilizandoelADC.
3. Seenvaeldato.

Lospasosdel1al4sonlasinicializaciones,soloserealizanunanicavezaliniciodel
cdigo.Elbucleprincipalseejecutaindefinidamente,siempreycuandoenlasinicializaciones
elPChayareconocidoeldispositivoPIC.
Cabe aclarar el siguiente aspecto: Cmo se puede realizar la adquisicin de valores
peridicamentesinoseutilizaningntimerenelcdigodelPIC?
Larespuestaeslasiguiente:elcdigodeMatlabeselencargadodegenerareltimer.
Este timer tiene una funcin asociada que enviar peridicamente un dato al PIC. Como se
acaba de ver, dentro del bucle principal del cdigo del PIC, se recibir el dato, se leer el
conversorA/Dyseenviareldatodelalectura.
El valor mnimo de periodo del timer de Matlab es de 1 ms. Como posible mejora
comentadaenelcaptulo11,sisedesearatrabajarporencimadeestevalordefrecuencia,se
deberaimplementareltimerenelPIC,yelcdigoenMatlabnicamenteenviaralaordende
comienzodeejecucucindelcdigodelPIC.Seobtendraelnmerodemuestrasdeseadasyel
valordelperiododeltimer(parmetrosquesepodranenviardesdeMatlab)yposteriormente
setransferirantodoslosvaloressecuencialmente.
Para grabar este cdigo en el PIC, se ha compilado con el compilador de CCS PCWH
Compiler,versin4.023,yunavezobtenidoelarchivo.hexsehautilizadoeldispositivoPICkit
2conelsoftwarePICkit2versin2.61.
Una vez descrito el cdigo del microcontrolador, el siguiente paso consistir en
describirlaconexinentreelPCyelmicrocontrolador.

61

Generadordenmerosaleatorios

Adquisicindelasmuestras

Referencias:
[1]: Mathworks. Comunicacin entre Matlab y PIC de MICROCHIP usando puerto USB.
[Pginawebonline].GabrielPool,publicadoel11dejuniode2009,ltimaactualizacinel
8deabrilde2010.[fechadeconsulta:10052011][Accesogratuito]
<http://www.mathworks.com/matlabcentral/fileexchange/24417comunicacionentrematlab
ypicdemicrochipusandopuertousb>

62

Generadordenmerosaleatorios

ConexindelPICconelPCporUSB2.0

6 ConexindelPICconelPCporUSB2.0

LaconexindelPICconelPCestbasadaenelproyectodecdigolibremencionado
enelcaptuloanterior.ElsistemaoperativoqueutilizaelPCesWindows7HomePremiumde
32 bits, con Service Pack 1. Este proyecto tambin funciona con un equipo que trabaje
utilizandounsistemaoperativoWindowsXP.EncadodeutilizarelsistemaoperativoWindows
Vistanofuncionar.
Para conectar nuestro equipo al dispositivo PIC se utilizan las funciones USB
disponiblesenelcompiladorCCS.Mediantelasfuncionesimplementadas,elPCreconoceral
PIC como un Custom Device (un dispositivo personalizado). La transferencia de datos entre
ambosequiposserdeuntamaode64bytesportransferencia.
EnelPCdeberemosdescargareinstalarlosdriversproporcionadosporMicrochippara
elreconocimientodeldispositivo[1].Serecomiendanomodificareldirectoriodeinstalacin.
Unavezconstruidoelcircuitoymodificadoelcdigo,sedebernrealizarlossiguientes
pasosparacomunicarelPCconelPIC:
En primer lugar, se ha realizado un cambio respecto al proyecto original por el
siguiente motivo: tras seguir los pasos descritos en el proyecto original, al conectar el
dispositivoPICalPC,stenoloreconocacomounCustomDevice,einstalabaelPICcomoun
dispositivoPlugandPlay,utilizandolosdriversasignadosporWindowspordefecto.
El problema estaba en los cdigos incluidos (header files) que se utilizaban en la
compilacin del cdigo de CCS (usb_desc_scope.h y usb_bootloader.h). Segn el proyecto
original,elcdigousb_desc_scope.hsemodificabaparaasignarleanuestroPICunosvalores
de vendor id, product id y device release number. Estos valores servan para que cuando se
conectaraelPICalPC,elPCinstalaraelPICconlosdriversquenoshabamosdescargadode
Microchip[1].
Parasolucionarelproblema,enlugardeutilizaresosdoscdigosseharecurridoaotro
proyectodisponibleenhobbypic.com[2].DebemosaccederallinknombradoPICUSB,quees
un enlace a una descarga del servidor de Megaupload. Al descargar este otro proyecto, el
archivoquenosinteresarseencuentraenlacarpetaPICUSBCCS,yestanombradoPICUSB.h.
Su funcin es la misma que la de los otros dos cdigos descartados, y gracias a este
cdigo se soluciona el problema del reconocimiento. La nica diferencia que presenta este
cdigounvalordeproductiddistinto.Estevaloresde0x0011,porloquecomoelproyecto
originaltenaunvalordistinto,deberemosmodificarestevalorposteriormenteenelcdigode
MatlabparaquefuncionecorrectamentelatransferenciadedatosaMatlab.
Enltimolugarhayquetenerencuentaquelaslibrerasqueseincluyenenelcdigo
debenestarsituadasenlamismacarpetaenlaqueestelcdigodeCCS.Encasocontrariola
comunicacinnofuncionarporquenoseasignarnloscorrespondientesvaloresdevendor
id,productidydevicereleasenumber.
63

Generadordenmerosaleatorios
ConexindelPICconelPCporUSB2.0

Porlotanto,unavezrealizadoslospasosanteriores,seconectareldispositivoPICal
PCenelpuertoUSB2.0.Unavezconectado,puedendarsedossituaciones:

QueelPCasigneautomticamentelosdriversdescargadosdeMicrochip[1]anuestro
PICyloinstalecomounCustomDriver.

Que el PC no asigne automticamente los drivers descargados de Microchip [1]. En


estecaso,nospedirladireccinenqueseencuentranestosdrivers.Estadireccin,si
nohemosmodificadoeldirectoriodeinstalacindelosdrivers,serlasiguiente:
C:\MICROCHIP SOLUTIONS\USB TOOLS\MCHPUSB CUSTOM\DRIVER\MCHPUSB
DRIVER\RELEASE

Enalgunasocasiones,traslaactualizacindelosdriversrealizadasporMicrochipensu
pgina web, es posible que al descargarlos la direccin especificada anteriormente no
corresponda exactamente a la direccin en que se encuentra ubicado el archivo para la
instalacin.Ladiferencianormalmenteseencuentranicamenteenelnombredelascarpetas,
porejemplo,enalgunasversionessustituyeronlacarpetaUSBTOOLSporUSB.

Unavezfinalizadalainstalacindeldriver,sepuedecomprobareldispositivoPICseha
instaladoyreconocidocorrectamente.Eneladministradordedispositivosdelequipoaparece
una pestaa con el nombre Custom USB Devices, y dentro de esta pestaa aparecer el
dispositivo con el nombre Microchip Custom USB Device. Se puede asegurar la correcta
instalacin haciendo un click secundario en el nombre del dispositivo y accediendo a las
Propiedades.Enestaspropiedades,enlapestaadeDetalles,enlaopcinId.deinstanciade
dispositivo debera aparecer los valores de vendor id y product id del dispositivo, que son
0x04D8y0x0011respectivamente.
Porlotanto,yaseharealizadolaconexinentreeldispositivoPIC18F2455yelPCpor
USB 2.0 correctamente. El siguiente paso ser analizar el cdigo utilizado en Matlab para la
recepcindelosdatos,sutratamientoyelestudiorealizadoparadeterminarlaaleatoriedad
delaseal,quecorrespondealestudiodelaautocorrelacin.
Elcdigocompletoseencuentradisponibleenelanexo4adjuntoaladocumentacin
delproyecto.

64

Generadordenmerosaleatorios

ConexindelPICconelPCporUSB2.0

Referencias:
[1]Microchip.MicrochipApplicationLibraries.[Pginawebonline].ltimaactualizacinel2de
juniode2011[fechadeconsulta:03072011][Accesogratuito]
<http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2896>
[2] Hobbypic. PicUSB. [Pgina web online]. ltima actualizacin el 24 de diciembre de 2005
[fechadeconsulta:05072011][Accesogratuito]
<http://www.hobbypic.com/>

65

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

7 TratamientodelosdatosconMatlab

Una vez construidos los circuitos generadores de ruido blanco, los circuitos de
adecuacin de la seal de los generadores, el circuito del microcontrolador y, una vez
establecida la comunicacin entre el dispositivo PIC y el PC, el ltimo paso que queda por
realizareselanlisisdelosdatos.
El anlisis de estos datos se realizar con el software de computacin y desarrollo
Matlab,desarrolladoporMatrixLaboratory.Estadecisinsehatomadoenbasealafacilidad
deimplementacindefuncionesmatemticasyderepresentacingrficadeesteprograma.
Laversinutilizadaesla7.9.0(R2009B).
Para realizar este anlisis, de nuevo se ha recurrido al proyecto de cdigo libre
comentado en captulos anteriores. En este caso, adems de modificar partes del cdigo
existente, tambin se han aadido nuevas partes gracias a los contenidos de ayuda
proporcionadosporMatlabsobresusfunciones.
Los cdigos completos se encuentran disponibles en el anexo 4 adjuntos a la
documentacindelproyecto.

7.1 Funcionamientogeneral

El cdigo tiene una estructura muy bsica, y se basa en el manejo de objetos tipo
Figure.Acontinuacinsedescribenresumidamentelasfuncionesutilizadas:

function varargout = menu(varargin)

Esta funcin se ejecuta cada vez que se interacta con el men, y no se debe
modificar.Tratalainteraccinentreelprograma(archivodeextensin.m)ylafigura(archivo
deextensin.fig).

function menu_OpeningFcn(hObject, eventdata, handles, varargin)

Esta funcin es la inicializacin general de las variables y parmetros, de la


comunicacinUSBydelobjetotimer,talycomosedetallaacontinuacin.

ComunicacinUSB:
Sedeclaranlasvariablesdedatosdeentradaysalida:

data_in = eye(1,64,'uint8');
% Se declara el vector de datos de entrada (el que se recibe del PIC)
data_out = eye(1,64,'uint8');
% Se declara el vector de datos de salida (el que se envia al PIC)

66

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Se declaran los valores de vendor id y product id para reconocer el dispositivo PIC


cuandoseconecte:

vid_pid_norm = libpointer('int8Ptr',[uint8('vid_04d8&pid_0011') 0]);


% vendor id y product id del PIC

Sedeclaranlaspipes(canalesparalatransmisindelosdatosdeentradaysalida):

out_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]);


in_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]);

SecompruebasieldispositivoPICestconectadoenelpuertoUSB:

while (conectado == 0)
[conectado] =
calllib('libreria','MPUSBGetDeviceCount',vid_pid_norm);
if (conectado ==0)
selection = questdlg('La tarjeta de evaluacin
no se encuentra',...
'Tarjeta no encontrada',...
'Buscar de nuevo','Cancelar','Cancelar');
switch selection,
case 'Cancelar',
stop (t);
return
case 'Buscar de nuevo'
conectado = 0;
end
end
end

En caso de que se encuentre el dispositivo, se abren las pipes (canales para la


transmisindelosdatos)

if conectado == 1
[my_out_pipe] = calllib('libreria', 'MPUSBOpen',uint8 (0),
vid_pid_norm, out_pipe, uint8(0), uint8 (0));
% Se abre el tunel de envio
[my_in_pipe] = calllib('libreria', 'MPUSBOpen',uint8 (0),
vid_pid_norm, in_pipe, uint8 (1), uint8 (0));
% Se abre el tunel de recepcin
end

Timer:

Sedeclaraelobjetotimerconsuscaractersticascorrespondientes:
t = timer('TimerFcn',@tiempo, 'ExecutionMode', 'fixedSpacing'
,'BusyMode', 'queue' ,'Period', periodobase);

Lavariableperiodobaselaintroducirelusuariomedianteunaventanadedilogo,tal
y como se explicar posteriormente. Esta variable debe ser como mnimo 1 ms. En caso de
introducirunvalorinferiora1mslafuncinnosdevolverunerror.

67

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Si se deseara muestrear a mayor velocidad, debera cambiarse el programa


completamente. En el caso de este proyecto, la consigna de lectura del PIC la enva el
programa de Matlab cada vez que transcurre el tiempo asociado al timer. Por lo tanto, este
timer determina la frecuencia de muestreo. Si deseramos mayor frecuencia de muestro,
deberamos implementar el timer en el cdigo del microcontrolador. En el captulo 11 de
posiblesmejorasseprofundizarenestaidea.

Empiezalaejecucindeltimer:
start (t);

Por ltimo, en esta funcin tambin se declaran las libreras que se utilizarn para la
comunicacinUSB:

loadlibrary mpusbapi _mpusbapi.h alias libreria

function text2_CreateFcn(hObject, eventdata, handles)

Esta funcin sirve para enviar un texto que se muestra en un cuadro de dilogo
existenteenlaventanadelafiguravisibledurantelaejecucindelprograma.

function closeGUI(source,eventdata)

Esta funcin se ejecuta cuando se cierra la ventana de la figura. Su contenido es el


siguiente:

En primer lugar, aparece un cuadro de dilogo emergente, preguntando si se desea


cerrarlaaplicacin:

selection = questdlg('Desea cerrar la aplicacin?',...


'Confirmacin',...
'Si','No','Si');

A continuacin se evala la respuesta a la pregunta anterior. En caso de que la


respuestaseaafirmativa,sitodavasigueconectadoeldispositivoUSB,secierranloscanales
de transmisin de datos, se descargan las libreras del USB, se para el timer y se cierra el
programa.Silarespuestahasidonegativa,continualaejecucindelprograma.

switch selection,
case 'Si',
stop (t);
if conectado == 1
calllib('libreria', 'MPUSBClose', my_in_pipe);
% Se cierra el tunel de recepcin

68

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

calllib('libreria', 'MPUSBClose', my_out_pipe);


% Se cierra el tunel de envio
end
unloadlibrary libreria
% Importante descargar la librera de memoria, de lo contrario
genera errores
delete(gcf)
close all
clear all
case 'No'
return
end

function tiempo(hObject, eventdata) %(source,eventdata)

Estaeslafuncinasociadaaltimer.Cadavezquetranscurreeltiempodelavariable
periodobaseseejecutaestafuncin.
En esta funcin se enva la consigna al PIC para que empiece la adquisicin del dato
utilizandoelconversorA/D,yserecibeestedato:
if conectado == 1
calllib('libreria', 'MPUSBWrite',my_out_pipe, data_out,
uint8(64), uint8(64), uint8(200));
% Se envia el dato al PIC
[aa,bb,data_in,dd] = calllib('libreria', 'MPUSBRead',
my_in_pipe, data_in, uint8(64), uint8(64), uint8(200));
% Se recibe el dato que envia el PIC
end

RecordandoelcdigodelPIC,eldatoqueseenviabaadquiridoatravsdelconversor
A/D era de 10 bits, y se deba enviar en 2 bytes. Por ello se debe realizar la siguiente
conversinparaadquirirelvalorcorrectamente:
data = (uint16(data_in(2)) * uint16(256)) + uint16(data_in(1));

Lamultiplicacindelsegundobyterecibidoporelvalor256(2 )correspondeaquees
lapartealtadeldatoadquiridomedianteelconversorA/D.

De las funciones descritas anteriormente nicamente se ha comentado la parte de


cdigo correspondiente al cdigo original. En los siguientes subcaptulos se detallan las
modificaciones realizadas en este cdigo original y las innovaciones llevadas a cabo para
adecuarestecdigoalafinalidaddeseadadelpresenteproyecto.
Una vez vistas con detalle las partes ms importantes de cada funcin en el cdigo
original,acontinuacinsedescribedeformageneralelfuncionamientodeesteprograma.

69

Generadordenmerosaleatorios

Suestructurageneraleslasiguiente:

TratamientodelosdatosconMatlab

Enprimerlugar,serealizanlasinicializaciones.

Ensegundolugar,emergeunaventanadedilogoconelusuarioparaqueintroduzca
los parmetros que desea en la adquisicin de las muestras: periodo de muestreo,
nmerodemuestrasyrangodevalores.

En tercer lugar, se inicializa el timer, cuya funcin asociada se ejecuta cada vez que
transcurreeltiempoestablecidoporelmismotimer.Elvalordelperiododeltimerlo
introduceelusuario.

Encuartolugar,empiezalaejecucindeltimer.Sufuncinasociadaenviarundatoal
PICparaqueestedcomienzoalaadquisicindeldatomedianteelconversorA/Dylo
envealPC.

Existen dos posibilidades para finalizar la ejecucin del timer: si el usuario cierra la
ventanadelafigura,obiensiseharealizadolaadquisicindetodaslasmuestrasdeseadas,
parmetroquetambinescogeelusuario.

El programa, despus de realizar ciertas modificaciones e innovaciones descritas


posteriormente, tendr el mismo funcionamiento, con una nica diferencia: se aadir una
ltimafasedeejecucin:

En quinto lugar, una vez finalizada la recepcin de todos los datos, se realizar el
estudio de la autocorrelacin con estos datos, y emerger una nueva ventana
graficandoloscoeficientesdeautocorrelacinobtenidos.

7.2 Modificacionesbsicasrealizadas

Acontinuacinsedetallanlasmodificacionesbsicasrealizadasenelproyectooriginal.
Del mismo modo que se ha modificado el cdigo del microcontrolador, el cdigo
originaldeMatlabtambinincluyemuchasotrasfuncionesquenoseutilizanenesteproyecto.
Porelloelprimerpasohasidoeliminartodaslaspartesdelcdigoquenoresultaban
deinters.
Ensegundolugar,sehamodificadoelvalordelproductiddelcdigo,queseencuentra
dentrodelafuncin:

function menu_OpeningFcn(hObject, eventdata, handles, varargin)

70

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Estamodificacinseharealizadodebidoalamodificacinrealizadaenlasheaderfiles
incluidasenelcdigodelPIC,talycomosehacomentadoanteriormente.Lalneadecdigo
modificadaeslasiguiente:

vid_pid_norm = libpointer('int8Ptr',[uint8('vid_04d8&pid_0011') 0]);

Enterceryltimolugar,sehamodificadolaposicindelalneadecdigoquedaba
comienzoalaejecucindeltimer.
Enelcdigooriginal,despusdeempezaraejecutareltimer,serealizabalaasignacin
delasvariablesdeentradaysalidadelosdatos.Comoconsecuencia,losprimerosvaloresque
obtenamoseran0.Porello,enlasinicializaciones,elltimopasodetodosserdarlaorden
altimerparaqueempieceaejecutarse.Estamodificacinseencuentradentrodelafuncin:

function menu_OpeningFcn(hObject, eventdata, handles, varargin)

Estos tres puntos anteriores son los relacionados con las modificaciones bsicas
realizadas en el cdigo. A continuacin se describen las nuevas partes de cdigo que se han
escrito.

7.3 Innovacionesrealizadas

Se han creado cuatro cdigos a partir del cdigo bsico del proyecto de cdigo libre
tratadoentodomomento.Estoscuatrocdigostienenunapartebsicacomnatodosellos,y
unapartepropiaparalaobtencindelosvaloresnumricosaleatorios.
Acontinuacinseanalizacadaunadeestaspartes.

7.3.1

Innovacionescomunesaloscuatrocdigos

Enprimerlugarsevaapresentarlapartebsicainnovadaquecontienenestoscuatro
cdigos. El funcionamiento es el que se ha descrito anteriormente, por lo que se detallarn
ciertaspartesespecficasdeloscdigos.
Laprimerainnovacinaadidacomnaloscuatrocdigosconsisteenunainterfazde
usuarioquepermiteseleccionarlosparmetrosparalageneracindelosnmerosaleatorios.
Estainnovacinseencuentradentrodelafuncin:

function menu_OpeningFcn(hObject, eventdata, handles, varargin)

Los parmetros que se pueden introducir mediante esta interfaz de usuario son los
siguientes:
71

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Eltiempodeejecucindeltimer,queserelperiododemuestreodelosdatos.
Elnmerodemuestrasquequeremosrecibir.
Elrangodevaloresdelosnmerosaleatoriosquedeseamosobtener.

Laslneasdecdigocorrespondientessonlassiguientes:
prompt = {'Periodo de muestreo inicial (en segundos):','Nmero de
muestras:','Nmero mnimo:','Nmero mximo:'};
title = 'Configuracin inicial';
%Nombre de la ventana
lines = 1;
def = {'0.001','1000','0','10'};
% Valores que apareceran por defecto en el cuadro de texto
answer = inputdlg(prompt,title,lines,def);
%Asignacion de los valores introducidos a las variables del programa:
periodobase = str2num (answer{1});
maxmuestras = str2num (answer{2}) + 1;
numero_min = str2num (answer{3});
numero_max = str2num (answer{4});

Ylaventanaemergentepresentaelsiguienteaspecto:

Figura19:Menparaintroducirlosparmetros

Lasegundainnovacinaadidacomnaloscuatrocdigosconsisteenelestudiode
la autocorrelacin para determinar la calidad del generador de nmeros aleatorios. Esta
innovacinseencuentradentrodelafuncinasociadaaltimer:

function tiempo(hObject, eventdata) %(source,eventdata)

Lafuncindelestudiodeautocorrelacinsoloseejecutarunavezsehayanrecibido
todaslasmuestrasdeseadas.Enprimerlugarsedeberdefinirqueeslaautocorrelacin,taly
comoseexplicaacontinuacin.

72

Generadordenmerosaleatorios

7.3.2 Autocorrelacin

TratamientodelosdatosconMatlab

Lafuncin de autocorrelacinse define como lacorrelacin cruzadade


lasealconsigo misma [1]. La funcin de autocorrelacin resulta de gran utilidad para
encontrarpatronesrepetitivosdentrodeunaseal,comoporejemplo,laperiodicidaddeuna
sealenmascaradabajoelruidooparaidentificarlafrecuenciafundamentaldeunasealque
nocontienedichacomponente,peroaparecennumerosasfrecuenciasarmnicasdeesta.
LaautocorrelacindeunaserietemporaldiscretadeunprocesoXteslacorrelacinde
dichoprocesoconunaversindesplazadaeneltiempodelapropiaserietemporal.
Para ejemplificar la explicacin terica, imaginemos que tenemos cuatro valores
obtenidos de una seal: a, b, c y d. La funcin de autocorrelacin actuar de la siguiente
manera:

Figura20:Descripcingrficadelafuncindeautocorrelacin

Sifijamosloscuatrovaloresdelasealdelapartesuperior,lasealinferioravanzaun
valor cada vez que se realiza la funcin de autocorrelacin, es decir, se desplaza
temporalmenteparaircomparndolaconsigomisma.Estevalordedesplazamientoesellag.

73

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Delaimagenanteriorpuedenrealizarsedosobservaciones:

Enprimerlugar,parandatosvamosaobtener2n1valoresdeautocorrelacin.
En segundo lugar, cuando la seal se compara consigo misma, que en la imagen
anterior corresponde al cuarto paso, el valor de autocorrelacin obtenido ser
mximo.

En el estudio de la autocorrelacin se obtendr el coeficiciente de autocorrelacin


para conseguir unos resultados que se puedan comparar fcilmente. Este coeficiente tiene
comovalormnimo0ycomovalormximo1.
Los valores ms bajos de este coeficiente corresponden a una mayor aleatoriedad,
mientrasquelosvaloresmsprximosa1correspondenaunasealmenosaleatoria.Como
se puede intuir, en el cuarto paso de la figura 20 obtendramos un coeficiente de
autocorrelacinde1,mientrasqueenelprimeryltimopasoobtendramoslosvaloresms
bajosdelcoeficientedeautocorrelacin.
A continuacin se detalla la implementacin de la funcin de autocorrelacin en
Matlab.
LaeleccindelentornoMatlabcomoherramientaparaelestudiodelaaleatoriedadse
vereforzadaenesteaspecto,puestoqueyacuentaconlapropiafuncindeautocorrelacin,y
uno de los parmetros que se pueden escoger es la obtencin del coeficiente de
autocorrelacin.
Acontinuacinseadjuntanlaslneasdetextocorrespondientesadichafuncin:

[a,lag] = xcorr(vectordatos1,'coeff');
% obtencin del coeficiente de autocorrelacin
stem(lag,a)
% graficamos los coeficientes obtenidos
xlabel('Lag')
% etiqueta del eje 'x'
ylabel('Coeficiente de autocorrelacin') % etiqueta del eje 'y'
grid
% rejilla para facilitar la observacin de los resultados
assignin('base','Coeficiente',a);
% asignacin de los valores obtenidos al workspace
set(handles1.text2,'String','Recepcin completa');
% mensaje que aparecer en el cuadro de dialogo
stop (t);
% paramos el timer

Enprimerlugar,seobtieneelvalordeloscoeficientesdeautocorrelacin.

La variable vectordatos1 contiene los datos que se han recibido peridicamente del
circuitogeneradorderuidoblanco.
Lavariablelagcorrespondealdesplazamientoqueserealizaentrelasealyunacopia
desmismaparaelanlisisdelaautocorrelacin.

Acontinuacinsedibujalagrficaconlosnombresdelosejescorrespondientes,yse
aadeunarejillapararealizarfcilmenteunaprimeraobservacinintuitivadelosresultados
obtenidos.
74

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

El siguiente paso consiste en asignar el valor de la variable del coeficiente de


autocorrelacin al workspace, que es el espacio del escritorio que aparece por defecto en
Matlab.Dentrodeesteespacioapareceunaventanaconlasvariablesasignadasalworkspace,
con la posibilidad de realizar distintos tratamientos de estas variables, como representar
grficamentelasoguardarsusvaloresenunfichero.
AcontinuacinsemuestraelmensajeRecepcincompletaqueaparecerenelcuadro
dedilogodelafiguradeMatlab.
Porltimosedetieneeltimerparafinalizarlarecepcindelosdatos.

Recapitulando, stas han sido las dos innovaciones bsicas comunes a los cuatro
cdigos: la interfaz de usuario para introducir los parmetros deseados y el estudio de la
autocorrelacinqueserealizacuandosehafinalizadolarecepcindelosvalores.

Elsiguientepasoserexponerquepartescaractersticastienencadaunodeloscuatro
cdigoscreados.

7.3.3 Innovacionespropiasdecadacdigo

Las innovaciones que se comentarn a continuacin tienen que ver con la obtencin
delosnmerosaleatoriosysuadecuacinalrangodevaloresescogidoporelusuario.
Para la obtencin de los nmeros aleatorios se han realizado los siguientes cuatro
cdigosquesedetallarnposteriormente:

Cdigo bsico: realiza la recepcin de los datos y su anlisis sin realizar ninguna
modificacinsobreestos.

Cdigo bsico con filtro: modificacin del cdigo bsico debido a las dificultades
presentesenlaobtencindevaloresextremos.

Cdigo de nmeros pares e impares: en este cdigo, en funcin de si el nmero


recibido es par o impar se asigna el valor 0 o 1 a una variable, y mediante la
obtencin de un nmero calculado previamente de bits se conforma el nmero del
rangodevaloresdeseado.

Cdigo de valor medio: este cdigo tiene el mismo funcionamiento que el de los
nmeros pares e impares: si el nmero recibido se encuentra por encima del valor
mediodelaseal(511)seasignaelvalor1,encasocontrarioseasignaelvalor0.

A continuacin se detalla el funcionamiento de cada uno estos cdigos, y


posteriormenteserealizarunacomparacinentreellos.Loscdigosestndisponiblesenel
discoconelrestodelcontenidodelproyecto.
75

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

7.3.4 Cdigobsico

Este cdigo recibe los datos obtenidos del generador de ruido blanco y analizar su
aleatoriedad sin realizar ninguna modificacin sobre los datos recibidos. Se han aadido dos
innovacionesenlafuncinasociadaaltimer:

function tiempo(hObject, eventdata) %(source,eventdata)

Enprimerlugar,latransformacindeldatorecibidoalrangoescogidoporelusuario,
talycomosemuestraenlasiguienteimagen:

Figura21:Conversindevaloresalrangoescogidoporelusuario
Se debe determinar la funcin de transferencia necesaria para realizar la adecuacin
devalores.Paraelloserecurriralaecuacinbsicadeunarecta:

Paradeterminarlosvaloresdelosparmetrosaybseutilizanlosvaloresconocidos
enlagrficaanterior:

Cuandox=0y=numero_min.Enestecasoobtenemosque:

Cuandox=1023y=numero_max.Enestacasoobtenemosque:

76

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Por lo tanto, la funcin de transferencia para la adecuacin de estos valores es la


siguiente:

Donde x ser el valor ledo mediante el conversor A/D, e y el valor adecuado al


rangodevaloresdeseadoporelusuario.
Unavezvistalaimplementacintericaparaadecuarlosvaloresobtenidosalrangode
valoresdeseado,acontinuacinseadjuntanlaslneasdecdigocorrespondientesenlenguaje
Matlab:
data=(uint16(data_in(2))*uint16(256))+uint16(data_in(1));
data=(((numero_maxnumero_min)/1023)*data)+numero_min;

LaprimeralneacorrespondealaadecuacindelosvaloresrecibidosdelPIC,comoya
sehacomentadoanteriormenteenelsubcaptuloreferentealaspartesbsicasdelcdigo.
Enlasegundalneaserealizalaadecuacindelosvaloresalrangodeseado.Paraello
seimplementafuncindetransferenciadeterminadaanteriormente.

Lasegundainnovacinconsisteenrecibirunnmerodeterminadodemuestras.Este
parmetrolointroduceelusuarioenelcuadrodedilogodelaventanaemergenteal
principiodelprograma.

Utilizandoestevalorintroducidoporelusuario,sedeterminaelnmerodemuestras
que se desea recibir, y como consecuencia la funcin del timer se ejecuta siempre que el
nmerodemuestrasrecibidoseainferioralnmerototaldemuestrasquesedesean.
Laslneasdecdigoqueimplementanlocomentadosonlassiguientes:
if muestras1<maxmuestras
vectordatos1(muestras1) = data;
assignin('base','Datos',vectordatos1);
muestras1 = muestras1 + 1;
else
[a,lag] = xcorr(vectordatos1,'coeff');
% obtencin del coeficiente de autocorrelacion
stem(lag,a)
% graficamos los coeficientes obtenidos
xlabel('Lag')
% etiqueta del eje 'x'
ylabel('Coeficiente de autocorrelacin')
% etiqueta del eje 'y'
grid
% rejilla para facilitar la observacin de los resultados
assignin('base','Coeficiente',a);
% asignacin de los valores obtenidos al workspace
set(handles1.text2,'String','Recepcin completa');
% mensaje que aparecer en el cuadro de dialogo
stop (t);
% paramos el timer
end

77

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

El primer if corresponde a lo siguiente: si todava no hemos recibido el nmero de


muestras deseadas por el usuario, a cada ejecucin de la funcin asociada al timer
guardaremosunnuevovalor,ycomosepuedevertambinguardamoselvalorrecibidoenla
ventanadevariablesdelworkspace,conlafinalidadderealizarunarepresentacingrficade
losvaloresobtenidos.
Sinosecumpleesacondicinquieredecirqueyahemosrecibidoelnmerodedatos
deseados por el usuario, y en este caso se ejecuta la parte de cdigo correspondiente al
estudiodeautocorrelacincomentadoenelsubcaptuloanterior.
Una vez comentadas las dos innovaciones de este cdigo, a continuacin se detallan
cualessonlaslimitacionesexistentes:

En primer lugar, la limitacin de la frecuencia de muestreo por el timer de Matlab,


aunque en el caso de este proyecto no afectar puesto que se estableci que la
frecuenciamximademuestreofuesede1kHz.

En segundo lugar, tiene una limitacin en cuanto a la resolucin de los valores


obtenidos: Los valores de entrada a la funcin de transferencia van de 0 a 1023, es
decir,existen1024posiblesvalores.Trasaplicarlafuncindetransferenciaelrango
devaloresobtenidosserdistinto,peroseguirhabiendo1024posiblesvalores.Este
rangodevaloresesmsquesuficienteparalamayoradeaplicacionesenlasquese
puedanutilizarlosnmerosaleatorios.

Acontinuacinsedescribirelsiguientecdigoquesehaimplementado.Estenuevo
cdigoestbasadoenelqueseacabadecomentar,ylanicadiferenciaexistenteesunfiltro
queseharealizadoparalaobtencindelosvalores.

78

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

7.3.5 Cdigoconfiltroenlarecepcindevalores

Estecdigopartedelabasedelcdigoanterior,peroselehaaadidounaslneasde
cdigodentrodelafuncinasociadaaltimer:

function tiempo(hObject, eventdata) %(source,eventdata)

La modificacin del anterior cdigo ha sido realizada por el siguiente motivo: tal y
como se ha comentado tras la obtencin de las seales generadas de ruido blanco, se vea
claramentequeenelmejordeloscasos,queeraelgeneradorcontransistorbipolar,lamayor
densidaddelasealseconcentrabaenunrangoaproximadoqueibade0.5Va4.5V.Porello,
ytalycomoseverenlaspruebasrealizadasconMatlab,utilizandoelcdigobsicosepuede
observaresteproblemacomentadoanteriormente.
Lafinalidaddeestecdigoesfiltrarciertosvaloresrecibidosparaintentarmejorarel
coeficientedeautocorrelacinobtenidoconelcdigobsico.Aunquelosresultadosobtenidos
enlaautocorrelacinconestecdigoseanmejoresqueenelcasoanterior,laaleatoriedadya
noexistirporqueestaremosforzandovaloresenunrango.Paraelloseutilizarlasiguiente
idea:
Delamismaformaqueenelcdigobsico,serecibeeldato,nombradoenelcdigo
comodatayelsiguientepasoconsisteenelanlisisdeestedatocomparndoloconelvalor
recibidoanteriormente,nombradoenelcdigocomodata_anterior:
Enprimerlugar,sedivideelrangototaldelosvaloresentrespartes:

Del0%al25%delrangodelosposiblesvaloresde0a255

Del25%al75%delrangodelosposiblesvaloresde256a767

Del75%al100%delrangodelosposiblesvaloresde768a1023

Elsiguientepasoconsisteenaveriguarenqudivisindelasanterioresseencuentrael
valor de data_anterior. Una vez conocido el rango de data_anterior se decidir si el nuevo
valorrecibido(data)loaceptamosoloignoramos.Veamoscadaunodeloscasos:

Sidata_anteriorseencuentraelintervalodel0%al25%:

elseif data_anterior<=((numero_max-numero_min)/4)

Elsiguientedatosoloseguardarconlasiguientecondicin:

if(data_anterior<(data-((numero_max-numero_min)/4)))

79

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Esdecir,elnuevodatorecibido(data)soloseguardarsiesmayorqueelvaloranterior
(data_anterior)yademsdesermayor,debeserloun25%delrangototaldevaloressuperior
aldata_anterior.Porlotanto,datadebersermayorquedata_anterior+255.
Porejemplo,sielrangodevaloresvade0a20,yelltimodatorecibido(data_anterior)
eraun3,elsiguientevalorqueseguardar(data)debersersuperiora8.

Sidata_anteriorseencuentraelintervalodel75%al100%:

elseif data_anterior>=((numero_max-numero_min)*3/4)

Elsiguientedatosoloseguardarconlasiguientecondicin:

if(data_anterior>(data+((numero_max-numero_min)/4)))

Es decir, el nuevo dato recibido (data) solo se guardar si es menor que el valor
anterior(data_anterior)yademsdesermenor,debeserloun25%delrangototaldevalores
inferioraldata_anterior.

Porejemplo,sielrangodevaloresvade0a20,yelltimodatorecibido(data_anterior)
eraun19,elsiguientevalorguardado(data)deberserinferiora14.

Sidata_anteriorseencuentraelintervalodel25%al75%:
if ((((numero_max-numero_min)/4)<data_anterior)&&(data_anterior<(
(numero_max- numero_min)*3/4)))

Elsiguientedatosoloseguardarconlasiguientecondicin:

if(data<((numero_max-numero_min)*2/10))||(data>((numero_maxnumero_min)*8/10))

Esdecir,elnuevodatorecibido(data)soloseguardarsiseencuentraenelintervalo
del0%al20%oenelintervalodel80%al100%.Porquestosintervalos?
Lamayorpartedelasealseconcentraenunrangoquevade0.5Va4.5V,yestos
valores corresponden a un 10 % y un 90 % del rango de los posible valores de la seal,
respectivamente.Comolosvaloresde0.5Vy4.5Vsehanobtenidoporsimpleinspeccin,se
hadeterminadomodificarlosvaloresde10%y90%a20%y80%respectivamente.
Por ejemplo, si el rango de valores va de 0 a 20, y el ltimo dato recibido
(data_anterior)eraun10,elsiguientevalorqueseguardar(data)deberserobiensuperior
a16obieninferiora4.

80

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Una vez detalladas las comparaciones que se han realizado para la mejora de los
resultados de aleatoriedad obtenidos, a continuacin se adjunta la parte de cdigo
correspondiente.
if ((((numero_max-numero_min)/4)<data_anterior)&&(data_anterior< (
(numero_max-numero_min)*3/4)))
if(data<((numero_max-numero_min)*2/10))||(data>
((numero_max-numero_min)*8/10))
vectordatos1(muestras1) = data;
assignin('base','Datos',vectordatos1);
data_anterior = data;
muestras1 = muestras1 + 1;
end
elseif data_anterior<=((numero_max-numero_min)/4)
if(data_anterior<(data-((numero_max-numero_min)/4)))
vectordatos1(muestras1) = data;
assignin('base','Datos',vectordatos1);
data_anterior = data;
muestras1 = muestras1 + 1;
end
elseif data_anterior>=((numero_max-numero_min)*3/4)
if(data_anterior>(data+((numero_max-numero_min)/4)))
vectordatos1(muestras1) = data;
assignin('base','Datos',vectordatos1);
data_anterior = data;
muestras1 = muestras1 + 1;
end
end

Con este cdigo se deberan obtener mejores valores en el estudio de la


autocorrelacin,peroexisteelsiguienteproblema:debidoalfiltrorealizado,laobtencinde
valoresaleatoriosempeora.
Porejemplo,silaaplicacinesdadoelectrnico,quetieneunrangodevaloresde1a
6.Enlaprimeratiradaseobtieneun1.Conestecdigo,elsiguientevalorobtenidonovaaser
un1.
El funcionamiento de estos dos cdigos comentados anteriormente consiste en la
recepcindeundatoysuadecuacinalrangodevaloresescogidoporelusuario.
Losdossiguientescdigoscreadosconsistenengenerarunbitporcadadatorecibido,
y mediante una secuencia de bits generar el nmero aleatorio dentro del rango de valores
escogidoporelusuario.

81

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

7.3.6 Cdigodenmerospareseimpares

En este cdigo, la generacin del nmero en el rango definidio por el usuario se


conformabitabit.Paraello,cadavalorrecibidoseanalizaparasabersiesparoimpar,yse
asignaunvalor1o0dependiendodeestefactor.
En primer lugar, se debe conocer cuntos bits van a ser necesarios para obtener un
nmeroenelrangoindicadoporelusuario.Estepasoserealizaacontinuacindelaobtencin
delosparmetrosintroducidosporelusuario,enlafuncindelasinicializaciones:

function menu_OpeningFcn(hObject, eventdata, handles, varargin)

Paraconocerelnmerodebitsnecesariosehaimplementadounbucleenelquese
divideelrangodevaloresdeseadoporelusuariopor2siemprequeelcocientedeladivisin
seamayorque1.Paraobtenerelnmerodebitsnecesariostambinsepodrahaberrealizado
ellogaritmoenbase2delrangodevalores.
Porejemplo:setieneunrangode0a13.Paraesterangosabemosquenecesitaremos
4 bits, con los que podemos obtener un rango de 0 a 15. Por lo tanto, segn lo explicado
anteriormente,serrealizaralossiguientespasosenelbucle:
Rango:0a13130=13cociente=13,nmerodebits=0(inicialmente)
(Inicialmenteasignamoselvalordelrangoalavariablecociente)
13/2=6cociente=6ynmerodebits=16>1?S,volvemosaejecutarelbucle.
6/2=3cociente=3ynmerodebits=23>1?S,volvemosaejecutarelbucle
3/2=1.5cociente=1.5ynmerodebits=31.5>1?S,volvemosaejecutarelbucle
1.5/2=0.75cociente=0.75ynmerodebits=40.75>1?No,findelbucle

Laslneasdecdigoqueimplementanestaideasonlassiguientes:
rango_valores = numero_max - numero_min;
cociente = rango_valores;
while cociente>=1
maxbits = maxbits + 1 ;
cociente = cociente/2;
end

Comoseverposteriormente,tambinsedeberadecuarelresultadoobtenidoconel
nmerodebitsalrangoadecuado.Siguiendoelejemploanterior,siobtenemos4bitstenemos
un rango de 0 a 15, y el usuario requera un rango de 0 a 13. Por ello se realizar una
adecuacindelosvaloressimilaralaquesehabarealizadoenloscdigosanteriores.
Una vez conocemos el nmero de bits necesarios para la obtencin de cada dato, el
siguientepasoconsisteenanalizarsieldatorecibidoesparoimpar.
82

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Paraellosehautilizadolafuncinrem()deMatlab.Losparmetrosqueselepasana
estafuncinsoneldividendoyeldivisor,ynosdevuelveelrestodeladivisin.Sidividimosel
valorrecibidopor2yelrestodeladivisines0,elvalorrecibidoserpar,yencasocontrario
ser impar. En cada uno de los dos casos asignaremos un valor binario a una variable que
utilizaremosparaobtenerelvalornumricofinal.
Laslneasdecdigoquecorrespondenalaobtencindelvalorbinarioapartirdesiel
valorrecibidoesparoesimparsonlassiguientes:
if(rem(data,2)==0)
variable = 1;
par = par + 1;
else
variable = 0;
impar = impar + 1;
end

Tambinsehaimplementadouncontadordepareimparparasaberquresultados
obtenemos.Paragrandescantidadesdenmeros,tericamentedeberamosobtenerun50%
devaloresparesyun50%devaloresimpares.Estehechoresultaproblemtico,talycomose
explicaralfinaldeestesubcaptulo.
Unavezconocidoelnmerodebitsnecesariosparaconformarunnmerodelrango
escogido por el usuario y una vez implementada la funcin para obtener los valores pares e
impares,elsiguientepasocorrespondealaobtencindelvalornumricodelrangoescogido
porelusuario.
Estaobtencinserealizaconlassiguienteslneasdecdigo:
dato = dato + variable*(2^contadorbits);
contadorbits = contadorbits + 1 ;
if contadorbits == maxbits
dato = round((dato*rango_valores/((2^maxbits)-1))+numero_min);
%conversin del valor a la escala demandada
vectordatos1(muestras1) = dato;
assignin('base','Datos',vectordatos1);
muestras1 = muestras1 + 1;
dato = 0;
contadorbits = 0;
end

Enprimerlugartenemoslavariabledato.Estavariableserelnmeroaleatoriofinal
generado.Paragenerarloserecurreaunasumasecuencialdevaloresbinariosconvertidosa
escaladecimal.Pongamosunejemplo:
Imaginemosquelosvaloresrecibidossern:par(1),impar(0),par(1),par(1).
Enprimerlugar,serealizarlasiguienteoperacin:
Dato=0+1*(2^0)dato=1,ycontadorbits=1.

83

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Como no se cumple la condicin contadorbits (1) == maxbits (4), no se ejecuta el


cdigocorrespondientealacondicindelifyserecibeelsiguientevalor.
Dato=1+0*(2^1)dato=1,ycontadorbits=2.
Como no se cumple la condicin contadorbits (2) == maxbits (4), no se ejecuta el
cdigocorrespondientealacondicindelifyserecibeelsiguientevalor.
Dato=1+1*(2^2)dato=5,ycontadorbits=3.
Como no se cumple la condicin contadorbits (3) == maxbits (4), no se ejecuta el
cdigocorrespondientealacondicindelifyserecibeelsiguientevalor.
Dato=5+1*(2^3)dato=13,ycontadorbits=4.
Como se cumple la condicin contadorbits (4) == maxbits (4), se ejecuta el cdigo
correspondientealacondicindelif.
Dentro de la condicin del if, en primer lugar se realiza la adecuacin de los valores
obtenidos al rango deseado por el usuario, tal y como se haba realizado en los cdigos
anteriores.Lanicadiferenciaesqueenestecasolavariabledatonoesunentero,porloque
seaplicalafuncinderedondeo(round()).Laadecuacindelosvaloreseslasiguiente:

Figura22:Conversindevaloresalrangoescogidoporelusuario

A continuacin se guarda el valor obtenido, se asigna a su respectiva variable en el


workspaceysereinicianlosvaloresdelasvariablesdatosycontadorbits.
Acontinuacinseexplicarelltimocdigocreado,elcdigodelvalormedio,quees
muysimilaraestequeseacabadecomentar.

84

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

7.3.7 Cdigodevalormedio

Estecdigoesprcticamenteigualqueelcdigoanteriormentecomentado.Lanica
diferenciaresideenlaobtencindelvalorbinarioutilizadoposteriormenteparalageneracin
delnmeroaleatorio.
En el cdigo anterior, la obtencin de este valor binario se basaba en si los valores
recibidoseranparesobieneranimpares.Enestecdigo,elvalorbinarioobtenidodependede
sielnmerorecibidoseencuentraporencimadelvalormedioopordebajodelvalormedio.
Elvalormedioentre0y1023esel511.Porlotanto,sielvalorquehemosrecibidode
la lectura del PIC est por encima de 511 asignaremos un 1 al valor binario, y en el caso
contrarioasignaremosun0.
Laslneasdecdigoqueimplementanestaideasonlassiguientes:
if(data>511)
variable = 1;
else
variable = 0;
end

El tratamiento de los valores obtenidos y todo el cdigo restante son exactamente


igualesqueelcdigoexplicadoanteriormente.
Unavezrealizadosestoscuatrocdigos,enltimolugarsehadiseadounaaplicacin
especficaquesirveparacrearunmapadebits,talycomosedescribeacontinuacin.

85

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

7.3.8 Cdigogeneradordemapadebits

Losmapasdebitsseutilizanconmuchafrecuenciahoyenda,comoporejemploenla
generacin de cdigos QR que pueden ser ledos por dispositivos mviles. Acontinuacin se
detallalaimplementacindelcdigogeneradordemapasdebits.
Setratadeuncdigomuysencilloquesirvepararealizarmapasdebitsapartirdela
obtencindevaloresnumricosaleatoriosybinarios,esdecir,conunrangodevaloresde0a
1,teniendoencuentaquelosvaloressonenteros.Losvaloresnumricos1sedibujarncomo
recuadrosnegros,ylosvalores0sedejarnenblanco.
Elfuncionamientodelcdigoeselsiguiente:sehaimplementadoindependientemente
de los cdigos anteriores. Por ello, gracias a la funcin assignin() comentada anteriormente,
podremosutilizarenestecdigolosdatosdisponiblesenelWorkspacedeMatlab.
Labasedeestecdigoseexplicaatravsdelsiguienteejemplo:

Suponiendo un conjunto de 9 valores numricos binarios aleatorios, por ejemplo, la


siguientecadena:[100111010]

Elresultadoquesedeberaobtenerenlageneracindelmapadebitseselsiguiente:

Figura23:Ejemplodemapadebitscon9bits

En primer lugar se dibujara el cuadrado negro de la casilla de la esquina superior


izquierdapuestoqueelprimervaloresun1.
A continuacin se dibujara el cuadrado blanco de su derecha. Como el valor es un
cero,sedejarenblanco.
A continuacin se dibujara el cuadrado blanco situado a la derecha del cuadrado
blancoanterior.
Una vez dibujados los primeros tres cuadrados de la primera fila, se pasara a la
segunda fila, procediendo como en el caso anterior, y finalmente la tercera fila, del
mismomodoqueenlasdosfilasanteriores.

86

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Porlotanto,elordenutilizadoparadibujarlosrecuadroscorrespondientesalosbits
eshorizontalincrementalenprimerlugaryverticaldecrementalensegundolugar.
Elcdigoqueimplementalaexplicacinanterioreselsiguiente:
if hcount ==
hcount =
vcount =
else
hcount =
end

(limite - 1)
0;
vcount + 1;
hcount + 1;

Estacomparacinserealizardespusderepresentargrficamentecadavalorbinario.
Enprimerlugar,haydosvariablestipocontador:hcount(contadordebitshorizontal)y
vcount(contadordebitsvertical).
Por otro lado, la variable limite se obtiene de la siguiente lnea de cdigo de
inicializacin:
limite = sqrt(muestras);

En este caso, la variable muestras se trata del nmero de posiciones del vector que
contienelosdatosbinarios.Paraaveriguarelnmerodeposicionesdeestevectorseutilizala
siguientelneadecdigo,escritaantesdelalneaadjuntadaanteriormente:
muestras = length(Datos);

EnestecasolavariableDatoseslavariableexistenteenelWorkspace,obtenidatrasla
recepcindelasmuestrasaleatoriasobtenidas.Lafuncinlength()devuelveelnmerode
posicionesdelvectorDatos,queenelejemploanteriorseran9posiciones.
Se debe tener en cuenta que normalmente los mapas de bits son cuadrados, por lo
queserequerirqueelnmerodemuestrasobtenidasparalarealizacindeesteseaunvalor
cuadrtico,esdecir,quesurazcuadradadunnmeroentero.
Por lo tanto, se har la raz cuadrada de estas 9 posiciones para determinar cuantos
bitshabrencadafilayencadacolumna.
Continuandoconlapartedelcdigodelascomparaciones:
if hcount ==
hcount =
vcount =
else
hcount =
end

(limite - 1)
0;
vcount + 1;
hcount + 1;

Laprimeracomparacinsirveparaaveriguarsisehallegadoalaltimaposicindela
fila. La variable hcount se inicializa a 0 prviamente. En este caso, la comparacin se realiza
conelvalorlimite1,debidoaquesehainicializadolavariablehcounta0.
87

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

Siguiendoconelejemploanterior,comolimiteeralarazcuadradade9,esdecir,3,las
posicioneshorizontalesdelosbitssern0,1y2.

Si el ltimo bit se encontraba en la posicin horizontal 2, es decir, si hcount = 2,


aumentaremos el contador de la posicin vertical vcount, y reiniciaremos a 0 el valor de la
posicin horizontal. Si el ltimo bit no se encontraba en la posicin horizontal 2,
incrementaremosestaposicinhorizontal.

Porlotanto,tendramoslasiguientefiguraconelvalordecadavariable:

Figura24:Valoresdelasvariableshcountyvcountdelejemplodelmapadebits

Pararealizarestedibujo,enprimerlugarsedebersaberdibujarunrecuadroconsu
interiorcoloreado,paraelcasodelosbitsqueson1.Paraello,sehaescritolasiguientelnea
decdigo:

plot (fill(x,y,'k'))

Enestalneahaydosfunciones:
Lafuncinplot():sirveparadibujareldatoqueselepasa.
Lafuncinfill():sirveparadibujarunrecuadroconsuinteriorcoloreado.

El color escogido mediante el tercer argumento k es el negro. Los dos anteriores


argumentos(xey)sonvectoresdecuatroposicionesquecontienenlospuntosdelaposicin
delasaristasdelcuadrado.Estospuntosseordenarandelasiguientemanera:

Figura25:Cuadradoconlospuntosdelasaristas
Unavezconocidalafuncinutilizadaparaeldibujodeloscuadrados,elsiguientepaso
serreconocerlaposicindelasaristasdeste.Paraello,sehadivididolafigurapresentada
anteriormenteenlossiguientespuntos:

88

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

Los valores de estas variables son los


siguientes:
Ymax=limite
Ymin=0
Xmax=limite
Xmin=0

Figura26:Valoresmximosdelasvariablesdelmapadebits
A partir de estos valores y de los valores de los contadores de bits comentados
anteriormente se determinarn las aristas de cada cuadrado, tal y como se explica a
continuacin.
Tenemoselsiguientecuadrado:

Figura27:Cuadradoconlospuntosdelasaristas
Losvaloresdelascoordenadasdecadapuntomarcadosernlossiguientes:

PuntoA:
Coordenadax:xmin+hcount
Coordenaday:ymaxvcount
PuntoB:
Coordenadax:xmin+hcount+1
Coordenaday:ymaxvcount
PuntoC:
Coordenadax:xmin+hcount
Coordenaday:ymaxvcount1
PuntoD:
Coordenadax:xmin+hcount+1
Coordenaday:ymaxvcount1

Estos cuatro puntos corresponden a los siguientes nmeros especificados


anteriormenteparaelordendelascoordenadasqueseutiliza:
A=4; B=3; C=1; D=2

89

Generadordenmerosaleatorios
TratamientodelosdatosconMatlab

El cdigo correspondiente a la asignacin de estos valores a cada coordenada es el


siguiente:
if Datos(i)== 1
y(4) = ymax - vcount;
x(4) = xmin + hcount;
y(3) = ymax - vcount;
x(3) = xmin + hcount + 1;
y(1) = ymax - vcount - 1;
x(1) = xmin + hcount;
y(2) = ymax - vcount - 1;
x(2) = xmin + hcount + 1;
plot (fill(x,y,'k'))
axis ([0 limite 0 limite])
end

%A
%B
%C
%D

% xminimo xmaximo yminimo ymaximo

Como se puede ver solo se ejecuta cuando el valor de la muestra es 1, porque para
valor0nohacefaltadibujarelcuadrorellenodecolornegro,simplementesedejaelespacio
encolorblanco,sinmodificar.
En el cdigo anterior la ltima lnea corresponde a la funcin que asigna los valores
mximosdelosejes.
Siguiendoconelejemplorealizado,losvaloresqueresultaranenestaasignacindel
primercuadroseranlossiguientes:
y(4)
x(4)
y(3)
x(3)
y(1)
x(1)
y(2)
x(2)

=
=
=
=
=
=
=
=

ymax
xmin
ymax
xmin
ymax
xmin
ymax
xmin

+
+
+
+

vcount; 3
hcount; 0 +
vcount; 3
hcount + 1;
vcount - 1;
hcount; 0 +
vcount - 1;
hcount + 1;

0
0
0
0
3
0
3
0

=
=
=
+

3
0
3
0
0
0
0
0

+ 1 = 1
1 = 2
1 = 2
+ 1 = 2

Figura 28:Coordenadasobtenidasdelasaristas
A continuacin se presenta el resultado obtenido con Matlab siguiendo el ejemplo
comentado:

Figura29:ImagenobtenidaconMatlabparalasecuenciadebits:100111010

90

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

7.3.9 Cdigoparaobtenerlamodaysufrecuencia

El estudio de la autocorrelacin no es suficiente para averiguar la calidad de los


resultados obtenidos. Como se ver ms adelante, la aparicin de valores 0 condiciona los
resultadosdelcoeficientedeautocorrelacin.
Sepodraobteneruncoeficientedeautocorrelacinmuybajo,quesignificaraquela
seal tiene una buena aleatoriedad, pero al mismo tiempo podramos estar obteniendo un
valor con mayor frecuencia que los dems. En este caso, si se tratara de un juego de azar,
apostar a ese nmero de mayor frecuencia comportara un menor riesgo, pese a que las
muestrasfueranaleatorias.
Elcdigoquesehacreadoparaobtenerelvalordelamoda[2]ysufrecuenciaesel
siguiente:
i = 1;
counter = 0;
moda = mode(datos);
valores = length(datos)+1;
while (i<valores)
if(datos(i)==moda)
counter = counter + 1;
end
i = i + 1;
end

La funcin mode() devuelve el valor de la moda del vector Datos. Este vector se
encuentraenelWorkspace,graciasalafuncinassignin()comentadaanteriormente.

Lafuncinlength()devuelveeltamaodelvectorDatos.

LafrecuenciadelamodaseobtienecomprobandotodoslosvaloresdelvectorDatos.
Cuandoseencuentraelvalorcorrespondientealamodaseincrementalavariablecounter.

91

Generadordenmerosaleatorios

TratamientodelosdatosconMatlab

Referencias:
[1] Wikipedia. Autocorrelacin. [Pgina web online]. Publicado el 24 de octubre de 2005,
ltimaactualizacinel9dejuliode2011[fechadeconsulta:12062011][Accesogratuito]

<http://es.wikipedia.org/wiki/Autocorrelaci%C3%B3n>
[2] Wikipedia. Moda (estadstica). [Pgina web online]. Publicado el 4 de octubre de 2004,
ltimaactualizacinel23deagostode2011[fechadeconsulta:6092011][Accesogratuito]

<http://es.wikipedia.org/wiki/Moda_(estad%C3%ADstica)>

92

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8 ResultadosobtenidosconMatlab

En este captulo se muestran los resultados finales del estudio con Matlab de la
aleatoriedaddelosnmerosgenerados.
Paraellosehaprocedidodelasiguientemanera:

En primer lugar se han realizado pruebas preliminares con dos generadores de


nmerosaleatoriosexternosaesteproyecto:

ElgeneradordenmerosaleatoriosdeMatlabconlafuncinrand()
Elgeneradordenmerosaleatoriosdelapginawebrandom.org[1]

La finalidad de estas pruebas es tener una idea de los valores del coeficiente de
autocorrelacinobtenidosporestosgeneradores,conelfindepodercompararelgenerador
creadoenesteproyectoconestosdosgeneradoresexistentes.

Ensegundolugarsehaanalizadoconelcdigobsicolaaleatoriedadobtenidaporlos
trescircuitosgeneradores.

Unavezrealizadoesteestudiobsico,sehaprocedidoautilizarelcdigoconmejores
resultados para la realizacin de diversas pruebas con los siguientes cdigos. Estas
pruebas han consistido en modificar los parmetros disponibles: frecuencia de
muestreo,nmerodemuestrasyrangodevalores.

Todos los valores obtenidos en estas mediciones se encuentran disponibles en el


anexo6,adjuntoaladocumentacindeesteproyecto.

Adems del estudio de la autocorrelacin, tambin se ha obtenido la moda y la


frecuenciadestaencadaunasdelasmediciones.

Losresultadosesperados,segnelnmerodemuestrasyelrangodevaloressonlos
siguientes:
Nmerodemuestras
Rangodevalores
Frecuenciamximaesperada
1000
0a1023
1
10000
0a1023
10
1000
0a500
2
1000
0a100
10
1000
1a6
167
1000
0a1
500
1000
0a2047
1
Tabla19:Resultadosdelafrecuenciadelamodaesperados

93

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8.1 Pruebasconrand()deMatlabyrandom.org

Comosehacomentadoanteriormente,lafinalidaddeestaspruebasesobtenerunos
valoresquenospermitirncompararlabondaddelgeneradordenmerosaleatorioscreado
enesteproyecto.Ademstambinservirnparacompararladiferenciaentreungeneradorde
nmero pseudoaleatorios como es la funcin rand() de Matlab y un generador de nmeros
aleatorios,comoeslaaplicacindelapginawebrandom.org[1].

8.1.1 Funcinrand()deMatlab

Acontinuacinseadjuntaelcdigoquesehautilizadoparaobtenerlosresultadosde
estegenerador:
Datos = round((rand(1000,1))*1023);
[coeficiente,lags] = xcorr(Datos,'coeff');
stem(lags,coeficiente)

Enprimerlugarsehaceunaadecuacindelosvaloresobtenidosconlafuncinrand()
deMatlab.EstaadecuacinsedebeaquelafuncindeMatlabsolonospermiteobtenerun
nmeroentre0y1.

Figura30:Adecuacindelosvaloresobtenidosconlafuncinrand()aunrangode0a1023
Ensegundolugarseutilizalafuncinround().Elusodeestafuncinesdebidoaqueel
valor generado por rand() contiene ms de cuatro posiciones decimales, y al convertirlo
mediantelaadecuacinseobtendraunnmerocondecimales.Paracompararenigualdadde
condicionesconlosresultadosobtenidosporlosgeneradorescreadosseredondeaestacifra.
A continuacin se aplica la funcin de autocorrelacin explicada anteriormente para
obtenerlagrficayelcoeficientedeautocorrelacin.

94

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

En primer lugar se muestra la grfica de los datos creados por la funcin rand() y
adecuados con la funcin de transferencia comentada. Esta grfica se ha obtenido
gracias a las herramientas que se proporcionan para representar grficamente
variablesalojadasenelworkspace:

Figura31:Datosobtenidosconlafuncinrand()deMatlab,rangode0a1023
Se puede observar que parece ser que la funcin rand() de Matlab presenta un
problema parecido al existente en los circuitos creados: La mayor parte de los valores se
encuentranentreelnmero200yel800.
Lamodaobtenidaeselnmero881ysufrecuenciaes6.
Acontinuacinseadjuntalaimagendeloscoeficientesdeautocorrelacinobtenidos:

Figura32:Coeficientesdeautocorrelacinobtenidosconlafuncinrand()deMatlab,rangode
0a1023
Elvalormximoobtenidoesde0,7725(exceptuandoelvalor1,quenotienesentido
contarlocomovalormximopuestoqueeselresultadodecompararlasealconsigomisma
sinningndesplazamiento).Estevalorsehaobtenidodelavariablecreadaenelworkspace.
95

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,7725
881
6
0,7732
156
6
0,7621
534
5
0,7452
172
6
0,7663
113
5
0,7638

5,66
Tabla20:Medicionesrealizadasconlosvaloresobtenidosderand()deMatlab

8.1.2 Pginawebrandom.org[1]

Enestapginawebexistendiferentesgeneradoresdenmerosaleatorios,ysepuede
escogerelrangoyeltipodedatosquesedeseangenerar.Sehaoptadoporlaopcindecrear
nmerosenterosdelmismorangoqueenelcasodelgeneradordeMatlab.
Paraanalizarlosvalores,despusdeobtenerlosdelapginawebsehancopiadoyse
han asignado a una nueva variable creada en el workspace, nombrada como datos. A
continuacinsehanescritolasdossiguienteslneasdecdigoparaobtenerlosresultados:
[Coeficiente,lags] = xcorr(Datos,'coeff');
stem(lags,Coeficiente)

Losresultadosobtenidossonlossiguientes:

Figura33:Datosobtenidosdelapginawebrandom.org[1],rangode0a1023
Del mismo modo que en el caso anterior, parece que la mayora de los valores se
encuentraenunintervaloquevadesde200hasta800.
Lamodaobtenidaeselnmero865ysufrecuenciaes6.

96

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinseadjuntalaimagendeloscoeficientesdeautocorrelacinobtenidos:

Figura34:Coeficientesdeautocorrelacinobtenidosdelosdatosdelapginawebrandom.org
[1],rangode0a1023
Elvalormximoobtenidoesde0,7602(exceptuandoelvalor1,quenotienesentido
contarlocomovalormximopuestoqueeselresultadodecompararlasealconsigomisma
sin ningn desplazamiento). Este valor se ha obtenido de la variable que se crea en el
workspace.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,7602
865
6
0,7703
394
6
0,7547
47
6
0,7550
20
5
0,7685
61
7
0,7617

6
Tabla21:Medicionesrealizadasconlosvaloresobtenidosderandom.org

Vemos como este valor mximo es muy similar al obtenido con la funcin rand() de
Matlab.Elproblemaexistenteconlafuncinrand()deMatlabesquesidalaparaunamisma
razdegeneracindelosvalores,losresultadosobtenidossernexactamentelosmismos.
Una vez realizado este estudio previo, conocemos el entorno de la aleatoriedad.
Ambosgeneradoresnoshanproporcionadounosresultadosentornoal0,76.Deestamanera
yatenemosunaideadecualserunbuencoeficientedealeatoriedad.
Veamosacontinuacinlosresultadosobtenidosconelcdigobsicoparacadaunode
losgeneradores.
Sehanrealizadodospruebas:

Enprimerlugar,sehacomprobadolaaleatoriedaddelosvaloresobtenidosenlaetapa
desalidadelosgeneradoresderuidoblanco,sinutilizarlaetapadeadecuacin.

97

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

EstacomprobacinsehahechonicamenteparaversilosresultadosdelasImagenes
delosciloscopioconcuerdanconlosresultadosobtenidosenMatlab,porqueporejemplo,es
posible que la mayora de los picos existentes en los generadores (como en el caso del
generador con resistencia, donde obtenamos valores de 100 mV) no se aprecien en los
resultadosobtenidosconMatlabdebidoalperiododemuestreo.

En segundo lugar, se ha comprobado la aleatoriedad de los valores obtenidos en la


etapadesalidadelosgeneradoresderuidoblancoutilizandolaetapadeadecuacin.

Esta comprobacin se ha realizado con la finalidad de escoger cual era el mejor


generadordelostrescircuitosquesehabancreado.Unavezsehayadeterminadocualesel
mejor de los tres, se utilizar este generador para desarrollar las pruebas con todos los
cdigos.
En ambos casos de este estudio bsico se han realizado tres pruebas para cada
generador, con el fin de comprobar como afectan estos factores al estudio, modificando los
siguientesparmetros:

Elnmerodemuestras
Elperiododemuestreo

98

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8.2 Cdigobsico,generadorconresistorsinadecuacin

Los parmetros utilizados en la primera medicin son los siguientes: Periodo de


muestreode1ms,1000muestrasyrangodevaloresde0a1023
Lagrficadelosvaloresnumricosobtenidoseslasiguiente:

Figura35:Datosobtenidosdelgeneradorconresistorsinadecuacin,periodode1ms,1000
muestrasyrangode0a1023
Elvalormximoquesehaobtenidoesel7.Recordandolaresolucindelconvertidor,
estevalorcorrespondeaunaamplitudde74,88mV=34,16mV.
Lamodaobtenidaeselnmero0ysufrecuenciaes766.
EnlasImagenesobtenidasconelosciloscopiohabapicosquellegabanhastalos140
mV, por lo que parece ser que la posibilidad de obtener alguno de estos picos es muy baja,
puestoqueen1000muestrasnoseharecibidoningunodeestosvalores.
Sepuedeobservarquelamayoradelosvaloresobtenidosson0,talycomoindicala
moda y su frecuencia, puesto que todava no se ha adecuado la seal para la obtencin
nicamentedevaloresenunrangode0Va5V.
Acontinuacinsemuestralagrficadelaautocorrelacinobtenida:

Figura36:Coeficientesdeautocorrelacinobtenidosdelgeneradorconresistorsinadecuaci,
periodode1ms,1000muestrasyrangode0a1023
99

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Los valores del coeficiente de autocorrelacin obtenidos son muy bajos. El valor
mximo (exceptuando el 1) es de 0,2170. La causa de este resultado tan positivo como
engaosoeslasiguiente:puestoqueseestnobteniendomuchosvaloresqueson0,estos
valorescondicionanelestudiodelaautocorrelacin.Laprobabilidaddeobtenerunvalor0es
muchomayorqueladecualquierotrovalor.
Lasimagenesdelfactordeautocorrelacincorresopondientesenlasetapaspreviasa
laadecuacindelassealesnosepresentarnpuestoquenotienensentidodebidoaquelos
resultadossonengaosos.Lafinalidaddeesteestudioenlaetapadesalidadelgeneradorsin
laadecuacinpertinenteesnicamentecomprobarlaamplituddelosvaloresobtenidos.
La siguiente medicin ha sido tomada con los mismos parmetros que en el caso
anteriorperoelevandoelnmerodemuestrasa10000.

Figura37:Datosobtenidosdelgeneradorconresistorsinadecuacin,periodode1ms,10000
muestrasyrangode0a1023
Se pueden observar las mismas caractersticas comentadas con 1000 muestras, y el
coeficiente de autocorrelacin mximo en este caso es de 0,1990. La moda obtenida es el
nmero0ysufrecuenciaes8181.
Las ltimas mediciones tomadas han sido con los siguientes parmetros: Periodo de
muestrode100ms,1000muestrasyrangodevaloresde0a1023.
Lagrficadelosvaloresnumricosobtenidoseslasiguiente:

Figura38:Datosobtenidosdelgeneradorconresistorsinadecuacin,periodode100ms,1000
muestrasyrangode0a1023
100

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Puede observarse que al aumentar el periodo de muestreo se han obtenido muchos


msvalorescorrespondientesalvalor0.Porotrolado,lospicosobtenidoshandisminuido,y
nicamenteaparecen3valoresquelleganaunaamplitudcorrespondientealvalor6.
Lamodaobtenidaeselnmero0ysufrecuenciaes849.Lafrecuenciahaaumentado
respectoalamedicinrealizadaconunperiododemuestreode1ms.
Elcoeficientedeautocorrelacinmximoesde0,1895.
Nosepuedenextraerunasconclusionestodavasobrecmoafectalamodificacinde
losvaloresdelperiododemuestreoodelnmerodemuestrasdebidoaqueelcoeficientede
autocorrelacinestcondicionadoporlaobtencindelosvalores0.

8.3 Cdigobsico,generadorcondiodoZenersinadecuacin

Los parmetros utilizados en la primera medicin son los siguientes: Periodo de


muestrode1ms,1000muestrasyrangodevaloresde0a1023.

Figura 39: Datos obtenidos del generador con diodo Zener sin adecuacin, periodo de 1 ms,
1000muestrasyrangode0a1023
Lamayoradevaloresledosson0,ynicamenteseobservanunospocosvaloresde1
ynicamentedosvaloresde2.Sicalculamos:24,88mV=9,76mV.
La moda obtenida es el nmero 0 y su frecuencia es 996. La frecuencia obtenida es
superioraladelgeneradorconresistor.
Estos resultados concuerdan con lo previsto, puesto que como se haba visto en las
Imagenesextradasdelosciloscopiolaamplituddeestasealporlogeneralerainferioralos5
mV,yestabamuyprximaalos0V.Poresolamayoradelosvaloresobtenidosson0.

101

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinsemuestralagrficadelaautocorrelacinobtenida:

Figura 40: Coeficientes de autocorrelacin obtenidos del generador con diodo Zener sin
adecuacin,periodode1ms,1000muestrasyrangode0a1023
Delmismomodoqueenelcasoanterior,debidoalaobtencindemuchosvalores0
elcoeficientedeautocorrelacinesmuybajo.Elvalormximodeestecoeficienteesde0.4.
En este caso tampoco podemos extraer conclusiones sobre los valores obtenidos del
coeficiente de autocorrelacin puesto que el resultado vuelve a ser engaoso debido a los
valoresde0obtenidos.
La siguiente medicin ha sido tomada con los mismos parmetros que en el caso
anteriorperoelevandoelnmerodemuestrasa10000.

Figura 41: Datos obtenidos del generador con diodo Zener sin adecuacin, periodo de 1 ms,
10000muestrasyrangode0a1023
Comosepuedeverenlaimagen,elhechodeaumentarelnmerodemuestrasnoha
hechoqueobtengamosmsvaloresdistintosdecero,sinoelresultadocontrario.
Lamodaobtenidaeselnmero0ysufrecuenciaes9995.
El coeficiente mximo de autocorrelacin obtenido en este caso es de 0,29. Ha
disminuidorespectoalcasoanteriorporqueenestecasotenemos10vecesmsencuantoa
muestrasyprcticamenteelmismonmerodemuestrasdistintasa0queenelcasoanterior.

102

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Las ltimas mediciones han sido tomadas modificando el valor del periodo de
muestreo, con los siguientes parmetros: Periodo de muestro de 100 ms, 1000 muestras y
rangodevaloresde0a1023.

Figura42:DatosobtenidosdelgeneradorcondiodoZenersinadecuacin,periodode100ms,
1000muestrasyrangode0a1023
Seobtieneunpeorresultadoaumentandoeltiempodemuestreo.nicamenteseha
obtenidounvalordistintoa0.Lamodaobtenidaeselnmero0ysufrecuenciaes999.
Elmximocoeficientedeautocorrelacinobtenidoesde0,01.Comosepuedededucir
sin ninguna duda no hay que tener en cuenta este valor debido al problema comentado
anteriormenteconlaaparicindelosvalores0.

8.4 Cdigobsico,generadorcontransistorbipolarsinadecuacin

Los parmetros utilizados en la primera medicin son los siguientes: Periodo de


muestrode1ms,1000muestrasyrangodevaloresde0a1023.

Figura43:Datosobtenidosdel generadorcon transistorbipolarsinadecuacin,periodo de1


ms,1000muestrasyrangode0a1023
Losresultadosconcuerdanconlateora.Sepuedeobservarunvalormximode6,que
correspondeaunatensinde29,28mV.Lamodaobtenidaeselnmero0ysufrecuenciaes
873.
103

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Enestecasotambinseobtienenbastantesvaloresde0,porloquelosresultadosde
laautocorrelacinpresentadosacontinuacintambinsernengaosos.

Figura 44: Coeficientes de autocorrelacin obtenidos del generador con transistor bipolar sin
adecuacin,periodode1ms,1000muestrasyrangode0a1023
Laimagenguardasimilitudconladelgeneradorbasadoenelresistor,puestoquese
obtiene un nmerosimilardevaloresdistintosde 0.Elvalormximodeautocorrelacin (de
nuevo exceptuando el 1) es de 0,1606. Del mismo modo que en los casos anteriores, los
resultadosobtenidosconlagrficayloscoeficientesdeautocorrelacinnosonsignificativos.
La siguiente medicin ha sido tomada con los mismos parmetros que en el caso
anteriorperoelevandoelnmerodemuestrasa10000.

Figura45:Datosobtenidosdel generadorcon transistorbipolarsinadecuacin,periodo de1


ms,10000muestrasyrangode0a1023

Se puede observar un resultado similar al obtenido con 1000 muestras. nicamente


apareceunvalorquellegahastael6,ylamayoradevaloresseencuentrapordebajode2,
obteniendounagranmayoradevalorescorrespondientesa0.
104

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lamodaobtenidaeselnmero0ysufrecuenciaes8869.
Elmximocoeficientedeautocorrelacinobtenidoesde0.1259.
Las ltimas mediciones tomadas han sido modificando el valor del periodo de
muestreo,conlossiguientesparmetros:

Periododemuestro:100ms
Nmerodemuestras:1000
Rangodevalores:0a1023

Lagrficadelosvaloresnumricosobtenidoseslasiguiente:

Figura46:Datosobtenidosdelgeneradorcontransistorbipolarsinadecuacin,periodode100
ms,1000muestrasyrangode0a1023
Al aumentar en tiempo de muestreo se obtienen muchos ms valores 0. El valor
mximodisminuyede6a5ylamayoradevaloresdistintosa0sonde1.
Lamodaobtenidaeselnmero0ysufrecuenciaes871.
Enestecasoelmximocoeficientedeautocorrelacinobtenidoesde0,1928.
Una vez realizado este primer estudio del que no se pueden extraer conclusiones
certerassobrelaautocorrelacin,serealizarelmismoestudioconlasealobtenidadespus
derealizarlaadecuacin.
Seanalizarndenuevolostrescircuitos,yenestecasolosresultadosobtenidosenel
estudio de la autocorrelacin sern vlidos. Este estudio servir para determinar que
generadordelostresconstruidosobtienelosmejoresresultados.Posteriormenteseutilizar
estegeneradorpararealizarpruebasconloscdigosrestantes.

105

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8.5 Cdigobsico,generadorconresistorconadecuacin

Los parmetros utilizados en la medicin realizada son los siguientes: Periodo de


muestro de 1 ms, 1000 muestras y rango de valores de 0 a 1023. La grfica de los valores
numricosobtenidoseslasiguiente:

Figura47:Datosobtenidosdelgeneradorconresistorconadecuacinperiodode1ms,1000
muestrasyrangode0a1023
Lamayorpartedelosresultadosobtenidosseencuentranenunrangoquevadesde
300hasta800.Estosresultadosobtenidossedebenaquelospicosquetieneestegenerador
estnmuyaslados,esdecir,lamayorpartedelosvaloresseencuentraenelrangodevalores
obtenido.
Lamodaobtenidaeselnmero495ysufrecuenciaes7.
Lasolucinaesteproblemaseraaumentarlaamplituddelaseal,peroentonceslos
picos se saturaran y aunque los resultados obtenidos en el estudio de la autocorrelacin
seran mejores, no seran unos resultados fiables porque estaramos obteniendo muchos
valores0y1023.Laprobabilidaddeaparicindeestosvaloresseramayor.
Acontinuacinsemuestralagrficadelaautocorrelacinobtenida:
El
valor
mximo
de
autocorrelacin obtenido es de 0,9497.
Estevalorcomparadoconlosvaloresque
obtenamosconlafuncinrand()yconla
web random.org da a entender que los
resultados obtenidos con este generador
sonbastantemalos.

Figura 48: Coeficientes de autocorrelacin obtenidos del generador con resistor con adecuacin,
periodode1ms,1000muestrasyrangode0a1023
106

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8.6 Cdigobsico,generadorcondiodoZenerconadecuacin

Los parmetros utilizados en la medicin realizada son los siguientes: Periodo de


muestro de 1 ms, 1000 muestras y rango de valores de 0 a 1023. La grfica de los valores
numricosobtenidoseslasiguiente:

Figura 49: Datos obtenidos del generador con diodo Zener con adecuacin periodo de 1 ms,
1000muestrasyrangode0a1023
Losresultadossonparecidosalcasoanterior,denuevotenemoselmismoproblema
quesehabacomentadoanteriormenterespectoalospicos.
Lamodaobtenidaeselnmero436ysufrecuenciaes7.
Acontinuacinsemuestralagrficadelaautocorrelacinobtenida:

Como se puede ver


el resultado obtenido es
prcticamente idntico al
casoanterior.Enestecasoel
valormximodelcoeficiente
de autocorrelacin es de
0,9508, peor que en el caso
anterior.

Figura50:CoeficientesdeautocorrelacinobtenidosdelgeneradorcondiodoZenercon
adecuacin,periodode1ms,1000muestrasyrangode0a1023

107

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8.7 Cdigobsico,generadorcontransistorbipolarconadecuacin

Los parmetros utilizados en la medicin realizada son los siguientes: Periodo de


muestro de 1 ms, 1000 muestras y rango de valores de 0 a 1023.La grfica de los valores
numricosobtenidoseslasiguiente:

Figura51:Datosobtenidosdelgeneradorcontransistorbipolarconadecuacin,periodode1
ms,1000muestrasyrangode0a1023
Se puede ver claramente como en este caso los resultados obtenidos son mejores
puesto que la seal no se reduce a un rango de 300 a 800 sino que se obtienen bastantes
valorescercanosalosextremos.
Lamodaobtenidaeselnmero1023ysufrecuenciaes47.
Los buenos resultados obtenidos se deben a lo comentado tras la obtencin de las
Imagenesconelosciloscopio:conelgeneradorbasadoeneltransistorbipolar,losvaloresde
los picos no distaban tanto del valor medio de la seal como en el caso de los otros dos
generadores.
Acontinuacinsemuestralagrficadelaautocorrelacinobtenida:

Figura52:Coeficientesdeautocorrelacinobtenidosdelgeneradorcontransistorbipolarcon
adecuacin,periodode1ms,1000muestrasyrangode0a1023
108

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

En este caso el resultado obtenido en la autocorrelacin es mucho mejor que en el


caso de los otros dos generadores aunque todava se encuentra en desventaja frente a los
generadores de Matlab y de la pgina web random.org. Esta desventaja es debida a que
aunque los valores obtenidos se aproximen ms a los extremos que en el caso de los otros
generadores,todavaseobtienenpocosvalorescercanosaestosextremos.
Tras este primer estudio se puede determinar que el generador que mejores
resultados nos va a proporcionar es el generador basado en el transistor bipolar. Por ello se
efectuarnconllaspruebascontodosloscdigoscreados.
Porlotantoelprimerpasosercomprobarcomoafectaelcambiodelosparmetros
que introduce el usuario al estudio de la autocorrelacin. El primer cdigo utilizado para
estudiarestoscambiosserelcdigoutilizadohastaelmomento:elcdigobsico.

8.8 Estudio de los resultados obtenidos con el cdigo bsico y el


generadorcontransistorbipolar

Sehanrealizadounaseriedemedicionesconelfindeestudiarlaposibleafectacinde
laautocorrelacinfrentealcambiodelosparmtrosintroducidosporelusuario.
Sehanrealizadolassiguientesmediciones:
Periododemuestreo
1ms
1ms
10ms
50ms
100ms
500ms
10ms
10ms
10ms
10ms
10ms

Nmerodemuestras
Rangodevalores
1000muestras
0a1023
10000muestras
0a1023
1000muestras
0a1023
1000muestras
0a1023
1000muestras
0a1023
1000muestras
0a1023
1000muestras
0a500
1000muestras
0a100
1000muestras
1a6
1000muestras
0a1
1000muestras
0a2047
Tabla22:Medicionesrealizadasconelcdigobsico

Las dos primeras mediciones realizadas sirven para ver como afecta el nmero de
muestras al resultado obtenido. En caso de que la diferencia entre utilizar 1000 o 10000
muestrasnoseasignificativa,seutilizaran1000muestrasporelahorrodetiempoquesupone
enlaobtencindelosvalores.
Veamoslosresultadosobtenidosenesteprimerestudio:

Utilizando1000muestras,conunperiododemuestreode1msyunrangodevalores
de0a1023,lagrficadelosdatosobtenidoseslasiguiente:

109

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

Figura53:Datosobtenidosconunperiodode1ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero1023ysufrecuenciaes47.

Figura54:Coeficientesdeautocorrelacinobtenidosconunperiodode1ms,1000muestrasy
rangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitarioesde0,8276.

Utilizando10000muestras,conunperiododemuestreode1msyunrangodevalores
de0a1023,noesnecesarioadjuntarlaimagendelagrficadelosdatosobtenidos
porquecomoesunnmeromuyelevadodevaloreslaimagenseverprcticamente
todaencolorazulporlasrectastrazadasentrelosdistintosvalores.

Lagrficadelosvaloresdelcoeficientedeautocorrelacinesla

siguiente:

Figura55:Coeficientesdeautocorrelacinobtenidosconunperiodode1ms,10000muestrasy
rangode0a1023
110

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lamodaobtenidaeselnmero1023ysufrecuenciaes451.
Enestecasoelmximocoeficientedeautocorrelacinexceptuandoelvalorunitarioes
de0,8212.Seobtieneunadiferenciadevaloresdemilsimasrespectoalamedicintomada
con1000muestras.Porellolasmedicionesserealizarncon1000muestras.
Sepuede comprobar,porlamodaobtenida,quelaamplituddelasealesexcesiva,
puesto que se han obtenido muchos valores mximos de 1023. Por ello, para realizar las
siguientesmedicionessehaoptadopordisminuirlaamplituddelaseal.
Lassiguientesmedicioneshansidorealizadasconlosdistintosperiodosdemuestreo.
En todas estas mediciones el nmero de muestras es de 1000 y el rango es de 0 a 1023. En
estoscasosseutilizaelrangode0a1023puestoquesuponelamximaresolucindevalores
disponibleconestecdigo.

Conunperiododemuestreode10ms,lagrficadelosdatosobtenidoseslasiguiente:

Figura56:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero1023ysufrecuenciaes28.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura57:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8358
111

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Conunperiododemuestreode50ms,lagrficadelosdatosobtenidoseslasiguiente:

Figura58:Datosobtenidosconunperiodode50ms,1000muestrasyrangode0a1023

Lamodaobtenidaeselnmero0ysufrecuenciaes10.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura59:Coeficientesdeautocorrelacinobtenidosconunperiodode50ms,1000muestrasy
rangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8529.

112

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un periodo de muestreo de 100 ms, la grfica de los datos obtenidos es la


siguiente:

Figura60:Datosobtenidosconunperiodode100ms,1000muestrasyrangode0a1023

Lamodaobtenidaeselnmero1023ysufrecuenciaes17.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura61:Coeficientesdeautocorrelacinobtenidosconunperiodode100ms,1000muestras
yrangode0a1023

Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8490.

113

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un periodo de muestreo de 500 ms, la grfica de los datos obtenidos es la


siguiente:

Figura62:Datosobtenidosconunperiodode500ms,1000muestrasyrangode0a1023

Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura63:Coeficientesdeautocorrelacinobtenidosconunperiodode500ms,1000muestras
yrangode0a1023
Lamodaobtenidaeselnmero0ysufrecuenciaes12.
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8501.

Se puede observar lo siguiente: a medida que aumenta el periodo de muestreo


empeora el mximo coeficiente de autocorrelacin obtenido. Utilizando un periodo de
muestreo de 1 ms obtenemos un valor de 0,8276, con 10 ms obtenemos un coeficiente de
autocorrelacinmximocercanoal0,8358,mientrasquecuandoaumentamosesteperiodoa
50 ms, 100 ms y 500 ms pasamos a obtener un coeficiente de autocorrelacin mximo por
encima de 0,84. Por lo tanto, se puede concluir que aumentando el periodo de muestreo
obtenemosunamenoraleatoriedadenlosvaloresobtenidos.
114

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lassiguientesmedicioneshansidorealizadasconlosdistintosrangosdevalores.En
todasestasmedicioneselnmerodemuestrasesde1000yelperiododemuestreode10ms.

Conunrangodevaloresde0a500,lagrficadelosdatosobtenidoseslasiguiente:

Figura64:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a500

Lamodaobtenidaeselnmero500ysufrecuenciaes42.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura65:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a500
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8169.

Como primera observacin, el coeficiente ha disminuido prcticamente en dos


centsimasrespectoalcoeficienteconunrangode0a1023.
115

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Conunrangodevaloresde0a100,lagrficadelosdatosobtenidoseslasiguiente:

Figura66:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a100

Lamodaobtenidaeselnmero100ysufrecuenciaes37.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura67:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a100
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8142.

Se obtiene un coeficiente mximo de autocorrelacin inferior al que habamos


obtenidoconelrangode0a1023,einferioralobtenidoconelrangode0a500.

116

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un rango de valores de 1 a 6, simulando un dado electrnico, la grfica de los


datosobtenidoseslasiguiente:

Figura68:Datosobtenidosconunperiodode10ms,1000muestrasyrangode1a6

Lamodaobtenidaeselnmero3ysufrecuenciaes293.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura69:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode1a6
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8952.

Este valor ha empeorado respecto a los anteriores casos. El problema reside en que
solohay6posiblesvalores,deloscualeslosvaloresextremostienenunamenorprobabilidad
de sucesin, por lo que pasamos a obtener un rango de 4 posibles valores. Este problema
debidoaladifcilobtencindeextremossemejorargraciasalsiguientecdigoutilizado.
117

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un rango de valores de 0 a 1, simulando la obtencin de un nmero binario


aleatorio,lagrficadelosdatosobtenidoseslasiguiente:

Figura70:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1

Aunque pueda parecer que aparecen tres valores (0, 0.5 y 1), realmente solo se
obtienen 2, que son el 0 y el 1. Este efecto visual es debido a que como hay muchos datos,
parairdelvalor1al0setrazandosrectasverticalesqueseunenenelvalorde0,5.
La moda obtenida es el nmero 1 y su frecuencia es 519. Tiene una frecuencia muy
similaraladelnmero0,talycomocabeesperar.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura71:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode0a1
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,5414.

Elvalorobtenidoenelestudiodelaautocorrelacinnoresultasignificativopuestoque
comosehavistoenelestudiodelosresultadosobtenidosdeloscircuitossinlaadecuacin,el
valor0hacequelosresultadosobtenidosseanengaosos.
118

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Porltimo,conunrangodevaloresde0a2047,queeseldobledelrangode0a1023
pero con la misma resolucin. Se deberan obtener unos resultados similares. La
grficadelosdatosobtenidoseslasiguiente:

Figura72:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a2047

Lamodaobtenidaeselnmero2047ysufrecuenciaes38.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura73:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a2047
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8317,
talycomoseprevea.

119

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

A continuacin se adjunta una tabla resumiendo los resultados obtenidos para cada
unadelasmediciones.
Periodode
muestreo
1ms
1ms
10ms
50ms
100ms
500ms
10ms
10ms
10ms
10ms
10ms

Nmerode
muestras

Rangode
valores

Mximo
coeficientede
autocorrelacin*
0.8276
0.8212

Moda

Frecuencia
dela
moda
47
451

1000muestras
0a1023
1023
10000
0a1023
1023
muestras
1000muestras
0a1023
0.8358
1023
28
1000muestras
0a1023
0.8529
0
10
1000muestras
0a1023
0.8490
1023
17
1000muestras
0a1023
0.8501
0
12
1000muestras
0a500
0.8169
500
42
1000muestras
0a100
0.8142
100
37
1000muestras
1a6
0.8952
3
293
1000muestras
0a1
0.5414
1
519
1000muestras
0a2047
0.8317
2047
38
Tabla23:Resultadosobtenidosdelasmedicionesrealizadasconelcdigobsico

*Exceptuandoelvalorunitario

Lasconclusionesextraidassonlassiguientes:

Referente al nmero de muestras: este factor solo mdifica los valores de las
milsimas obtenidas en el estudio del coeficiente de autocorrelacin, por lo que
podemos utilizar 1000 muestras en lugar de 10000 y obtener unos resultados muy
similares.

Referentealperiododemuestreo:amedidaqueaumentaelperiododemuestreo,el
resultado obtenido en el estudio de la aleatoriedad empeora puesto que el mximo
coeficiente de autocorrelacin obtenido aumenta. Aunque el coeficiente de
autocorrelacinempeore,semejoralafrecuenciadeobtencindelamodapuestoque
disminuye.

Referente al rango de valores: a medida que disminuye al rango de valores se


obtienenmejoresresultadosenelestudiodelaaleatoriedad.

Sin embargo, y tal y como se ha visto en el ejemplo del dado electrnico, una
reduccin muy drstica del rango de valores supone un empeoramiento de los resultados
obtenidosporelproblemacomentadodelosvaloresextremos.
Con el siguiente cdigo probado se pretenden mejorar los resultados obtenidos con
este cdigo bsico y solucionar el problema existente acerca de la baja probabilidad de
obtencindevaloresextremos.

120

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8.9 Estudio de los resultados obtenidos con el cdigo con filtro en la


recepcindevaloresyelgeneradorcontransistorbipolar

Unavezvistoslosresultadosobtenidosconelcdigobsicoenelsubcaptuloanterior,
a continuacin se ha comprobado si este cdigo realizado con la finalidad de mejorar los
resultados del cdigo anterior funciona correctamente, es decir, si obtenemos unos mejores
resultadosenelestudiodelaaleatoriedad.
Paraello,sehanrealizadolasmismasmedicionesqueenelcasoanterior:
Periododemuestreo
Nmerodemuestras
Rangodevalores
1ms
1000muestras
0a1023
1ms
10000muestras
0a1023
10ms
1000muestras
0a1023
50ms
1000muestras
0a1023
100ms
1000muestras
0a1023
500ms
1000muestras
0a1023
10ms
1000muestras
0a500
10ms
1000muestras
0a100
10ms
1000muestras
1a6
10ms
1000muestras
0a1
10ms
1000muestras
0a2047
Tabla24:Medicionesrealizadasconelcdigoconfiltroenlarecepcindevalores
Las dos primeras mediciones realizadas sirven para ver como afecta el nmero de
muestras al resultado obtenido. En caso de que la diferencia entre utilizar 1000 o 10000
muestrasnoseasignificativa,seutilizaran1000muestrasporelahorrodetiempoquesupone
enlarealizacindelestudio.
Losresultadosobtenidosenesteprimerestudiosonlossiguientes:

Utilizando1000muestras,conunperiododemuestreode1msyunrangodevalores
de0a1023,lagrficadelosdatosobtenidoseslasiguiente:

Figura74:Datosobtenidosconunperiodode1ms,1000muestrasyrangode0a1023
121

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lamodaobtenidaeselnmero1023ysufrecuenciaes77.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura75:Coeficientesdeautocorrelacinobtenidosconunperiodode1ms,1000muestrasy
rangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7511.

Utilizando10000muestras,conunperiododemuestreode1msyunrangodevalores
de0a1023,noesnecesarioadjuntarlaimagendelagrficadelosdatosobtenidos
porquecomoesunnmeromuyelevadodevaloreslaimagenseverprcticamente
todaencolorazulporlasrectastrazadasentrelosdistintosvalores.

Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura76:Coeficientesdeautocorrelacinobtenidosconunperiodode1ms,10000muestrasy
rangode0a1023
Enestecasoelmximocoeficientedeautocorrelacinexceptuandoelvalorunitarioes
de 0,7495. Por lo tanto, se obtiene una diferencia de dos milsimas en el coeficiente de
autocorrelacinmximo.
Lamodaobtenidaeselnmero1023ysufrecuenciaes749.
122

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Estapequeadiferenciaobtenidapermiteprocederarealizarlasmedicionescon1000
muestraspuestoqueelresultadoobtenidoesmuysimilar.
La segunda conclusin que se puede extraer es que este cdigo permite resolver el
problemadelosvaloresdelosextremosexistentesenelcdigoanterior.Elinconvenientees
queesuncdigomslentopuestoquedescartaalgunosdelosvaloresrecibidos.
La tercera conclusin obtenida es una rpida comparacin con los generadores de
Matlabyderandom.org.Comopodemosver,elmximocoeficientedealeatoriedadobtenido,
exceptuandoelvalorunitario,esmejorqueenelcasodelosotrosdosgeneradores.
A continuacin se adjuntan las mediciones realizadas con los distintos periodos de
muestreo.Elnmerodemuestrasesde1000yelrangoesde0a1023,quesuponelamxima
resolucindevaloresdisponibleconestecdigo.

Conunperiododemuestreode10ms,lagrficadelosdatosobtenidoseslasiguiente:

Figura77:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero1023ysufrecuenciaes80.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura78:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7563.
123

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Conunperiododemuestreode50ms,lagrficadelosdatosobtenidoseslasiguiente:

Figura79:Datosobtenidosconunperiodode50ms,1000muestrasyrangode0a1023

Lamodaobtenidaeselnmero1023ysufrecuenciaes84.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura80:Coeficientesdeautocorrelacinobtenidosconunperiodode50ms,1000muestrasy
rangode0a1023

Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7307.

124

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un periodo de muestreo de 100 ms, la grfica de los datos obtenidos es la


siguiente:

Figura81:Datosobtenidosconunperiodode100ms,1000muestrasyrangode0a1023

Lamodaobtenidaeselnmero1023ysufrecuenciaes145.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura82:Coeficientesdeautocorrelacinobtenidosconunperiodode100ms,1000muestras
yrangode0a1023

Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7288.

125

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un periodo de muestreo de 500 ms, la grfica de los datos obtenidos es la


siguiente:

Figura83:Datosobtenidosconunperiodode500ms,1000muestrasyrangode0a1023

Lamodaobtenidaeselnmero1023ysufrecuenciaes83.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura84:Coeficientesdeautocorrelacinobtenidosconunperiodode500ms,1000muestras
yrangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7602.

Como se puede observar analizando los resultados obtenidos, no existe una relacin
definidaentreelaumentodelperiododemuestreoylosresultadosobtenidosenelestudiode
la aleatoriedad. Parece que el mximo coeficiente de autocorrelacin obtenido disminuya
conformeaumentaelperiododemuestreo,perolaltimamedicinrealizadaconunperiodo
demuestreode500msnocumpleestasuposicin.
126

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

A continuacin se adjuntan las mediciones realizadas con los distintos rangos de


valores. En todas estas mediciones el nmero de muestras es de 1000 y el periodo de
muestreode10ms.

Conunrangodevaloresde0a500,lagrficadelosdatosobtenidoseslasiguiente:

Figura85:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a500

Lamodaobtenidaeselnmero500ysufrecuenciaes84.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura86:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a500
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7663.

127

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Elcoeficientehaaumentadoprcticamenteenunadcimarespectoalcoeficientecon
unrangode0a1023.

Conunrangodevaloresde0a100,lagrficadelosdatosobtenidoseslasiguiente:

Figura87:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a100
Lamodaobtenidaeselnmero100ysufrecuenciaes68.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura88:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a100
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7475.

En este caso se obtiene un coeficiente mximo de autocorrelacin inferior al que se


habaobtenidoconelrangode0a1023,einferioralobtenidoconelrangode0a500.
128

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un rango de valores de 1 a 6, simulando un dado electrnico, la grfica de los


datosobtenidoseslasiguiente:

Figura89:Datosobtenidosconunperiodode10ms,1000muestrasyrangode1a6

Lamodaobtenidaeselnmero5ysufrecuenciaes307.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura90:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode1a6
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,9351.

El valor del coeficiente ha empeorado respecto a los anteriores casos. El problema


reside en que tal y como se puede ver en la imagen de los datos, existe una densidad de
valoresmuchomayorenelrangocomprendidoentre3y5.
129

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un rango de valores de 0 a 1, simulando la obtencin de un nmero binario


aleatorio,lagrficadelosdatosobtenidoseslasiguiente:

Figura91:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1
Lamodaobtenidaeselnmero0yel1,ysufrecuenciaes500.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura92:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a1
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,998.

Como se puede ver en la imagen de los datos y en el valor del coeficiente de


autocorrelacin obtenido, no existe aleatoriedad alguna. Este hecho es debido a que por el
cdigoutilizadocadavezquesaleun0acontinuacindebersalirun1paraaceptarelvalor,y
posteriormenteun0.
130

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Porltimo,conunrangodevaloresde0a2047,queeseldobledelrangode0a1023
pero con la misma resolucin, por lo que deberamos obtener unos resultados
similares.Lagrficadelosdatosobtenidoseslasiguiente:

Figura93:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a2047

Lamodaobtenidaeselnmero2047ysufrecuenciaes85.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura94:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a2047
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7473,
valorligeramenteinferioralquesehabaobtenidoconelrangode0a1023.

A continuacin se adjunta una tabla resumiendo los resultados obtenidos para cada
unadelasmediciones.
131

Generadordenmerosaleatorios

Periodode
Nmerode
muestreo
muestras

ResultadosobtenidosconMatlab

Rangode
valores

1ms
1ms

Mximo
coeficientede
autocorrelacin*
0.7511
0.7495

Moda

Frecuencia
dela
moda
77
749

1000muestras
0a1023
1023
10000
0a1023
1023
muestras
10ms
1000muestras
0a1023
0.7563
1023
80
50ms
1000muestras
0a1023
0.7307
1023
84
100ms
1000muestras
0a1023
0.7288
1023
145
500ms
1000muestras
0a1023
0.7602
1023
83
10ms
1000muestras
0a500
0.7663
500
84
10ms
1000muestras
0a100
0.7475
100
68
10ms
1000muestras
1a6
0.9351
5
307
10ms
1000muestras
0a1
0.9980
0y1
500
10ms
1000muestras
0a2047
0.7473
2047
85
Tabla 25: Resultados obtenidos de las mediciones realizadas con el cdigo con filtro en la
recepcindevalores

*Exceptuandoelvalorunitario

Lasconclusionesextraidassonlassiguientes:
Referente al nmero de muestras: este factor solo mdifica los valores de las
milsimasobtenidasenelestudiodelaautocorrelacin,porloquesepuedeutilizar
1000muestrasenlugarde10000yobtenerunosresultadosmuysimilares.

Referentealperiododemuestreo:amedidaqueaumentaelperiododemuestreo,el
resultadoobtenidoenelestudiodelaaleatoriedadmejora.Peroexisteunaexcepcin,
cuando obtenemos el valor referente a la medicin realizada con un periodo de
muestreode500ms,elresultadoempeora.

Referentealrangodevalores:nosepuedeextraerunaconclusincertera,puestoque
parece ser que los resultados obtenidos no siguen ningn patrn: parece que
conforme disminuye el rango de valores empeora el resultado obtenido, pero la
medicinrealizadaconunrangodevaloresde0a100nocumpleestateora.

En trminos generales se han mejorado los resultados en el estudio de la


autocorrelacin respecto al cdigo bsico, reduciendo los mximos coeficientes de
autocorrelacin prcticamente en una dcima. Este hecho concuerda con lo previsto por el
conocimiento del problema existente. Por el contrario, se ha empeorado los valores de
frecuenciaobtenidosdelamodaencadaunadelasmediciones.

Traslaspruebasrealizadasconestosdosprimeroscdigos,sepuedenestablecerunas
primerasconclusiones:

Enprimerlugar,losresultadosobtenidosconelcdigobsicoseencuentranengran
desventajafrentealosgeneradoresdeMatlabyderandom.org

132

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Ensegundolugar,losresultadosobtenidosenelcoeficientedeautocorrelacinconel
cdido con filtro en la recepcin de valores mejoran respecto a los obtenidos con el
cdigo bsico. A pesar de eso, el resultado obtenido no es una secuencia aleatoria
debidoaquesefuerzalaobtencindelsiguientevaloraunrangodeterminado.

Los dos siguientes cdigos son los que a priori pueden presentar unos mejores
resultados.Porello,lasmedicionesrealizadasparalosdossiguientescdigosseefectuarn5
veces para cada conjunto de parmetros, con el fin de determinar un valor medio de estas
mediciones.

Enloscdigosanterioresnosehanrealizado5medicionesdebidoaquelosproblemas
quepresentacadaunodeelloshacenquelosresultadosobtenidosnoseandeinters.

133

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8.10 Estudio de los resultados obtenidos con el cdigo de nmeros


pareseimparesyelgeneradorcontransistorbipolar

A continuacin se ha realizado un estudio similar a los anteriores para el cdigo de


nmerospareseimpares.
Paraellosehanrealizadolamayoradelasmedicionesqueenloscasosanteriores.Las
que no se han realizado ha sido debido a la dificultad que plantea este generador por el
tiempo que requiere, puesto que por ejemplo, para la obtencin de un dato de 0 a 1023
requiereuntiempo10vecessuperioraloscasosanteriores,porqueestecdigoobtieneunbit
cadavezquerecibeunvalor.
Periododemuestreo
Nmerodemuestras
Rangodevalores
1ms
1000muestras
0a1023
1ms
2000muestras
0a1023
10ms
1000muestras
0a1023
100ms
1000muestras
0a1023
10ms
1000muestras
0a500
10ms
1000muestras
0a100
10ms
1000muestras
1a6
10ms
1000muestras
0a1
Tabla26:Medicionesrealizadasconelcdigocondenmerospareseimpares
Las dos primeras mediciones realizadas sirven para ver como afecta el nmero de
muestras al resultado obtenido. En caso de que la diferencia entre utilizar 1000 o 10000
muestrasnoseasignificativa,seutilizaran1000muestrasporelahorrodetiempoquesupone
enlarealizacindelestudio.

Utilizando1000muestras,conunperiododemuestreode1msyunrangodevalores
de0a1023,lagrficadelosdatosobtenidoseslasiguiente:

Figura95:Datosobtenidosconunperiodode1ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero76ysufrecuenciaes7.

134

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura96:Coeficientesdeautocorrelacinobtenidosconunperiodode1ms,1000muestrasy
rangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitarioesde0,7302.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,7278
120
5
0,7434
582
6
0,7497
18
5
0,7479
513
6
0,7302
76
7
0,7398

5,86
Tabla27:Medicionesconunperiodode1ms,1000muestrasyrangode0a1023

Respectoalosresultadosdeloscdigosanteriores,sehamejoradonotablementeel
resultadoobtenidoenlafrecuenciadelamoda.

Utilizando10000muestras,conunperiododemuestreode1msyunrangodevalores
de 0 a 1023, la grfica de los datos no se adjunta puesto que ser vera nicamente
todoelrecuadroencolorazul,debidoalaltonmerodemuestrasdeseado.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura97:Coeficientesdeautocorrelacinobtenidosconunperiodode1ms,10000muestrasy
rangode0a1023
135

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lamodaobtenidaeselnmero240ysufrecuenciaes19.
Enestecasoelmximocoeficientedeautocorrelacinexceptuandoelvalorunitarioes
de0,7403.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,7421
951
20
0,7419
517
24
0,7348
368
23
0,7397
466
21
0,7403
240
19
0,7398

21,421
Tabla28:Medicionesconunperiodode1ms,10000muestrasyrangode0a1023

Se ha dado la coincidencia de que la diferencia es nula respecto a la medicin con


1000 muestras. Se esperaba que fuera pequea, pero no nula. Por ello se realizarn las
medicionescon1000muestras.
La segunda conclusin obtenida es una rpida comparacin con los generadores de
Matlab y de random.org: los resultados obtenidos son comparables a los de estos dos
generadores puesto que no solo el coeficiente de autocorrelacin tiene un valor similar
(inclusomejor),sinqueademslafrecuenciadelamodaobtenidaesmuyparecida.
Estaltimacaracterstica eslaquepermiteafirmar quelosresultadosobtenidoscon
estecdigosonmejoresquelosobtenidosconlosdosanteriorescdigos.
A continuacin se adjuntan las mediciones realizadas con los distintos periodos de
muestreo.Entodasestasmedicioneselnmerodemuestrasesde1000yelrangoesde0a
1023. En este caso la eleccin de este rango es debida nicamente a la posibilidad de
comparacinderesultadosconlosdosanteriorescdigos.

Conunperiododemuestreode10ms,lagrficadelosdatosobtenidoseslasiguiente:

Figura98:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero23ysufrecuenciaes5.

136

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura99:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7441.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,7440
118
5
0,7463
449
5
0,7303
190
5
0,7455
46
6
0,7441
23
5
0,7420

5,25
Tabla29:Medicionesconunperiodode10ms,1000muestrasyrangode0a1023

Con un periodo de muestreo de 100 ms, la grfica de los datos obtenidos es la


siguiente:

Figura100:Datosobtenidosconunperiodode100ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero9ysufrecuenciaes5.

137

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura 101: Coeficientes de autocorrelacin obtenidos con un periodo de 100 ms, 1000
muestrasyrangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7560.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,7458
102
5
0,7575
806
6
0,7555
206
5
0,7518
12
5
0,7560
9
5
0,7533

5,25
Tabla30:Medicionesconunperiodode100ms,1000muestrasyrangode0a1023

A medida que aumenta el periodo de muestreo disminuye la calidad de los valores


obtenidospuestoqueaumentaelmximocoeficientedeautocorrelacin.

A continuacin se adjuntan las mediciones realizadas con los distintos rangos de


valores. En todas estas mediciones el nmero de muestras es de 1000 y el periodo de
muestreode10ms.

138

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Conunrangodevaloresde0a500,lagrficadelosdatosobtenidoseslasiguiente:

Figura102:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a500

Lamodaobtenidaeselnmero262ysufrecuenciaes8.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura103:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode0a500
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7435.

139

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,7415
114
8
0,7685
159
11
0,7560
443
7
0,7368
76
7
0,7435
262
8
0,7493

8,28
Tabla31:Medicionesconunperiodode10ms,1000muestrasyrangode0a500

Como primera observacin, el coeficiente ha aumentado en menos de una dcima


respectoalcoeficienteconunrangode0a1023.

Conunrangodevaloresde0a100,lagrficadelosdatosobtenidoseslasiguiente:

Figura104:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a100
Lamodaobtenidaeselnmero50ysufrecuenciaes25.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura105:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode0a100

140

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7621.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,7542
65
26
0,7391
91
28
0,7533
69
21
0,7520
33
23
0,7621
50
25
0,7521

24,625
Tabla32:Medicionesconunperiodode10ms,1000muestrasyrangode0a100

Estevaloresligeramentesuperioralquehabamosobtenidoconelrangode0a500,y
superiorenprcticamenteunadcimaalobtenidoconelrangode0a1023,porloqueparece
queconformedisminuyeelrangodevaloresempeoranlosresultadosobtenidos.
Este problema es debido a que como no se obtienen valores extremos, conforme
disminuyeelrangodesadodevalores,ladensidaddelosvalorescadavezseconcentraenuna
zonamspequea.

Con un rango de valores de 1 a 6, simulando un dado electrnico, la grfica de los


datosobtenidoseslasiguiente:

Figura106:Datosobtenidosconunperiodode10ms,1000muestrasyrangode1a6
Lamodaobtenidaeselnmero2ysufrecuenciaes260.

141

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura107:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode1a6
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8183.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.
Moda
Frec.delamoda
0,8116
2
270
0,8233
4
253
0,8115
5
256
0,8279
1
260
0,8183
2
260
0,8185

259,8260
Tabla33:Medicionesconunperiodode10ms,1000muestrasyrangode1a6

Del mismo modo que ocurra en los anteriores cdigos, este valor ha empeorado
respectoalosanteriorescasos.Anaslosresultadosobtenidossonmejoresqueenlosotros
cdigos,talycomosemostrarenunatablacomparativaposteriormentealestudioindividual
decadaunodeloscuatrocdigos.

142

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un rango de valores de 0 a 1, simulando la obtencin de un nmero binario


aleatorio,lagrficadelosdatosobtenidoseslasiguiente:

Figura108:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1
Lamodaobtenidaeselnmero0ysufrecuenciaes516.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura109:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode0a1
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,5145.

143

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,5142
1
508
0,5255
1
509
0,4697
0
555
0,4788
0
528
0,5145
0
516
0,5005

523,2523
Tabla34:Medicionesconunperiodode10ms,1000muestrasyrangode1a6

En este caso ocurre lo mismo que en el estudio del cdigo bsico realizado: la
obtencin de los valores 0 hace que el resultado obtenido sea engaoso. An as este
resultadonosservirparacompararlosresultadosobtenidosentrelosdistintoscdigos.

A continuacin se adjunta una tabla resumiendo los resultados obtenidos para cada
unadelasmediciones.
Periodode
Nmerode
Rangode
Mximocoeficiente Frecuencia
muestreo
muestras
valores
deautocorrelacin* delamoda
1ms
1000muestras
0a1023
0,7398
6
1ms
10000muestras
0a1023
0,7398
21
10ms
1000muestras
0a1023
0,7420
5
100ms
1000muestras
0a1023
0,7533
5
10ms
1000muestras
0a500
0,7493
8
10ms
1000muestras
0a100
0,7521
25
10ms
1000muestras
1a6
0,8185
260
10ms
1000muestras
0a1
0,5005
523
Tabla 35: Resultados de las mediciones realizadas con el cdigo con de nmeros pares e
impares

*Exceptuandoelvalorunitario

Lasconclusionesextraidassonlassiguientes:

Referente al nmero de muestras: este factor prcticamente no modifica los


resultadosobtenidosenelestudiodelaautocorrelacin,porlosepuedeutilizar1000
muestrasenlugarde10000yobtenerunosresultadosmuysimilares.

Referentealperiododemuestreo:sepuedeobservarcomoamedidaqueaumentael
periododemuestreo,elresultadoobtenidoenelestudiodelaaleatoriedadempeora.

Referentealrangodevalores:sepuedeobservarcomoelrangode0a1023tieneuna
variacin de 7 milsimas respecto al rango de 0 a 500, y el rango de 0 a 500 una
variacin de 3 milsimas respecto al rango de 0 a 100. Por lo tanto la diferencia es
pequea.Encambio,conunrangode1a6elresultadoempeoraconsiderablemente.

144

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

En trminos generales los resultados del coeficiente de autocorrelacin obtenidos


estnalmismonivelquelosdelcdigofiltrado.Sinosfijamosenlosresultadosdelestudiode
lamodaydesufrecuencia,enestecasolosresultadoshanmejoradomuynotablemente.
Se han mejorando los resultados en el estudio de la aleatoriedad obtenidos con el
generador de Matlab y de random.org, tanto en el estudio de autocorrelacin como en el
estudio de la moda y su frecuencia. La frecuencia de la moda obtenida en este cdigo en
igualdaddecondiciones(1000muestrasyunrangode0a1023)esinferioralaobtenidaconel
generadordeMatlabylapginawebrandom.org
A continuacin se realizar el mismo estudio con el ltimo cdigo, utilizando las
mismasmedicionesqueenestecasodebidoalaexistenciadelmismoproblemadelentituden
lageneracindelosvalores.Posteriormentealestudiorealizadosobreesteltimocdigose
compararnlosresultadosobtenidosconloscuatrocdigos.

8.11 Estudiodelosresultadosobtenidosconelcdigodevalormedioy
elgeneradorcontransistorbipolar

Unavezvistoslosresultadosobtenidosconloscdigosanteriores,acontinuacinse
harealizadoelmismoestudioparaelcdigodevalormedio.
Paraellosehanrealizadolasmismasmedicionesqueenelcasodelcdigodenmeros
pareseimpares,debidoaqueestecdigogeneralosnmerosaleatoriosdemanerasimilaral
anteriormentecomentado.
Periododemuestreo
Nmerodemuestras
Rangodevalores
1ms
1000muestras
0a1023
1ms
10000muestras
0a1023
10ms
1000muestras
0a1023
100ms
1000muestras
0a1023
10ms
1000muestras
0a500
10ms
1000muestras
0a100
10ms
1000muestras
1a6
10ms
1000muestras
0a1
Tabla36:Medicionesrealizadasconelcdigocondevalormedio
Las dos primeras mediciones realizadas sirven para ver como afecta el nmero de
muestras al resultado obtenido. En caso de que la diferencia entre utilizar 1000 o 10000
muestrasnoseasignificativa,seutilizaran1000muestrasporelahorrodetiempoquesupone
enlarealizacindelestudio.

145

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Utilizando1000muestras,conunperiododemuestreode1msyunrangodevalores
de0a1023,lagrficadelosdatosobtenidoseslasiguiente:

Figura110:Datosobtenidosconunperiodode1ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero593ysufrecuenciaes8.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura111:Coeficientesdeautocorrelacinobtenidosconunperiodode1ms,1000muestrasy
rangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitarioesde0,7478.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,7475
451
6
0,7638
218
6
0,7646
15
5
0,7677
306
5
0,7478
593
8
0,7583

6
Tabla37:Medicionesconunperiodode1ms,1000muestrasyrangode0a1023

146

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Utilizando10000muestras,conunperiododemuestreode1msyunrangodevalores
de0a1023,lagrficadelosdatosobtenidosnoseadjuntadebidoaquecon10000
muestraslainformacinqueseobtienedeestagrficaseranula.

Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura112:Coeficientesdeautocorrelacinobtenidosconunperiodode1ms,10000muestras
yrangode0a1023
Lamodaobtenidaeselnmero289ysufrecuenciaes28.
Enestecasoelmximocoeficientedeautocorrelacinexceptuandoelvalorunitarioes
de0,7362.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,7557
951
20
0,7601
818
21
0,7647
687
21
0,7636
466
21
0,7362
289
28
0,7561

22,222
Tabla38:Medicionesconunperiodode1ms,10000muestrasyrangode0a1023

Se obtiene una diferencia de dos centsimas en el coeficiente de autocorrelacin


mximo.Estapequeadiferenciaobtenidapermiterealizarlasmedicionescon1000muestras
puestoqueelresultadoobtenidoesmuysimilar.
La segunda conclusin obtenida es una rpida comparacin con los generadores de
Matlab y de random.org. El mximo coeficiente de aleatoriedad obtenido, exceptuando el
valorunitario,escomparableaestosdosgeneradores,inclusoinferior.
A continuacin se adjuntan las mediciones realizadas con los distintos periodos de
muestreo.Entodasestasmedicioneselnmerodemuestrasesde1000yelrangoesde0a
1023.Enestecasolaeleccindeesterangoesdebidanicamentealafinalidaddecomparar
losresultadosconlosobtenidosenlosanteriorescdigos.
147

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Conunperiododemuestreode10ms,lagrficadelosdatosobtenidoseslasiguiente:

Figura113:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero698ysufrecuenciaes5.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura114:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7412.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,7698
68
5
0,7795
314
5
0,7693
434
5
0,7694
146
6
0,7412
698
5
0,7658

5,25
Tabla39:Medicionesconunperiodode10ms,1000muestrasyrangode0a1023
148

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Con un periodo de muestreo de 100 ms, la grfica de los datos obtenidos es la


siguiente:

Figura115:Datosobtenidosconunperiodode100ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero75ysufrecuenciaes6.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura 116: Coeficientes de autocorrelacin obtenidos con un periodo de 100 ms, 1000
muestrasyrangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7322.
Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,7849
363
6
0,7729
89
6
0,7683
732
6
0,7646
326
5
0,7322
75
6
0,7646

5,86
Tabla40:Medicionesconunperiodode100ms,1000muestrasyrangode0a1023

Los resultados obtenidos para un periodo de muestre de 1 ms, 10 ms y 100 ms son


muysimilares,porloqueelperiododemuestreonoafectaalaaleatoriedadobtenida.
149

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

A continuacin se adjuntan las mediciones realizadas con los distintos rangos de


valores. En todas estas mediciones el nmero de muestras es de 1000 y el periodo de
muestreode10ms.

Conunrangodevaloresde0a500,lagrficadelosdatosobtenidoseslasiguiente:

Figura117:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a500
Lamodaobtenidaeselnmero9ysufrecuenciaes6.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura118:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode0a500
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7374.

150

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,7677
68
7
0,7586
341
10
0,7622
78
7
0,7550
477
7
0,7374
9
6
0,7562

7,47
Tabla41:Medicionesconunperiodode10ms,1000muestrasyrangode0a500

Vemos que el coeficiente ha disminuido prcticamente en una dcima respecto al


coeficienteobtenidoconunrangodevaloresde0a1023.

Conunrangodevaloresde0a100,lagrficadelosdatosobtenidoseslasiguiente:

Figura119:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a100
Lamodaobtenidaeselnmero46ysufrecuenciaes23.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura120:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode0a100
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7405.
151

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,7624
69
22
0,7756
69
29
0,7832
72
25
0,7743
61
26
0,7405
46
23
0,7672

25
Tabla42:Medicionesconunperiodode10ms,1000muestrasyrangode0a100

Seobtieneuncoeficientemximodeautocorrelacinprcticamenteigualqueparaun
rangode0a500.

Con un rango de valores de 1 a 6, simulando un dado electrnico, la grfica de los


datosobtenidoseslasiguiente:

Figura121:Datosobtenidosconunperiodode10ms,1000muestrasyrangode1a6
Lamodaobtenidaeselnmero2ysufrecuenciaes256.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura122:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode1a6
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8242.

152

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,8171
2
259
0,8205
5
255
0,8151
2
263
0,8305
5
261
0,8242
2
256
0,8213

258,8259
Tabla43:Medicionesconunperiodode10ms,1000muestrasyrangode1a6

Del mismo modo que ocurra en los anteriores cdigos, este valor ha empeorado
respectoalasmedicionesanteriores.

Con un rango de valores de 0 a 1, simulando la obtencin de un nmero binario


aleatorio,lagrficadelosdatosobtenidoseslasiguiente:

Figura123:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1
Lamodaobtenidaeselnmero0ysufrecuenciaes521.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:

Figura124:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestras
yrangode0a1
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,4906.
153

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Acontinuacinsehanrealizadocuatromedidasmsconlosmismosparmetros:
Medicin
Prueba1
Prueba2
Prueba3
Prueba4
Prueba5
Media

Mx.coef.deautocorr.

Moda
Frec.delamoda
0,5653
1
536
0,5511
0
528
0,5282
1
515
0,5108
1
507
0,4906
0
521
0,5292

521,4521
Tabla44:Medicionesconunperiodode10ms,1000muestrasyrangode0a1

En este caso ocurre lo mismo que en el estudio del cdigo bsico realizado: la
obtencin de los valores 0 hace que el resultado obtenido sea engaoso. An as este
resultadoservirparacompararlosresultadosobtenidosentrelosdistintoscdigos.

A continuacin se adjunta una tabla resumiendo los resultados obtenidos para cada
unadelasmediciones.
Periodode
muestreo
1ms
1ms
10ms
100ms
10ms
10ms
10ms
10ms

Nmerode
Rangode
Mximocoeficiente Frecuencia
muestras
valores
deautocorrelacin* delamoda
1000muestras
0a1023
0,7583
6
10000muestras
0a1023
0,7561
22
1000muestras
0a1023
0,7658
5
1000muestras
0a1023
0,7646
6
1000muestras
0a500
0,7562
7
1000muestras
0a100
0,7672
25
1000muestras
1a6
0,8213
259
1000muestras
0a1
0,5292
521
Tabla45:Resultadosdelasmedicionesrealizadasconelcdigodelvalormedio
*Exceptuandoelvalorunitario

Lasconclusionesextraidassonlassiguientes:

Referente al nmero de muestras: este factor modifica en dos centsimas los


resultadosobtenidosenelestudiodelaautocorrelacin,porloquepodemosutilizar
1000muestrasenlugarde10000yobtenerunosresultadosmuysimilares.

Referente al periodo de muestreo: la diferencia entre 10 ms y 100 ms es


prcticamentenula.Encambio,ladiferenciade1msa10msesprcticamentedeuna
dcima.

Referente al rango de valores: los resultados obtenidos para los distintos rangos
parecenaleatorios:conunrangode0a1023yunrangode0a100prcticamentese
obtieneelmismoresultado,peroconunrangode0a500elvalordisminuyeenuna
dcima.Paraunrangopequeodevalores(de1a6)elcoeficientedeautocorrelacin
empeoranotablemente.
154

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Losresultadosobtenidossonsimilaresalosdelcdigodenmeroparoimpar.Porlo
tanto,conamboscdigosseobtienenunosresultadoscomparablesalosdelosgeneradores
dematlabyrandom.org.
Se puede observar gracias a las distintas muestras obtenidas con cada conjunto de
parmetrosquelamodadecadamedicinesdistintaaladelasdemsmediciones,esdecir,
esunamodaaleatoria.
Unavezvistoslosresultadosobtenidosconcadaunosdeloscdigos,acontinuacin
secomparantodoslosresultadosobtenidosconelfindedeterminarqucdigopresentalas
mejorescaractersticasdealeatoriedad.

8.12 Comparacinentrecdigosyconclusionesfinalessobreestos

Acontinuacinserealizantrescomparacionesentreloscdigoscreados:

Elprimerfactoracomparareslamximaresolucindelosvaloresobtenidos:

Cdigo bsico y cdigo con filtro en la recepcin de valores: 1024 valores de


resolucin.
Cdigo de nmeros pares e impares y cdigo de valor medio: resolucin tan
grandecomoseanecesaria,puestoquecadavalorseformaapartirdebits.

Por lo tanto, en este primer aspecto los dos ltimos cdigos permiten una mayor
resolucin.Anas,unaresolucinde1024posiblesvalorescomolaproporcionadaporlosdos
primeroscdigosesmsquesuficienteenlamayoradeaplicaciones.

Elsegundofactoracomparareslavelocidaddegeneracin:

Tantoelcdigobsicocomoelcdigoconfiltronospermitenobtenerunvalor
numricoaleatorioporcadadatorecibido.
Enelcasodelcdigodenmerospareseimparesyelcdigodelvalormedio,
por cada dato recibido generamos un bit, por lo tanto, la velocidad de
generacindelosnmerosaleatoriossermuchomenor,yserinversamente
proporcionalalnmerodebitsnecesariosparalaobtencindeunvalor,que
vienedeterminadoporelrangodevaloresescogidoporelusuario.

Por lo tanto, en este segundo aspecto los dos ltimos cdigos se encuentran en
desventaja frente a los dos primeros cdigos, y ms si se trata en aplicaciones en las que el
rangodevaloresseaelevado.
Esta desventaja existente en los dos ltimos cdigos puede verse mitigada por el
siguiente motivo: segn la aplicacin en la que se est utilizando, en vez de utilizar una
generacindenmerosaleatorioscadavezquesenecesiteunodeellos(algoparecidoaun

155

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

justintime),podrarealizarselageneracinpreviamentealiniciodelaaplicacinyalojarlosen
lamemoria,yalejecutarlaaplicacinseobtendrandelamemoria.

Eltercerfactoracompararsonlosresultadosobtenidosenlaspruebasrealizadas.Este
essindudaelfactormsrelevantedeloscomentados.

A continuacin se presenta una tabla resumiendo los resultados obtenidos del


coeficientedeautocorrelacinconcadaunodeloscdigos.Todoslosvalorespresentadosen
estatablacorrespondenalasmedicionesrealizadascon1000muestras.
Mximocoef. Mximocoef.
Mximo
deautocorr.
deautocorr.
coef.de
(4)*
(3)*
autocorr
(2)*
1ms
0a1023
0,83
0,75
0,74
0,76
10ms
0a1023
0,84
0,76
0,74
0,76
50ms
0a1023
0,85
0,73

100ms
0a1023
0,85
0,73
0,75
0,77
500ms
0a1023
0,85
0,76

10ms
0a500
0,82
0,77
0,75
0,76
10ms
0a100
0,81
0,75
0,75
0,77
10ms
1a6
0,90
0,94
0,82
0,82
10ms
0a1
0,54
1,00
0,51
0,53
10ms
0a2047
0,83
0,75

Tabla 46: Comparacin entre los resultados obtenidos del coeficiente de autocorrelacin con
loscuatrocdigos
Periodo
muestreo

Rango

Mximocoef.
deautocorr.
(1)*

*Exceptuandoelvalorunitario

(1):Cdigobsico
(2):Cdigoconfiltroenlarecepcindelosvalores
(3):Cdigodenmerospareseimpares
(4):Cdigodevalormedio

Los mximos coeficientes de autocorrelacin obtenidos con la funcin rand() de


Matlab y la pgina web random.org, para 1000 muestras y un rango de valores de 0 a 1023
eran0.7638y0.7617respectivamente.
Recordemostambinqueseestutilizandoelgeneradorbasadoenelruidoobtenido
deuntransistorbipolar,queeraelcasoconelqueobtenamoslosmejoresresultados.
Laprimeraconclusinobservadaesquenobastaconrecibirlosvaloresobtenidosde
los generadores de ruido blanco por los mltiples problemas que se han comentado que
tienen.Estehechosevereflejadoenquelosresultadosobtenidosconelcdigobsicosonlos
peoresdeloscuatrocasos.
La segunda conclusin observada es que los generadores en los que se obtienen los
valores crendolos a partir de valores binarios, como son el cdigo de nmeros pares e
imparesyelcdigodevalormedio,aventajanalosdosprimeroscdigos.
156

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

La tercera conclusin que se puede extraer es que los resultados obtenidos con el
cdigodenmerospareseimparesyelcdigodevalormediosonsimilares,sibienescierto
que los resultados del cdigo de nmeros pares e impares son ligeramente mejores,
prcticamentedisminuyenunadcimarespectoalosdelcdigodelvalormedio.
Lacuartaconclusinquesepuedeextraereslabondaddelosresultadosobtenidos:
tanto el cdigo con filtro en la recepcin de valores, como el cdigo de nmeros pares e
impares y como el cdigo de valor medio obtienen unos resultados en el estudio de la
aleatoriedad comparables a los resultados de los generadores de Matlab y de random.org,
comparndolos en igualdad de condiciones, es decir, con el mismo rango de valores (de 0 a
1023)yelmismonmerodemuestras(1000muestras).
A continuacin se presenta una tabla resumiendo los resultados obtenidos de la
frecuencia de la moda con cada uno de los cdigos. Todos los valores presentados en esta
tablacorrespondenalasmedicionesrealizadascon1000muestras.
Periodomuestreo
Rango
Freq.(1)*
Freq.(2)*
Freq(3)*
Freq(4)*
1ms
0a1023
47
77
6
6
10ms
0a1023
28
80
5
5
50ms
0a1023
10
84

100ms
0a1023
17
145
5
6
500ms
0a1023
12
83

10ms
0a500
42
84
8
7
10ms
0a100
37
68
25
25
10ms
1a6
293
307
260
259
10ms
0a1
519
500
523
521
10ms
0a2047
38
85

Tabla47:Comparacinentrelosresultadosobtenidoslamodaysufrecuenciaconloscuatro
cdigos

(1):Cdigobsico
(2):Cdigoconfiltroenlarecepcindelosvalores
(3):Cdigodenmerospareseimpares
(4):Cdigodevalormedio

La frecuencia de la moda obtenida con la funcin rand() de Matlab y la pgina web


random.org,para1000muestrasyunrangodevaloresde0a1023,enamboscasoserade6.
Sepuedenextraerlassiguientesconclusiones:
Laprimeraconclusinesquelosmejoresresultadosseobtienenconloscdigosenlos
queelnmeroaleatoriosegenerabitabit.
Elproblemaexistenteenlosresultadosdelosdosprimeroscdigosesqueseobtienen
muchosvaloresextremosparaconseguirunamayoramplituddelaseal.
Lasegundaconclusinesquelosresultadosresultancomparablesalosobtenidoscon
losgeneradoresdematlabyrandom.org.Estaconclusinesmuyimportanteporelsiguiente
motivo:
157

Generadordenmerosaleatorios
ResultadosobtenidosconMatlab

Si solo se hubiera realizado el estudio del coeficiente de autocorrelacin, se podra


determinarqueelcdigoconfiltrodevaloresenlarecepcinobtieneunosmejoresresultados
que el generador de matlab y random.org. Sin embargo, con este cdigo ser ms fcil
predecirelsiguientevalorobtenidopuestoquesefuerzamedianteelfiltro.
Por lo tanto, gracias a los resultados obtenidos con el estudio del coeficiente de
autocorrelacin y el estudio de la moda y su frecuencia, se puede determinar que los
resultados obtenidos con el cdigo de nmeros pares e impares y con el cdigo del valor
medio son comparables a los obtenidos con el generador de matlab y de random.org. En
algunos casos los resultados obtenidos son mejores que los de estos dos generadores
externos.

Por otro lado, cabe recordar los resultados obtenidos no coinciden con los tericos.
Porejemplo,paraunrangode0a1023y1000muestras,idealmentelafrecuenciadelamoda
deberaser1.Traslasmedicionesrealizadas,elmejorvalorobtenidohasidoconelcdigode
nmerospareseimpares,conunafrecuenciade5.

158

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

8.13 Ejemplodeaplicacindelcdigogeneradordemapasdebits

Acontinuacinseadjuntaunejemplorealizadoconelcdigogeneradordemapasde
bits. Los parmetros que se han utilizado para la obtencin de este mapa de bits son los
siguientes:

Tiempodemuestreode1ms
10.000muestras
Rangodevalores:de0a1

Elcdigoutilizadohasidoelcdigodelvalormediodebidoaquesehaconcluidoque
eselcdigoconelqueseobtienenmejoresresultados.
Laimagendelmapadebitsobtenidaeslasiguiente:

Figura125:MapadebitsgeneradoconMatlabapartirdelosdatosdelcdigodevalormedio
Como se puede ver, no existe ningn patrn repetitivo como ocurra en la
comparacinrealizadaenlaintroduccinentreelgeneradordelapginawebrandom.orgyel
generadordenmerospseudoaleatoriosdellenguajePHP.
Una vez vistas las conclusiones especficas sobre el estudio de la aleatoriedad de los
nmerosgenerados,acontinuacinsepresentanlasconclusionesglobalesdelproyecto.

159

Generadordenmerosaleatorios

ResultadosobtenidosconMatlab

Referencias:
[1] Random.org. Random Integer Generator. [Pgina web online]. [Fecha de consulta: 1508
2011][Accesogratuito]
<http://www.random.org/integers/>

160

Generadordenmerosaleatorios

Conclusionesgenerales

9 Conclusiones

Acontinuacinseresumenlasconclusionesmsimportantesquesehanextraidoen
esteproyecto:
Enprimerlugar,recordarqueladificultaddelageneracindenmerosaleatoriosno
reside nicamente en su generacin, sin tambin en la adecuacin realizada. En
amboscasossurgenproblemasquedificultanestageneracin:

El problema existente en la generacin es que los valores obtenidos son de


amplitudesmuybajas.
Comoconsecuenciadeloanterior,elproblemaexistenteenlaadecuacinesque
si los valores de la generacin son bajos, existe una mayor probabilidad de
colorearloquedeberaserunruidoblanco.

Ensegundolugar,enloscircuitosgeneradoresderuidoblancoyloscircuitosutilizados
para la adecuacin de la seal puede observarse que no es necesario el uso de
componentesconunasaltasprestaciones,talycomosehavistoenlacomparacin
entreeldispositivo741CNyeldispositivoLT1226.

Entercerlugar,lasaportacionesdeusuariosenpginaswebhanresultadoserdegran
ayuda a la hora de utilizar una aplicacin general como puede ser la comunicacin
entreunPCyunmicrocontroladorPICporUSButilizadaenesteproyecto.Anas,
debidoaladificultaddelocalizarelproblemaquesurgienlautilizacindelcdigo
paralacomunicacinporUSB,estapartefuelamscomplicada.

En cuarto y ltimo lugar, los resultados obtenidos han resultado ser satisfactorios,
puesto que son comparables a un buen generador de nmeros pseudoaleatorios
comoeslafuncinrand()deMatlabytambinalosvaloresobtenidosdelapgina
webrandom.org,queutilizaruidosatmosfricosparalaobtencindelosvalores.

161

Generadordenmerosaleatorios

Posiblesmejoras

10 Posiblesmejoras

Aunque los resultados finales obtenidos hayan sido satisfactorios, a continuacin se


detallan algunas posibles mejoras que se han introducido en anteriores captulos de la
memoria.
En primer lugar, se podra intentar mejorar el generador basado en el elemento
resistor.Comosehavistoenlascapturasdelosciloscopiopreviasalaadecuacindelaseal,
estegeneradorderuidoblancotieneproblemasbastanteimportantesencuantoalfiltrajede
laalimentacinatravsdelamplificadoroperacional.
Este problema hace que la seal obtenida en este generador tenga frecuencias
dominantes,yportantonoseavlidoparalaobtencindenmerosaleatorios.
Otro problema aadido en este generador son las bajas impedancias de las entradas
delmicrocontrolador.Aunqueestenoseaunproblemapropiodelgenerador,estefactorhace
quenosepuedanutilizarresistenciasdeunvalorelevadoenlageneracindelruido.
Porello,aunquepuedanmejorarselosresultadosobtenidos,difcilmenteseobtendran
unosresultadosalaalturadelgeneradorbasadoeneltransistorbipolar.
Ensegundolugar,lascapturasrealizadasparaelgeneradorbasadoeneldiodoZener
no contienen frecuencias fundamentales. El problema que tiene este generador es que la
amplituddelasealobtenidaesmuybaja,yporlotantoexisteunmayorriesgodecolorearel
ruidoblancodebidoalaetapadeadecuacin.
Porello,lasolucinrecomendadaseralaconstruccindeldiagramadisponibleenla
ApplicationNotedeMaximdedondehasidoextraidoestecircuito,utilizandoelamplificador
MAX2650conelqueseobtienenunosmejoresresultados.Ademsdeestaamplificacin,se
tendraqueimplementarelcircuitoqueaadeunapartedetensincontinuaalasealconel
findellevarelnivelmediodelasealobtenidaqueesten0Vaunnivelmediode2.5V.
Enltimolugar,lamejoramsimportantequesepodrarealizareslasiguiente:
Se ha decidido que las frecuencias de muestreo utilizadas seran relativamente bajas
encomparacinalasquepodranllegarseautilizar.Estaeleccinsehavistoreforzadaporla
limitacindeltimerdeMatlab,cuyamximafrecuenciaescogidapuedeserde1kHz.
Pero si se deseara obtener valores a mayores frecuencias debera cambiarse la
estructuradelprograma,tantodelcdigodelmicrocontroladorcomodelcdigodeMatlab.
El cambio que debera realizarse en los cdigos fuente sera el siguiente: el timer no
estara implementado en Matlab, sino en el cdigo del microcontrolador.El funcionamiento
seraelsiguiente:

162

Generadordenmerosaleatorios
Posiblesmejoras

Elusuariointroduciralosparmetrosdeperiododemuestre,nmerodemuestrasy
rango de valores, del mismo modo que se introducen en los programas creados en este
proyecto.
A continuacin, estos parmetros se enviaran al microcontrolador por comunicacin
USB,ytodaslasoperacionesquesehanrealizadoenMatlabconelfindeobtenerelnmero
de bits necesarios o realizar la adecuacin de los valores obtenidos al rango de valores
deseadoporelusuariodeberanimplementarseenelcdigodelmicrocontrolador.
Una vez se obtengan los parmetros en el microcontrolador, empezara la obtencin
delosvaloresdelasealderuidoblanco.Cadavezqueseobtuvieraunvalor,seguardaraen
la memoria del microcontrolador. Una vez obtenidos todos los valores, se enviaran por
transferencias secuenciales a Matlab, donde se procesaran y se realizara el estudio
correspondientealaaleatoriedad.
Siseutilizaestemtodo,paraaveriguarlamximafrecuenciademuestreosedebera
consultar la frecuencia a la que es capaz de funcionar el conversor analgicodigital. Para
consultar esta frecuencia, se puede consultar el datasheet del componente o bien se puede
recurriralcompiladorCCS:
La funcin utilizada en el cdigo adjunto del microcontrolador para seleccionar la
frecuenciadetrabajodelconversoranalgicodigitaleslasiguiente:
setup_adc( ADC_CLOCK_div_16 );

Porlotanto,debemosconocerqueparmetrosselepuedenintroduciraestafuncin.
Paraellodebemosrecurriralasheaderfiles,concretamentealasiguiente:
#include <18F2455.h>

Esta es la header file correspondiente al dispositivo PIC utilizado. Este archivo se


encuentraenlacarpetacreadatraslainstalacindelprogramacompiladorCCSPCHW.
Enestearchivosepuedenencontrarlassiguienteslineasdecdigo:
////////////////////////////////////////////////////////////////// ADC
// ADC Functions: SETUP_ADC(), SETUP_ADC_PORTS() (aka SETUP_PORT_A),
//
SET_ADC_CHANNEL(), READ_ADC()
// Constants used for SETUP_ADC() are:
#define ADC_OFF
0
// ADC Off
#define ADC_CLOCK_DIV_2
0x100
#define ADC_CLOCK_DIV_4
0x04
#define ADC_CLOCK_DIV_8
0x01
#define ADC_CLOCK_DIV_16
0x05
#define ADC_CLOCK_DIV_32
0x02
#define ADC_CLOCK_DIV_64
0x06
#define ADC_CLOCK_INTERNAL 0x07
// Internal 2-6us

Si utilizaramos el parmetro ADC_CLOCK_DIV_2, que indica que la velocidad del


conversor ser la mitad de la del clock del microcontrolador, teniendo en cuenta que el
microcontrolador est configurado para 48 MHz, se obtiene una frecuencia de 24 MHz que
163

Generadordenmerosaleatorios
Posiblesmejoras

correspondeaunperiodode41.7ns.Aestetiempohabraqueaadirleeltiemponecesario
pararealizarlasinstruccionesdeenviareldatoamemoria.Anas,podramosobtenermsde
unmillndemuestrasporsegundo.

Adems de los cambios realizados en los cdigos, se debera sustituir los


amplificadoresoperacionales741CNporelamplificadoroperacionalLT1226LNA,debidoaque
simuestreamosamayorfrecuencia,serequierequeelanchodebandadelcircuitoseamayor
paralaobtencindelruidoblanco.
Porlotantonecesitaremosundispositivoquetengaunproductogananciaporancho
de banda del mismo rango que el muestreo, siendo recomendable que est por encima de
ste.
Elotrofactorclaveeselslewratedeestedispositivo.Notienesentidomuestreara1
MHz, que equivale a un periodo de 1 s, si nuestro dispositivo no es capaz de realizar una
variacinde0Va5Venuntiempoigualopreferiblementeinferioralperiododemuestreo.

Recapitulando, la finalidad de este proyecto que era la generacin de nmeros


aleatorios se ha resuelto satisfactoriamente para el rango de aplicaciones deseadas. Si se
requiere unas aplicaciones con caractersticas ms especficas, principalmente una mayor
velocidaddemuestreo,sedeberarecurriralamejoradetalladaanteriormente.

164

Generadordenmerosaleatorios

Presupuesto

11 Presupuesto

El presupuesto se ha realizado en base al generador basado en el ruido extraido del


transistorbipolarpuestoqueesconelquemejoresresultadossehanobtenido.

11.1 Costedelprototipo

Enprimerlugarseadjuntalalistadeloscomponentesutilizadosenesteproyectocon
sus precios unitarios obtenidos del suministrador de componentes electrnicos Farnell
(http://es.farnell.com/).

Generadorderuidobasadoeneltransistorbipolar:

Componente

CdigoFarnell Uds. Costeunitario() Costetotal()

Conectordealimentacin
3041529
1
0,55
0,55
Resistenciadepelculade
1700245
1
0,013
0,013
carbn4.7k
Resistenciadepelculade
1700264
1
0,013
0,013
carbn100k
Condensadorelectroltico
9451188
1
0,087
0,087
dealuminio100F25V
1
0,137
0,137
Condensadordepelcula
1166078
fina10nF250V
TransistorbipolarBC548
1467872
1
0,133
0,133
Costetotal:
0,933
Tabla48:Costedelgeneradorderuidobasadoeneltransistorbipolar

Circuitoutilizadoparaobtenerlaalimentacinsimtrica:

Componente

Conectordealimentacin
Amplificadoroperacional
741CN
Resistenciadepelculade
carbn1k
Condensadorelectroltico
dealuminio1000F16V

Cdigo
Farnell

Uds.

Costeunitario()

Costetotal()

3041529
9486780

1
1

0,55
0,34

0,55
0,34

1700237

0,013

0,026

9451773

0,30

0,30

Costetotal:
1,216
Tabla49:Costedelcircuitoutilizadoparaobtenerlaalimentacinsimtrica

165

Generadordenmerosaleatorios

Circuitodeadecuacin:

Componente

Amplificadoroperacional
741CN
Resistenciadepelculade
carbn100
Resistenciadepelculade
carbn1k
Resistenciadepelculade
carbn10k
Potencimetro5k
Potencimetro10k

Presupuesto

Uds.

Cdigo
Farnell

Costeunitario()

Costetotal()

9486780

0,34

0,34

1700223

0,013

0,013

1700237

0,013

0,039

1700251

0,013

0,026

9355111
9355030

1
1

0,47
1,83
Costetotal:

0,47
1,83
2,718

Tabla50:Costedelcircuitoutilizadoparalaadecuacindelasealdelgenerador

Circuitodelmicrocontrolador:

Componente

Conectordealimentacin
Condensadorelectroltico
dealuminio2200F10V
Microcontrolador
PIC18F2455
Cristaldecuarzo12MHz
Condensadorcermico22
pF
Condensadordepelcula
fina100nF63V
Resistenciadepelculade
carbn100
Resistenciadepelculade
carbn150
Resistenciadepelculade
carbn10k
Interruptorpulsador
Led
Conectorde30contactos
paraPICkit2
ConectorUSBmacho
tipoA

Cdigo
Farnell

Uds.

Costeunitario()

Costetotal()

3041529
1834110

1
1

0,55
0,64

0,55
0,64

1579600

5,05

5,05

1842203
9411674

1
2

0,51
0,05

0,51
0,05

1215508

0,132

0,264

1700223

0,013

0,013

1700226

0,013

0,026

1700251

0,013

0,013

1863398
1581159
1667535

1
2
1

0,22
0,089
3,12

0,22
0,178
3,12

1696544

0,84

0,84

Costetotal:
11,474
Tabla51:Costedelacircuiteradelmicrocontrolador

166

Generadordenmerosaleatorios

Costefinaldelprototipo:

Presupuesto

Descripcin

Circuitogenerador
deruidoblanco
Circuitode
alimentacin
simtrica
Circuitoadecuador
delaseal
Circuitodel
microcontrolador
IngenieroTcnico
Industrial

Cantidad

Precio

Importe()

1unidad

0,933/unidad

0,833

1unidad

1,216/unidad

1,216

1unidad

2,718/unidad

2,718

1unidad

11,474/unidad

11,474

500horas

20/hora

10.000

Costetotal:
10.016,24
Tabla52:Costefinaldelprototipo

11.2 Costedeproduccindeunaseriede1000unidades

Acontinuacinseexponeelcostetotalqueimplicaralaproduccindeesteproyecto,
suponiendoquetrasrealizarunestudiodemercado,laempresaquedeseacomercializarloha
decididounaproduccinde1000unidades.
Se adjunta la lista de precios unitarios debido a la diferencia de precios al comprar
lotesde1000unidades.

Generadorderuidobasadoeneltransistorbipolar:

Componente
CdigoFarnell Uds. Costeunitario() Costetotal()

Conectordealimentacin
3041529
1.000
0,36
360
Resistenciadepelculade
1700245
1.000
0,009
9
carbn4.7k
1.000
0,009
9
Resistenciadepelculade
1700264
carbn100k
Condensadorelectroltico
9451188
1.000
0,045
45
dealuminio100F25V
Condensadordepelcula
1166078
1.000
0,137
137
fina10nF250V
TransistorbipolarBC548
1467872
1.000
0,133
133
Costetotal:
693
Tabla53:Costedelgeneradorderuidobasadoeneltransistorbipolarparaunaseriede1000
unidades

167

Generadordenmerosaleatorios

Circuitoutilizadoparaobtenerlaalimentacinsimtrica:

Componente

Cdigo
Farnell

Conectordealimentacin
3041529
Amplificadoroperacional
9486780
741CN
Resistenciadepelculade
1700237
carbn1k
Condensadorelectroltico
9451773
dealuminio1000F16V

Uds.

Costeunitario()

Presupuesto

Costetotal()

1.000
1.000

0,36
0,21

360
210

2.000

0,009

18

1.000

0,092

92

Costetotal:
680
Tabla54:Costedelcircuitoutilizadoparaobtenerlaalimentacinsimtricaparaunaseriede
1000unidades

Circuitodeadecuacin:

Amplificadoroperacional
741CN
Resistenciadepelculade
carbn100
Resistenciadepelculade
carbn1k
Resistenciadepelculade
carbn10k
Potencimetro5k
Potencimetro10k

Uds.

Cdigo
Farnell

Componente

Costeunitario()

Costetotal()

9486780

3.000

0,21

630

1700223

1.000

0,009

1700237

3.000

0,009

27

1700251

2.000

0,009

18

9355111
9355030

1.000
1.000

0,34
340
0,84
840
Costetotal:
1.864
Tabla 55: Coste del circuito utilizado para la adecuacin de la seal del generador para una
seriede1000unidades

Circuitodelmicrocontrolador:

Componente

Cdigo
Farnell

Conectordealimentacin
3041529
Condensadorelectroltico
1834110
dealuminio2200F10V
Microcontrolador
1579600
PIC18F2455

Uds.

Costetotal()

1.000
1.000

0,36
0,30

360
300

1.000

3,20

3.200

168

Costeunitario()

Generadordenmerosaleatorios

Cristaldecuarzo12MHz
1842203
Condensadorcermico22
9411674
pF

Condensadordepelcula
1215508
fina100nF63V
Resistenciadepelculade
1700223
carbn100
Resistenciadepelculade
1700226
carbn150
Resistenciadepelculade
1700251
carbn10k
Interruptorpulsador
1863398
Led
1581159
Receptaculode30
1667535
contactosparaPICkit2
ConectorUSBmacho
1696544
tipoA

Presupuesto

1.000
2.000

0,27
0,018

270
36

2.000

0,132

264

1.000

0,009

2.000

0,009

18

1.000

0,009

1.000
2.000
200

0,174
0,069
1,37

174
138
274

1.000

0,27

270

Costetotal:
5.322
Tabla56:Costedelacircuiteradelmicrocontroladorparaunaseriede1000unidades

CostedeproduccindelasplacasPCB:

LaempresaescogidaparalafabricacindelasplacasdecircuitoimpresoesPCBCART
(www.pcbcart.com),ylospreciosobtenidossonlossiguientes:
Descripcin

PlacaPCB
Herramientas

Cantidad

Precio

0,77/unidad
770
33,87/unidad
33,87
Costetotal:
803,87
Tabla57:CostedeproduccindelasplacaPCBparaunaseriede1000unidades
1000unidades
1unidad

169

Importe()

Generadordenmerosaleatorios

Presupuesto

Resumendelpresupuesto

(Suponiendounosgastosgeneralesdel13%delimportetotaldelosmateriale)

Resumen
Importe()

Componentesdelgeneradorderuidobasadoeneltransistorbipolar
693,00
Componentesdelcircuitoparaobtenerlaalimentacinsimtrica
680,00
Componentesdelcircuitodeadecuacin
1.864,00
Componentesdelcircuitodelmicrocontrolador
5.322,00
PlacasPCB
803,87
TOTALEJECUCINMATERIAL:
9.362,87

13,00%GASTOSGENERALES1.217,17

SUMATOTALEJECUCINMATERIALYGASTOSGENERALES
10.580,04

18,00%IVA
1.904,41

TOTALPRESUPUESTOCONTRATA
12.484,45
AMORTIZACINDEDESARROLLO10.016,24

TOTALPRESUPUESTOGENERAL
COSTEUNITARIO

Aadaseelbeneficioindustrialdeseado.

170

22.500,69

22,5

7,4
7,3
19,9
56,8
8,6

Generadordenmerosaleatorios

Anexos

12 Anexos
12.1 Anexo1:Clculodelamplificadorinversor

Laestructuradeamplificacinqueseanalizaeslasiguiente:

Figura126:Circuitoamplificadorinversor

Aplicando cortocircuito virtual, se puede determinar que la tensin de la entrada no


inversoraserlamismaqueenlaentradainversora,yestatensincorresponderaVref.

Realizando el anlisis de la corriente que circula por R1 y R2 se obtiene el siguiente


resultado:

Por lo tanto, los circuitos que se utilizarn en la fase de amplificacin sern los
siguientes:
Circuitocongananciafijade100:

Figura128:Circuitoamplificadorinversor
congananciade100

171

Circuitocongananciavariable:

Figura127:Circuitoamplificadorinversor
congananciavariable

Generadordenmerosaleatorios

12.2 Anexo2:Clculodelamplificadorrestadornoinversor

Anexos

Elamplificadoroperacionalrestadorbsicopuedeconsiderarsequeestformadopor
unamplificador operacional inversory por otroamplificador operacional no inversor. Por lo
tanto, para calcular su funcin de transferencia se realizar la superposicin de ambos
circuitos.

Figura129:Circuitoamplificadorrestadornoinversor
Si anulamos la entrada V1, es decir, V1 pasa a ser tensin de referencia, las
resistencias R3 y R4 se encuentran en paralelo, y estn conectadas entre referencia y la
entrada no inversora del amplificador operacional. Si aplicamos cortocircuito virtual y
suponemoscorrientenulaenlasentradasdelamplificadoroperacional,latensinquecaeen
estasdosresistenciasenparaleloesnula,porloquelaentradanoinversoraestconectadaa
lareferenciadelcircuito,obteniendodeestamaneraunaestructuradeamplificadorinversor.
Enestecaso,lafuncindetransferenciaseralasiguiente:

SianulamoslaentradaV2:

Elprimerclculonecesarioessaberquetensinsetieneenlaentradanoinversoradel
operacional,queserlamismaqueenlaentradainversoraalaplicarcortocircuitovirtual.Esta
tensin ser un simple divisor de tensin puesto que se supone nula la corriente en las
entradasdelamplificador.Portanto,

Porotrolado,siconsideramosnulalacorrienteenlasentradas,laentradainversora
deloperacionaltambinserundivisordetensin:

172

Generadordenmerosaleatorios

Anexos

IgualandoambasexpresionesdeVseobtieneelsiguienteresultado:

Porltimo,aplicandosuperposicinseobtieneelresultadofinal:

Siseconsideranlassiguientesigualdades:R1=R3yR2=R4,elresultadoobtenidoesel
siguiente:

Portanto,siR2=10kyR1=100,obtenemosunagananciade100.

173

Generadordenmerosaleatorios

12.3 Anexo3:Clculodelamplificadorsumadornoinversor

Anexos

Laestructuraqueseanalizaeslasiguiente:

Figura130:Circuitoamplificadorsumadornoinversor

Enprimerlugar,seobtieneelvalordeVsuponiendonulalacorrientedeentradaal
terminalinversordelamplificadoroperacional:

Aplicandocortocircuitovirtualseestablecequelatensinenlaentradanoinversora
delamplificadoroperacionaleslamismaqueenlaentradainversora,esdecir,V=V+.
ElsiguientepasoserconocerelvalordeV+,suponiendonulalacorrientedeentrada
alterminalnoinversordelamplificadoroperacional:

AcontinuacinseigualanlasexpresionesdeVyV+,obteniendolasiguienteexpresin
delatensindesalidaVo:

SiR2=2kyR3=R4=R5=1k,

174

Generadordenmerosaleatorios
Anexos

Porlotanto,siV1son6V,utilizandounpotencimetrode5 ksepuederegularel
nivel de continua aadido a la seal V2, que ser la que proviene de la estructura
amplificadora.
Acontinuacinseadjuntalaimagendelcircuitosumadornoinversorimplementado:

Figura131:Circuitosumadornoinversorconunaentradadeamplituddevoltajeregulable

175

También podría gustarte