Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1178 Pub
1178 Pub
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
8.5
Cdigobsico,generadorconresistorconadecuacin............................................ 106
8.6
8.7
8.8
Estudiodelosresultadosobtenidosconelcdigobsicoyelgeneradorcon
transistorbipolar................................................................................................................... 109
8.9
Estudiodelosresultadosobtenidosconelcdigoconfiltroenlarecepcinde
valoresyelgeneradorcontransistorbipolar ....................................................................... 121
8.10 Estudiodelosresultadosobtenidosconelcdigodenmerospareseimparesyel
generadorcontransistorbipolar .......................................................................................... 134
8.11 Estudiodelosresultadosobtenidosconelcdigodevalormedioyelgeneradorcon
transistorbipolar................................................................................................................... 145
8.12
8.13
Ejemplodeaplicacindelcdigogeneradordemapasdebits................................ 159
9 Conclusiones ......................................................................................161
10 Posiblesmejoras ................................................................................162
11 Presupuesto .......................................................................................165
11.1
Generadordenmerosaleatorios
ndicegeneral
12 Anexos................................................................................................171
12.1
12.2
Anexo2:Clculodelamplificadorrestadornoinversor............................................ 172
12.3
12.4Anexo4:Cdigodelmicrocontrolador
12.5Anexo5:CdigosdeMatlab
12.6Anexo6:FicherosMatlabdelosdatosobtenidosenlaspruebasrealizadas
Generadordenmerosaleatorios
Introduccin
2 Introduccin
Elesquemabsicoparalaobtencindelosnmerosaleatorioseselsiguiente:
Figura1:Esquemabsico
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
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]:
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?
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>
[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:
Libros:
10
Generadordenmerosaleatorios
Introduccin
2.2 Estudiotericodelruidogeneradoporcomponentespasivosy
semiconductores
2.2.1
Queselruido?
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
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.
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
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.
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.
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
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
Generadordenmerosaleatorios
Circuitosgeneradores
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.
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
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.
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
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
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
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.
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.
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
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
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
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
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
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]
58
Generadordenmerosaleatorios
Adquisicindelasmuestras
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:
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
Elsiguientepasoseencuentradentrodelbuclequeseejecutaindefinidamenteenel
menprincipal.Paraempezararealizarlaconversinanalgicodigitalsedeberncumplirlas
siguientesdoscondiciones:
60
Generadordenmerosaleatorios
Adquisicindelasmuestras
if(usb_enumerated())
if (usb_kbhit(1))
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.
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:
Esta funcin se ejecuta cada vez que se interacta con el men, y no se debe
modificar.Tratalainteraccinentreelprograma(archivodeextensin.m)ylafigura(archivo
deextensin.fig).
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
Sedeclaranlaspipes(canalesparalatransmisindelosdatosdeentradaysalida):
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
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
Empiezalaejecucindeltimer:
start (t);
Por ltimo, en esta funcin tambin se declaran las libreras que se utilizarn para la
comunicacinUSB:
Esta funcin sirve para enviar un texto que se muestra en un cuadro de dilogo
existenteenlaventanadelafiguravisibledurantelaejecucindelprograma.
function closeGUI(source,eventdata)
switch selection,
case 'Si',
stop (t);
if conectado == 1
calllib('libreria', 'MPUSBClose', my_in_pipe);
% Se cierra el tunel de recepcin
68
Generadordenmerosaleatorios
TratamientodelosdatosconMatlab
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.
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.
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:
70
Generadordenmerosaleatorios
TratamientodelosdatosconMatlab
Estamodificacinseharealizadodebidoalamodificacinrealizadaenlasheaderfiles
incluidasenelcdigodelPIC,talycomosehacomentadoanteriormente.Lalneadecdigo
modificadaeslasiguiente:
Enterceryltimolugar,sehamodificadolaposicindelalneadecdigoquedaba
comienzoalaejecucindeltimer.
Enelcdigooriginal,despusdeempezaraejecutareltimer,serealizabalaasignacin
delasvariablesdeentradaysalidadelosdatos.Comoconsecuencia,losprimerosvaloresque
obtenamoseran0.Porello,enlasinicializaciones,elltimopasodetodosserdarlaorden
altimerparaqueempieceaejecutarse.Estamodificacinseencuentradentrodelafuncin:
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:
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:
Lafuncindelestudiodeautocorrelacinsoloseejecutarunavezsehayanrecibido
todaslasmuestrasdeseadas.Enprimerlugarsedeberdefinirqueeslaautocorrelacin,taly
comoseexplicaacontinuacin.
72
Generadordenmerosaleatorios
7.3.2 Autocorrelacin
TratamientodelosdatosconMatlab
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.
[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
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 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.
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:
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
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
Acontinuacinsedescribirelsiguientecdigoquesehaimplementado.Estenuevo
cdigoestbasadoenelqueseacabadecomentar,ylanicadiferenciaexistenteesunfiltro
queseharealizadoparalaobtencindelosvalores.
78
Generadordenmerosaleatorios
TratamientodelosdatosconMatlab
7.3.5 Cdigoconfiltroenlarecepcindevalores
Estecdigopartedelabasedelcdigoanterior,peroselehaaadidounaslneasde
cdigodentrodelafuncinasociadaaltimer:
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
81
Generadordenmerosaleatorios
TratamientodelosdatosconMatlab
7.3.6 Cdigodenmerospareseimpares
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
Figura22:Conversindevaloresalrangoescogidoporelusuario
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
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:
Elresultadoquesedeberaobtenerenlageneracindelmapadebitseselsiguiente:
Figura23:Ejemplodemapadebitscon9bits
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.
Porlotanto,tendramoslasiguientefiguraconelvalordecadavariable:
Figura24:Valoresdelasvariableshcountyvcountdelejemplodelmapadebits
Pararealizarestedibujo,enprimerlugarsedebersaberdibujarunrecuadroconsu
interiorcoloreado,paraelcasodelosbitsqueson1.Paraello,sehaescritolasiguientelnea
decdigo:
plot (fill(x,y,'k'))
Enestalneahaydosfunciones:
Lafuncinplot():sirveparadibujareldatoqueselepasa.
Lafuncinfill():sirveparadibujarunrecuadroconsuinteriorcoloreado.
Figura25:Cuadradoconlospuntosdelasaristas
Unavezconocidalafuncinutilizadaparaeldibujodeloscuadrados,elsiguientepaso
serreconocerlaposicindelasaristasdeste.Paraello,sehadivididolafigurapresentada
anteriormenteenlossiguientespuntos:
88
Generadordenmerosaleatorios
TratamientodelosdatosconMatlab
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
89
Generadordenmerosaleatorios
TratamientodelosdatosconMatlab
%A
%B
%C
%D
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
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:
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.
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.
Elnmerodemuestras
Elperiododemuestreo
98
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
8.2 Cdigobsico,generadorconresistorsinadecuacin
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
8.3 Cdigobsico,generadorcondiodoZenersinadecuacin
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
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.
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
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
Figura 49: Datos obtenidos del generador con diodo Zener con adecuacin periodo de 1 ms,
1000muestrasyrangode0a1023
Losresultadossonparecidosalcasoanterior,denuevotenemoselmismoproblema
quesehabacomentadoanteriormenterespectoalospicos.
Lamodaobtenidaeselnmero436ysufrecuenciaes7.
Acontinuacinsemuestralagrficadelaautocorrelacinobtenida:
Figura50:CoeficientesdeautocorrelacinobtenidosdelgeneradorcondiodoZenercon
adecuacin,periodode1ms,1000muestrasyrangode0a1023
107
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
8.7 Cdigobsico,generadorcontransistorbipolarconadecuacin
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
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
Figura60:Datosobtenidosconunperiodode100ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero1023ysufrecuenciaes17.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:
Figura61:Coeficientesdeautocorrelacinobtenidosconunperiodode100ms,1000muestras
yrangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8490.
113
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
Figura62:Datosobtenidosconunperiodode500ms,1000muestrasyrangode0a1023
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:
Figura63:Coeficientesdeautocorrelacinobtenidosconunperiodode500ms,1000muestras
yrangode0a1023
Lamodaobtenidaeselnmero0ysufrecuenciaes12.
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8501.
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
Lassiguientesmedicioneshansidorealizadasconlosdistintosrangosdevalores.En
todasestasmedicioneselnmerodemuestrasesde1000yelperiododemuestreode10ms.
Conunrangodevaloresde0a500,lagrficadelosdatosobtenidoseslasiguiente:
Figura64:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a500
Lamodaobtenidaeselnmero500ysufrecuenciaes42.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:
Figura65:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a500
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8169.
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
Conunrangodevaloresde0a100,lagrficadelosdatosobtenidoseslasiguiente:
Figura66:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a100
Lamodaobtenidaeselnmero100ysufrecuenciaes37.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:
Figura67:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a100
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,8142.
116
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
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
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.
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
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
Figura81:Datosobtenidosconunperiodode100ms,1000muestrasyrangode0a1023
Lamodaobtenidaeselnmero1023ysufrecuenciaes145.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:
Figura82:Coeficientesdeautocorrelacinobtenidosconunperiodode100ms,1000muestras
yrangode0a1023
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,7288.
125
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
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
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.
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
Figura89:Datosobtenidosconunperiodode10ms,1000muestrasyrangode1a6
Lamodaobtenidaeselnmero5ysufrecuenciaes307.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:
Figura90:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode1a6
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,9351.
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
Figura91:Datosobtenidosconunperiodode10ms,1000muestrasyrangode0a1
Lamodaobtenidaeselnmero0yel1,ysufrecuenciaes500.
Lagrficadelosvaloresdelcoeficientedeautocorrelacineslasiguiente:
Figura92:Coeficientesdeautocorrelacinobtenidosconunperiodode10ms,1000muestrasy
rangode0a1
Elcoeficientemximodeautocorrelacin,exceptuandoelvalorunitario,esde0,998.
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.
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
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
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
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
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
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.
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
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:
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
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
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
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
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
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
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.
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.
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 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:
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.
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
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
Generadordenmerosaleatorios
ResultadosobtenidosconMatlab
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:
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
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>
Generadordenmerosaleatorios
Posiblesmejoras
correspondeaunperiodode41.7ns.Aestetiempohabraqueaadirleeltiemponecesario
pararealizarlasinstruccionesdeenviareldatoamemoria.Anas,podramosobtenermsde
unmillndemuestrasporsegundo.
164
Generadordenmerosaleatorios
Presupuesto
11 Presupuesto
11.1 Costedelprototipo
Enprimerlugarseadjuntalalistadeloscomponentesutilizadosenesteproyectocon
sus precios unitarios obtenidos del suministrador de componentes electrnicos Farnell
(http://es.farnell.com/).
Generadorderuidobasadoeneltransistorbipolar:
Componente
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
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