INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de...

87
INSTITUTO POLIT ´ ECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y ELECTRICA ESIME (ZACATENCO) DEPARTAMENTO DE INGENIER ´ IA EN COMUNICACIONES Y ELECTRONICA Analizador de Espectro con DSP Tesis que presenta Jos´ e Luna Pardo Para Obtener el T´ ıtulo de Ingeniero en Comunicaciones y Electr´onica En la Especialidad de Ac´ ustica Director de la Tesis: Ing. Jos´ e de Jes´ us Negrete Redondo. Codirector: Dr. Maximino Pe˜ na Guerra. exico D.F. Agosto 2011

Transcript of INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de...

Page 1: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE MECANICA Y ELECTRICA

ESIME (ZACATENCO)

DEPARTAMENTO DE INGENIERIA EN COMUNICACIONES

Y ELECTRONICA

Analizador de Espectro

con DSP

Tesis que presenta

Jose Luna Pardo

Para Obtener el Tıtulo de

Ingeniero en Comunicaciones y Electronica

En la Especialidad de

Acustica

Director de la Tesis: Ing. Jose de Jesus Negrete Redondo.Codirector: Dr. Maximino Pena Guerra.

Mexico D.F. Agosto 2011

Page 2: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Trabajo de tesis que forma parte de los resultados obtenidos ennuestro proyecto de investigacion: KCM: Biblioteca de ASICsV HDL Para Procesamiento de Senales de Control Medico,con numero de registro CGPI:20090490 asignado por la Secre-tarıa de Investigacion y Posgrado del Instituto Politecnico Na-cional. Dicho proyecto fue realizado durante el ano del 2009 den-tro de las instalaciones del laboratorio de Acustica, y dirigidopor el Dr. Maximino Pena Guerrero.

ii

Page 3: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

RESUMEN

Hoy en dıa el avance tecnologico requiere de mediciones mas precisas para el desa-

rrollo de equipo de mejor desempeno y mayor estabilidad. El mercado ofrece instru-

mentos de medicion de alto desempeno para analizar el sonido producido por una o

varias fuentes. Los dispositivos de analisis espectral analogicos son robustos, normal-

mente de aplicacion especıfica y caros. Por otra parte la construccion digital de di-

chos dispositivos requiere el conocimiento de microprocesadores y el conocimiento de

los algoritmos de procesamiento de senales digitales.

En esta tesis se presenta el diseno y construccion de un analizador de espectros

utilizando un Procesador Digital de senales (DSP) MC56F8323. El ambiente de desa-

rrollo ofrece herramientas especıficas para realizar dicha funcion, lo cual nos permite

tener un programa optimizado y eficiente para dicho proposito sin tener que progra-

mar los algoritmos de una forma manual. Ademas, la velocidad y prestaciones de di-

cho circuito integrado, nos ofrece una muy buena solucion a nuestro problema.

El resultado obtenido en una herramienta de hardware y software que permi-

te capturar y procesar una senal acustica para obtener su espectro. Ademas, al tener

el funcionamiento especıfico de este dispositivo, ofrece la base para nuevos proyectos

que utilicen un dispositivo de esta ındole para el procesamiento de senal.

1

Page 4: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Indice general

1. Introduccion 7

2. Consideraciones Teoricas. 10

2.1. Senales, sistemas y procesado de la senal . . . . . . . . . . . . . . . . 11

2.1.1. Elementos basicos de un sistema de procesado digital de senales 14

2.1.2. Senales en tiempo continuo frente a senales en tiempo discreto. 15

2.1.3. Senales continuas frente a senales discretas . . . . . . . . . . . 17

2.2. Senales sinusoidales en tiempo discreto . . . . . . . . . . . . . . . . . 18

2.3. Consideraciones para la conversion analogico-digital . . . . . . . . . . 19

2.3.1. Muestreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.2. Cuantizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.3. Codificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.4. Analisis de sistemas discretos lineales invariantes en el tiempo . . . . 23

2.4.1. Clasificacion de los sistemas discretos . . . . . . . . . . . . . . 24

2.4.2. Descomposicion de una senal discreta en impulsos. . . . . . . . 25

2.4.3. Respuesta de un sistema LTI a entradas arbitrarias: la convolucion 27

2.4.4. Sistemas con respuesta impulsional de duracion finita e infinita 28

2.4.5. Sistemas discretos recursivos y no recursivos . . . . . . . . . . 28

2.4.6. Sistemas discretos descritos mediante ecuaciones en diferencias. 29

2.5. Filtros Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.5.1. Caracterısticas de los filtros ideales . . . . . . . . . . . . . . . 32

2.5.2. Diseno de filtros digitales por el metodo de polos y ceros . . . 33

2.6. Analisis Espectral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2

Page 5: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

2.6.1. La transformada de Fourier Discreta (DFT). . . . . . . . . . . 38

2.6.2. Calculo eficiente de la DFT: Algoritmo de diezmado en tiempo 39

3. Programacion del DSP 43

3.1. Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.1.1. El MC56F8323 . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.1.2. Tarjeta de demostracion 56F8300DEMO con Programa Puer-

toSerie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.1.3. Computadora con Programa PuertoSerie2 . . . . . . . . . . . 45

3.2. Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.2.1. El Code Warrior . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.2.2. C++/C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.3. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.3.1. Desarrollo del programa Puerto serie . . . . . . . . . . . . . . 47

3.3.2. Desarrollo del programa Puerto Serie 2. . . . . . . . . . . . . . 52

3.3.3. Desarrollo del programa Sistema Discreto. . . . . . . . . . . . 52

4. Pruebas y resultados 54

5. Conclusiones y Trabajos Futuros. 59

5.1. Especificaciones Tecnicas . . . . . . . . . . . . . . . . . . . . . . . . . 67

A. Codigo de Programas Comentado 68

A.1. Programa PuertoSerie . . . . . . . . . . . . . . . . . . . . . . . . . . 68

A.1.1. Archivo Events.c . . . . . . . . . . . . . . . . . . . . . . . . . 68

A.1.2. Archivo PuertoSerie.c . . . . . . . . . . . . . . . . . . . . . . . 70

A.2. Programa PuertoSerie2 . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3

Page 6: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Indice de figuras

2.1. Ejemplo de una senal de voz . . . . . . . . . . . . . . . . . . . . . . . 12

2.2. Procesado de senal analogica. . . . . . . . . . . . . . . . . . . . . . . 14

2.3. Diagrama de bloques de un sistema digital de procesado de senales. . 15

2.4. Representacion grafica de la senal en tiempo discreto . . . . . . . . . 16

2.5. Senal digital con cuatro valores de amplitud . . . . . . . . . . . . . . 17

2.6. Ejemplo de una senal sinusoidal en tiempo discreto. . . . . . . . . . . 19

2.7. Partes basicas de un conversor analogico-digital (A/D). . . . . . . . . 19

2.8. Muestreo periodico de una senal analogica. . . . . . . . . . . . . . . . 20

2.9. Ilustracion del aliasing. . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.10. Multiplicacion de una senal x(n) con un inpulso unitario desplazado. 26

2.11. Desplazamiento dado por k. . . . . . . . . . . . . . . . . . . . . . . . 30

2.12. Respuesta en magnitud de algunos filtros discretos selectivos . . . . . 33

2.13. Mapeo en z de ω. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.14. Mapeo en z de un filtro Pasa-Bajos con un polo y un cero. . . . . . . 36

2.15. Mapeo en z de un filtro Pasa-Altos con un polo y un cero. . . . . . . 36

2.16. Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36

2.17. Mariposa basica del algoritmo para la FFT de diezmado en el tiempo. 42

3.1. Figura donde se observa la configuracion grafica en ProcessorExpert. 47

3.2. Figura donde se observa la ventana Bean Inspector. . . . . . . . . . 49

3.3. Figura donde se observa el codigo Generado por el Processor Expert. 49

3.4. Ejemplo de una multiplicacion binaria sin desbordamiento. . . . . . . 50

3.5. Ejemplo de una multiplicacion binaria con desbordamiento. . . . . . . 51

4

Page 7: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

3.6. Ejemplo de pantalla de Sistema Discreto. . . . . . . . . . . . . . . . . 53

4.1. Interface del programa PuertoSerie2. . . . . . . . . . . . . . . . . . . 54

4.2. Respuesta del circuito a 500hz. . . . . . . . . . . . . . . . . . . . . . 55

4.3. Respuesta del circuito a 1000hz. . . . . . . . . . . . . . . . . . . . . . 55

4.4. Respuesta del circuito a 500hz + 1000hz + 2000hz. . . . . . . . . . . 56

4.5. Respuesta del circuito a 3KHz, 7KHz y 10KHz. . . . . . . . . . . . . 56

4.6. Interface del programa SistemaDiscreto. . . . . . . . . . . . . . . . . 57

4.7. Resultado de aplicar un filtro pasa banda a la senal de entrada. . . . 57

4.8. Resultado de aplicar un filtro pasa altos a la senal de entrada. . . . . 58

4.9. Resultado de aplicar un filtro pasa bajos a la senal de entrada. . . . . 58

5.1. Respuesta del equipo X-230 a la Prueba 1 . . . . . . . . . . . . . . . 60

5.2. Respuesta del equipo LC-650 a la Prueba 1 . . . . . . . . . . . . . . . 60

5.3. Respuesta del equipo X-230 a la Prueba 2 . . . . . . . . . . . . . . . 61

5.4. Respuesta del equipo LC-650 a la Prueba 2 . . . . . . . . . . . . . . . 61

5.5. Respuesta del equipo X-230 a la Prueba 3 . . . . . . . . . . . . . . . 61

5.6. Respuesta del equipo LC-650 a la Prueba 3 . . . . . . . . . . . . . . . 62

5.7. Respuesta del equipo X-230 a la Prueba 4 . . . . . . . . . . . . . . . 62

5.8. Respuesta del equipo LC-650 a la Prueba 4 . . . . . . . . . . . . . . . 62

5.9. Respuesta del bafle VS-15X a la Prueba 1 . . . . . . . . . . . . . . . 63

5.10. Respuesta del bafle armado a la Prueba 1 . . . . . . . . . . . . . . . . 63

5.11. Respuesta del bafle VS-15X a la Prueba 2 . . . . . . . . . . . . . . . 64

5.12. Respuesta del bafle armado a la Prueba 2 . . . . . . . . . . . . . . . . 64

5.13. Respuesta del bafle VS-15X a la Prueba 3 . . . . . . . . . . . . . . . 64

5.14. Respuesta del bafle armado a la Prueba 3 . . . . . . . . . . . . . . . . 65

5.15. Respuesta del bafle VS-15X a la Prueba 4 . . . . . . . . . . . . . . . 65

5.16. Respuesta del bafle armado a la Prueba 4 . . . . . . . . . . . . . . . . 65

5

Page 8: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Indice de tablas

3.1. Documentos de Referencia al MC56F8323. . . . . . . . . . . . . . . . 44

3.2. Documentos de Referencia de la tarjeta 56F8300DEMO. . . . . . . . 45

6

Page 9: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Capıtulo 1

Introduccion

Debido al interes que existe en el campo de la Acustica, es necesario realizar me-

diciones que puedan expresar el comportamiento de un equipo de audio, en cuanto a

frecuencia y amplitud se refiere. Dichas mediciones deben ser concretas, almacenables

y comparables para poder tener una idea clara de como se comporta el equipo y co-

mo se transforma el sonido. Es cierto que el oıdo tiene la capacidad de poder realizar

mediciones y entender lo que esta sucediendo con el sonido, pero es necesario un oıdo

educado para realizar las mediciones, y ademas, la misma persona tendrıa que reali-

zar todas las mediciones para poder hacer una comparacion util. Es por eso la nece-

sidad de tener equipo que realice mediciones que permitan comparar estos parame-

tros de interes para poder entender el comportamiento del equipo de audio.

Esta necesidad nacio al tener un equipo de audio del cual se desconoce su com-

portamiento en frecuencia, ademas, no existıan parametros o mediciones reales que

nos pudieran hacer ver si el equipo estaba en buen estado o ya con el tiempo se ha re-

ducido su rendimiento. Serıa interesante poder realizar mediciones de un equipo nue-

vo, guardar sus curvas de respuesta y despues de un tiempo volver a tomar medicio-

nes y saber en que se ha demeritado el equipo o si sigue en buen estado. Serıa difıcil

recordar de oıdo como se escuchaba el equipo cuando estaba nuevo.

Un analizador de espectro serıa un buen equipo de medicion para dar solucion

en gran parte a esta necesidad, pero el equipo que existe en el mercado es muy ca-

7

Page 10: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

ro y normalmente de aplicacion especifica, con lo cual no se puede adaptar facilmen-

te a soluciones y proyectos personales, sino que se depende de lo que ofrece el merca-

do. De ahı nace la intencion de fabricar equipos de medicion para dar solucion a di-

chos problemas.

El rapido desarrollo de los microcontroladores, ha permitido pensar en desarro-

llar equipo de medicion de buen desempeno y bajo costo, esto se debe a que los nue-

vos microcontroladores que tienen la capacidad de realizar los calculos necesarios pa-

ra esta funcion no son costosos. La dificultad es aprender a utilizarlos y tener el cono-

cimiento del analisis digital de senales para programar los algoritmos de procesado de

senal. Es cierto que el conocimiento de analisis digital no es tan estudiado como lo es el

analisis analogico, sin embargo, al entender el funcionamiento de un sistema en tiempo

continuo, se puede entender el funcionamiento en tiempo discreto. Se puede suponer,

que esa es la razon por la cual dar mayor enfasis en el estudio de sistemas analogicos.

En esta tesis se busco desarrollar un sistema de hardware y software que mida

el espectro de una senal. Se le dio solucion a este problema con un DSP que es como

un microcontrolador pero con mas potencia de procesado y funciones especificas para

procesado de senal. Lo primero fue tener el conocimiento de los principios basicos de

los sistemas en tiempo discreto. Se estudio acerca de la descomposicion de una senal

en impulsos, acerca de la convolucion, sistemas discretos descritos por ecuaciones de

diferencias, filtros digitales, DFT, etc. Se hicieron ejemplos en papel para comprobar

y observar lo aprendido, sin embargo, los algoritmos de procesado digital conllevan a

un numero muy grande de operaciones que en muchos casos son recursivas. Hacer es-

to a mano conlleva a perder mucho tiempo en estar realizando calculos repetitivos y,

ademas, un margen de error muy alto al realizar tantos calculos. Fue por esa razon,

el crear una herramienta que permitiera probar los algoritmos estudiados y ver rapi-

damente los resultados con un margen de error mınimo. Se desarrollo un programa

para la computadora donde se le pueden cargar las funciones de lenguaje C que dan

solucion a los algoritmos de procesado digital. Esta herramienta surgio como un ex-

8

Page 11: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

tra para el problema principal, pero resulto muy eficiente para el aprendizaje de los

sistemas discretos.

En los Capıtulos siguientes se vera el desarrollo completo de lo platicado ante-

riormente y esta distribuido de la siguiente forma:

Capitulo 2: Habla del marco teorico para el desarrollo del sistema. Es un com-

pendio de los conocimientos teoricos basicos para el procesado de senal en tiempo

discreto. Entre los datos mas importantes, se habla de como se debe muestrear una

senal para procesarla y como calcular la DFT (Transformada de Fourier Discreta) de

forma directa y con el algoritmo de diezmado en tiempo.

Capitulo 3 Habla de los dispositivos o Hardware utilizados para el desarrollo del

sistema, las herramientas de software utilizadas para la programacion del microcon-

trolador y la computadora, y el desarrollo de los programas para el microcontrolador

y la computadora, ası como su funcionamiento.

Capitulo 4 Muestra los resultados obtenidos de lo desarrollado en esta tesis.

Capitulo 5 son las conclusiones y algunas ideas para implementar este sistema

en otros proyectos.

9

Page 12: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Capıtulo 2

Consideraciones Teoricas.

El procesado digital de senales es un area de la ciencia y la ingenierıa que se

ha desarrollado rapidamente durante los ultimos 30 anos. Este rapido desarrollo es

el resultado de los avances tecnologicos tanto en los ordenadores digitales como en la

fabricacion de circuitos integrados. Los ordenadores digitales y el hardware asociado

hace tres decadas eran relativamente grandes y caros y, como consecuencia, su uso se

limitaba a aplicaciones de proposito general en tiempo no real, tanto cientıficas como

comerciales. El rapido desarrollo de la tecnologıa de circuitos integrados, empezan-

do por la integracion a media escala (MSI, medium-scale integration) y continuando

con la integracion a gran escala (LSI, large-scale integration), y ahora, la integracion

a muy gran escala (VLSI, very-large-scale integration) de circuitos electronicos inte-

grados ha estimulado el desarrollo de ordenadores digitales mas potentes, pequenos,

rapidos y baratos y de hardware digital de proposito general. Estos circuitos digita-

les y relativamente rapidos han hecho posible construir sistemas digitales altamente

sofisticados, capaces de realizar funciones y tareas del procesado de senal digital que

normalmente eran demasiado difıciles y/o caras con circuiterıa o sistemas de proce-

sado de senales analogicas. De aquı que muchas de las tareas del procesado de senal

que convencionalmente se realizaban analogicamente se realicen hoy mediante hard-

ware digital, mas barato y a menudo mas fiable.

Los circuitos digitales no solo dan lugar a sistemas para el procesado de senales

10

Page 13: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

mas baratos y fiables sino que tambien tienen otras ventajas. En particular, el pro-

cesado de senal digital permite operaciones programables. Por medio de software se

pueden modificar facilmente las funciones de procesado de senal para que sean reali-

zadas por el hardware. Por tanto, el hardware digital y el software asociado propor-

cionan un mayor grado de flexibilidad en el diseno de sistemas. Ademas, normalmen-

te se consigue mayor precision con el hardware digital y el software en comparacion

con los circuitos analogicos y los sistemas de procesado de senales analogicas.

En este capıtulo se abordaran los temas teoricos para el desarrollo de esta tesis.

2.1. Senales, sistemas y procesado de la senal

Una senal se define como una cantidad fısica que varia con el tiempo, el espa-

cio o cualquier otra variable o variables independientes. Matematicamente, se descri-

be una senal como una funcion de una o mas variables independientes. Por ejemplo

las funciones

s1(t) = 5t (2.1)

s2(t) = 20t2 (2.2)

describen dos senales, una que varia linealmente con la variable independiente t (tiem-

po) y una segunda que varia cuadraticamente con t. Como otro ejemplo considere la

funcion

s(x, y) = 3x+ 2xy + 10y2 (2.3)

Esta funcion describe una senal con dos variables independientes x y y que pueden

representar las coordenadas espaciales en un plano. Las senales descritas en 2.1, 2.2

y 2.3 pertenecen a las clases de senales que quedan perfectamente definidas especifi-

cando la dependencia funcional con la variable independiente. Sin embargo, existen

casos en los que dicha relacion funcional es desconocida o demasiado complicada co-

mo para tener utilidad practica.

11

Page 14: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Por ejemplo, una senal de voz como la que se muestra en la Figura (2.1) no se

puede describir funcionalmente mediante expresiones como la (2.1) o (2.2) . En gene-

ral, un segmento de voz puede representarse con un alto grado de exactitud como la

suma de varias sinusoides de diferentes amplitudes y frecuencias, esto es, como

ΣNi Ai(t)sen[2πFi(t)t+ θi(t)] (2.4)

donde Ai(t), Fi(t), y θi(t) son los conjuntos (probablemente variables con el

tiempo) de amplitudes, frecuencias y fases, respectivamente, de las sinusoides. De he-

cho, una manera de interpretar la informacion o el mensaje contenido en un segmen-

to corto de una senal de voz es medir las amplitudes, frecuencias y fases contenidas

en el segmento corto de senal.

Figura 2.1: Ejemplo de una senal de voz

Asociados a las senales naturales se encuentran los medios con los que se gene-

ran. Por ejemplo, las senales de voz se generan al forzar el paso del aire a traves de

las cuerdas vocales. Por lo tanto, la forma en que se generan las senales se encuen-

tra asociada con un sistema que responde ante un estımulo o fuerza. En una senal

de voz, el sistema esta constituido por las cuerdas vocales y el tracto bucal. El esti-

mulo en combinacion con el sistema se llama fuente de senal.

Un sistema se puede definir tambien como un dispositivo fısico que realiza una

operacion sobre una senal. Por ejemplo, un filtro que se usa para reducir el ruido y

las interferencias que corrompen la senal conteniendo la informacion deseada se de-

12

Page 15: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

nomina sistema.

Cuando se hace pasar una senal a traves de un sistema, como en el caso del fil-

trado, se dice que se ha procesado la senal. En este caso, el procesado de la senal im-

plica la separacion de la senal deseada del ruido y la interferencia. En general, el sis-

tema se caracteriza por el tipo de operacion que realiza sobre la senal. Por ejemplo,

si la operacion que realiza es lineal, el sistema se denomina lineal, si la operacion es

no lineal, el sistema se dice no lineal, etc. Tales operaciones se denominan habitual-

mente como procesado de senal.

Es conveniente ampliar la definicion de sistema para incluir no solo dispositivos

fısicos, sino tambien realizaciones software de operaciones sobre una senal. En el pro-

cesado digital de senales en un ordenador, las operaciones realizadas sobre una senal

constan de varias operaciones matematicas especificadas por un programa software.

En este caso, el programa representa una implementacion del sistema en software.

Alternativamente, el procesado digital de la senal se puede efectuar mediante hard-

ware digital (circuitos logicos) configurado para ejecutar las operaciones deseadas es-

pecificas. En un sentido mas amplio, un sistema digital se puede implementar como

una combinacion de hardware digital y software, cada uno de los cuales desempena

su propio conjunto de funciones.

Dado que muchas de las senales que se encuentran en las practica son analogi-

cas, tambien debemos de considerar el problema de convertir una senal analogica en

una digital para su procesado. Las operaciones realizadas por los sistemas digitales

se pueden especificar a menudo matematicamente. El metodo, o conjunto de reglas

para implementar el sistema mediante un programa que ejecuta las operaciones ma-

tematicas correspondientes se denomina algoritmo.

13

Page 16: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

2.1.1. Elementos basicos de un sistema de procesado digitalde senales

La mayor parte de las senales que aparecen en los ambitos de la ciencia y la in-

genierıa son de naturaleza analogica, es decir, las senales son funciones de una varia-

ble continua, como el tiempo o el espacio y normalmente toman valores en un ran-

go continuo. Tales senales pueden ser procesadas directamente por sistemas analogi-

cos adecuados(como filtros o analizadores de frecuencia o multiplicadores de frecuen-

cia) con el proposito de cambiar sus caracterısticas o extraer cualquier informacion

deseada. En tal caso, se dice que la senal ha sido procesada directamente en forma

analogica, como se ilustra en la Figura (2.2). Tanto la senal de entrada como la de

salida estan en forma analogica.

El procesado digital de senales proporciona un metodo alternativo para proce-

sar una senal analogica, como se muestra en la Figura (2.3). Para realizar el procesa-

do digitalmente, se necesita una interfaz entre la senal analogica y el procesador di-

gital. Este interfaz se denomina conversor analogico − digital (A/D). La salida del

conversor analogico-digital es una senal adecuada como entrada al procesador digital.

Figura 2.2: Procesado de senal analogica.

El procesador digital de senales puede ser un gran ordenador digital programa-

ble o un pequeno microprocesador programado para realizar las operaciones deseadas

sobre la senal de entrada. Tambien puede ser un procesador digital cableado configu-

rado para efectuar un conjunto de operaciones sobre la senal de entrada. Las maqui-

nas programables proporcionan la flexibilidad de cambiar las operaciones de procesa-

do de senales mediante un cambio de software. En consecuencia, los procesadores de

senales programables son de uso muy frecuente. Por otro lado, cuando las operacio-

14

Page 17: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

nes de procesado de senales estan bien definidas, se puede optimizar la implementa-

cion cableada de las operaciones, resultando un procesador mas barato y, habitual-

mente, mas rapido que su equivalente programable. En aplicaciones donde la salida

digital del procesador digital de senales se ha de entregar en forma analogica, como

en comunicaciones digitales, debemos proporcionar otro interfaz desde el dominio di-

gital al analogico. Tal interfaz de denomina conversor digital/analogico (D/A). De

este modo, la senal se entrega al usuario en forma analogica, como se ilustra en el dia-

grama de bloques de la Figura (2.3). No obstante, existen otras aplicaciones practi-

cas que requieren analisis de senales en las que la informacion deseada se encuentra

en formato digital y no se requiere ningun conversor D/A.

Figura 2.3: Diagrama de bloques de un sistema digital de procesado de senales.

2.1.2. Senales en tiempo continuo frente a senales en tiempodiscreto.

Las senales en tiempo continuo o senales analogicas estan definidas para to-

dos los valores del tiempo y pueden tomar cualquier valor en el intervalo continuo(a,

b), donde a puede ser −α y b puede ser α. Matematicamente, estas senales se des-

criben como funciones continuas de variable continua. Las senales en tiempo discre-

to estan definidas solo para ciertos valores del tiempo. Estos instantes de tiempo

no necesitan estar equidistantes, aunque en la practica se utilizan normalmente ins-

tantes equiespaciados conforme a intereses computacionales y matematicos. La senal

x(tn) = e|tn|, n = 0,±1,±2, ... constituye un ejemplo de una senal discreta. Si usa-

mos el ındice n como la variable independiente que representa los instantes de tiem-

15

Page 18: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

po, la senal pasa a ser una funcion de una variable entera (es decir, una secuencia de

numeros). Por lo tanto, una senal en tiempo discreto se puede representar matemati-

camente como una secuencia de numeros reales o complejos. Para destacar la natura-

leza discreta de una senal denotaremos dicha senal como x(n) en vez de como x(t). Si

los instantes de tiempo tn estan equiespaciados (es decir, tn = nT ), tambien de usa-

ra la notacion x(nT ). Por ejemplo la secuencia

x(n) =

0.8n, si n ≥ 00, en otro caso

(2.5)

es una senal en tiempo discreto cuya representacion grafica se muestra en la Figura

(2.4).

En la practica las senales en tiempo discreto pueden originarse de dos maneras:

1. Eligiendo valores de una senal analogica en determinados instantes de tiempo.

Este proceso se denomina muestreo. Todos los aparatos de medida que propor-

cionan medidas en instantes de tiempo regulares generan senales en tiempo dis-

creto. Por ejemplo, la senal x(n) de la Fig. 1.4 se puede obtener muestreando

la senal analogica x(t) = 0.8t, t ≥ 0 y x(t) = 0, t < 0, una vez cada segundo.

2. Acumulando una variable a lo largo de un determinado periodo de tiempo. Por

ejemplo, el numero de coches que pasan por una determinada calle en una hora.

Figura 2.4: Representacion grafica de la senal en tiempo discreto

x(n) = 0.8n para n > 0 y x(n) = 0 para n < 0

16

Page 19: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

2.1.3. Senales continuas frente a senales discretas

El valor de una senal, en tiempo continuo o discreto, puede ser continuo o dis-

creto. Si una senal toma todos los valores posibles en un intervalo tanto finito como

infinito, se dice que es continua. Por el contrario, si toma valores de un conjunto finito

de valores se dice que es discreta. Normalmente, estos valores son equidistantes y por

tanto pueden expresarse como un multiplo de la distancia entre dos valores sucesivos.

Una senal en tiempo discreto, que toma valores en un conjunto discreto se denomina

senal digital. La Figura (2.5) muestra una senal digital con cuatro valores posibles.

Para que una senal pueda ser procesada digitalmente ha de ser en tiempo dis-

creto y tomar valores discretos (es decir, ha de ser una senal digital). Si la senal a

procesar es analogica, se convierte a digital muestreandola en el tiempo y obtenien-

do por tanto una senal en tiempo discreto y posteriormente cuantificando sus va-

lores en un conjunto discreto. El proceso de convertir una senal continua en discre-

ta, se denomina cuantificacion y es basicamente un proceso de aproximacion. Pue-

de lograrse por redondeo o truncamiento. Por ejemplo, si los valores permitidos en la

senal digital son enteros, digamos del 0 al 15, la senal continua sera cuantificada a es-

tos valores. Ası, el valor 8.58 se aproximara por 8, si el proceso de cuantificacion se

basa en el truncamiento, y por 9, si se basa en redondear al entero mas proximo.

Figura 2.5: Senal digital con cuatro valores de amplitud

17

Page 20: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

2.2. Senales sinusoidales en tiempo discreto

Una senal sinusoidal en tiempo discreto puede expresarse como

x(n) = Acos(wn+ θ), −α < n < α (2.6)

donde n es una variable entera, denominada numero de muestra, A es la amplitud de

la sinusoide, w es la frecuencia en radianes por muestra, y θ es la fase en radianes.

Si, en lugar de w, utilizamos la variable de frecuencia f definida por

w ≡ 2πf (2.7)

la relacion (1.7) se convierte en

x(n) = Acos(2πfn+ θ), −α < n < α (2.8)

La frecuencia f tiene dimensiones de ciclos por muestra. La figura 2.6 muestra

una sinusoide en tiempo discreto.

En contraste con las sinusoides en tiempo continuo, las sinusoides en tiempo

discreto estan caracterizadas por las propiedades siguientes:

1. Una sinusoide en tiempo discreto es periodica solo si su frecuencia f es un nume-

ro racional.

2. Las sinusoides en tiempo discreto cuyas frecuencias estan separadas por un

multiplo entero de 2π, son identicas. Por otro lado, las secuencias de dos sinu-

soides cualesquiera de frecuencias en el rango −π ≤ w ≤ π o −1/2 ≤ f ≤ 1/2

son unicas.

3. La mayor tasa de oscilacion en una sinusoide en tiempo discreto se alcanza cuan-

do w = π (o w = −π) o, equivalentemente, f = 1/2 (o f = −1/2).

18

Page 21: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 2.6: Ejemplo de una senal sinusoidal en tiempo discreto.

2.3. Consideraciones para la conversion analogico-

digital

La mayorıa de las senales de interes practico son analogicas. Para procesar es-

tas senales por medios digitales es necesario convertirlas a formato digital. Este pro-

cedimiento se denomina conversion analogico− digital (A/D).

Conceptualmente, se puede ver la conversion A/D como un proceso de tres pa-

sos. Este proceso se ilustra en la figura 2.7.

Figura 2.7: Partes basicas de un conversor analogico-digital (A/D).

1. Muestreo.

2. Cuantificacion.

3. Codificacion.

19

Page 22: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

2.3.1. Muestreo

Esta es la conversion de una senal en tiempo continuo a una senal en tiempo

discreto obtenida tomando ”muestras”de la senal en tiempo continuo en instantes de

tiempo discreto. Existen muchas maneras de muestrear una senal. Se cenira la discu-

sion al muestreo periodico o uniforme, que es el tipo de muestreo mas usado en la

practica. Este de describe mediante la relacion

x(n) = xa(nT ), −α < n < α (2.9)

donde x(n) es la senal en tiempo discreto obtenida tomando muestras de la senal

analogica xa(t) cada T segundos. Este proceso se ilustra en la Figura (2.8). El in-

tervalo de tiempo T entre dos muestras sucesivas se denomina periodo de muestreo

o intervalo de muestreo, y su recıproco 1/T = Fs se llama velocidad demuestreo

(muestras por segundo) o frecuencia de muestreo (hertzios).

Figura 2.8: Muestreo periodico de una senal analogica.

El muestreo periodico establece una relacion entre las variables t y n de tiem-

po continuo y tiempo discreto, respectivamente. De hecho, estas variables se relacio-

nan linealmente a traves del periodo de muestreo T o, equivalentemente, a traves de

la velocidad de muestreo Fs = 1/T , como

t = nT =n

Fs

(2.10)

20

Page 23: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Como consecuencia de la expresion (2.10), existe una relacion entre la variable F

(o Ω) de las senales analogicas y la variable frecuencia f (o ω) de las senales en tiem-

po discreto.

f =F

Fs

(2.11)

ω = ΩT (2.12)

Dado que la frecuencia maxima de una senal en tiempo discreto es ω = π o

f = 1/2, los valores maximos de F y Ω para una velocidad de muestreo Fs son

Fmax =Fs

2=

1

2T(2.13)

Ωmax = πFs =π

T(2.14)

Frecuencias superiores a FS/2

Cualquier secuencia que resulte de una sinusoide con una frecuencia | ω |> π, o

| f |> 1/2 tiene una secuencia identica obtenida a partir de una senal sinusoidal de

frecuencia | ω |< π. Debido a esta similitud, denominamos a la sinusoide que tiene la

frecuencia | ω |> π un alias de la sinusoide correspondiente de frecuencia | ω |< π.

Por esta razon consideramos todas las frecuencias | ω |> π, o | f |> 1/2 como alias. Si

en una senal muestreada tenemos una o varias componentes sinusoidales con frecuen-

cia superior a Fs/2 tendrıamos el mismo numero de alias y no se podrıa distinguir

unıvocamente la sinusoide componente de la senal. Esto se muestra en la Figura (2.9).

Teorema del muestreo.

Si la frecuencia mas alta contenida en una senal analogica xa(t) es Fmax = B y la

senal se muestrea a una velocidad Fs > 2Fmax ≡ 2B, entonces xa(t) se puede recupe-

rar totalmente a partir de sus muestras mediante la siguiente funcion de interpolacion

g(t) =sen2πBt

2πBt(2.15)

21

Page 24: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 2.9: Ilustracion del aliasing.

2.3.2. Cuantizacion

El proceso de convertir una senal en tiempo discreto de amplitud continua en

una senal digital, expresando cada muestra por medio de un numero finito (en vez

de infinito) de dıgitos, se denomina cuantificacion. El error cometido al represen-

tar la senal de valor continuo por un conjunto finito de valores discretos se denomi-

na error de cuantificacion o ruido de cuantificacion

Denotaremos la operacion de cuantificacion de las muestras x(n) como Q [x(n)]

y utilizaremos xq(n) para designar la secuencia de muestras cuantificadas a la salida

del cuantificador.

xq(n) = Q [x(n)](2.16)

por tanto, el error de cuantificacion de una secuencia eq(n) se define como la diferen-

cia entre el valor cuantificado y el de la muestra original

eq(n) = xq(n)− x(n) (2.17)

2.3.3. Codificacion

El proceso de codificacion es como se va a almacenar los numeros de la cuanti-

zacion. En el caso de una codificacion binaria, si disponemos de L niveles en la cuan-

22

Page 25: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

tizacion, necesitaremos una longitud de palabra de b bits

2b ≥ L (2.18)

2.4. Analisis de sistemas discretos lineales inva-

riantes en el tiempo

En concreto, un sistema discreto es un dispositivo que opera sobre una

exitacion o senal de entrada en tiempo discreto segun una regla preestablecida para

generar otra senal en tiempo discreto denominada salida o respuesta del sistema. Se

dice que la senal x(n) es transformada por el sistema en y(n), y se expresa la rela-

cion general entre x(n) e y(n) como

y(n) ≡ τ [x(n)] (2.19)

o, de forma alternativa

x(n)τ−→ y(n) (2.20)

donde el sımbolo τ denota la transformacion o procesado realizado por el sistema so-

bre x(n) para producir la senal de salida y(n).

Existen dos metodos basicos para el analisis del comportamiento o respuesta de

un sistema lineal a una determinada senal de entrada. Un metodo se basa en obtener

la solucion de la ecuacion de entrada-salida que tiene una forma general

y(n) = −N∑k−1

aky(n− k) +M∑k=0

bkx(n− k) (2.21)

donde ak y bk son parametros constantes que especifican el sistema y son inde-

pendientes de x(n) e y(n). La relacion entrada-salida dada en la expresion (2.21) se

denomina ecuacion en diferencias y representa una de las maneras de caracterizar el

comportamiento de un sistema discreto LTI (del ingles Linear Time Invariant).

El segundo metodo se basa en descomponer dicha senal de entrada en senales

elementales. Entonces, usando la propiedad de linealidad del sistema, se suman las

23

Page 26: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

respuestas del sistema a cada una de las senales elementales para obtener la respues-

ta del sistema a la senal de entrada global.

2.4.1. Clasificacion de los sistemas discretos

Sistemas estaticos y sistemas dinamicos

Un sistema en tiempo discreto se denomina estatico o sin memoria si su sali-

da en cualquier instante n depende a lo sumo de la muestra de entrada en ese mis-

mo instante, pero no de las muestras pasadas o futuras de la entrada. En cualquier

otro caso, se dice que el sistema es dinamico o con memoria. Si la salida de un siste-

ma en el instante n esta determinada completamente por las muestras de entrada en

el intervalo de n −N a n(N ≥ 0), se dice que el sistema tiene memoria de duracion

N . si N = 0, el sistema es estatico. Si 0 < N < α, se dice que tiene memoria finita,

mientras que si N = α, se dice que tiene memoria infinita.

Sistemas invariantes en el tiempo y sistemas variantes en el tiempo

Teorema. Un sistema en reposo τ es invariante en el tiempo o

invariante a desplazamientos si y solo si

x(n)τ−→ y(n) (2.22)

implica que

x(n− k)τ−→ y(n− k) (2.23)

para toda senal de entrada x(n) y todo desplazamiento temporal de k.

Sistemas lineales y no lineales

Un sistema lineal es aquel que satisface el principio de superposicion.

Teorema. Un sistema es lineal si y solo si

τ [a1x1(n) + a2x2(n)] = a1τ [x1(n)] + a2τ [x2(n)] (2.24)

24

Page 27: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

para cualesquiera secuencias arbitrarias de entrada x1(n) y x2(n), y cualesquiera cons-

tantes arbitrarias a1 y a2.

Sistemas causales y no causales

Teorema. Se dice que un sistema es causal si la salida del sistema en cualquier

instante n (es decir y(n)) depende solo de las entradas presentes y pasadas pero no

de las futuras.

Sistemas estables frente a sistemas inestables

Teorema. Se dice que un sistema es estable si y solo si toda entrada acotada

produce una salida acotada.

Matematicamente el acotamiento de las secuencias de entrada-salida, x(n) e

y(n), se traduce en la existencia de un par de numeros finitos, digamos Mx y My, ta-

les que

| x(n) |≤ Mx < α | y(n) |≤ My < α (2.25)

para todo n.

2.4.2. Descomposicion de una senal discreta en impulsos.

Supongamos que tenemos una senal arbitraria x(n) que queremos expresar co-

mo la suma de impulsos unitarios. Escogemos las senales elementales xk(n) como

xk(n) = δ(n− k) (2.26)

donde k representa el retraso del impulso unitario. Para poder manejar una senal ar-

bitraria x(n) que puede tener infinitos valores, el conjunto de impulsos unitarios de-

be ser tambien infinito, para contener el numero infinito de desplazamientos.

Supongamos ahora que multiplicamos las secuencias x(n) y δ(n− k). Dado que

δ(n − k) es cero en todos los puntos excepto en n = k, donde vale uno, el resultado

de esta multiplicacion es otra secuencia que vale cero en todos los puntos excepto en

25

Page 28: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

n = k donde vale x(k), como se ilustra en la Fig. 2.10. Por tanto,

x(n)δ(n− k) = x(k)δ(n− k) (2.27)

Figura 2.10: Multiplicacion de una senal x(n) con un inpulso unitario desplazado.

En consecuencia, si repetimos esta multiplicacion para todos los posibles des-

plazamientos, −α < k < α, y sumamos el resultado de todas estas multiplicaciones,

obtendremos una senal igual a la secuencia original x(n), es decir,

x(n) =α∑

k=−α

x(k)δ(n− k) (2.28)

de esta forma se podrıa expresar la secuencia

x 0 1 2 3x(n) 7 5 4 3

26

Page 29: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

como la suma ponderada de impulsos unitarios

x(n) = 7δ(n) + 5δ(n− 1) + 4δ(n− 2) + 3δ(n− 3) (2.29)

y obtenemos la senal descompuesta en senales elementales.

2.4.3. Respuesta de un sistema LTI a entradas arbitrarias: laconvolucion

Primero, se denota la respuesta del sistema y(n, k) a un impulso unitario en el

instante n = k mediante el sımbolo especial h(n, k), −α < k < α. Es decir,

y(n, k) ≡ h(n, k) = τ [δ(n− k)] (2.30)

En la expresion (2.30) observamos que n es el ındice temporal y k indica la posicion

del impulso o instante en el que el impulso unitario es distinto de cero. Si el impulso

a la entrada del sistema se escala una cierta cantidad ck ≡ x(k), la respuesta del sis-

tema quedara escalada por la misma cantidad, esto es,

ckh(n, k) = x(k)h(n, k) (2.31)

Finalmente, si la entrada es la senal arbitraria x(n) expresada como la suma ponde-

rada de impulsos

x(n) =α∑

k=−α

x(k)δ(n− k) (2.32)

entonces la respuesta del sistema es la correspondiente suma ponderada de respues-

tas a los impulsos, es decir,

y(n) = τ [x(n)] = τ[

α∑k=−α

x(k)δ(n− k)

]

=α∑

k=−α

x(k)τ [δ(n− k)] (2.33)

=α∑

k=−α

x(k)h(n, k)

27

Page 30: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Si, ademas, el sistema es invariante en el tiempo, la formula 2.33 se simplifica a

y(n) =α∑

k=−α

x(k)h(n− k) (2.34)

La formula 2.34 que da la respuesta y(n) del sistema LTI como funcion de la senal de

entrada x(n) y de la respuesta impulsional h(n) se denomina convolucion.

2.4.4. Sistemas con respuesta impulsional de duracion finitae infinita

Es conveniente subdividir los sistemas lineales invariantes en el tiempo en aque-

llos que tienen una respuesta impulsional de duracion finita (FIR, finite-duration im-

pulse response) y los que tienen una respuesta impulsional de duracion infinita (IIR,

infinite-duration impulse response). Ası, pues, un sistema FIR tiene una respuesta

implulsional que es cero fuera de un determinado intervalo finito tal que

h(n) = 0 n < 0 y n ≥ M

la convolucion para este tipo de sistemas se simplifica segun

y(n) =M−1∑k=0

x(k)h(n− k)

Por el contrario, un sistema lineal invariante en el tiempo IIR tiene una respues-

ta impulsional de duracion infinita. Su salida, segun la formula de la convolucion, es

y(n) =α∑

k=0

x(k)h(n− k)

2.4.5. Sistemas discretos recursivos y no recursivos

Existen muchos sistemas, en los que es, o bien necesario, o bien conveniente, ex-

presar la salida del sistema no solo en terminos de los valores presentes y pasados de

la senal sino tambien en funcion de los valores pasados de la propia senal de salida.

El siguiente problema ilustra este hecho.

28

Page 31: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Suponga que quiere calcular la media acumulativa de una senal x(n) en el in-

tervalo 0 ≤ k ≤ n, definida como

y(n) =1

n+ 1

n∑k=0

x(k) n = 0, 1, . . . (2.35)

Como se desprende de 2.35, el calculo de y(n) requiere el almacenamiento de todas

las muestras de x(k) para 0 ≤ k ≤ n.

Sin embargo, una manera mas eficiente de calcular y(n) se basara en utilizar la

salida anterior y(n− k). Reordenando 2.35 obtenemos

(n+ 1)y(n) =n−1∑k=0

x(k) + x(n)

= ny(n− 1) + x(n)

de aquı

y(n) =n

n+ 1y(n− 1) +

1

n+ 1x(n) (2.36)

Un sistema cuya salida en el instante n depende de valores anteriores de la misma, se

denomina sistema recursivo.

2.4.6. Sistemas discretos descritos mediante ecuaciones endiferencias.

Un sistema lineal e invariante en el tiempo queda caracterizado por una rela-

cion de entrada-salida de la forma

y(n) =α∑

k=−α

x(k)h(n− k) (2.37)

En el caso de sistemas FIR, esta realizacion consistirıa en sumadores, multipli-

cadores y posiciones de memoria. En consecuencia, un sistema FIR se puede imple-

mentar basandose directamente en la convolucion.

Sin embargo, si el sistema es IIR, una implementacion practica basada en la

convolucion serıa imposible. Afortunadamente existe una manera practica y eficiente,

29

Page 32: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

desde el punto de vista computacional, de realizar una familia de sistemas IIR. Den-

tro de la clase general de sistemas IIR, esta familia de sistemas discretos se describe

mediante ecuaciones en diferencias.

La forma general de una ecuacion en diferencias es

y(n) = −N∑k−1

aky(n− k) +M∑k=0

bkx(n− k) (2.38)

donde k representa un desplazamiento de la senal como lo muestra la figura 2.11 tan-

to para x(n) como para y(n).

Dado que los sistemas que estamos considerando son causales, no tendremos

terminos (n+ k).

Tambien podemos observar que si un sistema es recursivo tenemos valores

y(n−N) puesto que son los valores de la salida.

Figura 2.11: Desplazamiento dado por k.

Es necesario encontrar una forma explıcita de la salida y(n) de un sistema li-

neal invariante en el tiempo dada una ecuacion en diferencias de coeficientes constan-

tes lineal como relacion de entrada-salida del mismo.

Basicamente, el objetivo es determinar la salida del sistema y(n), n ≥ 0, para

una determinada entrada x(n), n ≥ 0, y un conjunto de condiciones iniciales. La solu-

cion dada por el metodo directo supone que la solucion total es la suma de dos partes:

y(n) = yh(n) + yp(n)

La parte yh(n) se conoce como solucion homogenea o complementaria, mientras que

yp(n) se denomina solucion particular.

30

Page 33: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

El metodo alternativo para encontrar la solucion a la ecuacion en diferencias,

es por medio de la transformada z. La transformada z unilateral es una herramien-

ta muy efectiva para la solucion de ecuaciones en diferencias con condiciones iniciales

distintas de cero. Se consigue reduciendo la ecuacion en diferencias que relaciona las

dos senales en el dominio del tiempo a una ecuacion algebraica equivalente que rela-

ciona sus transformadas z unilaterales. Esta ecuacion se resuelve facilmente para ob-

tener la transformada de la senal deseada. La senal en el dominio del tiempo se ob-

tiene invirtiendo la transformada z resultante.

2.5. Filtros Digitales

El termino filtro se utiliza comunmente para describir un dispositivo que dis-

crimina, segun algun atributo de los objetos que se aplican a su entrada, aquello que

pasa a su traves. Por ejemplo, un filtro de aire permite que el aire pase a su traves,

evitando que las partıculas de polvo presentes en el aire lo atraviesen. Un filtro de

aceite realiza una funcion similar, con la excepcion de que el aceite es la sustancia

que se permite que pase a traves del filtro, mientras que las partıculas de suciedad se

recogen a la entrada, evitando que lo atraviesen.

Un sistema lineal e invariante en el tiempo tambien realiza un tipo de discrimi-

nacion o filtrado de las diferentes componentes en frecuencia de la entrada. La natu-

raleza de esta accion de filtrado viene determinada por las caracterısticas de la res-

puesta en frecuencia H(w), que a su vez depende de la eleccion de los parametros del

sistema. De este modo, eligiendo adecuadamente los coeficientes, podemos disenar fil-

tros selectivos en frecuencia que dejen pasar senales con componentes frecuenciales en

ciertas bandas, al tiempo que atenuen senales que contengan componentes frecuen-

ciales en otras bandas.

En general, un sistema lineal e invariante en el tiempo modifica el espectro de

la senal de entrada X(w), segun su respuesta en frecuencia H(w), para dar lugar a

una senal de salida con espectro Y (w) = H(w)X(w). En cierto sentido, H(w) actua

31

Page 34: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

como funcion de ponderacion o funcion de conformacion espectral para las diferen-

tes componentes frecuenciales de la senal de entrada. Visto en este contexto, cual-

quier sistema lineal e invariante en el tiempo puede considerarse como un filtro de

conformacion espectral, aunque no bloquee necesariamente ninguna componente en

frecuencia. En consecuencia, los terminos sistema lineal e invariante en el tiempo

y filtro son sinonimos y, como tales, se intercambian habitualmente.

Se emplea el termino filtro para describir un sistema lineal e invariante en el

tiempo utilizado para realizar operaciones de conformacion espectral o filtrado selec-

tivo en frecuencia.

2.5.1. Caracterısticas de los filtros ideales

Los filtros se suelen clasificar segun sus caracterısticas en el dominio de la fre-

cuencia como paso bajo, paso alto, paso banda y de banda eliminada. Las caracterısti-

cas ideales de la respuesta en magnitud de estos tipos de filtros se representan en la Fi-

gura (2.12). Tal como se muestra, los filtros ideales tienen una ganancia constante en

la banda de paso, ganancia cero en la banda eliminada y su respuesta de fase es lineal.

En todo caso, estos filtros no son realizables, pero sirven como idealizacion ma-

tematica de los filtros practicos. Por ejemplo, el filtro paso bajo ideal tiene una res-

puesta impulsional

hlp(n) =senwcπn

πn(2.39)

Vemos que este filtro no es causal ni absolutamente sumable, por lo que es inestable.

Por tanto, este filtro ideal es fısicamente irrealizable. Sin embargo, su caracterıstica

de respuesta en frecuencia se puede aproximar mucho con filtros practicos y realiza-

bles fısicamente.

32

Page 35: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 2.12: Respuesta en magnitud de algunos filtros discretos selectivos

2.5.2. Diseno de filtros digitales por el metodo de polos y ce-ros

De el analisis de funciones de transferencia con la transformada de Lapace pa-

ra circuitos analogicos, tenemos que para una senal continua r(t) podemos obtener la

senal muestreada utilizando

r∗(t) =1

T

α∑n=−α

r(t)e−jnwst (2.40)

y su transformada de Laplace

R∗(s) =α∑

k=0

r(kT )e−kTs (2.41)

33

Page 36: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Ahora que la senal esta en forma muestreada, se toma la transformada z en am-

bos miembros de la ecuacion mediante la sustitucion de z = eTs. Se tiene:

R(z) =α∑

k=0

r(kT )z−k (2.42)

Dado que s = σ+ jω se puede relacionar la funcion de transferencia en z con w

de tal forma que

z = eTs

= eT (σ+jω)

= eTσ[cos(Tω) + jsen(Tω)] (2.43)

en la figura 2.13 se muestra la relacion.

Figura 2.13: Mapeo en z de ω.

En una funcion de transferencia, los polos son los valores de z en donde el re-

sultado tiende a α; y los ceros son los valores de z donde el resultado es igual a 0. Su-

ponga que tiene la funcion de transferencia:

H(z) =4− z

(1− z)(2− z)(2.44)

Para z = 4, H(z) = 0. Por lo tanto z = 4 es un cero. Para z = 2 y z = 1, H(z) tien-

de a infinito, por lo tanto z = 2 y z = 1 son polos. En una grafica los ceros se repre-

sentan con × y los polos con .

34

Page 37: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

El principio basico subyacente en el metodo de los polos y ceros es el de loca-

lizar los polos cerca de los puntos de la circunferencia unidad correspondientes a las

frecuencias que desean ser acentuadas, y situar los ceros cerca de aquellos puntos que

se corresponden con frecuencias que desean ser amortiguadas. Ademas, deben impo-

nerse las siguientes condiciones:

1. Todos los polos deben estar en el interior de la circunferencia unidad para que

el filtro sea estable. Sin embargo, los ceros pueden situarse en cualquier punto

del plano z.

2. Todos los ceros y polos complejos deben tener su conjugado correspondiente, de

manera que los coeficientes del filtro sean reales.

Filtro Pasa-Bajos.

Para un filtro Pasa-Bajos, los polos deben situarse cerca de los puntos de la cir-

cunferencia unidad correspondientes a las bajas frecuencias. La funcion de transfe-

rencia de un sistema Pasa-Bajos de un solo polo es

H(z) =1− a

1− az−1(2.45)

La colocacion de un cero en z = −1 atenua aun mas la respuesta del filtro pa-

ra altas frecuencias. Esto nos lleva a un filtro con funcion de transferencia

H(z) =1− a

2

1− z−1

1− az−1(2.46)

y con mapa de polos y ceros representado en la figura 2.14.

Filtro Pasa-Altos.

Se puede obtener filtros Pasa-Altos reflejando los polos y ceros de un filtro Pasa-

Bajos con respecto al eje imaginario del plano z. Ası, se obtiene la funcion de trans-

ferencia

H(z) =1− a

2

1− z−1

1 + az−1(2.47)

y con mapa de polos y ceros representado en la figura 2.15.

35

Page 38: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 2.14: Mapeo en z de un filtro Pasa-Bajos con un polo y un cero.

Figura 2.15: Mapeo en z de un filtro Pasa-Altos con un polo y un cero.

Filtro Pasa-Banda.

Basicamente, el filtro Pasa-Banda debe contener uno o mas pares de polos com-

plejos conjugados cerca de la circunferencia unidad, en la vecindad de la banda de

frecuencias que constituye la banda de paso del filtro. Tiene una funcion de transfe-

rencia como

H(z) = G(z − 1)(z + 1)

(z − jr)(z + jr)(2.48)

donde se tiene un cero en z = 1 y otro en z = −1, y dos polos, uno en z = jr y el

otro en z = −jr. El mapeo en z de los polos y ceros se muestra en la figura 2.16.

Figura 2.16: Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros.

36

Page 39: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

2.6. Analisis Espectral

Es bien sabido que se puede usar un prisma para descomponer la luz blanca (luz

solar) en los colores del arco iris. En un artıculo enviado en 1672 a la Royal Society,

Isaac Newton empleo el termino espectro para describir las bandas continuas de co-

lores producidas por este aparato. Para entender este fenomeno, Newton coloco otro

prisma invertido con respecto al primero y demostro que los colores volvıan a mez-

clarse para producir luz blanca. Insertando una ranura entre los dos prismas y blo-

queando la incidencia de uno o mas colores sobre el segundo prisma, mostro que la

luz vuelta a combinar ya no era blanca. Por tanto, la luz que pasa a traves del pri-

mer prisma es simplemente descompuesta en sus colores componentes sin ningun otro

cambio. Sin embargo, solo si volvemos a mezclar otra vez todos los colores obtenemos

la luz original. Mas tarde, Joseph Fraunhofer (1787-1826), cuando realizaba medicio-

nes de la luz emitida por el sol y las estrellas, descubrio que el espectro de la luz ob-

servada contenıa lıneas de colores diferentes. Unos anos despues, a mediados del siglo

XVIII, Gustav Kirchhoff y Robert Bunsen descubrieron que cada elemento quımico,

cuando era calentado hasta la incandescencia, radiaba su propio color de luz. Como

consecuencia, cada elemento quımico se puede identificar mediante sus propias lıneas

espectrales. De la fısica sabemos que cada color se corresponde con una frecuencia es-

pecıfica del espectro visible. De hecho, la descomposicion de la luz en sus colores es

una forma de analisis frecuencial.

El analisis frecuencial de una senal conlleva la separacion de la senal en sus com-

ponentes (sinusoidales) frecuenciales. En lugar de luz, nuestras formas de onda son

basicamente funciones temporales. El papel del prisma es desempenado por las he-

rramientas de analisis de Fourier: las series de Fourier y la transformada de Fourier.

Como en el caso de compuestos quımicos, formas de onda diferentes tienen diferen-

tes espectros. Por ello, el espectro provee una identidad o firma de la senal en el sen-

tido de que ninguna otra senal tiene el mismo espectro.

37

Page 40: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

El objetivo basico al desarrollar herramientas de analisis frecuencial es propor-

cionar una representacion matematica y pictorica para las componentes frecuenciales

contenidas en una cierta senal. Como en la Fısica, el termino espectro se emplea al

referirse al contenido en frecuencia de una senal. El proceso de obtencion del espec-

tro de una senal dada, usando las herramientas matematicas basicas, se conoce co-

mo analisis frecuencial o espectral. A su vez, el proceso de determinacion del espec-

tro de una senal en la practica, basado en mediciones reales de la senal, se denomina

estimacion espectral. Esta distincion es muy importante. En un problema practico,

la senal que esta siendo analizada no conduce a una descripcion matematica exacta.

2.6.1. La transformada de Fourier Discreta (DFT).

La transformada de Fourier de una senal de energıa finita en tiempo discreto

x(n) se define como

X(w) =α∑

n=−α

x(n)e−jwn (2.49)

Fisicamente, X(w) representa el contenido en frecuencia de x(n).

Dado que el rango de frecuencias de senales en tiempo discreto se limita al in-

tervalo (−π, π) o (0, 2π), una senal en tiempo discreto puede tener componentes en

frecuencias separadas 2π/N radianes o f = 1/N ciclos. Esta propiedad se refleja en

la transformada de Fourier de la senal. De hecho, X(w) es periodica de periodo 2π.

En general, las muestras equiespaciadas en frecuencia X(2πk/N), k =

0, 1, ..., N − 1, no representan unıvocamente a la secuencia original x(n) cuando x(n)

tiene duracion finita. Al contrario, estas muestras se corresponden con una secuen-

cia periodica xp(n) de periodo N , donde xp(n) es una version con aliasing de x(n).

Cuando la secuencia x(n) es de duracion finita L ≤ N , entonces xp(n) es simplemen-

te una repeticion periodica de x(n). Una secuencia de duracion finita x(n) de longi-

tud L, es decir, x(n) = 0 para n < 0 y n ≥ L, tiene transformada de fourier

38

Page 41: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

X(w) =L−1∑n=0

x(n)e−jwn 0 ≤ w ≤ 2π (2.50)

Cuando muestreamos X(w) en frecuencias equiespaciadas wk = 2πK/N , k =

0, 1, 2, ..., N − 1, donde N ≥ L, las muestras resultantes son

X(k) =N−1∑n=0

x(n)e−j2πkn/N k = 0, 1, 2, ..., N − 1 (2.51)

Dado que:

ez = ex+iy = ex[cosy + iseny] (2.52)

de esta forma podemos escribir la expresion (2.51) como:

X(k) =N−1∑n=0

x(n)[cos(2πkn/N)− j sen(2πkn/N)] k = 0, 1, 2, ..., N − 1 (2.53)

2.6.2. Calculo eficiente de la DFT: Algoritmo de diezmadoen tiempo

El desarrollo de algoritmos computacionalmente eficientes para la DFT es po-

sible adoptando la estrategia de ”divide y venceras”. Este metodo se basa en la des-

composicion de una DFT de N puntos en DFTs mas pequenas.

Para ilustrar las ideas basicas, considere el calculo de una DFT de N puntos,

donde N se puede representar como el producto de dos enteros, esto es,

N = LM (2.54)

La suposicion de que N no es un numero primo no es restrictiva, ya que pode-

mos rellenar cualquier secuencia con ceros para asegurar la factorizacion. Ahora se

puede almacenar la secuencia x(n), 0 ≤ n ≤ N − 1, tanto en una matriz unidimen-

sional indexada por n o en una matriz bidimensional indexada por l y m, donde,

0 ≤ l ≤ L− 1 y 0 ≤ m ≤ M − 1.

39

Page 42: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Suponga ahora que x(n) se lleva a la matriz rectangular x(l,m), y que X(k) se

lleva a la matriz rectangular correspondiente X(p, q). Entonces la DFT puede expre-

sarse como el sumatorio doble de los elementos de la matriz rectangular multiplica-

dos por los factores de fase correspondientes. Entonces,

X(p, q) =M−1∑m=0

L−1∑l=0

x(l,m)W(Mp+q)(mL+l)N (2.55)

Pero

W(Mp+q)(mL+l)N = WMLmp

N WmLqN WMpl

N W lqN (2.56)

Sin embargo, WNmpN = 1, WmqL

N = WmqN/L = Wmq

M , y WMplN = W pl

N/M = W plL .

Con estas simplificaciones, la expresion (2.51) se puede expresar como

X(p, q) =L−1∑l=0

W lq

N

[M−1∑m=0

x(l,m)WmqM

]W lp

L (2.57)

La expresion (2.57) implica el calculo de DFTs de longitudes M y L. Esta ac-

cion se puede dividir en tres pasos:

1. Primero, se calculan las DFTs de M puntos

F (l, q) ≡M−1∑m=0

x(l,m)WmqM , 0 ≤ q ≤ M − 1 (2.58)

Para cada una de las filas l = 0, 1, · · · , L− 1.

2. Segundo, se calcula la nueva matriz rectangular G(l, q) definida como

G(l, q) = W lqNF (l, q)

0 ≤ l ≤ L− 1

0 ≤ q ≤ M − 1(2.59)

3. Tercero, se calcula las DFTs de L puntos

X(p, q) =L−1∑l=0

G(l, q)W lpL (2.60)

Para cada columna q = 0, 1, · · · ,M − 1, de la matriz G(l, q).

40

Page 43: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Ahora, considere el calculo de la DFT de N = 2v mediante el metodo de ”divide

y Venceras”. Se escogeM = N/2 y L = 2. Esta seleccion da lugar a la division de la se-

cuencia de datos de N puntos en dos secuencias de datos de N/2 puntos, f1(n) y f2(n),

correspondientes a las muestras pares e impares de x(n), respectivamente, esto es,

f1(n) = x(2n)

f2(n) = x(2n+ 1), n = 0, 1, · · · , N

2− 1 (2.61)

Por lo tanto, f1(n) y f2(n) se obtienen diezmando x(n) por 2 y, en consecuencia,

el algoritmo para la DFT resultante se denomina algoritmo de diezmado en tiempo.

La DFT de N puntos puede expresarse ahora en terminos de las DFTs de las

secuencias diezmadas como sigue:

X(k) =N−1∑n=0

x(n)W knN k = 0, 1, · · · , N − 1 (2.62)

=∑n par

x(n)W knN +

∑n impar

x(n)W knN (2.63)

=

(N/2)−1∑m=0

x(2m)W 2mkN +

(N/2)−1∑m=0

x(2m+ 1)Wk(2m+1)N (2.64)

Pero W 2N = WN/2. Sustituyendo esta igualdad, (1.63) puede expresarse como

X(k) =

(N/2)−1∑m=0

f1(m)W kmN/2 +W k

N

(N/2)−1∑m=0

f2(m)W kmN/2 (2.65)

o

X(k) = F1(k) +W kNF2(k) k = 0, 1, · · · , N − 1 (2.66)

donde F1(k) y F2(k) son las DFTs de N/2 puntos de las secuencias f1(m) y f2(m),

respectivamente.

Puesto que F1(k) y F2(k) son periodicas, de periodo N/2, tenemos que F1(k +

N/2) = F1(k) y F2(k +N/2) = F2(k). Ademas, Wk+N/2N = −W k

N . De aquı que (2.66)

se pueda expresar como

X(k) = F1(k) +W kNF2(k) k = 0, 1, . . . ,

N

2− 1 (2.67)

X

(k +

N

2

)= F1(k)−W k

NF2(k) k = 0, 1, . . . ,N

2− 1 (2.68)

41

Page 44: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Habiendo realizado el diezmado en tiempo una vez, se puede repetir el proceso

para cada una de las secuencias f1(m) y f2(m). El diezmado de la secuencia de datos

se puede repetir una y otra vez hasta que las secuencias resultantes sean de un pun-

to. El calculo basico se obtiene con dos puntos, por ejemplo a y b, multiplicar b por

W rN , y sumar y restar el producto obtenido de a para obtener los nuevos puntos. Es-

te calculo basico se muestra en la Figura (2.17) y se denomina mariposa, dado que el

diagrama de flujo recuerda a una mariposa.

a

b

-1

Figura 2.17: Mariposa basica del algoritmo para la FFT de diezmado en el tiempo.

Se observa que para cada valor de k en la expresion (2.53), el calculo directo

de X(k) supone realizar N multiplicaciones complejas (4N multiplicaciones reales)

y N − 1 sumas complejas (4N − 2 sumas reales). En consecuencia, para calcular los

N valores de al DFT necesitamos N2 multiplicaciones complejas y N2 − N sumas

complejas. Por otro lado utilizando el algoritmo de diezmado en tiempo, se observa

que el calculo directo de F1(k) requiere (N/2)2 multiplicaciones complejas. La mis-

ma exigencia se aplica al calculo de F2(k). Ademas, se requieren N/2 multiplicacio-

nes complejas mas para calcular W kNF2(k). De aquı que el calculo de X(k) requiera

2(N/2) +N/2 = N2/2 +N/2 multiplicaciones complejas. El primer paso da lugar en

el numero de multiplicaciones de N2 a N2/2 + N/2, que equivale aproximadamen-

te a dividir por 2 el numero de multiplicaciones cuando N es grande. El algoritmo

de diezmado en tiempo para el calculo de la DFT es uno de los algoritmos FFT (del

ingles Fast Fourier Transform).

42

Page 45: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Capıtulo 3

Programacion del DSP

En este capıtulo se enumeran y describen brevemente las herramientas y dispo-

sitivos utilizados para la elaboracion del proyecto y su documentacion, ası como los

conceptos basicos para la programacion y funcionamiento del DSP.

3.1. Dispositivos

3.1.1. El MC56F8323

El MC56F8323 es miembro de la familia de controladores con microprocesador

568000E. Combina, en un solo circuito integrado, la potencia de procesado de un Di-

gital Signal Processor (DSP) y la funcionalidad de un microcontrolador con un con-

junto de perifericos flexibles para crear soluciones efectivas a muy bajo costo. A cau-

sa de su bajo costo, flexibilidad de perifericos y codigo de programa compacto, es uti-

lizado para muchas aplicaciones.

El microprocesador 56800E es de arquitectura Harvard con tres unidades de eje-

cucion funcionando en paralelo permitiendo hasta seis operaciones por ciclo de ins-

truccion. Este procesador es una unidad central de procesamiento de proposito gene-

ral disenado para procesar eficientemente senales digitales, ası como para realizar la

funcion de un controlador. El modelo de programacion del microprocesador, ası co-

mo el conjunto de sus instrucciones, permiten facilmente la generacion de codigo efi-

ciente y compacto. El conjunto de instrucciones es tambien muy eficiente para com-

43

Page 46: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

piladores de C, permitiendo un desarrollo rapido, potente y compacto.

El 56F8323 incluye 32KB de memoria de programa flash y 8KB de memoria de

datos flash, ambas programables por el puerto JTAG, 4KB de memoria de programa

RAM y 8KB de memoria de datos RAM. Tambien tiene 8KB de memoria boot flash.

En este capıtulo se abordaran los temas especıficos para el desarrollo de esta te-

sis. Para mayores referencias buscar los documentos:

Nombre Numero de Parte DescripcionDescripcion detallada

56F8300 Peripheral MC56F8300UM de los perifericosUser Manual de los productos de

la familia 56F8300.Especificaciones

56F8323/56F8123 MC56F8323 electricas, informacionTechnical Data Sheet de perifericos

y del encapsulado.Resumen de la

56F8323 MC56F8323PB descripcion y diagramaProduct Brief a bloques del 56F8323

proscesador, memoria,perifericos e interfaces.Descripcion detallada

DSP56800E DSP56800ERM de la arquitecturaReference Manual DSP56800E, procesador

de 16 bits y set deinstrucciones

Tabla 3.1: Documentos de Referencia al MC56F8323.

3.1.2. Tarjeta de demostracion 56F8300DEMO con Progra-ma PuertoSerie

La 56F8300DEMO es una tarjeta de bajo costo que permite demostrar algunas

de las capacidades de la serie de controladores 56F8300 al permitir al usuario ejecu-

tar programas demostrativos, ası como tambien desarrollar sus propias aplicaciones

usando las herramientas gratuitas CodeWarrior. La tarjeta consiste en un controla-

dor 56F8323 con 60 MIPs; un microfono conectado al ADC; un altavoz; un sensor de

44

Page 47: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

campo electrico; dos botones conectados a interrupciones externas; y 10 LEDs. Tam-

bien tiene cabezales (jumpers) para acceder a todos los perifericos del controlador. La

tarjeta no tiene un oscilador interno ası que el 56F8323 debe usar su oscilador interno.

Para mayor informacion sobre la tarjeta buscar el documento:

Numero de Parte Descripcion56F8300

MC56F8300DBUM Demonstration BoardUser Manual

Targeting 56F8300MC56F8300TUM Demonstration Board

User Manual

Tabla 3.2: Documentos de Referencia de la tarjeta 56F8300DEMO.

El programa PuertoSerie fue desarrollado en la herramienta CodeWarrior y car-

gado al controlador. El codigo del programa PuertoSerie comentado esta en el apendi-

ce A.

3.1.3. Computadora con Programa PuertoSerie2

Esta computadora es donde se tiene el programa que registra los datos de la tar-

jeta 56F8300DEMO y los grafica. Esta comunicacion entre la computadora y la tar-

jeta es por el puerto serie. El codigo PuertoSerie2 comentado esta en el apendice A.

3.2. Herramientas

3.2.1. El Code Warrior

El Code Warrior IDE consiste de un administrador de proyectos, una interface

grafica, compilador, linker, y un depurador, dentro de su ambiente de trabajo.

El Code Warrior IDE permite configurar las opciones para la generacion del

codigo, depurar y navegar por nuestro proyecto.

A diferencia de un ambiente de desarrollo en Lınea de Comandos, el Code Wa-

rrior IDE organiza todos los archivos relacionados al proyecto. De esta forma pode-

45

Page 48: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

mos mirar y navegar por nuestro proyecto de una forma organizada y sencilla.

Instalacion

Para descargar el instalador vamos a http://www.freescale.com y buscamos

el instalador. Ahı tenemos varias Suites del CodeWarrior, como son la Profesional,

Estandar, Basic y Especial. Para este proyecto entramos a Suite Special y descarga-

mos la aplicacion que soporte a nuestro controlador. La Special Suite es gratuita pe-

ro tiene algunas limitaciones.

Processor Expert

Processor Expert (PE) es un entorno de desarrollo integrado (IDE) para el di-

seno, aplicacion, verificacion, optimizacion de las aplicaciones para microcontrolado-

res y forma parte del Code Warrior. Esta plataforma de desarrollo de alta producti-

vidad permite el uso eficiente de los microcontroladores y sus perifericos, permite la

construccion de soluciones portatiles, y ahorra tiempo y coste de desarrollo.

Processor Expert ha incorporado las definiciones internas de los microcontrola-

dores con todos sus perifericos en modulos configurables que proporcionan metodos

y eventos para interactuar con ellos. Una intuitiva y potente interfaz grafica le per-

mite al usuario definir el comportamiento deseado del microcontrolador al configurar

los modulos.

Para mas informacion sobre el Processor Expert y las herramientas relaciona-

das para el 56800/E, refierase a http://www.processorexpert.com.

3.2.2. C++/C#

Estos lenguajes fueron utilizados para el desarrollo de las aplicaciones que estan

en ejecucion en la computadora. Para mas informacion sobre estos lenguajes refiera-

se a http://www.microsoft.com/spain/visualstudio.

46

Page 49: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 3.1: Figura donde se observa la configuracion grafica en ProcessorExpert.

3.3. Desarrollo

En esta seccion se explicara el desarrollo del sistema, ası como su funcionamien-

to.

3.3.1. Desarrollo del programa Puerto serie

El programa Puerto Serie, es la aplicacion que esta corriendo en el MC56F8323.

Este programa funciona de la siguiente forma:

1. El MC56F8323 espera un codigo de inicio de la computadora.

2. Al recibir el codigo correcto, se inicia un temporizador en el MC56F8323 que

lanza una interrupcion cada determinado tiempo.

3. El MC56F8323 espera la interrupcion y realiza una conversion A/D y guarda

el resultado en un bufer.

4. La operacion anterior se realiza 512 veces.

5. Una vez obtenidas las 512 muestras, se apaga el temporizador y se ejecuta la

FFT.

47

Page 50: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

6. Se envıa el resultado a la computadora y nuevamente se espera el codigo de ini-

cio.

El MC56F8323 tiene perifericos que comparten los mismos pines, por lo tan-

to, lo primero que se hace es configurar el MC56F8323 para que sus pines esten lis-

tos para ser utilizados sin ningun conflicto. Esto se logra con la ayuda del Proces-

sor Expert. En el menu Menu - Processor Expert - View - Bean Selector.

En esta ventana se puede ver los Beans del dispositivo agrupado por funcion. Un

Bean es un periferico que puede verse como un componente encapsulado o modu-

lo. Se selecciona el bean AsynchroSerial que esta en la categorıa Communication−

Asynchronusserialcommunication. Este bean es el modulo que nos encapsula el

puerto serie del MC56F8323. Despues se configura el puerto de salida, la velocidad

de transmision, los bits de transmision, etcetera, todos los parametros que se beben

configurar en la pestana Propiedades de la ventana Bean Inspector. En esta venta-

na existe una pestana que se llama Methods. En esta pestana se ven todas las ac-

ciones que puede realizar el puerto serie, es decir, es lo que sabe hacer. Habilitamos

las funciones que se necesitan para la transmision y recepcion de datos. En la pes-

tana Events de la misma ventana, estan todos los eventos que el modulo del puerto

serie detecta, una vez que ocurre el evento, el modulo envıa una interrupcion al DSP

y el DSP realiza la rutina o funcion que esta asignada a dicha interrupcion. Ası que

en esta pestana habilitamos las interrupciones necesarias.

Con esto queda configurado el puerto serie para trabajar, ahora solo se necesi-

ta llamar desde el programa a las funciones del puerto para que realice alguna accion

y programar las rutinas que van a ejecutarse al presentarse una interrupcion. Afortu-

nadamente, el Processor Expert, genera el codigo necesario para que solo tengamos

de definir el cuerpo de las rutinas que atienden a las interrupciones, como lo mues-

tra la Figura (3.3). Este codigo se genera al seleccionar la funcion Generate code en

el menu Processor Expert y se ejecuta cuando el puerto serie recibe un caracter.

48

Page 51: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 3.2: Figura donde se observa la ventana Bean Inspector.

El codigo generado para las interrupciones, se encuentra en el archivo Events.c

del proyecto.

#pragma interrupt called /* Comment this line if the appropriate 'Interrupt preserve registers' property */ /* is set to 'yes' (#pragma interrupt saveall is generated before the ISR) */void AS1_OnRxChar(void) /* Write your code here ... */

Figura 3.3: Figura donde se observa el codigo Generado por el Processor Expert.

Ahora, se hace lo mismo para los demas modulos necesarios. Se va a utilizar el

modulo TimerInt que envıa una interrupcion cada determinado tiempo para obtener

una muestra de la senal de entrada. En este caso vamos a programar el tiempo del

temporizador a 122µs o 31.25µs dependiendo si queremos utilizar el microfono de la

tarjeta demostrativa o el microfono externo. Esto es debido a que nuestra tarjeta de-

mostrativa tiene un filtro pasa bajos con frecuencia de corte de 4kHz y el microfono

externo tiene un filtro pasa bajos con frecuencia de corte de 16kHz. Como vimos en

el capıtulo 1, para muestrear correctamente:

49

Page 52: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Fmax =Fs

2=

1

2T

Fmax =1

2(122µs)

Fmax = 4.098kHzFmax =Fs

2=

1

2T

Fmax =1

2(31.25µsµs)

Fmax = 16.00kHz

(3.1)

De esta forma se cumple con los requerimientos para obtener un muestreado co-

rrecto.

Tambien es necesario el modulo ADC para obtener las muestras mencionadas

anteriormente seleccionando la entrada ANA0 si se utiliza el microfono de la tarje-

ta o ANA2 si se utiliza el microfono externo. Se van a necesitar tres librerıas del Co-

de Warrior tambien ubicadas en el Bean Inspector. La primera de ellas es DSP

MEM . Esta librerıa es para administrar la memoria de manera eficiente. La segunda

es DSP Func MFR que es una librerıa para realizar operaciones matematicas con

numeros fraccionales. La tecnica de usar numeros fraccionales se utiliza en sistemas

computacionales para realizar operaciones con numeros grandes, ya que estas opera-

ciones desbordarıan el registro del resultado de la operacion. Pensemos que tenemos

dos registros de cuatro bits de los cuales queremos obtener la multiplicacion de ellos

y guardarlo en un registro de cuatro bits como muestra la Figura (3.4).

0011 = 3

0011 = 3

1001 = 9

X

Figura 3.4: Ejemplo de una multiplicacion binaria sin desbordamiento.

En este caso no existe desbordamiento ya que el valor de la operacion no es ma-

yor que el valor maximo del registro de salida. Pensemos ahora en una operacion co-

50

Page 53: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

mo se muestra en la Figura (3.5)

1111 = 15

1111 = 15

11100001 = 225

X

Desbordamiento

de bits.

Figura 3.5: Ejemplo de una multiplicacion binaria con desbordamiento.

En esta operacion existe desbordamiento para un registro de salida de 4 bits.

La forma de solucionar este problema es convertir los valores de los registros que se

multiplican a un numero menor que 1. La manera mas sencilla es dividir el valor en-

tre 2n, donde n es el numero de bits del registro. Dado que dividir entre 2 un numero

binario equivale a recorrer una posicion el punto decimal hacia la izquierda, entonces:

Decimal 15 = 0.9375 ∗ 2nBinario 1111 = 0.1111 ∗ 2n (3.2)

De esta forma, al multiplicar los dos registros el resultado es:

Registro1 = 1111 = 0.1111(2n)XRegistro2 = 1111 = 0.1111(2n)

Resultado = 0.1110(22n)Decimal = 0.875(22n) = 224

(3.3)

Con esto podemos ver que los bits menos significativos son los que se pierden,

y el resultado es bastante aproximado al valor real.

La tercera librerıa se llama DSP Func DFR. Esta librerıa tiene las funcio-

nes necesarias para realizar la FFT de una forma optimizada, de tal forma que con

pocas instrucciones podemos calcularla.

Ası fue como se desarrollo el programa Puerto Serie que esta grabado en el DSP.

En el apendice A se muestra el programa detallado.

51

Page 54: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

3.3.2. Desarrollo del programa Puerto Serie 2.

El programa puerto serie 2, es el programa que corre en la computadora, el cual

tiene la funcion de comunicarse con el DSP para que inicie una medicion y recibe los

datos del DSP para mostrarlos en una ventana. Este programa fue desarrollado usan-

do Visual Studio 2003 con las clases que provee MFC. MFC son las siglas de Micro-

soft Foundation Class que es un conjunto de clases que provee un acceso mas senci-

llo a las API de Windows, por lo cual fue mas sencillo programar esta aplicacion.

El funcionamiento de este programa es de esta forma:

1. Se acciona un boton que le manda al DSP el codigo de inicio al DSP.

2. El programa espera que se realice la DFT en el DSP, el cual manda la informa-

cion a la computadora.

3. La computadora grafica el resultado en pantalla.

Para el desarrollo de este programa se creo una clase que controla el puerto se-

rie. De esta forma se puede reutilizar este codigo en otra aplicacion. Se planteo un

protocolo de transmision en el cual de la computadora se envıan solo dos Bytes co-

mo codigo de inicio al DSP y el DSP manda la informacion en dos bloques. El primer

bloque envıa el numero de bytes que envıa el DSP y el segundo bloque envıa todos

los datos del resultado de la FFT. En el programa esta predeterminado este numero

de recepcion a 256 bytes, debido a que la DFT se realiza con 512 muestras.

3.3.3. Desarrollo del programa Sistema Discreto.

El programa Sistema Discreto, es una aplicacion que se desarrollo para testear

los algoritmos programados en C. Esta aplicacion fue desarrollada en lenguaje C#

debido a la facilidad de utilizar el ambiente grafico del Sistema Operativo Windows,

pero los algoritmos estan programados en lenguaje C y estan vinculados a la aplica-

cion como un Ensamblado Administrado. Esto fue ası para tener mayor portabilidad

de los algoritmos.

52

Page 55: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Esta aplicacion tiene una funcion de usuario que genera una senal que es la su-

ma de 31 senales senoidales la cual es la senal de entrada (cuadro superior izquier-

do). Se determino que la frecuencia maxima serıa 200hz, es por eso que esta senal es-

ta muestreada cada 2.5× 10−3seg para que la senal maxima sea muestreada 2 veces.

Las senales que se suman estan espaciadas cada 6.25hz para que los coeficientes de

la DFT esten bien definidos como se observa en el cuadro inferior izquierdo. Se pro-

gramaron varios filtros para observar su resultado. El primero fue muestrear un filtro

RC simple y aplicar la convolucion con la senal de entrada, despues se describieron 3

filtros por ecuacion de diferencias (pasabajos, pasabanda y pasaaltos) y un filtro por

convolucion utilizando la funcion sinc. El cuadro superior derecho muestra la senal

de salida y el cuadro inferior derecho muestra la DFT de la salida.

Figura 3.6: Ejemplo de pantalla de Sistema Discreto.

53

Page 56: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Capıtulo 4

Pruebas y resultados

En este capıtulo se veran las pruebas y resultados que se obtuvieron de lo desa-

rrollado en esta tesis.

En la Figura(4.1) se muestra la interface grafica del programa PuertoSerie2, que

es el programa que se esta ejecutando en la computadora. Se puede observar un es-

pacio donde se grafica la FFT al centro. En el menu se tiene la opcion configuracion

donde se selecciona el puerto a conectar (COM1, COM2, etc.). El boton Conectar

(esquina inferior izquierda) sirve para conectarnos al puerto y el boton Inicio manda

el codigo para que el DSP realice la toma de muestras, la FFT y mande los datos a

la computadora. El cuadro de texto junto con el boton (esquina inferior derecha) sir-

ven para la escala en y, con lo cual se puede ver la grafica con Zoom en y.

Figura 4.1: Interface del programa PuertoSerie2.

Primero observaremos los resultados obtenidos con el microfono de la tarjeta.

54

Page 57: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

En la Figura (4.2) se muestra el resultado obtenido al aplicar una senal de de prue-

ba al circuito y su FFT. La senal es un tono puro de 500 hz y fue creada con un pro-

grama llamado Audacity. Esta grafica presenta en el eje x la frecuencia y en el eje y

la magnitud de la componente de frecuencia. La amplitud esta normalizada a 1.

Figura 4.2: Respuesta del circuito a 500hz.

Se aplico otra senal de prueba al circuito y la Figura (4.3) muestra el resultado

obtenido. La senal es un tono puro de 1000 hz generado con el mismo programa Au-

dacity. Se puede observar que la magnitud esta al doble de distancia que la magni-

tud de 500 hz en la Figura (4.2) debido a que la frecuencia, que es el eje x, esta gra-

ficada linealmente.

Figura 4.3: Respuesta del circuito a 1000hz.

Una vez mas se aplico una senal de prueba al circuito y la Figura (4.4) mues-

tra el resultado obtenido. La senal es la suma de tres tonos puros de 500 hz, 1000 hz

y 2000 hz generados con el mismo programa Audacity. Se puede observar las diferen-

tes frecuencias graficadas en el lugar correspondiente con un poco de Derrame. El

derrame son las frecuencias adyacentes a la frecuencia principal. Esto se da debido a

55

Page 58: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

muchos factores, como son, el rango dinamico del microfono que capta la senal, el al-

tavoz que reproduce la senal, el ruido del ambiente, etc.

Figura 4.4: Respuesta del circuito a 500hz + 1000hz + 2000hz.

Ahora veremos el resultado obtenido con el microfono externo. En la Figura (4.5)

se muestra el resultado al aplicar tres tonos puros de 3KHz, 7KHz y 10KHz al circuito.

Figura 4.5: Respuesta del circuito a 3KHz, 7KHz y 10KHz.

Ahora veremos el resultado obtenido del programa SistemaDiscreto. La Figura

(4.6) muestra la interface principal del programa SistemaDiscreto. Se observan cua-

tro cuadros y unos botones a la derecha. El cuadro superior izquierdo es la senal de

entrada, el cuadro inferior izquierdo es la DFT de la senal de entrada, el cuadro su-

perior derecho es la senal de salida y el cuadro inferior derecho es la DFT de la senal

de salida. Los botones sirven para realizar la operacion correspondiente.

56

Page 59: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Entrada

EntradaDFT

Salida

SalidaDFT

Operación

Figura 4.6: Interface del programa SistemaDiscreto.

Al presionar el boton Equ.Dif. se genera la senal de entrada que es la suma

de 31 senales senoidales espaciadas en frecuencia cada 6.25hz y es muestreada cada

2.5× 10−3seg, con lo cual tiene una frecuencia maxima de 200hz para cumplir el teo-

rema del muestreo. Esto se muestra en la Figura(4.7). La DFT es de 64 muestras con

lo cual nos da 31 divisiones claras en frecuencia en pasos de 6.25hz.

El filtro aplicado en la Figura(4.7), es un filtro pasa banda por el metodo de

ecuacion de diferencias. Se puede observar que en el centro la amplitud de los coefi-

cientes de la DFT es mayor y se disminuye hacia las orillas.

Figura 4.7: Resultado de aplicar un filtro pasa banda a la senal de entrada.

Con la misma senal de entrada se aplico un filtro pasaaltos y el resultado se

muestra en la Figura (4.8). Es un filtro pasaaltos por el metodo de ecuacion de dife-

rencias. Se puede observar que la senal de salida es diferente a la senal de entrada y

los coeficientes de la DFT son mas grandes en la orilla derecha que son las frecuen-

cias mas altas.

Finalmente se aplico un filtro pasa bajos por el metodo de ecuacion de diferen-

57

Page 60: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 4.8: Resultado de aplicar un filtro pasa altos a la senal de entrada.

cias y el resultado se muestra en la Figura (4.9).

Figura 4.9: Resultado de aplicar un filtro pasa bajos a la senal de entrada.

58

Page 61: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Capıtulo 5

Conclusiones y Trabajos Futuros.

En conclusion se observo el funcionamiento de los algoritmos FFT. Se pudo

comprobar que verdaderamente nos da el mismo resultado que al realizar el calcu-

lo directamente. Se estudio el tratamiento de senales de una forma digital y fue muy

interesante el poder desarrollar los sistemas digitales que tratan las senales y ver su

comportamiento. Con los algoritmos FFT se a desarrollado una herramienta en hard-

ware y software que nos permite analizar el espectro de una senal hasta una frecuen-

cia maxima de 4KHz con el microfono de la tarjeta y hasta 16KHz con el microfono

externo. Fue necesario hacer un circuito que acondicionara el voltaje de salida del

microfono para ser capturado por el microcontrolador.

Para dar solucion al problema de obtener la respuesta en frecuencia de unos equi-

pos de audio adquiridos, se hicieron 4 pruebas distintas a cada equipo. Las pruebas

consisten en aplicar senales de entrada a los equipos y, con el analizador de espectro,

medir su respuesta en frecuencia. La primera prueba es una senal de entrada que es

el resultado de la suma de tonos puros de 1KHz, 3KHz, 5KHz, 7KHz, 9KHz, 11KHZ

y 13KHz. La segunda prueba es una senal de entrada que es la suma de las frecuen-

cias 2KHz, 4KHz, 6KHz, 8KHz, 10KHz, 12KHZ y 14KHz. Para la tercera prueba se

utilizaron las frecuencias de 1KHz, 2KHz, 3KHz, 4KHz, 5KHz, 6KHZ y 7KHz y pa-

ra la cuarta prueba las frecuencias de 2KHz, 3KHz, 10KHz, 11KHz, 12KHz, 13KHZ

y 14KHz. Todas las senales de prueba estan compuestas por tonos puros para reali-

59

Page 62: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

zar un analisis preciso y con el menor derrame posible.

En primera instancia, se midieron los altavoces de dos equipos de audio que

estan hechos, principalmente, para conectarse a la computadora. Los datos obtenidos

reflejaron datos interesantes que muestran las diferencias, en cuanto a frecuencia se

refiere, de estos equipos de sonido.

En la Figura (5.1) se muestra la respuesta del equipo al aplicarle la Prueba 1.

Esta senal fue reproducida por un equipo de audio marca Logitech modelo X-230.

Se puede observar que tiene una respuesta en frecuencia aproximadamente constan-

te hasta los 9KHz. Despues se observa una atenuacion en las frecuencias mas altas.

Figura 5.1: Respuesta del equipo X-230 a la Prueba 1

La Figura (5.2) muestra la respuesta de un equipo de audio sin marca modelo

LC-650 al aplicarle la Prueba 1. Se puede ver claramente que su respuesta no es bue-

na, inclusive, la frecuencia de 9KHz no sale en el espectro.

Figura 5.2: Respuesta del equipo LC-650 a la Prueba 1

Se aplico la Prueba 2 a los mismos equipos y la Figura (5.3) muestra la respues-

ta del equipo X-230. Se puede ver que tiene una respuesta en frecuencia aproximada-

60

Page 63: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

mente constante hasta los 8KHz, despues se atenua la respuesta.

Figura 5.3: Respuesta del equipo X-230 a la Prueba 2

El equipo LC-650 tuvo la respuesta que se muestra en la Figura (5.4) a la Prue-

ba 2. Se observa que no tiene una buena respuesta en frecuencia.

Figura 5.4: Respuesta del equipo LC-650 a la Prueba 2

Al aplicar la Prueba 3 a equipo X-230, se obtuvo la respuesta mostrada en la

Figura (5.5). Se puede observar que la respuesta obtenida es coherente con las res-

puestas obtenidas a las otras pruebas.

Figura 5.5: Respuesta del equipo X-230 a la Prueba 3

La Figura (5.6) muestra la respuesta del equipoLC-650 a la prueba 3.

61

Page 64: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 5.6: Respuesta del equipo LC-650 a la Prueba 3

Al realizar la ultima prueba, el X-230 obtuvo la respuesta mostrada en la Figu-

ra (5.7).

Figura 5.7: Respuesta del equipo X-230 a la Prueba 4

El equipo LC-650 obtuvo la senal mostrada en la Figura (5.8). Se puede obser-

var que existen tonos que no estan contemplados en la senal de prueba. Esto puede

ser debido a que el plastico del equipo vibra a estas frecuencias (frecuencia de reso-

nancia) o a otros factores.

Figura 5.8: Respuesta del equipo LC-650 a la Prueba 4

En segunda instancia, se midieron dos bafles que son utilizados para sonorizar

localidades donde se predica el evangelio. Las localidades son varias y en lugares ce-

62

Page 65: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

rrados y abiertos. Al conectar el equipo de audio se escuchaba un tanto desagrada-

ble pero no se tenıa la forma de saber la razon. Se analizaron estos bafles y se obtu-

vieron resultados interesantes.

Al analizar un bafle marca Wharfedale Pro modelo VS-15X se obtuvo la res-

puesta que se muestra en la Figura (5.9) con la Prueba 1.

Figura 5.9: Respuesta del bafle VS-15X a la Prueba 1

El otro bafle es armado y no tiene marca, ası que lo llamaremos armado. Su res-

puesta a la Prueba 1 se muestra en la Figura (5.10). Se puede observar que ambos

bafles tienen a 3KHz un coeficiente alto y de 5KHz en adelante una atenuacion con-

siderable. El bafle armado practicamente no reproduce la frecuencia de 5KHz y las

altas frecuencias no salen en el espectro de ningun bafle.

Figura 5.10: Respuesta del bafle armado a la Prueba 1

La Prueba 2 produjo la respuesta mostrada en la Figura (5.11) en el bafle VS-

15X. Se observa que despues de los 4KHz la atenuacion es mayor.

En el bafle armado la Prueba 2 produjo la respuesta mostrada en la Figura

(5.12). Se puede observar que la amplitud en frecuencias altas es irregular, algunas

63

Page 66: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 5.11: Respuesta del bafle VS-15X a la Prueba 2

estan bajas y otras altas.

Figura 5.12: Respuesta del bafle armado a la Prueba 2

Al aplicar la Prueba 3 al bafle VS-15X se obtuvo la respuesta mostrada en la

Figura (5.13). Se observa que la amplitud a 2KHz y 3Khz estan muy altas y despues

de 4KHz de atenuan bastante.

Figura 5.13: Respuesta del bafle VS-15X a la Prueba 3

La Prueba 3 produjo la respuesta mostrada en la Figura (5.14). Se observa que

la amplitud de 1KHz y 3KHz estan altas y las amplitudes de 4KHz en adelante estan

bajas.

64

Page 67: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Figura 5.14: Respuesta del bafle armado a la Prueba 3

Por ultimo, el bafle VS-15x obtuvo la respuesta mostrada en la Figura (5.15). Se

observa que la amplitud de las frecuencias altas es pequena comparada con las otras.

Figura 5.15: Respuesta del bafle VS-15X a la Prueba 4

La Prueba 4 produjo la respuesta mostrada en la Figura (5.16) en el bafle ar-

mado. Se observa que la amplitud 3KHz esta alta y la amplitud en frecuencias altas

es muy irregular.

Figura 5.16: Respuesta del bafle armado a la Prueba 4

Debido a estos resultados, en el ecualizador del amplificador se atenuo la ban-

da proxima a los 3KHz y el resultado obtenido fue bastante mejor al sonorizar.

65

Page 68: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Dentro del desarrollo de esta tesis se presentaron varios problemas que detuvie-

ron el desarrollo. Lo primero fue el hecho de que los dispositivos (microcontrolador,

dispositivos de montaje superficial, etc.) se tuvieron que comprar en el extranjero.

Tambien hubo problemas para controlar el puerto serie de la computadora. Otro pro-

blema que surgio, fue el hecho de disenar un circuito para que acondicionara la sa-

lida del microfono externo al microcontrolador y en las mediciones existio el proble-

ma de no tener un lugar adecuado para realizarlas, sin embargo, las mediciones fue-

ron bastante utiles.

En un futuro se podrıan crear mas pruebas que nos den mayor capacidad de dis-

cernir como realizar una mejor sonorizacion. Utilizar elementos de mayor precision,

como osciladores de cristal, para tener una respuesta mas exacta. Mejorar el progra-

ma que corre en la computadora para realizar analisis mas completos o, utilizar este

proyecto para otros fines.

66

Page 69: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

5.1. Especificaciones Tecnicas

1. Voltaje de entrada: ..................... 0 a 3.3 Volts

2. Resolucion en voltaje: ................ 0.80566 mVolts

3. Frecuencia de muestreo:

a) Microfono de la tarjeta ............ 122 µseg

b) Microfono externo ................... 31.25 µseg

4. Codificacion: ................................ 12 bits

5. Respuesta en frecuencia:

a) Microfono de la tarjeta ............ 4 KHz

b) Microfono externo ................... 16 KHz

6. Resolucion en frecuencia:

a) Microfono de la tarjeta ........... 15.625 Hz

b) Microfono externo ................... 62.25 Hz

7. Costo ............................................. $ 1,500.00 pesos

67

Page 70: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Apendice A

Codigo de Programas Comentado

En este anexo se presenta el codigo comentado de las funciones principales de

PuertoSerie y PuertoSerie2, sin poner el codigo generado automaticamente por los

IDE que se usaron para desarrollar dichos programas.

A.1. Programa PuertoSerie

A.1.1. Archivo Events.c

#pragma interrupt called

//Funcion que recibe los datos que vienen de la computadora

//para ver si es el codigo de inicio.

void AS1_OnFullRxBuf(void)

extern unsigned int Dato;

word NoData;

AS1_TComData Ptr;

Rx_NegVal();

AS1_RecvBlock(&Ptr,2,&NoData);

memcpy(&Dato,&Ptr,2);

68

Page 71: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Rx_NegVal();

#pragma interrupt called

//Funcion que se ejecuta cada que el temporizador lanza

//una interrupcion. Despues de 512 muestras pone otro

//codigo para que se ejecute la DFT

void TI1_OnInterrupt(void)

extern unsigned int Fd;

extern unsigned int Dato;

extern unsigned int Fd2;

if(Fd<512)

AD1_Measure(FALSE);

Fd2++;

else

TI1_DisableEvent();

TI1_Disable();

Dato=3;

#pragma interrupt called

//Funcion que lanza el modulo ADC cuando termina la conversion

69

Page 72: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

void AD1_OnEnd(void)

extern Frac16 Conv[512];

extern unsigned int Fd;

extern Frac16 B_Dato;

extern Frac16 M_Dato;

extern Calibracion;

unsigned int Inte;

Frac16 X_Dato;

if(Calibracion)

AD1_GetValue(&Inte);

Conv[Fd] =(Frac16)Inte;

else

AD1_GetValue(&Inte);

X_Dato=(Frac16)Inte;

Conv[Fd]=add(mult(M_Dato,X_Dato),B_Dato);

Conv[Fd]=shl(Conv[Fd],1);

Fd++;

A.1.2. Archivo PuertoSerie.c

#define ConstCal 16384

#define ConstCal1 24568

70

Page 73: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

unsigned int Dato;

unsigned int Fd;

unsigned int Fd2;

Frac16 Conv[512];

unsigned int j;

int fgh;

Frac16 pX[512];

Frac16 pZZ[512];

//Variables Calibracion

Frac16 Cal_H;

Frac16 Cal_L;

Frac16 Cal_Aux;

Frac16 M_Dato;

Frac16 B_Dato;

int ICal;

bool Calibracion;

//

void FFT(void);

void CalADC(void);

//Funcion principal

void main(void)

/* Write your local variable definition here */

unsigned char *num;

71

Page 74: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

/*** Processor Expert internal initialization. DON’T REMOVE THIS CODE!!! ***/

PE_low_level_init();

/*** End of Processor Expert internal initialization. ***/

AD1_Enable();

CalADC();

TI1_Disable();

Dato=0;

Fd=0;

Fd2=0;

Calibracion=FALSE;

num=(unsigned char *)&j;

//Ciclo del programa que esta en espera de los codigos

//correspondientes

for(;;)

if(Dato==1)

Fd=0;

Fd2=0;

TI1_EnableEvent();

TI1_Enable();

Dato=0;

Tx_PutVal(TRUE);

if(Dato==2)

72

Page 75: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

TI1_DisableEvent();

TI1_Disable();

Tx_PutVal(FALSE);

Dato=0;

if(Dato==3)

Fd=0;

Fd2=0;

Tx_PutVal(FALSE); //Funcion de operacion de datos

FFT();

Dato=0;

//Funcion que realiza la DFT

void FFT(void)

int i;

dfr16_tRFFTStruct *pRFFT;

dfr16_sInplaceCRFFT *pZ ;

Result res;

UInt16 options = FFT_SCALE_RESULTS_BY_N;

Frac16 Multi;

Frac16 Multr;

Frac16 Fk;

73

Page 76: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

unsigned char *Snd;

unsigned char Aux;

Snd=(unsigned char *)&Fk;

pZ=(dfr16_sInplaceCRFFT*) pZZ;

for (i=0; i <512; i++) //Nt

pX[i] = Conv[i];

/* Call FFT Create function */

pRFFT = DFR1_dfr16RFFTCreate(512, options);//Nt

if (pRFFT == NULL)

asm(debug);

else

asm(nop);

res = DFR1_dfr16RFFT(pRFFT, &pX[0], pZ);

asm(nop);

asm(nop);

dfr16RFFTDestroy(pRFFT);

//calculo de vector y envio de datos

74

Page 77: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

AS1_SendChar(0x00);

for(i=0;i<256;i++)//N/2

Multr=mult(pZZ[i*2],pZZ[i*2]);

Multi=mult(pZZ[(i*2)+1],pZZ[(i*2)+1]);

Fk=mfr16Sqrt(Multi+Multr);

Aux=*(Snd+1);

AS1_SendChar(Aux);

//Funcion que calibra le modulo ADC del DSP

void CalADC(void)

Calibracion=TRUE;

AD1_SetChanOffset(0,3); //Multiplicado por 8

Fd=0;

setReg(ADCA_CAL,0x01);

AD1_Measure(FALSE);

while(Fd==0)

asm(nop);

Cal_L=(Frac16)Conv[0];

for(ICal=0;ICal<4;ICal++)

Fd=0;

75

Page 78: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

AD1_Measure(FALSE);

while(Fd==0)

asm(nop);

Cal_L=shr(Cal_L,1)+shr((Frac16)Conv[0],1);

Fd=0;

setReg(ADCA_CAL,0x03);

AD1_Measure(FALSE);

while(Fd==0)

asm(nop);

Cal_H=(Frac16)Conv[0];

for(ICal=0;ICal<4;ICal++)

Fd=0;

AD1_Measure(FALSE);

while(Fd==0)

asm(nop);

Cal_H=shr(Cal_H,1)+shr((Frac16)Conv[0],1);

setReg(ADCA_CAL,0x00);

Cal_L=Cal_H-Cal_L;

Cal_Aux=ConstCal;

76

Page 79: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Cal_Aux=shr(Cal_Aux,1); //asegurar X<y para division

M_Dato=div_s(Cal_Aux,Cal_L); //x2 Valor real

Cal_Aux=ConstCal1;

Cal_Aux=shr(Cal_Aux,1);

B_Dato=sub(Cal_Aux,mult(M_Dato,Cal_H));

//B_Dato=shl(B_Dato,1);

Calibracion=FALSE;

/* END PuertoSerie */

A.2. Programa PuertoSerie2

//Funcion que se ejecuta cuando se pulsa en boton conectar

//se conecta al puerto serie y lanza un proceso que sincroniza

//el proceso primario con el proceso que controla al puerto

//serie, o desconecta el puerto.

void CPuertoSerial2View::OnBnClickedButton1()

if(PuertoCom.Estado==false)

PuertoCom.AbrirPuerto(NombrePuerto,9600);

if(PuertoCom.Estado==true)

SetDlgItemText(IDC_BUTTON1,"Desconectar");

AfxBeginThread(Event,this);

else

77

Page 80: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

PuertoCom.CerrarPuerto();

SetDlgItemText(IDC_BUTTON1,"Conectar");

//Funcion que ejecuta el nuevo proceso para sincronizar el

//proceso primario con el puerto serie

UINT Event(LPVOID pParam)

CPuertoSerial2View *PuertoEvento;

PuertoEvento=(CPuertoSerial2View *) pParam;

CSingleLock Esperar(&(PuertoEvento->PuertoCom.Interrup));

while(PuertoEvento->PuertoCom.Estado)

Esperar.Lock();

PuertoEvento->RxPro.SetPos(1);

if(PuertoEvento->PuertoCom.Estado)

PuertoEvento->PostMessage(ON_DATA);

PuertoEvento->PuertoCom.AInterrup.SetEvent();

Esperar.Unlock();

PuertoEvento->RxPro.SetPos(2);

else

78

Page 81: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Esperar.Unlock();

return 0;

//Funcion que lanza el codigo de inicio al DSP

void CPuertoSerial2View::OnBnClickedButton3()

TransmitCommChar(PuertoCom.h_PuertoSerie,1);

TransmitCommChar(PuertoCom.h_PuertoSerie,0);

//Funcion que abre el puerto serie y lanza un proceso que esta a la

//espera de los datos del DSP

bool CPuertoSerie::AbrirPuerto(CString Puerto, unsigned int Velocidad)

int Mascara;

DCB Confi;

int Conf;

COMMTIMEOUTS TiempoComm;

h_PuertoSerie=CreateFile(Puerto,

GENERIC_READ|GENERIC_WRITE,

0,

NULL,

OPEN_EXISTING,

FILE_FLAG_OVERLAPPED,

79

Page 82: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

NULL);

if(h_PuertoSerie==INVALID_HANDLE_VALUE)

Estado=false;

Error(GetLastError());

return false;

else

Estado=true;

Mascara=SetCommMask(h_PuertoSerie,EV_RXCHAR);

if(Mascara==0)

Error(GetLastError());

return false;

Conf=GetCommState(h_PuertoSerie,&Confi);

if(Conf==0)

Error(GetLastError());

return false;

Confi.BaudRate=CBR_57600;

Confi.fBinary=true;

80

Page 83: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Confi.fParity=false;

Confi.fOutxCtsFlow=false;

Confi.fOutxDsrFlow=false;

Confi.fDtrControl=DTR_CONTROL_DISABLE;

Confi.fDsrSensitivity=false;

Confi.fOutX=false;

Confi.fInX=false;

Confi.fRtsControl=RTS_CONTROL_DISABLE;

Confi.ByteSize=8;

Confi.Parity=NOPARITY;

Confi.StopBits=ONESTOPBIT;

Conf=SetCommState(h_PuertoSerie,&Confi);

if(Conf==0)

Error(GetLastError());

return false;

TiempoComm.ReadIntervalTimeout=100;

TiempoComm.ReadTotalTimeoutMultiplier=256;

TiempoComm.ReadTotalTimeoutConstant=200;

TiempoComm.WriteTotalTimeoutMultiplier=2;

TiempoComm.WriteTotalTimeoutConstant=20;

SetCommTimeouts(h_PuertoSerie,&TiempoComm);

AfxBeginThread(Eventos,this);

return false;

81

Page 84: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

//Funcion que ejecuta el proceso que recibe los datos y sincroniza con

//el proceso primario

UINT Eventos(LPVOID pParam)

CPuertoSerie *PuertoEvento;

PuertoEvento=(CPuertoSerie *) pParam;

OVERLAPPED Evento=0,0,0,0,0;

DWORD NumEvento;

Evento.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);

CSingleLock Esperar(&(PuertoEvento->AInterrup));

while(PuertoEvento->Estado)

NumEvento=0;

WaitForSingleObject(Evento.hEvent,100);

WaitCommEvent(PuertoEvento->h_PuertoSerie,&NumEvento,&Evento);

if(NumEvento==EV_RXCHAR)

SetCommMask(PuertoEvento->h_PuertoSerie,EV_CTS);

CString Aux;

PuertoEvento->Leer(1);

if(PuertoEvento->BufLectura[0]==0)

PuertoEvento->Leer(256); //Numero estandard de Bits

82

Page 85: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

PurgeComm(PuertoEvento->h_PuertoSerie,PURGE_RXCLEAR);

SetCommMask(PuertoEvento->h_PuertoSerie,EV_RXCHAR);

PuertoEvento->Interrup.SetEvent(); //Libera el evento que administra

//la funcion secundaria de datos

Esperar.Lock(); //Espera hasta que la funcion

//secundaria termine

Esperar.Unlock();

PuertoEvento->Interrup.PulseEvent();

return 0;

83

Page 86: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Bibliografıa

[1] John G. Proakis, Dimitris G. Manolakis. Tratamiento digital de senales., Prin-cipios, algoritmos y aplicaciones. 3a Edicion. PRENTICE HALL, Madrid, 1998

[2] Katsuhiko Ogata Ingenierıa de Control Moderna., 3a Edicion. PRENTICEHALL HISPANOAMERICANA, S.A.

[3] http://www.freescale.com/

[4] http://www.microsoft.com/spain/visualstudio

84

Page 87: INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE MECANICA Y … · 2017-08-07 · Mapeo en z de un filtro Pasa-Banda con dos polos y dos ceros. . . . . 36 2.17. Mariposa basica

Φ

85