You are on page 1of 338

Procesamiento digital de se

nales
Introducci on con teora y pr actica
Gerardo Miramontes de Le on
Universidad Aut onoma de Zacatecas
Edici on 2005
Producci on
Universidad Aut onoma de Zacatecas
Edici on y Dise no
Cuerpo Academico de Procesamiento Digital de Se nales
Cuidado de la Edici on
Berenice Reyes Herrera
D.R. Gerardo Miramontes de Le on
D.R. de la presente edici on
Coordinaci on de Investigaci on y Posgrado
Universidad Aut onoma de Zacatecas
Alameda 312, Centro Hist orico
98000, Zacatecas, Mexico
Incluye material con derechos reservados propiedad de
Freescale Semiconductor, Inc., usado con permiso 2005.
DSP56303EVMUM/D Rev. 3.4 12/1999
DSP56000UMD/AD Rev. 2.0, 1990
MTT31/CN Rev. 3.0, 1990
DSP56002UM/AD Rev. 1.0, 1993
DSP56303EVMP/D Rev. 1.0 10/98
The simulator GUI56300 version 6.4.2 07-11-2001
and simulator GUI56000 version 6.2.1 01-22-1998.
ISBN 968-5923-15-9
Hecho en Mexico
Made in Mexico
Prefacio
El procesamiento digital de se nales (PDS) es actualmente un curso obli-
gatorio de cualquier programa de ingeniera electrica. En el programa de In-
geniera en Comunicaciones y Electr onica (ICE), de la Universidad Aut ono-
ma de Zacatecas, se comenz o a impartir un curso introductorio durante el
oto no de 1994. Ese curso se ofreca como materia optativa en el curso T opi-
cos selectos para estudiantes del ultimo a no y nalmente, durante la rees-
tructuraci on curricular de 1998, se opt o por incluirlo en la lista de cursos
obligatorios; agregando otros dos cursos optativos dentro del area del pro-
cesamiento de se nales: procesamiento digital de voz (PDV) y procesamiento
digital de im agenes (PDI). Estos dos ultimos cursos se han ofrecido en el
Laboratorio de Procesamiento Digital de Se nales, de la Unidad Academica
de Ingeniera Electrica, cada semestre desde 1996.
Se pueden encontrar, cada vez con m as frecuencia, cursos sobre PDS en
los planes de estudio de los programas de ingeniera electrica, sin embargo,
son muy pocos los textos en espa nol disponibles en nuestro pas. Ciertamen-
te, hay excelentes textos de procedencia extranjera que han sido traducidos
al espa nol pero que no han sido orientados a las necesidades de nuestros pro-
gramas academicos. Por otra parte, los cursos sobre procesamiento digital
de se nales tienen, como otros cursos de ingeniera electrica, un fuerte com-
ponente te orico y un muy importante componente pr actico y en ocasiones
resulta difcil balancear ambos componentes. Por por lo general se piensa
que estos dos aspectos corresponderan a dos cursos diferentes, es decir, por
un lado, el estudio de la parte te orica, con un componente matem atico (y
de algoritmos propios del PDS), y por el otro, el estudio de los circuitos
especializados para el procesamiento de se nales digitales y su programaci on,
que parece m as bien un curso sobre microprocesadores, pero en realidad con
ciertas diferencias. Con la parte te orica se tiene la parte algortmica que es
necesario conectar al estudio de la programaci on de los circuitos para PDS.
En Mayo de 1996, la IEEE (Trans. on Education) public o un n umero
especial dedicado a la educaci on en PDS a nivel de licenciatura. Una carac-
terstica, casi generalizada en los trabajos que se publicaron en ese n umero,
fue el enfasis que se haca a los aspectos pr acticos y de aplicaciones del
PDS. Otra caracterstica, no menos importante, fue la gran variedad de he-
rramientas computacionales que se emplearon y que se siguen empleando
actualmente como Matlab, Mathcad, Hypersignal, Simulink, entre otros.
Reconociendo as, la importancia que tiene el aspecto pr actico en la en-
se nanza del PDS, este texto se ha estructurado de manera tal que aborde
ambos aspectos, dando la importancia correspondiente a cada parte. El con-
tenido se compone de los siguientes captulos: el captulo 1 es un captulo
introductorio donde se incluyen, adem as de una breve descripci on del desa-
rrollo hist orico del PDS, algunas deniciones b asicas como tiempo continuo,
tiempo discreto, procesamiento en tiempo real, y algunos ejemplos de mo-
tivaci on para que el lector pueda visualizar las aplicaciones en forma tem-
prana, de modo que le permita enfrentar con cierto optimismo los siguientes
captulos te oricos. En el captulo 2, se presenta uno de los procesadores de
se nales m as accesibles, tanto por su disponibilidad como por su ambiente de
programaci on. Se ha incluido, en el CD adjunto, un simulador de los proce-
sadores que se estudian en este texto. Se intenta que el estudiante disponga,
desde el principio del curso, de una herramienta que le permita explorar las
posibilidades pr acticas del PDS. En el captulo 3, se introduce el concep-
to de se nal y sistema en tiempo discreto, se hace un peque no repaso de la
transformada Z y se trabaja con algunas propiedades de secuencias y de los
sistemas en el dominio z. En el captulo 4, se estudian algunas tecnicas para
la obtenci on de las funciones de transferencia de ltros anal ogicos H(s), ya
que el dise no de algunos ltros digitales (los ltros con respuesta innita al
impulso RII) parten de estas funciones denidas en el dominio continuo s.
Una vez obtenida la H(s) deseada se estudia, en el captulo 5, el dise no de
ltros digitales RII. Se emplea una herramienta computacional muy potente
como es Matlab c _, para probar el desempe no de algunos ltros en forma
pr actica; pero no en tiempo real. Nuevamente esto permite tener una ex-
periencia de primera mano, en el dise no y aplicaci on de los ltros digitales.
En ese mismo captulo, se estudian las diferentes estructuras de los ltros
RII y se introduce su implantaci on en la familia de procesadores de se nales
DSP56k. El captulo 6 est a destinado al estudio de los ltros con respuesta
al impulso nita (RIF) y su implantaci on en el procesador de se nales para
procesamiento en tiempo real. Se muestra tanto el dise no de estos ltros
como su implantaci on en el procesador de se nales con el listado fuente del
c odigo en lenguaje ensamblador para ltros RIF.
En la segunda parte de este texto, se han incluido varios captulos de-
signados como Laboratorio, donde se introduce el ambiente de trabajo de
los procesadores de se nales de la familia DSP56k de Freescale Semiconduc-
tor, Inc. (Motorola). En algunas de estas pr acticas se emplea el m odulo de
evaluaci on EVM. Se presentan, adem as, ejercicios que pueden ser realizados
en un simulador o bien en el m odulo de evaluaci on antes mencionado. Tam-
bien se incluyen algunas pr acticas que se deben realizar bajo el ambiente
de programaci on Matlab. En estas, se muestra el dise no de ltros digitales
para comprobar, mediante pr acticas en el laboratorio tanto el desempe no de
algunos ltros digitales como el ltrado de se nales de audio escuchando el
resultado a traves de la tarjeta de sonido.
Un objetivo deseable es que, desde el primer curso, el alumno tenga
oportunidad de experimentar, en pr acticas de laboratorio, con los m odulos
o tarjetas de desarrollo de procesadores de se nales. Una de las pr acticas que
se incluye en el primer curso sobre PDS es la prueba de ltros digitales en
tiempo real. Sin embargo, la obtenci on de los coecientes y la escritura del
c odigo puede ser una tarea tediosa y una soluci on es el empleo de herra-
mientas de c omputo que permiten dise nar ltros digitales y adem as generar
el c odigo ensamblador para procesadores de se nales.
De acuerdo a este objetivo, se ha desarrollado un juego de archivos M
que permiten experimentar con el dise no de ltros digitales RII (Respuesta
al Impulso Innita) y RIF (Respuesta al Impulso Finita), y adem as obtener
el c odigo en lenguaje ensamblador, de modo que el alumno puede probar
varios dise nos en unos cuantos minutos. A este juego de archivos se le ha
dado el nombre de FDI: Filter Design and Implementation package. Este
conjunto de archivos forman un programa completo de dise no y generaci on
de c odigo en lenguaje ensamblador. Se tienen dos versiones para FDI, ambas
se incluyen en el CD adjunto, una versi on para el DSP56002EVM y una
segunda versi on para trabajar con el DSP56303EVM.
Al nal de cada captulo, se incluye una peque na lista bibliogr aca en
la cual el lector puede encontrar alguna lectura adicional de interes. Existen
varios textos que incluyen una introducci on al PDS y en algunos de ellos se
hace enfasis en los conceptos m as que en los detalles matem aticos y, por lo
tanto, son una buena fuente de motivaci on para iniciarse en este campo de la
ingeniera. Otros textos que son de mucha ayuda son los textos sobre Se nales
y sistemas pues permiten acercarse a las deniciones b asicas y tratamiento
matem atico que posteriormente es necesario en casi todos los textos sobre
PDS.
El material contenido en el texto se puede cubrir completamente en un
solo curso con dos o tres sesiones por semana. Durante la primavera de
1998, se imparti o un curso empleando este material en el Departamento de
Ingeniera Electrica y Computaci on de la Universidad Estatal de Dakota del
Norte, empleando dos sesiones te oricas y una sesi on pr actica cada semana.
Una caracterstica de este material es que ofrece la oportunidad de alternar
sesiones te oricas con sesiones de laboratorio, las cuales pueden ofrecerse sin
la necesidad de alterar el tiempo total destinado a las sesiones del curso. Se
recomienda trabajar en forma alternada los captulos de la parte te orica con
los captulos de la parte pr actica desde el inicio del curso.
Cabe hacer la aclaraci on que se ha incluido, en dos apendices, suciente
material de referencia sobre el sistema de evaluaci on DSP56303EVM y sobre
el Simulador GUI56300, que pueden servir de complemento al captulo 2 y al
material de pr acticas, pero de ninguna manera se pretende reemplazar y m as
bien se recomienda consultar los manuales del usuario y notas de aplicaci on
provistas por Freescale Semiconductor. La documentaci on incluida en estos
dos apendices, as como en otros captulos y el software incluido en el CD,
es material con derechos reservados propiedad de Freescale Semiconductor,
Inc., usado con permiso 2005.
Deseo agradecer el apoyo obtenido durante la elaboraci on de este tex-
to, a PROMEP, bajo el convenio UAZAC-EXB-01-01. Tambien deseo ha-
cer patente un reconocimiento al Coordinador de Investigaci on y Posgra-
do de la Universidad Aut onoma de Zacatecas M. en C. Edgar Hurtado
Hern andez, por su apoyo para la publicaci on de este trabajo. A la M. en
C. Carmen Fern andez Gal an Montemayor por la exhaustiva revisi on al ma-
nuscrito, al Dr. Ismael de la Rosa Vargas junto con el M. en C. Ernesto
Garca Domnguez por sus comentarios, sugerencias y correcciones y por
emplear las notas del texto durante la impartici on de sus cursos sobre PDS.
G. Miramontes, Zacatecas, Zac. agosto 2005

Indice general
I Introducci on a la teora del PDS XV
1. Introducci on 1
1.1.

Areas de interes . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Deniciones b asicas . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Ejemplos de aplicaci on . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1. Sistemas auto-adaptables . . . . . . . . . . . . . . . . 4
1.3.2. Cancelaci on activa de ruido . . . . . . . . . . . . . . . 5
1.3.3. Procesamiento de voz . . . . . . . . . . . . . . . . . . 5
1.3.4. Procesamiento de im agenes . . . . . . . . . . . . . . . 6
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2. El procesador de se nales digitales 11
2.1. Desarrollo de los procesadores de se nales digitales . . . . . . . 12
2.1.1. Los primeros das del procesamiento digital de se nales 13
2.2. El DSP56002 . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.1. Caratersticas del DSP56002 . . . . . . . . . . . . . . 16
2.2.2. Modos de direccionamiento . . . . . . . . . . . . . . . 18
2.2.3. M odulos de memoria y modos de operaci on . . . . . . 21
2.2.4. La memoria de programa P . . . . . . . . . . . . . . . 22
2.2.5. La memoria de datos X . . . . . . . . . . . . . . . . . 22
2.2.6. La memoria de datos Y . . . . . . . . . . . . . . . . . 22
2.2.7. El registro de modo de operaci on OMR . . . . . . . . 23
2.2.8. Descripci on de los modos de operaci on . . . . . . . . . 29
2.3. El DSP56303EVM . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.1. Caractersticas principales . . . . . . . . . . . . . . . . 31
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3. Se nales y sistemas en tiempo discreto 37
3.1. Representaci on de se nales en tiempo discreto . . . . . . . . . 37
3.1.1. Muestreo y el traslape espectral . . . . . . . . . . . . . 38
3.1.2. Muestreo de im agenes . . . . . . . . . . . . . . . . . . 43
3.2. Algunas secuencias importantes . . . . . . . . . . . . . . . . . 45
3.2.1. La muestra unitaria y el escal on unitario . . . . . . . . 45
i
3.2.2. La secuencia exponencial . . . . . . . . . . . . . . . . 46
3.2.3. La secuencia sinusoidal . . . . . . . . . . . . . . . . . 47
3.3. Algunas propiedades de las secuencias . . . . . . . . . . . . . 48
3.4. Algunas propiedades de los sistemas en tiempo discreto . . . 50
3.5. Algunas Operaciones b asicas . . . . . . . . . . . . . . . . . . 53
3.6. La transformada Z . . . . . . . . . . . . . . . . . . . . . . . . 55
3.6.1. C alculo de algunas transformadas Z . . . . . . . . . . 56
3.6.2. Propiedades de la transformada Z . . . . . . . . . . . 57
3.6.3. Relaci on entre la transformada Z y la T . . . . . . . . 62
3.7. Propiedades de la RDE . . . . . . . . . . . . . . . . . . . . . 64
3.7.1. Causalidad a partir de la RDE . . . . . . . . . . . . . 64
3.7.2. Estabilidad-EASA a partir de la RDE . . . . . . . . . 65
3.8. La transformada Z inversa . . . . . . . . . . . . . . . . . . . 65
3.8.1. Transformada Z inversa con polos m ultiples . . . . . . 68
3.9. Aplicaci on de la transformada Z . . . . . . . . . . . . . . . . 69
3.9.1. La funci on de transferencia en tiempo discreto . . . . 69
3.9.2. Estabilidad a partir del diagrama cero/polo . . . . . . 70
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4. Dise no de ltros en tiempo continuo 79
4.1. Especicaciones de un ltro . . . . . . . . . . . . . . . . . . . 80
4.2. La aproximaci on de Butterworth . . . . . . . . . . . . . . . . 80
4.2.1. Transformaciones anal ogico-anal ogico . . . . . . . . . 85
4.2.2. Dise no de ltros Butterworth pasa-bajas . . . . . . . . 88
4.2.3. Dise no de ltros Butteworth pasa-banda . . . . . . . . 92
4.3. La aproximaci on de Chebyshev . . . . . . . . . . . . . . . . . 94
4.3.1. Los polinomios de Chebyshev . . . . . . . . . . . . . . 95
4.3.2. Los ltros de Chebyshev . . . . . . . . . . . . . . . . . 97
4.4. Construcci on de tablas de dise no de ltros normalizados . . . 105
4.4.1. Tabla de ltros de Butterworth usando Matlab . . . 105
4.4.2. Tabla de ltros de Chebyshev usando Matlab . . . . 105
4.5. Filtros elpticos . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.5.1. Dise no de ltros elpticos anal ogicos en Matlab . . . 113
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5. Dise no de ltros (RII) en tiempo discreto 119
5.1. Dise no por soluci on directa de la ecuaci on en diferencias . . . 119
5.2. La transformaci on bilineal . . . . . . . . . . . . . . . . . . . . 122
5.2.1. Dise no de ltros digitales por la transformaci on bilineal124
5.3. Dise no de ltros digitales RII usando transformaciones digital-
a-digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.3.1. Determinaci on del orden n para un ltro digital But-
terworth . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.4. Realizaci on de ltros digitales RII . . . . . . . . . . . . . . . 128
5.4.1. Forma directa I . . . . . . . . . . . . . . . . . . . . . . 128
5.4.2. Forma Directa II . . . . . . . . . . . . . . . . . . . . . 128
5.4.3. Conexi on de estructuras en cascada . . . . . . . . . . 132
5.4.4. Conexi on de estructuras en paralelo . . . . . . . . . . 132
5.5. El tri angulo de estabilidad . . . . . . . . . . . . . . . . . . . . 132
5.6. C odigo de una secci on de segundo orden . . . . . . . . . . . . 133
5.6.1. C odigo para la forma directa II transpuesta . . . . . . 134
5.7. Descripci on de FDI . . . . . . . . . . . . . . . . . . . . . . . . 136
5.7.1. Opci on dise nar RII . . . . . . . . . . . . . . . . . . . . 137
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6. Dise no de ltros RIF 149
6.1. Los ltros RIF . . . . . . . . . . . . . . . . . . . . . . . . . . 149
6.1.1. Dise no de ltros RIF . . . . . . . . . . . . . . . . . . . 150
6.2. Dise no de ltros RIF por series de Fourier . . . . . . . . . . . 151
6.2.1. C alculo de los coecientes . . . . . . . . . . . . . . . . 153
6.3. Caracterstica de fase lineal de los ltros RIF . . . . . . . . . 156
6.4. Dise no se ltros RIF usando ventanas . . . . . . . . . . . . . 159
6.4.1. C alculo del orden del ltro RIF . . . . . . . . . . . . . 161
6.5. Dise no de ltros RIF por mnimos cuadrados . . . . . . . . . 162
6.6. Realizaci on de ltros RIF . . . . . . . . . . . . . . . . . . . . 164
6.6.1. Macros para la implantaci on de ltros RIF . . . . . . 165
6.7. FDI para ltros RIF . . . . . . . . . . . . . . . . . . . . . . . 166
6.7.1. Opci on RIF . . . . . . . . . . . . . . . . . . . . . . . . 166
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
7. Laboratorio 1
Introducci on al DSP56002/303EVM 171
7.1. Descripci on del contenido en las ventanas . . . . . . . . . . . 172
7.1.1. Ventana de registros . . . . . . . . . . . . . . . . . . . 172
7.1.2. Ventana de Datos . . . . . . . . . . . . . . . . . . . . 172
7.1.3. Ventana de desensamblado . . . . . . . . . . . . . . . 173
7.1.4. Ventana de Mandos . . . . . . . . . . . . . . . . . . . 173
7.1.5. Ventana de entrada/salida (I/O) . . . . . . . . . . . . 173
7.2. Cambiando del contenido de memoria . . . . . . . . . . . . . 174
7.3. Carga de un programa ensamblado . . . . . . . . . . . . . . . 174
7.3.1. Ejecuci on de un solo paso . . . . . . . . . . . . . . . . 175
7.3.2. Actualizaci on continua . . . . . . . . . . . . . . . . . . 175
7.3.3. Pasos m ultiples . . . . . . . . . . . . . . . . . . . . . . 175
7.3.4. Puesta de un punto de ruptura (break-point) . . . . . 175
7.4. Algunos ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.4.1. Uso de la ventana de smbolos . . . . . . . . . . . . . 177
7.4.2. Prueba de la funci on de evaluaci on . . . . . . . . . . . 177
7.4.3. Ajuste de puntos (variables) bajo observaci on . . . . . 177
7.4.4. Ayuda . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.4.5. Par ametros en la lnea de mandos . . . . . . . . . . . 177
7.5. La barra de herramientas . . . . . . . . . . . . . . . . . . . . 178
7.5.1. Mandos . . . . . . . . . . . . . . . . . . . . . . . . . . 179
7.6. Cargado y edici on de un programa del DSP . . . . . . . . . . 179
7.6.1. Ensamblado de un programa DSP . . . . . . . . . . . 179
7.7. Denici on y uso de macros . . . . . . . . . . . . . . . . . . . . 180
7.7.1. Llamado del macro . . . . . . . . . . . . . . . . . . . . 181
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8. Laboratorio 2
El Simulador SIM56000 183
8.1. GUI56000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.2. Pr acticas con el simulador SIM56000 . . . . . . . . . . . . . . 187
8.3. Ejecuci on de mandos del simulador . . . . . . . . . . . . . . . 187
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9. Laboratorio 3
Modos de direccionamiento en el DSP 191
9.1. Modos de direccionamiento . . . . . . . . . . . . . . . . . . . 191
9.1.1. Modos de direccionamiento especiales . . . . . . . . . 192
9.1.2. Modos de direccionamiento indirecto con registro de
direcciones . . . . . . . . . . . . . . . . . . . . . . . . 195
9.1.3. Direccionamiento con los registros Mn . . . . . . . . . . 196
9.1.4. Ajuste del registro Mn en m odulo L . . . . . . . . . . . 196
9.1.5. Modo de direccionamiento con inversi on de bit . . . . 196
9.2. El juego de instrucciones del DSP56002 . . . . . . . . . . . . 199
9.3. Transferencias en paralelo . . . . . . . . . . . . . . . . . . . . 200
9.3.1. Reglas de transferencias en paralelo . . . . . . . . . . 201
9.4. La instrucci on REP y la instrucci on DO . . . . . . . . . . . . . 203
9.4.1. Caractersticas de la instrucci on REP . . . . . . . . . . 203
9.4.2. La instrucci on DO . . . . . . . . . . . . . . . . . . . . . 204
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
10.Laboratorio 4
Dise no de ltros anal ogicos en Matlab 207
10.1. Filtros Butterworth . . . . . . . . . . . . . . . . . . . . . . . . 207
10.2. Chebyshev Tipo I . . . . . . . . . . . . . . . . . . . . . . . . . 209
10.3. Chebyshev Tipo II . . . . . . . . . . . . . . . . . . . . . . . . 210
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
11.Laboratorio 5
Dise no de Filtros Digitales RII en Matlab 213
11.1. Filtros Butterworth . . . . . . . . . . . . . . . . . . . . . . . . 214
11.2. Filtros Chebyshev Tipo I . . . . . . . . . . . . . . . . . . . . 216
11.3. Filtros Elpticos . . . . . . . . . . . . . . . . . . . . . . . . . . 216
11.4. FDI programa de dise no y realizaci on . . . . . . . . . . . . . 217
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
12.Laboratorio 6
Dise no de Filtros Digitales RIF en Matlab 221
12.1. Dise no de ltros RIF usando funciones ventana . . . . . . . . 221
12.2. Otros metodos de dise no: Mnimos cuadrados y Equirizo . . . 224
12.2.1. Mnimos cuadrados . . . . . . . . . . . . . . . . . . . . 224
12.2.2. Parks-McClellan o equirizo . . . . . . . . . . . . . . . 225
12.3. FDI y ltros RIF en el DSP56002/DSP56303 . . . . . . . . . 225
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
13.Laboratorio 7
PDS con la tarjeta de sonidos y Matlab 227
13.1. Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
13.2. Tarjeta de adquisici on de datos . . . . . . . . . . . . . . . . . 228
13.3. Filtrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
13.4. Algunos efectos de sonido . . . . . . . . . . . . . . . . . . . . 230
13.5. Un poco de reverberaci on . . . . . . . . . . . . . . . . . . . . 230
13.5.1. Filtro digital pasa-todo . . . . . . . . . . . . . . . . . 230
13.6. Generaci on de se nales . . . . . . . . . . . . . . . . . . . . . . 231
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
A. El manual del usuario del DSP56303EVM 233
A.1. Gua de Inicio R apido . . . . . . . . . . . . . . . . . . . . . . 233
A.1.1. Equipo . . . . . . . . . . . . . . . . . . . . . . . . . . 233
A.1.2. Procedimiento de instalaci on . . . . . . . . . . . . . . 235
A.2. Ejemplo con programa de prueba . . . . . . . . . . . . . . . . 238
A.2.1. Escritura del programa . . . . . . . . . . . . . . . . . 240
A.2.2. Ejemplo de programa . . . . . . . . . . . . . . . . . . 241
A.3. Ensamblado del programa . . . . . . . . . . . . . . . . . . . . 243
A.3.1. Formato del mando del ensamblador . . . . . . . . . . 243
A.3.2. Opciones del ensamblador . . . . . . . . . . . . . . . . 243
A.3.3. Directivas del ensamblador . . . . . . . . . . . . . . . 243
A.3.4. Ensamblado del programa de ejemplo . . . . . . . . . 252
A.4. Encadenador DSP de Motorola . . . . . . . . . . . . . . . . . 252
A.5. Opciones del encadenador . . . . . . . . . . . . . . . . . . . . 252
A.6. Introducci on al programa depurador . . . . . . . . . . . . . . 252
A.6.1. Ejecuci on del programa . . . . . . . . . . . . . . . . . 254
A.7. Resumen tecnico del DSP56303EVM . . . . . . . . . . . . . . 255
A.7.1. Descripci on y caractersticas del DSP56303EVM . . . 255
A.7.2. Descripci on del DSP56303 . . . . . . . . . . . . . . . . 255
A.7.3. Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 256
A.7.4. Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
A.7.5. Programaci on para operaci on independiente . . . . . . 260
A.8. Codec de Audio . . . . . . . . . . . . . . . . . . . . . . . . . . 260
A.8.1. I/O anal ogicas del codec . . . . . . . . . . . . . . . . . 261
A.8.2. Interfase digital del codec . . . . . . . . . . . . . . . . 262
A.9. Convertidor de mandos . . . . . . . . . . . . . . . . . . . . . 264
A.10.Interfase externas . . . . . . . . . . . . . . . . . . . . . . . . . 265
A.10.1. El puerto de comunicaci on serie (SCI) . . . . . . . . . 265
A.10.2. Puerto serie sncrono mejorado 0 (ESSI0) . . . . . . . 267
A.10.3. Puerto serie sncrono mejorado 1 (ESSI1) . . . . . . . 267
A.10.4. Puerto Host (HI08) . . . . . . . . . . . . . . . . . . . . 268
A.10.5. Control del conducto (bus) de expansi on . . . . . . . . 268
A.10.6. Selector del modo . . . . . . . . . . . . . . . . . . . . 268
B. El simulador GUI56300 271
B.1. Ajuste de las ventanas de trabajo . . . . . . . . . . . . . . . . 273
B.1.1. Guardado de preferencias en las ventanas . . . . . . . 274
B.2. Vista a algunos mandos . . . . . . . . . . . . . . . . . . . . . 275
B.2.1. Modicaci on de memoria/registro . . . . . . . . . . . 275
B.2.2. Archivo entrada/salida . . . . . . . . . . . . . . . . . . 276
B.2.3. Control de ejecuci on del simulador . . . . . . . . . . . 276
B.2.4. Mando del depurador de c odigo fuente en C . . . . . . 277
B.2.5. Tareas Miscel aneas . . . . . . . . . . . . . . . . . . . . 277
B.2.6. Control de ventanas . . . . . . . . . . . . . . . . . . . 278
B.3. Sintaxis de los mandos . . . . . . . . . . . . . . . . . . . . . . 278
B.4. Ingreso de mandos . . . . . . . . . . . . . . . . . . . . . . . . 279
B.5. Comenzando a trabajar con el simulador . . . . . . . . . . . . 280
B.5.1. Ajustando y borrando la trayectoria . . . . . . . . . . 281
B.6. Carga de archivos objeto . . . . . . . . . . . . . . . . . . . . . 283
B.6.1. Cargando archivos del estado del simulador . . . . . . 284
B.6.2. Guardando archivos objeto . . . . . . . . . . . . . . . 286
B.7. Introducci on a la conguraci on de la memoria del simulador . 287
B.8. Reinicio de los registros del dispositivo y memoria . . . . . . 288
B.9. Reset Device desde la lnea de mandos . . . . . . . . . . . . . 289
B.10.Cambio de la base numerica . . . . . . . . . . . . . . . . . . . 290
B.11.Depuraci on de c odigo fuente en C . . . . . . . . . . . . . . . . 292
B.11.1. Moviendo hacia arriba/abajo el Call Stack . . . . . . 292
B.11.2. Mostrando el Call Stack . . . . . . . . . . . . . . . . 293
B.11.3. Monitor de llamadas a funciones C . . . . . . . . . . . 293
B.12.Habilitando cadenas I/O . . . . . . . . . . . . . . . . . . . . . 294
B.12.1. Redirecci on de una cadena I/O . . . . . . . . . . . . . 295
B.13.Uso de la barra de herramientas . . . . . . . . . . . . . . . . . 295
B.14.Creaci on y ejecuci on de un mando macro . . . . . . . . . . . 300
B.14.1. Deteniendo la ejecuci on con WAIT . . . . . . . . . . . 301
B.14.2. Deteniendo la ejecuci on de un programa . . . . . . . . 302
B.15.La ventana de ensamblado Assembly . . . . . . . . . . . . . . 302
B.15.1. Desplegado de los puntos de ruptura . . . . . . . . . . 303
B.16.Introducci on al uso de expresiones . . . . . . . . . . . . . . . 304
B.16.1. Usando smbolos de espacio de memoria . . . . . . . . 304
B.16.2. Evaluaci on de expresiones . . . . . . . . . . . . . . . . 304
B.17.Cambio de valores en memoria . . . . . . . . . . . . . . . . . 305
B.17.1. Mostrando valores en memoria . . . . . . . . . . . . . 306
B.18.Mostrando valores de registros . . . . . . . . . . . . . . . . . 308
B.19.Uso de smbolos para depuraci on en ensamblador . . . . . . . 309
B.20.Conguraci on y modicaci on de una lista WATCH . . . . . . . 311

Indice de guras
1.1. Tareas principales del PDS. . . . . . . . . . . . . . . . . . . . . 3
1.2. Cancelaci on activa de ruido por un sistema adaptable. . . . . . . . 5
1.3. Onda temporal de la palabra /seis/. . . . . . . . . . . . . . . . . 6
1.4. Segmento de la onda temporal del sonido /s/. . . . . . . . . . . . 6
1.5. Segmento de la onda temporal del sonido /i/. . . . . . . . . . . . 7
1.6. Contenido de frecuencias del sonido vocalizado /i/. . . . . . . . . 7
1.7. Contenido de frecuencias del sonido no-vocalizado /s/. . . . . . . . 8
1.8. Imagen original. . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.9. Realce por igualaci on de histograma de la imagen original. . . . . 9
1.10. Imagen original. . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.11. Resultado del ltrado pasa-altas. . . . . . . . . . . . . . . . . . . 9
1.12. Detecci on de bordes o contornos. . . . . . . . . . . . . . . . . . . 9
2.1. Diagrama a cuadros del multiplicador MPY16AJ. . . . . . . . . . 14
2.2. Diagrama a cuadros de los componentes principales del proyecto
MARCH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. M odulo de evaluaci on DSP56002EVM. . . . . . . . . . . . . . . . 17
2.4. Diagrama de terminales del DSP56002. . . . . . . . . . . . . . . 20
2.5. Mapa de memoria P. . . . . . . . . . . . . . . . . . . . . . . . . 24
2.6. Mapa de memoria XY, DE = 1; YD = 0. . . . . . . . . . . . . . 25
2.7. Mapa de memoria XY, DE = 0; YD = 0. . . . . . . . . . . . . . 26
2.8. Mapa de memoria XY, DE = 1; YD = 1. . . . . . . . . . . . . . 27
2.9. Mapa de memoria XY, DE = 0; YD = 1. . . . . . . . . . . . . . 28
2.10. Mapa de interrupciones y perifericos. . . . . . . . . . . . . . . . . 28
2.11. M odulo de evaluaci on DSP56303EVM. . . . . . . . . . . . . . . . 32
3.1. Muestreo de una se nal. . . . . . . . . . . . . . . . . . . . . . . . 38
3.2. Muestreo de una se nal de 60 Hz. . . . . . . . . . . . . . . . . . . 39
3.3. Salida del ltro de reconstrucci on. . . . . . . . . . . . . . . . . . 40
3.4. Efecto del sub-muestreo en una se nal de 60 Hz. . . . . . . . . . . 40
3.5. Salida del ltro de reconstrucci on de la se nal sub-muestreada. . . . 42
3.6. Efecto del traslape en la banda de interes de la se nal. . . . . . . . 42
3.7. Vector que gira a una velocidad angular . . . . . . . . . . . . . . 43
3.8. Giro CMR en tres tiempos. . . . . . . . . . . . . . . . . . . . . . 44
3.9. Giro SMR en tres tiempos. . . . . . . . . . . . . . . . . . . . . . 44
ix
3.10. La secuencia muestra unitaria o impulso en tiempo discreto. . . . . 45
3.11. La secuencia escal on unitario en tiempo discreto. . . . . . . . . . 46
3.12. La secuencia exponencial compleja creciente en tiempo discreto. . . 47
3.13. La secuencia exponencial compleja decreciente en tiempo discreto. . 47
3.14. La secuencia exponencial real decreciente en tiempo discreto. . . . 48
3.15. Secuencia exponencial real no acotada. . . . . . . . . . . . . . . . 50
3.16. Multiplicador. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.17. Ganancia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.18. Sumador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.19. Retardo D y retardo inverso D
1
. . . . . . . . . . . . . . . . . . 55
3.20. Retardo D y retardo inverso D
1
. . . . . . . . . . . . . . . . . . 61
3.21. Se nal para el problema 3.6. . . . . . . . . . . . . . . . . . . . . . 73
3.22. Se nal para el problema 3.7. . . . . . . . . . . . . . . . . . . . . . 73
3.23. Ubicaci on de ceros y polos para el Problema 3.19. . . . . . . . . . 75
3.24. Diagrama a bloques para el problema 3.22. . . . . . . . . . . . . . 75
3.25. Diagrama a bloques para el problema 3.22. . . . . . . . . . . . . . 76
3.26. Diagrama de H
1
y H
2
en cascada para el problema 3.30. . . . . . 77
4.1. Especicaciones de un ltro. . . . . . . . . . . . . . . . . . . . . 80
4.2. Respuesta en frecuencia para ltros Butterworth, orden 1 a 3. . . . 81
4.3. Races de la funci on de Butterworth para n=1. . . . . . . . . . . 82
4.4. Races de la funci on de Butterworth para n=2. . . . . . . . . . . 83
4.5. Races de la funci on de Butterworth para n=6. . . . . . . . . . . 84
4.6. Races de la funci on de Butterworth para n=7. . . . . . . . . . . 84
4.7. Posici on del polo pasa-bajas Butterworth de primer orden. . . . . 87
4.8. Transformaci on del eje real a
0
. . . . . . . . . . . . . . . . . . 87
4.9. Respuesta pasa-banda por desplazamiento del eje real. . . . . . . . 88
4.10. Respuesta en frecuencia del ltro del ejemplo 4.2.3. . . . . . . . . 91
4.11. Ampliaci on en k
1
= 2 dB. . . . . . . . . . . . . . . . . . . . . 91
4.12. Ampliaci on en k
2
< 20 dB. . . . . . . . . . . . . . . . . . . . . 91
4.13. Especicaciones para un ltro pasa-banda. . . . . . . . . . . . . . 92
4.14. Respuesta en frecuencia del FPB del ejemplo 4.2.4. . . . . . . . . 94
4.15. Polinomio de Chebyshev de orden 5, T
5
(x). . . . . . . . . . . . . 96
4.16. Respuesta en frecuencia pasa-bajas Chebyshev n impar. . . . . . . 103
4.17. Respuesta en frecuencia pasa-bajas Chebyshev n par. . . . . . . . 103
4.18. Respuesta en frecuencia Chebyshev del ejemplo 4.3.1. . . . . . . . 104
4.19. Respuesta en frecuencia Chebyshev del ejemplo 4.4.1. . . . . . . . 110
4.20. Respuesta en frecuencia Chebyshev pasa-banda del ejemplo 4.4.2. . 112
4.21. Respuesta en frecuencia del ejemplo 4.5.1. . . . . . . . . . . . . . 115
5.1. Sistema anal ogico equivalente en tiempo discreto. . . . . . . . . . 120
5.2. Transformaci on del plano-s al plano-z. . . . . . . . . . . . . . . . 122
5.3. Transformaci on bilineal. . . . . . . . . . . . . . . . . . . . . . . 124
5.4. Forma directa I. . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.5. Descomposici on de H(z). . . . . . . . . . . . . . . . . . . . . . . 129
5.6. Forma directa II. . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.7. Forma (can onica) directa II. . . . . . . . . . . . . . . . . . . . . 130
5.8. Secci on bi-cuad. . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.9. Secci on bi-cuad alternativa. . . . . . . . . . . . . . . . . . . . . 131
5.10. Tri angulo de estabilidad. . . . . . . . . . . . . . . . . . . . . . . 133
5.11. Inversi on de ramas para la forma transpuesta. . . . . . . . . . . . 135
5.12. Forma directa II transpuesta. . . . . . . . . . . . . . . . . . . . 135
5.13. Presentaci on del men u principal. . . . . . . . . . . . . . . . . . . 137
5.14. Presentaci on del men u tipo de ltro. . . . . . . . . . . . . . . . . 137
5.15. Presentaci on del men u tipo de aproximaci on. . . . . . . . . . . . 138
5.16. Entrada de especicaciones del ltro deseado. . . . . . . . . . . . 138
5.17. Respuesta en frecuencia del ltro dise nado. . . . . . . . . . . . . 139
5.18. Men u para la selecci on de la frecuencia de muestreo. . . . . . . . . 139
5.19. Ejecuci on del programa ensamblador ASM56000 (o ASM56300). . . 141
5.20. Ventana de la aplicaci on EVM56kw. . . . . . . . . . . . . . . . . 145
5.21. Respuesta deseada del ltro para el problema 5.5. . . . . . . . 146
6.1. Efecto de la ventana de truncamiento en un ltro RIF. . . . . . . 151
6.2. Especicaci on de Filtros RIF. . . . . . . . . . . . . . . . . . . . 153
6.3. Respuesta en frecuencia para el FPb RIF del ejemplo 6.2.1. . . . . 155
6.4. Respuesta en frecuencia para el FPb RIF del ejemplo 6.2.2. . . . . 156
6.5. Sistema desconocido para fase lineal. . . . . . . . . . . . . . . . . 156
6.6. Simetra en h[n] para fase lineal. . . . . . . . . . . . . . . . . . . 158
6.7. Par ametros para la ventana Kaiser. . . . . . . . . . . . . . . . . 161
6.8. Metodos de dise no del ltro RIF. . . . . . . . . . . . . . . . . . . 166
6.9. Selecci on de ventanas en el dise no de ltros RIF. . . . . . . . . . 166
6.10. Respuesta en frecuencia de un ltro RIF. . . . . . . . . . . . . . 167
7.1. Men u principal bajo el ambiente de Domain Technologies. . . . . . 172
7.2. Ventana Registers bajo el ambiente de Domain Technologies. . . . 173
7.3. Ventana Data bajo el ambiente de Domain Technologies. . . . . . 173
7.4. Ventana I/O bajo el ambiente de Domain Technologies. . . . . . . 174
8.1. Ventana inicial del simulador SIM56000. . . . . . . . . . . . . . . 184
8.2. Ventana principal al inicio del simulador. . . . . . . . . . . . . . 184
8.3. Barra de opciones o menu principal. . . . . . . . . . . . . . . . . 184
8.4. Opciones del menu File. . . . . . . . . . . . . . . . . . . . . . . 185
8.5. Opciones del menu Display. . . . . . . . . . . . . . . . . . . . . 185
8.6. Opciones del menu Modify. . . . . . . . . . . . . . . . . . . . . 185
8.7. Opciones del menu Execute. . . . . . . . . . . . . . . . . . . . . 186
8.8. Opciones del menu Windows. . . . . . . . . . . . . . . . . . . . . 186
8.9. Opciones del menu Help. . . . . . . . . . . . . . . . . . . . . . . 186
8.10. Formato del registro OMR. . . . . . . . . . . . . . . . . . . . . . 187
A.1. Ubicaci on de componentes del DSP56303EVM. . . . . . . . . . . 237
A.2. Conexi on de cables al DSP56303EVM. . . . . . . . . . . . . . . . 238
A.3. Flujo del proceso de desarrollo. . . . . . . . . . . . . . . . . . . . 239
A.4. Ejemplo de la ventana del depurador. . . . . . . . . . . . . . . . 253
A.5. Ubicaci on de componentes del DSP56303EVM. . . . . . . . . . . 256
A.6. Diagrama funcional a bloques del DSP56303EVM. . . . . . . . . . 256
A.7. Conexiones de la FSRAM al DSP56303. . . . . . . . . . . . . . . 257
A.8. Ejemplo de mapa de memoria con la memoria externa unicada. . 258
A.9. Registro de atributos de direcciones AAR0. . . . . . . . . . . . . 259
A.10.Conexiones de la Flash. . . . . . . . . . . . . . . . . . . . . . . 260
A.11.Diagrama de entrada/salida anal ogicas del codec. . . . . . . . . . 262
A.12.Conexiones de la interfase digital del codec. . . . . . . . . . . . . 262
A.13.Interfase serie RS232. . . . . . . . . . . . . . . . . . . . . . . . . 265
B.1. Pantalla de inicio del simulador GUI56300. . . . . . . . . . . . . 272
B.2. Pantalla de inicial del simulador GUI56300. . . . . . . . . . . . . 273
B.3. Pantalla de una sesi on tpica del simulador. . . . . . . . . . . . . 274
B.4. Guardar preferencias. . . . . . . . . . . . . . . . . . . . . . . . . 274
B.5. Ajuste de la trayectoria. . . . . . . . . . . . . . . . . . . . . . . 281
B.6. Selecci on del dispositivo. . . . . . . . . . . . . . . . . . . . . . . 283
B.7. Ajuste de inicializaci on. . . . . . . . . . . . . . . . . . . . . . . 289
B.8. Ajuste de la base numerica . . . . . . . . . . . . . . . . . . . . . 291
B.9. Cambio de base numerica de registros. . . . . . . . . . . . . . . . 291
B.10.Selecci on para mover la pila hacia arriba. . . . . . . . . . . . . . 292
B.11.Selecci on para mover la pila hacia abajo. . . . . . . . . . . . . . . 293
B.12.Desplegado de la pila de llamadas a C. . . . . . . . . . . . . . . . 293
B.13.Monitor de llamadas a C. . . . . . . . . . . . . . . . . . . . . . 294
B.14.Iconos de la barra de herramientas. . . . . . . . . . . . . . . . . 296
B.15.Bot on para avanzar paso a paso. . . . . . . . . . . . . . . . . . . 298
B.16.Ventana de ensamblado. . . . . . . . . . . . . . . . . . . . . . . 303
B.17.Listado de puntos de ruptura. . . . . . . . . . . . . . . . . . . . 304
B.18.Ventana de evaluaci on. . . . . . . . . . . . . . . . . . . . . . . . 305
B.19.Cambio de valores de memoria. . . . . . . . . . . . . . . . . . . 306
B.20.Abrir ventana de memoria. . . . . . . . . . . . . . . . . . . . . . 307
B.21.Ventana de memoria. . . . . . . . . . . . . . . . . . . . . . . . . 307
B.22.Abrir ventana de Registros. . . . . . . . . . . . . . . . . . . . . 308
B.23.Ventana de Registros. . . . . . . . . . . . . . . . . . . . . . . . 309
B.24.Ventana de Observaci on (Watch). . . . . . . . . . . . . . . . . . 311

Indice de tablas
2.1. Grupos de terminales de acuerdo a su funci on. . . . . . . . . . . . 19
2.2. Modos de direccionamiento. . . . . . . . . . . . . . . . . . . . . 21
2.3. Bits DE y YD del OMR. . . . . . . . . . . . . . . . . . . . . . . 23
2.4. Resumen de los modos de operaci on. . . . . . . . . . . . . . . . . 24
2.5. Organizaci on del contenido de la memoria EPROM. . . . . . . . . 29
4.1. Algunos polinomios de Butterworth. . . . . . . . . . . . . . . . . 82
4.2. Polinomios de Butterworth de orden n, B
n
(s) = b
n
s
n
+b
n1
s
n1
+
. . . +b
1
s +b
0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.3. Polinomios de Chebyshev de orden n, para un rizo de 0.5 dB ( =
0.34931140018895). . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.4. Polinomios de Chebyshev de orden n, para un rizo de 1 dB ( =
0.50884713990959). . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.5. Polinomios de Chebyshev de orden n, para un rizo de 2 dB ( =
0.76478310157921). . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.6. Construcci on de H
Bn
(s) . . . . . . . . . . . . . . . . . . . . . . 106
4.7. Construcci on de H
Chn
(s) con rizo = 0.5 dB. . . . . . . . . . . . . 107
4.8. Construcci on de H
Chn
(s) con rizo = 1 dB. . . . . . . . . . . . . . 108
4.9. Construcci on de H
Chn
(s) con rizo = 2 dB. . . . . . . . . . . . . . 109
5.1. Transformaciones digital-a-digital. . . . . . . . . . . . . . . . . . 127
6.1. Atenuaci on m axima en cuatro funciones ventana . . . . . . . . . . 160
6.2. C alculo de N para cada ventana. . . . . . . . . . . . . . . . . . . 161
9.1. Modos de direccionamiento. . . . . . . . . . . . . . . . . . . . . 193
9.2. Valores de los Registros Mn. . . . . . . . . . . . . . . . . . . . . 197
9.3. Direccionamiento en m odulo L. . . . . . . . . . . . . . . . . . . . 197
9.4. Direccionamiento con inversi on de bits . . . . . . . . . . . . . . . 197
A.1. Ejemplo de enunciado fuente. . . . . . . . . . . . . . . . . . . . 240
A.2. Opciones del ensamblador . . . . . . . . . . . . . . . . . . . . . 245
A.3. Opciones del ensamblador (cont.) . . . . . . . . . . . . . . . . . 246
A.4. Opciones del ensamblador (cont.) . . . . . . . . . . . . . . . . . 247
A.5. Opciones del ensamblador (cont.) . . . . . . . . . . . . . . . . . 248
A.6. Selecci on de frecuencias de muestreo del CS4218 . . . . . . . 261
xiii
A.7. Opciones del bloque de puentes JP5 . . . . . . . . . . . . . . . . 263
A.8. Opciones del bloque de puentes JP4 . . . . . . . . . . . . . . . . 263
A.9. Opciones de Hab/DesHab de JTAG . . . . . . . . . . . . . . . . 265
A.10.Terminales del conector (P2) del depurador RS232 . . . . . . . . . 266
A.11.Terminales del conector (J6) del JTAG/OnCE . . . . . . . . . . . 266
A.12.Terminales del conector (J7) del SCI. . . . . . . . . . . . . . . . 266
A.13.Opciones de los puentes en J7. . . . . . . . . . . . . . . . . . . . 267
A.14.Terminales del conector (P1) del puerto serie del DSP. . . . . . . . 267
A.15.Terminales del conector (J5) del ESSI0 . . . . . . . . . . . . . . . 267
A.16.Terminales del conector (J4) del ESSI1 . . . . . . . . . . . . . . . 268
A.17.Terminales del conector (J3) del HI08 . . . . . . . . . . . . . . . 268
A.18.Terminales del conector (J2) del conducto de expansi on . . . . . . 269
Parte I
Introducci on a la teora del
PDS
xv
1
Introducci on
El PDS, a veces tambien llamado procesamiento de se nales digitales, o
incluso tratamiento numerico de se nales, toma muestras en tiempo real a
alta velocidad de se nales de audio o de video, entre muchas otras m as, y las
manipula para una variedad de prop ositos. El impacto de la tecnologa del
PDS se ha hecho sentir en aplicaciones tan variadas como en los sistemas
estereof onicos, en los autom oviles, en la electr onica de consumo como tele-
visi on digital, video-discos digitales (DVD, de sus siglas en ingles), discos
compactos de alta delidad (CD), telefona digital, etcetera. Gracias al PDS
es posible restablecer viejas grabaciones a su claridad original, eliminar, o
al menos reducir considerablemente, el eco en las conversaciones telef onicas
a larga distancia.
El PDS es una tecnologa que ha experimentado un crecimiento explosivo
debido al desarrollo de la microelectr onica y la computaci on. Inicialmente
fue usada en la academia y en aplicaciones que parecan de ciencia cci on.
Ahora, el PDS ha llegado a ser una tecnologa comercial de gran alcance
y m as accesible. En los ultimos diez a nos han aparecido una gran variedad
de circuitos integrados para el PDS convirtiendolo en una tecnologa m as
f acil de usar y econ omicamente accesible para aplicaciones muy particula-
res. Adem as, las compa nas que los producen han puesto a disposici on una
gran variedad de herramientas de desarrollo (software) de modo que quienes
producen equipos que utilizan la teconologa del PDS han encontrado un
espacio donde desarrollar productos novedosos con un crecimiento de ventas
formidable. De acuerdo a la compa na Forward Concepts Tempe, de Ari-
zona, el mercado para los circuitos integrados para PDS, en 1998, estaba
creciendo a un ritmo que era dos veces el ritmo del mercado de toda la in-
dustria electr onica. Se pronostic o que en los a nos siguientes los negocios en
1
2 1.1.

AREAS DE INTER

ES
PDS se incrementaran un 33 % anualmente, y que llegaran a un monto de
11 billones de d olares en 1999. Cerca de 4.5 billones seran en CIs para PDS
de prop osito general.
La implantaci on de los algoritmos de PDS incluye dos grandes campos de
trabajo: circuitera (hardware), y program atica (software). Aun cuando los
sistemas de PDS se pueden realizar en computadoras de prop osito general,
la realizaci on de sistemas con alta velocidad y alta eciencia requiere de cir-
cuitos especiales con una alta escala de integraci on (VLSI). De hecho, estos
circuitos son dise nados tomando en cuenta los requerimientos de paralelismo
y estructuras especiales para los algoritmos de PDS.
El termino PDS usualmente signica el procesamiento de se nales deni-
das s olo en tiempo discreto, tambien llamadas secuencias (de datos). Este
tipo de se nales pueden provenir de dos fuentes:
i) pueden ser inherentemente discretas en tiempo, o
ii) pueden ser versiones muestreadas de una se nal denida en tiempo
continuo, usualmente llamada se nal anal ogica.
La segunda fuente de se nales en tiempo discreto la versi on muestreada de
se nales continuas o anal ogicas es m as com un en ingeniera y las ciencias
fsicas. En este caso una se nal anal ogica debe ser muestreada y luego digi-
talizada.
1.1.

Areas de interes
Podemos identicar dos grandes areas de interes en el procesamiento
digital de se nales: el ltrado digital y el an alisis espectral. El ltrado digital
es quiz a la m as directa y necesaria para aplicaciones de procesamiento en
tiempo real, mientras que el an alisis espectral se encuentra en aplicaciones
m as sosticadas.
1.2. Deniciones basicas
Los transductores y lo sensores electricos pueden detectar fen omenos fsi-
cos como temperatura, esfuerzo o deformaci on, ondas sonoras, vibraciones,
entre otros. Una vez que una variable fsica es convertida a una tensi on o
corriente, se dice que es una se nal.

Esta ser a una se nal electrica y general-
mente se presenta como una se nal anal ogica, o en tiempo continuo, que pue-
de ser muestreada y convertida a forma digital por un circuito convertidor
anal ogico-a-digital (circuito A/D). En el proceso de conversi on deber a cum-
plirse con el teorema de muestreo, de lo contrario se perder a informaci on.
El PDS es el procesamiento aritmetico de se nales que han sido muestrea-
das, generalmente a intervalos regulares de tiempo, y digitalizadas. Algunos
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
1.2. DEFINICIONES B

ASICAS 3
ejemplos incluyen ltrado, convoluci on, correlaci on, transformaci on. Usual-
mente, estas operaciones eran hechas empleando circuitos anal ogicos.
El procesamiento de se nales, tanto anal ogico como digital, se realiza pa-
ra obtener alguna informaci on que sea util al observador. Se considera que
las tareas m as comunes en el procesamiento de se nales son el ltrado y el
an alisis espectral. El ltrado es necesario para extraer o remover algunos
componentes de frecuencia de una se nal; por ejemplo, para remover rui-
do de alta frecuencia. El an alisis espectral, por otro lado, se emplea para
encontrar el contenido de frecuencias de una se nal. Considerando que las
principales tareas del PDS son el ltrado y el an alsisis espectral, en nuestro
estudio de aplicaciones del PDS haremos uso del diagrama de ujo mostra-
do en la gura 1.1. Donde el PDS puede ser en una dimensi on (1-D), o en
PDS
Filtrado
(1-D, 2-D)
Anlisis espectral
(1-D, 2-D)
tiempo-real tiempo-diferido
Figura 1.1: Tareas principales del PDS.
dos dimensiones (2-D), e igualmente, puede ser en tiempo real, o en tiempo
diferido. El procesamiento en 1-D se aplica principalmente en se nales que
se pueden representar por un vector, como las se nales de audio, vibraci on,
u otras, y el PDS en 2-D se aplicar a principalmente a im agenes digitales,
representadas por una matriz. El PDS en tiempo real se reere al procesa-
miento que se realiza a tal velocidad que es capaz de entregar una muestra
de salida antes de que se reciba la siguiente muestra de entrada. En el PDS
en tiempo diferido, se tiene toda la informaci on acerca de la se nal antes de
que se le aplique dicho procesamiento y generalmente la se nal se encuentra
almacenada en memoria.
A partir de lo anterior se puede denir como ltro digital al proceso
de c alculo o algoritmo que permite transformar una se nal digital o secuen-
cia de n umeros (la entrada) en otra secuencia (la salida). Este algoritmo
se puede implantar en forma de un programa de c omputo (software) o en
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4 1.3. EJEMPLOS DE APLICACI

ON
circuitera (hardware) como calculadora especializada. Entonces, el termino
ltro digital designa, ya sea, al programa de c omputo o al circuito. Como se
ver a m as adelante, la implementaci on moderna de ltros digitales requiere
una combinaci on de ambos: programas y circuitos.
1.3. Ejemplos de aplicaci on
Gracias al PDS se pueden tener aplicaciones avanzadas como los siste-
mas auto-adaptables, procesamiento de voz para reconocimiento de palabras,
procesamiento de im agenes para realce, restauraci on, o reconocimiento de
patrones. Algunos ejemplos de aplicaciones en 1-D y 2-D son:
1.3.1. Sistemas auto-adaptables
Los sistemas auto-adaptables (o aut omatas adaptables) son sistemas que
emulan, por supuesto en un sentido limitado, ciertas caratersticas de los
seres vivos y de procesos adaptables biol ogicos. Un aut omata adaptable es
un sistema cuya estructura se ajusta autom aticamente, de tal forma que su
comportamiento o desempe no mejora a traves del contacto con su entorno.
Tales sistemas usualmente tienen algunas de las siguientes propiedades:
1. Se adaptan autom aticamente (auto-optimizables) al enfrentarse a am-
bientes cambiantes o a cambios de los requisitos del sistema.
2. Pueden ser entrenados para realizar tareas especcas de ltrado o de
toma de decisiones.
3. Tienden a ser auto-dise nados.
4. Pueden extrapolar un modelo de comportamiento para hacer frente a
nuevas situaciones.
5. En un sentido limitado, se pueden reparar a s mismos.
Una de las aplicaciones de un ltro adaptable es la cancelaci on de eco
en sistemas telef onicos de larga distancia. Otra de sus aplicaciones es la
cancelaci on activa de ruido y la cancelaci on activa de eco. Debe notarse
que la diferencia entre la cancelaci on de eco, en un sistema telef onico, y la
cancelaci on activa de eco es que el procesamiento, en el primer caso, se hace
sobre la se nal dentro del procesador, mientras que en el segundo caso, la
cancelaci on se realiza en un medio ac ustico como puede ser un cuarto o el
interior de un auto.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
1.3. EJEMPLOS DE APLICACI

ON 5
1.3.2. Cancelaci on activa de ruido
En el caso de que el ruido a remover sea una se nal ac ustica, se emplea
una bocina, la cual en forma adaptable, producir a una se nal con 180 grados
fuera de fase para producir la cancelaci on del ruido. El sistema se compone
de un micr ofono que registra la fuente de ruido que se desea remover, llamada
se nal de referencia; un micr ofono que registra o sensa la se nal resultante de
la cancelaci on, llamada se nal de error, y una bocina que emite una se nal tal
que produzca una cancelaci on, ciertamente no total, del ruido. El arreglo
de los componentes del sistema se muestra en la gura 1.2. Se comprende
que este tipo de aplicaci on tiene limitaciones en cuanto al espacio en el que
se puede lograr la cancelaci on, sin embargo, su aplicaci on pr actica ha sido
posible dentro de recintos controlados, como en el interior de un auto para
cancelar el ruido del motor.
Cancelador
activo de ruido
Fuente de
ruido
Mic. de Ref. Mic. de error
Figura 1.2: Cancelaci on activa de ruido por un sistema adaptable.
1.3.3. Procesamiento de voz
El procesamiento de se nales de voz se encuentra en muchas aplicaciones.
Entre las m as avanzadas est an los sistemas de reconocimiento de palabras,
los sistemas controlados a base de mandos de voz los cuales ya son muy
comunes. Algunas aplicaciones con cierto grado de complejidad son los sis-
temas de captura de dictado los cuales son explotados comercialmente.
En la gura 1.3 se muestra la forma de onda de una reproducci on vocal
de la palabra /seis/. Se puede observar que la duraci on de la se nal es de
un poco m as de medio segundo. En las guras 1.4 y 1.5 se muestran los
segmentos los sonidos /s/ e /i/ de la misma producci on de la palabra /seis/.
Se puede observar la caracterstica cuasi-peri odica del sonido /i/. A este tipo
de sonido se le llama vocalizado.
La caracterstica peri odica de la /i/ se puede ver m as f acilmente por
medio del an alisis espectral, como se muestra en la gura 1.6. En este caso,
se distinguen dos picos en el espectro, correspondientes a aquellas frecuen-
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6 1.3. EJEMPLOS DE APLICACI

ON
Figura 1.3: Onda temporal de la palabra /seis/.
Figura 1.4: Segmento de la onda temporal del sonido /s/.
cias dominantes en el sonido. A estas frecuencias dominantes se les llama
formantes y se presentan en un n umero de dos, tres, y hasta cinco formantes
en cada soido vocalizado.
En la gura 1.7 se puede ver la caracterstica de ruido del sonido
no vocalizado de la /s/ inicial de la palabra /seis/. N otese que el sonido
de la /s/ contiene componentes de alta frecuencia. Otros sonidos con una
caracterstica similar son los sonidos fricativos que se producen en los sonidos
que incluyen la letra /f/.
1.3.4. Procesamiento de imagenes
Otro campo de aplicaciones del PDS es el procesamiento de im agenes
digitales (PDI). Algunos conceptos del procesamiento de se nales denidas
como un vector (procesamiento en 1-D), como el ltrado, se pueden extender
al procesamiento en 2-D. Los objetivos principales del PDI se pueden resumir
en los siguientes tres puntos: realce, restauraci on, y codicaci on.
En el realce se trata de mejorar la caracterstica visual de la imagen.
En la restauraci on se trata de corregir imperfecciones debidas al medio de
transmisi on como ruido aditivo o defectos de la instrumentaci on como baja
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
1.3. EJEMPLOS DE APLICACI

ON 7
Figura 1.5: Segmento de la onda temporal del sonido /i/.
Figura 1.6: Contenido de frecuencias del sonido vocalizado /i/.
resoluci on y otras deformaciones. En la codicaci on se trata de encontrar
una representaci on optima desde el punto de vista del canal de transmisi on
o de la capacidad de almacenamiento, es decir, se trata de reducir el n umero
de bits necesarios para representar la imagen.
Un ejemplo del procesamiento en 2-D se presenta en la gura 1.9 que
es una versi on mejorada de la imagen original mostrada en la gura 1.8.
El realce se realiza por medio de una transformaci on sobre la distribuci on
(estadstica) de los tonos de gris en una escala del 0 (negro) al 255 (blanco).
Cuando la distribuci on se encuentra m as cargada hacia el cero, se tiene una
imagen oscura, mientras que si la distribuci on se encuentra cargada hacia el
255, se trata de una imagen con demasiada iluminaci on. La igualaci on del
histograma permite distribuir en forma m as uniforme los tonos de la imagen
para extender el margen din amico del grado de su iluminaci on.
Tambien es posible aplicar operaciones de ltrado sobre im agenes. A la
imagen que se muestra en la gura 1.10 se le ha aplicado un ltrado pasa-
altas y el resultado se muestra en la gura 1.11. N otese que se ha acentuado
el contraste de la imagen.
Por ultimo, en la gura 1.12 se muestra el resultado de un ltro que
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
8 1.3. EJEMPLOS DE APLICACI

ON
Figura 1.7: Contenido de frecuencias del sonido no-vocalizado /s/.
Figura 1.8: Imagen original.
produce la obtenci on de los bordes o contornos de la imagen. La imagen con
los contornos de los objetos se puede emplear en sistemas de reconocimiento
de formas, en una disciplina conocida como visi on por computadora o visi on
computacional.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
1.3. EJEMPLOS DE APLICACI

ON 9
Figura 1.9: Realce por igualaci on de histograma de la imagen original.
Figura 1.10: Imagen original.
Figura 1.11: Resultado del ltrado pasa-altas.
Figura 1.12: Detecci on de bordes o contornos.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
10 BIBLIOGRAF

IA
Bibliografa
[1] McClellan, J. H., Schafer, R. W., Yoder, M. A., DSP First: a multimedia
approach, Prenntice-Hall, 1998.
[2] Grover, D., Deller, J. R., Digital Signal Processing and the Microcon-
troller Prentice-Hall PTR, 1999.
[3] Cadzow,J. A., Discrete-Time Systems: an introduction with interdisci-
plinary applications, Prentice-Hall 1973.
[4] Marven, C., y Ewers G., A Simple Approach to Digital Signal Processing
Wiley Interscience,1996.
[5] Susana Leticia Burnes Rudecino Desarrollo de un programa de c ompu-
to para procesamiento de im agenes, Tesis profesional, Facultad de In-
geniera, Universidad Aut onoma de Zacatecas, 1995.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2
El procesador de se nales digitales
Debido a que en la realizaci on de tareas de procesamiento de se nales digi-
tales en tiempo real el ltrado y el an alisis espectral implican el conocimiento
y la programaci on de un circuito programable, en este captulo se introducen
dos procesadores de se nales digitales, el DSP56002 y el DSP56303, ambos
de la familia DSP56000 de Freescale Semiconductor, Inc. (antes Motorola)
que son procesadores de 24-bits. En adelante se emplear a DSP56K para re-
ferirnos a cualquiera de los dos procesadores, haciendo notar la diferencia
cuando sea necesario. Se presenta su esquema de memoria, modos de opera-
ci on y m odulos perifericos. En los captulos 7, 8 y 9 se introducen, en forma
breve, dos ambientes de programaci on: el Sistema de Desarrollo (Develop-
ment System) o Depurador (Debugger) de Domain Technologies, Inc. para
el DSP56002EVM y para el DSP56303EVM y los simuladores GUI56000 y
GUI56300.
Con el prop osito de que el alumno pueda tener una introducci on r apida
y experimentar con el ambiente de programaci on de estos procesadores se
presentan, a traves de ejemplos, la instrucciones y las operaciones propias de
estos procesadores. Es importante hacer notar que parte de la descripci on
del primer procesador es aplicable al segundo, por ejemplo, la arquitectura
en ambos es una arquitectura Harvard, y los modos de direccionamiento que
se encuentran en uno de ellos tambien se pueden aplicar al otro.
11
12
2.1. DESARROLLO DE LOS PROCESADORES DE SE

NALES
DIGITALES
2.1. Desarrollo de los procesadores de se nales di-
gitales
Antes de introducir los detalles de la programaci on de alg un procesador
de se nales digitales en particular hay que contestar a la pregunta que es
un procesador de se nales digitales (DSP)? Se ha denido al DSP como:
un circuito integrado programable muy parecido a un microprocesador pero
con una arquitectura especialmente dise nada para realizar operaciones de
procesamiento de se nales.
Las principales diferencias entre un circuito integrado (CI) para el pro-
cesamiento de se nales digitales, que abreviaremos como DSP, y un micro-
procesador son:
su arquitectura Harvard, y
su instrucci on MAC (que signica multiplica y acumula).
Note que al termino Procesamiento Digital de Se nales lo abreviamos como
PDS, mientras que al circuito procesador digital de se nales como DSP.
En la arquitectura Harvard, el procesador emplea dos espacios de memo-
ria. Un espacio de Memoria para programa y un espacio de Memoria para
datos. El DSP56K tiene una arquitectura Harvard modicada con tres es-
pacios de memoria, un espacio de memoria para programa P, y dos espacios
de memoria para datos X y Y. Por otro lado, la instrucci on MAC es en
realidad un circuito multiplicador y sumador.

Este es uno de los elementos
m as importantes de un DSP. En gran medida la instrucci on MAC es la que
hace posible el procesamiento en tiempo real.
Considerense las dos siguientes operaciones:
y[n] =
N1

k=0
x[k]h[n k],
X[m] =
N1

n=0
x[n]W
mn
N
La primera es la suma de convoluci on y la segunda es la Transformada
de Fourier Discreta (TFD). Ambas corresponden a dos de las operaciones
m as comunes del procesamiento digital de se nales, es decir, el ltrado y el
an alisis espectral, respectivamente. Es claro que las operaciones de multipli-
caci on y de suma son usadas de manera extensiva. As pues, se puede ver
la importancia de contar con una instrucci on que realice la multiplicaci on
de dos operandos y la suma en un solo ciclo. Si la instrucci on MAC se ha
incluido como parte del juego de instrucciones del procesador de se nales,
cabe preguntarse es la instrucci on FFT (transformada de Fourier r apida),
el siguiente paso? Creemos, efectivamente, que ese podra ser el siguiente
paso, pero, el tiempo lo dir a.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.1. DESARROLLO DE LOS PROCESADORES DE SE

NALES
DIGITALES 13
2.1.1. Los primeros das del procesamiento digital de se nales
La operaci on de multiplicaci on es muy importante para el procesamien-
to digital de se nales. Sin embargo, hace cincuenta a nos, no se dispona de
circuitos digitales que pudieran realizar esta operaci on a una velocidad su-
cientemente alta como para procesar se nales en tiempo real. Dise nar y
construir un sistema para procesamiento de se nales en tiempo real requera
de mucho esfuerzo y era de alto costo. Se comprendi o que era necesario con-
tar con un multiplicador que fuera r apido y de bajo costo. Gracias a los
avances en la microelectr onica se pudieron dar los pasos hacia el desarro-
llo de circuitos integrados especializados que permitieron el desarrollo de
sistemas de c omputo que da a da ofrecen m as altas prestaciones.
Se puede decir que una computadora de prop osito general realiza ecien-
temente esas operaciones. Sin embargo, a mediados de los a nos 80 una com-
putadora de prop osito general o microcomputadora realizaban estas opera-
ciones en unos cuantos milisegundos. Entonces, analizar unos pocos minutos
de voz poda tomar horas. Una computadora de prop osito general presenta
varias ventajas:
Aritmetica de punto otante de alta precisi on.
Disponibilidad de programaci on en lenguaje de alto nivel, lo que per-
mite f acilmente especicar algoritmos.
En un sentido positivo, la mayor parte de los detalles de la circuitera
est a oculta al programador.
Tomando esto en cuenta, podemos decir que una computadora de prop osi-
to general representa una buena opci on para evaluar nuevos algoritmos. De
hecho, las computadoras personales se usan extensivamente para dise nar y
probar nuevos algoritmos, as como para implantarlos con prop ositos de si-
mulaci on, antes de la implantaci on nal en circuitos dedicados. Una excelen-
te herramienta para probar y desarrollar algoritmos de PDS y aplicaciones
es el ambiente de programaci on Matlab.
Los pasos en el desarrollo de los procesadores de se nales digitales actuales
se pueden listar como sigue:
El CI Multiplicador: Un avance importante, que permiti o a la circui-
tera digital igualar a su contraparte anal ogica, fue la construcci on de
multiplicadores en un solo circuito integrado. Gracias a este CI fue
posible realizar el procesamiento en tiempo real. La compa na TRW
ofreci o dispositivos que realizaban multiplicaci on entera de n umeros
de 8, 12, 16, o 24 bits en una peque na fracci on de un microsegundo.
Un ejemplo es el TRW MPY16AJ. Aunque ya existan los microproce-
sadores, al tiempo que se introdujeron los multiplicadores, estos eran
demasiado lentos, comparados con los multiplicadores de TRW. En
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
14
2.1. DESARROLLO DE LOS PROCESADORES DE SE

NALES
DIGITALES
la gura 2.1 se muestra el diagrama a cuadros de la construcci on del
multiplicador MPY16AJ.
Registro de
entrada X
Arreglo
multiplicador
asncrono
R
e
g
is
t
r
r
o

d
e

e
n
t
r
a
d
a

Y

R
e
g
is
tr
o
P
r
o
d
u
c
to

(
p
a
r
te
m
e
n
o
s

s
ig
n
ific
a
tiv
a
)

Registro Producto
(parte ms
significativa)
Reloj
Habilitar salida
Canal de datos
(16 bits)
Canal de datos
(16 bits)
Reloj
(16 bits)
Figura 2.1: Diagrama a cuadros del multiplicador MPY16AJ.
Dispositivos con dise no bit-slice: En el siguiente paso, los dispositivos
bit-slice fueron usados principalmente en el dise no de minicomputado-
ras de prop osito general que fueron sucientemente exibles para de-
sempe narse como m aquinas de procesamiento de se nales de prop osito
especial. Un ejemplo fue el proyecto MARCH, mostrado esquem atica-
mente en la gura 2.2, cuyas principales caractersticas eran:
Un secuenciador.
Programaci on a nivel de microc odigo.
La inclusi on de un monitor facilitaba, relativamente, la progra-
maci on.
En realidad, la programaci on segua siendo complicada, por ejemplo,
la siguiente lnea muestra c omo sera un mando tpico del monitor:
S3 M1-F2 ME-87 C-2434
cuyo signicado sera el siguiente:
Formato tipo 3 (se reere a los tres mandos siguientes)
M odulo n umero 1, mando con el octeto F2
M odulo n umero E, mando con el octeto 87
Mando del controlador 2434.
Puede verse que la programaci on y la alteraci on del programa era a
nivel de lenguaje de m aquina. En conclusi on, este tipo de sistemas
eran, desde el punto de vista de ingeniera, demandantes, costosos
y consuman mucho tiempo, pues el desarrollo de proyectos como el
MARCH tomaban entre 3 o 4 a nos.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.1. DESARROLLO DE LOS PROCESADORES DE SE

NALES
DIGITALES 15
Puertos
E/S
Registros
(apilados)
Control de memoria Secuenciador
Puertos
E/S
Monitor sobre un 8085
ALU
Multiplicador
MPY16AJ
Interfase para
memoria
Unidades
de memoria
Canal principal
(datos de 16 bits)
Canal de control (40 bits)
Figura 2.2: Diagrama a cuadros de los componentes principales del proyecto
MARCH.
El siguiente paso l ogico fue el incluir en un solo circuito integrado toda
la l ogica del procesador bit-slice. Entonces se inicia la revoluci on con
la introducci on del procesador de se nales:
Intel 2920 alrededor de 1979. Algunas caractersticas eran: Con-
vertidor A/D y D/A incluidos en el CI. Programa residente en
memoria de s olo lectura borrable EPROM para instrucciones y
una PROM para almacenar datos jos. Unidad aritmetica y l ogi-
ca (ALU) de 16 bits. Inclua un circuito similar al MPY16AJ.
NEC 7720.

Este se distingua porque: a) estaba dise nado para
algoritmos especcos y b) aun segua siendo un procesador de
se nales de prop osito general. Inclua instrucciones en memoria de
s olo lectura ROM, datos en ROM y datos en memoria de acceso
aleatorio RAM.
NEC 77P20 era la versi on EPROM del NEC7720.
TMS 32010. En Febrero 1982 fue introducido el TMS320M10, en
San Francisco California por la Texas Instruments.

Este era un
procesador de se nales de prop osito general con un amplio espec-
tro de aplicaciones. Inclua un circuito multiplicador de 16x16
bits, un acumulador/sumador de 32 bits y habilidad para direc-
cionar memoria externa sin penalizar su velocidad. Los ingenieros
de dise no anunciaron: Ser a muy pr actico implementar un sistema
que incluya memoria RAM fuera del CI para almacenamiento de
programa. Esto permitir a cambiar al programa durante el tiem-
po de ejecuci on. El TMS320C10 fue empleado en proyectos de
reconocimiento de voz en 1983.
Un hecho hist orico interesante es que despues de la introducci on del
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
16 2.2. EL DSP56002
microprocesador en los a nos 70, la sntesis de voz fue la primera aplicaci on
en alcanzar los mercados en forma masiva. Se trataba de circuitos integrados
dise nados especcamente para ese prop osito, aunque no eran programables.
El mejor ejemplo es el juguete educativo Speak and Spell desarrollado por la
Texas Instruments. La mayora de estos circuitos empleaban un conjunto de
par ametros para generar un n umero limitado de frases. Los circuitos fueron
considerados como sistemas de grabaci on de estado s olido.
2.2. El DSP56002
En esta secci on se incluye una breve descripci on del procesador de se nales
digitales DSP56002 de Motorola c _. No se intenta substituir al manual de
empleo, si no brindar parte de la informaci on acerca del procesador que se
emplear a en la realizaci on de ltros digitales para procesamiento en tiempo
real. Para informaci on detallada, se recomienda consultar el DSP56002 Di-
gital Signal Processor Users Manual Ref. No. DSP56002UM/AD REV 1. y
el DSP56000UM/AD REV 2.
El DSP56002 ha sido declarado ocialmente descontinuado a partir de
Agosto del 2002. Se considera oportuno el actualizar las opciones de trabajo
en el laboratorio incluyendo una nueva versi on de la familia DSP56K de pro-
cesadores de se nales, el DSP56303. Sin embargo, debido a que seguramente
se pueden encontrar todava, en muchos laboratorios de educaci on, algunos
sistemas de evaluaci on basados en el procesador de se nales DSP56002, y
adem as como existe una gran compatibilidad de c odigo entre ambos proce-
sadores se ha incluido en este captulo primero la descripci on del DSP56002
y despues la del DSP56303. En el Apendice A se ha incluido informaci on
m as detallada acerca del segundo.
2.2.1. Caratersticas del DSP56002
El DSP56002 es un procesador de se nales de 24 bits que ha sido dise nado
para maximizar su desempe no en aplicaciones de PDS con manejo intensivo
de datos. Se puede expandir con perifericos sosticados incluidos en el CI y
puertos de entrada y salida (I/O), de prop osito general. La arquitectura, se
dice, es de doble naturaleza ya que cuenta con dos espacios independientes y
expandibles de memoria, dos unidades de generaci on de direcciones (AGU)
y una unidad aritmetica y l ogica (ALU) que contiene dos acumuladores y
dos circuitos de recorrimiento y limitaci on.
En la gura 2.3 se muestra el m odulo de evaluaci on DSP56002EVM, con
el cual se pueden realizar las pr acticas incluidas en la segunda parte de este
texto.
Este procesador cuenta con:
Velocidad de 20 MIPS (millones de instrucciones por segundo) un
ciclo de instrucciones de 50 ns a 40MHz.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.2. EL DSP56002 17
Figura 2.3: M odulo de evaluaci on DSP56002EVM.
Hasta 120 MOPS (millones de operaciones por segundo) a 40 MHz.
Canales de datos de 24 bits con dos acumuladores de 56 bits cada uno.
Ejecuta una transformada compleja r apida de Fourier (FFT) de 1024
puntos en 59,898 ciclos de reloj.
Cuatro canales internos de datos de 24 bits y tres canales internos
de direcciones de 16 bits para acceso simult aneo de la memoria de
programa y dos memorias de datos.
Tres unidades de ejecuci on en paralelo incluidas, AGU unidad de ge-
neraci on autom atica de direcciones, PC contador de programa, y la
ALU unidad aritmetica y l ogica.
Una unidad en paralelo multiplicadora/acumuladora de 24 por 24 bits
de un solo ciclo.
Juego de instrucciones altamente ejecutables en paralelo con modos
de direccionamiento para aplicaciones en PDS.
Instrucciones de ejecuci on en ciclos anidados sin carga extra para el
programador.
Memoria RAM para programa de 512 por 24.
Dos memorias RAM para datos de 256 por 24.
Dos tablas de datos en ROM de 256 por 24 (tablas seno y coseno, y
tablas de ley-A, y ley ).
Tres puertos multifuncionales PTA, PTB, y PTC.
Direccionamiento de memoria externa con un canal de direcciones de
16 bits y canal de datos de 24 bits.
24 terminales I/O de prop osito general.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
18 2.2. EL DSP56002
Un contador de eventos/temporizador de 24 bits.
Canales de datos: 4 bidireccionales de 24 bits XDB, YDB, PDB y
GDB.
Tres canales de direcciones: XAB, YAB, PAB.
Interfase con soporte de acceso directo a memoria para comunicaci on
entre procesadores Byte-wide Host Interface (HI).
Interfase (de comunicaci on) serie sncrona (SSI) para comunicaci on
con CODECS y dispositivos de comunicaci on serie sncronos.
Interfase de comunicaci on serie (SCI) para comunicaci on asncrona
full-duplex.
En la ALU se tiene:
4 registros de entrada de datos de 24 bits (x1,x0, y1,y0)
1 MAC (multiplicador fraccional paralelo complemento de dos de 24
por 24 bits)
2 registros acumuladores de 56 bits, A y B (48 bits + 8 bits de exten-
si on)
1 registro acumulador con recorrimiento
2 circuitos de recorrimiento/limitaci on para el canal de datos
Los registros de extensi on autom atica de 8 bits ofrecen protecci on contra
desborde. La extensi on autom atica de signo se da cuando se escribe en el
acumulador de 56 bits, A o B, con un operando de 48 o 24 bits. La limitaci on
ocurre autom aticamente cuando se leen los operandos de 56 bits de A o
B (no en forma individual a2, a1, a0, b2, b1, b0). En la tabla 2.1 se
agrupan las terminales de acuerdo a su funci on y en la gura 2.4 se muestra
el diagrama de terminales del procesador de se nales DSP56002, con un total
de 132 terminales.
2.2.2. Modos de direccionamiento
El DSP56002/DSP56303 cuenta con modos de direccionamiento que per-
miten realizar operaciones propias para el PDS. Para esto cuenta con los
siguientes registros de 16 bits:
Registros de direcciones R0 a R3, y R4 a R7.
Registro de compensaci on (oset) N0 a N3, y N4 a N7.
Registros modicadores M0 a M3, y M4 a M7.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.2. EL DSP56002 19
Tabla 2.1: Grupos de terminales de acuerdo a su funci on.
Grupo funcional N umero de terminales
Canal de datos, puerto A 24
Direcciones, puerto A 19
Canal de control, puerto A 7
Host interface, puerto B 15
SCI, puerto C 3
SSI, puerto C 6
Interrupciones y control del modo de operaci on 4
PLL y reloj 7
OnCE 4
Alimentaci on Vcc 16
Tierra 24
Temporizador 1
Reservados 2
Total (para encapsulado PGA) 132
Rn, Mn, y Nn son registros que se emplean en trinomios. Solamente se
puede usar N2 y M2 para modicar el contenido de R2. Los registros de
direcciones R0 a R3 y R4 a R7 son registros de 16 bits que pueden contener
direcciones o datos de prop osito general. Estos registros se emplean para
calcular la direcci on efectiva de un operando. Cuando soportan movimientos
en paralelo de datos de las memorias X y Y, los registros de direcciones deben
considerarse como grupos separados, R0 a R3, y R4 a R7. El contenido de un
registro Rn puede apuntar directamente, o con un desplazamiento, a una
localidad de memoria. Adem as, el contenido puede modicarse previamente
o despues de ejecutar la instrcci on, de acuerdo al modo de direccionamiento
seleccionado.
Los registros de compensaci on Nn pueden contener valores de compensa-
ci on para incrementar o decrementar el contenido de los registros de direc-
ciones, o la direcci on apuntada por Rn, o pueden contener valores de 16 bits
de prop osito general.
Los registros modicadores Mn denen el tipo de aritmetica que se utili-
zar a para el c alculo en los modos de direccionamiento, o pueden usarse para
almacenamiento de prop osito general.
En la tabla 2.2 se resumen los modos de direccionamiento cuando se em-
plean los registros Rn y Nn. Los registro modicadores son muy importantes
y, aunque no siempre aparecen en las instrucciones de movimiento de da-
tos, siempre deber an pre-cargarse o inicializarse con alg un valor, pues estos
registros determinan el modo de direccionamiento. Se distinguen tres impor-
tantes modos del empleo de los registros de direcciones Rn bajo la acci on de
los registros modicadores Mn.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
20 2.2. EL DSP56002

INTRODUCTION

MOTOROLA DSP56002 PIN DESCRIPTIONS 2 - 3
2.1 INTRODUCTION

This section introduces pins associated with the DSP56002. It divides the pins into their
functional groups and explains the role each pin plays in the operation of the chip. It acts
as a reference for following chapters which explain the chips peripherals in detail.

2.2 SIGNAL DESCRIPTIONS

The DSP56002 is available in a 132-pin grid array package or surface mount (Plastic Quad
Flat Pack, or PQFP). The input and output signals are organized into the functional groups
indicated in Section Figure 2-1. The signals are discussed in the paragraphs that follow.

2.2.1 Port A Address and Data Bus

The Port A address and data bus signals control the access to external memory. They are
three-stated during reset unless noted otherwise, and may require pull-up resistors to min-
imize power consumption and to prevent erroneous operation.

Note:

All unused inputs should have pull-up resistors for two reasons: 1) floating inputs
draw excessive power, and 2) a floating input can cause erroneous operation. For
Functional Group
Number
of Pins
Port A Data Bus 24
Port A Address 19
Port A Bus Control 7
Port B Host Interface 15
Port C Synchronous Comm. Interface 3
Port C Synchronous Serial Interface 6
Interrupt and Mode Control 4
PLL and Clock 7
On-chip Emulation (OnCE) 4
Power (VCC) 16
Ground (GND) 24
Timer 1
Reserved 2
Total (for the PGA package) 132
A0-A15
D0-D23
PS
DS
RD
WR
X/Y
BR
BG
DGND(6)
DVCC(3)
AGND(5)
AVCC(3)
CGND
CVCC
WT
BS
QGND(4)
QVCC(4)
EXTAL
XTAL
RESET
MODA/IRQA
MODB/IRQB
MODC/NMI
H0-H7
HA0-HA2
HR/W
HEN
HREQ
HACK
HGND(4)
HVCC(2)
RXD
TXD
SCLK
SVCC
SGND(2)
SC0-SC2
SCK
SRD
STD
DSCK/OS1
DSI/OS0
DSO
DR
OnCE
Port C
Port C
Port B
Port A
Data
Port A
Address
Port A
Control
Interrupt/
Mode
Control
DSP56002
132 pins
HOST
SCI
SSI
PVCC
PGND
PCAP
CKOUT
PLL
PLOCK
RESERVED (2)
PINIT
BN
CKP
CLVCC
CLGND
Figure 2-1 DSP56002 Signals
TIO Timer
Figura 2.4: Diagrama de terminales del DSP56002.
Al primero lo llamamos direccionamiento lineal o modicaci on lineal (li-
near modier). Cuando deseamos direccionamiento lineal, se carga al registro
Mn con el valor $FFFF, o tambien -1, entonces se realiza la modicaci on em-
pleando aritmetica normal de 16 bits (m odulo 65,536). Es decir, cuando se
incrementa el contenido de alg un registro de direcciones Rn, este incremento
puede crecer en forma lineal hasta el valor 65,536. Tambien se puede usar
un incremento con compensaci on por el valor de Nn.
Al segundo lo llamamos direccionamiento m odulo M, o direccionamiento
circular. El registro modicador Mn se carga con el valor Mn = M-1 y se rea-
liza la modicaci on m odulo M, donde M puede tomar cualquier valor desde
2 hasta 32768. La aritmetica m odulo M hace que el registro de direccio-
nes tenga un valor que permanece dentro de un intervalo de direcciones de
tama no M, deniendo lmites inferior y superior al direccionar a memoria.
El lmite inferior debe tener ceros en los k bits menos signicativos, donde
2
k
M y por lo tanto debe se un m ultiplo de 2
k
.
Al tercer modo le llamamos direccionamiento con acarreo inverso (re-
verse carry modier). En este caso, se carga al registro Mn con $0000. La
modicaci on, o cambio de la direcci on, se realiza en el circuito (por hardwa-
re) propagando el bit de acarreo en la direcci on inversa. Este modo es muy
util en los algoritmos de la FFT. Para que funcione bien, para una FFT de
2
k
puntos, se debe seguir el procedimiento siguiente:
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.2. EL DSP56002 21
Tabla 2.2: Modos de direccionamiento.
Modo de direccionamiento Modicador C odigo
Direccionamiento indirecto
Sin modicar S (Rn)
Post-incremento por 1 S (Rn)+
Post-decremento por 1 S (Rn)-
Post-incremento con compensaci on por Nn S (Rn)+Nn
Post-decremento con compensaci on por Nn S (Rn)-Nn
Pre-decremento por 1 S -(Rn)
Indexado con compensaci on por Nn S (Rn+Nn)
(Rn y Nn no cambian)
1. Mn = 0.
2. Nn = 2
k1
.
3. Cargar Rn con un valor que este entre los lmites superior e inferior. El
lmite inferior es Lx2
k
, donde L es un n umero entero cualquiera. Este
lmite entregar a un n umero binario de 16 bits x x. . .x x 0 0. . .x x,
donde x x. . .x x = L y 0 0. . .0 0 es igual a k ceros. El lmite superior
es Lx(2
k
) + (2
k
1). Esto dar a un n umero binario x x. . .x x 1 1. . .1
1, donde x x. . .x x + L, y 1 1. . .1 1 = k unos.
4. Usar el metodo de direccionamiento (Rn)+Nn.
En resumen,
El direccionamiento con acarreo inverso es util para FFTs de 2
k
puntos.
El direccionamiento m odulo M es util para crear pilas circulares como
colas (FIFOs rst in rst out), lneas de retardo y pilas de muestras
de hasta 32,768 palabras largas (long words).
El direccionamiento lineal es util para direccionamiento de prop osito
general.
Para m as detalles, se recomienda consultar el manual de usuario
DSP56000/DSP56001 Digital Signal Processor users manual DSP56000UM/AD.
2.2.3. M odulos de memoria y modos de operaci on
El procesador de se nales DSP56002/DSP56303 ha sido dise nado con una
arquitectura Harvard modicada, es decir, tiene tres espacios de memoria:
un espacio de memoria para programa P, y dos espacios de memoria para
datos X y Y. Es posible tener acceso a estos tres espacios de memoria inde-
pendientes en forma simult anea, gracias al paralelismo que presenta dicha
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
22 2.2. EL DSP56002
arquitectura. Los espacios de memoria son congurados por los bits de con-
trol en el Registro de Modo de Operaci on (OMR). Los bits de control de
modo de operaci on, en el OMR, controlan el mapa de memoria de programa
y seleccionan las direcciones de los vectores de interrupci on. Un bit adicional
(DE) controla los mapas de memoria X y Y y habilita o inhibe los datos
contenidos en ROM.
2.2.4. La memoria de programa P
El DSP56002 tiene 512 palabras (o direcciones) de memoria RAM para
programa, y 64 palabras de memoria ROM programada en f abrica para
arranque (bootstrap).
La memoria ROM de arranque es programada para realizar la operaci on
de arranque desde el puerto de memoria expandida (puerto A), desde la
interfase de Host (HI), o desde el puerto SCI. Esto ofrece un metodo con-
veniente y de bajo costo para cargar la memoria de programa RAM con un
programa dado por el usuario al salir del estado de re-inicio (reset) o de
encendido (power-on). La actividad de la ROM de arranque es controlada
por los bits MA, MB, y MC en el OMR.
Los vectores de interrupci on est an localizados en las 128 direcciones m as
bajas de la memoria P ($0000 - $00FF). La memoria P se puede expandir
hasta 64k fuera del CI.
2.2.5. La memoria de datos X
Esta memoria cuenta con varias caractersticas importantes ya que in-
cluye 256 localidades de 24 bits de memoria RAM interna (incluida en el CI)
ocupando las direcciones bajas de memoria (0-255). Los datos en memoria
interna ROM ocupan las direcciones 256-511 y son controlados por el bit
DE (data enable) en el OMR. En esta memoria X, se encuentran adem as
los registros perifericos incluidos (on-chip peripheral registers) ocupando las
direcciones altas de la memoria de datos X ($FFC0 - $FFFF). La memoria
X se puede expandir a 64k en memoria externa (fuera del CI).
2.2.6. La memoria de datos Y
La memoria RAM interna es una memoria est atica de 24 bits de ancho
que ocupa las direcciones m as bajas en el espacio de memoria Y (0-255).
Los datos en memoria interna ROM ocupan las direcciones 256-511 y son
controlados por los bits DE y YD en el OMR. La memoria Y se puede
expandir a 64k en memoria externa.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.2. EL DSP56002 23
2.2.7. El registro de modo de operaci on OMR
El OMR es un registro de 24 bits que est a localizado en la Unidad de
Control de Programa, donde s olo est an denidos seis bits que controlan el
modo de operaci on del procesador. Los bits del OMR son afectados al re-
iniciar, y por las instrucciones ANDI, ORI, MOVEC, BSET, BCLR, y BCHG. El
formato del OMR se muestra a continuaci on.
23 8 7 6 5 4 3 2 1 0
* * SD * MC YD DE MB MA
donde,
MB,MA lneas A y B de modo de operaci on
DE bit de habilitado de datos en ROM (Data ROM Enable)
YD inhabilitado de la memoria interna Y
MC lnea C de modo de operaci on
reservado
SD detiene retardo (Stop delay)
Las tablas 2.3 y 2.4 muestran, en resumen, el funcionamiento de los bits
contenidos en el OMR.
Tabla 2.3: Bits DE y YD del OMR.
DE YD Memoria de Datos
0 0 ROMs internas inhabilitadas y sus direcciones
son parte de la memoria externa
0 1 ROM interna X, RAM y ROM internas de Y
inhabilitadas pasan a memoria externa
1 0 ROMs de datos X y Y habilitadas
1 1 RAM y ROM internas de Y inhabilitadas y son parte
de la memoria externa. ROM interna de X habilitada
El mapa de memoria, es decir, las direcciones de inicio tanto para espacio
de memoria P como para los espacios de memoria X y Y, depende de los
modos de operaci on y de los bits DE y YD del OMR. Como se tienen tres
modos de operaci on v alidos, se tendr an tres mapas de memoria para el
espacio de memoria P. Esto se muestra en la tabla 2.4 y en forma m as clara
en la gura 2.5. Para los espacios de memoria X y Y, como estos dependen
de dos bits DE y YD, se tienen cuatro combinaciones posibles. En las guras
2.6 a 2.9 se muestran estas cuatro posibilidades.
N otese que en cualquier caso, las direcciones $FFC0-$FFFF en el espacio
de memoria de datos X no est an disponibles externamente ya que est an
reservadas para los perifericos incluidos en el CI. La gura 2.10 muestra el
mapa para los vectores de interrupci on as como el mapa para los perifericos
incluidos en el CI.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
24 2.2. EL DSP56002
Tabla 2.4: Resumen de los modos de operaci on.
Modo MC MB MA Descripci on del Modo
0 0 0 0 CI unico, P:RAM habilitada, re-inicio $0000
1 0 0 1 Arranque (bootsatrap) desde EPROM, sale en Mo-
do 0
2 0 1 0 Expandido, P:RAM habilitada, re-inicio $E000
3 0 1 1 Desarrollo P:RAM inhabilitada, re-inicio $0000
4 1 0 0 Reservado para Arranque
5 1 0 1 Arranque desde Host, sale en Modo 0
6 1 1 0 Arranque desde SCI (reloj externo), sale en Modo
0
7 1 1 1 Reservado para Arranque
externa externa
interrupci on
$0
re-inicio
interrupci on
re-inicio
externa
interrupci on
re-inicio
$FFFF $FFFF $FFFF
$E000
$01FF $01FF $01FF
$003F $003F $003F
$0 $0
Modo 0 Modo 2 Modo 3
RAM P interna
re-inicio interno
RAM P interna
re-inicio
externo
RAM P externa
re-inicio
externo
RAM RAM
interna interna
Figura 2.5: Mapa de memoria P.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.2. EL DSP56002 25
ROM X
interna
Perifericos
en el CI
Perifericos
externos
Memoria de
datos X
externa
Memoria de
datos Y
externa
ROM X
interna
+ ley A/Lin
+ley mu/Lin
RAM X
interna
RAM Y
interna
$FFFF
$FFC0
$FFBF
$01FF
.....................
$017F
$00FF
$0
ROMs de datos
habilitadas
ROM Y
interna
onda seno
completa
YD = 0
DE = 1
Figura 2.6: Mapa de memoria XY, DE = 1; YD = 0.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
26 2.2. EL DSP56002
inhibidos
Perifericos
en el CI
Perifericos
externos
Memoria de
datos X
externa
Memoria de
datos Y
externa
RAM X
interna
RAM Y
interna
$FFFF
$FFC0
$00FF
$0
ROMs de datos
YD = 0
DE = 0
Figura 2.7: Mapa de memoria XY, DE = 0; YD = 0.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.2. EL DSP56002 27
ROM X
interna
Perifericos
en el CI
Perifericos
externos
Memoria de
datos X
externa
Memoria de
datos Y
externa
ROM X
interna
+ ley A/Lin
+ley mu/Lin
RAM X
interna
$FFFF
$FFC0
$FFBF
$01FF
.....................
$017F
$00FF
$0
ROMs de datos
habilitadas
YD = 1
DE = 1
Figura 2.8: Mapa de memoria XY, DE = 1; YD = 1.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
28 2.2. EL DSP56002
inhibidos
Perifericos
en el CI
Perifericos
externos
Memoria de
datos X
externa
Memoria de
datos Y
externa
RAM X
interna
$FFFF
$FFC0
$00FF
$0
ROMs de datos
YD = 0
DE = 0
Figura 2.9: Mapa de memoria XY, DE = 0; YD = 1.
Mandos del host
$003E
$0040
$007F
$003C
$003A
$0024
Instr. ilegal
Int. del temporizador
Mandos del host
Ints. del SCI
Ints. del SSI
Ints. externas
Ints. por programa
Ints. trace
Int. por error
de pila
Re-inicio
$0000
Mapa de
interrupciones
$FFFF Prioridad de ints.
Control de canal bus
Interfase SCI
Interfase SSI
Interfase del host
Interfase I/O
paralelo
Temporizador
Reservado
$FFDE
$FFC0
Mapa de perifericos
incluidos en el CI
Figura 2.10: Mapa de interrupciones y perifericos.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.2. EL DSP56002 29
2.2.8. Descripci on de los modos de operaci on
Modo 0 Single chip o Modo CI: En este modo, todas las memorias
internas, la de programa y las de datos, est an habilitadas. Un re-inicio
por el circuito (hardware reset) hace que el DSP brinque a la localidad
$0000 de la memoria de programa interna y realice la ejecuci on. El
mapa de memoria para el modo 0 y el modo 2 son identicos, s olo que
el vector de re-inicio se encuentra en la localidad $0000 en el modo 0
y en $E000 en el modo 2.
Modo 1 Arranque desde EPROM: El modo de arranque permite al
DSP cargar un programa desde una econ omica memoria ROM de 8 bits
en la memoria de programa interna durante un re-inicio por encendido.
Al encender el generador de estados de espera, se agregan 15 estados
de espera a todo el acceso de la memoria externa de modo que se pueda
usar una memoria lenta. El programa de arranque emplea los octetos
en tres localidades consecutivas de memoria de la ROM externa para
construir una sola palabra en la memoria interna.
En el modo de arranque, el CI habilita la ROM de arranque y ejecuta
el programa de arranque. La memoria ROM de arranque contiene un
programa alambrado (rmware) que realiza el cargado inicial de la
RAM de programa del DSP56002. Escrito en lenguaje ensamblador, el
programa inicializa la RAM de programa cargando desde una memoria
EPROM externa de 8 bits que comienza en la localidad P:$C000.
La EPROM tpicamente est a conectada a esa direcci on a traves de
los canales de datos y direcciones. El contenido de la EPROM debe
organizarse como se muestra en la tabla 2.5
Tabla 2.5: Organizaci on del contenido de la memoria EPROM.
Direcci on de Contenido cargado
la memoria a la P:RAM interna
P:$C000 P:$0000 con el octeto bajo
P:$C001 P:$0000 con el octeto medio
P:$C002 P:$0000 con el octeto superior



P:$C5FD P:$01FF con el octeto bajo
P:$C5FE P:$01FF con el octeto medio
P:$C5FF P:$01FF con el octeto superior
Despues de que se carga la memoria interna, el DSP se cambia a modo
0 y comienza la ejecuci on del programa en el CI desde la memoria de
programa en la localidad $0000.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
30 2.2. EL DSP56002
Si el usuario selecciona el modo 1, a traves de un circuito (en las
terminales MODA, MODB, MODC), ocurren las siguientes acciones
una vez que el procesador sale del estado de re-inicio.
1. La l ogica de control hace un mapeo de la ROM de arranque en la
memoria interna del DSP en el espacio de memoria de programa
con inicio en la localidad $0000.
2. La l ogica de control hace que el programa lea desde la ROM de
arranque (s olo los bits 5-0 de direcciones son signicativos) y toda
la escritura va a la RAM de programa (todos los bits de direc-
ciones son signicativos). Esta condici on permite al programa de
arranque cargar el programa del usuario desde $0000-$01FF.
3. Comienza la ejecuci on del programa en la localidad $0000 en la
ROM de arranque. El programa de arranque de la ROM carga la
RAM de programa desde la memoria externa EPROM de 8 bits
comenzando en P:$C000.
4. El programa de arranque de ROM termina la operaci on de arran-
que y comienza la ejecuci on del programa del usuario. El procesa-
dor entra en modo 0 escribiendo en el registro OMR. Esta acci on
es temporalizada para retirar la ROM de arranque del mapa de
memoria de programa y vuelve a habilitar los accesos de lectu-
ra/escritura a la RAM de programa. El cambio al modo 0 es
temporizado para permitir al programa de arranque ejecutar una
sola instrucci on (borrar el registro de estado), luego ejecuta una
instrucci on JMP #<00, y comienza la ejecuci on del programa del
usuario en la localidad $0000.
Modo 2 Normal expandido: Aqu es habilitada la RAM de programa
interna y los vectores de re-inicio por circuito a la localidad $E000.
Los mapas de memoria para el modo 0 y el modo 2 son identicos. La
diferencia para el modo 2 es que, despues del re-inicio, es ejecutada la
instrucci on en la localidad $E000 en lugar de la instrucci on en $0000.
Modo 3 Modo de desarrollo: En este modo, la RAM de programa
interna es inhabilitada y los vectores de re-inicio por circuito est an
en la localidad $0000. Todas las referencias al espacio de memoria de
programa son dirigidas a la memoria de programa externa. El vector
de re-inicio apunta a la localidad $0000.
Modo 4 Reservado: Este modo est a reservado para denici on futura.
Modo 5 Arranque desde Host: La ROM de arranque es habilitada y
ejecutado el programa de arranque.

Este es similar al modo 1 excepto
que el programa de arranque carga la P:RAM interna desde el puerto
Host.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.3. EL DSP56303EVM 31
Modo 6 Arranque desde SCI: Es habilitada la ROM de arranque
y ejecutado el programa de arranque. La RAM de programa interna
y/o externa es cargada desde la interfase serie SCI. Debe especicarse
el n umero de palabras a cargar y la direcci on inicio. El c odigo de
arranque SCI espera recibir tres octetos especicando el n umero de
palabras de programa, tres octetos especicando la direcci on desde la
cual comienza a cargar el programa y tres octetos para cada palabra de
programa a ser cargada. El n umero de palabras, la direcci on de inicio
y las palabras de programa se reciben con el octeto menos signicativo
primero, seguido del octeto medio, y luego el octeto m as signicativo.
Despues de recibir las palabras de programa comienza la ejecuci on en
la direcci on donde se carg o la primera instrucci on. La SCI se programa
para trabajar en modo asncrona, 8 bits de datos, un bit de paro, y
sin paridad. La fuente de la se nal de reloj es externa y la frecuencia
de reloj debe ser 16x la raz on de transmisi on (baud rate). Despues
de que se ha recibido cada octeto, este es retransmitido a traves del
transmisor SCI.
Modo 7 Reservado: Este modo est a reservado para denici on futura.
Si se selecciona, el procesador cambia por omisi on a modo 6.
2.3. El DSP56303EVM
La informaci on sobre el DSP56303EVM, que es un m odulo de evaluaci on
de bajo costo, est a basada en el documento DSP56303EVMP/D Rev. 1.0
10/98. En la gura 2.11 se muestra el m odulo de evaluaci on DSP56303EVM.
El M odulo es una plataforma de bajo costo para el desarrollo de productos
de programaci on y circuitera que puedan soportar aplicaciones inal ambricas
de nueva generaci on, telecomunicaciones y multimedia. El DSP56303EVM
est a dirigido a aplicaciones que requieren de una gran cantidad de memoria
embebida en el CI tal como en aplicaciones de infraestructura inal ambrica.
El usuario puede descargar programas a la memoria RAM del CI o de la
tarjeta, ejecutarlo y depurarlo, y puede conectar circuitera, tal como me-
morias externas y convertidores anal ogico-digital (A/D) o digital-anal ogico
(D/A) para el desarrollo del productos. La precisi on de 24 bits del DSP56303
combinada con los 64K de memoria externa SRAM y el codec de audio
CS4218 de Crystal Semiconductor, con calidad CD se ajusta idealmente al
DSP56303EVM para la implantaci on y demostraci on de muchos algoritmos
de comunicaciones y procesamiento de audio.
2.3.1. Caractersticas principales
El DSP56303 tiene un n ucleo de alto desempe no con las siguientes ca-
ractersticas:
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
32 2.3. EL DSP56303EVM
Figura 2.11: M odulo de evaluaci on DSP56303EVM.
66/80/100 Millones de instrucciones por segundo (MIPS) con un reloj
de 66/80/100 MHz a 3.03.6 V.
C odigo objeto compatible con el n ucleo del DSP56002.
Juego de instrucciones altamente paralelo.
Unidad Aritmetica L ogica de Datos (ALU)
Multiplicador-acumulador (MAC) paralelo completamente entu-
bado (pipelined) de 24 por 24 bits.
Registro de recorrimiento (barrel shifter) paralelo de 56 bits (re-
corrimiento r apido y normalizaci on; generaci on de cadena de bits
y parsing).
Instrucciones ALU condicionales.
Soporte aritmetico de 24 o 16 bits bajo control del programador.
Unidad de control de programa (CPU)
Soporte de c odigo independiente de posici on (PIC).
Modos de direccionamiento optimizados para aplicaciones de PDS
(incluyendo ajustes (osets) inmediatos).
Controlador de instrucciones cache en el CI.
Circuito memoria de Pila (stack) en el CI expandible.
Lazos DO anidados en circuitera.
Regreso autom atico de interrupciones r apido.
Memoria de Acceso Directo (DMA).
Seis canales DMA que soportan acceso interno y externo.
Transferencias en una, dos, y tres dimensiones (incluyendo direc-
cionamiento circular).
Transferencia de interrupciones por n de bloque.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
2.3. EL DSP56303EVM 33
Disparo desde lneas de interrupci on y todos los perifericos.
Lazo de sujeci on de fase (Phase Lock Loop (PLL))
Permite el cambio del factor de divisor (DF) de baja potencia sin
perdida de sincronizaci on.
Salida de reloj con eliminaci on de sesgo (skew).
Soporte para depuraci on por circuitera.
M odulo emulador integrado (On-Chip Emulation (OnCE
TM
)).
Puerto de acceso de prueba (TAP) Joint Action Test Group (JTAG)
Modo de Address Trace que reeja los accesos a la memoria de
Programa RAM interna en el puerto externo.
Memorias integradas en el CI
Tama no programable de la RAM de programa, instrucciones cache,
RAM de datos X, y RAM de datos Y.
ROM de arranque (bootstrap) de 192 por 24 bits.
Expansi on de memoria fuera del CI
Expansi on de memoria de datos a un espacio de 256K con pala-
bras de 24 bits (o hasta hasta dos espacios de memoria de 4M
con palabras de 24 bits usando las se nales de atributo de direcci on
(Address Attribute) AA0-AA3.
Puerto de expansi on de memoria extrena.
L ogica de selecci on de CI para interfase a SRAMs no adheridas.
Controlador de DRAM en el CI para interfase a DRAMs no ad-
heridas.
Perifericos incluidos (On-Chip)
La interfase paralelo del Host tipo DSP56000 de 8 bits que sopor-
ta una variedad de ductos (por ejemplo ISA) y provee conexi on
a un n umero de est andares industriales de microcomputadores,
microprocesadores y DSPs.
Dos Interfases Serie Sncronas Mejoradas (ESSI), cada una con
un receptor y tres transmisores (permiten un home theater de seis
canales).
Interfase de comunicaci on serie (SCI) con generador de velocidad
de transmisi on (baud rate).
M odulo contador triple.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
34 2.3. EL DSP56303EVM
Hasta treinta y cuatro terminales programables de prop osito ge-
neral de entrada/salida (GPIO), dependiendo de cu ales periferi-
cos sean habilitados.
Disipaci on de potencia reducida
Dise no CMOS de muy baja potencia.
Modos de espera Wait y Stop de baja potencia.
L ogica completamente est atica, frecuencia de operaci on hasta 0
Hz (DC).
Circuitera de administraci on de potencia optimizada (dependien-
te de la instrucci on, del periferico y del modo).
RAM est atica con 64K por 24 bits para expansi on de memoria.
Memoria Flash PEROM de 128K por 8 bits para operaci on inde-
pendiente.
Codec de audio de 16 bits con calidad de CD.
Dos canales de conversi on A/D de 16 bits.
Dos canales de conversi on D/A de 16 bits.
Selecci on por porgrama de formatos para datos en 8 y 16 bits,
incluyendo leyes de compresi on y A.
Conectores estero para entrada de audio, salida y audfonos.
Convertidor de mandos (command converter)
Un DSP56002 para programa de conversi on de mandos OnCE/JTAG
de alta velocidad.
Conector JTAG para uso con la tarjeta de conversi on de mandos
del Sistema de Desarrollo de Aplicaciones (ADS).
Puerto serie RS-232.
Conectores
Conector del puerto Host.
Conector de interface Host RS-232.
Conector ESSI0.
Conector ESSI1.
Conector SCI.
Programa de aplicaci on (Software)
Ensamblador cruzado DSP563xx de Motorola.
Programa depurador de Domain Technologies con interfase de
usuario basada en Windows
TM
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 35
Para mayor informaci on consultar la p agina de internet:
http://www.mot.com.SPS/DSP/documentation.
En la pr actica del captulo 7 se introduce el ambiente de programaci on
del DSP56002/DSP56303 en su versi on para Windows c _. Despues se tra-
baja con el simulador GUI56000, el cual permitir a ejecutar instrucciones
del DSP56002/DSP56303 sin tener que contar con la tarjeta de evaluaci on.
Adem as, se ha incluido en el apendice B una descripci on m as detallada del
Simulador para el DSP56303.
Bibliografa
[1] Allen, J. Computer Architecture for Signal Processing, Proceedings
of the IEEE, Vol. 63, No.4, pp. 624-633, Abril, 1975.
[2] Bowen, B. A., Brown, W. R., VLSI Systems Design for Digital Signal
Processing, Vol. 1: Signal Processing andf Signal Processors, Prentice
Hall, 1982.
[3] El-Sharkawy M., Digital Signal Processing Applications with the Moto-
rolas DSP56002 Processor, Prentice Hall PTR, 1996.
[4] Motorola Semiconductor Product Brief, DSP56303EVMP/D Rev.1.0,
10/98. Motorola, Inc. 1998.
[5] DSP56303EVM Users Manual, DSP56303EVMUM/D Rev. 3.4, 12/1999.
Motorola, Inc. 1999.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
36 BIBLIOGRAF

IA
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3
Se nales y sistemas en tiempo discreto
Para llevar a cabo el procesamiento de se nales en un DSP, es necesario
contar con una se nal o secuencia de entrada. Como se dijo en el captulo 1, el
origen de la se nal, hasta cierto punto, no tiene importancia, pues la secuencia
puede provenir de un proceso inherentemente discreto en tiempo, o bien, de
una se nal anal ogica, es decir, denida en tiempo continuo. Sin embargo, es
importante comprender el concepto de discretizaci on en el tiempo de la
se nal, en el caso de que el origen sea una se nal denida en tiempo-continuo.
3.1. Representaci on de se nales en tiempo discreto
Una se nal en tiempo discreto puede representarse como una se nal o se-
cuencia de n umeros x[0], x[1], . . . x[N 1] obtenida a partir del muestreo
de una se nal denida en tiempo continuo x
a
(t). As, una se nal en tiempo
discreto o secuencia, es x[n], donde x[n] es el valor de la se nal en el tiempo
discreto n. Una notaci on com un es tambien x
n
. Por lo general, emplearemos
la notaci on con parentesis cuadrados, ya que ser a m as f acil denotar, de ese
modo, por ejemplo, dos se nales en tiempo discreto x
1
[n] y x
2
[n]. En la gura
3.1 se representa el proceso de muestreo como un circuito de conmutaci on,
el cual toma el valor de la se nal continua x
a
(t) a intervalos uniformes de
tiempo t = nT, donde T es el periodo de muestreo, n es cualquier n ume-
ro entero, incluyendo el cero. Entonces, la se nal en tiempo discreto puede
escribirse como,
x
n
= x[n] = x
a
(t)[
t=nT
= x
a
(nT). (3.1)
Adem as, se tiene que F
s
= 1/T es la frecuencia de muestreo en Hz, mientras
que
s
=
2
T
= 2F
s
, es la frecuencia de muestreo en rad/s.
37
38 3.1. REPRESENTACI

ON DE SE

NALES EN TIEMPO DISCRETO


c
t = nT
x
a
(t) x
n
= x
a
(t)[
t=nT
Figura 3.1: Muestreo de una se nal.
La frecuencia de muestreo debe cumplir con el requisito impuesto por
el teorema de muestreo de Shannon, el cual dice que una se nal en banda
limitada x(t), se puede reconstruir completamente a partir de sus muestras,
siempre y cuando estas se encuentren con un espaciamiento no mayor a
1
2fm
, donde f
m
ser a la frecuencia m as alta contenida en la se nal x(t). En el
caso en que la raz on o rapidez de muestreo sea insuciente, se presentar a el
fen omeno de traslape espectral, tambien conocido como alias o aliasing. Es
pr actica com un incluir antes del proceso de muestro de cualquier se nal, un
ltro anti-traslape que debe tener una frecuencia de corte inferior a F
s
/2.
El ltro anti-traslape puede ser un simple ltro pasa-bajas, el objetivo es
disminuir al mnimo aquellos componentes de frecuencia que pudieran causar
el traslape.
3.1.1. Muestreo y el traslape espectral
A continuaci on se introducen algunos conceptos sobre se nales en tiempo
continuo y se nales en tiempo discreto, para mostrar la conexi on entre ambos
dominios y la importancia de reducir los efectos de traslape antes de aplicar
el proceso de muestreo en la adquisici on de se nales.
Existen, b asicamente, cuatro combinaciones entre los dominios continuo,
discreto, frecuencia, y tiempo.
1. tiempo continuo frecuencia discreta
2. tiempo continuo frecuencia continua
3. tiempo discreto frecuencia continua
4. tiempo discreto frecuencia discreta
M as especcamente, algunas relaciones entre la forma de onda (dominio
del tiempo) y el contenido espectral (dominio de la frecuencia) de la se nal
son:
1. La se nal es peri odica y en tiempo continuo, entonces, su espectro
ser a no peri odico y discreto. Esta relaci on corresponde a la represen-
taci on por una serie de Fourier.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.1. REPRESENTACI

ON DE SE

NALES EN TIEMPO DISCRETO 39


2. La se nal es no peri odica y en tiempo continuo, entonces, su espectro
ser a no peri odico y continuo. Esta relaci on corresponde a la transfor-
mada (o integral) de Fourier.
3. La se nal es no peri odica y discreta en tiempo, entonces, su espectro
ser a peri odico y continuo. Esta relaci on corresponde a la transformada
z, tambien como a la Transformada de Fourier en Tiempo Discreto
(TFTD).
4. La se nal es peri odica y discreta en tiempo, entonces, su espectro ser a pe-
ri odico y discreto. Esta relaci on corresponde a la Transformada de
Fourier Discreta (TFD).
Las dos ultimas formas se obtienen como resultado de un proceso de
muestreo de la se nal, ya sea en el dominio del tiempo o en el dominio de la
frecuencia.
Se puede comprender f acilmente el efecto del muestreo de una se nal
en tiempo continuo usando un muestreo ideal y analizando el resultado en
el dominio de la frecuencia. La operaci on de muestreo puede expresarse
matem aticamente como una multiplicaci on de una se nal en tiempo continuo
(o anal ogica), g(t), por un tren peri odico de pulsos, p(t). La operaci on de
multiplicaci on da:
g(t)p(t) =

n=
g(nT)(t nT). (3.2)
En la gura 3.2 se representa el muestreo de una se nal de 60 Hz. Puede
verse que es posible la correcta reconstrucci on de la se nal original a partir de
las muestras de la se nal en tiempo continuo. Si aplicamos la se nal muestreada
a un ltro pasa-bajas (FPb), se obtiene una se nal que pr acticamente es igual
a la se nal original. Esto se ilustra en la gura 3.3.
0 20 40 60 80 100
0.4
0.3
0.2
0.1
0
0.1
0.2
0.3
Seal muestreada y seal original
Nmero de muestras (en 100 puntos)
A
m
p
l
i
t
u
d
Figura 3.2: Muestreo de una se nal de 60 Hz.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
40 3.1. REPRESENTACI

ON DE SE

NALES EN TIEMPO DISCRETO


0 0.02 0.04 0.06 0.08 0.1
0.2
0.15
0.1
0.05
0
0.05
0.1
0.15
Salida del FPb
Tiempo [s]
A
m
p
l
i
t
u
d
Figura 3.3: Salida del ltro de reconstrucci on.
Cuando se aplica un muestreo deciente, es decir que no cumple con el
teorema de muestreo, la se nal resultante aparece como una se nal de m as
baja frecuencia, como se puede observar en la gura 3.4.
0 50 100 150
0.4
0.3
0.2
0.1
0
0.1
0.2
0.3
Seal submuestreada y seal original
Nmero de muestras
A
m
p
l
i
t
u
d
Figura 3.4: Efecto del sub-muestreo en una se nal de 60 Hz.
Los efectos del muestreo en una se nal se pueden analizar en el dominio
del tiempo o en el dominio de la frecuencia. La conexi on entre el dominio
del tiempo y el dominio de la frecuencia de se nales muestreadas est a dada
por las f ormulas de la Suma de Poisson (FSP), como sigue:
FSP No. 1

G
s
(j) =

k=
G(j( k
s
)) =

n=
Tg(nT)e
jnT
, (3.3)
donde

G
s
(j) es peri odica en , con periodo
s
= 2/T.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.1. REPRESENTACI

ON DE SE

NALES EN TIEMPO DISCRETO 41


FSP No. 2
g
P
(t) =

k=
g(t kP) =

n=
1
P
G(jn
o
)e
jnot
, (3.4)
donde g
P
(t) es peri odica en t, con periodo P y
o
=
2
P
.
FSP No. 3

G
N,k

N1
k=0
= TFDT g
NT
(nT)
N1
n=0
, (3.5)
donde TFD es la Transformada de Fourier Discreta.
Si g() es una se nal anal ogica que est a limitada en banda a B Hz, entonces
G(j) =
_

g(t)e
jt
dt = 0 donde 2B < [[. (3.6)
Haciendo
s
= 2/T > 4B, entonces g(t) se puede recuperar para toda t
a partir de sus muestras en tiempo discreto g(nT)

n=
. Este hecho, que
adem as es muy importante en el procesamiento de se nales, es conocido como
el Teorema de Muestreo.
El efecto del proceso de muestreo tambien se puede explicar a traves
de un procedimiento basado en el dominio de la frecuencia; tomando la
Transformada de Fourier de (3.2) nos dar a la convoluci on en el dominio
de la frecuencia de G(j) y P(j). El resultado es un n umero innito de
repeticiones del espectro original, G
a
(j), desplazado en frecuencia por k
s
,
es decir,

k=
G(j( k
s
)). (3.7)
Debe quedar claro que si
s
no es mayor que 4B o si la se nal no
est a limitada en banda, los espectros se traslapar an, cambiando el espectro
que est a siendo medido sobre una banda de frecuencias dada.
Para reconstruir la se nal original, las muestras de la se nal muestreada
se hacen pasar por un ltro de reconstrucci on (un FPb). Para el caso de la
se nal de 60 Hz con un muestreo deciente, la salida del FPb se representa
en la gura 3.5 y se observa claramente que no es la misma que la se nal
original.
En la pr actica, para asegurarse que g(t) no contiene componentes de fre-
cuencia arriba de B Hz, se tiene que usar un ltro pasa bajas, llamado ltro
anti-traslape (anti-aliasing lter), antes de aplicar el proceso de muestreo.
Idealmente, el ltro anti-traslape debe tener ganancia unitaria en la banda
de paso y cero salida para frecuencias mayores que
s
/2, pero esta opera-
ci on de ltrado ideal no puede realizarse; por lo tanto, el ltro tiene que
aproximarse con una tolerancia aceptable, una respuesta en magnitud en la
banda de rechazo que exceda un nivel de atenuaci on mnimo y una banda
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
42 3.1. REPRESENTACI

ON DE SE

NALES EN TIEMPO DISCRETO


0 0.05 0.1 0.15
0.4
0.3
0.2
0.1
0
0.1
0.2
0.3
Tiempo [s]
A
m
p
l
i
t
u
d
Figura 3.5: Salida del ltro de reconstrucci on de la se nal sub-muestreada.
de transici on aceptable. La banda de paso,
p
; la banda de rechazo,
r
; y
la frecuencia de muestreo,
s
, deben satisfacer la relaci on

p
<
r


s
2
. (3.8)
Debido a que las se nales con componentes de frecuencia mayores que
s
/2
aparecer an como frecuencias m as bajas que
s
/2 por el traslape espectral,
el nivel de atenuaci on del ltro anti-traslape en >
s
/2 est a determinado
por la cantidad de traslape que se pueda tolerar en la banda de paso.
10
1
10
0
10
1
10
2
10
2
10
1
10
0
Respuesta en magnitud del filtro antitraslape
|
H
a
(
j

)
|

p

T
/2
o

T
Figura 3.6: Efecto del traslape en la banda de interes de la se nal.
En la gura 3.6,
o
es traslapada (aliased) a
p
. La lnea s olida representa
el espectro de la se nal original -de hecho, es el espectro permitido por el ltro
anti-traslape-, y la lnea punteada representa la atenuaci on, o perdida en dB,
producida por el ltro anti-traslape sobre el espectro traslapado hacia
p
. Si
la cantidad aceptable del espectro traslapado en
p
es a
p
= 20 log
10
(1/A),
entonces la atenuaci on mnima del ltro en
o
debe ser tambien a
p
(vease
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.1. REPRESENTACI

ON DE SE

NALES EN TIEMPO DISCRETO 43


Jackson, 1992), debe ser especicada la atenuaci on en
o
y no la atenuaci on
en
s/2
. En el dise no del ltro, es necesario encontrar el orden, n, del ltro,
el cual depende de par ametros como atenuaci on mnima en
r
y el ancho
de la banda de transici on
r

p
. En la pr actica, cuando la aplicaci on
requiere de mnimo traslape espectral, una buena selecci on es una frecuencia
de muestreo que sea tres o cuatro veces mayor que la banda de paso del
ltro anti-traslape,
p
. En aplicaciones con requerimientos no tan crticos,
una frecuencia de muestreo m as que adecuada es de 2
p
(vease K. Mitra,
1998).
El an alisis anterior se nala que la amplitud total del espectro podra dis-
torsionarse severamente si no se emplean ltros anti-traslape apropiados
antes del proceso de muestreo; e igualmente, que las altas frecuencias apa-
recer an acentuadas debido a los efectos del traslape espectral.
3.1.2. Muestreo de imagenes
El teorema de muestreo de Shannon tambien se aplica a im agenes en
movimiento. Por ejemplo, en una pelcula donde se toma un cierto n umero
de cuadros o im agenes por segundo es bien conocido el efecto que se produce
al lmar una rueda que gira. Seguramente se ha observado c omo en la rueda
que comienza a girar en un sentido, conforme aumenta la velocidad angular,
parece que se invierte el sentido de giro; esto es tpico en las pelculas del
oeste (las famosas Western).
Para mostrar el principio de muestreo en una imagen, considerese un
vector que gira a una velocidad angular , como se ilustra en la gura 3.7.
'ez
mz
c

Figura 3.7: Vector que gira a una velocidad angular .


La posici on del vector a un tiempo t est a dada por la siguiente expresi on:
z = re
j t
, (3.9)
donde r es la longitud del vector o el radio del crculo que describe al girar,
y es la velocidad de giro o velocidad angular. La operaci on de muestreo
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
44 3.1. REPRESENTACI

ON DE SE

NALES EN TIEMPO DISCRETO


sobre una x(t) = e
j t
, suponiendo r = 1, nos entrega una se nal en tiempo
discreto dada por
x[n] = e
j nT
= (e
jT
)
n
. (3.10)
Se observa que es una se nal peri odica con periodo 2 ya que
e
j(T+k2)
= e
jT
(e
j2
)
k
= e
jT
. (3.11)
En la gura 3.8 se muestran tres posiciones de una rueda que gira en
contra de las manecillas del reloj (CMR) para tres instantes de tiempo seg un
se ilustra en la gr aca.
t = 0 t = T t = 2T
Figura 3.8: Giro CMR en tres tiempos.
Sup ongase que se tiene una c amara que toma un cuadro cada T segundos,
es decir, con una frecuencia de muestreo F
s
= 1/T. Se sabe que = 2 f,
por lo que f = /(2), donde f es el n umero de revoluciones por segundo.
Si T es la distancia de giro de la rueda en T segundos, es decir, es la
distancia angular entre observaciones, se tiene que al cumplirse la condici on
0 < T < parecer a que la rueda tiene un giro CMR con una velocidad
angular , es decir, la observaci on es correcta.
Si por el contrario se cumple la condici on < T < 2, como se ilustra
en la gura 3.9, entonces la rueda parece tener un giro en el sentido de las
manecillas del reloj (SMR) con una velocidad angular ((2)/T) lo cual
es incorrecto.
t = 0 t = T t = 2T
Figura 3.9: Giro SMR en tres tiempos.
En general, para una rueda con n puntos (que pueden ser las tuercas,
rayos, ejes) que gira a una velocidad angular el tiempo entre observaciones
deber a ser
T <

. (3.12)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.2. ALGUNAS SECUENCIAS IMPORTANTES 45
3.2. Algunas secuencias importantes
Algunas secuencias que son muy utiles en la caracterizaci on de SLIT
discretos son: la secuencia muestra unitaria y la secuencia escal on.
3.2.1. La muestra unitaria y el escal on unitario
La secuencia muestra unitaria, que se observa en la gura 3.10, es la
secuencia m as simple y una de las m as utiles.

Esta es tambien llamada
impulso en tiempo discreto o impulso unitario. La secuencia muestra unitaria
est a denida por
[n] =
_
1, si n = 0
0, si n ,= 0.
(3.13)
La secuencia [n], al igual que (t), sirve para caracterizar completamente,
10 5 0 5 10
0
0.2
0.4
0.6
0.8
1
1.2

n
secuencia muestra unitaria
Nmero de muestras
Figura 3.10: La secuencia muestra unitaria o impulso en tiempo discreto.
en el dominio del tiempo, a los sistemas lineales en tiempo discreto, y en
tiempo continuo, respectivamente. Adem as, como cualquier se nal arbitraria
se puede representar como una combinaci on lineal de funciones impulso o
secuencias unitarias; entonces conociendo la respuesta al impulso, podemos
calcular la respuesta a cualquier secuencia arbitraria de entrada.
La secuencia escal on unitario en tiempo discreto, que se muestra en la
gura 3.11 est a denida por
u[n] =
_
1, si n 0
0, si n < 0.
(3.14)
Estas dos secuencias, [n] y u[n] est an relacionadas por
u[n] =

k=
[k], (3.15)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
46 3.2. ALGUNAS SECUENCIAS IMPORTANTES
10 5 0 5 10 15 20
0
0.2
0.4
0.6
0.8
1
1.2
u
n
secuencia escaln unitario
Nmero de muestras
Figura 3.11: La secuencia escal on unitario en tiempo discreto.
[n] = u[n] u[n 1]. (3.16)
3.2.2. La secuencia exponencial
La secuencia exponencial est a dada por
x[n] = A
n
, (3.17)
donde A y pueden ser n umeros reales o complejos.
Si se trata de una secuencia compleja, es de esperar que esta tenga una
parte real y una parte imaginaria. Esto se puede demostrar f acilmente em-
pleando la notaci on polar, si escribimos = e
j
= e
+j
y A = [A[e
j
,
entonces podemos expresar a x[n] como
x[n] = Ae
(+j)n
= [A[e
n
e
j(n+)
,
(3.18)
y empleando las relaciones de Euler,
x[n] = [A[e
n
(cos(n +) +jsen(n +)), (3.19)
donde , y son n umeros reales. Finalmente, distinguimos las dos com-
ponentes como x[n] = ex[n] +1mx[n], donde
ex[n] = [A[e
n
cos(n +)
1mx[n] = [A[e
n
sen(n +). (3.20)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.2. ALGUNAS SECUENCIAS IMPORTANTES 47
20 0 20
2
1.5
1
0.5
0
0.5
1
1.5
2
2.5
3
Secuencia exponencial compleja
Parte real
20 0 20
2.5
2
1.5
1
0.5
0
0.5
1
1.5
2
2.5
> 0, amplitude creciente
Parte imaginaria
Figura 3.12: La secuencia exponencial compleja creciente en tiempo discreto.
20 0 20
6
4
2
0
2
4
6
Secuencia exponencial compleja
Parte real
20 0 20
8
6
4
2
0
2
4
< 0, amplitude decreciente
Parte imaginaria
Figura 3.13: La secuencia exponencial compleja decreciente en tiempo discreto.
El termino [A[e

representa la envolvente de la componente compleja u os-


cilante. En la gura 3.12 aparece una secuencia exponencial compleja con
> 0 mientras que en la gura 3.13 se muestra el caso en que < 0.
Si tanto A como son reales, entonces tenemos una secuencia exponen-
cial real, la cual, como puede verse en la gura 3.14, no presenta oscilaci on.
3.2.3. La secuencia sinusoidal
Si la secuencia exponencial compleja mantiene una magnitud constante,
es decir, con = 0, entonces se convierte en una secuencia sinusoidal. Esta
secuencia es peri odica con periodo N en tanto N sea un entero m ultiplo
de 2, o sea, N = 2k, donde N es un entero positivo. El valor m as
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
48 3.3. ALGUNAS PROPIEDADES DE LAS SECUENCIAS
20 15 10 5 0 5 10 15
0
1
2
3
4
5
6
7
8
9
x
n
=
n
, || < 1
Nmero de muestras
Figura 3.14: La secuencia exponencial real decreciente en tiempo discreto.
peque no posible que satisfaga esta condici on es el periodo fundamental de
la secuencia.
3.3. Algunas propiedades de las secuencias
El conocimiento de las propiedades de las secuencias es util en el an ali-
sis de estas, permitiendonos simplicar muchos procesos. A continuaci on se
presentan algunas propiedades utiles de las secuencias:
1. x[n] es real, es decir, una se nal real o una secuencia real si x[n] =
x

[n] para toda n donde n es un entero.


2. a) x[n] es de longitud nita, o de duraci on nita, si
x[n] =
_
alg un valor, si N
1
n N
2
sin valor, el resto
(3.21)
b) de lo contrario x[n] es de longitud innita.
3. a) x[n] es conjugada simetrica o Hermtica si x[n] = x

[n].
Nota: Si x[n] es real, entonces Hermtica es lo mismo que par.
b) x[n] es conjugada anti-simetrica o Hermtica-sesgada (skew-
Hermitian) si x[n] = x

[n].
Nota:
x
cs
[n] =
x[n] +x

[n]
2
, (3.22)
donde el subndice cs indica conjugada simetrica.
x
cs
[n] =
x[n] +x

[n]
2
(3.23)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.3. ALGUNAS PROPIEDADES DE LAS SECUENCIAS 49
x
ca
[n] =
x[n] x

[n]
2
, (3.24)
donde el subndice ca indica conjugada anti-simetrica.
x
ca
[n] =
x[n] +x

[n]
2
(3.25)
x[n] = x
cs
[n] +x
ca
[n], (3.26)
es decir, una secuencia x[n] est a compuesta o puede ser expresada por
dos componentes: la conjugada simetrica y la conjugada anti-simetrica.
4. a) x[n] es peri odica conjugada simetrica si
x
pcs
[n] =
1
2
(x[< n >
N
] +x

[< n >
N
]), (3.27)
donde < n >
N
= n indica m odulo N es decir, 0 [< n >
N
] < N,
mientras que
b) x[n] es peri odica conjugada anti-simetrica si
x
pca
[n] =
1
2
(x[< n >
N
] x

[< n >
N
]), (3.28)
adem as,
x
pcs
[n +N] = x
pcs
[n] (3.29)
x
pca
[n +N] = x
pca
[n]. (3.30)
5. x[n] es una se nal acotada si existe una constante nita B
x
tal que
[x[n][ B
x
para toda n.
Ejemplo 3.3.1 Sea la secuencia exponencial x[n] =
n
, si [[ < 1,
entonces la secuencia ser a no acotada, ya que se extiende hasta el
innito cuando n se hace m as negativa. Esto puede apreciarse en la
gura 3.15. Si [[ = 1 entonces x[n] es acotada con cota = 1.
6. x[n] es absolutamente sumable o, mejor dicho, sumable en valor
absoluto si

n=
[x[n][ < . (3.31)
7. La energa en una se nal en tiempo discreto puede obtenerse directa-
mente como una extensi on de la denici on de energa de una se nal x(t)
para el caso de tiempo continuo, es decir, recordando que
c
x
=
_

[x(t)[
2
dt (3.32)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
50
3.4. ALGUNAS PROPIEDADES DE LOS SISTEMAS EN TIEMPO
DISCRETO
20 15 10 5 0 5 10 15
0
1
2
3
4
5
6
7
8
9
x
n
=
n
, || < 1
Nmero de muestras
Figura 3.15: Secuencia exponencial real no acotada.
es la energa normalizada contenida en la se nal anal ogica x(t), entonces
denimos la energa para la se nal en tiempo discreto por
c
x
=

n=
[x[n][
2
. (3.33)
x[n] es una se nal de energa (nita) si c
x
< , entonces se dice que
x[n] pertenece a l
2
.
8. La potencia promedio, igualmente que en el caso de la energa, est a da-
da por
P
prom
= lm
k
1
2k + 1

n=
[x[n][
2
. (3.34)
x[n] es una se nal de potencia si se cumple que 0 < P
prom
< .
3.4. Algunas propiedades de los sistemas en tiem-
po discreto
En la representaci on de sistemas en tiempo discreto, se emplear a el
smbolo L para denotar al sistema en tiempo discreto o regla de trans-
formaci on. L
n
designar a al sistema o regla de transformaci on evaluada en
el instante discreto n. Algunas propiedades importantes de los sistemas en
tiempo discreto son
1. Linealidad: Un sistema en tiempo discreto L lineal cumple con el
teorema de superposici on, es decir si
y[n] = L
n
x
1
[n] +x
2
[n] = y
1
[n] +y
2
[n]. (3.35)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.4. ALGUNAS PROPIEDADES DE LOS SISTEMAS EN TIEMPO
DISCRETO 51
Lo anterior indica que si el sistema es lineal, la respuesta del sistema
y[n] a la suma de las entradas x
1
[n] y x
2
[n] es igual a la suma de
las respuestas parciales y
1
[n] y y
2
[n]. Note que el sistema lineal (SL)
satisface:
L
n
0 = 0,
L
n
ax[n]
n
= aL
n
x[n]
n
.
2. Invariancia en el tiempo (o invariancia al desplazamiento): Un
sistema L es lineal invariante en el tiempo (SLIT) si
L
n
x[n k] = L
nk
x[n], (3.36)
es decir, la respuesta a una entrada desplazada es igual a la respuesta
desplazada a una entrada sin desplazar, o en palabras m as simples, a
un retardo en la entrada corresponde el mismo retardo en la salida.
3. Causalidad: Un sistema L es causal si y[n
0
] emplea s olo x[n]
n
0
n=
,
o sea, si la salida depende s olo de las muestras anteriores y de la
muestra presente al tiempo n
0
.
4. Realidad: Un sistema es real si la salida es una se nal real para toda
entrada real.
5. Respuesta a la muestra unitaria y convoluci on discreta: La
respuesta de un sistema en tiempo discreto L a la muestra unitaria,
tambien llamado impulso unitario en tiempo discreto, se dene por
h[n] = L
n
[n]
n
. Ahora bien, una secuencia arbitraria x[n] puede
ser expresada como una suma de muestras unitarias ponderadas por
el valor en amplitud de la secuencia x en el instante de muestreo n
como:
x[n] =

k=
x
k
[n k]
n
, (3.37)
de modo que la respuesta y[n] del sistema a una entrada arbitraria
x[n] se puede escribir de la siguiente manera:
y[n] = L
n

k=
x[k][n k]
n
=

k=
L
n
x[k][n k]
n
=

k=
x[k]L
n
[n k]
n
(3.38)
de la propiedad de invariancia al desplazamiento
L
n
[n k]
n
= L
nk
[n]
n
= h[n k],
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
52
3.4. ALGUNAS PROPIEDADES DE LOS SISTEMAS EN TIEMPO
DISCRETO
al nal tenemos que
y[n] =

k=
h[n k]x[k]
=

k=
h[k]x[n k]. (3.39)
A (3.39) se le llama la suma de convoluci on o convoluci on discreta.

Esta nos permite determinar la salida y[n] de un sistema a una entra-


da arbitraria x[n], con base en el conocimiento de su respuesta a la
muestra unitaria h[n], directamente en el dominio del tiempo.
A partir del conocimiento de h[n] se pueden determinar algunas
propiedades b asicas, por ejemplo, un SLIT es causal si y s olo si (ssi)
h[n] es una se nal causal. Para demostrarlo, tomemos el resultado
dado en (3.39)
y[n] =
1

k=
h[n]x[n k] +

k=0
h[k]x[n k],
la primera suma emplea
h[1]x[n + 1] +h[2]x[n + 2] +. . . = x[l]

l=n+1
,
mientras que la segunda emplea
h[0]x[n 1] +h[1]x[n 2] +. . . = x[l]
n
l=
,
donde n representa el valor presente. Si h
k
= 0 para toda k < 0,
entonces
y[n] =

k=
h[k]x[n k] sistema causal
es decir, h[n] se nal causal sistema causal.
De la discusi on anterior podemos introducir una par de deniciones
sobre las se nales causales:
Una se nal es anti-causal si x[n] : x[n] = 0 para toda n > 0.
x[n] es casi causal si x[nl]
n
es una se nal causal para alg un
valor nito de l.
x[n] es casi anti-causal si x[n l]
n
es una se nal anti-causal
para alg un valor nito de l.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.5. ALGUNAS OPERACIONES B

ASICAS 53
6. Estabilidad al acotamiento o estabilidad-EASA: Un SLIT pre-
senta estabilidad al acotamiento (EASA = Entrada Acotada Salida
Acotada) si y s olo si

n=
[h[n][ < .
A la estabilidad al acotamiento (estabilidad-EASA) se le conoce en la
terminologa inglesa como bounded input bouded output - stable (BIBO-
stable).
La estabilidad-EASA se puede demostrar como sigue: sea la salida del
sistema y[n] =

k=
h[n]x[nk], supongamos una entrada acotada,
es decir, [x[n][ < B
x
, donde B
x
es una constante nita. Supongamos
ahora que

n=
[h[n][ < , entonces tenemos,
[y[n][ =

k=
h[k]x[n k]

k=
[h[k]x[n k][
=

k=
[h[k][[x[n k][ B
x

k=
[h
k
[.
Como se supuso que

k=
[h
k
[ = B
y
, donde B
y
es una constante
nita (acotada), nalmente se demuestra que
B
x
B
y
< ,
entonces el sistema es estable al acotamiento, o estable-EASA.
7. Sistema pasivo: Un sistema en tiempo discreto es pasivo si para toda
se nal de energa x[n] se cumple,

n=
[y[n][
2

n=
[x[n][
2
.
3.5. Algunas Operaciones basicas
En la representaci on gr aca, a base de bloques, de algunos sistemas en
tiempo discreto, haremos uso de algunos smbolos para representar las opera-
ciones b asicas que se aplicar an a las secuencias. Por medio de una represen-
taci on gr aca se podr an analizar diferentes estructuras para la implantaci on
de ltros digitales, como se ver a m as adelante.
Algunos operadores b asicos son: El bloque b asico de multiplicaci on, el
cual se muestra en la gura 3.16 tiene dos puntos de entrada y un punto de
salida El bloque b asico de amplicaci on o ganancia es representado en la
gura 3.17. La ganancia se denota por una constante , la cual puede ser
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
54 3.5. ALGUNAS OPERACIONES B

ASICAS
X
E
T
E
x
n
y
n
w
n
= x
n
y
n
Figura 3.16: Multiplicador.
E E
E E

x
n
y
n
= x
n
y
n
= x
n

x
n
Figura 3.17: Ganancia.
positiva, negativa, mayor o menor que uno. El bloque b asico de suma puede
sumar o restar, dependiendo del signo de las entradas.

Este se muestra en
la gura 3.18 El bloque b asico de retardo unitario permite introducir un
retardo mayor a la unidad especicando el valor del retardo deseado como
un exponente, es decir, D
k
. Tambien se tiene el retardo inverso D
k
, seg un
se muestra en la gura 3.19
En los textos de control se emplea el smbolo q
k
para denotar el retardo
con salida y[n] = x[n k], en el dise no de ltros emplearemos como unidad
de retardo el operador z
k
el cual producir a una salida y[n] = x[n k]. El
retardo unitario, el cual ser a usado ampliamente en los captulos siguientes,
ser a z
1
con su correspondiente salida y[n] = x[n 1].
+
E
T
E
x
n
y
n
w
n
= x
n
+y
n
Figura 3.18: Sumador.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.6. LA TRANSFORMADA Z 55
D
E E
x
n
y
n
= x
n1
D
1 E E
x
n
y
n
= x
n+1
Figura 3.19: Retardo D y retardo inverso D
1
.
3.6. La transformada Z
Para completar la caracterizaci on de las se nales y los sistemas en tiempo
discreto, se revisa, a manera de repaso, la transformada Z.
As como la transformada de Laplace se usa para obtener modelos de la
funci on de transferencia de sistemas anal ogicos y sus se nales, en los sistemas
con datos muestreados se emplear a la transformada Z. Puede comprobarse
que la transformada Z no es mas que la versi on en tiempo discreto de la
transformada de Laplace.
Para ver esta conexi on, comenzamos repasando la expresi on de la trans-
formada de Laplace dada por
X(s) =
_

x(t)e
st
dt, (3.40)
donde x(t) es una se nal en tiempo continuo.
Si ahora tomamos una versi on muestreada de la se nal anal ogica x(t),
dada por
x
m
(t) = x(t) [
t=nT
=

n=0
x(nT)(t nT), (3.41)
su transformada de Laplace es
X
m
(s) = Lx
m
(t)
=
_

n=0
x(nT)(t nT)e
st
dt
=

n=0
x(nT)e
snT
. (3.42)
Empleando la variable compleja z = e
sT
, tenemos
X(z) =

n=0
x(nT)z
n
, (3.43)
llamada la transformada Z unilateral.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
56 3.6. LA TRANSFORMADA Z
La transformada Z bilateral ser a
X(z) =

n=
x(nT)z
n
. (3.44)
3.6.1. Calculo de algunas transformadas Z
En el c alculo de la transformada Z se har a uso frecuente de la suma
de una secuencia exponencial. Por ello, haremos primero la derivaci on de la
suma de una secuencia exponencial, tambien llamada serie geometrica.
Sea dada la secuencia e[n] = a
n
, con n = 0, 1, 2, . . . , N1. Calculemos
la suma:
S[n] =
N1

n=0
a
n
, multiplicando ambos lados por a,
aS[n] =
N1

n=0
a
n+1
, haciendo k = n + 1,
aS[n] =
N

k=1
a
k
regresando k a cero, tenemos
aS[n] =
N1

k=0
a
k
+a
N
1.
Los terminos a
N
y -1 aparecen porque hemos agregado un termino m as (a
0
)
y hemos eliminado el ultimo termino en la suma (a
N
). Podemos, adem as,
reconocer que la suma

N1
k=0
a
k
es exactamente S[n] as que podemos escribir
aS[n] = S[n] +a
N
1,
por lo tanto
S[n] =
1 a
N
1 a
, con a ,= 1.
Finalmente podemos escribir
S[n] =
_
1a
N
1a
, si a ,= 1
N, a = 1.
(3.45)
La expresi on (3.45) es m as f acil de recordar de la siguiente manera,
sup

n=inf
a
n
=
a
inf
a
sup+1
1 a
. (3.46)
La expresi on (3.46) ser a muy util para obtener la transformada Z.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.6. LA TRANSFORMADA Z 57
Cuando [a[ < 1, entonces a
N
0 para N y tenemos la f ormula
asimpt otica
lm
N
=
1
1 a
, con [a[ < 1. (3.47)
Ejemplo 3.6.1 Obtener la transformada Z de x(t) = e
at
u(t).
N otese que en muchas ocasiones se pide obtener la transformada Z de una
se nal en tiempo continuo, se sobrentiende que la se nal debe pasar primero
por un proceso de discretizaci on en tiempo. Para designar este paso inter-
medio, se designa un operador Z
T
.
Z
T
e
aT
u(t) =

n=0
e
anT
z
n
=

n=0
(e
aT
z
1
)
n
=
(e
aT
z
1
)
0
(e
aT
z
1
)
+1
1 (e
aT
z
1
)
.
De la expresi on anterior, puede verse que el segundo termino del numerador
converge s olo si [(e
aT
z
1
)
+1
[ < 1, por lo tanto podemos escribir,
X(z) =
1
1 e
aT
z
1
=
z
z (e
aT
)
,
esta serie converge s olo si [z[ > [e
aT
[, lo que dene una Regi on de Conver-
gencia (ROC del ingles Region Of Convergence), o Regi on de Existencia
que designaremos por RDE.
Ejemplo 3.6.2 Obtener U(z) de la se nal escal on unitario u(t).
Para su soluci on hacemos
Z
T
u(t) =

n=0
u(t)z
n
=

n=0
z
n
=
z
0
(z
1
)
+1
1 z
1
,
nuevamente, para que la serie exista se requiere que [z
1
[ < 1. Cumpliendo
esta condici on tenemos,
U(z) =
1
1 z
1
=
z
z 1
, con RED [z[ > 1.
3.6.2. Propiedades de la transformada Z
La transformada Z, al igual que las otras transformadas como la de
Laplace y la de Fourier, presentan las siguientes propiedades:
1. Linealidad:
Z
T
ax
1
(t) +bx
2
(t) = aX
1
(z) +bX
2
(z) (3.48)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
58 3.6. LA TRANSFORMADA Z
2. Desplazamiento en el tiempo:
Z
T
x(t kT) = z
k
X(z) +
1

m=k
x(mT)z
mk
, y
Z
T
x(t +kT) = z
k
X(z)
k1

m=0
x(mT)z
m+k
. (3.49)
La primera parte se puede demostrar de la siguiente manera:
Z
T
x(t kT) =

n=0
x(nT kT)z
n
=

m=k
x(mT)z
(m+k)
, donde m = n k
=
1

m=k
x(mT)z
mk
+

m=0
x(mT)z
m
z
k
=
1

m=k
x(mT)z
mk
+z
k
X(z).
3. Modulaci on: Sea Zx(t) = X(z) entonces,
Z
T
e
aT
x(t) =

n=0
e
anT
x(nT)z
n
=

n=0
x(nT)(e
aT
z)
n
.
Haciendo z = e
aT
z
Z
T
e
aT
x(t) =

n=0
x(nT) z
n
X( z)
= X(e
aT
z). (3.50)
4. Teorema del valor inicial: Si X(z) = Z
T
x(t) entonces
x(0) = lm
z
X(z). (3.51)
La demostraci on es directa y como sigue:
X(z) =

n=0
x(nT)z
n
= x(0) +
x(T)
z
+
x(2T)
z
2
+
x(3T)
z
3
+ , as que
lm
z
X(z) = x(0).
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.6. LA TRANSFORMADA Z 59
Ejemplo 3.6.3 Sea x(nt) = (e
aT
)
n
u(nT). Se ve que
lm
n
x(nT) = 0, ssi [e
aT
[ < 1, y
lm
n
x(nT) = 1, ssi [e
aT
[ = 1
de lo contrario, x(nT) diverge u oscila. La transformada Z, X(z) =
z/(z e
aT
) tiene un cero en 0, y un polo en z = e
aT
. Si la magnitud
del polo es estrictamente menor que 1, entonces, x(nT) converge a
cero asimpt oticamente. Si el polo est a en z = 1, entonces x(nT) es un
escal on unitario. Esto se puede generalizar para cualquier par
x(nT), X(z) : lm
n
x(nT) <
si y s olo si todos los polos de X(z) est an estrictamente dentro del
crculo unitario en el plano-z, excepto, posiblemente, para un solo polo
en z = 1.
5. Multiplicaci on por t:
Z
T
tx(t) =

n=0
nTx(nT)z
n
= Tz
d
dz
X(z). (3.52)
6. La transformada Z de la convoluci on discreta:
sea la convoluci on dada por
y(nT) =

k=0
x(kT)h(nT kT) = x(nT) h(nT),
entonces
Zx(nT) h(nT) = X(z)H(z). (3.53)
con R
y
(R
x
R
h
), al menos.
7. Complejo conjugado:
Zx

[n] =

n=
x

[n]z
n
= (

n=
x[n](z

)
n
)

= (X(z

= X

(z

) (3.54)
Note que X(z) = X

(z) si X(z) es real.


Recuerdese que un SLIT es real h[n] es una se nal real, donde
h[n] es la respuesta delta del sistema. As, se tiene que
h[n]real h[n] = h

[n]n
H(z) = H

(z

). (3.55)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
60 3.6. LA TRANSFORMADA Z
Con la (3.55) se puede comprobar si un sistema es real. Sup ongase un
sistema cuya salida est a dada por
y[n] =

k=
h[n]x[n k].
La funci on de respuesta en frecuencia (FRF) est a dada por
H(e
jT
) =

n=
h[n]e
jnT
= [H(e
jT
)[e
j(T)
.
Para un sistema real
H(z) = H

(z

)
H(e
jT
) = H

(e
jT
)

[H(e
jT
)[e
j(T)
=
_
[H(e
jT
)[e
j(T)
_

= [H(e
jT
)[e
j(T)
, (3.56)
entonces
[H(e
jT
)[ = [H(e
jT
)[, (3.57)
es decir, la magnitud de la FRF es una funci on par de T, y
e
j(T)
= e
j(T)
(T) = (T), m odulo 2, (3.58)
es decir, la fase ser a una funci on impar de T.
Ejemplo 3.6.4 Sup ongase un SLIT con una respuesta en frecuencia dada
por
H(e
jT
) =
_
jT, si [T[ < /4
0, si /4 [T[ .
Determine si el sistema es real.
Para ver si el sistema es real se deben cumplir dos condiciones:
1. h[n] real
2. H(e
jT
) = H

(e
jT
),
entonces, para se tiene que
H(e
jT
) =
_
jT, si [T[ < /4
0, si /4 [T[ ,
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.6. LA TRANSFORMADA Z 61
y
H

(e
jT
) =
_
jT, si [T[ < /4
0, si /4 [T[ ,
es decir, H(e
jT
) = H

(e
jT
), por lo tanto s es un sistema real. La gura
3.20 muestra la FRF en magnitud y fase para este sistema, donde se puede
observar con claridad la simetra par para la respuesta en magnitud y la
simetra impar para la respuesta en fase.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
/4 /4 2
E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
[H(e
jT
)[
T
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
/2
/2
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
T
(T)
Figura 3.20: Retardo D y retardo inverso D
1
.
Si a un SLIT se aplica una entrada x[n] = e
j
0
nT
, por la suma de con-
voluci on tenemos que
y[n] =

k=
e
j
0
(nk)T
= e
j
0
nT

k=
h[k](e
j
0
T
)
k
= e
j
0
nT
H(e
j
0
T
). (3.59)
Note que la salida es igual a la misma entrada multiplicada por el valor
de H() a la frecuencia
0
. Se dice entonces que la entrada es una funci on
caracterstica del sistema.
Sup ongase que se tiene una entrada x[n] = a
1
cos(
1
nT)+a
2
sen(
2
nT), n.
Si el sistema es real entonces la salida se puede expresar como:
y[n] = a
1
L
n
'e(e
j
1
nT
) +a
2
L
n
m(e
j
2
nT
)
= a
1
'e(e
j
1
nT
H(e
j
1
T
)) +a
2
m(e
j
2
nT
H(e
j
2
T
)). (3.60)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
62 3.6. LA TRANSFORMADA Z
Si el sistema no es real, entonces por las relaciones de Euler
y[n] = a
1
1
2
e
j
1
nT
H(e
j
1
T
) +a
1
1
2
e
j
1
nT
H(e
j
1
T
)
+a
2
1
j2
e
j
2
nT
H(e
j
2
T
) a
2
1
j2
e
j
2
nT
H(e
j
2
T
) (3.61)
Para el ejemplo 3.6.4, encuentre la salida si se aplica una entrada x[n] =
5 cos(0.1n) para toda n.
La se nal de entrada puede escribirse como
x[n] = 5 cos(0.1n) = 5 'e(e
j0.1n
).
Como el sistema es real entonces su salida est a dada por
y[n] = 5 'e(e
j0.1n
H(e
j0.1
))
= 5 'e(e
j0.1n
j(0.1)), por Euler
= 5 'e((0.1)j cos(0.1n) sen(0.1n))
= 5 (0.1)sen(0.1n).
Como puede verse, la salida es la derivada de la entrada, as que el sistema
es un diferenciador pasa-bajas.
3.6.3. Relaci on entre la transformada Z y la F
La relaci on entre la transformada Z y la transformada de Fourier en
tiempo discreto (TFTD) se puede ver reemplazando z por e
j
,
X(z)[
z=e
= Tx[n] = X(e
j
). (3.62)
Reemplazando x(nY ) por la notaci on x[n], se puede demostrar la relaci on
(3.62) como sigue:
X(z) =

n=
x[n]z
n
,
si expresamos z = re
j
, entonces
X(re
j
) =

n=
x[n](re
j
)
n
X(re
j
) =

n=
x[n]r
n
e
jn
,
que es la transformada de Fourier de la secuencia x[n] multiplicada por r
n
,
es decir,
X(re
j
) = Tx[n]r
n
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.6. LA TRANSFORMADA Z 63
Si r = 1 o [z[ = 1, entonces Z = T y
X(z)[
z=e
j = Tx[n].
Para que la T converja se requiere que x[n]r
n
tambien converja, depen-
diendo de r (puede verse la similitud de x[n]r
n
con x[n]z
n
).
En general, como se hizo notar antes, hay un margen de valores de z
para el cual X(z) converge, y est a asociado con la Z de la secuencia. Si la
RDE incluye el crculo unitario, entonces la T tambien converge.
Ejemplo 3.6.5 Sea x[n] = a
n
u[n], obtener su transformada Z.
Aplicando directamente la denici on de la transformada tenemos
X(z) =

n=
a
n
u[n]z
n
=

n=0
(az
1
)
n
=
(az
1
)
0
(az
1
)
+1
1 (az
1
)
,
para que la serie converja se requiere que [(az
1
)[ < 1 es decir, [a[ < [z[,
entonces
X(z) =
1
1 az
1
=
z
z a
, con [z[ > [a[.
Para a = 1, x[n] es la secuencia escal on unitario cuya transformada Z es
X(z) =
1
1 z
=
z
z 1
, [z[ > 1.
N otese que X(z) es una funci on racional y, al igual que en la transformada
de Laplace, se puede caracterizar por sus ceros y sus polos. Para X(z) =
z/(z a) tenemos un cero en z = 0 y un polo en z = a.
Adem as, la X(z) ser a una funci on racional siempre que x[n] sea una
funci on lineal de exponenciales reales o complejas.
Ejemplo 3.6.6 Sea x[n] = a
n
u[n 1], obtener su X(z).
X(z) =

n=
a
n
u[n a]z
n
=
1

n=
a
n
z
n
=

n=1
a
n
z
n
= 1

n=0
(a
1
z)
n
=
= 1
(a
1
z)
0
(a
1
z)
+1
1 (a
1
z)
,
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
64 3.7. PROPIEDADES DE LA RDE
para tener convergencia se requiere que [a
1
z[ < 1, o sea [z[ < [a[, luego
X(z) = 1
1
1 a
1
z
=
1 a
1
z 1
1 a
1
z
=
=
az
1
1 a
1
z
=
z
a z
=
z
z a
, [z[ < [a[.
Comparar con el resultado del ejemplo 3.6.5. La X(z) del ejemplo 3.6.5
es igual (incluyendo su diagrama de cero/polo) a la X(z) del ejemplo 3.6.6,
y s olo dieren en la RDE.
3.7. Propiedades de la RDE
La RDE tiene varias formas: puede consistir de un anillo en el plano-z,
o bien extenderse hacia el innito o hacia el centro, lo que depender a de las
caractersticas de la secuencia y de sus propiedades, que son siguientes:
1. La RDE de X(z) consiste de un anillo centrado en el origen del plano-z.
2. La RDE no contiene ning un polo.
3. Si x[n] es de duraci on nita, entonces la RDE es el plano-z completo,
excepto posiblemente en z = 0 y/o z = .
4. Si x[n] es una secuencia derecha y si el crculo [z[ = r
0
est a en la RDE,
entonces todos los valores nitos de z para los cuales [z[ > r
0
tambien
estar an en la RDE.
5. Si x[n] es una secuencia izquierda y si el crculo [z[ = r
0
est a en la
RDE, entonces todos los valores de z para los cuales 0 < [z[ < r
0
tambien estar an en la RDE.
6. Si x[n] es bilateral y si el crculo [z[ = r
0
est a en la RDE, entonces
la RDE consistir a de un anillo en el plano z, el cual incluye el crculo
[z[ = r
0
.
3.7.1. Causalidad a partir de la RDE
Sea
X(z) =

n=
x[n]z
(
n), z R
x
,
con RDE
R
x
= z C :

n=
[x[n][[z[
n
< .
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.8. LA TRANSFORMADA Z INVERSA 65
Desarrollando la suma,
X(z) = +x[n]z
2
+x[1]z
. .
0 si z0
+z[0] +x[1]z
1
+x[2]z
2
+
. .
si z0
,
es decir, los terminos a la derecha de x[0] tienden a innito si z tiende a cero
haciendo que la suma tienda a innito (no converja), a menos que x[n] sea
cero para n > 0. La secuencia ser a una secuencia anticausal. En resumen se
puede decir que si
R
x
[z = 0], entonces x[n] es una se nal anticausal.
La expresi on anterior indica que si la RDE incluye al cero (z = 0) entonces
x[n] es una se nal anticausal.
Por otra parte,
X(z) = +x[n]z
2
+x[1]z
. .
si z
+z[0] +x[1]z
1
+x[2]z
2
+
. .
0 si z
,
es decir, los terminos a la izquierda de x[0] tienden a innito si z tiende a
innito haciendo que la suma tienda a innito (no converja), a menos que
x[n] sea cero para n < 0. La secuencia ser a una secuencia causal. En resumen
se puede decir que si
R
x
[z = ], entonces x[n] es una se nal causal.
La expresi on anterior indica que si la RDE incluye al innito (z = )
entonces x[n] es una se nal causal.
3.7.2. Estabilidad-EASA a partir de la RDE
Recuerdese que un SLIT con respuesta delta h[n] es estable-EASA si y
s olo si

n=
[h[n][ < , y
R
h
= z C :

n=
[h[n][[z[
n
< ,
de modo que un SLIT con funci on del sistema H(z) y RDE R
h
es estable-
EASA R
h
[[z[ = 1], es decir, si la RDE incluye al crculo unitario.
3.8. La transformada Z inversa
Con frecuencia es util encontrar la representaci on, en el dominio del
tiempo discreto n, de una se nal de la cual se conoce su transformada Z.
Decimos que
x[n] = Z
1
X(z); R
x
(3.63)
si Zx[n] = X(z) con RDE R
x
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
66 3.8. LA TRANSFORMADA Z INVERSA
Ejemplo 3.8.1 Sea x[n] = p
n1
u[n 1], entonces su X(z) es
X(z) =

n=1
p
n1
z
n
= p
1

n=1
(
p
z
)
n
= p
1
(p/z)
1
(p/z)
+1
1 (p/z)
,
donde (p/z)
+1
0 si [p/z[ < 1, as
X(z) = p
1
p/z
1 (p/z)
=
1
z p
, [z[ > [p[.
Esto implica que
Z
1
_
1
z p
; [p[ < [z[
_
= p
n1
u[n 1].
Observese que x[n] es una secuencia causal.
Ejemplo 3.8.2 Si en lugar de esta secuencia se tiene una secuencia anti-
causal dada como x[n] = p
n1
u[n], su transformada Z es
X(z) = p
1
0

n=
(p/z)
n
= p
1
(p/z)

(p/z)
0+1
1 (p/z)
donde (p/z)

0 si [p/z[ > 1, as
X(z) = p
1
(p/z)
1 (p/z)
=
1
z p
; [z[ < [p[.
Esto implica que
Z
1
_
1
z p
; [z[ < [p[
_
= p
n1
u[n].
A partir de los dos ejemplos anteriores se obtiene una f ormula para la
transformada Z inversa:
1
z p
=
_

n=
p
n1
u[n 1]z
n
, [p[ < [z[

n=
p
n1
u[n]z
n
, [z[ < [p[
(3.64)
Este tipo de serie es llamada la expansi on en serie de Laurent, o ex-
pansi on en serie de potencias. Por lo tanto, encontrar la transformada Z
inversa x[n] = Z
1
X(z); R
x
, equivale a encontrar la secuencia x[n] tal
que

n=
x[n]z
n
= X(z), z R
x
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.8. LA TRANSFORMADA Z INVERSA 67
Ejemplo 3.8.3 Se tiene una X(z) dada por
X(z) =
1
(z +j)(z j)
, 1 < [z[
para encontrar su transformada inversa, se aplica una descomposici on en
fracciones parciales como sigue:
X(z) =
1
(z +j)(z j)
=
A
(z +j)
+
B
(z j)
donde
A = lm
zj
(z +j)X(z), y
B = lm
zj
(z j)X(z).
Una vez realizada la descomposici on en fracciones parciales, es necesario
observar que existen dos RDE posibles.
1. Si [z[ < 1 la soluci on corresponde a una secuencia anticausal dada por
x[n] = A(j)
n1
u[n] B(j)
n1
u[n].
2. Si 1 < [z[ la soluci on corresponde a una secuencia causal dada por
x[n] = A(j)
n1
u[n 1] +B(j)
n1
u[n 1].
Ejemplo 3.8.4 Sea F(z) =
z+2
(zj)(z+4)
, encontrar todas las transformadas
inversas posibles.
Como F(z) es estrictamente propia, aplicando la descomposici on en fraccio-
nes parciales tenemos
F(z) =
z + 2
(z j)(z + 4)
=
A
(z j)
+
B
(z + 4)
donde
A = lm
zj
(z j)F(z) =
j + 2
j + 4
,
B = lm
z4
(z + 4)F(z) =
4 + 2
4 j
.
Por la posici on de los polos se tienen tres RDE posibles y por lo tanto tres
transformadas inversas posibles. Las tres RDE son:
i) R
f
= [[z[ < 1], con una f[n] anticausal, dada por:
f[n] = A(j)
n1
u[n] B(4)
n1
u[n].
ii) R
f
= [1 < [z[ < 4] con una f[n] bilateral, dada por:
f[n] = A(j)
n1
u[n 1] B(4)
n1
u[n].
iii) R
f
= [4 < [z[] con una f[n] causal, dada por:
f[n] = A(j)
n1
u[n 1] +B(4)
n1
u[n 1].
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
68 3.8. LA TRANSFORMADA Z INVERSA
3.8.1. Transformada Z inversa con polos m ultiples
En la f ormula (3.64) y los ejemplos sobre transformada Z inversa anterio-
res se han tenido s olo expresiones que contienen polos simples. Sin embargo,
con frecuencia se presentan casos en los que hay races repetidas (o polos
m ultiples). Cuando F(z) contiene polos m ultiples se necesita de una expre-
si on similar a la que se obtuvo para 1/(z p) pero para terminos de la forma
1/(z p)
l
. Aplicando la primera derivada a 1/(z p) con respecto a z se
obtiene
d
dz
_
1
(z p)
_
=
1
(z p)
2
.
Puede notarse que al aplicar sucesivamente la derivada se obtendr an los
terminos de la forma (z p)
l
. Sin embargo, al lado derecho de (3.64) no se
puede aplicar la derivada con respecto a z ya que son funciones de n. Una
propiedad importante de la serie de Laurent dice que dentro de la RDE la
suma de las derivadas con respecto a n tambien converge a la derivada de
F(z). As, se obtiene una expresi on completa que es equivalente a la f ormula
de la transformada Z inversa pero para polos de multiplicidad dos, es decir,
d
dz
_
1
z p
_
=
1
(z p)
2
=
_

n=
(n)p
n1
u[n 1]z
n1
, [p[ < [z[

n=
(n)p
n1
u[n]z
n1
, [z[ < [p[,
haciendo
z
n1
= z
(n+1)
, cambiando n + 1 = n

z
n

=
(n

1)p
n

2
u[n

2]z
n

, [p[ < [z[

=
(n

1)p
n

2
u[(n

1)]z
n

, [z[ < [p[.


Aplicando consecutivamente la segunda, tercera, y m as derivadas se ob-
tiene la f ormula para la transformada Z inversa para polos m ultiples como
1
(z p)
l
=
_

n=
_
n 1
l 1
_
p
nl
u[n l]z
n
, [p[ < [z[

n=

_
n 1
l 1
_
p
nl
u[n]z
n
, [z[ < [p[,
(3.65)
donde
_
n l
l 1
_
=
(n 1)(n 2) . . . (n l + 1)
(l 1)!
, l = 1, 2, . . .
y ! indica factorial.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
3.9. APLICACI

ON DE LA TRANSFORMADA Z 69
Para los cuatro primeros valores de l se tiene:
_
n 1
l 1
_
=
_

_
1, si l = 1
(n 1), si l = 2
(n1)(n2)
2!
, si l = 3
(n1)(n2)(n3)
3!
, si l = 4
(3.66)
Ejemplo 3.8.5 Si F(z) = 1/(z 2)
4
encontrar todas las Z
1
posibles.
Se tiene un polo de orden 4 en z = 2 (orden=multiplicidad). Adem as, se
tienen dos RDE posibles:
i) Si R
f
= [[z[ < 2], f[n] es anticausal y como l = 4 y p = 2, tenemos
que
f[n] =
_
n 1
4 1
_
2
n4
u[n]
ii) Si R
f
= [2 < [z[], f[n] es causal, entonces tenemos que
f[n] =
_
n 1
4 1
_
2
n4
u[n 4],
donde
_
n 1
4 1
_
=
(n1)(n2)(n3)
3!
.
3.9. Aplicaci on de la transformada Z
A traves del uso de la transformada Z se puede caracterizar a un ltro
digital por su funci on de transferencia H(z). Esta funci on de transferencia
juega el mismo papel que la funci on de transferencia H(s) en los sistemas
o ltros de tiempo continuo. A continuaci on se determinan algunas de estas
caractersticas, como la respuesta en frecuencia y su estabilidad.
3.9.1. La funci on de transferencia en tiempo discreto
Recordemos que para los sistemas en tiempo continuo, la funci on de
transferencia H(s) se dene como la raz on de la transformada de Laplace
de la salida a la transformada de Laplace de la entrada, H(s) = Y (s)/X(s).
Igualmente, para los sistemas en tiempo discreto, la funci on de transferencia
se dene como la raz on entre la transformada Z de la salida a la transfor-
mada Z de la entrada H(z) = Y (z)/X(z). Esto puede mostrarse f acilmente
a partir de la suma de convoluci on dada por y[n] =

k=
x[k]h[n k]
que, como se recordar a, nos permite obtener la salida y[n] de un sistema
en tiempo discreto con respuesta al impulso h[n] cuando se excita con una
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
70 3.9. APLICACION DE LA TRANSFORMADA Z
se nal de entrada x[n]. Tomando la transformada Z a ambos lados tenemos
que Y (z) = X(z)H(Z), de donde
H(z) =
Y (z)
X(z)
.
Quiz a la manera m as f acil de expresar un ltro digital es a traves de una
ecuaci on en diferencias
y[n] =
N

i=0
a
i
x[n i]
N

i=0
b
i
y[n i].
Tomando la transformada Z a ambos lados y ajustando los terminos tenemos
H(z) =
Y (z)
X(z)
=

N
i=0
a
i
z
Ni

N
i=0
b
i
z
Ni
,
cuya forma factorizada, a partir de las races del numerador y del denomi-
nador, es
H(z) = H
0

N
i=1
(z z
i
)

N
i=1
(z p
i
)
, (3.67)
donde z
i
representa los ceros y p
i
representa los polos de la funci on de
transferencia H(z), as que al igual que los ltros en tiempo continuo o
anal ogicos, H(z) se puede representar por un diagrama cero/polo.
3.9.2. Estabilidad a partir del diagrama cero/polo
El diagrama cero/polo de H(z) se traza sobre un plano denominado
plano-z, que equivale al plano-s para sistemas en tiempo continuo. El plano-
z se obtiene de una transformaci on sobre el plano-s, as que habr a alguna
equivalencia entre ambos dominios; sin embargo, esta equivalencia no es
unvoca, es decir, un solo punto de un plano puede corresponder a varios
puntos en el otro plano. Como resultado de la transformaci on, el eje imagi-
nario j del plano-s se convierte en un crculo de radio uno, sobre el plano-z.
Todo el lado izquierdo del plano-s pasa a ser el interior de crculo sobre el
plano-z.
Como se vio en (3.67), la funci on de transferencia en tiempo discreto es
una funci on racional de polinomios en z. Para ltros causales, el grado del
numerador es igual o menor que el grado del denominador. Por la trans-
formaci on del plano-s al plano-z, los polos del lado izquierdo del plano-s
corresponden al interior del crculo unitario, lo que determinar a si el ltro
es estable o inestable. Por lo tanto para que un ltro o sistema en tiempo
discreto sea estable se requiere que todos sus polos esten dentro del crculo
unitario.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 71
Bibliografa
[1] Carlson, G. E., Signal and Linear System Analysis, Houghton Min
Company, 1992.
[2] Chen Chi-Tsong, System and Signal Analysis, 2nd. ed., Saunders Co-
llege Pub., 1989.
[3] Gabel, R. A., Roberts, R. A., Se nales y Sistemas Lineales, LIMUSA,
1975.
[4] Kamen, E. W., Introduction to Signals and Systems, 2nd. Edition, Mc-
Millan Publishing Co., 1987.
[5] Haykin, S., Van Veen, B., Se nales y Sistemas, LIMUSA Wiley, 2001.
[6] Karni, S., Byatt, W. J., Mathematical Methods in Continuous and Dis-
crete Systems, Hoolt, Rinehart and Winston, 1982.
[7] Kwakernaak, H., Sivan, R., Modern Signals and Systems, Prentice
Hall,1991.
[8] Mitra, S. K., Digital Signal Processing: a computer based approach,
McGraw-Hill, 1998.
[9] Ne H. P. Jr., Continuous and Discrete Linear Systems, Harper & Row
Publishers, 1984.
[10] Oppenheim, A. V., Young, I. T., Se nales y Sistemas, Prentice Hall
Hispanoamericana, 1994.
[11] Papoulis A., Signal Analysis, McGraw-Hill ISE, 1977.
[12] Tretter, S. A., Introduction to Discrete-time Signal Processing, John
Wiley and Sons, 1976.
[13] Ziemer, R. E., Tranter, W. H., Fannin, D. R., Signals and Systems:
continuous and discrete, 2nd. Ed., Macmillan Publishing Co. 1989.
Problemas
Problema 3.1 Dibuje las siguientes se nales:
a) x(t) = (u(t) u(t 5))
b) x[n] = n(u[n + 2] u[n 3])
Problema 3.2 Determine la parte par e impar de las siguientes secuencias
reales. El origen de tiempo, n = 0 se identicar a con el n umero en negrillas:
a) x[n] = 8, 13, 4, 12, 0, 6, 13, 9, 5
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
72 BIBLIOGRAF

IA
b) x[n] = 3, 1, 2, 3, 0, 0.5, 6, 5, 4
c) x[n] = Acos(n
0
) +Bsen(n
0
)
d) x[n] = n
2
u[n]
e) x[n] = n
3

Problema 3.3 Cu ales de las siguientes secuencias son secuencias acota-


das?
a) x[n] = A
n
donde A y son n umeros complejos, y [[ < 1.
b) y[n] = A
n
u[n] donde A y son n umeros complejos, y [[ < 1
(u[n] es la secuencia escal on).
c) h[n] = C
n
donde C y son n umeros complejos, y [[ > 1.
d) x[n] = 4sen
2
(n
s
).
e) x[n] = 3 cos 2(n
c
).
Problema 3.4 Muestre que una secuencia causal real x[n] se puede recu-
perar completamente a partir de su parte par x
par
[n] para toda n.
Problema 3.5 Dibuje las siguientes se nales en tiempo discreto contra n, e
indique cu ales son acotadas:
a)u[n 5].
b)(n 5)u[n].
c) u[n 5] u[n + 1].
Problema 3.6 En la gura 3.21 se muestra una se nal peri odica dada por:
y(t) =

k=0
e
(t5k)
[u(t 5k) u(t 5 5k)].
Observe la gura. Demuestre que el periodo fundamental es T = 5k.
Problema 3.7 En la gura 3.22 se muestra una se nal compuesta peri odica
dada por:
y(t) = cos( t) + (1/3)sen(3 t).
Observe la gura. Demuestre que el periodo fundamental es T=2.
Problema 3.8 Obtener y dibujar x[n]
par
y x[n]
impar
de
x[n] =
_
0, si n > 0
2n, si n 0
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 73
0 5 10 15
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
tiempo[seg]
a
m
p
l
i
t
u
d
Figura 3.21: Se nal para el problema 3.6.
0 0.5 1 1.5 2 2.5 3 3.5
1.5
1
0.5
0
0.5
1
1.5
tiempo [seg]
a
m
p
l
i
t
u
d
Figura 3.22: Se nal para el problema 3.7.
Problema 3.9 Se tiene un sistema en tiempo discreto dado por:
y[n] = L
n
x[n] =
1

k=0
x[n] x[n 2k]
Muestre si el sistema es a) lineal, b) causal.
Problema 3.10 Se tiene un pulso dado por x(t) = u(t) u(t 1) y un
segundo pulso dado por
h(t) =
_
t, si 0 t 1
0, en caso contrario
En forma gr aca encuentre la convoluci on de x(t) con h(t)
Problema 3.11 Obtener y dibujar x(t)
par
y x(t)
impar
de
x(t) =
_
t
2
, si t 0
0, si t < 0
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
74 BIBLIOGRAF

IA
Problema 3.12 Se tiene un sistema en tiempo discreto dado por:
y[n] = L
n
x[n] =
1

k=0
x[n]x[n k]
Muestre si el sistema es a) lineal, b) causal.
Problema 3.13 La salida de un SLIT en tiempo discreto est a dada por la
suma de convoluci on, es decir
y[n] =

k=
x[n k] h[k].
Demuestre que para que el sistema sea estable-EASA se requiere que la
respuesta al impulso h[n] sea absolutamente sumable, es decir que

n=
[h[n][ <
.
Problema 3.14 Determine la transformada Z y dibuje la RDE para cada
caso:
a) y[n] = u[n].
b) p[n] = u[n].
Problema 3.15 Encuentre la transformada Z y la RDE de
y[n] = (4)
n
u[n 2]
Problema 3.16 (10 pts.) Dibuje las siguientes se nales:
a) x(t) = t (u(t) u(t 5))
b) x[n] = u[n 4] u[n 5]
Problema 3.17 Encuentre la transformada Z y la RDE de
y[n] = (3)
n
u[n + 2]
Problema 3.18 Determine la transformada Z y dibuje la RDE para cada
caso (Note que [n] es el escal on):
a) x[n] = (3)
n
[n].
b) p[n] = (3)
n
[n].
Problema 3.19 A partir de la ubicaci on de los ceros y polos de X(z) dada
en la gura 3.23, identique todas las regiones de existencia (RDE) v alidas
y especique las caractersticas de la secuencia correspondiente
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 75
j
1
2
1mz
ez
3
4
j
1
2
Figura 3.23: Ubicaci on de ceros y polos para el Problema 3.19.
Problema 3.20 Un ltro lineal invariante en el tiempo est a descrito por la
siguiente ecuaci on en diferencias:
y[n] = x[n] x[n 2]
a) Obtenga una expresi on para la respuesta en frecuencia del sistema.
b) Bosqueje la respuesta en frecuencia en magnitud vs. para = 0, /2
y .
Problema 3.21 Calcule la energa de la secuencia de longitud nita N:
x[n] = cos
_
2kn
N
_
, 0 n N 1
Problema 3.22 Analice el diagrama a bloques de las guras 3.24, y 3.25 y
desarrolle la relaci on entre la entrada y la salida, es decir y[n] en funci on de
x[n] para cada.
E
+
E
+
D
' ' '
s

x[n]
y[n]
Figura 3.24: Diagrama a bloques para el problema 3.22.
Problema 3.23 Para la secuencia x(nT) = e
anT
u(nT) encuentre su
valor inicial
Problema 3.24 Sea la transformada Z de h
H(z) =
z
1
z
2
1 +z
1
, [z[ > 1
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
76 BIBLIOGRAF

IA
+
D
E E E
+
'
T
+
E
c
E
E
c
y[n]
b[n]
a[n] a[n 1] x[n]
-1

Figura 3.25: Diagrama a bloques para el problema 3.22.


a) Bosqueje el diagrama cero/polo
b) Encuentre h[n], para toda n
a) Es este un ltro estable?
Problema 3.25 Encuentre X(z) para la secuencia x[n] = a
|n|
, incluyen-
do su RDE. Que condici on se requiere sobre a para que X(z) exista?
Problema 3.26 Encuentre X(z) para la secuencia de duraci on nita x[n] =
a
n
u[n] u[n N]. Note una posible cancelaci on cero/polo cuando deter-
mine la RDE.
Problema 3.27 Determine la transformada Z de cada una de las siguientes
secuencias. Trace el diagrama cero/polo e indique la RDE.
a) [n].
b) [n 1].
c) (
1
4
)
n
u[n].
d) (
1
2
)
n
+ (
1
4
)
n
u[n].
e) (
1
4
)
n1
u[n 1].
f) (
1
4
)
n
u[n 1].
g) [n + 1].
h) (
1
4
)
|n|
.
Problema 3.28 Determine la transformada Z de la secuencia
x[n] = [n] 0.9[n 1].
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 77
Problema 3.29 Determine la funci on de transferencia para un SLIT causal
cuya ecuaci on en diferencias es
y[n]
1
2
y[n 1] +
1
4
y[n 2] = x[n].
Problema 3.30 Se tiene la interconexi on (en cascada) de dos sistemas,
como se muestra en la gura 3.26. La salida w[n] del primer sistema est a dada
por la ecuaci on en diferencias
w[n] = x[n] x[n 1].
H
1
(z) H
2
(z)
E E E
x[n] w[n] y[n] = x[n]
. .
H
eq
(z)
Figura 3.26: Diagrama de H
1
y H
2
en cascada para el problema 3.30.
a) Encuentre la funci on de transferencia H
1
(z). Dibuje sus ceros y polos
en el plano-z.
b) Se desea que el segundo sistema, H
2
(z), tenga una salida y[n] que sea
igual a la entrada original x[n]. Encuentre la funci on de transferencia
para H
2
(z). Dibuje sus ceros y polos en el plano-z.
c) Cu al es la funci on de transferencia equivalente a la conexi on en cas-
cada de H
1
(z) y H
2
(z)?
Problema 3.31 Se tiene un SLIT con funci on de sistema
H(z) =
z
10
(z j0.5)(z +j0.5)(z 2)
2
a) Encuentre su RDE de modo que el sistema sea estable-EASA.
b) Encuentre su RDE de modo que el sistema sea causal.
c) Encuentre h
n
para b).
Problema 3.32 Un SLIT tiene una entrada x(t) = e
2|t|
y una h(t) =
e
3t
u(t). Encuentre la salida y(t) por convoluci on.
Problema 3.33 Sea un SLIT dado por su h(t).
a) Demuestre (por convoluci on) que si la entrada es x(t) = e
j
0
t
, la salida
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
78 BIBLIOGRAF

IA
est a dada por y(t) = e
j
0
t
H(j
0
).
b) Suponga que H() est a dada por
H() =
_

_
1e
j/2
, 1 < < 0
1e
j/2
, 0 < < 1
0, en caso contrario
y recuerde que H(j) = [H()[e
j()
.
Dibuje H().
c) Suponga que se tiene una entrada x(t) = cos(t) + sen(2t), encuentre la
salida y(t).
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4
Dise no de ltros en tiempo continuo
Quiz a una de las operaciones m as comunes para el ingeniero en comuni-
caciones y electr onica es el ltrado de se nales. Ya sea una aplicaci on en sis-
temas de comunicaci on, control, o instrumentaci on, el ltrado aparecer a en
alguna fase del sistema. As como el procesamiento de la se nal es la operaci on
que nos permite extraer o transformar la informaci on util al observador, el
ltrado nos permite alterar o seleccionar alg un segmento de frecuencias de la
se nal a ser ltrada. Esta operaci on de ltrado permite atenuar algunas fre-
cuencias mientras otras pueden permanecer sin alterar o con una alteraci on
mnima (si no se desea introducir alguna ganancia en amplitud).
Dado que el dise no de una cierta clase de ltros digitales est a basado en
la transformaci on de un ltro anal ogico, en este captulo se estudia el dise no
de ltros en tiempo continuo, o anal ogicos, que despues ser an empleados en
el dise no de ltros digitales con respuesta innita al impulso (RII).
Por dise no entendemos la obtenci on de la funci on de transferencia H(s),
a partir de las especicaciones dadas sobre la respuesta en frecuencia. Son
varios metodos de aproximaci on de ltros anal ogicos, funciones de aproxi-
maci on entre ellos: ltros de Butterworth, ltros de Chebyshev, y ltros
Elpticos. Se dice aproximaci on porque un ltro ideal dado a partir de sus
propiedades de su respuesta en frecuencia, es decir
H(j) =
_
1, si
c
0, si >
c
,
(4.1)
donde
c
es la frecuencia de corte, es fsicamente no realizable, o no causal.
Esto se puede demostrar al obtener la respuesta al impulso h(t) de la funci on
de transferencia dada por H(j).
79
80 4.1. ESPECIFICACIONES DE UN FILTRO
4.1. Especicaciones de un ltro
Generalmente la especicaci on de un ltro incluye tres regiones: una
banda pasante, una banda de transici on, y una banda de rechazo. En la
gura 4.1 se muestran estas regiones para el caso de un ltro pasa-bajas,
donde k
1
y k
2
son las ganancias a las frecuencias de corte
c
y de rechazo

r
, respectivamente.
banda
pasante
banda
de transicin
banda de
rechazo

c

r

k
1

k
2

Figura 4.1: Especicaciones de un ltro.
4.2. La aproximaci on de Butterworth
En la aproximaci on de Butterworth, tambien llamada aproximaci on con
amplitud m aximamente plana, la amplitud al cuadrado del ltro est a dada
por
[H(j)[
2
=
1
1 +
_

c
_
2n
, (4.2)
donde n es el orden de la funci on de transferencia correspondiente y
c
est a denida como la frecuencia de corte de -3 dB. Puede verse que, cuando
=
c
, la respuesta en magnitud ser a 1/

2 veces la ganancia de corriente


directa, es decir, esto corresponde a una atenuaci on de 3.01 dB, si se tiene
la ganancia en dB. M as a un, podemos hacer el siguiente an alisis.
Sea la ganancia G
n
(), entonces
G
n
() = 20 log [H(j)[ = 10 log [H(j)[
2n
= 10 log

1
[1 +
_

c
_
2n
]

= 10 log
_
1 +
_

c
_
2n
_
, (4.3)
donde log es el logaritmo base 10.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.2. LA APROXIMACI

ON DE BUTTERWORTH 81
Para <<
c
, tenemos que
_

c
_
2n
0, y entonces
G
n
() = 10 log [1 + 0[ = 0.
Para >>
c
,
1 <<
_

c
_
2n
y entonces
G
n
() 10 log[
_

c
_
2n
] = 20 nlog
_

c
_
,
es decir, presenta una atenuaci on de 20 n dB/decada.
En la gura 4.2 se muestra la respuesta en frecuencia para el ltro de
Butterworth de orden 1 a 3, donde claramente se ve la atenuaci on de 20n
db/decada.
10
1
10
0
10
1
70
60
50
40
30
20
10
0
Frecuencia en (rad/s)
M
a
g
n
i
t
u
d

e
n

d
B
n = 1
n = 2
n = 3
Figura 4.2: Respuesta en frecuencia para ltros Butterworth, orden 1 a 3.
Para encontrar la funci on de transferencia decimos que = s/j, ya que
s = j, y con
c
= 1 (frecuencia de corte normalizada) tenemos
[H
n
(j)[
2
= H
n
(j)H(j) =
1
1 + (s/j)
2n
.
Para encontrar los polos de la funci on de transferencia necesitamos encontrar
las races del denominador. Estas races est an dadas por la ecuaci on (6.8):
H(j) =
_
si n es par, S
k
= 1


2n
+
k
n
, k=0,1,. . . (2n-1)
si n es impar, S
k
= 1

k
n
, k=0,1,. . . (2n-1),
(4.4)
donde S
k
es la k-esima raiz o polo del denominador, con magnitud unitaria
y angulo

.
Con el uso de (6.8) se pueden obtener los polinomios de Butterworth del
orden n deseado. En la tabla 4.1 se muestran algunos de estos polinomios.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
82 4.2. LA APROXIMACI

ON DE BUTTERWORTH
Tabla 4.1: Algunos polinomios de Butterworth.
orden n B
n
(s)
1 (s + 1)
2 (s
2
+

2s + 1)
3 (s
2
+s + 1)(s + 1)
4 (s
2
+ 0.765s + 1)(s
2
+ 1.84s + 1)
.
.
.
.
.
.
Ejemplo 4.2.1 Encontrar la funci on de transferencia H
1
(s) para un ltro
de Butterworth normalizado de orden 1.
Soluci on:
Como n = 1 tenemos dos races ya que k = 0 y 1, as
S
0
= 1

0
1
S
1
= 1

1
1
.
Estas dos races se muestran en la gura 4.3. Tomando los polos del lado
izquierdo, es decir, los polos que dar an una funci on de transferencia estable,
nos queda
H
1
(s) =
1
s (1)
=
1
s + 1
.
1.5 1 0.5 0 0.5 1 1.5
1.5
1
0.5
0
0.5
1
1.5
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
Planos
Figura 4.3: Races de la funci on de Butterworth para n=1.
Ejemplo 4.2.2 Encontrar la funci on de transferencia H
2
(s) para el ltro
de Butterworth normalizado de orden 2.
Soluci on:
Como n = 2 tenemos cuatro races, con k = 0, 1, 2, y 3.
S
k
= 1

4
+
k
2
, k = 0, 1, 2, 3.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.2. LA APROXIMACI

ON DE BUTTERWORTH 83
Desarrollando para n=2 y cada valor de k se obtiene
S
0
= 1


4
,
S
1
= 1

4
+

2
_
,
S
1
= 1

4
+
_
,
S
1
= 1

4
+
3
2
_
,
Estas cuatro races se muestran en la gura 4.4. Tomando los polos del lado
izquierdo, es decir, los polos que dar an una funci on de transferencia estable,
nos queda
H
2
(s) =
1
[s (0.7071 +j0.7071)][s (0.7071 j0.7071)]
H
2
(s) =
1
s
2
+

2s + 1
.
1.5 1 0.5 0 0.5 1 1.5
1.5
1
0.5
0
0.5
1
1.5
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
Planos
Figura 4.4: Races de la funci on de Butterworth para n=2.
En las guras 4.5 y 4.6 se muestran los polos (o races) en el plano-s
para los polinomios de Butterworth de orden n=6 y n=7. Puede observarse
que los polos de Butterworth est an distribuidos en un crculo de radio 1.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
84 4.2. LA APROXIMACI

ON DE BUTTERWORTH
Planos
Eje
Real
Eje
Imaginario
j
Figura 4.5: Races de la funci on de Butterworth para n=6.
Planos
Eje
Real
Eje
Imaginario
j
1 1
Figura 4.6: Races de la funci on de Butterworth para n=7.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.2. LA APROXIMACI

ON DE BUTTERWORTH 85
Tabla 4.2: Polinomios de Butterworth de orden n, B
n
(s) = b
n
s
n
+ b
n1
s
n1
+
. . . +b
1
s +b
0
.
orden B
n
(s) orden B
n
(s)
n=1 b
0
=1.0000 n=2 b
0
= 1.0000
b
1
=1.0000 b
1
= 1.4142
b
2
= 1.0000
n=3 b
0
= 1.0000 n=4 b
0
= 1.0000
b
1
= 2.0000 b
1
= 2.6131
b
2
= 2.0000 b
2
= 3.4142
b
3
= 1.0000 b
3
= 2.6131
b
4
= 1.0000
n=5 b
0
= 1.0000 n=6 b
0
= 1.0000
b
1
= 3.2361 b
1
= 3.8637
b
2
= 5.2361 b
2
= 7.4641
b
3
= 5.2361 b
3
= 9.1416
b
4
= 3.2361 b
4
= 7.4641
b
5
= 1.0000 b
5
= 3.8637
b
6
= 1.0000
n=7 b
0
= 1.0000 n=8 b
0
= 1.0000
b
1
= 4.4940 b
1
= 5.1258
b
2
= 10.0978 b
2
= 13.1371
b
3
= 14.5918 b
3
= 21.8462
b
4
= 14.5918 b
4
= 25.6884
b
5
= 10.0978 b
5
= 21.8462
b
6
= 4.4940 b
6
= 13.1371
b
7
= 1.0000 b
7
= 5.1258
b
8
= 1.0000
Para el dise no de ltros de Butterworth haremos uso de tablas que con-
tienen los polinomios de Butterworth, una vez que se haya determinado el
orden del ltro deseado. En la tabla 4.2 se muestran los valores para cons-
truir las funciones de transferencia de ltros Butterworth normalizados de
orden 1 a 8. Conociendo el orden n del ltro, decimos que H(s) = 1/B
n
(s)
donde B
n
(S) son los polinomios de Butterworth.
4.2.1. Transformaciones anal ogico-anal ogico
En la secci on anterior se vio c omo encontrar la funci on de transferencia
de un ltro de Butterworth normalizado de orden n. Si los polinomios de
Butterworth se anotan en forma de tabla es muy f acil obtener la funci on de
transferencia del ltro de Butterworth normalizado correspondiente. Como
su nombre lo indica, estos son ltros normalizados, es decir, tienen una
frecuencia de corte de 1 rad/s; sin embargo, en una aplicaci on pr actica, rara
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
86 4.2. LA APROXIMACI

ON DE BUTTERWORTH
vez necesitaremos un ltro precisamente con esa frecuencia de corte. En esta
secci on, se emplear a una transformaci on que permita al ltro de orden n, que
inicialmente tiene una frecuencia de corte de 1 rad/s, tener una frecuencia
de corte seg un se desee.
Las transformaciones llamadas transformaciones de frecuencia, o trans-
formaciones anal ogico-anal ogico permiten no s olo cambiar la frecuencia de
corte sino, tambien cambiar el tipo de respuesta en frecuencia del ltro, es
decir, es posible transformar un ltro normalizado pasa-bajas en un ltro
pasa-altas con frecuencia de corte
d
, o bien a un ltro pasa-banda, o a un
ltro rechazo de banda.
Si en nuestra funci on de transferencia H(s), reemplazamos s por s/
d
,
obtenemos una nueva funci on de transferencia H

(s):
H

(s) = H(s)

ss/
d
= H(s/
d
),
donde H

(s) es la nueva funci on de transferencia, obtenida a partir de H(s)


con una frecuencia de corte deseada
d
.
Para obtener la respuesta en frecuencia evaluamos H

(s) en s = j, as:
[H

(j)[ = [H(j/
d
)[,
y cuando =
d
,
[H

(j)[ = [H(j1)[,
es decir, [H

(j)[ es igual al valor de la funci on de transferencia del ltro


normalizado en = 1. De esta manera hemos desplazado la frecuencia
de corte de 1 rad/s a
d
rad/s.

Esto tambien se llama escalamiento en
frecuencia, y puede emplearse para transformar un ltro Pb (pasa-bajas) en
Pa (pasa-altas), o de un ltro Pb a PB (pasa-banda), entre otros.
Por medio de la transformaci on s =
d
/s, se obtiene una respuesta en
frecuencia pasa-altas con frecuencia de corte
d
.
Transformaci on pasa-banda
Como se vio en la secci on anterior, la transformaci on s/
u
transfor-
ma una respuesta en frecuencia normalizada pasa-bajas en una respuesta
en frecuencia no normalizada pasa-bajas. Para obtener una transformaci on
pasa-bajaspasa-banda (Pb-PB) se requiere una transformaci on doble. Si
tenemos un FPb caracterizado por alguna distribuci on de ceros y polos so-
bre el plano s, estos tendr an su eje de simetra alrededor del eje real (). Si
desplazamos el eje de simetra a alguna frecuencia
0
, entonces
0
reempla-
zar a a . Esto requiere de una transformaci on
0
; sin embargo, esta
transformaci on no es util, ya que para tener un ltro realizable se requieren
polos complejos conjugados, as que la transformaci on que se utiliza es
s
s

0
+

0
s
. (4.5)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.2. LA APROXIMACI

ON DE BUTTERWORTH 87
Si se desea, esto podra considerarse como una doble transformaci on, una
pasa-altas (

0
s
) m as una pasa-bajas (
s

0
). Adem as,
s

0
+

0
s
=
s
2
+
2

0
s
, (4.6)
donde el termino (s
2
+
2
) nos da los polos complejos conjugados, mientras
que el termino 1/s dar a los ceros en el origen y en el innito lo que asegura
una respuesta pasa-banda. El termino 1/
0
afecta al ancho de banda.
En las guras 4.7 a 4.9 se muestra la descripci on gr aca de la transfor-
maci on Pb-PB vista como un desplazamiento del eje real a
0
. En la gura
4.7 se muestra la posici on de un polo simple para un FPb Butterworth de
primer orden. En la gura 4.8 se muestra la nueva posici on del polo cuando
el eje real se ha desplazado a
0
dando un par de polos complejos conjuga-
dos. Es importante notar la inclusi on del cero en el origen para garantizar la
respuesta pasa-banda. Finalmente, en la gura 4.9 se muestra la respuesta
en frecuencia correspondiente a la distribuci on de polos y ceros de la gura
4.8.
1.5 1 0.5 0 0.5 1 1.5
1.5
1
0.5
0
0.5
1
1.5
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
Planos
j
polo de un
filtro pasabajas
Figura 4.7: Posici on del polo pasa-bajas Butterworth de primer orden.
1.5 1 0.5 0 0.5 1 1.5
1.5
1
0.5
0
0.5
1
1.5
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
Planos

desplazamiento
del eje real
a +
0

j
polos
complejos
conjugados
Figura 4.8: Transformaci on del eje real a
0
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
88 4.2. LA APROXIMACI

ON DE BUTTERWORTH
10
0
6
5
4
3
2
1
M
a
g
n
i
t
u
d
Frecuencia [rad/s]
Figura 4.9: Respuesta pasa-banda por desplazamiento del eje real.
De lo anterior se puede deducir que el FPB resultante tendr a un orden
que es el doble del equivalente pasa-bajas. Cabe hacer notar que la transfor-
maci on por lo general no es aritmeticamente simetrica. Si
L
y
U
son los
extremos de la banda de paso, entonces el centro de la banda est a dado por

0
=
_

U
, (4.7)
y no como
0
= (
L
+
U
)/2. Para ltros con un ancho de banda estrecho
la diferencia entre la media geometrica y la media aritmetica es peque na.
En terminos del ancho de banda W =
U

L
y de la frecuencia
0
=

L
, la transformaci on requerida queda como
s =

0
W
(
s

0
+

0
s
) =
s
2
+
U

L
s(
U

L
)
. (4.8)
Para obtener una transformaci on PbPB la transformaci on requerida es
la inversa de (4.8) es decir:
s =
s(
U

L
)
s
2
+
U

L
. (4.9)
4.2.2. Dise no de ltros Butterworth pasa-bajas
Se ha visto que es posible desplazar la frecuencia de corte de un ltro
normalizado de 1 rad/s a cualquier frecuencia deseada, pero falta determinar
cu al es el orden requerido del ltro Butterworth para cumplir con los reque-
rimientos de ganancia en la banda pasante, as como la atenuaci on mnima
en la banda de rechazo.
Normalmente, los requerimientos del ltro se especicar an con cuatro
par ametros: k
1
, k
2
,
1
,
2
, donde
1
=
c
, y
2
=
r
, corte y rechazo
respectivamente. Empleamos
1
y
2
en lugar de
c
y
r
, y reservamos
c
para el ltro normalizado. Adem as, como se ver a m as adelante, la n depende
de (
1
/
2
) en ltros Butterworth y
2
/
1
en ltros Chebyshev y parece
m as f acil de recordar de este modo.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.2. LA APROXIMACI

ON DE BUTTERWORTH 89
De la gura 4.1, se tienen las siguientes condiciones sobre la respuesta
en frecuencia deseada,
0 20 log [H(j)[ k
1
, para toda
1
y
20 log [H(j)[ k
2
, para toda
2
. (4.10)
Si evaluamos (4.10) con H(j) = 1/B
n
(j), se tiene que cuando =
1
se debe satisfacer
10 log
_

_
1
1 +
_

1
c
_
2n
_

_ = k
1
y (4.11)
10 log
_

_
1
1 +
_

2
c
_
2n
_

_ = k
2
, (4.12)
de donde
_

c
_
2n
= 10
k1/10
1 y (4.13)
_

c
_
2n
= 10
k2/10
1. (4.14)
Dividiendo (4.13) entre (4.14)
_

2
_
2n
=
10
k
1
/10
1
10
k
2
/10
1
, (4.15)
para que, nalmente, resolviendo para n,
n =
_
log[(10
k
1
/10
1)/(10
k2/10
1)]
2 log(
1
/
2
)
_
, (4.16)
donde
_

_
indica redondeo hacia arriba, as que, si n es fraccionario, em-
plearemos el n umero entero siguiente superior.
Una vez determinado el valor numerico de n, tomamos la funci on pro-
totipo de la tabla 4.2 de polinomios de Butterwoth. Ahora, para que esta
funci on de transferencia, construida con los polinomios de la tabla 4.2, tenga
una frecuencia de corte
1
, si y s olo si k
1
= 3dB, debemos desplazar la
frecuencia de corte normalizada a
1
con la transformaci on s s/
1
. Si k
1
es de valor arbitrario debemos hacer un ajuste al escalar la frecuencia de la
funci on prototipo.
Para realizar este ajuste tenemos dos opciones. Si nos interesa m as cum-
plir con el requerimiento de ganancia en
1
, entonces calculamos la frecuen-
cia de escalamiento con

esc
=

1
(10
k1/10
1)
1/2n
, (4.17)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
90 4.2. LA APROXIMACI

ON DE BUTTERWORTH
y entonces aplicaremos la transformaci on s = s/
esc
.
Si, por el contrario, interesa m as exceder el requerimiento en
2
entonces
calculamos la frecuencia de escalamiento con

esc
=

2
(10
k2/10
1)
1/2n
(4.18)
para aplicar la transformaci on.
Ejemplo 4.2.3 Dise nar un ltro con respuesta monot onica con las siguien-
tes especicaciones, frecuencia de corte, f
c
, de 1000 Hz con -2 dB y una
atenuaci on mnima de -20 dB a una frecuencia de rechazo, f
r
, de 3000 Hz.
La frecuencia en Hz se denotar a por f.
Soluci on:
Tenemos pues, k
1
= 2,
1
= 2f
c
= 21000 k
2
= 20,
2
= 2f
r
=
23000, sustituyendo
n =
_
log[(10
0.2
1)/(10
2
1)]
2 log(1000/3000)
_
= 3
entonces, tomamos la funci on prototipo
H
B
3
(s) =
1
(s
2
+s + 1)(s + 1)
,
ahora aplicamos una transformaci on PbPb, con

esc
=
6.2831853 10
3
(10
0.2
1)
1/6
= 6.8706913 10
3
y
H(s) =
1
(s
2
+s + 1)(s + 1)
[
s=s/6.870691310
3
para obtener
H(s) =
3.243406044 10
11
s
3
+ 13741.383s
2
+ 94412799.811s + 3.243406044 10
11
En la gura 4.10 se muestra la respuesta en frecuencia de la funci on de
transferencia encontrada. Adem as, en las guras 4.11 y 4.12 se puede obser-
var, despues de hacer una ampliaci on, que se cumple con el requerimiento
de -2 dB en 1000 Hz y se excede, con poco m as de 5 dB, el requerimiento
en 3000 Hz.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.2. LA APROXIMACI

ON DE BUTTERWORTH 91
10
1
10
2
10
3
10
4
10
5
70
60
50
40
30
20
10
0
10
Frecuencia (Hz)
G
a
n
a
n
c
ia

e
n

(
d
B
)
Figura 4.10: Respuesta en frecuencia del ltro del ejemplo 4.2.3.
10
3
7
6
5
4
3
2
1
0
1
2
Frecuencia (Hz)
G
a
n
a
n
c
i
a

e
n

(
d
B
)
Figura 4.11: Ampliaci on en k
1
= 2 dB.
10
3
10
4
45
40
35
30
25
20
15
10
Frecuencia (Hz)
G
a
n
a
n
c
i
a

e
n

(
d
B
)
Figura 4.12: Ampliaci on en k
2
< 20 dB.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
92 4.2. LA APROXIMACI

ON DE BUTTERWORTH
4.2.3. Dise no de ltros Butteworth pasa-banda
El dise no de ltros Butterworth pasa-banda est a basado en la aplicaci on
de una transformaci on sobre un ltro prototipo pasa-bajas. Los requeri-
mientos tpicos son los que se muestran en la gura 4.13. Donde se cumple
con
20 log [H(j)[ k
2
, para
1
0 20 log [H(j)[ k
1
, para
L

U
20 log [H(j)[ k
2
, para
2
0
k
1

k
2

1

L

U

2

Figura 4.13: Especicaciones para un ltro pasa-banda.
La transformaci on necesaria es
H
PB
(s) = H
Pb
(s)

s=
s
2
+
L

U
s(
U

L
)
, (4.19)
donde PB signica pasa-banda, y Pb signica pasa-bajas. Es decir, se apli-
car a una transformaci on anal ogico-anal ogico sobre un ltro pasa-bajas para
obtener la funci on de transferencia del ltro pasa-banda.
Para satisfacer el requerimiento de ganancia k
2
en
1
debemos mantener
la igualdad dentro de la transformaci on, esto es,
j
r
=
(j
2
1
+
L

U
)
j
1
(
U

L
)
Resolviendo para
r
tenemos

r
=

2
1
+
L

1
(
U

L
)
y similarmente para satisfacer k
2
en
2
, tenemos

r
=

2
2
+
L

2
(
U

L
)
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.2. LA APROXIMACI

ON DE BUTTERWORTH 93
Ahora bien, dependiendo del valor numerico de
1
y
2
(donde
1
<

2
) con respecto al producto
L

U
, la
r
podra ser positiva o negativa.
Tambien en la mayora de los casos las dos
r
anteriores no ser an iguales
y deberemos seleccionar el caso m as restrictivo. As pues, el valor de
r
ser a aquel que cumpla con

r
= mn[A[, [B[, (4.20)
donde
A =

2
1
+
L

1
(
U

L
)
B =

2
2

2
(
U

L
)
. (4.21)
N otese el cambio de signo en el c alculo de B.
Esta
r
ser a empleada en el c alculo del orden del ltro pasa-bajos pro-
totipo, empleando (4.16) con
1
= 1, y
2
=
r
.
El procedimiento es el siguiente:
1. Dadas las especicaciones del FPB deseado encontrar A y B.
2. Determinar
r
.
3. Calcular el orden n del FPb prototipo.
4. Encontrar (o leer de las tablas) la funci on de transferencia del FPb
normalizado.
5. Aplicar la transformaci on dada en (4.19).
Ejemplo 4.2.4 Dise nar un FPB con las siguientes especicaciones: respues-
ta en frecuencia m aximamente plana, con -3 dB a 50 Hz y 2kHz, y con al
menos 20 dB de atenuaci on en 20Hz y 4.5kHz
Soluci on:
tenemos los siguientes datos

1
= 2(20) = 125.6637 rad/s,

2
= 2(4500) = 2.8274 10
4
rad/s,

L
= 2(50) = 314.1593 rad/s,

U
= 2(2000) = 1.2566 10
4
rad/s.
Calculando A y B tenemos que A = 2.5640 y B = 2.2963; as que
r
=
2.2963. Entonces,
n =
_
log[(10
0.3
1)/(10
2
1)]
2 log(1/2.2963)
_
=
_
2.7667
_
= 3,
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
94 4.3. LA APROXIMACI

ON DE CHEBYSHEV
de modo que nuestra funci on prototipo ser a
H
Pb
(s) =
1
s
3
+ 2s
2
+ 2s + 1
,
aplicando la transformaci on (4.19) tenemos
H
PB
(s) =
1
[
s
2
+3.947810
6
s(1.2534910
4
)
]
3
+ 2[
s
2
+3.947810
6
s(1.2534910
4
)
]
2
+ 2[
s
2
+3.947810
6
s(1.2534910
4
)
] + 1
.
Reduciendo terminos, la soluci on es
H(s) =
1.83926132639871 10
12
s
3
s
6
+b
5
s
5
+b
4
s
4
+b
3
s
3
+b
2
s
2
+b
1
s +b
0
,
donde
b
5
= 2.450442269800038 10
4
b
4
= 3.120768911624457 10
8
b
3
= 2.032740492883779 10
12
b
2
= 1.232030183398072 10
15
b
1
= 3.819125666120342 10
17
b
0
= 6.152890838882032 10
19
En la gura 4.14 se muestra la respuesta en frecuencia para la funci on
de transferencia encontrada, puede observarse que se cumple ampliamente
con las especicaciones del ltro.
10
1
10
2
10
3
10
4
120
100
80
60
40
20
0
Frecuencia (Hz)
G
a
n
a
n
c
i
a

e
n

(
d
B
)
Figura 4.14: Respuesta en frecuencia del FPB del ejemplo 4.2.4.
4.3. La aproximaci on de Chebyshev
Otra funci on de aproximaci on est a basada en los polinomios de Chebys-
hev tambien conocidos como Tschebyshe. Al igual que en los ltros de But-
terworth se emplearon los polos estables de un polinomio de Butterworth,
para los ltros Chebyshev se emplear an los polos estables de un polinomio
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.3. LA APROXIMACI

ON DE CHEBYSHEV 95
de Chebyshev. Estos ltros exhiben una cada m as acentuada que los de
Butterworth, a cambio de un rizo que aparece en la banda pasante o en la
banda de rechazo seg un se trate de Chebyshev tipo I o Chebyshev tipo II,
respectivamente.
4.3.1. Los polinomios de Chebyshev
Antes de denir la funci on de transferencia de un ltro de Chebyshev,
conviene revisar algunas caractersticas importantes de estos polinomios.
Los polinomios de Chebyshev est an denidos por
T
n
(x) =
_
cos(ncos
1
x) si [x[ 1
cosh(ncosh
1
x) si [x[ > 1
(4.22)
donde
T
0
(x) = 1, es decir, n = 0
T
1
(x) = x, es decir, n = 1
T
n
= T
n
(x). (4.23)
Los polinomios de Chebyshev, al igual que las funciones sinusoidales,
son ortogonales, pero con una funci on de ponderaci on sobre el intervalo
1 x 1.
Para el caso de las funciones coseno, tenemos
_

0
cos(m) cos(n)d =
_

_
0, si m ,= n
/2, si m = n ,= 0
, si, n = m = 0,
(4.24)
haciendo = cos
1
x, se tiene que
d = d(cos
1
x) =
1

1 x
2
,
cambiando lmites
si 0, entonces x 1
si , entonces x 1,
as pues
_
1
1
T
m
(x)T
n
(x)
_
(1 x
2
)
dx =
_

_
0, si m ,= n
/2, si m = n ,= 0
, si n = m = 0
(4.25)
por lo que la funci on de ponderaci on es
1
_
(1 x
2
)
,
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
96 4.3. LA APROXIMACI

ON DE CHEBYSHEV
que, como puede verse, crece a medida que x se acerca a 1.
Los polinomios de Chebyshev oscilan entre 1 dentro del intervalo 1 <
x < 1, mientras que fuera de este intervalo crecen r apidamente hacia + o
. Esto puede observarse en la gura 4.15 con T
5
(x), donde se observa,
adem as, que el n umero de oscilaciones es igual a n 1.
1.5 1 0.5 0 0.5 1 1.5
5
4
3
2
1
0
1
2
3
4
5
x
T
n
(
x
)
Figura 4.15: Polinomio de Chebyshev de orden 5, T
5
(x).
Usando la identidad trigonometrica
cos[(n + 1)] + cos[(n 1)] = 2 cos cos n, (4.26)
y cambiando por cos
1
x tenemos
cos[(n + 1) cos
1
x] + cos[(n 1) cos
1
x] = 2xcos(ncos
1
x)
T
n+1
(x) +T
n1
(x) = 2xT
n
(x), (4.27)
esto es, tenemos una f ormula de recursi on de tres terminos que permite
encontrar T
n+1
, conociendo los dos anteriores T
n
(x) y T
n1
(x). Se obtiene
T
0
(x) = 1
T
1
(x) = x
T
2
(x) = 2x
2
1
T
3
(x) = 4x
3
3x
T
4
(x) = 8x
4
8x
2
+ 1 (4.28)
N otese que para n > 1 el primer coeciente es 2
n1
, y que los polinomios
son alternativamente funciones pares e impares de x. Tambien n otese que
T
0
(1) = T
1
(1) = 1, y
T
n
(1) = 1, para toda n.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.3. LA APROXIMACI

ON DE CHEBYSHEV 97
4.3.2. Los ltros de Chebyshev
La funci on de transferencia de Chebyshev est a dada por
[H(j)[
2
=
1
1 +
2
[T
n
(/
c
)]
2
. (4.29)
Para [[
c
1
1 +
2
[H(j)[
2
= [H()H()[ 1.
En exactamente =
c
,
[H()[
2
=
1
1 +
2
; ya que T
n
(1) = 1.
Cuando [x[ > 1, esperamos un incremento r apido en T
n
(x), por lo tanto
el efecto en la funci on de transferencia es hacer que la banda de transici on
sea muy estrecha.
Para [[ =
r
=
2
, la frecuencia de rechazo, deseamos una ganancia
1/A
2
, es decir,
1
1 +
2
T
2
n
(
2
/
1
)
=
1
A
2
, (4.30)
donde
2
=
r
, y
1
=
c
. Entonces
[T
n
(
2
/
c
)[ =

A
2
1

, (4.31)
y resolviendo para n,
n =
cosh
1
_
A
2
1

_
cosh
1
_

1
_ . (4.32)
N otese que en el denominador aparece el termino (
2
/
1
), mientras que en
el c alculo de n para los ltros de Butterworth fue (
1
/
2
).
Para encontrar la funci on de transferencia H(s) necesitamos encontrar
las races del polinomio
L
2
(s) = 1 +
2
T
2
n
() = 0.
Recuerdese que T
n
() = cosh(ncosh
1
), y haciendo = s/j, entonces
1 +
2
[cosh(ncosh
1
s/j)]
2
= 0, y despejando tenemos
cosh(ncosh
1
s/j) =
_
1/
2
= j/ (4.33)
si s = +j es un cero de L
2
(s), podemos escribir
cosh[ncosh
1
(j + )] = j/, (4.34)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
98 4.3. LA APROXIMACI

ON DE CHEBYSHEV
haciendo
u +jv = cosh
1
(j + ) (4.35)
j + = cosh(u +jv), (4.36)
de (4.33)
cosh[n(u +jv)] = j/, (4.37)
y de la bien conocida identidad trigonometrica
cos( +) = cos cos sensen;
podemos escribir (4.37) como
j/ = cos(nv) cosh(nu) +jsenh(nu)sen(nv) = j + . (4.38)
Comparando ambos lados de esta ecuaci on,
= sen(nv)senh(nu) (4.39)
= cos(nv) cosh(nu), (4.40)
como j/ tiene parte real cero y parte imaginaria 1/, entonces
cos(nv) cosh(nu) = 0
sen(nv)senh(nu) = 1/.
Como para una nu real, cosh(nu) es diferente de cero, entonces cos(nv) debe
ser cero, y entonces
v =
_

2
+k
_
/n, k = 1, 2, . . . (4.41)
(ya que cos(/2) = 0, cos
_
/2+k
n
_
= 0) para sen(nv)senh(nu) = 1/, y
como sen(nv) = sen
_

2
+k
_
/n = 1, entonces
u =
_
1
n
senh
1
(1/)
_
. (4.42)
De (4.39) (4.40) (4.41) y (4.42), se obtiene

k
= senh
_
1
n
senh
1
1

_
sen
_
2k + 1
2n
_
,

k
= cosh
_
1
n
senh
1
1

_
cos
_
2k + 1
2n
_
, k = 1, 2, . . . , (n 1),
y podemos ver que

2
k
senh
2
(u)
+

2
k
cosh
2
(u)
= 1,
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.3. LA APROXIMACI

ON DE CHEBYSHEV 99
es decir, los ceros de L
2
(s) est an localizados sobre una elipse. Los polos de
L
2
(s) est an dados por
p
k
=
c
senh
_
1
n
senh
1
1

_
sen
_
2k + 1
2n
_
+j
c
cosh
_
1
n
senh
1
1

_
cos
_
2k + 1
2n
_
.
Finalmente, la funci on de transferencia normalizada se puede formar
como
H
n
(s) =
K

n
i=1
(s p
i
)
=
K
V
n
(s)
, (4.43)
donde
V
n
(s) = s
n
+b
n1
s
n1
+. . . +b
1
s +b
0
, (4.44)
y adem as se puede comprobar que
K =
_
b
0
, si n es impar
b
0

1+
2
, si n es par.
(4.45)
En las tablas 4.3, 4.4, y 4.5 se muestran los polinomios para ltros
Chebyshev tipo I para diferentes ordenes y niveles de rizo aceptable en la
banda pasante.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
100 4.3. LA APROXIMACI

ON DE CHEBYSHEV
Tabla 4.3: Polinomios de Chebyshev de orden n, para un rizo de 0.5 dB ( =
0.34931140018895).
orden K
n
y V
n
(s) orden K
n
y V
n
(s)
n=1 K
n
= 2.86277516124319 n=2 K
n
= 1.43138758062160
b
0
= 2.86277516124319 b
0
= 1.51620262694593
b
1
= 1.42562451364020
n=3 K
n
=0.71569379031080 n=4 K
n
= 0.35784689515540
b
0
= 0.71569379031080 b
0
= 0.37905065673648
b
1
= 1.53489545855561 b
1
= 1.02545527713700
b
2
= 1.25291297268055 b
2
= 1.71686620544884
b
3
= 1.19738565671119
n=5 K
n
= 0.17892344757770 n=6 K
n
= 0.08946172378885
b
0
=0.17892344757770 b
0
= 0.09476266418412
b
1
= 0.75251811034289 b
1
= 0.43236692045929
b
2
=1.30957474478165 b
2
= 1.17186133283420
b
3
= 1.93736749474810 b
3
= 1.58976350135366
b
4
=1.17249093365202 b
4
= 2.17184462271973
b
5
= 1.15917610630976
n=7 K
n
= 0.04473086189442 n=8 K
n
= 0.02236543094721
b
0
= 0.04473086189442 b
0
= 0.02369066604603
b
1
= 0.28207222652099 b
1
= 0.15254443887580
b
2
= 0.75565110403040 b
2
= 0.57356040094292
b
3
= 1.64790292616448 b
3
= 1.14858936912993
b
4
= 1.86940790812050 b
4
= 2.18401538172037
b
5
= 2.41265095657871 b
5
= 2.14921726034592
b
6
= 1.15121757854778 b
6
= 2.65674980658908
b
7
= 1.14608010766183
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.3. LA APROXIMACI

ON DE CHEBYSHEV 101
Tabla 4.4: Polinomios de Chebyshev de orden n, para un rizo de 1 dB ( =
0.50884713990959).
orden K
n
y V
n
(s) orden K
n
y V
n
(s)
n=1 K
n
=1.96522672836027 n=2 K
n
= 0.98261336418014
b
0
= 1.96522672836027 b
0
= 1.10251032805385
b
1
= 1.09773432856393
n=3 K
n
= 0.49130668209007 n=4 K
n
= 0.24565334104503
b
0
= 0.49130668209007 b
0
= 0.27562758201346
b
1
= 1.23840917357824 b
1
= 0.74261937310676
b
2
= 0.98834120988476 b
2
= 1.45392476228002
b
3
= 0.95281137931914
n=5 K
n
=0.12282667052252 n=6 K
n
= 0.06141333526126
b
0
= 0.12282667052252 b
0
= 0.06890689550337
b
1
= 0.58053415132206 b
1
= 0.30708063841820
b
2
= 0.97439607307168 b
2
= 0.93934552954141
b
3
= 1.68881597917823 b
3
= 1.20214038896508
b
4
= 0.93682013127199 b
4
= 1.93082492260129
b
5
= 0.92825096024867
n=7 K
n
= 0.03070666763063 n=8 K
n
= 0.01535333381531
b
0
= 0.03070666763063 b
0
= 0.01722672387584
b
1
= 0.21367139021183 b
1
= 0.10734472587535
b
2
= 0.54861981077436 b
2
= 0.44782572369701
b
3
= 1.35754480295084 b
3
= 0.84682432066278
b
4
=1.42879430819559 b
4
= 1.83690238444740
b
5
= 2.17607847362704 b
5
= 1.65515567030966
b
6
= 0.92312347346067 b
6
= 2.42302641920325
b
7
= 0.91981130587012
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
102 4.3. LA APROXIMACI

ON DE CHEBYSHEV
Tabla 4.5: Polinomios de Chebyshev de orden n, para un rizo de 2 dB ( =
0.76478310157921).
orden K
n
y V
n
(s) orden K
n
y V
n
(s)
n=1 K
n
= 1.30756027157908 n=2 K
n
= 0.65378013578954
b
0
= 1.30756027157908 b
0
= 0.82306042667169
b
1
= 0.80381643012779
n=3 K
n
=0.32689006789477 n=4 K
n
= 0.16344503394738
b
0
= 0.32689006789477 b
0
= 0.20576510666792
b
1
= 1.02219033985978 b
1
= 0.51679810179633
b
2
= 0.73782157715775 b
2
= 1.25648193319480
b
3
= 0.71621495822804
n=5 K
n
=0.08172251697369 n=6 K
n
= 0.04086125848685
b
0
= 0.08172251697369 b
0
= 0.05144127666698
b
1
= 0.45934912106488 b
1
= 0.21027055620056
b
2
= 0.69347695849584 b
2
= 0.77146177104735
b
3
= 1.49954326711260 b
3
= 0.86701492190888
b
4
= 0.70646056806109 b
4
= 1.74585874591746
b
5
= 0.70122570676988
n=7 K
n
=0.02043062924342 n=8 K
n
= 0.01021531462171
b
0
= 0.02043062924342 b
0
= 0.01286031916675
b
1
= 0.16612634957256 b
1
= 0.07293732194127
b
2
= 0.38263807763868 b
2
= 0.35870427523376
b
3
= 1.14459656515260 b
3
= 0.59822138558167
b
4
=1.03954580250709 b
4
= 1.57958072373214
b
5
= 1.99366531716017 b
5
= 1.21171207766297
b
6
= 0.69809070637012 b
6
= 2.24225292847038
b
7
= 0.69606454940671
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.3. LA APROXIMACI

ON DE CHEBYSHEV 103
Ejemplo 4.3.1 Dise nar un ltro pasa-bajas Chebyshev normalizado con
rizo de 2dB y una atenuaci on de 20 dB o mayor a una frecuencia de 1.5
rad/s en adelante.
Soluci on:
De las guras 4.16 y 4.17 observamos que en =
c
= 1 se cumple la
1
1/(1+
2
)
1/(A
2
)
1

r

Figura 4.16: Respuesta en frecuencia pasa-bajas Chebyshev n impar.
1
1/(1+
2
)
1/(A
2
)
1

r

Figura 4.17: Respuesta en frecuencia pasa-bajas Chebyshev n par.
siguiente relaci on:
20 log [H(j1)[ = 20 log
_
1
1 +
2
_
1/2
= 10 log
_
1
1 +
2
_
= 2,
mientras que en =
r
20 log [H(j1.5)[ = 20 log

_
1
A
2
_
1/2

10 log(1/A
2
) = 20.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
104 4.3. LA APROXIMACI

ON DE CHEBYSHEV
Resolviendo para en (4.46) obtenemos un valor para de 0.76478, y para
A en (4.46) obtenemos A = 10. Estos dos valores son necesarios en el c alculo
del orden n del ltro, ya que, aplicando (4.32) tenemos
n =
_cosh
1
_
A
2
1

_
cosh
1
_

1
_
_
=
_cosh
1
_
99
0.76478
_
cosh
1
_
1.3
1
_
_
=
_
4.3
_
= 5
Entonces requerimos de un ltro prototipo de Chebyshev de quinto orden
cuya funci on de transferencia est a dada por:
H
5
(s) =
0.081722
s
5
+ 0.70646s
4
+ 1.49954s
3
+ 0.69347s
2
+ 0.45934s + 0.08172
.
La respuesta en frecuencia de H
5
(s) se muestra en la gura 4.18. Puede
observarse que se cumple el requerimiento de -2 dB a la frecuencia de corte
de 1 rad/s.
10
0
60
50
40
30
20
10
0
10
Frecuencia (Hz)
G
a
n
a
n
c
i
a

e
n

(
d
B
)
Figura 4.18: Respuesta en frecuencia Chebyshev del ejemplo 4.3.1.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.4. CONSTRUCCI

ON DE TABLAS DE DISE

NO DE FILTROS
NORMALIZADOS 105
4.4. Construcci on de tablas de dise no de ltros
normalizados
Antes de continuar con algunos ejemplos de dise no de ltros Chebyshev,
conviene introducir una forma de construir tablas de dise no que pueden ser
muy utiles cuando no se tiene una tabla completa. Para esto haremos uso
de el ambiente de programaci on Matlab. Con esto se podr an obtener los
valores de ltros normalizados o no, tipo Butterworth, Chebyshev, Elpticos,
entre otros.
4.4.1. Tabla de ltros de Butterworth usando Matlab
Los polinomios de Butterworth de la tabla 4.1 se pueden obtener usando
la siguiente instrucci on:
[num,den]=butter(n,1,s)
donde n es el orden del ltro, 1 =
c
y s indica anal ogico. As pues, para
diferentes valores de n tenemos los resultados que se muestran en la tabla
4.6.
4.4.2. Tabla de ltros de Chebyshev usando Matlab
Los polinomios de Chebyshev son obtenidos usando la siguiente instruc-
ci on:
[num,den]=cheby1(n,e,1,s),
donde n es el orden del ltro, e es el rizo permisible en la banda de paso,
1 =
c
y s indica anal ogico. As pues, para diferentes valores de n tenemos
las funciones de transferencia que se muestran en las tablas 4.7 a 4.9.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
106
4.4. CONSTRUCCI

ON DE TABLAS DE DISE

NO DE FILTROS
NORMALIZADOS
Tabla 4.6: Construcci on de H
Bn
(s)
orden n
Resultado de Matlab
n = 1
num = 0 1
den = 1 1
_

_
1
s + 1
n = 2
num = 0 0 1
den = 1 1.4142 1
_
1
s
2
+

2s + 1
n = 3
num = 0 0 0 1
den = 1 2.0 2.0 1
_
1
s
3
+ 2s
2
+ 2s + 1
n = 4
num = 0 0 0 0 1
den = 1 2.6131 3.4142 2.6131 1
_
H
B4
(s)
=
1
s
4
+ 2.6131s
3
+ 3.4142s
2
+ 2.6131s + 1
n = 5
.
.
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.4. CONSTRUCCI

ON DE TABLAS DE DISE

NO DE FILTROS
NORMALIZADOS 107
Tabla 4.7: Construcci on de H
Chn
(s) con rizo = 0.5 dB.
orden n
Resultados de Matlab
n = 1
num = 0 2.8628
den = 1 2.8628
_
2.8628
s + 2.8628
n = 2
num = 0 0 1.4314
den = 1 1.4256 1.5162
_
1.4314
s
2
+ 1.4256s + 1.5162
n = 3
num = 0 0 0 0.71569379
den = 1 1.2529129 1.5348954 0.71569379
_
=
0.7156
s
3
+ 1.25291s
2
+ 1.5348s + 0.7156
n = 4
num = 0 0 0 0 0.35784689
den = 1 1.197385 1.7168662 1.0254552 0.379050
_
=
0.3578
s
4
+ 1.1973s
3
+ 1.7168s
2
+ 1.0254s + 0.379
n = 5
.
.
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
108
4.4. CONSTRUCCI

ON DE TABLAS DE DISE

NO DE FILTROS
NORMALIZADOS
Tabla 4.8: Construcci on de H
Chn
(s) con rizo = 1 dB.
orden n
Resultados de Matlab
n = 1
num = 0 1.96522
den = 1 1.96522
_
1.96522
s + 1.96522
n = 2
num = 0 0 0.98261
den = 1 1.09773 1.102510
_
0.98261
s
2
+ 1.09773s + 1.10251
n = 3
num = 0 0 0 0.4913066
den = 1 0.9883412 1.238409 0.4913066
_
=
0.4913066
s
3
+ 0.9883412s
2
+ 1.238409s + 0.4913
n = 4
num = 0 0 0 0 0.2456533
den = 1 0.9528113 1.453924 0.7426193 0.275627
_
=
0.2456533
s
4
+ 0.9528113s
3
+ 1.453924s
2
+ 0.742619s + 0.27562
n = 5
.
.
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.4. CONSTRUCCI

ON DE TABLAS DE DISE

NO DE FILTROS
NORMALIZADOS 109
Tabla 4.9: Construcci on de H
Chn
(s) con rizo = 2 dB.
orden n
Resultados de Matlab
n = 1
num = 0 1.307560
den = 1 1.307560
_
1.30756
s + 1.30756
n = 2
num = 0 0 0.65378
den = 1 0.803816 0.823060
_
0.65378
s
2
+ 0.803816s + 0.82306
n = 3
num = 0 0 0 0.326890
den = 1 0.737821 1.0221903 0.32689
_
=
0.326890
s
3
+ 0.737821s
2
+ 1.0221903s + 0.32689
n = 4
num = 0 0 0 0 0.1634450
den = 1 0.7162149 1.2564819 0.516798 0.2057651
_
=
0.1634450
s
4
+ 0.7162149s
3
+ 1.256481s
2
+ 0.5167s + 0.2057651
n = 5
.
.
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
110
4.4. CONSTRUCCI

ON DE TABLAS DE DISE

NO DE FILTROS
NORMALIZADOS
Ejemplo 4.4.1 Dise nar un ltro pasa-bajas Chebyshev que tenga un rizo
de -2 dB en la banda pasante y una frecuencia de corte de 60 rad/s, con una
atenuaci on de 20 dB al menos en 80 rad/s.
Soluci on:
El procedimiento general es cambiar las especicaciones a un ltro (pro-
totipo) pasa-bajas normalizado. Para esto calculamos la frecuencia crtica

cr
=

2

1
= 80/60 = 1.333. Luego dise namos un ltro Chebyshev norma-
lizado con 2 dB de rizo en 1 rad/s, y 20 dB de atenuaci on en 1.33 rad/s.
Entonces obtenemos n = 5, as que de H
C
5
(s) del ejemplo 4.3.1 s olo necesi-
tamos aplicar una transformaci on pasa-bajas pasa-bajas con s = s/60.
En la gura 4.19 se muestra la respuesta en frecuencia para este caso.
10
0
10
1
10
2
40
35
30
25
20
15
10
5
0
5
10
Frecuencia (rad/s)
G
a
n
a
n
c
i
a

e
n

(
d
B
)
Figura 4.19: Respuesta en frecuencia Chebyshev del ejemplo 4.4.1.
Ejemplo 4.4.2 Dise nar un ltro pasa banda (FPB) Chebyshev con las si-
guientes especicaciones: -2dB de rizo en la banda de frecuencias de 200 Hz
a 3.5 kHz, y -30 dB o mayor a frecuencias menores de 50 Hz y mayores de
10kHz.
Soluci on:
Comenzamos encontrando la frecuencia crtica para determinar el orden del
ltro prototipo.

1
= 2(50),

L
= 2(200),

U
= 2(3500),

2
= 2(10000),
A =

2
1
+
L

1
(
U

L
)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.5. FILTROS EL

IPTICOS 111
= 4.2424
y
B =

2
2

2
(
U

L
)
= 3.009.
As pues,
cr
= mn[A[, [B[ = 3.009 y = 0.76478 mientras que A
r
=

10
k2/20
= 31.6277, y
n =
_
cosh
1
(

31.62
2
1/0.76478)
cosh
1
(3.009)
_
=
_
2.4998
_
= 3.
La funci on prototipo ser a
H
n
(s) =
0.3268
s
3
+ 0.7378s
2
+ 1.022s + 0.3268
.
Finalmente, aplicamos la transformaci on PbPB con
H(s) = H
n
(s)

s
s
2
+
L

U
s(
U

L
)
=
2.913957075 10
12
s
3
s
6
+b
5
s
5
+b
4
s
4
+b
3
s
3
+b
2
s
2
+b
1
s +b
0
,
donde
b
0
= 2.11044155 10
22
,
b
1
= 1.1683170 10
19
,
b
2
= 1.44354926 10
16
,
b
3
= 3.75949469 10
12
,
b
4
= 5.223647 10
8
,
b
5
= 1.5298369 10
4
.
En la gura 4.20 se muestra la respuesta en frecuencia para el ltro
pasa-banda del ejemplo 4.4.2.
4.5. Filtros elpticos
Una clase de ltros que presentan una cada m as pronunciada en la
banda de transici on son los ltros elpticos.

Estos presentan rizo tanto en la
banda pasante como en la banda de rechazo, y un peque no aumento en la
complejidad del c alculo de la funci on de transferencia.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
112 4.5. FILTROS EL

IPTICOS
10
2
10
3
60
50
40
30
20
10
0
10
Frecuencia (Hz)
G
a
n
a
n
c
i
a

e
n

(
d
B
)
Figura 4.20: Respuesta en frecuencia Chebyshev pasa-banda del ejemplo 4.4.2.
Los ltros elpticos se basan en las propiedades de la funci on elptica,
la cual fue analizada primero por Jacobi en 1829 y que ha sido estudiada
extensivamente en algunos tratados de matem aticas. Para nuestros prop osi-
tos es importante reconocer que la funci on elptica jacobiana, denotada por
sn(u), es una funci on doblemente peri odica de la variable compleja u, es
decir, peri odica en eu, y en 1mu, y analtica en el plano-u, excepto en
los polos simples de la funci on. El patr on b asico de dos ceros y dos polos se
repite innitamente a lo largo de los dos ejes. El desarrollo matem atico de
los ltros elpticos es algo m as complicado que los polinomios de Chebyshev.
Un ltro elptico se basa en una transformaci on de una funci on
T
2
(w) =
1
1 +
2
sn
2
(w, k)
, (4.46)
desde el plano complejo-w al plano complejo-s, donde
w = sn
1
(z, k) =
_
z=sn(w,k)
0
dt
_
(1 t
2
)(1 k
2
t
2
)
(4.47)
es una integral elptica de primera clase, z = sn(w, k) es una funci on elptica,
k es el m odulo y 0 < k < 1. Puede verse, a partir del patr on de ceros y polos
que para valores reales de w, T
2
(w) tiene un m aximo en w = 2mK (m es
un entero) y un mnimo en w = (2m+2)K (este en el comportamiento que
se desea en la banda de paso) donde K es una constante dada por:
K = K(k) =
_
1
0
dt
_
(1 t
2
)(1 k
2
t
2
)
.
Es importante notar que a lo largo de 1m(w) = K

, T
2
(w) = 0 en w =
2mK = jK

y T
2
(w) tiene un m aximo en w = (2m + 1)K = jK

; y ese es
el comportamiento en amplitud deseado en la banda de rechazo. Para m as
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.5. FILTROS EL

IPTICOS 113
detalles sobre las propiedades de las funciones elpticas se puede consultar
la bibliografa indicada al nal del captulo.
El ltro elptico normalizado tiene una respuesta en frecuencia dada por
[H
n
(j)[
2
=
1
1 +
2
R
2
n
()
, (4.48)
donde R
n
() es la funci on elptica. Como en los ltros Chebyshev, tene-
mos dos casos, uno para n par y el otro para n impar. De igual manera es
conveniente emplear ltros normalizados como una base para obtener ltros
pasa-bajas, pasa-altas, pasa-banda, y rechazo de banda.
Para el ltro elptico, = 1 es la media geometrica de
1
y
2
, es decir,
(
1

2
)
1/2
= 1.
El par ametro que representa lo pronunciado de la banda de transici on est a de-
nido por la raz on

r
=
2
/
1
.
La funci on de transferencia para el ltro elptico pasa-bajas normalizado
est a dada como sigue:
H
n
(s) =
H
0
(s +s
0
)
(n1)/2

i=1
s
2
+A
0i
s
2
+B
1i
+B
0i
, n impar, (4.49)
H
n
(s) = H
0
n/2

i=1
s
2
+A
0i
s
2
+B
1i
+B
0i
, n par. (4.50)
El ltro queda especicado determinando el orden n, H
0
, el polo simple
s
0
, y los coecientes A
0i
, B
1i
B
0i
. Estos par ametros son determinados a
partir de las especicaciones de dise no, , A, y
r
, o por su equivalente R
p
,
R
r
y
r
, donde
R
p
= 20 log
_
1
(1 +
2
)
1/2
_
= 20 log [H
n
(j
1
)[,
R
s
= 20 log(1/A
2
) = 20 log [H
n
(j
2
)[,
R
p
= rizo en la banda de paso en dB,
R
r
= rizo en la banda de rechazo en dB.
4.5.1. Dise no de ltros elpticos anal ogicos en Matlab
Para el dise no de ltros elpticos se har a uso del ambiente de c omputo
Matlab donde la orden de entrada tiene la siguiente forma:
[num,den] = ellip(N,Rp,Rs,Wn,s),
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
114 4.5. FILTROS EL

IPTICOS
donde,
num = es el numerador, un polinomio en potencias decrecientes de s,
den = es el denominador, un polinomio en potencias decrecientes de s,
N = orden del ltro,
Rp = rizo en la banda de paso,
Rs = riso en la banda de rechazo,
Wn = frecuencia natural del ltro.
Si Wn es un vector de dos elementos Wn=[W1 W2], entonces se obtiene un
ltro pasa-banda de orden 2N, con una banda de paso W1 < W < W2.
Para obtener un dise no pasa-altas se emplea:
[num,den] = ellip(N,Rp,Rs,Wn,high,s).
Si, nuevamente, Wn es un vector de dos elementos, entonces se obtiene un
ltro rechazo-de banda con
[num,den] = ellip(N,Rp,Rs,Wn,stop).
El orden N del ltro y la frecuencia natural Wn, se obtienen con:
[N, Wn] = ellipord(Wp, Ws, Rp, Rs, s),
donde
Wp = la frecuencia (nal) de la banda de paso y
Ws = la frecuencia (inicial) de la banda de rechazo.
Tambien se puede obtener el resultado en forma de ceros, polos y ganan-
cia, empleando
[Z,P,K] = ellip(...),
donde los ceros estar an en un vector Z de N columnas, y los polos en un
vector P de N columnas. La ganancia K es un escalar. Para otras formas en
el resultado ver la gua del usuario de Matlab.
Ejemplo 4.5.1 Dise nar un ltro pasa-bajas elptico con las siguientes es-
pecicaciones: frecuencia de corte de 1000 Hz con rizo de 3 dB, frecuencia
de rechazo a 2000 Hz con -60 dB de atenuaci on.
Soluci on:
Bajo el ambiente de Matlab denimos los siguientes valores y obtenemos
el orden del ltro introduciendo las siguientes lneas:
Wp = 2*pi*1000;
Ws = 2*pi*2000;
Rp = 3;
Rs = 60;
[N,Wn] = ellipord(Wp,Ws,Rp,Rs,s);
obteniendo el resultado siguiente:
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
4.5. FILTROS ELIPTICOS 115
N = 5
Wn = 6.2832e+003.
Con este resultado introducimos:
[num,den] = ellip(N,Rp,Rs,Wn,s)
Ahora obtenemos la respuesta en frecuencia con:
[H,w] = freqs(num,den);\\
Mag = abs(H);
En lugar de emplear la funci on plot emplearemos la funci on semilogx para
obtener una mejor presentaci on en la gr aca de la respuesta en frecuencia.
Adem as, calculamos la ganancia en dB haciendo 20*log10( ). As pues
introducimos la siguiente orden
semilogx(w/(2*pi), 20*log10(Mag))
Si deseamos que aparezcan las unidades en los ejes, entonces introducimos:
xlabel(Frecuencia (Hz))
ylabel(Ganancia en (dB))
Finalmente, colocamos una rejilla para una mejor lectura de las ganancias
y frecuencias en los puntos importantes, con:
grid
La gura 4.21 muestra la gr aca de la respuesta en frecuencia, y puede
observarse que se cumple con las especicaciones de dise no.
10
1
10
2
10
3
10
4
10
5
100
90
80
70
60
50
40
30
20
10
0
10
Frecuencia (Hz)
G
a
n
a
n
c
i
a

e
n

(
d
B
)
Figura 4.21: Respuesta en frecuencia del ejemplo 4.5.1.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
116 BIBLIOGRAF

IA
Bibliografa
[1] Gabel, R. A., Roberts, R. A., Se nales y Sistemas Lineales, LIMU-
SA,1975.
[2] Haykin, S., Van Veen, B., Se nales y Sistema, LIMUSA Wiley, 2001.
[3] Mitra, S. K., Digital Signal Processing: a computer based approach,
McGraw-Hill, 1998.
[4] Ne H. P. Jr., Continuous and Discrete Linear Systems, Harper & Row
Publishers, 1984.
[5] Oppenheim, A. V., Young, I. T., Se nales y Sistemas, Prentice Hall
Hispanoamericana, 1994.
[6] Papoulis A., Signal Analysis, McGraw-Hill ISE, 1977.
[7] El-Sharkawy M., Digital Signal Processing Applications with the Moto-
rolas DSP56002 Processor, Prentice Hall PTR, 1996.
Problemas
Problema 4.1 La funci on del sistema H
n
(s) representa un ltro de But-
terworth normalizado a 1 rad/s de orden-n. Para n = 5,
a) Escriba H
5
(s) en forma polinomial y en forma factorizada.
b) Cu al es la ganancia [H
5
(s)[ en = 1?, cu al es la ganancia en dB?
c) Repita los incisos anteriores 4.1a) y 4.1b) para un ltro Chebyshev
tipo I, con = 0.7647831.
Problema 4.2 Dado que G(s) = 1/(s
2
+

2s + 1) representa un ltro
Butterworth normalizado de segundo orden,
a) Dibuje 20 log [G(j)[ para desde 0 a 100. A que frecuencia, en
rad/s, tiene una magnitud de -3 dB?, a cu al tiene -20 dB?
b) Aplique una transformaci on PbPA, s 10/s, a la G(s) para
obtener un nuevo ltro H
1
(s), y trace la gr aca de 20 log [H
1
(j)[
para de 0 a 100. Tiene el nuevo ltro el comportamiento que se
esperaba? a que frecuencia en rad/s tiene la magnitud 3dB abajo?
cu al est a 20 dB abajo?
c) Aplique la transformaci on s 5s/(s
2
+50) a G(s), para obtener un
nuevo ltro H
2
(s). Que tipo de ltro resulta y cu ales son las frecuen-
cias de interes? Dibuje 20 log [H
2
(j)[ para vericar sus conclusiones.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 117
Problema 4.3 Compruebe que T
n
(1) = (1)
n
.
Problema 4.4 Calcule T
5
(x) y T
6
(x).
Problema 4.5 Demuestre que de
[T
n
(
2
/
c
)[ =

A
2
1

,
resolviendo para n, se obtiene
n =
cosh
1
_
A
2
1

_
cosh
1
_

1
_ .
Problema 4.6 Dise ne a) un ltro Butterworth, y b) un ltro Chebyshev
pasa-bajas anal ogicos que tengan una atenuaci on de 3 dB a una frecuencia
de corte de 100 rad/s y una atenuaci on de 25 dB o mayor para frecuencias
arriba de 250 rad/s. Dibuje 20 log [H(j)[ para los dos ltros y muestre
que se satisfacen los requerimientos a las frecuencias crticas.
Problema 4.7 Cu al es el orden n de un ltro Chebyshev pasa-bajas que
tiene una banda de paso desde 0 a 200 Hz con un rizo aceptable de 1dB y una
banda de rechazo monot onica con -40 dB en y m as all a de 250 Hz? Repita
el dise no para un ltro Butterworth y compare las ns. A que conclusiones
puede llegar?
Problema 4.8 Se desea dise nar un ltro pasa-bajas anal ogico que tenga
-0.5 dB a una frecuencia de corte de 75 Hz y que tenga m as de 20 dB de
atenuaci on a frecuencias mayores a 150 Hz. Encuentre H(s) que satisfaga
esos requerimientos y dibuje 20 log [H(j)[ y arg H(j) para
a) Filtro Butterworth (respuesta m aximamente plana).
b) Filtro Chebyshev tipo I (equirizo en la banda de paso).
c) Filtro elptico.
Compare el orden de cada ltro y comente sus resultados.
Problema 4.9 Dise ne un ltro anal ogico pasa-banda que satisfaga las si-
guientes especicaciones:
1. Frecuencias de paso inferior y superior de 100 Hz y 3.8 kHz, respecti-
vamente, con -3 dB de atenuaci on.
2. Atenuaci on en la banda de rechazo de 20 dB a 20Hz y 8 kHz.
3. Sin rizo en la banda de paso ni en la banda de rechazo.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
118 BIBLIOGRAF

IA
Compruebe sus resultados dibujando 20 log [H(j)[ y arg H(j).
Problema 4.10 Repita el Problema 4.9 para -3 dB a 50 Hz y 20 kHz, y
una atenuaci on de 20 dB en 10 Hz y 60 kHz.
Problema 4.11 Dise ne a) un ltro Butterworth, y b) un ltro Chebyshev
pasa-altas que permitan el paso de se nales con frecuencias mayores a 100Hz
con una atenuaci on no mayor a 2 dB y tenga una atenuaci on mayor de 20
dB a frecuencias menores de 20 Hz.
Problema 4.12 Se encontr o que un ltro tiene la siguiente funci on de
transferencia:
H(s) =
s
s + 1
a) Cu al es el orden del ltro?
b) Trace la gr aca de la respuesta en frecuencia en magnitud. Tome s olo
tres puntos de frecuencia: en = 0.1 rad/s, 1 rad/s, y 10 rad/s.
c) Que tipo de ltro es este?: FPb (ltro pasa-bajas), FPA (ltro pasa-
altas), o FPB (ltro pasa-banda). Podra decirse que es un ltro normali-
zado?
Problema 4.13 Dise ne un ltro pasa bajas Chebyshev tipo 1 con las si-
guientes especicaciones:
a) Frecuencia de corte de 100 Hz, con -2 dB de rizo.
b) Frecuencia de rechazo de 1500 Hz con -30 dB de atenuaci on.
Problema 4.14 Se tiene un ltro anal ogico Butterworth normalizado de
segundo orden, es decir,
H
a
(s) =
1
s
2
+

2s + 1
.
Realizar una transformaci on anal ogico-anal ogico para obtener un ltro anal ogi-
co Butterwoth con respuesta en frecuencia Pasa Altas, con una frecuencia
de corte de 500 Hz.
Problema 4.15 Se tiene un ltro cuya funci on de transferencia est a dada
por
H(s) =
s
s + 10
a)Encuentre la ganancia del ltro, [H(j)[ (en magnitud), y la fase theta(j),
si = 10 rad/s.
b) Cu al es la frecuencia de corte de -3dB.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5
Dise no de ltros en tiempo discreto
En este captulo se trata el dise no de ltros digitales con respuesta in-
nita al impulso (RII). El dise no de estos ltros se basa en transformaciones
que permiten convertir la funci on de transferencia de ltros anal ogicos H(s),
en ltros digitales o de tiempo discreto H(z).
5.1. Dise no por soluci on directa de la ecuaci on en
diferencias
Un sistema lineal en tiempo discreto e invariante al desplazamiento se
puede caracterizar por su funci on de transferencia H(z), o por una ecuaci on
en diferencias.
Representando este sistema en tiempo discreto por su funci on de trans-
ferencia tenemos,
M

k=0
b
k
y
k
=
N

k=0
a
k
x
k
; M N, (5.1)
entonces, aplicando la transformada Z,
H(z) =

N
k=0
a
k
z
k

M
k=0
b
k
z
k
, (5.2)
cuya respuesta en frecuencia est a dada por
H(e
j
) =

N
k=0
a
k
e
jk

M
k=0
b
k
e
jk
. (5.3)
Podemos suponer que nuestro ltro digital act ua como un ltro anal ogi-
co, desde el punto de vista de la entrada y salida anal ogicas del ltro, seg un
119
120
5.1. DISE

NO POR SOLUCI

ON DIRECTA DE LA ECUACI

ON EN
DIFERENCIAS
se presenta en la gura 5.1, donde x
n
= x
a
(nT) y y
n
= y
a
(nT) son las ver-
siones muestreadas de x
a
(t) y y
a
(t), y H(z) es un sistema lineal en tiempo
discreto.
Esto ser a nuestro punto de partida en el dise no de ltros digitales.
SLIT
tiempo continuo
E E
x
a
(t) y
a
(t)
H(z) D/A A/D E E E E
x
n
y
n
x
a
(t) y
a
(t)
Figura 5.1: Sistema anal ogico equivalente en tiempo discreto.
Si nuestro ltro anal ogico est a representado por la siguiente ecuaci on
diferencial:
N

k=0
p
k
d
k
dt
k
y
a
(t) =
M

k=0
q
k
d
k
dt
k
x
a
(t), (5.4)
entonces, de la transformaci on de Laplace tenemos
H(s) =

N
k=0
q
k
s
k

M
k=0
p
k
s
k
. (5.5)
Para trabajar en el dominio del tiempo discreto, podemos aproximar las
derivadas por diferencias hacia atr as. Recuerdese la denici on de derivada
como
d
dt
f(t) = lm
T0
f(t) f(t T)
T
. (5.6)
Entonces, para la primera derivada tenemos
_
(1)
[y(n)] =
[y(n) y(n 1)]
T
, (5.7)
donde _
(k)
indica la primera diferencia. Para ordenes mayores tenemos
_
(k)
y[n] = _
(1)
_
(k1)
y[n]. (5.8)
As, podemos escribir
N

k=0
p
k
_
(k)
y
a
(nT) =
M

k=0
q
k
_
(k)
x
a
(nT). (5.9)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.1. DISE

NO POR SOLUCI

ON DIRECTA DE LA ECUACI

ON EN
DIFERENCIAS 121
(5.9) es una aproximaci on numerica para obtener la versi on muestreada
de y(t). Aplicando la transformada Z a la primera diferencia tenemos
Z_
(1)
y[n] = Z
y[n] y[n 1]
T

=
1
T
Y (z)(1 z
1
) (5.10)
y para la k-esima diferencia,
Z_
(k)
y[n] = Y (z)
_
(1 z
1
)
T
_
k
. (5.11)
Haciendo T = 1, podemos escribir y
a
(nT) como y[n], y x
a
(t) como x[n], as,
N

k=0
p
k
Z_
(k)
y[n] =
M

k=0
q
k
Z_
(k)
x[n],
N

k=0
p
k
_
(1 z
1
)
T
_
k
Y (z) =
M

k=0
q
k
_
(1 z
1
)
T
_
k
X(z), (5.12)
de modo que nalmente
H(z) =
Y (z)
X(z)
=

N
k=0
p
k
[
(1z
1
)
T
]
k

M
k=0
q
k
[
(1z
1
)
T
]
k
. (5.13)
De (5.13) podemos ver, compar andola con (5.5), que H(z) se puede ob-
tener reemplazando s por [(1 z
1
)/T] en H(s), esto es
H(z) = H(s)

s=
(1z
1
)
T
. (5.14)
Lo anterior corresponde a una transformaci on (en algunos textos se le llama
mapeo) del plano-s al plano-z, de modo que
s =
1 z
1
T
, z =
1
1 sT
(5.15)
La respuesta en frecuencia resultante se puede obtener haciendo s = j
en el dominio anal ogico, entonces
z =
1
1 jT
. (5.16)
Se puede demostrar que con esta transformaci on el eje j, del plano-s,
es transformado en un crculo de radio 0.5 centrado en (x = 0.5, y = 0)
sobre el plano-z, como se muestra en la gura 5.2.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
122 5.2. LA TRANSFORMACI

ON BILINEAL
E
T
imag
real
y
x
= 0
+
= 0

= +
=
Q
s
plano-s
plano-z
Figura 5.2: Transformaci on del plano-s al plano-z.
As, los polos del semiplano izquierdo del plano-s estar an dentro del
crculo unitario, lo que signica que esta transformaci on entregar a un ltro
digital estable a partir de un ltro anal ogico estable; sin embargo, la forma de
la respuesta en frecuencia de H(z) ser a diferente a la respuesta en frecuencia
de H(s). Recuerdese que obtenemos la respuesta en frecuencia del ltro
digital evaluando H(z) sobre el crculo unitario haciendo z = e
j
.
5.2. La transformaci on bilineal
Otra soluci on a la ecuaci on en diferencias est a basada en la aplicaci on
de la regla del trapecio para aproximar la integraci on.
Recordando la regla del trapecio tenemos,
_
t
2
t
1
x()d =
t
2
t
1
2
[x(t
1
) +x(t
2
)]. (5.17)
Sup ongase que tenemos una funci on de transferencia anal ogica dada por:
H
a
(s) =
1
s
, (5.18)
cuya respuesta al impulso es
h(t) = L
1
H
a
(s) =
_
1, si t 0
+
0, si t 0

,
(5.19)
la respuesta a una entrada arbitraria x(t) es
y(t) =
_
t
0
x()h(t )d, (5.20)
haciendo t = t
1
tenemos
y(t
1
) =
_
t
1
0
x()h(t
1
)d, (5.21)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.2. LA TRANSFORMACI

ON BILINEAL 123
y si t = t
2
y(t
2
) =
_
t
2
0
x()h(t
2
)d, (5.22)
si adem as, h(t
2
) = h(t
1
) = 1, entonces
y(t
2
) y(t
1
) =
_
t
2
t
1
x()d, (5.23)
y aplicando la regla del trapecio para aproximar la integraci on
y(t
2
) y(t
1
)
t
2
t
1
2
[x(t
1
) +x(t
2
)]. (5.24)
Ahora, haciendo t
2
= nT y t
1
= nT T
y(nT) y(nT T) =
T
2
[x(nT T) +x(nT)], (5.25)
y de la transformada Z
Y (z) z
1
Y (z) =
T
2
[z
1
X(z) +X(z)], (5.26)
de aqu que
H(z) =
Y (z)
X(z)
=
T
2
z + 1
z 1
. (5.27)
Nuevamente, comparando H(z) con H
a
(s) se puede ver que la funci on
de transferencia en tiempo discreto se obtiene como
H(z) = H
a
(s)

s
2
T
z1
z+1
. (5.28)
La (5.28) es conocida como la transformaci on bilineal, y su efecto en la
transformaci on del plano s al plano z se muestra en la gura 5.3. La trans-
formaci on bilineal tiene las siguientes propiedades:
1. El eje j del plano-s cae sobre el crculo unitario en el plano-z.
2. El semiplano izquierdo del plano-s cae dentro del crculo unitario.
3. No hay una relaci on lineal entre las frecuencias anal ogicas y las fre-
cuencias del ltro digital.
Como resultado de la propiedad n umero 3, los ltros digitales tendr an
la misma respuesta en amplitud s olo a bajas frecuencias ya que la relaci on
entre y es no lineal. Esto se puede demostrar haciendo z = e
j
y s = j,
de modo que
=
2
T
tan(
T
2
)
= 2 tan
1
(
T
2
) (5.29)
A esta relaci on no lineal de las frecuencias y se le llama el efecto de com-
badura warping de la transformada bilineal. Por simplicidad le llamaremos
efecto de deformado.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
124 5.2. LA TRANSFORMACI

ON BILINEAL
E
T
imag
real
y
x
= 0
+
= 0

= +
=

plano-s
plano-z
Figura 5.3: Transformaci on bilineal.
5.2.1. Dise no de ltros digitales por la transformaci on bili-
neal
Como se vio en la secci on 5.2, al aplicar la transformaci on bilineal a
un ltro anal ogico se presentar a el efecto de deformaci on en las frecuencias
digitales. Para obtener las frecuencias de corte deseadas debemos dise nar el
ltro anal ogico con las frecuencias dadas por

1
=
2
T
tan(
T
2
). (5.30)
Esta operaci on se conoce como pre-deformado. Luego, dise namos el ltro
anal ogico con estas frecuencias pre-deformadas para, posteriormente, apli-
carle la transformaci on bilineal para obtener la H(z) deseada.
El procedimiento de dise no es:
1. Pre-deformar las especicaciones del ltro digital.
2. Dise nar el ltro anal ogico que satisfaga esas especicaciones anal ogi-
cas.
3. Aplicar la transformaci on bilineal.
Para simplicar los c alculos en el dise no de ltros digitales por la trans-
formaci on bilineal, se pueden hacer lo siguientes cambios sin que se afecten
los resultados:
Para el pre-deformado de las frecuencias digitales
i
se emplear a la
siguiente expresi on para obtener las frecuencias anal ogicas de dise no

i
:

i
= tan(

i
2Fs
), (5.31)
donde Fs es la frecuencia de muestreo.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.2. LA TRANSFORMACI

ON BILINEAL 125
Para la transformaci on bilineal se emplear a la expresi on simplicada:
s =
z 1
z + 1
(5.32)
Note que se ha eliminado el termino 2/T de ambas expresiones, obte-
niendo de este modo una simplicaci on en los c alculos.
Ejemplo 5.2.1 Dise nar un ltro digital de primer orden con frecuencia de
corte de 1 rad/s. Considerar T = 1.
Soluci on:
Pre-deformando la frecuencia digital tenemos

1
= tan
2 0.1591
2
= 0.5460.
Como se desea un ltro de primer orden, no hay necesidad de calcular n
puesto que es igual a 1. As que la funci on prototipo ser a H(s) = 1/(s + 1)
con escalamiento en frecuencia
H(s) =
1
(s + 1)
ss/0.5460
=
1
1.83123s + 1
.
Aplicando la transformada bilineal tenemos
H(z) =
0.3532 + 0.3532z
1
1 0.29359z
1
.
Ejemplo 5.2.2 Dise nar un ltro digital que satisfaga las siguientes especi-
caciones:
a) Banda de paso y de rechazo monot onicas.
b) Frecuencia de corte /2 rad/s con -3 dB.
c) Atenuaci on de al menos 15 dB a una frecuencia de 3/4.
Emplear la transformada bilineal y T=1.
Soluci on:
Predeformando las especicaciones de frecuencia digital para obtener las
frecuencias anal ogicas tenemos

1
= tan(/4) = 1.000,

2
= tan(3/8) = 2.4142135.
El orden del ltro anal ogico ser a
n =
log
_
(10
0.3
1)/(10
1.5
1)

2 log(1/2.4142135)
|
= 1.94383| = 2,
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
126
5.3. DISE

NO DE FILTROS DIGITALES RII USANDO


TRANSFORMACIONES DIGITAL-A-DIGITAL
as que la funci on prototipo es
H(s) =
1
s
2
+

2s + 1
[
s
s/1,
ya que

r
=
1.000
(10
0.3
1)
1/4
= 1.00118.
Aplicando la transformada bilineal resulta
H(z) =
1
s
2
+

2s + 1
[
s
z1
z+1
=
0.29289 + 0.58579z
1
+ 0.29289z
2
1 + 0.17158z
2
5.3. Dise no de ltros digitales RII usando trans-
formaciones digital-a-digital
Se ha mostrado, en las secciones anteriores, que es posible encontrar
una funci on de transferencia en tiempo discreto H(z) para ltros digitales
Butterworth normalizados, aplicando la transformaci on bilineal. Podemos
construir, nuevamente, un cat alogo de funciones de transferencia en tiem-
po discreto H(z) para ltros Butterworth, Chebyshev, y elpticos. Ahora
la pregunta es podemos dise nar un ltro digital con algunas especicacio-
nes dadas usando solamente funciones de transferencia en tiempo discreto
normalizadas?
S, ya que, de la misma manera que se dise naron ltros anal ogicos, usan-
do escalamiento en frecuencia (transformaciones anal ogico-a-anal ogico), se
puede denir un conjunto de transformaciones digital-a-digital. Partiendo de
un ltro digital pasa-bajas normalizado podemos obtener ltros pasa-altas,
pasa-banda, y rechazo de banda. Este juego de transformaciones, dado en
la tabla 5.1, fue propuesto por Constantinides (1970), donde Pb signica
pasa-bajas, PA pasa-altas, PB pasa-banda, y RB rechazo de banda.
5.3.1. Determinaci on del orden n para un ltro digital But-
terworth
Para un ltro pasa-bajas, usualmente tenemos una frecuencia de corte

1
y una frecuencia de rechazo
2
con ganancias k
1
y k
2
respectivamente,
donde
0 20 log [H(e
j
1
)[ k
1
20 log [H(e
j
2
)[ k
2
,
(5.33)
entonces,
n =
log[(10
k
1
/10
1)/(10
k
2
/10
1)]
2 log[
tan(
1
T/2)
tan(
2
T/2)
]
, (5.34)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.3. DISE

NO DE FILTROS DIGITALES RII USANDO


TRANSFORMACIONES DIGITAL-A-DIGITAL 127
Tabla 5.1: Transformaciones digital-a-digital.
Transformaci on: Ecuaciones:
Pb
p
aPb
p
z
1
=
z
1

1z
1
donde =
sen[(pp)/2]
sen[(p+p)/2]
Pb
p
aPA
p
z
1
=
z
1
+
1+z
1
donde =
cos[(p+p)/2]
cos[(pp)/2]
Pb
p
aPB
p
z
1
=
z
2

2k
k+1
z
1
+
k1
k+1
k1
k+1
z
2

2k
k+1
z
1
+1
donde
=
cos[(
1
+
2
)/2]
cos[(
2

1
)/2]
y k = cot[(
2

1
)/2] tan(
p
T/2)
Pb
p
aRB
p
z
1
=
z
2

2
1+k
z
1
+
1k
1+k
1k
1+k
z
2

2
1+k
z
1
+1
donde
=
cos[(
2
+
1
)/2]
cos[(
2

1
)/2]
y k = tan[(
2

1
)/2] tan(
p
T/2)
para satisfacer el requisito de ganancia k
1
, seleccionamos una frecuencia
crtica

p
=
2 tan(
1
T/2)
(10
k
1
/10
1)
1/2n
, (5.35)
tal que

p
= 2 tan[(10
k
1
/10
1)
1/2n
2 tan(
1
T/2)] (5.36)
y nalmente,
H(z) = H
Bn
(z)[
z
1
=
z
1

1z
1
, (5.37)
donde
=
sen[(
p

p
)/2]
sen[(
p

p
)/2]
. (5.38)
Ejemplo 5.3.1 Se desea un ltro digital normalizado Butterworth de or-
den 1. Obtenga H(z) a) por transformaci on bilineal y b) empleando una
transformaci on digital-a-digital.
Soluci on:
a) Para aplicar la transformaci on bilineal, partiendo de una H(s) = 1/(s+1),
requerimos de un ltro anal ogico de primer orden pero con frecuencia de cor-
te
= tan(1/2) = 0.546302
H
a
(s) = H(s)[
s=s/0.546302
=
1
(
s
0.546302
) + 1
=
0.546302
s + 0.546302
.
Por transformaci on bilineal
H(z) = H
a
(s)[
s=
z1
z+1
=
0.546302
z1
z+1
+ 0.546302
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
128 5.4. REALIZACI

ON DE FILTROS DIGITALES RII


=
(z + 1)0.546302
z 1 + 0.546302 + 0.546302
=
0.546302(z + 1)
1.546302z 0.4536975
=
0.3532957896(1 z
1
)
1 0.293408z
1
.
b) Si, en cambio, aplicamos directamente la transformaci on bilineal sobre el
ltro anal ogico H(s) = 1/(s+1), obtendremos una H(z) con una frecuencia
de corte que no corresponde a la del ltro digital normalizado. Entonces,
aplicaremos una transformaci on digital-a-digital para obtener la H(z) de-
seada.
5.4. Realizaci on de ltros digitales RII
Por realizaci on se entiende la traducci on de la funci on de transferencia
H(z), primero en una estructura y despues en una ecuaci on en el domino del
tiempo, de modo que permita su implantaci on en el lenguaje propio de un
procesador de se nales digitales. Para el caso de ltros RII se tienen varias
estructuras posibles.
5.4.1. Forma directa I
Sea
H(z) =

M
k=0
b
k
z
k
1 +

N
k=1
a
k
z
k
, M N, (5.39)
entonces, de la transformada Z inversa tenemos
y(n) =
N

k=1
a
k
y(n k) +
M

k=0
b
k
x(n k). (5.40)
Una realizaci on del ltro RII, usando (5.40) es llamada forma directa I.
La gura 5.4 muestra tal realizaci on, donde se puede observar que el n umero
de bloques de retardo z
1
es igual a M +N.
5.4.2. Forma Directa II
Es posible obtener otra realizaci on descomponiendo H(z) en dos funcio-
nes: H
1
(z) y H
2
(z); donde H
1
(z) contiene s olo al denominador o polos de
H(z), y H
2
(z) contiene s olo al numerador o ceros de H(z). As, como se
muestra en la gura 5.5
H(z) = H
1
(z)H
2
(z) =
Y (z)
X(z)
, (5.41)
donde
H
1
(z) =
1
1 +

N
k=1
a
k
z
k
y (5.42)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.4. REALIZACI

ON DE FILTROS DIGITALES RII 129


z
1
z
1
z
1

E
E
E
E
T
z
1
z
1
z
1
E
T
'
'
'
x(n) y(n)
b
0
b
1
b
2
b
M
a
1
a
2
a
N
Figura 5.4: Forma directa I.
H
2
(z) =
N

k=0
b
k
z
k
. (5.43)
H
1
(z) H
2
(z) E E
w(n)
s olo-polos s olo-ceros
x(n) y(n)
Figura 5.5: Descomposici on de H(z).
La salida se obtiene calculando el resultado intermedio w(n) por:
W(z) = H
1
(z)X(z) =
1
1 +

N
k=1
a
k
z
k
X(z) (5.44)
y
Y (z) = H
2
(z)W(z) =
N

k=0
b
k
z
k
W(z) (5.45)
Tomando las transformadas Z inversas
w(n) = x(n)
N

k=1
a
k
w(n k) (5.46)
y
y(n) =
M

k=0
b
k
w(n k). (5.47)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
130 5.4. REALIZACI

ON DE FILTROS DIGITALES RII


z
1
z
1
z
1
z
1
z
1
z
1

T
'
'
' E
E
E
E
T
E E
x(n) y(n)
a
1
a
2
a
N
b
M
b
2
b
1
b
0
w(n)
Figura 5.6: Forma directa II.
En forma gr aca tenemos las estructuras que se muestran en la gura 5.6.
Puede verse que las dos ramas de los elementos de retardo se pueden
combinar en una sola, ya que se reeren a la misma versi on retrasada de
w(n). Entonces, despues de simplicar, tenemos la forma directa II simpli-
cada o can onica en la gura 5.7.
z
1
z
1
z
1
z
1

E
T
'
'
'
E
E
E
T
E E
x(n)
b
0
a
1
a
2
a
N
b
1
b
2
b
M
'
y(n)
a
N1
Figura 5.7: Forma (can onica) directa II.
En este caso, el n umero de bloques de retardo es igual a N, es decir, es
igual al orden del ltro. N es el mnimo n umero de bloques de retardo. Esta
realizaci on es s olo una de las muchas que contienen el n umero mnimo de
bloques de retardo, tambien como multiplicadores y sumadores.

Esa es una
consideraci on importante para prevenir o reducir errores de redondeo y de
cuantizaci on.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.4. REALIZACI

ON DE FILTROS DIGITALES RII 131


Un caso especial e importante ocurre cuando N = M = 2, pues
H(z) =
b
0
+b
1
z
1
+b
2
z
2
1 +a
1
z
1
+a
2
z
2
=
b
0
(1 +b

1
z
1
+b

2
z
2
)
1 +a
1
z
1
+a
2
z
2
, (5.48)
donde b

1
= b
1
/b
0
y b

2
= b
2
/b
0
. Entonces tenemos las secciones bi-cuadr ati-
cas, com unmente llamadas secciones bi-cuads, compuestas de dos polinomios
de segundo orden como se muestran en las guras 5.8 y 5.9. La forma directa
II alternativa es util para escalamiento de la amplitud de x(n) y mejora el
desempe no del ltro.
z
1
T
z
1
T
z
1
T
z
1
T

E
'
'
E
E
E E
x(n)
b
0
a
1
a
2
b
1
b
2

y(n)

E
'
'
E
E
E E
x(n)
b
0
a
1
a
2
b
1
b
2
y(n)
Figura 5.8: Secci on bi-cuad.
z
1
T
z
1
T
z
1
T
z
1
T

'
'
E
E
E E
x(n)
b
0
a
1
a
2
b

1
b

y(n)

'
'
E
E
E
x(n)
a
1
a
2
y(n)
Figura 5.9: Secci on bi-cuad alternativa.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
132 5.5. EL TRI

ANGULO DE ESTABILIDAD
5.4.3. Conexi on de estructuras en cascada
La H(z) total puede ser factorizada como
H(z) = CH
1
(z)H
2
(z) H
i
(z). (5.49)
Y en terminos de secciones de segundo orden,
H(z) =
N/2

i=1
b
0
i
+b
1
i
z
1
+b
2
i
z
2
1 +a
1
i
z
1
+a
2
i
z
2
, (5.50)
donde el subndice i representa el n umero de la secci on bi-cuad.
En esta conexi on en cascada la salida de una secci on es la entrada de la
siguiente secci on, y el c odigo necesario en su implantaci on toma en cuenta
este hecho al calcular la salida una secci on para emplearla como entrada
para la siguiente.
5.4.4. Conexi on de estructuras en paralelo
Para la conexi on en paralelo, H(z) se representa por
H(z) = C +H
1
(z) +H
2
(z) + +H
i
(z), (5.51)
y en terminos de secciones de segundo orden,
H(z) = C +
N/2

i=1
b
0
i
+b
1
i
z
1
+b
2
i
z
2
1 +a
1
i
z
1
+a
2
i
z
2
. (5.52)
As, la salida se obtiene como
y(n) = Cx(n) +
N/2

i=1
y
i
(n), (5.53)
donde y
i
(n) representa la salida de la i-esima secci on bi-cuad.
5.5. El triangulo de estabilidad
Antes de introducir la implantaci on de ltros digitales RII, en los proce-
sadores de se nales de la familia DSP56k, se analizan las propiedades de los
coecientes de las estructuras bi-cuad.
El numerador y el denominador de las secciones bi-cuad tienen la forma:
1 +C
1
z
1
+C
2
z
2
= (1 q
1
z
1
)(1 q
2
z
1
), (5.54)
donde las races q
1
y q
2
son los polos y ceros de H(z) en el plano-z, dadas
por
q
1,2
=
C
1

_
C
2
1
4C
2
2
. (5.55)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.6. C

ODIGO DE UNA SECCI

ON DE SEGUNDO ORDEN 133


Las races pueden ser reales o complejas, pero en cualquier caso
C
1
= (q
1
+q
2
), y
C
2
= q
1
q
2
.
Si C
2
1
4C
2
, las races son reales, mientras que si C
2
1
< 4C
2
, las races son
complejas conjugadas.
Especcamente para el denominador podemos obtener condiciones so-
bre los coecientes a
1
y a
2
de modo que se asegure la estabilidad. Sea el
polinomio del denominador dado por
D(z) = 1 +a
1
z
1
+a
2
z
1
= (1 p
1
z
1
)(1 p
2
z
1
), (5.56)
donde p
1
y p
2
, para asegurar la estabilidad, deben caer dentro del crculo
unitario, es decir,
[p
1
[ y [p
2
[ < 1.
Como C
2
= q
1
q
2
, [a
2
[ = [p
1
p
2
[ < 1 y como C
1
= (q
1
+ q
2
), entonces
[a
1
[ = (p
1
+p
2
) de donde se puede ver que [a
1
[ < 1 +a
2
. As, mientras a
2
puede variar entre -1 y +1, a
1
puede variar entre -2 y 2. Esto se ilustra en
la gura 5.10.
T
E
1 -1
2 -2
-1
1
a
1
a
2 a
2
= 1
a
1
= 1 +a
2
a
1
= 1 +a
2
polos complejos
polos
reales
4a
2
= a
2
1
B
I
q %
Figura 5.10: Tri angulo de estabilidad.
Para una secci on de segundo orden se cumplir a el requisito de estabilidad
si y s olo si a
1
y a
2
denen un punto dentro del tri angulo de estabilidad.
5.6. C odigo de una secci on de segundo orden
Para el procesador de se nales DSP56002, necesitaremos que tanto a
1
como a
2
(igualmente b
1
y b
2
) sean menores a 1, debido a la aritmetica
fraccionaria empleada por este procesador.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
134 5.6. C

ODIGO DE UNA SECCI

ON DE SEGUNDO ORDEN
La secci on de segundo orden m as general se presenta cuando a
1
y a
2
son
menores a 1, entonces tenemos el siguiente juego de ecuaciones:
w(n) =
1
a
0
[x(n) a
1
w(n 1) a
2
w(n 2)]
y(n) = b
0
w(n) +b
1
w(n 1) +b
2
w(n 2)
w(n 2) = w(n 1)
w(n 1) = w(n) (5.57)
En caso de que a
1
> 1 se puede factorizar un 2 en el denominador. El
n ucleo del c odigo, tambien llamado kernel en los textos extranjeros, requiere
seis ciclos de instrucciones para su ejecuci on. Antes de entrar al n ucleo de
instrucciones, supondremos que se han hecho los siguientes movimientos:
la muestra m as reciente x(n) ha sido cargada al acumulador a, el valor en
w(n 2) ha sido cargado en el registro de datos x0, y el coeciente a
2
ha
sido cargado en el registro de datos y0.
mac -x0,y0,a x:(r0)+,x1 y:(r4)+,y0; R1=x(n)-a_2 w(n-2)
macr -x1,y0,a x1,x:(r0)+ y:(r4)+,y0; R2=R1-a_1 w(n-1)
asl a ; R3=2 R2
mpy x0,y0,a a,x:(r0) y:(r4)+,y0; R4=R3+b_2 w(n-2)
mac x1,y0,a x:(r0)+,x0 y:(r4)+,y0; R5=R4+b_1 w(n-1)
macr x0,y0,a x:(r0)+,x0 y:(r4)+,y0; R5=ecuaci on
5.6.1. C odigo para la forma directa II transpuesta
Una realizaci on alternativa a la forma directa II mostrada en la gura
5.7 es la forma transpuesta. Esta forma est a incluida en el paquete de dise no
que se describe en la siguiente secci on.
Para obtener la forma transpuesta se siguen los pasos siguientes:
Considerese la secci on de segundo orden mostrada en la gura 5.8.
Invertir las direcciones de todas las ramas, e
invertir el papel de la entrada y la salida, como se muestra en la gura
5.11.
Volver a dibujar la estructura con la entrada a la izquierda y la salida
a la derecha, para obtener la forma transpuesta que se muestra en la
gura 5.12, con las siguientes ecuaciones:
u[n] = b
2
x[n] a
2
y[n]
v[n] = b
1
x[n] a
1
y[n] +u[n 1]
y[n] = b
0
x[n] +v[n 1] (5.58)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.6. C

ODIGO DE UNA SECCI

ON DE SEGUNDO ORDEN 135


z
1
z
1
b0
b1
b2 -a2
-a1
x[n] y[n]
Figura 5.11: Inversi on de ramas para la forma transpuesta.
z
1
z
1
u[n]
-a1
-a2 b2
b1
y[n] x[n]
b0
i
v[n]
Figura 5.12: Forma directa II transpuesta.
Debe notarse que la (5.58) equivale a la ecuaci on en diferencias dada por
y[n] = b
0
x[n] +b
1
x[n 1] +b
2
x[n 2]
= a
1
y[n 1] a
2
y[n 2]
=
M

k=0
b
k
x[n k]
N

k=1
a
k
y[n k]. (5.59)
Si suponemos que todos los coecientes son divididos entre dos, entonces
podemos escribir
y[n] = 2b
0
x[n] +
1
2
v[n 1]
v[n] = 2b
1
x[n] a
1
y[n] a
2
y[n 1] +
1
2
u[n 1]
u[n] = 2b
2
x[n] a
2
y[n]. (5.60)
A continuaci on se muestra la construcci on del c odigo en ensamblador,
con las siguientes suposiciones: antes de entrar al lazo do, el registro y1
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
136 5.7. DESCRIPCI

ON DE FDI
contiene el dato de entrada x[n], el registro y0 contiene el valor del coe-
ciente b0, el acumulador a es igual a 1/2 v[n-1], y el registro r4 apunta al
coeciente b1. El arreglo de memoria ser a el siguiente:
X:(r3)
E
v[n-1]
u[n-1] X:(r1)
E
b0
b1
-a1
b2
-a2
Y:(r4)
'
Con estos preparativos el c odigo es el siguiente:
do #nsec,_fin
macr y0,y1,a x:(r3),b y:(r4)+,y0 ;a=y[n], b=u[n-1]
;y0=b1/2, r4->-a1
asr b a,x0 ;b=1/2 u[n-1], x0=y[n]
mac y0,y1,b y:(r4)+,y0 ;b=(b1 x[n]+1/2 u[n-1])
;y0=-a1, r4 ->b2
macr y0,x0,b y:(r4)+,y0 ;b=v[n], y0=b2, r4->-a2
mpy y0,y1,b b,x:(r1)+ y:(r4)+,y0 ;b=b2 x[n], guarda v[n]
;y0=-a2, r4-> b0
macr y0,x0,b x:(r1),a a,y1 ;b=u[n], prepara a=v[n-1]
asr a b,x:(r3)+ y:(r4)+,y0 ;a=1/2 v[n-1],u[n]->u[n-1]
;y0=b0, r4->b1
;y1=y[n] salida
_fin
donde #nsec es el n umero de secciones de segundo orden del ltro, y
_fin es la etiqueta que indica el nal del c odigo hasta donde se ejecuta la
instrucci on do.
5.7. Descripci on de FDI
FDI es una colecci on de archivos M para el ambiente de programaci on
Matlab. En el desarrollo de esta herramienta se ha hecho uso de las capa-
cidades gr acas de este poderoso ambiente de trabajo. Al hacer uso de la
interfase gr aca para usuario (GUI), se ha obtenido un ambiente de dise no
e implantaci on de ltros digitales muy amigable.
Se tienen dos versiones de FDI, una para el DSP56002EVM y una se-
gunda versi on para el DSP56303EVM. En las siguientes guras se muestra
paso a paso el empleo de FDI. Para comenzar, se debe crear una carpeta en
el directorio raz, C:\FDI2k2, o C:\FDI563x. Dentro de esta carpeta se crea
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.7. DESCRIPCI

ON DE FDI 137
otra carpeta: transposeM, la cual contiene los archivos M que deber an ejecu-
tarse desde Matlab. En la primera se copian los archivos de los programas
ensamblador, otros programas ejecutables y macros.
Dentro del espacio de trabajo de Matlab se da inicio a la herramienta
FDI escribiendo mainfdi. Despues de la pantalla de presentaci on apare-
cer a una pantalla con el men u principal, como se muestra en la gura 5.13.
Se tiene la opci on para el dise no de ltros RII o FIR, la cual se puede
seleccionar desde el men u principal.
Figura 5.13: Presentaci on del men u principal.
5.7.1. Opci on dise nar RII
Una vez seleccionada la opci on RII (ver gura 5.14), aparece el men u, pa-
ra elegir el tipo de ltro a dise nar, es decir, pasa-bajas (Lowpass), pasa-altas
(Highpass) o pasa-banda (Bandpass). Al seleccionar el tipo de ltro, pulsan-
do con el rat on el bot on apropiado del men u, aparece enseguida el men u de
selecci on de la funci on de aproximaci on a usar: Butterworth, Chebyshev, o
Elptico, como se muestra en la gura 5.15.
Figura 5.14: Presentaci on del men u tipo de ltro.
Las especicaciones de dise no se dan cuando el programa regresa al am-
biente de trabajo de Matlab, solicitando el ingreso de la frecuencia de corte,
la frecuencia de rechazo, y la atenuaci on deseada, en dB, para cada una. En
la gura 5.16 se muestra el ingreso de los datos para un ltro pasa-bajas.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
138 5.7. DESCRIPCI

ON DE FDI
Figura 5.15: Presentaci on del men u tipo de aproximaci on.
Una vez ingresados los datos se puede obtener la gr aca de la respuesta en
Figura 5.16: Entrada de especicaciones del ltro deseado.
frecuencia, y para el caso de ltros RII se obtiene, adem as, el diagrama de
ceros y polos en el plano-z. La gura 5.17 muestra el trazo de la respuesta en
frecuencia, y adem as se pueden ver las otras opciones que aparecen en ese
momento, Write ASM para escribir el archivo con los coecientes del ltro en
lenguaje ensamblador, y Assemble para llamar al ensamblador, y nalmente
Back to main para regresar al men u principal.
Una ultima opci on, antes de terminar con el dise no del ltro y la gene-
raci on del c odigo ensamblador, es la selecci on de la tasa de muestreo que
emplear a el procesador de se nales. Para esto aparece un men u como el que
se muestra en la gura 5.18.
Cabe hacer notar que s olo la versi on de FDI para el DSP56002EVM
permite seleccionar diferentes tasas de muestreo; para el DSP56303EVM se
ha dejado una tasa de muestreo ja de 48 kHz.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.7. DESCRIPCI

ON DE FDI 139
Figura 5.17: Respuesta en frecuencia del ltro dise nado.
Figura 5.18: Men u para la selecci on de la frecuencia de muestreo.
Una vez que se ha obtenido el dise no del ltro, es necesario generar el
c odigo y ejecutar el programa ensamblador para obtener el archivo .cld. Pa-
ra la generaci on autom atica de c odigo se emplean los archivos provistos por
Motorola, los cuales con modicaciones mnimas han sido construidos como
macros que son llamados desde el archivo que contiene los coecientes del
ltro. A continuaci on se muestra el c odigo resultante para el DSP56303EVM
del dise no de un ltro pasa-altas elptico cuya frecuencia de corte es de 4 kHz.
Puede notarse que el ltro se compone de dos secciones bicuads, denidas
en la constante nsec equ 2.
;**********************************************
;* Digital Signal Processing *
;* COEF_file for IIR filters on the DSP56303 *
;*............................................*
;* Gerardo Miramontes de Leon *
;* Universidad Autonoma de Zacatecas *
;* *
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
140 5.7. DESCRIPCI

ON DE FDI
;* gmiram@cantera.reduaz.mx *
;**********************************************
; Filter specifications:
; iirHPtr.ASM
; Elliptic
; Sampling Frequency 48000.00 [Hz]
; Passband Frequency 4000.00 [Hz]
;**********************************************
nsec equ 2
org x:$400
statesw1left ds nsec
statesw2left ds nsec
org x:$400+2*nsec
statesw1right ds nsec
statesw2right ds nsec
org x:$400+4*nsec+1
templ ds 1
tempr ds 1
org Y:$400
coefs
;=== Biquad 1 ===
dc 0.475399/2 ; b(1,0)/2
dc -0.475399/2 ; b(1,1)/2
dc 0.093364/2 ; -a(1,1)/2
dc 0.000000/2 ; b(1,2)/2
dc 0.000000/2 ; -a(1,2)/2
;=== Biquad 2 ===
dc 1.000000/2 ; b(2,0)/2
dc -2.000000/2 ; b(2,1)/2
dc 1.572226/2 ; -a(2,1)/2
dc 1.000000/2 ; b(2,2)/2
dc -0.857434/2 ; -a(2,2)/2
INCLUDE mactrans.asm
mactrans nsec,coefs,statesw1left,statesw2left,
statesw1right,statesw2right
En la gura 5.19 se muestra la pantalla resultante una vez que se ha
seleccionado el bot on para ensamblar.
Como se dijo antes, en la construcci on del macro se han empleado y
modicado algunos archivos dados por Freescale Semiconductor, Inc., como
ioequ.asm, intequ.asm ada_equ.asm y vectors.asm. El macro es el archi-
vo que contiene tanto la programaci on del codec como la implantaci on del
ltro, empleando una estructura RII transpuesta. A continuaci on se mues-
tra, en varias partes, el c odigo del macro mactrans.asm. En la primera parte
se muestra el inicio del macro donde se realiza la inicializaci on del DSP56303
y los ajustes del codec:
mactrans macro nsec,coefs,statesw1left,statesw2left,
statesw1right,statesw2right
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.7. DESCRIPCI

ON DE FDI 141
Figura 5.19: Ejecuci on del programa ensamblador ASM56000 (o ASM56300).
;****************************************************
nolist
include ioequ.asm
include intequ.asm
include ada_equ.asm
include vectors.asm
list
;***************************************************
;---Buffer for talking to the CS4218
org x:$0
RX_BUFF_BASE equ *
RX_data_1_2 ds 1 ; data time slot 1/2
; for RX ISR (left audio)
RX_data_3_4 ds 1 ; data time slot 3/4
; for RX ISR (right audio)
TX_BUFF_BASE equ *
TX_data_1_2 ds 1 ; data time slot 1/2
; for TX ISR (left audio)
TX_data_3_4 ds 1 ; data time slot 3/4
; for TX ISR (right audio)
RX_PTR ds 1 ; Pointer for rx buffer
TX_PTR ds 1 ; Pointer for tx buffer
CTRL_WD_12 equ MIN_LEFT_ATTN+MIN_RIGHT_ATTN+LIN2+RIN2
CTRL_WD_34 equ MIN_LEFT_GAIN+MIN_RIGHT_GAIN
org p:$100
START
main
movep #$040006,x:M_PCTL ;PLL 7 X 12.288 = 86.016MHz
ori #3,mr ;mask interrupts
movec #0,sp ;clear hardware stack pointer
move #0,omr ;operating mode 0
move #$40,r7 ;initialize stack pointer
move #-1,m7 ;linear addressing
jsr ada_init ;initialize codec
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
142 5.7. DESCRIPCI

ON DE FDI
; Initialize Filter Parameters
move #statesw1left,r1 ;point to filter state1
move #statesw2left,r3 ;point to filter state2
move #coefs,r4
move #5*nsec-1,m4 ;addressing modulo 5*nsec
clr a ;initialize internal
;state storage
rep #nsec
move a,x:(r3)+
rep #nsec
move a,x:(r1)+
move #statesw1right,r1 ;point to filter state1
move #statesw2right,r3 ;point to filter state2
rep #nsec
move a,x:(r3)+
rep #nsec
move a,x:(r1)+
loop
jset #3,x:M_SSISR0,* ;wait for rx frame sync
jclr #3,x:M_SSISR0,* ;wait for rx frame sync
clr a
clr b
move x:RX_BUFF_BASE,a ;receive left
move x:RX_BUFF_BASE+1,b ;receive right
jsr save_left
jsr save_right
jsr process_stereo
jsr get_left_In_a
jsr get_right_In_b
move a,x:TX_BUFF_BASE ;transmit left
move b,x:TX_BUFF_BASE+1 ;transmit right
jmp loop
include ada_init.asm ; used to include codec
; initialization routines
Como puede observarse, dentro del lazo (loop) se hace el llamado a
varias subrutinas: process_stereo, la cual llama a left_ch y a save_left,
y luego a right_ch y save_right. A continuaci on se muestra la subrutina
process_stereo en la cual se carga en dos ocasiones al apuntador r4 con la
direcci on #coeffs ya que la operaci on de ltrado se aplica primero al canal
izquierdo y despues al canal derecho:
process_stereo
jsr get_left_In_a
move #coefs,r4
move #statesw1left,r1
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
5.7. DESCRIPCI

ON DE FDI 143
move #statesw2left,r3
jsr left_ch
jsr save_left
jsr get_right_In_b
move #coefs,r4
move #statesw1right,r1
move #statesw2right,r3
jsr right_ch
jsr save_right
rts
El las subrutinas left_ch y right_ch se hace el llamado a la rutina
de ltrado, es decir, en estas subrutinas se preparan los apuntadores y los
registros apropiados para el ltro. Note que cada subrutina termina con la
instrucci on rts (return from subroutine). En el siguiente listado se muestran
tambien las subrutinas save_left, save_right, entre otras:
left_ch ;
ori #$08,mr ;set scaling mode
move a,y1 ;load left signal
move x:(r1),a y:(r4)+,y0
asr a
jsr filtro ; Call cascade biquad routine.
move y1,a
andi #$f7,mr ;disable scaling mode?
rts
right_ch
ori #$08,mr ;set scaling mode
move x:(r1),a y:(r4)+,y0
asr a
move b,y1 ;load left signal
jsr filtro ; Call cascade biquad routine.
move y1,b
andi #$f7,mr ;disable scaling mode?
rts
save_right
move #tempr,r1
nop
move b,x:(r1) ;save temporally right channel
rts
save_left
move #templ,r1
nop
move a,x:(r1) ;save temporally left channel
rts
get_left_In_a
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
144 BIBLIOGRAF

IA
move #templ,r1
nop
move x:(r1),a ;get temporally right channel
rts
get_right_In_b
move #tempr,r1
nop
move x:(r1),b ;get temporally right channel
rts
Finalmente se muestra el c odigo que realiza la operaci on de ltrado in-
cluyendo, en el campo de los comentarios, una breve descripci on del proceso:
filtro
do #nsec,_end_filter
macr y0,y1,a x:(r3),b y:(r4)+,y0 ;a=x(n)*bi0/2+Vi/2,
;b=Ui,y0=bi1/2
asr b a,x0 ;b=Ui/2,x0=y(n)
mac y0,y1,b y:(r4)+,y0 ;b=x(n)*bi1/2+Ui/2,
;y0=ai1/2
macr x0,y0,b y:(r4)+,y0 ;b=b+y(n)*ai1/2,
;y0=bi2/2
mpy y0,y1,b b,x:(r1)+ y:(r4)+,y0 ;b=x(n)*bi2/2,save
;Vi,y0=ai2
macr x0,y0,b x:(r1),a a,y1 ;b=b+y(n)*ai2/2,
;a=next iter wi1,
asr a b,x:(r3)+ y:(r4)+,y0 ;y1=output of
;section i
;a=next iter wi1,save
;wi2,y0=next iter bi0
_end_filter
rts ;Return from
;filter routine.
Para aplicar el ltro en tiempo real es necesario cargarlo al m odulo que
contiene al procesador de se nales haciendo uso del programa de comuni-
caci on con el. Para esto se tiene la opci on Abrir Debugger con la cual se
llama al programa EVM56kw (o EVM30xW) de Domain Technologies, cuya
ventana aparece en la gura 5.20.
Bibliografa
[1] Antoniou, A., Digital Filters Analysis and Design, McGraw-Hill, 1979.
[2] El-Sharkawy, M., Digital Signal Processing Applications with the Mo-
torolas DSP56002 Processor, Prentice Hall PTR, 1996.
[3] Gold, B., Rader, C. M., Digital Processing of Signals, McGraw-Hill,
1969.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 145
Figura 5.20: Ventana de la aplicaci on EVM56kw.
[4] Hamming, R. W., Digital Filters, Prentice-Hall, 1977.
[5] Jackson, L. B., Digital Filters and Signal Processing, 2nd Ed., Klu-
wer,1992.
[6] Mitra, S. K., Digital Signal Processing: a computer based approach,
McGraw-Hill, 1998.
[7] Freescale Semiconductor, Inc., DSP56000/56001 Digital Signal Proces-
sor Users Manual,
DSP56000UM/AD Rev 2. Motorola Inc. 1990.
[8] Freescale Semiconductor Inc., DSP56002 Digital Signal Processor
Users Manual,
DSP56002UM/AD Rev 1. Motorola Inc. 1993.
[9] Stanley, W. D., Digital Signal Processing, Reston Publishing Co., 1975.
Problemas
Problema 5.1 Un ltro Butterworth anal ogico normalizado de primer or-
den tiene una funci on de transferencia
H(s) =
1
s + 1
a) Aplique la transformaci on bilineal para obtener H(z).
b) Cu al es la frecuencia de corte de H(z)?
c) Usando la H(z) obtenida en a), aplique una transformaci on digital-a-
digital para obtener un ltro digital Butterworth de primer order normali-
zado.
Problema 5.2 Una funci on de transferencia digital se puede obtener apli-
cando la transformaci on
s
1 z
1
T
,
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
146 BIBLIOGRAF

IA
o equivalentemente
z =
1
1 sT
.
Demuestre que el eje j del plano-s se transforma a un crculo de radio 1/2
en el plano-z, como se muestra en la gura 5.2.
Problema 5.3 Trabajando s olo en el dominio digital, encuentre el orden y
muestre los pasos necesarios para obtener la funci on de transferencia H(z) a
partir de las siguientes especicaciones: repuesta en frecuencia m aximamente
plana con -3 dB a una frecuencia de corte de 15 rad/s, y al menos 25 dB de
atenuaci on a frecuencias mayores que 30 rad/s.
Problema 5.4 Encuentre H(z), aplicando la transformaci on bilineal, si las
especicaciones son las siguientes: frecuencia de corte de 100 Hz con ate-
nuaci on de 3 dB, frecuencia de rechazo de 300 Hz con al menos 25 dB de
atenuaci on y una frecuencia de muestreo de 1000 Hz.
Problema 5.5 Dise ne un ltro digital por el metodo de la transformada
bilineal que cumpla con las especicaciones dadas en la gura 5.21.
1 rad/s 10 rad/s 1000 rad/s 100 rad/s
-3 dB
E
E
-20 dB
Figura 5.21: Respuesta deseada del ltro para el problema 5.5.
Problema 5.6 Dise ne un ltro digital Chebyshev tipo 1, empleando la
transformaci on bilineal, de modo que cumpla con -3 dB a 20 Hz, y -30
dB a -120 Hz. Proponga la Fs adecuada.
Problema 5.7 Dise ne un ltro digital Butterworth, empleando la transfor-
maci on bilineal, de modo que cumpla con -3 dB a 20 Hz, y -30 dB a 120 Hz.
Proponga la Fs adecuada.
Problema 5.8 Se tiene un ltro anal ogico Butterworth normalizado de se-
gundo orden, es decir,
H
a
(s) =
1
s
2
+

2s + 1
.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 147
Realizar las transformaciones necesarias para obtener un ltro digital que
cumpla con la especicaci on de una frecuencia de corte de 100 Hz. Suponga
una Fs=1000.
Problema 5.9 Dise ne un ltro digital pasa-bajas Chebyshev tipo 1, por la
transformaci on bilineal, con las siguientes especicaciones:
a) Frecuencia de corte de 1000 Hz, con -2 dB de rizo.
b) Frecuencia de rechazo de 5kHz con -30 dB de atenuaci on.
c) Suponga Fs=15 kHz.
Problema 5.10 Partiendo de un ltro Butterworth digital de primer orden
normalizado, obtenga un ltro Butterworth digital con frecuencia de corte
de 100 Hz. Suponga Fs = 1000 Hz.
Problema 5.11 La funci on de transferencia de un ltro digital Butterworth
normalizado est a dada por
H(z) =
0.353295(1 +z
1
)
1 0.293408z
1
.
Aplique las transformaciones necesarias para obtener una nueva funci on de
transferencia H

(z) que tenga una frecuencia de corte =2 rad/s con una


respuesta pasa-bajas.
Problema 5.12 Se tiene un ltro anal ogico Butterworth normalizado de
primer orden, es decir,
H
a
(s) =
1
s + 1
Su respuesta al impulso es muestreada con una frecuencia de muestreo su-
cientemente alta para evitar el traslape, es decir F
s
=100 Hz.
Obtenga H(z) por el metodo de la invariancia al impulso (sin correcci on).
NOTA: h[n] = Th
a
(nT).
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
148 BIBLIOGRAF

IA
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6
Dise no de ltros con respuesta al impulso
nita
Una clase importante de ltros digitales son los ltros cuya respuesta al
impulso es nita. A estos ltros se les denomina ltros digitales RIF. En este
captulo se revisan algunos metodos de dise no de tales ltros y se destaca
su implantaci on en un procesador de se nales.
6.1. Los ltros RIF
Una se nal en tiempo discreto se puede representar por
x[n] =

m=
x(m)(n m). (6.1)
Se han empleado parentesis circulares dentro de la suma para denotar la
relaci on que guarda x[n] con el dominio del tiempo continuo, es decir con
x(t).
Ahora bien, para un sistema LIT-discreto cuya salida est a dada por la
suma de convoluci on tenemos
y[n] =

m=
x[m]h[n m], (6.2)
y para un sistema causal
y[n] =

m=0
x[m]h[n m]. (6.3)
149
150 6.1. LOS FILTROS RIF
La (6.3) es una ecuaci on muy importante en el dise no de ltros RIF y puede
verse que se trata simplemente de la convoluci on discreta entre la secuencia
de entrada x[n] y la respuesta al impulso del sistema h[n]. Esta operaci on
se puede implantar con facilidad casi en cualquier lenguaje de programaci on
y ese es el caso de la programaci on de ltros RIF en los procesadores de
se nales.
Como s olo disponemos de un n umero nito de terminos, entonces la (6.3)
se convierte en
y[n] =
N

m=0
x[m]h[n m]. (6.4)
Si la secuencia de entrada es la muestra unitaria, es decir, x[n] = (0),
entonces, la salida ser a y[n] = h[n]. Aplicando la transformada Z obtenemos
Y (z) = h[0]X(z) +h[1]z
1
X(z) +h[2]z
2
X(z) +. . . +h[N]z
N
X(z). (6.5)
Escribiendo H(z) como
H(z) =
Y (z)
X(z)
= h[0] +h[1]z
1
+h[2]z
2
+. . . +h[N]z
N
=
N

k=0
h[k]z
k
,
(6.6)
nalmente podemos escribir
H(z) =
h[0]z
N
+h[1]z
N1
+h[2]z
N2
+. . . +h[N]
z
N
, (6.7)
lo cual indica que H(z) tiene N polos en el origen, de aqu que un ltro RIF
sea inherentemente estable.
6.1.1. Dise no de ltros RIF
La forma m as sencilla de obtener un ltro RIF es truncar la respuesta al
impulso de un ltro RII. Si h
d
[n] representa la respuesta al impulso de un
ltro RII deseado, entonces se puede obtener un ltro RIF por
h[n] =
_
h
d
[n] si N
1
n N
2
0 en caso contrario.
(6.8)
En general se puede tomar
h[n] = h
d
[n]w[n], (6.9)
donde, w[n] es una ventana rectangular dada por
w[n] =
_
1 si N
1
n N
2
0 en caso contrario
(6.10)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.2. DISE

NO DE FILTROS RIF POR SERIES DE FOURIER 151


Si h
d
[n], h[n] y w[n] tienen transformadas de Fourier H(e
j
), H
d
(e
j
)
y W(e
j
), entonces la respuesta al impulso (truncada) h[n] tendr a una res-
puesta en frecuencia dada por
H(e
j
) =
1
2
_
pi

H
d
(e
j
)W(e
j()
)
= H
d
(e
j
) W(e
j
), (6.11)
es decir, el producto de h
d
[n] por w[n] ser a la convoluci on de sus transforma-
das. Este resultado nos muestra que el truncamiento de h
d
[n] producir a una
distorsi on en la respuesta en frecuencia deseada. Por ejemplo, si H
d
(e
j
),
mostrada en la gura 6.1a), representa un FPb ideal con frecuencia de corte

c
=
0
y se emplea una ventana rectangular centrada alrededor del ori-
gen cuya transformada de Fourier se muestra en la gura 6.1b), entonces la
H(e
j
) tomar a la forma mostrada en la gura 6.1c). La respuesta en fre-
1 0.5 0 0.5 1
0
0.5
1
1.5
a)
10 5 0 5 10
0.5
0
0.5
1
b)
1 0.5 0 0.5 1
0
1
2
c)
H
d
(e
j
)
W(e
j
)
H(e
j
) = H
d
(e
j
) * W(e
j
)
Figura 6.1: Efecto de la ventana de truncamiento en un ltro RIF.
cuencia resultante muestra ondulaciones indeseables tanto en la banda de
paso como en la banda de rechazo. A estas ondulaciones se les conoce como
l obulos. As tenemos el l obulo principal, que dene la banda de paso, y el
primer l obulo lateral, que dene la atenuaci on mnima que se puede obtener
en la banda de rechazo. Estos l obulos representan un compromiso de dise no,
es decir, se tiene que decidir entre una atenuaci on mayor en la banda de
rechazo o un orden mayor del ltro.
6.2. Dise no de ltros RIF por series de Fourier
Existen varios metodos de dise no de ltros RIF, uno de ellos es un metodo
basado en series de Fourier para obtener los coecientes h[n] del ltro RIF.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
152 6.2. DISE

NO DE FILTROS RIF POR SERIES DE FOURIER


Sea la respuesta en frecuencia deseada H
d
() dada por su serie de Fourier
H
d
() =

n=
C
n
e
jnT
, [n[ < , (6.12)
donde C
n
son los coecientes de Fourier, tales que H(z) H
d
. Ahora intro-
ducimos una variable de frecuencia normalizada tal que = f/F
N
, donde
F
N
es la frecuencia de muestreo de Nyquist, es decir, F
N
= F
s
/2 y donde
F
s
es la frecuencia de muestreo en Hz. Adem as, T = 1/F
s
donde T es el
intervalo o espaciamiento entre muestras sucesivas.
Como T = 2f/F
s
= , donde < 1, entonces
H
d
() =

C
n
e
jn
. (6.13)
Por lo tanto, los coecientes de Fourier est an denidos por
C
n
=
1
2
_
1
1
H
d
()e
jn
d
=
1
2
_
1
1
H
d
()[cos(n) jsen(n)] d. (6.14)
Suponiendo que H
d
() es una funci on par (y real), entonces
C
n
=
_
1
0
H
d
() cos n d, n 0. (6.15)
Por la simetra de C
n
se puede inferir que C
n
= C
n
.
Debido a que no se puede tener un n umero innito de terminos en la
serie, para obtener un ltro de dimensi on nita debemos truncar la suma,
lo cual nos entrega una funci on aproximada dada por

H() =
L

n=L
C
n
e
jn
, con L positiva y nita, (6.16)
donde L determinar a el orden (o longitud) del ltro. Haciendo z = e
j
obtenemos la transformada Z

H() =
L

n=L
C
n
z
n
, (6.17)
cuyos coecientes de la respuesta al impulso son
C
L
, C
L+1
, . . . , C
1
, C
0
, C
1
, . . . , C
L1
, C
L
, (6.18)
lo cual implica tener un ltro no causal. Esto se puede remediar introdu-
ciendo un retardo de L muestras para obtener
H(z) = z
L

H(z) =
L

n=L
C
n
z
nL
, (6.19)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.2. DISE

NO DE FILTROS RIF POR SERIES DE FOURIER 153


haciendo n L = k, entonces
H(z) =
2L

k=0
C
Lk
z
k
, (6.20)
y si hacemos h[k] = C
lk
y N = 2L tenemos
H(z) =
N

k=0
h[k]z
k
, (6.21)
donde los coecientes de la respuesta al impulso h[k] est an relacionados a
los coecientes de Fourier como
h[0] = C
L
, h[1] = C
L1
, . . . , h[L 1] = C
1
, h[L] = C
0
, C
L+1
= C
1
,
h[2L 1] = C
L+1
, y h[2L] = C
L
. (6.22)
El orden del ltro ser a pues N + 1, es decir, 2L + 1.
6.2.1. Calculo de los coecientes
Los coecientes de Fourier se pueden calcular a partir de (6.15) para
los cuatro tipos de respuesta en frecuencia, es decir, para ltros pasa-bajas
(FPb), ltros pasa-altas (FPA), ltros pasa-banda (FPB), y para ltros
rechazo de banda (FRB). En la gura 6.2 se muestran las cuatro respuestas
en frecuencia tpicas.
H
d
() H
d
()
H
d
() H
d
()

1

1

1

1

2

2


1
1
a)
b)
c)
d)
Figura 6.2: Especicaci on de Filtros RIF.
Los cuatro casos son los siguientes:
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
154 6.2. DISE

NO DE FILTROS RIF POR SERIES DE FOURIER


1. Para el FPb de la gura 6.2a) tenemos
C
n
=
_

1
0
H
d
() cos nd =
_

1
0
cos nd
=
senn
1
n
. (6.23)
2. Para el FPA de la gura 6.2b) tenemos
C
n
=
_
1

1
H
d
() cos nd =
_
1

1
cos nd
=
senn
1
n
. (6.24)
3. Para el FPB de la gura 6.2c) tenemos
C
n
=
_

2

1
H
d
() cos nd =
_

2

1
cos nd
=
senn
2
senn
1
n
. (6.25)
4. Para el FRB de la gura 6.2d) tenemos
C
n
=
_

1
0
H
d
() cos nd +
_
1

2
H
d
() cos nd
=
senn
1
senn
2
n
, (6.26)
donde
1
y
2
son frecuencias de corte normalizadas.
Ejemplo 6.2.1 Para mostrar la utilidad de (6.23) a (6.26) calcule los coe-
cientes para un FPb RIF con las siguientes especicaciones: frecuencia de
corte de 3 kHz, frecuencia de muestreo Fs=18 kHz, orden del ltro 5.
Soluci on:
Primero calculamos la frecuencia de corte normalizada
1
= f
c
/F
N
=
3kHz
5kHz
=
0.40 el valor de L es 2. Calculando para n = 0 . . . L tenemos los siguientes
resultados:
h(0) = 0.1378 = C
2
,
h(1) = 0.2757 = C
1
,
h(2) = 0.3333 = C
0
,
h(3) = 0.2757 = C
1
, y
h(4) = 0.1378 = C
2
En la gura se muestra la respuesta en frecuencia obtenida con los 5 coe-
cientes obtenidos.
Ejemplo 6.2.2 Repita el problema del ejemplo anterior usando 21 coe-
cientes y trace la gr aca de la respuesta en frecuencia.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.2. DISE

NO DE FILTROS RIF POR SERIES DE FOURIER 155


10
1
10
2
10
3
10
4
60
50
40
30
20
10
0
10
M
a
g
n
i
t
u
d

[
d
B
]
Frecuencia [Hz]
Figura 6.3: Respuesta en frecuencia para el FPb RIF del ejemplo 6.2.1.
Soluci on:
Como puede verse cuando el orden del ltro se incrementa, aumenta tam-
bien el n umero de c alculos por hacer, as que hemos optado por escribir un
programa en Matlab para facilitar el c alculo.
Los resultados son los siguientes:
L=10,
1
= 0.333.
h=
-0.0276
0.0000
0.0345
0.0394
-0.0000
-0.0551
-0.0689
0.0000
0.1378
0.2757
0.3333
0.2757
0.1378
0.0000
-0.0689
-0.0551
-0.0000
0.0394
0.0345
0.0000
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
156 6.3. CARACTER

ISTICA DE FASE LINEAL DE LOS FILTROS RIF


-0.0276
Los coecientes corresponden a los ndices h(0) a h(20), mientras que los
ndices de los coecientes calculados corresponden a C
10
, C
9
, C
8
, . . . , C
10
.
La respuesta en frecuencia se muestra en la gura 6.4, en la que se observa
que se cumple con la especicaci on de frecuencia de corte.
10
1
10
2
10
3
10
4
60
50
40
30
20
10
0
10
M
a
g
n
i
t
u
d

[
d
B
]
Frecuencia [Hz]
Figura 6.4: Respuesta en frecuencia para el FPb RIF del ejemplo 6.2.2.
6.3. Caracterstica de fase lineal de los ltros RIF
Los ltros RII, por lo general, no tienen una respuesta en fase lineal;
sin embargo, puede haber aplicaciones donde se desea tener baja distorsi on
a la salida del ltro, es decir, se tiene el requisito de una respuesta en fase
lineal. Para comprobar que el requisito de baja distorsi on se cumple con una
respuesta en fase lineal, se considera el sistema mostrado en la gura 6.5.
?
E E
y(t) x(t)
Figura 6.5: Sistema desconocido para fase lineal.
Se planeta el problema de determinar cu al debe ser la caracterstica del
sistema para que a su salida se tenga la mnima distorsi on, es decir, que la
salida y(t) sea una copia exacta de la entrada x(t). Para dar cierta libertad al
sistema, permitimos que la salida y(t) sea una copia escalada de la entrada,
as, y(t) viene a ser
y(t) = Kx(t). (6.27)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.3. CARACTER

ISTICA DE FASE LINEAL DE LOS FILTROS RIF 157


Adem as, podemos permitir que el sistema introduzca un retardo, por lo que
tenemos
y(t) = Kx(t t
0
). (6.28)
Tomando transformadas de Fourier a ambos lados de (6.28) obtenemos
Y () = KX()e
jt
0
, (6.29)
y as la funci on de transferencia del sistema para mnima distorsi on ser a
H() =
Y ()
X()
= Ke
jt
0
= Me
j
, (6.30)
donde M = constante, y = t
0
, es decir, el sistema que produce mni-
ma distorsi on requiere tener una respuesta en magnitud constante y una
respuesta en fase lineal con la frecuencia .
Un ltro RIF de longitud N1 tiene una caracterstica de fase lineal si su
respuesta a la muestra unitaria (respuesta al impulso) satisface la condici on
de simetra
h[n] = h[N 1 n]. (6.31)
S olo se requiere que la respuesta a la muestra unitaria sea simetrica respecto
al punto medio entre muestras, es decir,
N 2
2
y
N
2
para N par,
N 1
2
para N impar. (6.32)
En la gura 6.6 se muestra el requisito de simetra para cada caso, N=par
y N=impar.
Se puede comprobar la respuesta en fase lineal siguiendo el siguiente
procedimiento:
Si se supone que N es par y que la respuesta en frecuencia est a dada por
H(e
j
) =
N1

n=0
h[n]e
j
, (6.33)
dividiendo la suma en dos partes tenemos,
H(e
j
) =
N
2
1

n=0
h[n]e
j
+
N1

n=N/2
h[n]e
j
, (6.34)
reemplazando n por N 1 n en la segunda suma
H(e
j
) =
N
2
1

n=0
h[n]e
j
+
0

n=
N
2
1
h[n]e
j(N1n)
=
N
2
1

n=0
h[n]e
j
+
N
2
1

n=0
h[n]e
j(N1n)
, (6.35)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
158 6.3. CARACTER

ISTICA DE FASE LINEAL DE LOS FILTROS RIF


0 1 2 3 4 5 6 7 8 9
0
0.05
0.1
0.15
0.2
0.25
0 1 2 3 4 5 6 7 8
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
N=9
N=10
(N1)/2
N/2
(N/2) 1
Figura 6.6: Simetra en h[n] para fase lineal.
combinando las dos sumas obtenemos,
H(e
j
) =
N
2
1

n=0
h[n]e
j(N1)/2)
e
j(n
N1
2
)
+e
j[(N1n)
N1
2
]

=
N
2
1

n=0
h[n]e
j(N1)/2)
e
j(n
N1
2
)
+e
+j
(n
N 1
2

=
N
2
1

n=0
2h[n]e
j(N1)/2
cos(n
N 1
2
)
=
N
2
1

n=0
2h[n] cos(n
N 1
2
)e
j(N1)/2
. (6.36)
El termino entre corchetes representa la envolvente o magnitud de H(e
j
),
mientras que el termino exponencial representa la fase. Adem as, puede ob-
servarse que tiene una caracterstica de fase lineal correspondiente a un
retardo de (N 1)/2 muestras.
Similarmente, para N impar se tiene
H(e
j
) = h(
N 1
2
) +
(N3)/2

n=0
2h[n] cos[(n
N 1
2
)]e
j(N
1
)/2
. (6.37)
Tambien se puede tener una respuesta al impulso anti-simetrica, que en
ese caso sera sen[(n
N1
2
)] en lugar del coseno.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.4. DISE

NO SE FILTROS RIF USANDO VENTANAS 159


6.4. Dise no se ltros RIF usando ventanas
Como se se nal o en la secci on 6.1.1, el truncamiento de la serie de tiempo
innita h[n], corresponde a la aplicaci on de una ventana rectangular denida
por
w
R
=
_

_
1, si [n[ N
0, si [n[ > N
(6.38)
cuya respuesta en frecuencia est a dada por el seno cardinal. La convoluci on
de W
R
() con la respuesta deseada H
d
() produce las oscilaciones, conocidas
como el fen omeno de Gibbs, estas permanecen aproximadamente constantes
sin importar el valor de N. As pues, la atenuaci on mnima en la banda de
rechazo ser a de tan s olo 21 dB.
Lo que se busca es una forma de producir el truncamiento pero de manera
menos abrupta, de modo que se presenten l obulos m as peque nos, aunque se
pague el precio con bandas de transici on m as anchas. As pues, en lugar de
emplear la ventana rectangular se emplean otras funciones ventana, siendo
las m as comunes las siguientes:
La ventana generalizada de Hamming est a dada por
W
H
[n] =
_
+ (1 ) cos(
2n
N1
), si [n[ N
0, si [n[ > N,
(6.39)
donde 0 1. Si = 0.5 se tiene una ventana de Hann (m as cono-
cida como Hanning). Si = 0.54 se tiene una ventana de Hamming.
La ventana de Hann es una funci on que corresponde al coseno elevado
W
Hann
[n] =
1
2
(1 + cos(
2n
N 1
)) = cos
2
(
n
N 1
), (6.40)
donde n = 0, 1, . . . , N 1. Para este caso el primer l obulo lateral tiene
31 dB de diferencia con el l obulo principal. El ancho de la banda de
transici on est a dado como 4
s
/N = 8/N, donde w
s
= 2 y resulta
una atenuaci on m axima de 44 dB despues de la convoluci on para el
FPb.
La ventana de Hamming est a dada por
w
Ham
[n] = 0.54 0.46 cos(
2n
N 1
). (6.41)
En este caso el l obulo lateral mayor es el tercero, no el primero, y
est a a 41 dB por debajo dando una atenuaci on mnima de 53 dB de
la banda de paso. El ancho de la banda de transici on es igual al de la
ventana de Hann. Por lo anterior, en el dise no de ltros RIF es m as
conveniente usar la ventana de Hamming que la de Hann.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
160 6.4. DISE

NO SE FILTROS RIF USANDO VENTANAS


Tabla 6.1: Atenuaci on m axima en cuatro funciones ventana
Ventana Pico del l obulo lateral (dB) Atenuaci on mnima (dB)
Rectangular -13 -21
Hann -31 -44
Hamming -41 -53
Blackman -57 -74
Se puede obtener un l obulo lateral a un menor con la ventana de Black-
man dada por
w
B
[n] = 0.42 0.5 cos(
2n
N 1
) + 0.08 cos(
4n
N 1
) (6.42)
en este caso el l obulo m aximo est a a 57 dB lo que da una atenuaci on
mnima en la banda de rechazo de 74 dB, con un ancho en el l obulo
principal de 6w
s
/N = 12/N.
En la tabla 6.1 se muestra un resumen del comportamiento de las ventanas
rectangular, Hann, Hamming y Blackman, donde se muestra la atenuaci on
del l obulo lateral m aximo y la atenuaci on mnima que se puede obtener en
la banda de rechazo.
Una funci on ventana m as elaborada es la ventana Kaiser. En realidad se
trata de una familia de funciones de ponderaci on dadas por
w
K
[n] =
I
0
(
_
1 (1
2n
N
)
2
)
I
0
()
, (6.43)
donde
I
0
(x) = 1 +

m=1
[
(x/2)
m
m!
]
2
=
_
2
0
e
(x cos )
d
2
(6.44)
es la funci on de Bessel modicada de primera clase. Puede observarse que
esta funci on ventana requiere de m as par ametros que las funciones ventana
anteriores. Algunos valores empricos para los par ametros y N est an dados
por
= (
s

p
)/w
s
, (6.45)
donde
s
y
p
son las frecuencias de rechazo y de paso, respectivamente.
Adem as, los valores de
1
y
2
, los cuales se muestran en la gura 6.7, est an
dados por las siguientes relaciones:
A = 20 log
10

1

2
N =
A 7.95
14.36
, (6.46)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.4. DISE

NO SE FILTROS RIF USANDO VENTANAS 161


Tabla 6.2: C alculo de N para cada ventana.
N K/(f)
Ventana Atenuaci on m axima (dB) K
Rect -21 2.0
Bartlett -25 4.0
Hann -44 4.0
Hamming -53 4.0
Blackman -74 6.0
Kaiser ( = 7.76) -70 4.32
nalmente,
=
_
0.1102(A 8.7), si A 50
0.5842(A 21)
0.4
+ 0.07886(A 21), si 21 < A < 50.
(6.47)
1 +
1

p
1 +
2
Figura 6.7: Par ametros para la ventana Kaiser.
6.4.1. Calculo del orden del ltro RIF
Al igual que en el dise no de ltros RII, se puede controlar el ancho de la
banda de transici on calculando el orden requerido del ltro. Recuerdese que
la atenuaci on mnima est a determinada por la funci on ventana empleada
en el truncamiento de la serie de tiempo innita h[n]. En general, se puede
estimar un valor aproximado para N a partir del ancho de la banda de
transici on deseado. Si se requiere una banda de transici on muy estrecha, el
orden del ltro se incrementa, ya que N es inversamente proporcional a .
En la tabla 6.2 se muestra una f ormula para el c alculo de N dependiendo de
la ventana empleada. En esa tabla aparece una ventana triangular que es la
ventana Bartlett.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
162 6.5. DISE

NO DE FILTROS RIF POR M

INIMOS CUADRADOS
6.5. Dise no de ltros RIF por mnimos cuadrados
Una forma alternativa de dise nar ltros digitales RIF es el dise no por un
metodo llamado Mnimos Cuadrados Ponderados, o bien Frequency Weigh-
ted Least Squares (FWLS).
Sea la respuesta en frecuencia causal de longitud N
H(e
jT
) =
N1

n=0
h[n]e
jnT
, (6.48)
es decir, H(e
jT
) expresada como una combinaci on lineal de funciones base
()
N1
n=0
. (6.49)
Deseamos encontrar h[n] tal que minimicen el error cuadr atico

2
=
T
2
_
/T
/T
[H
d
(j) H(e
jT
)[
2
Q(j), d (6.50)
donde, H
d
(j) es la respuesta en frecuencia deseada y Q(j) es una funci on
de ponderaci on real no-negativa.
Podemos escribir en forma compacta

2
= [[H
d
H[[
2
=< H
d
H, H
d
H >, (6.51)
donde H
d
H es el error , y el operador < > indica el producto interior.
Por el principio de ortogonalidad, el cual dice que el error es ortogonal a los
datos empleados en la estimaci on, entonces
< error, datos > = 0
< H
d
H, [n] = 0, para n = 0, 1, . . . , N 1
< H, [n] > = < H
d
, [n] >
N1

k=0
h[k] < [k], [n] > = < H
d
, [n] >
N1

k=0
q[n k]h[k] = p[n]. (6.52)
La ultima parte de (6.52) corresponde a un sistema de ecuaciones de la forma
_

_
q[0] . . . q[1 N]
q[1]
.
.
. q[2 N]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
q[N 1] . . . q[0]
_

_
_

_
h[0]
h[1]
.
.
.
.
.
.
h[N 1]
_

_
=
_

_
p[0]
p[1]
.
.
.
.
.
.
p[N 1]
_

_
, (6.53)
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.5. DISE

NO DE FILTROS RIF POR M

INIMOS CUADRADOS 163


es decir, es de la forma
Q
N
H
N
= P
N
, (6.54)
donde Q
N
es una matriz de Toeplitz N N, H
N
es un vector columna de
N coecientes, y P
N
es un vector columna de dimensi on N. En este los
elementos de Q
N
est an dados por
q[n k] =
T
2
_
/T
/T
Q(j)e
j(nk)T
d, (6.55)
y los elementos de P
N
por
p[n] =
T
2
_
/T
/T
H
d
(j)Q(j)e
jnT
d. (6.56)
Un caso importante es cuando Q(j) = 1, entonces el dise no corresponde
al dise no por serie de Fourier, en cuyo caso
q[n] =
T
2
_
/T
/T
e
jnT
d. (6.57)
As,
q[n] =
T
2
2
T
= 1 si n = 0,
(6.58)
adem as,
q[n] =
T
2
e
j((n)/T)T
e
j((n)/T)T
jnT
=
(1)
n
(1)
n
j2n
= 0 si n ,= 0, (6.59)
por lo tanto q[n] = [n] lo que implica que H
N
= P
N
, y
h[n] = p[n] =
T
2
_
/T
/T
H
d
(j)e
jnT
d si n = 0, 1, . . . , N 1
h[n] =
T
2
e
j((n)/T)T
e
j((n)/T)T
jnT
=
(1)
n
(1)
n
j2n
= 0 , en cualquier otro caso. (6.60)
Es importante notar que p[n] = h
d
[n].
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
164 6.6. REALIZACI

ON DE FILTROS RIF
6.6. Realizaci on de ltros RIF
Los ltros RIF frecuentemente se pueden implantar en forma directa
usando la suma de convoluci on. Cabe hacer notar que no existe contraparte
anal ogica de los ltros RIF (aunque existe la lnea de retardo con deri-
vaciones anal ogica) y por este hecho se puede omitir la palabra digital al
mencionar tales ltros. Para este sistema tenemos
Y (z) =
N

i=0
b[i]z
i
X(z), (6.61)
o bien
y[n] =
N

k=0
b[k]x[n k], (6.62)
de modo que la funci on del sistema es
H(z) =
N

i=0
b[i]z
i
= z
N
N

l=0
b[N l]z
l
. (6.63)
Adem as, encontramos que la RDE es
h
= 0 < [z[ y el sistema es causal
con respuesta al impulso
h[n] =
_

_
0, si n < 0
b[n], si n = 0, 1, . . . , N
0, si n > N.
(6.64)
La realizaci on de los ltros RIF se basa en la (6.61) donde b[k], k =
0, . . . , N 1, son los coecientes del ltro y N es el n umero de coecientes.
Por lo general implica los siguientes pasos:
1. Almacenar la muestra de entrada x[n], que es el primer estado del
ltro.
2. Multiplicar la muestra de entrada x[n] por b[0] y acumular los pro-
ductos de los estados x[n k] y los coecientes b[k] para obtener la
muestra de salida y[n].
3. Recorrer los estados del ltro para obtener la muestra de salida y[n+1]
efectuando los pasos 1 y 2.
Uno de los modos de direccionamiento del DSP56002/DSP56303 (vease
el captulo 2), el direccionamiento M odulo-N es empleado en la realizaci on de
ltros RIF. Este modo de direccionamiento permite que el valor del registro
de direcciones Rn sea incrementado (o decrementado) mientras permanece
dentro de un intervalo dado de longitud L, donde L est a denido por el
lmite inferior y el lmite superior de las direcciones en las que se almacenan
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.6. REALIZACI

ON DE FILTROS RIF 165


los estados (o datos de entrada) y los coecientes del ltro. En el registro
Mn se almacena el valor L1. As, usando el direccionamiento M odulo N se
logra que el registro de direcciones apunte a una direcci on de datos en un
lazo circular localizado en la memoria de datos X o Y.
El c odigo en lenguaje ensamblador ASM56000 para la implantaci on de
un ltro RIF es el siguiente:
; Instrucciones para la realizaci on de filtros RIF;
; x0 = muestra o dato de entrada
; a = muestra o dato de salida
; ntaps = n umero de coeficientes en el filtro
move #states,r0 ; apuntador a los estados
move #ntaps-1,m0 ; direccionamiento m odulo-N
move coef,r4 ; apuntador a los coeficientes
move #ntaps-1,m4 ; direccionamiento m odulo-N
clr a x0,x:(r0)+ y:(r4)+,y0
rep #ntaps-1
mac x0,yo,a x:(r0)+,x0 y:(r4)+,y0
macr x0,y0,a (r0)-
Note que la instrucci on MACR calcula el valor nal del ltro, realiza un
redondeo convergente del resultado, simult aneamente, decrementa el registro
de direcciones r0. Al nal de la instrucci on MACR, el acumulador contiene
la muestra de salida y[n].
Durante la ejecuci on del programa r4 es post-incrementado NTAPS ve-
ces (una vez junto con la instrucci on CLEAR y NTAPS-1 en la instrucci on
REP). Como el m odulo para r4 es NTAPS y r4 se incrementa NTPAS, la
direcci on a la que apunta r4 da una vuelta y apunta a la direcci on del lmite
inferior de direcciones donde reside el primer coeciente b[0]. Adem as r0 es
post-decrementado (-1), junto con la instrucci on MACR. Como resultado,
r0 apunta a la direcci on de memoria de estados M-1 (es decir, a la ulti-
ma muestra L). Cuando se vuelve a ejecutar el algoritmo, la nueva muestra
sobre-escribir a el valor en la localidad de memoria M-1 (la muestra anterior
a todas), entonces se tiene un efecto de registro FIFO sobre los estados del
ltro con s olo ajustar el apuntador r0.
6.6.1. Macros para la implantaci on de ltros RIF
Con la ayuda de paquetes de dise no de ltros RIF se pueden implantar
ltros RIF para procesamiento en tiempo real en cuesti on de minutos. Una
vez que se obtienen los coecientes del ltro, el uso de macros simplica
bastante la implantaci on de ltros en un sistema de procesamiento de se nales
digitales, es decir en un DSP.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
166 6.7. FDI PARA FILTROS RIF
6.7. FDI para ltros RIF
Se incluye una opci on de dise no de ltros RIF en el paquete de dise no
FDI que se present o en el captulo 5 secci on 5.7. A continuaci on se describe
el empleo de esta opci on paso a paso.
6.7.1. Opci on RIF
En la opci on de dise no de ltros RIF se tienen tres metodos de dise no: por
ventanas, por mnimos cuadrados, y el metodo de Parcks-McLellan tambien
conocido como Equi-rizo. El metodo de dise no se puede seleccionar con el
men u que se muestra en la gura 6.8. En el caso de seleccionar el metodo
Figura 6.8: Metodos de dise no del ltro RIF.
de ventanas, aparecer a el men u para seleccionar la funci on ventana que se
desea aplicar, como se ilustra en la gura 6.9.
Figura 6.9: Selecci on de ventanas en el dise no de ltros RIF.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
6.7. FDI PARA FILTROS RIF 167
Como resultado nal se muestra en la gura 6.10 la respuesta en fre-
cuencia de un ltro RIF pasa-bajas dise nado por el metodo de ventanas en
donde se aplic o una ventana rectangular.
Figura 6.10: Respuesta en frecuencia de un ltro RIF.
Para completar la construcci on del ltro es necesario ejecutar las instruc-
ciones de generaci on de c odigo y de ensamblado. Despues de esto se tiene un
archivo .cld que puede cargarse y ejecutarse en el DSP, como se ilustr o en
el captulo 5.
A continuaci on se muestra el c odigo resultante, para el DSP56303EVM,
del dise no de un ltro pasa-altas por el metodo de ventanas cuya frecuencia
de corte es de 4 kHz. El archivo ha sido recortado por razones de espacio.
Note que al nal del archivo se hace el llamado al macro firmac2.asm
;*********************************************
;* *
;* fir Filter *
;* Design and Implementation *
;*...........................................*
;* Gerardo Miramontes de Le on *
;* Universidad Aut onoma de Zacatecas *
;* *
;* *
;* gmiram@cantera.reduaz.mx *
;* *
;*********************************************
; The following ASM code is automatically set
; Filter specifications:
; Sampling freq. Fs = 48000
; -3dB Cutoff freq. Fp = 4000
; Design method = Windows
;*********************************************
Buffstart equ $0400
Coeffstart equ $0400
ntaps_1 equ 48
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
168 6.7. FDI PARA FILTROS RIF
org X:Buffstart
stateleft ds ntaps_1
tempstore ds 1
org Y:Coeffstart
coef_1 dc -0.000000000
dc 0.000108699
dc 0.000439960
dc 0.000937453
.
.
.
dc -0.000000000
INCLUDE firmac2.asm
firmac2 ntaps_1,coef_1,stateleft,tempstore
A continuaci on se muestra una parte del macro denominado firmac2.asm.
Como su composici on es similar al macro empleado en la construcci on de
ltros RII, s olo se muestra la parte correspondiente al lazo y al llamado de
la rutina process_stereo:
loop
jset #3,x:M_SSISR0,* ;wait for rx frame sync
jclr #3,x:M_SSISR0,* ;wait for rx frame sync
clr a
clr b
move x:RX_BUFF_BASE,a ;receive left
move x:RX_BUFF_BASE+1,b ;receive right
jsr process_stereo
move a,x:TX_BUFF_BASE ;transmit left
move b,x:TX_BUFF_BASE+1 ;transmit right
jmp loop
include ada_init.asm ;used to include codec
;initialization routines
process_stereo
move a,x0
jsr filterleft ;filter the left sample
move a,x:tempstore ;save filtered left sample
move b,x0 ; move right sample
jsr filterright ;filter the right sample
move a,b ;filtered right into b
move x:tempstore,a ;filtered left into a
rts
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
BIBLIOGRAF

IA 169
filterleft
nop ;-- Left channel filtered
clr a x0,x:(r1)+ y:(r4)+,y0
rep #ntaps_1-1
mac x0,y0,a x:(r1)+,x0 y:(r4)+,y0
macr x0,y0,a (r1)-
asl a
move a,x0
move x0,a
rts
filterright
nop ;-- Right channel filtered
clr a x0,x:(r1)+ y:(r4)+,y0
rep #ntaps_1-1
mac x0,y0,a x:(r1)+,x0 y:(r4)+,y0
macr x0,y0,a (r1)-
asl a
move a,x0
move x0,a
rts
end
endm
La subrutina que realiza la operaci on de ltrado se incluye en dos oca-
siones, una para cada canal. Estas subrutinas, filterleft y filterright
realizan la suma de convoluci on, como se explic o en la secci on 6.6.
Bibliografa
[1] Antoniou, A., Digital Filters Analysis and Design, McGraw-Hill, 1979.
[2] El-Sharkawy, M., Digital Signal Processing Applications with the Mo-
torolas DSP56002 Processor, Prentice Hall PTR, 1996.
[3] Gold, B., Rader, C. M., Digital Processing of Signals, McGraw-Hill,
1969.
[4] Hamming, R. W., Digital Filters, Prentice-Hall, 1977.
[5] Jackson, L. B., Digital Filters and Signal Processing, 2nd Edition, Klu-
wer, 1992.
[6] Mitra, S. K., Digital Signal Processing: a computer based approach,
McGraw-Hill, 1998.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
170 BIBLIOGRAF

IA
[7] Freescale Semiconductor Inc., DSP56000/56001 Digital Signal Proces-
sor Users Manual,
DSP56000UM/AD Rev 2. Motorola Inc. 1990.
[8] Freescale Semicondutor Inc., DSP56002 Digital Signal Processor Users
Manual,
DSP56002UM/AD Rev 1. Motorola Inc. 1993.
[9] Stanley, W. D., Digital Signal Processing, Reston Publishing Co., 1975.
Problemas
Problema 6.1 Encuentre una expresi on para la salida y[n] en terminos de
la entrada x[n] de un ltro RIF cuya funci on del sistema est a dada por
H(z) = 4(1 z
1
)(1 +z
1
)(1 + 0.8z
1
)
Problema 6.2 Trace un diagrama a bloques (entrada/salida) que muestre
la realizaci on del ltro RIF del Problema 6.1.
Problema 6.3 Describa brevemente, las principales diferencias entre los
ltros digitales RII y RIF.
Problema 6.4 En que casos se preere emplear un ltro RIF en lugar de
un RII?
Problema 6.5 Escriba, usando Pseudoc odigo, el programa para implantar
un ltro RIF en un procesador de se nales. Suponga espacios de memoria P,
Y, y X, y capacidad para realizar movimientos de datos en paralelo seg un
el procesador DSP56002.
G. Miramontes, ISBN 968-5923-15-9 PDS: Introducci on con teora y pr actica
7
Laboratorio 1
Introducci on al DSP56002/303EVM
Se tienen dos versiones para el ambiente de programaci on del m odu-
lo de evaluaci on DSP56KEVM. Ambas vienen incluidas en el m odulo de
evaluaci on del procesador de se nales DSP56002. Una de estas corre bajo el
ambiente MS-DOS y la otra bajo el ambiente Windows 3.1, o Windows 95 en
adelante. En esta pr actica se presenta la versi on para windows EVM56KW
de Domain Technologies, Inc.
Para realizar la pr actica siga las siguientes instrucciones, si son aplica-
bles.
1. Seleccione el directorio de trabajo C:\EVM56KW.
2. Encienda el m odulo de evaluaci on antes de lanzar el programa
EVM56KW.EXE
3. Lance el programa EVM56KW.EXE.
Note que esta misma pr actica puede realizarse para el DSP56303EVM
haciendo los cambios apropiados en la selecci on de los directorios y de los
programas ejecutables, es decir, desde el menu de inicio deber a seleccionar
Evm563xx seguido de Evm30xw como el programa a ejecutar en lugar de
evm56kw.
Despues de haber lanzado el programa de aplicaci on, aparece en la pan-
talla una ventana subdividida en cuatro subventanas (esto sucede principal-
mente en la versi on para DOS):
Ventana de registros (Registers).
171
172 7.1. DESCRIPCI

ON DEL CONTENIDO EN LAS VENTANAS


Ventana de datos (Data).
Ventana de desensamblado (Unassembly).
Ventanas de mandos (Command).
En la versi on para c _Windows se puede tener una o m as ventanas al
comenzar la sesi on de trabajo. Tenemos la opci on View en la barra de
men u principal, la cual se muestra en la gura 7.1, que nos permite abrir
otras ventanas importantes. Si no se ha abierto la ventana de registros, se-
leccione View seguido de Regs para hacerlo.
Figura 7.1: Men u principal bajo el ambiente de Domain Technologies.
Abra las siguientes ventanas localizando la orden adecuada desde el
men u principal: Data, Unassembly, Command, I/O.
7.1. Descripci on del contenido en las ventanas
7.1.1. Ventana de registros
: La ventana de registros despliega los registros internos del DSP. La base
numerica (radix) aparece en la parte superior de la ventana. Los registros
de la Unidad Aritmetica y L ogica (ALU) se muestran unidos como A, B, X
y Y, o separados como a2 a1 a0, b2 b1 b0, x1 x0, y1 y0. El contenido
de los registros A, B, X y Y se puede mostrar en base hexadecimal, deci-
mal, o fraccionaria. La gura 7.2 corresponde a la ventana de registros y su
contenido.
7.1.2. Ventana de Datos
: La ventana de datos tiene tres elementos
1. El nombre de la ventana (Data).
2. La base numerica (HEX).
3. La etiqueta o direcci on del primer elemento dentro de la ventana.
Dentro de la ventana, la columna izquierda es la direcci on en el espacio
de memoria X, Y, P, o L, seguida por la direcci on (en HEX), a la derecha
aparecen los datos, como se muestra en la gura 7.3.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
7.1. DESCRIPCI

ON DEL CONTENIDO EN LAS VENTANAS 173


Figura 7.2: Ventana Registers bajo el ambiente de Domain Technologies.
Figura 7.3: Ventana Data bajo el ambiente de Domain Technologies.
7.1.3. Ventana de desensamblado
: Esta ventana presenta el programa del DSP. Tiene tres elementos:
1. El nombre de la ventana.
2. El modo de presentaci on, ASM (ensamblador) o ensamblado inverso.
3. El nombre del archivo fuente que aparece cuando la ventana se selec-
ciona en modo fuente o en modo mixto.
7.1.4. Ventana de Mandos
: Esta ventana se emplea para indicar ordenes. Radix HEX signica que
los n umeros ser an tratados como n umeros en base hexadecimal.
7.1.5. Ventana de entrada/salida (I/O)
: Esta ventana muestra los registros de control y de estado de los pe-
rifericos incluidos en el DSP. En la gura g:IOWind, por ejemplo, el primer
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
174 7.2. CAMBIANDO DEL CONTENIDO DE MEMORIA
Figura 7.4: Ventana I/O bajo el ambiente de Domain Technologies.
registro en la parte superior izquierda es el registro BCR (Registro de Control
del puerto B) cuyo contenido es $FFFF.
7.2. Cambiando del contenido de memoria
Existen dos formas de cambiar el contenido de memoria:
a) Seleccione la ventana de mandos, enseguida introduzca la siguiente
lnea: CHANGE X:0 $123456. Esto cambia la direcci on de memoria 0
en el espacio X, a $123456.
b) Para editar directamente sobre la ventana de datos, coloque el cursor
a la direcci on de memoria 0 e introduzca 65000. Esto cambiar a la
direcci on de memoria 0 a la 65000.
7.3. Carga de un programa ensamblado
Se puede cargar un programa usando la opci on File desde el men u prin-
cipal, o usando la orden LOAD en la ventana de mandos. Primero cambie
el contenido del espacio de memoria X direcci on 0 a 0, es decir X:$0000 a
0, usando el mando CHANGE en la ventana de mandos. Cargue el programa
DEMO2.cld. Luego abra una ventana de datos para mostrar X:$0 usando
las opciones View y Data desde el men u principal. Seleccione una base en
decimal (radix = dec) y seleccione el modo gr aco de la siguiente manera:
1. Para cambiar la base de la ventana de datos seleccione la ventana
y luego apunte (haciendo click) sobre el bot on que muestra una T
may uscula. Tambien se puede cambiar la base con F2.
2. Para seleccionar el modo gr aco primero seleccione una ventana de
datos, luego apunte sobre el bot on que tiene una onda sinusoidal. El
bot on para modo gr aco se encuentra en la barra de herramientas
solamente cuando se ha seleccionado una ventana de datos.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
7.4. ALGUNOS EJEMPLOS 175
3. Arranque el programa apuntando sobre el bot on GO (este tiene una e-
cha en color verde), o introduzca la orden GO en la ventana de mandos,
o bien, tambien se puede emplear la tecla con la funci on F5.
4. Detenga el DSP seleccionando el bot on STOP (tiene un signo de ALTO),
Se puede tambien usar el mando FORCE BREAK desde la ventana de
mandos, o con la combinaci on de teclas -F5 (Shift-F5).
7.3.1. Ejecuci on de un solo paso
Aseg urese de que el DSP est a detenido, luego ejecute el programa se-
leccionando el bot on de un solo paso (Single step), este se muestra con una
lente y huellas de pasos. Tambien se puede emplear el mando STEP desde la
ventana de mando, o bien con F8.
7.3.2. Actualizaci on continua
Ejecute pasos continuos seleccionando desde el men u principal RUN y
CONT STEP, lo cual despliega una actualizaci on despues de cada instrucci on.
7.3.3. Pasos m ultiples
Para ejecutar instrucciones m ultiples detenga el procesador y ejecute, en
la ventana de mandos, STEP n, donde n es el n umero de pasos a ejecutar.
7.3.4. Puesta de un punto de ruptura (break-point)
Puede programar un punto de ruptura de tres maneras:
Coloque el cursor, en la ventana de desensamblado, en la instrucci on
en la que se desea el punto de ruptura y haga doble click con el bot on
izquierdo del rat on.
Use el mando BREAK en la ventana de mandos.
Coloque el cursor sobre la instrucci on y presione F9.
7.4. Algunos ejemplos
Trabajando en la ventana de mandos realice los siguientes ejemplos, in-
troduciendo la orden que se muestra en negrillas:
1. BREAK muestra todos los puntos de ruptura tanto por circuitera como
por programa (hardware y software).
2. BREAK OFF remueve todos los puntos de ruptura.
3. BREAK OFF #2 remueve el punto de ruptura n umero 2.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
176 7.4. ALGUNOS EJEMPLOS
4. BREAK P:$100 pone un punto de ruptura por programa en la me-
moria P localidad 100 hex. Seleccione BREAKPOINT DISPLAY desde el
men u principal.
5. BREAK START pone un punto de ruptura en la instrucci on de la memo-
ria de programa etiquetada como START_PROGRAM.
6. BREAK xa X:100 interrumpe el programa cuando la localidad 100 de
la memoria de datos X es leda o escrita una vez (punto de ruptura
por circuito (hardware)).
7. BREAK xa X:100 200, interrumpe el programa cuando la localidad 100
de la memoria de datos X es leda o escrita 200 veces (punto de ruptura
por circuito).
8. BREAK w X:100 200 interrumpe el programa cuando la localidad 100
del espacio de memoria X es escrita 200 veces (punto de ruptura por
circuito).
9. BREAK rw X:100 200 interrumpe el programa cuando se ha tenido
acceso a la localidad 100 del espacio de memoria de datos X 200 veces
(punto de ruptura por circuito).
10. BREAK P:$228 T(AM_VALUE>#$1000) pone un punto de ruptura en la
direcci on P:$228 y entra en modo de depuraci on (debug) si el valor de
AM_VALUE es mayor que $1000.
11. BREAK LOOP T(X0!=Y:$1200), pone un punto de ruptura en la direc-
ci on del programa etiquetada como LOOP y entra en modo de depura-
ci on si el valor del registro x0 no es igual al de la localidad de memoria
Y:$1200.
Puede retirar un punto de ruptura de cuatro formas:
1. Coloque el cursor en la instrucci on con el punto de ruptura y haga un
doble click con el bot on izquierdo del rat on.
2. Use el mando BREAK en la ventana de mandos.
3. Coloque el cursor en la instrucci on que tiene el punto de ruptura y
presione la funci on F9.
4. Use, desde el men u principal, las opciones BREAKPOINT, DISPLAY, DELETE
o bien BREAKPOINT CLEAR.
Para cambiar el valor de un registro se tienen dos formas:
1. Usar el mando CHANGE.
2. Cambiar el valor directamente en pantalla sobre el registro deseado.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
7.4. ALGUNOS EJEMPLOS 177
Para mostrar los smbolos empleados en el programa primero detenga
el DSP, seleccione en el men u principal las opciones SYMBOL, y DISPLAY.
Tambien se pueden mostrar los smbolos ejecutando la orden SYMBOL en la
ventana de mandos.
7.4.1. Uso de la ventana de smbolos
Desde la ventana de smbolos se puede seleccionar un smbolo y realizar
alguna funci on sobre el smbolo seleccionado. Ponga un punto de ruptura
en LOOP seleccionando el smbolo LOOP y luego seleccionando con el rat on el
bot on BREAK. Ponga AM_VALUE en la ventana de observaci on (watch) selec-
cionando el smbolo AM_VALUE y luego el bot on WATCH. Seleccione la ventana
de mandos y realice los siguientes ordenes:
CHANGE AM_VALUE $123400
COPY AM_VALUE AM_WAVE
WATCH AM_VALUE
7.4.2. Prueba de la funci on de evaluaci on
Seleccione la ventana de mandos y realice los siguientes ordenes:
? AM_VALUE + AM_WAVE
EVALUATE r0=$100+$126
7.4.3. Ajuste de puntos (variables) bajo observaci on
Seleccione la ventana de mandos y realice los siguientes mandos:
WATCH R0
WATCH AM_VALUE
WATCH X:0
7.4.4. Ayuda
Presione F1 o use la opci on HELP en el men u principal
7.4.5. Parametros en la lnea de mandos
Los par ametros en la lnea de mandos se emplean para controlar el modo
de operaci on del depurador. Estos se ejecutan antes de ejecutar el programa
depurador EVM56KW.EXE, por ejemplo: c:\evm56kw\evm56kw -h.
Algunos de estos mandos son:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
178 7.5. LA BARRA DE HERRAMIENTAS
-h describe todos los par ametros de la lnea de mandos.
-q deshabilita el ordenamiento de la tabla de smbolos (normalmente
el depurador ordena autom aticamente la tabla de smbolos).
-d ajusta al depurador en modo de demostraci on (signica que no
est a presente la tarjeta EVM). En este modo la memoria del DSP es
simulada en la computadora personal (PC), se puede cargar el c odigo o
programa del DSP en el modo demostraci on pero puede no ejecutarse.
-I inicializa los ajustes de la pantalla en la conguraci on por omisi on
(default settings).
-pn ajusta la direcci on base del puerto de la tarjeta PC. Esto es apli-
cable s olo cuando el DSP se encuentra en una tarjeta que reside dentro
de la PC (la direcci on del puerto por omisi on es -P240).
-kn ajusta el multiplicador del lazo de amarre de fase (PLL) del DSP
(S olo para el DSP56002).
-cn ajusta el puerto RS-232 (c1, c2, c3, ...). Si se omite este par ame-
tro el depurador rastrea todos los puertos RS-232 para encontrar el
circuito que ha sido conectado.
-vn especica el DSP de trabajo. Las opciones disponibles son:
-v1 para DSP56001 y DSP56002
-v2 para DSP56004 y DSP56007
-v3 para DSP56003 y DSP56005, entre otras.
Port ejemplo: c:\evm56kw\evm56kw -d -I\
Arranca al depurador en modo demostraci on, conguraci on de pantalla por
omisi on.
7.5. La barra de herramientas
La barra de herramientas ofrece una forma r apida y conveniente de in-
troducir muchos de los mandos que se emplean con m as frecuencia. La barra
de herramientas tiene los siguientes botones, ledos de izquierda a derecha,
que aparecer an seg un la ventana que haya sido seleccionada:
Ventana de mandos: Go, Stop, Step, Jump, Automatic update, Reset,
Radix.
Ventana de datos: Go, Stop, Step, Jump, Automatic update, Reset,
Radix, Graph.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
7.6. CARGADO Y EDICI

ON DE UN PROGRAMA DEL DSP 179


Ventana de desensamblado: Go, Stop, Step, Jump, Automatic update,
Reset, Reverse Assembly Mode, Source Mode, Mixed Mode.
Ventana de registros: Go, Stop, Step, Jump, Automatic update, Reset,
Radix.
Pruebe cada uno de estos botones para ver c omo trabajan.
7.5.1. Mandos
Los mandos se introducen en la ventana de mandos (Command Window)
colocando el cursor sobre la lnea de entrada.
Para obtener una lista y descripci on de cada mando introduzca help o
bien, se puede obtener la ayuda desde el men u en la barra de herramientas:
seleccione COMMANDS, Commands list.
Algunos de estos mandos ser an usados durante el estudio de la arquitec-
tura y modos de direccionamiento del DSP56002/DSP56303.
7.6. Cargado y edici on de un programa del DSP
Se puede utilizar cualquier editor (que tenga salida en ASCII) para escri-
bir programas para el DSP56002. Usando, por ejemplo, Notepad introduzca
el siguiente programa y ll amelo prog2.asm.
; prog2.asm
; Programa para borrar la memoria RAM en X y Y
move #$100,r0 ;apuntador a memoria
clr b ;empleado para borrar la memoria
loop move b,L:-(r0) ;borra una localidad y decrementa r0
move r0,a ;guarda apuntador en acumulador a
tst a ;prueba >es el apuntador cero?
jne loop ;regresa a loop si no ha terminado
7.6.1. Ensamblado de un programa DSP
El ASM56000 es el programa ensamblador para procesar los programas
en c odigo fuente.

Este entregar a un archivo con el c odigo objeto y un listado
si lo solicita el usuario.
Ejecute la secuencia de instrucciones necesaria para abrir una ventana (o
consola) de DOS, luego dentro de esa ventana introduzca los mandos necesario
para ir al directorio: c:\evm56kw
Enseguida introduzca:
asm56000.
Despues de esto aparecer an las opciones del programa. Se emplear an
las opciones -a -b para operar en modo absoluto y crear un archivo con
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
180 7.7. DEFINICI

ON Y USO DE MACROS
extensi on .cld. Enseguida introduzca:
asm56000 -a -b -l prog2.
Ahora se tiene un archivo con el c odigo objeto de nombre prog2.cld
listo para ser cargado en la tarjeta del DSP.
Siga los siguientes pasos para cargar y correr el programa de ejemplo
prog2.asm.
1. Encienda el DSP56002EVM y lance el programa evm56kw.exe. Aseg ure-
se de tener abiertas las ventanas Command, Data1, Unassemble y Registers.
2. En la ventana de mandos introduzca
change x:$e0..$ff $20
3. change y:$e0..$ff $20
4. display x:$e0..$ff
5. display y:$e0..$ff
6. introduzca break #1 p:$4
para ajustar un punto de ruptura. La ejecuci on del programa se detiene
cuando el contador de programa del DSP llega a ser igual a $4.
7. GO para ejecutar el programa.
8. break off para retirar el punto de ruptura.
9. break #1 pcm p:$4 2 para detener el programa cuando se haya te-
nido acceso a la direcci on p:$4 dos veces.
10. GO compruebe que el contenido de la memoria X y Y haya cambiado.
11. STEP 4 para ejecutar las siguientes cuatro instrucciones del progra-
ma. Note que la localidad de memoria Y:$fb ha cambiado de $20 a
$0.
12. TRACE 4 para ejecutar las siguientes cuatro instrucciones con actua-
lizaci on en pantalla despues de cada instrucci on. Note que Y:$fa ha
cambiado de $20 a $0. Lo mismo para X:$fa.
13. QUIT para terminar.
7.7. Denici on y uso de macros
Un macro es un grupo de instrucciones. Los macros son un componente
muy importante en la realizaci on de programas en ensamblador. Se usar an
para denir, en una sola ocasi on, el n ucleo del c odigo para ltros digita-
les. Un macro se dene por un encabezado, un cuerpo, un terminador. El
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
7.7. DEFINICI

ON Y USO DE MACROS 181


encabezado dene un nombre y los argumentos usando nombres simb olicos
que ser an reemplazados por los valores actuales de los argumentos cuan-
do el macro sea llamado. El cuerpo contiene un grupo de instrucciones del
DSP56002/DSP56303. El terminador es la directiva ENDM n de macro.
7.7.1. Llamado del macro
El llamado del macro tiene tres campos:
Un campo para etiqueta (opcional), un campo de operaciones y un campo
de operandos. Edite el siguiente macro en un archivo llamado MA1.asm:
ma1 macro value ;macro para borrar la memoria RAM en X y Y
move #value,r0 ;apuntador a memoria L
clr b ;carga b con cero para borrar memoria
loop move b,L:-(r0) ;borra una localidad y decrementa r0
move r0,a ;guarda ro en a
tst a ;prueba el apuntador
jne loop ;regresa a loop si no ha terminado
endm
Edite un nuevo programa PROG3.asm con el siguiente contenido:
include ma1
org p:$100
value equ $100
ma1 value
end
El programa PROG3.asm hace un llamado al macro MA1.asm y le pasa el
par ametro value como argumento. Note que el llamado se hace dando el
nombre del macro seguido del par ametro, o par ametros, que utilizar a en la
ejecuci on de las instrucciones contenidas en el.
Nuevamente en una ventana de DOS bajo el directorio c:\evm56kw,
introduzca:
asm56000 -a -bprog3.cld -ic:\evm56kw prog3.asm
La opci on -i, que signica include, indica al programa ensamblador
asm56000 que busque el archivo a incluir ma1.asm. Siga los siguientes pasos:
1. Encienda el m odulo DSP56002EVM, si no lo est a.
2. Cargue el programa PROG3.cld con la opci on que preera.
3. En la ventana de mandos introduzca disassemble p:0..10 para de-
sensamblar y desplegar el contenido de la memoria P desde la direcci on
0-10 ($0-$a). En la pantalla debe aparecer el programa en la ventana
Unassemble.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
182 BIBLIOGRAF

IA
4. Ejecute el programa con GO, o por pasos, y observe que se obtiene
el mismo resultado que se obtuvo durante la ejecuci on del programa
prog2.asm.
Bibliografa
[1] Freescale Semiconductor, Inc., DSP56000/56001 Digital Signal Proces-
sor Users Manual,
DSP56000UM/AD Rev 2. Motorola Inc. 1990.
[2] Freescale Semiconductor Inc., DSP56002 Digital Signal Processor
Users Manual,
DSP56002UM/AD Rev 1. Motorola Inc. 1993.
[3] Debug-56K Users Guide, Version 3.00, Domain Technologies Inc., 1700
Alma Dr. Suite 495
Plano, Texas 75075. (1997).
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
8
Laboratorio 2
El Simulador SIM56000
En este captulo se presenta un simulador de procesadores de se nales de
Motorola que permite conocer los detalles internos del procesador. Mediante
ejercicios se introduce la arquitectura interna, es decir, cu ales y cu antos
registros contiene el procesador, y al mismo tiempo, se muestra parte del
juego de instrucciones del procesador y del simulador.
8.1. GUI56000
GUI56000 es otro nombre para el simulador/depurador del DSP56002
para el ambiente Windows. Este simulador permite familiarizarse con la
arquitectura y modelo de programaci on de algunos procesadores de se nales
de Freescale Semiconductor, Inc. (Motorola).
Para comenzar, lance el programa GUI56000 (dependiendo de la instala-
ci on se puede llamar SIM56000 para trabajar en el ambiente DOS) desde el
administrador de programas. Note que esta pr actica puede realizarse usando
el Simulador GUI56300 o en el SIM56300. (En el apendice B se ha incluido
una descripci on completa de este simulador para la versi on 56300. En este
caso haga los cambios apropiados para lanzar este programa en lugar del
GUI56000.)
La primera ventana que aparece es una ventana donde se muestra por
unos segundos la versi on del simulador que se est a empleando, como se
muestra en la gura 8.1
Despues de esta ventana se abre la ventana principal que se muestra en
la gura 8.2. Note que esta ventana muestra las barras de desplazamiento en
183
184 8.1. GUI56000
Figura 8.1: Ventana inicial del simulador SIM56000.
Figura 8.2: Ventana principal al inicio del simulador.
una posici on que oculta las ventanas que inicialmente se abren dentro de la
ventana principal, es decir, deslizando la barra hacia arriba se puede ver la
ventana de mandos (Command window). La barra superior muestra el menu
principal con las opciones: File, Display, Modify, Execute, Windows,
Help.
El menu principal se muestra en la gura 8.3, donde cada selecci on ofrece
una gama m as amplia de opciones como se muestra en las guras ?? a 8.9.
Figura 8.3: Barra de opciones o menu principal.
Para abrir m as ventanas seleccione la opci on Windows de la barra supe-
rior y luego seleccione la opci on Command. La correcta traducci on de com-
mand no es comando, como con frecuencia se emplea, si no orden, mando, o
instrucci on.
Repitiendo la operaci on podemos abra la ventana de registros y la venta-
na de sesi on y de ensamblado. Para abrir la ventana de registros, seleccione
la opci on Windows, luego Register, despues Core y nalmente Apply. Aho-
ra seleccione desde el menu principal la opci on Display, Active, con eso
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
8.1. GUI56000 185
Figura 8.4: Opciones del menu File.
Figura 8.5: Opciones del menu Display.
est a listo para escribir instrucciones en ensamblador en la ventana de man-
dos.
Antes de cerrar el programa seleccione File Preferences luego la opci on
Save window positions on exit, es decir, conservar la posici on de las ventanas
al salir, y presione sobre el bot on OK. Este paso se emplear a al nal de esta
pr actica.
Figura 8.6: Opciones del menu Modify.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
186 8.1. GUI56000
Figura 8.7: Opciones del menu Execute.
Figura 8.8: Opciones del menu Windows.
Figura 8.9: Opciones del menu Help.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
8.2. PR

ACTICAS CON EL SIMULADOR SIM56000 187


8.2. Practicas con el simulador SIM56000
Aun cuando es muy util y recomendable estudiar el manual de usuario del
DSP56002/DSP56300, una forma de familiarizarse con los registros internos
y modos de direccionamiento de estos DSPs es practicando con el simulador
(GUI56000/GUI56300).
En la ventana de registros se pueden observar todos los registros internos
del DSP y su contenido:
Registros de datos y de la Unidad Aritmetica y L ogica (Address Ge-
neration Unit, ALU):
x, compuesto de x1 y x0 (48 bits para x)
a, acumulador compuesto de a2, a1, y a0
b, acumulador compuesto de b2, b1, y b0 (8 bits en b2, 24 bits para
b1 y b0).
Los acumuladores a y b son registros de 56 bits cada uno.
Registros de la Unidad de Generaci on de Direcciones (Address Gene-
ration Unit, AGU):
r0-r7 registros de direcciones (16-bit)
n0-n7 registros de compensaci on (oset) (16-bit)
m0-m7 registros modicadores (16-bit)
Registros de control de programa:
pc contador de programa
sr registro de estado
omr registro de modo de operaci on
la contador de direcciones en lazo
lc contador de lazo
sp apuntador de pila
Ahora observe el registro de estado SR. El registro de modo de operaci on
(OMR) est a compuesto por el registro de modo MR y el registro de c odigo de
condici on CCR, cada uno de 8 bits, seg un se muestra en la gura 8.10.
MR CCR
LF DM T * S1 S0 I1 I0 S L E U N Z V C
Figura 8.10: Formato del registro OMR.
8.3. Ejecuci on de mandos del simulador
El simulador contiene un conjunto de mandos que se describen a conti-
nuaci on mediante algunos ejercicios:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
188 8.3. EJECUCI

ON DE MANDOS DEL SIMULADOR


Ejercicio 8.1 Aseg urese de que la ventana de registros, la ventana de sesi on
y la venta de mandos esten abiertas. Para esto lance el programa desde su
ubicaci on bajo Windows, puede ir al directorio donde se instal o el programa
o bien, si tiene el enlace desde el escritorio, lo podr a lanzar directamente.
Una vez abierto el programa siga los siguientes pasos:
Abra la ventana cliente del programa a toda la pantalla seleccionando
con el rat on en la esquina superior derecha el icono para maximi-
zar/minimizar.
Reduzca el tama no de la ventana de sesi on, ya que inicialmente ocupa
un espacio muy amplio en la venta de trabajo. Con el rat on seleccione
una de las esquinas y arr astrelo para que ocupe un tama no aceptable
de modo que deje espacio para las otras ventanas (tambien se pueden
acomodar autom aticamente varias ventanas usando la opci on Tile).
Seleccione del menu principal Windows, Register y seleccione el bot on
OK.
Arrastre la ventana de registros a una posici on tal que no se empalme
con las otras ventanas. Posiblemente tenga que ampliar esta ventana
de modo que muestre el mayor n umero de registros.
Por ultimo, nuevamente desde el menu principal en Window Memory,
seleccione la echa hacia abajo para desplegar el espacio de memoria
X.
Ejercicio 8.2 Cambiando el contenido de los registros
Para modicar el contenido de los registros internos se tienen dos opciones:
Seleccione la ventana de registros y presione con el rat on directamente
sobre el contenido del registro que se desea modicar. Seleccione el
registro a2 cuyo contenido muy posiblemente sea $00. Escriba en su
lugar $01 y presione la tecla Intro o Enter. Note que ha cambiado el
contenido del registro a2, as como el registro a. Para indicar que esto
ha sucedido el simulador muestra con un color rojo aquellos registros
que han sufrido una modicaci on.
Seleccione la ventana de mandos (Command) y donde se muestra el
cursor escriba : CHANGE x0 $123456, seguido de Intro. Note nueva-
mente que se ha modicado el contenido del registro x0 y el contenido
del registro x, el cual contiene a los registros x1 y x0.
Ejercicio 8.3 Modicando el contenido de memoria
Para cambiar el contenido de memoria se debe especicar o tener abierta
la venta del espacio de memoria que se desea modicar. En su caso tiene
la ventana de memoria X, si complet o los pasos anteriores. Se tienen dos
posibles formas para modicar el contenido de la memoria como sigue:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
8.3. EJECUCI

ON DE MANDOS DEL SIMULADOR 189


Seleccione la ventana de memoria y sobre el espacio que indica Scroll
To Address escriba $1000 (en cada caso se entiende que debe presionar
Intro). Esto cambia la primera direcci on de memoria. Luego sobre
el primer cuadro a la derecha de esta direcci on escriba $112233. Esta
instrucci on ocasiona que el contenido de la memoria X:$1000 sea ahora
$112233. Note que en la ventana de mandos se ha escrito la acci on que
se acaba de realizar.
Sobre la venta de mandos escriba CHANGE X:$1000 $332211 y habr a mo-
dicado nuevamente el contenido de X:$1000.
Note que los espacios de memoria del procesador van a ser referidos como:
X:direcci on, Y:direcci on, P:direcci on, y L:direcci on.
Ejercicio 8.4 Referencia a los espacios de memoria
Del ejercicio anterior se vio que X:$1000 indica el espacio de memoria X en
la direcci on $1000. Se emplea la misma sintaxis para el espacio de memoria
Y, P y L, donde L es equivalente a X y Y. Realice los siguientes pasos:
Abra una nueva ventana de memoria y seleccione el espacio Y.
Seleccione la direcci on $1000 en la ventana Scroll To Address.
Sobre la ventana de mandos escriba CHANGE L:$1000 $444444555555.
Observe las ventanas de memoria X y Y.
Ejercicio 8.5 Ensamblado de instrucciones
Es posible ensamblar o escribir instrucciones del procesador directamente
bajo la ventana de mandos para despues ejecutarlas. Por supuesto que esta
no es la forma de correr todo un programa ensamblador, se tienen otras
opciones, pero para probar algunas instrucciones se puede hacer lo siguiente:
Sobre la ventana de mandos escriba asm p:$100 move #$123456,y1.
Esto introduce la instrucci on move (cargar o mover el dato inmediato)
$123456 al registro de datos y1. Note que el registro y1 no ha sido
modicado en la ventana de registros.
Sobre la ventana de mandos escriba CHANGE pc $100. Esto prepara al
contador de programa pc para que el procesador ejecute las instruccio-
nes a partir de la direcci on $100. Note que en la ventana de registros
se ha actualizado el valor del pc.
Como se ha introducido una sola instrucci on, no se debe ejecutar GO,
lo que hara que el programa ejecute todas las instrucciones a partir de
la direcci on $100, si no que se desea ejecutar s olo la instrucci on move.
Para esto, escriba sobre la ventana de mandos STEP. Note que en la
ventana de registros se ha actualizado en contenido del registro y1,
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
190 BIBLIOGRAF

IA
el cual debe mostrar el contenido $123456. Adem as en la ventana de
sesi on se muestra un nuevo valor para el pc. Se puede ver tambien, que
hay otros valores que han sido modicados: cyc=000008, el cual mues-
tra que la instrucci on ejecutada tom o 8 ciclos de reloj, ictr=000001
que muestra que se ejecut o una instrucci on. En la ventana de sesi on
se muestra la actualizaci on de los registros y1 y y.
En pr acticas posteriores se continuar a con otros ejercicios sobre la ar-
quitectura y programaci on del procesador de se nales DSP56002/DSP56303.
Bibliografa
[1] Freescale Semiconductor, Inc., DSP56000/56001 Digital Signal Proces-
sor Users Manual,
DSP56000UM/AD Rev 2. Motorola Inc. 1990.
[2] Freescale Semiconductor Inc., DSP56002 Digital Signal Processor
Users Manual,
DSP56002UM/AD Rev 1. Motorola Inc. 1993.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
9
Laboratorio 3
Modos de direccionamiento en el DSP
En esta sesi on de laboratorio se realiza una pr actica con los modos de
direccionamiento y el juego de instrucciones del DSP56002. Los ejercicios
permiten familiarizarse con la sintaxis del lenguaje ensamblador y aquellas
instrucciones propias de un DSP. Esta pr actica de laboratorio se puede rea-
lizar en el m odulo de evaluaci on DSP56000EVM, el m odulo de evaluaci on
DSP56303EVM, el simulador GUI56000/SIM56000 o bien utilizando el si-
mulador GUI56300/SIM56300.
Los ejercicios est an basados en las notas del curso seg un el documento
MTT31, con permiso de Freescale Semiconductors Inc. Es importante notar
que los ejercicios de esta pr actica son aplicables al procesador de se nales
DSP56303, por lo que se har a referencia como DSP56002/DSP56303.
9.1. Modos de direccionamiento
Para entender los modos de direccionamiento del DSP56002/DSP56303
es necesario conocer algunas unidades y registros internos del procesador,
las cuales est an encargadas de realizar las operaciones que permiten modos
de direccionamiento unicos y dise nados expresamente para los algoritmos de
procesamiento digital de se nales.
El DSP56002 contiene las siguientes unidades:
Address Generation Unit (AGU) Unidad de generaci on de direcciones.
La AGU tiene los siguientes elementos m as importantes:
24 registros de 16 bits,
191
192 9.1. MODOS DE DIRECCIONAMIENTO
2 ALUs de direcciones (Aritmetic and Logic Unit (ALU)) Unidade
Aritmetica y L ogica, y
3 multicanalizadores de direcciones de salida.
Registros de direcciones, los cuales est an organizados en tres juegos de
ocho registros:
Registros de direcciones Rn n = 0,1,..,7
Registros de compensaci on (Oset) Nn n=0,1,...,7
Registros modicadores Mn n=0,1,...7.
Cada Rn tiene asociado un registro Nn y un registro Mn, los tres deben te-
ner el mismo n umero n. Rn se emplea como apuntador para localizar datos
en memoria. Estos datos podr an ser utilizados como operandos en algunas
instrucciones. Los registros Nn se usan para actualizar los registros de direc-
ciones Rn con alg un valor de compensaci on. Los registros Mn se emplean para
seleccionar el tipo de aritmetica a realizar cuando se actualizan los registros
de direcciones Rn.
Los modos de direccionamiento se muestran con algunos ejemplos. Pa-
ra comenzar a trabajar, arranque el simulador GUI56000/SIM56000, o el
simulador GUI56300/SIM56300.
En cada uno de los siguientes ejemplos, si es necesario, cargue el registro
o los registros con el valor indicado, ensamble la instrucci on que se muestra
en la direcci on P se nalada y ejecute por pasos usando STEP. Para cargar un
valor pre-establecido en alg un registro utilice el mando CHANGE. Note que el
pc (contador de programa) debe contener la direcci on donde se ensambl o la
instrucci on antes de intentar ejecutarla.
Ejercicio 9.1 Modo de direccionamiento directo a un registro (Re-
gister Direct addressing mode)
Cargue x1 = $332211, y a0=$000000
Ensamble en el espacio de memoria P la siguiente instrucci on:
asm p:$100 move x1,a0
Cambie el pc a $100 y ejecute un step.
9.1.1. Modos de direccionamiento especiales
Los modos de direccionamiento especiales indican el operando o la di-
recci on del operando en un campo de la instrucci on, o implicitamente hacen
referencia al operando. Los modos de direccionamiento especiales son: dato
inmediato, dato inmediato corto, direcci on absoluta, direcci on absoluta cor-
ta, direcci on de I/O corta, salto corto a direcci on, e implcito. En la tabla
9.1.1 se muestran los modos de direccionamiento.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
9.1. MODOS DE DIRECCIONAMIENTO 193
Tabla 9.1: Modos de direccionamiento.
Modo de direccionamiento Usa Mn Usa Rn Sintaxis
Directo a Registro
Dato o Reg de control No -
Registro Rn No S Rn
Registro Nn No No Nn
Registro Mn No No Mn
Reg. de dir. indirecto
Sin actualizar S S (Rn)
Postincremento por 1 S S (Rn)+
Postdecremento por 1 S S (Rn)-
Postincremento por Nn S S (Rn)+Nn
Postdecremento por Nn S S ((Rn)-Nn
Indexado por Nn S S (Rn+Nn)
Predecremento por 1 S S -(Rn)
Especial
Dato inmediato (24 bits) No No #xxxxxx
Direcci on absoluta (16 bits) No No xxxx
Dato corto inmediato (8 bits) No No #xx
Salto corto a direcci on (12 bits) No No xxx
Direcci on corta absoluta (6 bits+ceros) No No aa
Direcci on E/S corta (6 bits+unos) No No pp
Implcito No No
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
194 9.1. MODOS DE DIRECCIONAMIENTO
En cada uno de los siguientes ejemplos, si es necesario, cargue el registro
o los registros con el valor indicado, ensamble la instrucci on que se muestra
en la direcci on P se nalada y ejecute por pasos usando STEP. Para cargar un
valor pre-establecido en alg un registro utilice el mando CHANGE.
Ejercicio 9.2 Transferencia inmediata de un dato a un acumulador
de 24
Sea a=$0
asm p:$201 move#$112233,a0
Ejercicio 9.3 Transferencia de un dato modo inmediato a un acu-
mulador
asm p:$203 move #$112233,a
Ejercicio 9.4 Transferencia de un dato negativo modo inmediato
a un acumulador
asm p:$205 move #$801111,a
Ejercicio 9.5 Transferencia de un dato corto modo inmediato a un
acumulador a0,o a1
asm p:$207 move #$FF,a1
Si el destino es a2, a1, a0, b2, b1, b0, R0-R7, o N0 a N7, el operando
es tomado como entero sin signo.
Ejercicio 9.6 Transferencia de un dato corto modo inmediato a un
registro
asm p:$203 move #$FF,y0
El operando es tomado como una fracci on con signo.
Ejercicio 9.7 Transferencia de un dato corto modo inmediato a un
acumulador
asm p:$203 move #$3F,b
Ejercicio 9.8 Transferencia de un dato corto negativo modo inme-
diato a un acumulador
asm p:$203 move #$83,a
Compare los resultados en los acumuladores a y b.
Ejercicio 9.9 Transferencia de un dato largo modo absoluto
Cargue la direcci on de memoria $1000 del espacio de memoria Y con el dato
$444444. Ensamble y ejecute
asm p:$203 move $Y:$1000,a0
Revise el contenido de a0 y de Y:$1000
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
9.1. MODOS DE DIRECCIONAMIENTO 195
Ejercicio 9.10 Dato corto modo absoluto (6 bits extendido con ce-
ros)
Cargue a1 con $334455
asm p:$203 move a1,X:3
Observe el resultado en la memoria X con direcci on $0003. Este modo tra-
baja en las 64 palabras bajas de memoria, es decir, de la direcci on $0000 a
$0064
Ejercicio 9.11 I/O corto (6 bits extendido con unos)
Cargue a1 con $123456
asm p:$203 move a1,X:<<$FFFE
La direcci on X:$FFFE pertenece al espacio de perifericos incluidos en el
DSP, y corresponde al registro de control del canal (bus) B. Este espacio va
de la direcci on $FFC0 a $FFFF. Despues de ejecutar la instrucci on vea el
contenido de X:$FFFE.
9.1.2. Modos de direccionamiento indirecto con registro de
direcciones
En este modo la instrucci on utiliza un registro Rn para apuntar hacia
un operando en memoria. Se tienen 7 posibilidades, seg un se muestra en los
siguientes ejemplos.
Ejercicio 9.12 Sin actualizaci on
Cargue R0 con $2000 y a1 con $55555. Ensamble y ejecute
asm p:$200 move a1,X:(R0)
Anote sus observaciones.
Nota M0=$FFFF.
Ejercicio 9.13 Sin actualizaci on
Cargue R0 con $2000 y a1 con $55555. Ensamble y ejecute
asm p:$200 move a1,X:(R0)
Cu al es el valor de R0?
Cu al es el contenido de la direcci on $2000 en la memoria X?
Cu al es el contenido de a1? Anote sus observaciones.
Nota M0=$FFFF.
Ejercicio 9.14 Postincremento por 1
Ensamble y ejecute
asm p:$200 move a1,X:(R0)+
Cu al es el contenido de R0?, en que direcci on de memoria de X se escribi o el
contenido de a1? Anote sus observaciones.
Ejercicio 9.15 Postdecremento por 1
Ensamble y ejecute
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
196 9.1. MODOS DE DIRECCIONAMIENTO
asm p:$200 move a1,X:(R0)-
En que direcci on de memoria X se escribi o el dato contenido en a1?,
cu al es el valor de R0? Anote sus observaciones.
Ejercicio 9.16 Postincremento con compensaci on
Cargue N0 con $0004. Ensamble y ejecute
asm p:$200 move a1,X:(R0)+N0
En que direcci on de memoria X se escribi o el dato contenido en a1?,
cu al es el valor de R0? Anote sus observaciones.
Ejercicio 9.17 Postdecremento con compensaci on
Se supone que N0 = $0004, por ejemplo anterior. Ensamble y ejecute
asm p:$200 move a1,X:(R0)-N0
En que direcci on de memoria X se escribi o el dato contenido en a1?,
cu al es el valor de R0? Anote sus observaciones.
Ejercicio 9.18 Predecremento por 1
Ensamble y ejecute
asm p:$200 move a1,X:-(R0)
En que direcci on de memoria X se escribi o el dato contenido en a1?,
cu al es el valor de R0? Anote sus observaciones.
9.1.3. Direccionamiento con los registros Mn
En realidad, en los ejemplos anteriores, cada instrucci on tom o en cuenta
el valor que tena el registro M0, ya que los registros Mn alteran la direcci on
efectiva que se deriva de los registros Rn y Nn. En la tabla 9.2 se muestran
los posibles valores de los registros Mn y su efecto en la aritmetica de di-
reccionamiento. En resumen se tienen tres posibilidades: Mn = 0, Mn=-1, y
Mn,=0 y 1.
El direccionamiento m odulo L es un modo de direccionamiento muy im-
portante en algoritmos de PDS, donde L indica la longitud de la lista de da-
tos. Este modo tiene aplicaciones en la construcci on de registros FIFO (rst
in rst out), colas circulares, lneas de retardo, registros de (re)corrimiento,
sumas nitas de productos, entre otras.
9.1.4. Ajuste del registro Mn en m odulo L
El registro Mn trabaja como se indica en la tabla 9.3.
9.1.5. Modo de direccionamiento con inversi on de bit
Si Mn = $00000, entonces se tiene un direccionamiento que aplica a la
inversi on de bits para calcular la direcci on efectiva. Este modo es particular-
mente importante en los algoritmos de la transformada r apida de Fourier.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
9.1. MODOS DE DIRECCIONAMIENTO 197
Tabla 9.2: Valores de los Registros Mn.
Valor de Mn Aritmetica usada
0 Inversi on de bits
1 M odulo 2
2 M odulo 3
.
.
.
.
.
.
.
.
. M odulo L (L = Mn+1)
32766 M odulo 32677
32767 M odulo 32768
.
.
. Reservado (No se usa)
65535 Lineal (M odulo 65536)
Tabla 9.3: Direccionamiento en m odulo L.
Registro modicador Mn = L-1 M odulo = L
Lm. Inf.=
15
XX. . . XX0. . .0
0
0, (J ceros) donde 2
J
L Inicio de Tabla
Lm. Sup.=
15
XX. . . XX0. . .0
0
0=L-1, (J ceros) Fin de Tabla
Lm. Inf. Rn Lm. Sup. Punto de inicio
Registro de compensaci on Nn = incremento L Incremento deseado
Notas:
(minimizar J)
(si lo hay).
Tabla 9.4: Direccionamiento con inversi on de bits
Registro modicador Mn=$0000 N = tama no de la tabla
Lm. Inf.=
15
XX. . . XX0. . .0
0
0, (K ceros) donde 2
K
N Inicio de tabla
Lm. Sup.=
15
XX. . . XX0. . .0
0
0 +2
K
1, Fin de Tabla
Lm. Inf. Rn Lm. Sup. Punto de inicio
Registro de compensaci on Nn=2
K1
Inicializa Registro Nn
Notas:
(minimizar K)
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
198 9.1. MODOS DE DIRECCIONAMIENTO
En la tabla 9.4 se muestran los ajustes resultantes para este modo de direc-
cionamiento.
Ejercicio 9.19 Direccionamiento con inversi on de bits
Sea N=1024, K=10, el lmite inferior es 3N = 3072, el lmite superior
es 3N+2
K
-1=3072+1024-1=4095, entonces se emplea R0=3072 direcci on
de inicio, N0=512 incremento, M0=0 elige el modo de direccionamiento con
inversi on de bits. Siga el procedimiento siguiente:
Cargue los valores indicados para R0 y N0 usando el mando CHANGE.
Luego ensamble la instrucci on en p:$200
asm p:$200 move x:(RO)+N0,x0
Ahora ejecute la instrucci on con la opci on step. Se obtiene un nuevo
valor para R0, anote este resultado.
Repita la instrucci on anterior y anote nuevamente el resultado.
Finalmente vuelva a ejecutar la instrucci on y anote el resultado.
Observe los ultimos tres valores consecutivos de R0. Explique y com-
pruebe por que se dan esos valores.
Ejercicio 9.20 Alternativamente, repita el ejercicio anterior usando una
FFT de 8 puntos N=8.
Modique los registros con los siguientes valores: R0=$0000 direcci on
de inicio, N0=4 incremento, M0=0.
Cambie el pc a la direcci on $200 (recuerdese que en esa direcci on
est a ensamblada la instrucci on).
Ejecute un STEP y observe y anote el valor del registro R0.
Cambie el pc a $200 y ejecute un STEP. Observe y anote nuevamente
el valor de R0.
Repita el paso anterior seis veces, observando y anotando en cada caso
el valor de R0
Al terminar se puede observar que la direcci on a la que apunta R0 es efecti-
vamente la direcci on que resulta despues de la inversi on de bits.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
9.2. EL JUEGO DE INSTRUCCIONES DEL DSP56002 199
9.2. El juego de instrucciones del DSP56002
El DSP56002 tiene un total de 62 instrucciones que se pueden agrupar
en 6 grupos:
Instrucciones MOV.
Instrucciones Aritmeticas.
Instrucciones L ogicas.
Instrucciones de manipulaci on de bits.
Instrucciones de control de programa.
Instrucciones de lazo.
Algunas instrucciones, 30, permiten movimientos en paralelo, lo cual es una
caracterstica deseable en un DSP. Por ejemplo, la instrucci on:
MACR -x1,y1,a x:(R0)+,x1 Y:(r4)-,y1
realiza las siguientes operaciones sobre los datos:
MACR especica las operaciones de la ALU, operaci on l ogica y redondeo
convergente.
Soporta el registro CC, c odigo de condici on, bits 0 al 5. Multiplica los
datos contenidos en x1, y1 y el resultado lo suma al contenido de a,
adem as efect ua una operaci on de redondeo
Los otros dos campos a la derecha del acumulador a, especican
dos transferencias de datos
dos diferentes modos de direccionamiento
puede trabajar con los espacios de memoria X, Y, L, P, XP.
Adem as soporta operaciones de escalamiento, limitaci on, extensi on de
signo y relleno de ceros de la parte menos signicativa, fuentes dupli-
cadas, pero no soporta destinos duplicados.
Una lista detallada de las operaciones contenidas en esa lnea de c odigo
es:
1. x0 es negado.
2. Multiplicaci on de 2424 bits, x1y1.
3. Suma de 56 bits al acumulador A.
4. Redondeo convergente de A.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
200 9.3. TRANSFERENCIAS EN PARALELO
5. Actualiza el registro CC.
6. Transere el contenido (anterior) del acumulador A al espacio de me-
moria X.
7. Realiza escalamiento.
8. Realiza limitaci on si es necesario.
9. Calcula la siguiente direcci on (R0)+N0.
10. Emplea el registro modicador M0 para
direccionamiento lineal,
direccionamiento m odulo M, o
direccionamiento con inversi on de bit.
11. Transere el contenido de la memoria Y, de una direcci on apuntada
por R4, al registro y1. Si el destino fuera el acumulador B, incluira
extensi on de signo y relleno de ceros.
12. Calcula la siguiente direcci on (R4)-N4.
13. Emplea el registro M4 para
direccionamiento lineal,
direccionamiento m odulo M, o
direccionamiento con inversi on de bit.
9.3. Transferencias en paralelo
Los tipos de transferencias en paralelo son:
Sin transferencia en paralelo.
Transferencia de dato corto inmediato.
Transferencia de datos entre registros.
Actualizaci on de registro de direcciones.
Transferencia de dato de/hacia memoria X.
Transferencia de dato entre Memoria XY y registro.
Transferencia de dato de/hacia memoria Y.
Transferencia de dato entre registro y memoria Y.
Transferencia de dato de/hacia memoria L.
Transferencia de dato de/hacia memoria XY.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
9.3. TRANSFERENCIAS EN PARALELO 201
9.3.1. Reglas de transferencias en paralelo
Se tienen cinco reglas generales para transferencias en paralelo:
S se permite duplicar la fuente:
A Mem X y A Mem Y
No se permite duplicar el destino.
Si la fuente es un acumulador, entonces puede ocurrir (re)corrimiento
o limitaci on.
Si el destino es un acumulador, entonces ocurre extensi on de signo y
relleno de ceros de la parte menos signicativa.
Debido a la estructura pipeline, si se modica un registro de direc-
ciones usando una instrucci on MOVE, el nuevo contenido del registro
no estar a disponible para usarlo en la siguiente instrucci on. Si Rn se
modica con un post o pre-decremento, s estar a listo para la pr oxima
instrucci on.
Ejercicio 9.21 Transferencia en paralelo de dato corto inmediato
(entero sin signo)
Haga A=$01000001000001, y B=$06FFFFFEFFFFFE y ensamble la si-
guiente instrucci on:
asm p:$400 add A,B #$25,A0
Muestre los contenidos en A y B antes y despues de la ejecuci on.
Ejercicio 9.22 Transferencia en paralelo de dato corto inmediato
(fracci on con signo)
Haga A=$01000001000001, y B=$06FFFFFEFFFFFE y ensamble la si-
guiente instrucci on:
asm p:$400 add B,A #$C7,B
Muestre los contenidos en A y B antes y despues de la ejecuci on.
Ejercicio 9.23 Transferencia en paralelo de Registro a Registro
Haga A=$01000001000001, y B=$12654321FEDCBA, N7=$0000 y ensam-
ble la siguiente instrucci on:
asm p:$400 add A,B A,N7
Muestre los contenidos en A, B y en N7, antes y despues de la ejecuci on.
La transferencia en paralelo es A,N7.
Ejercicio 9.24 Actualizaci on en paralelo de registro de direcciones
Haga A=$01000001000001, y B=$06FFFFFEFFFFFE, R1=$2000, N1=$F000
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
202 9.3. TRANSFERENCIAS EN PARALELO
y ensamble la siguiente instrucci on:
asm p:$400 add A,B (R1)+N1
Muestre los contenidos en A, B, R1, y N1, antes y despues de la ejecuci on.
Ejercicio 9.25 Actualizaci on en paralelo de registro de direcciones
Haga A=$01000001000001, y B=$12123456123456, R1=$1000, N1=$0000 y
ensamble la siguiente instrucci on:
asm p:$400 add A,B (R1)-
Muestre los contenidos en A, B, y R1 antes y despues de la ejecuci on.
Ejercicio 9.26 Transferencia paralelo de/hacia memoria de datos
X
Haga A=$00123456ABCDEF, y B=$00123456123456, X:$1000=$0002, y1=$000123
y ensamble la siguiente instrucci on:
asm p:$400 add y1,B A,X:$1000
Muestre los contenidos en X, B, y1 antes y despues de la ejecuci on.
Ejercicio 9.27 Transferencia paralelo de/hacia memoria de datos
X
Haga A=$00123456ABCDEF, y B=$00123456123456, X:$1000=$0002, y1=$000123,
R6=$1001 y ensamble la siguiente instrucci on:
asm p:$400 add y1,B X:-(R6),A
Muestre los contenidos en X, B, R6 y A antes y despues de la ejecuci on.
Ejercicio 9.28 Transferencia paralelo de memoria X y registro
Haga A=$00222222333333, y1=$000000 X=$222222222222, X:$1005=$0002,
N3=$0005, R3=$1000 y ensamble la siguiente instrucci on:
asm p:$400 add X,A A,X:(R3+N3) A,y1
Muestre los contenidos de la memoria X y los registros B, R6 y1, y A,
antes y despues de la ejecuci on.
Ejercicio 9.29 Transferencia paralelo de memoria Y
Haga A=$00222222333333, y0=$000000 X=$222222222222, X:$1000=$0002,
N3=$0005, R3=$1000 y ensamble la siguiente instrucci on:
asm p:$400 add y0,A A,x1 A,Y:(R3)-N3
Muestre los contenidos de la memoria Y y los registros R3 y1, x1 y A,
antes y despues de la ejecuci on.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
9.4. LA INSTRUCCI

ON REP Y LA INSTRUCCI

ON DO 203
Ejercicio 9.30 Transferencia paralelo de memoria larga (L)
Haga B=$00222222333333, y=$505050404040, X:$2000=$222222, Y:$2000=$111111
N3=$0005, R3=$2000 y ensamble la siguiente instrucci on:
asm p:$400 add Y,B BA,L:(R3+N3) A,y1
Muestre los contenidos de los registros mem-X, y mem-Y, B, R3, Y, antes
y despues de la ejecuci on.
Ejercicio 9.31 Transferencia paralelo de memoria XY
Haga B=$00222222333333, y=$505050404040, x=$111111111111, X:$2000=$222222,
Y:$1000=$111111, R1=$2000 R5=$1000 y ensamble la siguiente instrucci on:
asm p:$400 add X,B X:(R3)+,x1 Y:(r5)-,y0
Muestre los contenidos de los registros mem-X, y mem-Y, B, R3, R5, X
y Y, antes y despues de la ejecuci on.
Existe tambien la transferencia de registros de control, de memoria P,
de datos de los perifericos, as como instrucciones de manipulaci on de bits,
operaciones l ogicas, entre otras. Para una lista completa de instrucciones
vea el manual de usuario.
9.4. La instrucci on REP y la instrucci on DO
La instrucci on REP repite la siguiente instrucci on el n umero de veces
indicado en un registro o en modo inmediato.
9.4.1. Caractersticas de la instrucci on REP
S olo son repetibles instrucciones de una sola palabra.
La instrucci on REP y la siguiente son capturadas una sola vez y alma-
cenadas internamente.
REP no se puede interrumpir.
Si LC = 0 especica el m aximo n umero de repeticiones de 65,536.
REP no puede ser la ultima instrucci on de un lazo DO.
Las siguientes instrucciones no son repetibles:
DO
Jcc
JCLR
JMP
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
204 9.4. LA INSTRUCCI

ON REP Y LA INSTRUCCI

ON DO
JSET
JScc
JSCLR
JSR
JSSET
REP
RTI
RTS
STOP
SWI
WAIT
Ejercicio 9.32 La instrucci on REP
Dena x0=$000005, A=$00222222333333, R0=$1000, R4=$2000. Ensamble
la siguiente instrucci on:
asm p:$100 rep x0
asm p:$101 move A,X:(R0)+
No olvide cambiar el pc a $100. Aseg urese de abrir una ventana de datos
X:$1000. Finalmente, ejecute STEP 5, o bien use el bot on STEP cinco veces.
Revise el contenido de la memoria X:$1000 a X:$1004
9.4.2. La instrucci on DO
La instrucci on DO, a diferencia de la instrucci on REP, repite un bloque de
instrucciones especicando en la lnea de la instrucci on DO, con una etiqueta,
el nal del c odigo a repetir.
La sintaxis es la siguiente:
DO y0,FIN
.
.
.
MAC x1,y1,A X:(R0)+,x1 Y:(R4)+,y1
.
.
FIN ADD x1,A ;Primera instrucci on despu es del lazo
FIN es una etiqueta para indicar el n del lazo, y y0 contiene el n umero
de veces que se repetir a la instrucci on DO.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
BIBLIOGRAF

IA 205
Bibliografa
[1] Freescale Semiconductor, Inc., DSP56000/56001 Digital Signal Proces-
sor Users Manual,
DSP56000UM/AD Rev 2. Motorola Inc. 1990.
[2] Freescale Semiconductor Inc., DSP56002 Digital Signal Processor
Users Manual,
DSP56002UM/AD Rev 1. Motorola Inc. 1993.
[3] Course Notes MTT31/CN Rev. 3.0, 1990, Freescale Semiconductor, Inc.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
206 BIBLIOGRAF

IA
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
10
Laboratorio 4
Dise no de ltros anal ogicos en Matlab
Como ya se ha se nalado, existen varios metodos de dise no de ltros
anal ogicos. En esta pr actica se revisan estos metodos empleando las funcio-
nes provistas en Matlab.
Se muestran, para los ltros Butterworth, Chebyshev y Elpticos, las
funciones de Matlab que permiten obtener sus funciones de transferencia.
10.1. Filtros Butterworth
La instrucci on:
[z,p,k]=buttap(n)
nos entrega z, p, k (ceros, polos, y ganancia) de un ltro anal ogico Butter-
worth pasa-bajas prototipo de orden n. La funci on de transferencia es
H(s) =
k
(s p
1
)(s p
2
) . . . (s p
n
)
(10.1)
donde p
n
son los polos de H(s). Note que en este caso z es una matriz
vaca, ya que el numerador se compone de la ganancia k. La respuesta en
magnitud tiene una respuesta m aximamente plana en la banda de paso
y monot onica a toda frecuencia. Para el ltro pasa-bajas, las primeras 2n-
1 derivadas de la magnitud de respuesta al cuadrado son cero en = 0.
La respuesta en magnitud corresponde a una funci on de transferencia con
polos igualmente espaciados alrededor de un crculo en el lado izquierdo del
plano-s. A la frecuencia de corte la magnitud al cuadrado es siempre 1/2 sin
207
208 10.1. FILTROS BUTTERWORTH
importar el orden del ltro. Note que Matlab usa = 1 para un resultado
normalizado.
Para encontrar el orden mnimo de un ltro Butterworth anal ogico o
digital que cumpla con las especicaciones de dise no se tiene la funci on
buttord. En esta pr actica usaremos:
[n,Wn]=buttord(Wp, Ws, Rp, Rs, s),
donde
Wp = esquina superior de la frecuencia de paso,
Ws = esquina superior de la frecuencia de rechazo,
Rp = atenuaci on deseada en dB en la banda de paso,
Rs = atenuaci on deseada en dB en la banda de rechazo,
adem as, Wp y Ws est an dadas en rad/sec y pueden ser mayor a uno para
ltros anal ogicos.
Realice los siguientes ejercicios:
Ejercicio 10.1 Encuentre el orden n para un ltro Butterworth pasa-bajas
con las siguientes especicaciones: frecuencia de corte de 2000 Hz con 2 dB
de atenuaci on, y al menos 10 dB de atenuaci on a 3000 Hz.
Ejercicio 10.2 Usando el orden n encontrado en el paso anterior, dise ne un
ltro Butterworth pasa-bajas prototipo con buttap. Note que esta funci on
regresa un resultado en formato [z,p,k]. Cambie el formato z,p,k a funci on
de transferencia con la funci on zp2tf. Recuerde que siempre se tiene la
opci on de ayuda si tiene duda en el llamado de las funciones, s olo introduzca,
por ejemplo help zp2tf. El polinomio del denominador debe ser igual al
polinomio dado en las tablas de polinomios de Butterworth.
Ejercicio 10.3 Trace la gr aca de respuesta en frecuencia usando freqs
que equivale a la respuesta en frecuencia en el domino de la transformada
de Laplace.
H=freqs(B,A,W)
regresa la respuesta en frecuencia compleja en un vector H del ltro B/A,
donde
H(s) =
B(s)
A(s)
=
b(1)s
nb1
+b(2)s
nb2
+ +b(nb)
a(1)s
na1
+a(2)s
na2
+ +a(na)
(10.2)
dados los coecientes del numerador y denominador en los vectores B, y A.
Es esta una respuesta en frecuencia normalizada?
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
10.2. CHEBYSHEV TIPO I 209
Ejercicio 10.4 Ahora dise ne el ltro pasa-bajas que cumpla con las espe-
cicaciones dadas previamente usando escalamiento en frecuencia o butter
directamente:
a) Usando escalamiento en frecuencia, encuentre la funci on de transfe-
rencia usando la funci on lp2lp, dada en Matlab. Dibuje la respuesta
en frecuencia y aseg urese que cumple con las especicaciones.
b) Usando directamente la funci on butter,encuentre la funci on de trans-
ferencia para las especicaciones dadas. Compare ambas funciones de
transferencia y ambas gr acas de la respuesta en frecuencia.
10.2. Chebyshev Tipo I
La funci on
[z,p,k]=cheb1ap(n,Rp),
regresa los ceros, polos, y ganancia de un ltro anal ogico Chebyshev tipo
I de orden n. Los ltros Chebyshev tipo I tienen rizo en la banda de paso
y respuesta monot onica en la banda de rechazo. Los polos est an uniforme-
mente espaciados alrededor de una elipse en el lado izquierdo del plano-s.
En la frecuencia de corte la magnitud de la funci on de transferencia es igual
a
_
10
Rp/20
1.
La selecci on del orden del ltro se hace con
[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs,s),
donde
Wp frecuencia de corte
Ws frecuencia de rechazo
Rp rizo en la banda de paso
Rs rizo en la banda ed rechazo.
Cheby1 dise na ltros anal ogicos Chebyshev tipo I pasa-bajas, pasa-altas,
pasa-banda y rechazo de banda. La funci on usada es:
[z,p,k] = cheby1(n,Rp,Wn,Ftipo,s)
o
[num,den] = cheby1(n,Rp,Wn,Ftipo,s),
donde Wn es la frecuencia natural del ltro, que se obtiene de cheb1ord y
Ftipo puede ser high para pasa-altas. Para ltros pasa-banda y rechazo
de banda, Wn debe ser un vector de dos elementos.
Ejercicio 10.5 Repita los ejercicios 10.1 a 10.4 para un ltro Chebyshev
tipo I anal ogico empleando una atenuaci on de al menos 20 dB.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
210 10.3. CHEBYSHEV TIPO II
10.3. Chebyshev Tipo II
Para ltros tipo II tenemos la funci on
[z,p,k]=cheb2ap(n,Rp)
que regresa los ceros, polos, y ganancia de un ltro Chebyshev tipo II anal ogi-
co. Los ltros Chebyshev tipo II son monot onicos en la banda pasante y
presentan rizo en la banda de rechazo.
Para seleccionar el orden del ltro se usa
[n,Wn]=cheb2ord(WP,Ws,Rp,Rs,s).
Para dise nar ltros Chebyshev tipo II, pasa-bajas,pasa-altas, pasa-banda
o rechazo de banda se emplea la funci on
[z,p,k]= cheby2(n,Rp,Wn,Ftipo,s)
o
[num,den] = cheby2(n,Rp,Wn,Ftipo,s)
\end{verbtaim}
\bexer
Repita los pasos \ref{ej:paso1} a \ref{ej:paso4} para un filtro
Chebyshev tipo II, que cumpla las especificaciones dadas.
\eexer
%\item {\bf Filtros el pticos}\\
\section{Filtros el pticos}
El prototipo anal ogico de un filtro el ptico se obtiene con
\begin{verbatim}
[z,p,k]=ellipap(n,Rp,Rs)
lo cual regresa los ceros, polos, y ganancia para un prototipo anal ogico elpti-
co de orden n. Los ltros elpticos presentan rizo en la banda pasante y rizo
en la banda de rechazo.
Para encontrar el orden del ltro se emplea:
[n,Wn]=ellipord(Wp, Ws, Rp, Rs, s).
Una vez encontrado el orden n, podemos dise nar el ltro elptico con
[z,p,k]=ellip(n,Rp, Rs, Wn,Ftype,s).
Ejercicio 10.6 Repita los pasos 10.1 a 10.4 para un ltro anal ogico elptico
que cumpla con las especicaciones dadas.
Ejercicio 10.7 Bas andose en los resultados anteriores, compare los cuatro
metodos de dise no e incluya en su reporte algunas conclusiones acerca de
ellos. Trate de hacer una comparaci on cualitativa y cuantitativa entre los
diferentes tipos de ltros.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
BIBLIOGRAF

IA 211
Bibliografa
[1] The Student Edition of Matlab, Version 5 Users Guide. The Math-
Works, Inc., Prentice Hall, Upper Sadle River, NJ 07458, (1997).
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
212 BIBLIOGRAF

IA
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
11
Laboratorio 5
Dise no de Filtros Digitales RII en
Matlab
En esta pr actica se dise nar an ltros digitales RII empleando las funcio-
nes contenidas en Matlab. Una parte importante de esta pr actica es la
implantaci on de ltros en tiempo real. En la implantaci on de estos ltros se
hace uso de los macros y rutinas de inicializaci on dadas por Motorola.
Se espera que al realizar esta pr actica el alumno comprenda las propie-
dades de las funciones de transferencia de segundo orden dadas por
H(z) =
b
0
+b
1
z
1
+b
2
z
2
1 a
1
z
1
+a
2
z
2
.
Para trabajar con este tipo de estructura se necesita escribir la funci on
de transferencia H(z) como el producto de secciones de segundo orden SSO
(SOS en Matlab), tambien llamadas secciones bicuadr aticas o simplemente
bicuads. As pues
H(z) =
n/2

i=1
b
0i
+b
1i
z
1
+b
2i
z
2
1 a
1i
z
1
+a
2i
z
2
= K
n/2

i=1
1 +b

1i
z
1
+b

2i
z
2
1 a

1i
z
1
+a

2i
z
2
,
donde K=ganancia total, y b

1i
= b
1i
/b
0i
, y b

2i
= b
2i
/b
0i
. El subndice i
indica el n umero de la SSO.
213
214 11.1. FILTROS BUTTERWORTH
Al trabajar en un procesador de punto jo como el DSP56002 se requiere
de una adecuada cuantizaci on y escalamiento de los coecientes. Los efectos
de cuantizaci on se pueden ver comparando la respuesta en frecuencia ideal
del ltro con la respuesta real una vez implantado en el DSP.
En esta pr actica se har a uso de un juego de archivos M que han sido
dise nados para hacer el proceso de dise no e implantaci on de ltros RII m as
amigable. A ese juego de archivos se la ha llamado FDI (Filter Design and
Implementation package); Se ejecuta bajo el ambiente Matlab y tiene la
capacidad de generar los archivos de coecientes en lenguaje ensamblador,
lo que permitir a obtener de una manera muy f acil el archivo .cld para ser
cargado y ejecutado en el DSP.
Antes de usar el FDI practique con los siguientes ejercicios.
11.1. Filtros Butterworth
buttord selecciona el orden mnimo de un ltro Butterworth digital que
se requiere para cubrir las especicaciones de dise no.
[n,Wn]=buttord(Wp, Ws, Rp, Rs),
donde
Wp = esquina de la frecuencia de paso
Ws = esquina de la frecuencia de rechazo
Rp = atenuaci on deseada en dB en la banda de paso
Rs = atenuaci on deseada en dB en la banda de rechazo
Wp y Ws son valores normalizados de frecuencia y deben estar entre 0 y 1.
Ejercicio 11.1 Encuentre el orden n para un FPb digital Butterworth con
las siguientes especicaciones: frecuencia de corte 2000 Hz con -2 dB de ate-
nuaci on y al menos -20 dB de atenuaci on a 3000 Hz. Emplee una frecuencia
de muestreo de 48 kHz.
Ejercicio 11.2 Trace la gr aca de la respuesta en frecuencia usando freqz,
que entrega la respuesta en frecuencia del ltro digital.
[H,f] = freqz(B,A,N,Fs)
entrega un vector f de frecuencias en N puntos y un vector H de la respuesta
en frecuencia compleja en N puntos del ltro B/A:
H(e
j
) =
B(z)
A(z)

z=e
j
=
b(1) +b(2)z
1
+ +b(nb + 1)z
nb
1 +a(2)z
1
+ +a(na + 1)z
na

z=e
j
,
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
11.1. FILTROS BUTTERWORTH 215
donde B y A son los vectores de coecientes del numerador y denominador.
La respuesta en frecuencia se eval ua en N puntos igualmente espaciados
alrededor del crculo unitario.
freqz(B,A,...), sin argumentos de salida, traza la gr aca de magnitud
y de fase de B/A en la ventana activa.
Ejercicio 11.3 Trace el diagrama cero/polo sobre el plano z usando la ins-
trucci on zplane(B,A). Note que hacer los c alculos a mano implica mucho
trabajo, especialmente cuando el orden del ltro es alto (n=7 en este caso).
Ejercicio 11.4 Se requiere hacer una factorizaci on de la funci on de transfe-
rencia original para obtener las secciones de segundo orden (SSO). Matlab
contiene una funci on que hace precisamente eso, la funci on es
S = zp2sos(z,p,k)
donde S es una matrix que contiene las SSO:
S =
_

_
b01 b11 b21 a01 a11 a21
.
.
.
b0L b1L b2L a0L a1L a2L
_

_,
donde L=n/2, y n=orden del ltro. El n umero de columnas es 6, mientras
que el n umero de las depender a del n umero de SSO. El segundo subndice
indica el n umero de SSO.
Note que aij, i = 0 . . . 2, j = 1 . . . L puede ser mayor a 1, de hecho
puede ser 2 aij < 2. En este caso, debido a la aritmetica fraccionaria
del procesador, los coecientes son divididos entre dos antes de ser cargados
a la memoria.
Ejercicio 11.5 Explique c omo se puede implantar un ltro de septimo or-
den usando secciones bicuads. (Tip: Encuentre la funci on de transferencia
de cada secci on).
Ejercicio 11.6 Implantaci on del ltro en el DSP56002 Usando los
coecientes encontrados en el paso anterior, los macros y los archivos asm de
esta pr actica, escriba los archivos necesarios para tener un archivo IIRLP.asm.
Note que lo unico que se requiere modicar es el archivo que contiene los
coecientes. Note tambien que los archivos de base pueden ser usados para
cualquier tipo de ltro sea Butterworth, Chebyshev, Elptico, etc. Una vez
obtenido el archivo de coecientes utilice el programa ensamblador asm56000
para obtener el archivo .cld. Finalmente, ejecute el programa de aplicaci on
de Domain Technologies. El programa ensamblador se encuentra bajo el
directorio c:\evm56kw.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
216 11.2. FILTROS CHEBYSHEV TIPO I
11.2. Filtros Chebyshev Tipo I
Cheb1ord selecciona el orden mnimo requerido para cumplir las especi-
caciones de un ltro anal ogico o digital Chebyshev:
[n,Wn]=cheb1ord(WP,Ws,Rp,Rs)
Cheby1 dise na ltros Chebyshev anal ogicos o digitales tipo I. La funci on
empleada es
[z,p,k] = cheby1(n,Rp,Wn,Ftipo)
o bien,
[num,den] = cheby1(n,Rp,Wn,Ftipo),
donde Ftipo indica el tipo de ltro que se desea, por ejemplo High para pasa-
altas, o Stop para rechazo de banda. Para ltros pasa-bajas no es necesario
espcicarlo. Para ltros pasa-banda y rechazo de banda, Wdebe ser un vector
de dos elementos.
Ejercicio 11.7 Repita los pasos del ejercicio 11.1 al ejercicio 11.6 para un
ltro Chebyshev tipo I.
11.3. Filtros Elpticos
ellipord selecciona el orden mnimo necesario para cumplir las especi-
caciones de dise no de ltros elpticos anal ogicos o digitales.
[n,Wn]=ellipord(Wp, Ws, Rp, Rs).
ellip dise na ltros elpticos pasa-bajas, pasa-altas, pasa-banda y recha-
zo de banda anal ogicos o digitales. La funci on usada es
[z,p,k]=ellip(n,Rp, Rs,Wn,Ftipo).
Para la implantaci on de ltros pasa-altas o pasa-banda se requiere se-
guir el mismo procedimiento de dise no: especicar los requerimientos de la
repuesta en frecuencia, encontrar el orden del ltro, encontrar la funci on de
transferencia y luego aplicar un procedimiento de factorizaci on para obtener
las SSO.
Ejercicio 11.8 Dise ne un ltro elptico con las especicaciones dadas en el
ejercicio 11.1 y repita los pasos hasta el ejercicio 11.6. Compare el orden y la
respuesta en frecuencia de este ltro con los ltros Butterworth y Chebyshev.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
11.4. FDI PROGRAMA DE DISE

NO Y REALIZACI

ON 217
11.4. FDI programa de dise no y realizaci on
En el siguiente ejercicio se podr a hacer uso de un juego de archivos M
que integran el procedimiento de dise no y realizaci on de ltros digitales en
el procesador de se nales DSP56002/DSP56303.
En la versi on actual de FDI se pueden trabajar ltros Butterworth,
Chebyshev tipo I, y elpticos. No se incluye el dise no de ltros rechazo de
banda.
Como ya se dijo, se tienen dos versiones de FDI, una para el sistema de
evaluaci on DSP56002EVM y otra para el DSP56303EVM. Dependiendo del
sistema de evaluaci on que tenga disponible utilice la versi on que correspon-
da.
Ejercicio 11.9 Ejecute Matlab y en el espacio de trabajo introduzca la
siguiente orden: >>chdir c:\fdi2k2 para la versi on DSP56002EVM o
>>chdir c:\fdi563x
para la versi on DSP56303EVM. Enseguida introduzca:
mainfdi
Seleccione Lowpass como el ltro deseado sobre el bot on Lowpass.
y seleccione Butterworth
Ejercicio 11.10 Ahora es necesario introducir las especicaciones de fre-
cuencia del ltro. Introduzca:
fp = 8000
fs = 10000
kp = 2
ks = 20
Fs = 48000
Seguido de esto seleccione Plot Freq. response.
Ejercicio 11.11 Una vez que se ha obtenido la gr aca de la respuesta en
frecuencia se puede seleccionar la opci on write ASM file desde el men u don-
de aparece select an option.
Dentro de FDI se puede seleccionar la opci on assemble, o si se desea se
puede ejecutar el siguiente ejercicio:
Ejercicio 11.12 Abra una ventana de DOS (no cierre la aplicaci on de Win-
dows). Donde aparece el cursor introduzca:
>a: <enter>
luego cambie el directorio de trabajo a
>cd \fdi2k2\transpwork
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
218 11.4. FDI PROGRAMA DE DISE

NO Y REALIZACI

ON
o donde se encuentren sus archivos de trabajo. Enseguida introduzca
>asm56000 -a -b -l iirlp
Esto generar a el archivo iirlp.cld, el cual puede cargarse al m odulo de
evaluaci on DSP56002EVM o DSP56303EVM, seg un corresponda.
Nuevamente desde DFI se puede emplear la opci on Open Debugger para
lanzar el programa de comunicaci on con el DSP, o si se preere se puede
ejecutar el siguiente ejercicio.
Ejercicio 11.13 Presione la teclas ALT+TAB para regresar a Windows. Eje-
cute el programa de comunicaci on con el DSP (Domain Technologies). El
m odulo de evaluaci on deber a estar encendido y conectado apropiadamente
al puerto serie de la computadora.
Una vez que se ha abierto el programa de comunicaci on de Domain
Technologies, seleccione load b:\iirlp.cld, luego presione sobre el bot on
GO. Mida la respuesta en frecuencia del ltro que se est a ejecutando sobre el
DSP. Si dispone de un analizador de redes la tarea ser a m as f acil. Se puede
usar la combinaci on de teclas ALT+TAB para regresar a la ventana del FDI
y comparar la respuesta en frecuencia obtenida en Matlab con la que se
obtiene en tiempo real.
Ejercicio 11.14 Si no se tiene un analizador de redes, se puede hacer una
medici on aproximada de la respuesta en frecuencia utilizando un generador
de se nales y un osciloscopio de doble trazo. Recuerde que la amplitud de
la se nal aplicada al DSP debe mantenerse dentro del margen din amico del
circuito de entrada, no exceda la amplitud especicada por el fabricante o
puede destruir el m odulo. Una vez ajustada la amplitud, seleccione un punto
de frecuencia sobre el generador y mida la amplitud de la se nal a la entrada
al DSP y de la se nal de salida del DSP. Anote el valor de la frecuencia
de prueba y la raz on de amplitudes salida/entrada. Incremente el valor de
la frecuencia de la se nal del generador y repita la operaci on. Realice estos
pasos hasta completar entre 10 y 20 puntos de frecuencia de modo que pueda
trazar la gr aca de la respuesta en frecuencia en magnitud del ltro. A esta
gr aca tambien se le conoce como gr aca de Bode.
Ejercicio 11.15 Regrese al menu principal para dise nar un nuevo ltro.
Ahora seleccione Lowpass y luego Chebyshev.
Introduzca las mismas especicaciones de frecuencia. Se pueden usar las
teclas de echa hacia arriba/hacia abajo para regresar a los datos introdu-
cidos previamente.
Ejercicio 11.16 Repita los pasos para obtener un ltro pasa-bajas Chebys-
hev ejecut andose en el DSP56002EVM/DSP56303EVM. Al observar la gr a-
ca de la respuesta en frecuencia es la respuesta en frecuencia similar a la
de un ltro Chebyshev?
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
BIBLIOGRAF

IA 219
Ejercicio 11.17 Finalmente, seleccione Lowpass y Elliptic. Ahora intro-
duzca las siguientes especicaciones:
fp = 5000
fs = 6000
kp = 1
ks = 50
Fs = 48000
Realice todos los pasos necesarios para dise nar, ensamblar, cargar y ejecutar
el ltro elptico en el DSP56002EVM/DSP56303EVM. Mida la respuesta en
frecuencia. Verique si la respuesta en frecuencia corresponde a la de un
ltro elptico.
Bibliografa
[1] The Student Edition of Matlab, Version 5 Users Guide. The Math-
Works, Inc., Prentice Hall, Upper Sadle River, NJ 07458, (1997).
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
220 BIBLIOGRAF

IA
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
12
Laboratorio 6
Dise no de Filtros Digitales RIF en
Matlab
El juego de herramientas para procesamiento de se nales (Signal Proces-
sing Toolbox) de Matlab contiene funciones propias para el dise no de ltros
digitales con respuesta al impulso nita (RIF) y algunas de estas funciones
ser an empleadas durante esta pr actica. Posteriormente, se implantar an es-
tos ltros en el DSP56002/DSP56303 para mostrar su funcionamiento en
tiempo real. En la implantaci on de los ltros RIF, se hace uso de los macros
y rutinas de inicializaci on con el permiso de Freescale Semicondutors, Inc.
Adem as, en esta pr actica se har a uso de un conjunto de archivos M que
fueron dise nados con el prop osito de hacer la tarea de dise no e implantaci on
de estos ltros en forma m as amigable. Este juego de archivos forma parte del
paquete denominado FDI, se ejecutan bajo el ambiente Matlab y tienen la
capacidad de generar en forma autom atica el c odigo en lenguaje ensamblador
para su ensamblado y generaci on del archivo .cld, el cual puede ser cargado
y ejecutado en el procesador DSP56002/DSP56303.
12.1. Dise no de ltros RIF usando funciones ven-
tana
La funci on fir1 dise na ltros RIF por el metodo de ventanas. La funci on
es llamada introduciendo, en el ambiente de trabajo de Matlab, la siguiente
instrucci on:
221
22212.1. DISE

NO DE FILTROS RIF USANDO FUNCIONES VENTANA


B = fir1(N,Wn),
donde el vector B, de longitud N+1, contendr a los coecientes de un ltro
digital RIF pasa-bajas de orden N.
La frecuencia de corte Wn debe estar entre 0 < Wn < 1.0, donde 1.0
corresponde a la mitad de la frecuencia de muestreo. El ltro resultante
es real y tiene fase lineal, es decir, tiene simetra par en sus coecientes
obedeciendo la relaci on:
B(k) = B(N + 2 k), en donde k = 1, 2, ..., N + 1.
Para tener un ltro pasa-banda, Wn debe ser un vector de dos elementos,
es decir, Wn = [W1 W2].
Para dise nar un ltro pasa-altas se usa
B = fir1(N,Wn,high).
Si empleamos
B = fir1(N,Wn,stop),
cuando Wn = [W1 W2], entonces B corresponde a un ltro de rechazo de
banda (bandstop lter).
Para ltros que tengan una banda de paso cercana a Fs/2, es decir,
ltros pasa-altas y rechazo de banda, N debe ser par.
Las ventanas pueden ser:
Rectangular (Boxcar),
Hamming,
Hanning,
Bartlett,
Blackman,
Kaiser,
Chebwin.
Por omisi on, Matlab ajusta la escala del ltro de modo que el centro
de la primera banda de paso tenga magnitud exactamente uno despues de
aplicar la ventana.
Ejercicio 12.1 Dise ne un ltro RIF con las siguientes especicaciones: or-
den N = 40, frecuencia de corte de 2000 Hz, y frecuencia de muestreo de 48
kHz, con:
B = fir1(40,2000/24000);
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
12.1. DISE

NO DE FILTROS RIF USANDO FUNCIONES VENTANA223


luego introduzca y ejecute las siguientes instrucciones:
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)));
title(Respuesta en Frecuencia);
ylabel(Magnitud [dB]);
xlabel(Frecuencia [Hz]);
grid;
Observe la diferencia en dB entre la atenuaci on del primer l obulo lateral
y la atenuaci on en la banda de paso. Que funci on ventana se aplica por
omisi on?
Ejercicio 12.2 Ahora, repita el c alculo de B para N = 60. Despues de eso
introduzca lo siguiente:
hold on
Encuentre y trace la respuesta en frecuencia con:
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)),r);
Observe cualquier diferencia entre ambas respuestas en frecuencia. Es la
atenuaci on del primer l obulo lateral signicativamente mayor que cuando N
era 40?
Ejercicio 12.3 Para aplicar una ventana rectangular introduzca lo siguien-
te:
N = 40;
fc = 2000;
Fs = 48000;
FN = Fs/2;
B = fir1(N,fc/FN,Boxcar(N+1));
Ahora introduzca:
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)), g);
Compare las tres curvas. Como puede observarse, la ventana rectangular
da una respuesta en frecuencia diferente. Cu anta atenuaci on tenemos en el
primer l obulo lateral cuando se emplea la ventana rectangular?, es la banda
de transici on igual a las anteriores?
Ejercicio 12.4 Finalmente, dise ne un ltro RIF con las mismas especica-
ciones de frecuencia pero empleando una ventana Blackman con:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
224
12.2. OTROS M

ETODOS DE DISE

NO: M

INIMOS CUADRADOS Y
EQUIRIZO
B = fir1(N,fc/FN,Blackman(N+1));
seguido de
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)), b);
a) Que efecto se produce al incrementar N?
b) Cu al es el efecto al usar una funci on ventana diferente?
c) Si tuviera que seleccionar la funci on ventana en el dise no del ltro,
que consideraciones tomara en cuenta para hacer esa selecci on?
12.2. Otros metodos de dise no: Mnimos cuadra-
dos y Equirizo
Resulta util introducir otros dos metodos de dise no que no est an restrin-
gidos o limitados al dise no cl asico con especicaciones pasa-bajas, pasa-altas,
y de m as. Estos metodos son mnimos cuadrados (least-squares) y equirizo
(equiripple).
12.2.1. Mnimos cuadrados
El primer metodo es llamado Minimizaci on del error cuadr atico mni-
mo (Least-squares error minimization). La funci on es: firls.
La funci on
B=firls(N,F,A)
entrega un ltro real con fase lineal en un vector B de longitud N+1 (con
coecientes reales simetricos).
El ltro dar a la mejor aproximaci on a la respuesta en frecuencia deseada
descrita por F y A en un sentido de mnimos cuadrados. F es un vector de
pares de bandas de frecuencia, en orden ascendente, entre 0 y 1. En el vector
F, 1 corresponde a la frecuencia de Nyquist, o sea la mitad de la frecuencia
de muestreo, Fs/2. A es un vector real del mismo tama no que F, el cual
especica la amplitud de la respuesta en frecuencia deseada en B.
Ejercicio 12.5 Dise ne un ltro con las siguientes especicaciones, note los
espacios en la denici on del vector de frecuencias FV y del vector de ampli-
tudes FA. Introduzca las siguientes lneas:
hold off
fp = 6000; % extremo de la banda de paso
fr = 7000; % extremo de la banda de rechazo
FN = 24000; % Frecuencia de Nyquist
FV = [0 fp/FN fr/FN 1]; % vector de Frequencias
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
12.3. FDI Y FILTROS RIF EN EL DSP56002/DSP56303 225
kp = 1; % ganancia en la banda de paso
kr = 0.001; % ganancia en la banda de rechazo
AV = [kp kp kr kr]; % vector de Amplitudes
Obtenga los coecientes del ltro con:
B = firls(40,FV,AV);
Ahora encuentre y trace la respuesta en frecuencia con:
[h,f] = freqz(B,1,200,Fs);
semilogx(f,20*log10(abs(h)),k);
grid;
Observe la respuesta en frecuencia obtenida cuando se emplea el metodo de
mnimos cuadrados.
12.2.2. Parks-McClellan o equirizo
El segundo metodo es llamado el metodo de Parks-McClellan o de dise no
optimo equirizo, tambien es conocido como el metodo de Remez porque
emplea el algoritmo de intercambio de Remez. Este metodo se incluye en el
paquete FDI.
12.3. FDI y ltros RIF en el DSP56002/DSP56303
Con el n de mostrar las diferencias entre los ltros RIF obtenidos por
varios metodos, se har a uso del paquete FDI en los siguientes ejercicios (para
una descripci on del paquete FDI veanse captulos anteriores.
Ejercicio 12.6 Ejecute Matlab e introduzca la siguiente orden:
>>chdir c:\fdi2k2
para la versi on DSP56002EVM o
>>chdir c:\fdi563x
para la versi on DSP56303EVM. Enseguida introduzca mainfdi.
Seleccione el dise no de ltros RIF (FIR. Despues Lowpass seguido de
Windows). Seleccione una ventana Rectangular. Enseguida, introduzca las
especicaciones del ltro:
fp = & 8000\\
fs = & 10000\\
kp = & 1\\
ks = & 30\\
Fs = & 48000
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
226 BIBLIOGRAF

IA
Ejercicio 12.7 Seleccione Plot Freq. Response. Observe la atenuaci on
obtenida en el primer l obulo lateral (debe ser de alrededor de 21dB). Tome
nota de estos valores para su comparaci on con la respuesta medida en tiempo
real.
Ejercicio 12.8 Seleccione la opci on para regresar al men u principal. Aho-
ra seleccione un dise no Lowpass con una ventana de Hanning. Emplee las
mismas especicaciones de frecuencia que en el dise no anterior. Trace la
respuesta en frecuencia y comp arela con el dise no que emple o la ventana
rectangular. Mida la atenuaci on del primer l obulo lateral y comp arelo a la
atenuaci on del l obulo principal.
Ejercicio 12.9 Repita el los pasos necesarios para aplicar una ventana
Blackman y mida la atenuaci on del primer l obulo lateral.
Ejercicio 12.10 Utilice FDI para dise nar un ltro por el metodo de mni-
mos cuadrados con las siguientes especicaciones:
fp = 8000
fs = 10000
kp = 0.5
ks = 40
Fs = 48000
Ejercicio 12.11 Finalmente, aplique el metodo de Parks-McClellan para
obtener un ltro RIF pasa bajas con las especicaciones dadas en el ejer-
cicio anterior. Compare la respuesta en frecuencia con las obtenidas en los
ejercicios anteriores.
Ejercicio 12.12 Usando los coecientes encontrados en las secciones an-
teriores, un conjunto de archivos y macros en lenguaje ensamblador, y el
juego de archivos M del paquete FDI, se puede mostrar la operaci on de
ltros digitales en tiempo real.
Ejecute los pasos necesarios para generar el c odigo del ltro. Una vez
que se cuente con los archivos necesarios, se emplear a el programa ensam-
blador para obtener el archivo .cld, y nalmente bajo el ambiente de Domain
Technologies se ejecutar a el ltro en el procesador DSP56002/DSP56303.
Si es necesario, pida al instructor que al nal de la pr actica muestre la
operaci on del ltro en tiempo real. Observe y mida la respuesta en frecuencia
del ltro. Compare la respuesta en frecuencia observada en tiempo real con
la que se obtuvo bajo el ambiente de Matlab.
Bibliografa
[1] The Student Edition of Matlab, Version 5 Users Guide. The Math-
Works, Inc., Prentice Hall, Upper Sadle River, NJ 07458, (1997).
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
13
Laboratorio 7
PDS con la tarjeta de sonidos y Matlab
El objetivo de esta sesi on de laboratorio es mostrar que con algunos
recursos de c omputo muy comunes se pueden implantar y probar algunos
algoritmos de procesamiento digital de se nales.
13.1. Introducci on
Una estaci on de trabajo, o laboratorio, para el procesamiento digital de
se nales incluir a al menos:
Una tarjeta de adquisici on de datos con puertos de entrada/salida
anal ogicos, con opciones para selecci on de tasa de muestreo a gusto de
el usuario, ganancia programable, y alta capacidad de almacenamiento
(memoria).
Unidad de procesamiento para la implantaci on de algoritmos de PDS,
y
Program atica (software) de desarrollo.
Se puede decir que es necesario: una computadora, una tarjeta DSP y pro-
gramas de c omputo.
En casi cualquier computadora personal se tiene disponible una tarjeta
de sonido. Tambien se pueden encontrar programas de c omputo para grabar
y reproducir se nales de audio. Usualmente, este programa viene includo en
Windows
c _
, Linux, y dem as sistemas operativos. Algunos sistemas multi-
media incluyen un programa para desplegar y editar estas se nales de audio
227
228 13.2. TARJETA DE ADQUISICI

ON DE DATOS
usando diferentes formatos est andar como: wav, VOC, mp3, entre otros. Estos
programas de c omputo pueden incluir diferentes opciones de despliegue en
el dominio temporal, o en el dominio de la frecuencia, esto ultimo en dos
y tres dimensiones. La tarjeta de sonido proveer a la circuitera (hardware)
necesaria para la adquisici on de datos, usualmente con una resoluci on de
16 bits, con entrada/salida mono/estereo. Algunos programas para edici on
de archivos de audio, gratuitos (freeware) o de bajo costo (shareware), se
pueden encontrar en internet. Algunos son muy sosticados. Una opci on
es Cool95, llamado anteriormente CoolEdit. Una versi on m as actual es el
programa de c omputo Audacity.
Para completar la estaci on de laboratorio esta sosticada circuitera debe
ser complementada con Matlab que proveer a el ambiente de desarrollo para
los algoritmos de PDS. Si se desea tambien se puede trabajar con alguna
otra versi on de acceso libre como Scilab, Octave, entre otras.
13.2. Tarjeta de adquisici on de datos
Se puede usar la tarjeta de sonido para registrar (grabar) se nales anal ogi-
cas en el intervalo de frecuencias de 0-11 kHz, o superiores. Esto signica
que las se nales no necesariamente son se nales de audio.

Estas pueden ser
se nales provenientes de una gran variedad de sensores o transductores y pa-
ra una gran variedad de experimentos. Si se desea, se pueden usar se nales de
audio disponibles en el sistema, como los archivos WAV que aparecen bajo
el subdirectorio Windows.
13.3. Filtrado
Bajo el ambiente de Matlab se probar a el efecto de diferentes dise nos
de ltros digitales.
Filtro Pasa-bajas. Dise ne un ltro elptico con las siguientes especi-
caciones: frecuencia de corte de 1 kHz con -0.5 dB de rizo, atenuaci on en
la banda de rechazo de 40 dB a 2 kHz y frecuencia de muestreo de 11.025
kHz. Antes de comenzar, se lee el archivo de la se nal de audio a ser ltra-
da, al hacer eso se puede recuperar la frecuencia de muestreo, tal como fue
grabada. Esta frecuencia de muestreo ser a empleada en el dise no del ltro
digital.
Una vez que haya encontrado el orden n del ltro, escriba (note que n
debe haber sido denida previamente):
Ejercicio 13.1 [sig,Fs] = wavread(c:\cursopds\clau2.wav);
esct = [1:length(sig)]/Fs;
plot(esct,sig)
[num,den] = ellip(n,.5,40,1000/(Fs/2));
[h,fr] = freqz(num,den,200,Fs);
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
13.3. FILTRADO 229
semilogx(fr,20*log10(abs(h)))
(El archivo .wav para este ejercicio puede ser cualquier archivo disponible
en el sistema, pero es recomendable que no sea muy grande.

Este debe tener
una duraci on entre uno y cinco segundos, con una frecuencia de muestreo
de 11,025 Hz. Aqu se supone que el archivo de sonido ha sido colocado en
el directorio c:\cursopds.) N otese la muy estrecha banda de transici on del
ltro. Analice y explique cu al es el sentido o la acci on de cada lnea.
Ejercicio 13.2 Ahora, genere una versi on ltrada de la se nal de audio es-
cribiendo:
sigfil = filter(num,den,sig);
Ejercicio 13.3 Ahora se puede reproducir la se nal original y la se nal ltra-
da usando:
sound(sig,Fs)
despues de eso,
sound(sigfil,Fs)
El efecto del ltrado es claramente audible; se puede tambien hacer una
inspecci on visual del procesamiento efectuado sobre la se nal de entrada. Si
traza la gr aca de los vectores sig y sigfil obtendr a una representaci on
en el dominio temporal de ambas se nales. Eso equivale, en cierto modo, a
tener un osciloscopio.
Trace las gr acas de sig y sigfil.
Ejercicio 13.4 Una mejor elecci on es usar una representaci on en el dominio
de la frecuencia, en cuyo caso se espera ver m as claramente el efecto del
ltrado sobre el contenido de frecuencia de la se nal.
N = 512;
escf = (0:(N/2)-1)/(N/2)*Fs/2;
fft1 = 20*log10(abs(fft(sig,N)));
plot(escf,fft1(1:N/2))
figure
fft2 = 20*log10(abs(fft(sigfil,N)));
plot(escf,fft2(1:N/2))
Recuerdese que la se nal puede ser cualquier se nal del mundo real prove-
niente de un micr ofono o de alg un proyecto de instrumentaci on personal.
Ejercicio 13.5 Filtro pasa-altas (FPA) Dise ne y pruebe un ltro elptico
pasa-altas con las siguientes especicaciones: frecuencia de corte de 1.5 kHz
con 0.5 dB de rizo, atenuaci on en la banda de rechazo de 40 dB a 500 Hz.
Si lo desea puede emplear la n anterior.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
230 13.4. ALGUNOS EFECTOS DE SONIDO
[num2,den2] = ellip(n,.5,40,1500/(Fs/2),high);
[h,fr] = freqz(num2,den2,200,Fs);
semilogx(fr,20*log10(abs(h)))
sighi = filter(num2,den2,sig);
sound(sig,Fs)
sound(sighi,Fs)
Observese el efecto del ltro en el dominio de la frecuencia, como se hizo
antes.
Ejercicio 13.6 Filtro pasa-banda (FPB) Pruebe un ltro pasa-banda
con f
1
= 500 Hz, f
low
= 1000, f
up
= 2000, y f
2
= 3000 Hz. Rizo en la banda
de paso de 0.5 dB y atenuaci on en la banda de rechazo de 40 dB. Escuche
el efecto del ltro sobre el archivo de voz.
Ejercicio 13.7 Filtro Rechazo de banda (FRB) Finalmente, pruebe
un ltro rechazo de banda con f
1
= 500 Hz, f
low
= 1000, f
up
= 2000, y
f
2
= 3000 Hz; con un rizo en la banda de paso de 0.5 dB y atenuaci on en la
banda de rechazo de 40 dB.
13.4. Algunos efectos de sonido
Ejercicio 13.8 Para escuchar algunos efectos divertidos sobre el archivo de
voz, introduzca lo siguiente:
siginv = sig(length(sig):-1:1);
sound(siginv,Fs)
Suena a algo as como: Ich weise nicht Deutsch sprechen !, cierto?
13.5. Un poco de reverberaci on
Reverberaci on es el resultado de muchas reexiones de sonido que ocu-
rren en un cuarto. Esto puede ser modelado usando algoritmos digitales que
intentan imitar las reverberaciones del cuarto usando principalmente dos ti-
pos de ltros RII. Uno de estos ltros es el ltro en peine (comb lter), y el
otro es el ltro pasa-todo (all-pass lter).
13.5.1. Filtro digital pasa-todo
Ejercicio 13.9 Introduzca las siguientes instrucciones:
num = [0.5;zeros(400,1);1];
den = [1;zeros(400,1);.5];
echo = filter(num,den,sig);
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
13.6. GENERACI

ON DE SE

NALES 231
sound(echo,Fs)
num = [0.5;zeros(2000,1);1];
den = [1;zeros(2000,1);.5];
echo = filter(num,den,sig);
sound(echo,Fs)
Investigue por que se le llama ltro pasa-todo y que sentido tiene aplicar un
ltro as.
13.6. Generaci on de se nales
Es posible generar casi cualquier se nal y enviarla a traves de la tarjeta de
sonido en la misma manera que se reproducen los archivos WAV. La se nal
generada puede ser el resultado de un algoritmo de procesamiento digital
de se nales, como la transformada r apida de Fourier (FFT), o cualquier otra
operaci on, ya que la se nal es justamente una secuencia de n umeros en un
vector.
Ejercicio 13.10 El siguiente es un simple ejemplo:
Fs = 8000;
delta_t = 1/Fs;
dur = 1;
tt = 0:delta_t:dur;
frec1 = 300;
x1 = cos(2*pi*frec1*tt);
sound(x1,Fs)
frec2 = 1000;
x2 = cos(2*pi*frec2*tt);
sound(x1,Fs)
xs = x1+x2;
sound(xs,Fs)
Finalmente, seleccione una salida de 7000 Hz,
frec3 = 7000;
x3 = cos(2*pi*frec3*tt);
sound(x3,Fs)
Compare este sonido con x2
sound(x2,Fs)
Explique que sucede con el sonido de 7000 Hz.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
232 BIBLIOGRAF

IA
Bibliografa
[1] The Student Edition of Matlab, Version 5 Users Guide. The Math-
Works, Inc., Prentice Hall, Upper Sadle River, NJ 07458, (1997).
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A
El manual del usuario del DSP56303EVM
(En este Apendice se incluyen algunos de los aspectos m as relevantes
del manual del usuario del DSP56303EVM.

Este se ha incluido por el hecho
de que el DSP56002 ha sido declarado ocialmente descontinuado a partir
de agosto del 2002. Aunque seguramente se pueden encontrar todava algu-
nos sistemas de evaluaci on basados en el procesador de se nales DSP56002,
se considera oportuno actualizar las opciones de trabajo en el laboratorio
incluyendo una nueva versi on de la familia DSP56K de procesadores de
se nales.
El material est a basado en el DSP56303EVM Users Manual, con permi-
so de Freescale Semiconductors, Inc. El documento se puede ordenar como
DSP56303EVMUM/D Rev. 3.4, 12/1999.)
A.1. Gua de Inicio Rapido
En esta secci on se resume el contenido del m odulo de evaluaci on y los
requerimientos adicionales, tambien se da informaci on para una r apida ins-
talaci on y c omo efectuar una prueba del sistema. En las siguientes secciones
el manual da detalles sobre el dise no y operaci on del DSP56303.
A.1.1. Equipo
En la siguiente secci on se da una lista del equipo requerido para el uso del
m odulo de evaluaci on del DSP56303 (DSP56303EVM), parte de este equipo
viene junto con el m odulo, y otra parte debe suministrarla el usuario.
233
234 A.1. GU

IA DE INICIO R

APIDO
Lo que Ud. obtiene con el DSP56303EVM
El siguiente material viene con el DSP56303EVM:
Tarjeta del m odulo de evaluaci on DSP56303.
Folleto de producto DSP56303EVM.
Manual del usuario del DSP56303EVM.
Especicaciones de producto DSP56303, revisi on 1.03.
Hoja de errata del circuito integrado (CI, o Chip) DSP56303.
Hoja de datos del Codec de audio multimedia Crystal Semiconductor
CS4218 de 16-bits.
Documentaci on tecnica en CD-ROM incluyendo los siguientes docu-
mentos:
Manual de la familia DSP56300.
Manual del usuario DSP56303.
Hoja de datos tecnicos del DSP56303.
El software (programas de aplicaci on) requerido:
depurador gr aco (GUI Debugger) de Domain Technologies (1
CD)
Programa de c omputo Ensamblador/encadenador de Freescale
Semiconductors, Inc. (1 CD)
Lo que Ud. necesita suministrar
El usuario debe proveer lo siguiente:
Computadora personal (PC) (pentium-90 MHz o mayor) con
Windows95 o NT,
16 Mbytes de memoria como mnimo en Windows95,
32 Mbytes de memoria como mnimo en Windows NT,
disco exible de 31/2 pulgadas,
lector de CD,
disco duro con 20 Mbytes de espacio libre,
rat on,
puerto serie RS-232 que soporte una tasa de transferencia de da-
tos 9,600-115,200 bits-por-segundo.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.1. GU

IA DE INICIO R

APIDO 235
Cable para interfase RS-232 (DB9 macho a DB9 hembra).
Fuente de Poder, 7-9 V AC o DC con un conector de fuente de 2.1
mm.
Fuente de se nales de audio (reproductor de cintas, radio, reproductor
de CDs, etc.).
Cable de interfase para audio con conectores macho estero de 1/8 de
pulgada (de di ametro).
Audfonos.
A.1.2. Procedimiento de instalaci on
La instalaci on requiere de los siguientes cuatro pasos b asicos:
1. Preparar la tarjeta DSP56303EVM.
2. Conectar la tarjeta a la PC y a la fuente de alimentaci on.
3. Instalaci on de las aplicaciones (software).
4. Prueba de la instalaci on.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
236 A.1. GU

IA DE INICIO R

APIDO
son sensibles a los efectos de descarga
Precauci on
Debido a que todos los componentes electr onicos
adecuados cuando se manipulan todos los
electrost atica (DE), deben observarse procedimientos
componentes de este paquete y dentro de la PC
Para minimizar la posibilidad de da no debido a DE
sigua el siguiente procedimiento:
a) Simpre maneje todos los componentes sensibles a ED
s olo desde su area protejida, de preferencia
en el lab con piso antiest atico y mesas de trabajo.
b) Use cintas aterrizadas adheridas a su mu neca.
c) No retire los componentes de su envoltura antiest atica
hasta que se requiera para su instalaci on.
d) Siempre transporte los componentes sensibles dentro
de su envoltura antiest atica.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.1. GU

IA DE INICIO R

APIDO 237
Preparaci on del DSP56303EVM
Localice los bloques de puentes J1, J4, J5 y J8, como se muestra en la
gura A.1. Para el bloque J1, aseg urese de que tenga los puentes conectando
las terminales 3-4, y 5-6. Para los bloques J4, J5, y J8 aseg urese que todas
las posiciones en cada bloque esten conectadas con puentes. Estos puentes
realizan las siguientes funciones:
J1 controla el modo de operaci on del DSP56303.
J4 y J5 controlan la interfase entre el codec de audio y la interfase
serie sncrona mejorada (ESSIO) del DSP56303.
J8 controla la interfase entre el puerto JTAG/OnCE del DSP56303 y
la interfase serie sncrona (SSI) del DSP56002.
Figura A.1: Ubicaci on de componentes del DSP56303EVM.
Conexi on del DSP56303EVM a la PC y a la fuente de poder
La gura A.2 muestra el diagrama de interconexi on para conectar la PC
y la fuente de poder externa a la tarjeta DSP56303EVM.
Emplee los siguientes pasos para completar la conexi on de cables:
1. Conecte extremo del cable RS-232 con el conector DB9 macho al puer-
to RS-232 de la PC.
2. Conecte el extremo del cable DB9 al conector P2 del DSP56303 que
se muestra en la gura A.1. Esto provee la conexi on que permite a la
PC controlar el funcionamiento de la tarjeta.
3. Aseg urese de que la fuente de poder 7-9 V no este alimentada con
energa.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
238 A.2. EJEMPLO CON PROGRAMA DE PRUEBA
Figura A.2: Conexi on de cables al DSP56303EVM.
4. Conecte la salida de la fuente de poder, el conector de 2.1, a P3 de la
tarjeta DSP56303, mostrado en la gura A.1.
5. Aplique energa a la fuente de poder. El diodo emisor de luz verde
(LED) se enciende cuando la energa este aplicada correctamente.
A.2. Ejemplo con programa de prueba
Esta secci on contiene un ejemplo que ilustra c omo desarrollar un progra-
ma muy sencillo para el DSP56303. Este ejemplo es para los usuarios con
muy poca o nula experiencia con las herramientas de desarrollo de DSPs. El
ejemplo demuestra la forma de los programas en ensamblador, da instruc-
ciones de c omo ensamblar programas, y muestra c omo el depurador puede
vericar la operaci on de programas.
La gura A.3 muestra en un diagrama de ujo el proceso de desarro-
llo de programas en ensamblador. Los bloques redondeados representan los
archivos en c odigo ensamblador y en c odigo objeto. Los bloques en blan-
co representan programa de computadora (software) para el ensamblado
de programas. Los bloques en gris representan los productos de circuitera
(hardware).
Las siguientes secciones muestran informaci on b asica sobre el programa
en c odigo ensamblador, el programa ensamblador, el programa encadenador
(linker) y los archivos objeto. Para informaci on detallada sobre estos temas,
consulte los manuales del ensamblador y del encadenador incluidos en el
paquete de programas DSP CLAS, el cual est a disponible a traves de las
ocinas o distribuidores de Freescale Semiconductors, Inc. La documentaci on
tambien est a disponible a traves de Motorola Wireless internet URL:
http://www.mot.com/SPS/DSP/documentation.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.2. EJEMPLO CON PROGRAMA DE PRUEBA 239
Programa *.asm
Ensamblador
Archivo Objeto
relocalizable *.cln
Encadenador
Archivo objeto
ejecutable *.cld
DSP56303EVM
de conversi on
c
c
c
c
c
c
c
DSP56002
DSP56303
Tarjeta
DSP56303EVM
E
de mandos ADS
Figura A.3: Flujo del proceso de desarrollo.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
240 A.2. EJEMPLO CON PROGRAMA DE PRUEBA
A.2.1. Escritura del programa
Las siguientes secciones describen el formato de los enunciados del len-
guaje ensamblador y dan un ejemplo de un programa en c odigo ensamblador.
Formato de enunciados fuente
Los programas escritos en lenguaje ensamblador consisten de una se-
cuencia de enunciados fuente. Cada enunciado fuente puede incluir hasta
seis campos separados por uno o m as espacios o TAB (tabulador): un cam-
po de etiquetas, un campo de operaci on, un campo de operandos, hasta dos
campos de transferencia de datos, y un campo de comentarios. Por ejemplo,
el enunciado incluido en la tabla A.1, muestra los seis campos posibles:
Tabla A.1: Ejemplo de enunciado fuente.
trm mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0 ;Texto

Etiqueta Operaci on Operando T. datos X T.datos Y Comentario
El campo etiqueta
El campo etiqueta es el primer campo de un enunciado fuente y puede
tener una de las siguientes formas:
Un espacio o tabulador como primer car acter sobre una lnea general-
mente indica que el campo de etiqueta es vaco y que la lnea no tiene
etiqueta.
Un car acter alfanumerico como primer car acter indica que la lnea
contiene un smbolo llamado etiqueta.
Un gui on bajo como primer car acter indica que la etiqueta es local.
Con la excepci on de algunas directivas, a una etiqueta se le asigna el valor
del contador de localidades de la primera palabra de la instrucci on o dato
que est a siendo ensamblado. Una lnea que consiste s olo de una etiqueta
es una lnea v alida y se le asigna el valor del contador de localidades a la
etiqueta.
El campo de operaci on
El campo de operaci on aparece despues del campo de etiqueta y debe
estar precedido de, al menos, un espacio o tabulador. El ingreso en el campo
de operaci on puede ser uno de estos tres tipos:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.2. EJEMPLO CON PROGRAMA DE PRUEBA 241
Opcode- mnem onicos que corresponden directamente a instrucciones
de machina del DSP.
Directiva- c odigos de operaci on especial conocidos por el ensamblador
que controlan el proceso de ensamblado.
Macro call- Llamada a un macro denido previamente, el cual es
insertado en el lugar del llamado al macro.
Campo de operando
La interpretaci on del campo de operando depende del contenido del cam-
po de operaci on. El campo de operando, si est a presente, debe seguir al
campo de operaci on y debe estar precedido de por lo menos un espacio o
tabulador (tab).
Campos de transferencia de datos
La mayora de los c odigos de operaci on especican una o m as transfe-
rencias de datos que ocurrir an durante la ejecuci on de la instrucci on. Estas
transferencias de datos son indicadas por dos operandos de modo de direc-
cionamiento separados por una coma, sin insertar espacios en blanco. Si se
especican dos transferencias de datos, estos deben estar separados por uno
o m as espacios en blanco o tabs. Para una completa discusi on de los modos
de direccionamiento aplicables a las especicaciones de transferencia vease
el DSP56300 Family Manual.
El campo de comentarios
Los comentarios no tienen signicado para el ensamblador, pero pueden
incluirse en el archivo fuente con prop ositos de documentaci on. Un campo de
comentarios est a compuesto de cualesquiera caracteres que sean precedidos
por un punto y coma.
A.2.2. Ejemplo de programa
El programa de ejemplo discutido en esta secci on toma dos listas de
datos, una en la memoria X y la otra en la memoria Y, y calcula la suma
de los productos de las dos listas. El c alculo de la suma de productos es la
base para muchas funciones de PDS. Por lo tanto, el DSP56303 tiene una
instrucci on especial, multiplica-acumula (MAC), que multiplica dos valores
y suma el resultado al contenido de un acumulador.
Ejemplo de un c odigo DSP56303 sencillo
_______________________________________________________
;********************************************************
; UN PROGRAMA SENCILLO: C

ALCULO DE LA SUMA DE PRODUCTOS


;*********************************************************
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
242 A.2. EJEMPLO CON PROGRAMA DE PRUEBA
PBASE EQU $100 ;Instruye al ensamblador reemplazar cada
;ocurrencia de PBASE por $100
XBASE EQU $0 ;Usado para definir la posici on de los
;datos en la memoria X
YBASE EQU $0 ;Usado para definir la posici on de los
;datos en la memoria Y
;********************************************************
;MEMORIA X
;********************************************************
org x:XBASE ;indica al ensamblador que nos referimos
;a la memoria X comenzando
;en la localidad XBASE
list1 dc $475638,$738301,$92673a,$898978,$091271,$f25067
dc $987153,$3a8761,$987237,$34b852,$734623,$233763
dc $f76756,$423423,$324732,$f40029
;**********************************************************
;MEMORIA Y
;**********************************************************
org Y:YBASE ;indica al ensamblador que nos referimos
;a la memoria Y iniciando en
;la localidad YBASE
list2 dc $f98734,$800000,$fedcba,$487327,$957572,$369856
dc $247978,$8a3407,$734546,$344787,$938482,$304f82
dc $123456,$657784,$567123,$675634
;***********************************************************
;PROGRAMA
;***********************************************************
org p:0 ;pone el siguiente programa en la memoria
;de programa comenzando en la localidad 0
jmp begin ;p:0 es el vector de re-inicio i.e. en
;donde el DSP busca instrucciones despu es
;del re-inicio (reset)
org p:PBASE ;Comienza programa principal en p:PBASE
begin
move #list1,r0 ;prepara apuntador al inicio de list1
move #list2,r4 ;prepara apuntador al inicio de list2
clr a ;borra el contenido del acumulador a
move x:(r0)+,x0 y:(r4)+,y0
;carga en x0 el valor de la memoria X
;apuntada por el contenido de r0 y
;post-incrementa r0
;carga en y0 el valor de la memoria Y
;apuntada por el contenido de r4 y
;post-incrementa r4
do #15,endloop ; ejecuta 15 veces
mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
;multiplica y acumula, y carga los
;siguientes valores
endloop jmp * ;esto es equivalente a
;etiqueta jmp etiqueta
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.3. ENSAMBLADO DEL PROGRAMA 243
; y es, por lo tanto, un lazo vac o
;infinito
;************************************************************
;FIN DEL PROGRAMA SENCILLO
;************************************************************
Edite y grabe un archivo con el contenido del ejemplo y asigne el nombre
ejemplo.asm.
A.3. Ensamblado del programa
Las siguientes secciones describen el formato de los mandos del ensam-
blador, la lista de caracteres especiales y directivas del ensamblador, y dan
instrucciones par ensamblar el programa de ejemplo.
A.3.1. Formato del mando del ensamblador
El ensamblador DSP viene incluido con el DSP56303EVM en el CD de
herramientas y se puede instalar siguiendo las instrucciones que vienen en
el archivo Read me en el CD. El ensamblador DSP es un programa que
traduce los enunciados fuente en lenguaje ensamblador en programas objeto
compatibles con el DSP56303. El formato general en la lnea de mandos para
invocar al ensamblador es asm56300 [opciones] <nombre-de-archivos>
donde asm56300 es el nombre del programa ensamblador del DSP, y
<nombre-de-archivos> es una lista de programas en lenguaje ensamblador
a ser ensamblados.
A.3.2. Opciones del ensamblador
La tabla A.2 describe las opciones del ensamblador. Para evitar am-
big uedad, los argumentos de las opciones deben seguir inmediatamente la
letra de la opci on sin blancos entre ellos.
A.3.3. Directivas del ensamblador
Adem as del juego de instrucciones, los programas en ensamblador pueden
contener mnem onicos que son directivas para especicar acciones auxiliares
a ser realizadas por el ensamblador.

Estas son las directivas del ensamblador,
y no siempre son traducidas a lenguaje de m aquina. Las siguientes secciones
describen brevemente varios tipos de directivas del lenguaje ensamblador.
Caracteres signicativos del ensamblador
A continuaci on se muestran las secuencias de uno y dos caracteres que
son signicativas para el ensamblador:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
244 A.3. ENSAMBLADO DEL PROGRAMA
; delimitador de comentarios
;; delimitador de comentario sin reportar
\ car acter continuaci on de l nea o
argumento falso (dummy) de macro de
concatenaci on de operadores
? operador macro de substituci on de valor
% operador macro de substituci on de valor hexadecimal
^ operador macro de reescritura de etiqueta local
cadena macro delimitador o cadena de expansi on
de car acter DEFINE
@ delimitador de funci on
* substituci on local de contador
++ operador de concatenaci on de cadena
[] delimitador de subcadena
<< operador para forzar el modo de
direccionamiento corto de E/S
< operador para forzar el modo de
direccionamiento corto
> operador para forzar el modo de
direccionamiento largo
# operador de modo de direccionamiento inmediato
#< operador para forzar el modo de
direccionamiento inmediato corto
#> operador para forzar el modo de
direccionamiento inmediato largo
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.3. ENSAMBLADO DEL PROGRAMA 245
Tabla A.2: Opciones del ensamblador
Opci on Descripci on
-A Pone al ensamblador en modo absoluto y genera un archivo
objeto absoluto cuando se da la opci on -B en la lnea
de mandos. Por omisi on, el ensamblador produce un archivo
objeto relocalizable que es subsecuentemente procesado por
el Encadenador (linker) DSP de Motorola.
-B<archobj> Especica que sea creado un archivo objeto para
la salida del ensamblador. <archobj> puede ser cualquier
nombre legal seg un el sistema operativo, incluyendo una
trayectoria la cual es opcional. El tipo de archivo objeto
depende del modo de operaci on del ensamblador. Si se da
la opci on -A en la lnea de mandos, el ensamblador
opera en modo absoluto y genera un archivo objeto
absoluto (.cld). Si no hay una opci on -A, el
ensamblador opera en modo relativo y crea un archivo objeto
relocalizable (.cln). Si no se especica la opci on -B,
el ensamblador no genera un archivo objeto. Si no se
especica <archobj>, el ensamblador usa el nombre base
(nombre de archivo sin extensi on) del primer archivo
encontrado en la lista de archivos fuente de entrada
y agrega el tipo de archivo apropiado (.cln o .cld) al
nombre base. La opci on -B debe especicarse
s olo una vez.
Ejemplo: asm56300 -Bfiltro main.asm fft.asm fio.asm
Este ejemplo ensambla los archivos main.asm, fft.asm, y fio.asm
juntos para producir el archivo objeto relocalizable filtro.cln
-D<simbolo> Reemplaza todas las ocurrencias de <simbolo> con <cadena>
<cadena> en los archivos fuente que sean ensamblados
Ejemplo: asm56300 -DPOINTS 16 prog.asm
Reemplaza todas las ocurrencias del smbolo POINTS en el
programa prog.asm por la cadena 16.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
246 A.3. ENSAMBLADO DEL PROGRAMA
Tabla A.3: Opciones del ensamblador (cont.)
Opci on Descripci on
-EA<errfil> Permite reasignar el archivo est andar de salida de errores en
o -EW<errfil> m aquinas que no soportan redireccionar
desde la lnea de mandos.
<errfil> debe estar presente como un argumento pero puede
ser cualquier nombre de archivo v alido en el sistema operativo,
incluyendo una trayectoria v alida. La opci on -EA causa
que la cadena est andar de error sea escrita en
<errfil>;. Si <errfil> existe, la cadena de salida se agrega
al nal del archivo. La opci on -EW tambien escribe la
cadena est andar de error a <errfil>;
si <errfil> existe, es reescrito.
Ejemplo: asm56300 -EWerrors prog.asm
Redirige la salida est andar al archivo errors. Si el archivo
existe, es reescrito.
-F<argfil> Indica que el ensamblador debe leer la entrada
de la lnea de mandos desde <argfil>, el cual puede ser
cualquier nombre de archivo legal en el sistema operativo,
incluyendo un trayectoria opcional. <argfil> es un archivo
de texto que contiene m as opciones, argumentos, y nombres
de archivos que son pasados al ensamblador. Los argumentos
en el archivo necesitan estar separados solamente por un
espacio. Un punto y coma (;) sobre una lnea que sigue a
un espacio en blanco hace que el resto de la lnea sea un
comentario.
Ejemplo: '+asm56300 -Fopts.cmd+
Invoca al ensamblador y toma las opciones de la lnea de
mandos y nombre de los archivos fuente desde el archivo
de mandos opts.cmd
-G Enva informaci on del n umero de lnea del archivo fuente
al archivo objeto. Esta opci on es v alida s olo conjuntamente
con la opci on de la lnea de mandos -B. Los programas
depuradores pueden usar la informaci on del n umero de
lnea generado para proveer depuraci on a nivel de c odigo
fuente.
Ejemplo: asm56300 -B -Gmiprog.asm
Ensambla el archivo miprog.asm y enva la informaci on del
n umero de lnea del archivo fuente al archivo objeto
resultante miprog.cln
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.3. ENSAMBLADO DEL PROGRAMA 247
Tabla A.4: Opciones del ensamblador (cont.)
Opci on Descripci on
-I<trayectoria> Causa que el ensamblador busque,
en el directorio denido
por <trayectoria>, cualquier archivo no encontrado en el
directorio corriente o actual. <trayectoria> puede ser
cualquier nombre de trayectoria (directorio) legal del
sistema operativo.
Ejemplo: asm56300 -I\verb+
Usa la convenci on de la PC IBM en la trayectoria y causa
que el ensamblador preje cualquier archivo incluido
(con include) no encontrado en el directorio actual con la
trayectoria \proyecto\trayectoria.
-L<lstfil> Especica crear un archivo de listado para
la salida de ensamblador. <lstfil> puede ser cualquier nombre
de archivo legal en el sistema operativo, incluyendo
opcionalmente el nombre de la trayectoria. Si no se
especica <lstfil>, el ensamblador usa el nombre base
(nombre del archivo sin la extensi on) del primer archivo
encontrado en la lista de archivos fuente de entrada y
agrega la extensi on .lst al nombre base.
La opci on -L se especica s olo una vez.
Ejemplo: asm 56300 -Lfiltro.asm gauss.asm
Ensambla los archivos filtro.asm y gauss.asm
juntos y produce un archivo de listado.
Debido a que no se dio el nombre del archivo,
el archivo de salida es nombrado usando el nombre
base del primer archivo fuente encontrado, en este caso
ltro, y el archivo de listado es llamado filtro.lst.
-M<trayectoria> Causa que el ensamblador busque en el
directorio denido por <trayectoria> por cualquier
archivo macro no encontrado en el directorio actual.
<trayectoria> puede ser cualquier nombre de trayectoria
legal en el sistema operativo.
Ejemplo: asm56300 -Mfftlib trans.asm
Usa la convenci on de trayectorias de PC IBM y causa que
el ensamblador busque en el subdirectorio fftlib del
directorio actual por el archivo con el nombre del macro
invocado encontrado en el archivo fuente, trans.asm.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
248 A.3. ENSAMBLADO DEL PROGRAMA
Tabla A.5: Opciones del ensamblador (cont.)
Opci on Descripci on
-V Causa que el ensamblador reporte el progreso del ensamblado
a la cadena de salida est andar.
-Z causa que el ensamblador retire la informaci on de smbolos
del archivo de carga absoluto. Normalmente la informaci on
de smbolos es retenida en el archivo objeto con el
prop osito de permitir referencias simb olicas. Esta opci on es
v alida s olo con las opciones -A y -B
Nota: Se pueden usar opciones m ultiples. Una cadena tpica
puede ser como sigue:
Ejemplo: asm56300 -A -B -L -G nombre de archivo.asm
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.3. ENSAMBLADO DEL PROGRAMA 249
Control del ensamblado
Las directivas usadas para el control del ensamblado se muestran ense-
guida:
COMMENT Inicia l neas de comentarios
DEFINE Define cadena de substituci on
END Final del programa fuente
FAIL Mensaje de Error generado por el
programador
FORCE Operador de puesta en modo forzado
HIMEN Puesta de l mites de memoria alta
INCLUDE Incluir archivo secundario
LOMEM Puesta de l mites de memoria baja
MODE Cambia modo de relocalizaci on
MSG Mensaje generado por el programador
ORG Inicializa espacio de memoria y
localizaci on de contadores
RADIX Cambia la base (radical) de entrada
para constantes
RDIRECT Remueve directiva o mnem onico de tabla
SCSJMP Puesta modo de control de brinco
estructurado
SCSREG Reasigna modo de control de brinco
estructurado
UNDEF Des-define el s mbolo DEFINE
WARN Aviso (alerta) generado por el
programador
Denici on de smbolos
Las directivas usadas para la denici on de smbolos de control son:
ENDSEC Fin de secci on
EQU Hacer igual s mbolo a valor
GLOBAL Declaraci on de secci on de s mbolos globales
GSET Puesta de s mbolo global a valor
LOCAL Declaraci on de secci on de s mbolos locales
SECTION Inicia secci on
SET Puesta de s mbolo a valor
XDEF Secci on de definiciones de s mbolos externos
XREF Secci on de referencias de s mbolos externos
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
250 A.3. ENSAMBLADO DEL PROGRAMA
Denici on de datos/Asignaci on de almacenamiento
Las directivas para controlar la denici on de datos constantes y asignar
almacenamiento se muestra a continuaci on. Se ha escrito entre parentesis la
denici on en ingles de algunos terminos, porque resulta m as f acil de recordar
la directiva por su denici on en ingles, por ejemplo DS = Dene storage.
BADDR Puesta del espacio (buffer) de direcciones
BSB Bloque de almacenamiento con inversi on de bit
(Block storage bit-reverse)
BSC Bloque de almacenamiento de constantes
(Block storage of constant)
BSM Bloque de almacenamiento tipo m odulo
(Block storage modulo)
BUFFER Inicia espacio de almacenamiento
DC Define constante
(Define constant)
DCB Define constante tipo byte
(Define constant byte)
DS Define almacenamiento
(Define storage)
DSM Define almacenamiento tipo m odulo
(Define modulo storage)
DSR Define almacenamiento tipo acarreo inverso
(Define reverse carry storage)
ENDBUF Fin de espacio de almacenamiento
Control de listado y opciones
Las directivas de control del listado de salida se muestran a continuaci on:
LIST Listar el ensamblado
LSTCOL Ajuste del ancho del campo de listado
NOLIST Detiene el listado del ensamblado
OPT Opciones del ensamblador
PAGE Tama~ no/p agina superior del paginado
PRCTL Env a la cadena de control a la impresora
STITLE Inicializa subt tulo del programa
TABS Ajusta fin de tabulador en el listado
TITLE Inicializa t tulo de programa
Control del archivo objeto
Las directivas de control del archivo objeto son:
COBJ Comenta c odigo objeto
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.3. ENSAMBLADO DEL PROGRAMA 251
IDENT Registro de identificaci on del c odigo objeto
SYMOBJ Escribe informaci on de s mbolos al archivo
objeto
Macros y ensamblado condicional
Las directivas para macros y ensamblado condicional son:
DUP Duplicar secuencia de l neas fuente
DUPA Duplicar secuencia con argumentos
DUPC Duplicar secuencia con caracteres
DUPF Duplicar secuencia en lazo
ENDIF Fin de ensamblado condicional
EDNM Fin de definici on de macro
EXITM Salir de macro
IF Directiva de ensamblado condicional
MACLIB Biblioteca macro
MACRO Definici on de macro
PMA MACRO Purgar definici on de macro
Programaci on estructurada
Las directivas para programaci on estructurada son:
.BREAKD Salir de construcci on de lazo estructurado
.CONTINUE Continuar siguiente iteraci on de lazo
estructurado
.ELSE Ejecuta los enunciados siguientes cuando
.IF es falso
.ENDF Final de lazo .FOR
.ENDI Final de condici on .IF
.ENDL Final de lazo por alambrado o por
circuiter a (hardware)
.ENDW Final de lazo .WHILE
.FOR Comienza lazo .FOR
.IF Comienza condici on .IF
.LOOP Comienza lazo alambrado (o por hardware)
.REPEAT Comienza lazo de repetici on
.UNTIL Final de lazo .REPEAT
.WHILE Comienza lazo .WHILE
Algunas de estas directivas son conocidas en otros lenguajes, por lo tanto
no se da una explicaci on exhaustiva de su uso. Por ejemplo, un lazo WHILE
es aquel que se ejecuta mientras se cumple cierta condici on.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
252 A.4. ENCADENADOR DSP DE MOTOROLA
A.3.4. Ensamblado del programa de ejemplo
El ensamblador es un programa basado en el sistema operativo MS-DOS;
por lo tanto, para usar el ensamblador debe salir del ambiente Windows, o
abrir una ventana con el icono MS-DOS. Para ensamblar el programa de
ejemplo introduzca: '+asm56300 -a -b -l -g ejemplo.asm+ en el directorio
evm30xw creado durante el proceso de instalaci on dado en la secci on A.1.2.
Esto crea dos archivos adicionales: ejemplo.cld y ejemplo.lst. El archivo
ejemplo.cld es un archivo objeto absoluto del programa, el es cargado en el
DSP56303. El archivo ejemplo.lst es el archivo de listado; da todos detalles
completos de en d onde est a ubicados el programa y los datos en la memoria
del DSP56303.
A.4. Encadenador DSP de Motorola
Aun cuando no es necesario para el ejemplo sencillo, el encadenador
DSP tambien est a incluido con el DSP56303EVM. El encadenador DSP es
un programa que procesa archivos objetos relocalizables producidos por el
ensamblador DSP y genera un archivo absoluto ejecutable el cual puede ser
cargado al DSP56303. El encadenador DSP se incluye en el CD Motorola
Tools y puede ser instalado siguiendo las instrucciones de la secci on A.1.2.
El formato general de la lnea de mandos para invocar el encadenador es
dsplnk[opciones]<nombres-de-archivos>
donde dsplnk es el nombre del programa encadenador DSP,
y <nombres-de-archivos> es una lista de archivos objeto relocalizables a
ser encadenados.
A.5. Opciones del encadenador
Las opciones del encadenador no se incluyen en este texto y tampoco se
incluyen las directivas del encadenador. La informaci on sobre las opciones
del encadenador se pueden encontrar en el DSP56303EVM Users Manual,
documento: DSP56303EVMUM/D.
A.6. Introducci on al programa depurador
En esta secci on se describe brevemente el depurador (debugger) de Do-
main Technologies, dando solamente los detalles requeridos para trabajar
este ejemplo. Para los detalles completos sobre el depurador y un tutorial
informativo, consulte el Debug-56K Manual. El depurador de Domain Tech-
nologies viene incluido con el DSP56303EVM en el CD-ROM de Domain
Technologies, y puede ser instalado siguiendo las instrucciones en lnea. Si
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.6. INTRODUCCI

ON AL PROGRAMA DEPURADOR 253


est a usando Windows95 o Windows NT, el programa de instalaci on ser a lan-
zado autom aticamente cuando inserte el CD en el lector. Para usar el de-
purador, haga un doble click sobre el icono etiquetado evm30xw en el grupo
de programas creado cuando se instal o el depurador.
La forma de desplegado del depurador es similar a la mostrada en la -
gura A.4; la pantalla est a dividida en cuatro ventanas: la ventana de mandos
(command), la ventana de datos, la ventana de desensamblado (unassembly),
y la ventana de registros. La ventana de mandos es la ventana activa (o se-
leccionada), lo cual signica que las ordenes de las teclas ser an puestas en el
ventana de mandos. La ventana de datos despliega los datos del DSP56303.
La ventana de desensamblado muestra los programas de DSP56303 resaltan-
do la siguiente instrucci on a ser ejecutado. La ventana de registros muestra
el contenido de los registros internos del DSP56303.
Figura A.4: Ejemplo de la ventana del depurador.
Con la ventana de mandos seleccionada como en la gura A.4, la barra
de herramientas en la parte superior de la pantalla cambiar a y mostrar a los
botones para los mandos m as empleados en la ventana de mandos. De iz-
quierda a derecha los mandos son go, stop, step, jump, automatic update,
reset, y radix (una traducci on aproximada para cada termino sera la si-
guiente: arrancar, detener, paso, ir a, actualizaci on autom atica, reiniciar, y
base).
Go corre el programa en el DSP56303 a partir de la direcci on del con-
tador de programa.
Stop detiene al DSP56303.
Step ejecuta una sola instrucci on.
Jump es similar a step, excepto que las subrutinas son tratadas como
una instrucci on.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
254 A.6. INTRODUCCI

ON AL PROGRAMA DEPURADOR
Automatic update enciende el modo de actualizaci on en pantalla au-
tom atica, de modo que el DSP56303 es interrumpido peri odicamente
para actualizar las ventanas de datos y de registros.
Reset reinicia al DSP56303.
Radix puede usarse para cambiar la base (binario, hexadecimal, etc.)
de la ventana seleccionada.
Cuando se seleccionan otras ventanas aparecen otros botones, y funcio-
nan como se describe en el Manual del Debug-56k, el cual est a contenido en
el CD-ROM de Domain Technologies.
A.6.1. Ejecuci on del programa
Para cargar el programa de ejemplo en el depurador, seleccione con el
rat on la ventana de mandos y teclee load ejemplo. La instrucci on en la
lnea 33 ser a resaltada en la ventana unassembly debido a que es la primera
instrucci on a ser ejecutada. Pero, antes de ejecutar el programa, verique
que los valores esperados en la ventana de datos esten ah. Para hacer esto
teclee display x:0 y display y:0. Los datos son mostrados en la ventana
de datos.
Para ejecutar por pasos teclee step en la ventana de mandos. Para se-
guir un atajo haga click sobre el bot on step o teclee el inicio del mando y
presione la barra espaciadora y el depurador completar a el resto del man-
do. Para repetir el ultimo mando presione return o intro. En tanto se vaya
avanzando en cada paso a traves del c odigo, note que los registros en la
ventana de registros son cambiados por las instrucciones. Despues de cada
ciclo cualquier registro que haya sido cambiado ser a resaltado. Una vez que
haya ejecutado por pasos el programa, aseg urese que el programa se haya
ejecutado correctamente comprobando que el resultado en el acumulador a
sea $FE9F2051 6DFCC2.
Ejecutar por pasos, como en este caso, es bueno para programas cortos,
pero es impr actico para programas complejos y largos. La forma de depurar
programas largos es usar puntos de ruptura, que son puntos denidos por
el usuario donde la ejecuci on del c odigo se detiene, permitiendo al usuario
ejecutar por pasos a traves de la secci on de interes. En el ejemplo ponga un
punto de ruptura para vericar que los valores en r0 y r4 son correctos antes
del lazo do, teclee break p:\$106 en la ventana de mandos. La lnea antes
del lazo ser a resaltada en la ventana unassembly, indicando que se ha puesto
un punto de ruptura. Para apuntar el DSP56303 al inicio del programa teclee
change pc 0. Esto cambia el contador de programa de modo que apunte
al vector de reinicio. Para correr el programa teclee go. El DSP56303 se
detiene cuando alcanza el punto de ruptura, y se puede ir por pasos a traves
del resto del c odigo.
Para salir del depurador, teclee quit en la ventana de mandos.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.7. RESUMEN T

ECNICO DEL DSP56303EVM 255


A.7. Resumen tecnico del DSP56303EVM
A.7.1. Descripci on y caractersticas del DSP56303EVM
En el folleto del producto (DSP56303EVMP/D), incluido en paquete
(kit), se da una descripci on del DSP56303EVM. Las principales caractersti-
cas son las siguientes:
Procesador digital de se nales de 24-bit DSP56303.
FSRAM para expansi on de memoria y memoria Flash PEROM para
operaci on independiente.
Codec de audio con calidad de CD de 16 bits.
Circuitera para convertidor de mandos.
A.7.2. Descripci on del DSP56303
Una descripci on completa del DSP56303, incluyendo informaci on funcio-
nal y para el usuario, se da en los siguientes documentos:
DSP56303 Technical Data (N umero de orden del documento
DSP56303/D): da una lista de caratersticas y especicaciones inclu-
yendo descripci on de se nales, requisitos de potencia, requerimientos de
tiempos de AC, y empaquetados disponibles.
DSP56303 Users Manual (N umero de orden de documento
DSP56303UM/AD: da descripci on del DSP e informaci on detallada
acerca de los componentes en el CI incluyendo los mapas de memoria
I/O, funcionalidad de perifericos, y registros de control y de estado
(status) para cada subsistema.
DSP56300 Family Manual (N umero de orden del documen-
to DSP56300FM/AD): da una descripci on detallada del n ucleo del
procesador incluyendo estado interno y registros de control y descrip-
ci on del juego de la familia de instrucciones.
Reerase a estos documentos para informaci on detallada acerca de la
funcionalidad del C.I. y operaci on. Estos documentos estar an incluidos en
el kit ya sea en CD o en forma impresa.
Nota: Tambien se incluye una lista detallada de errores conocidos del
C.I. Vea el documento DSP56303 Chip Errata para informaci on que haya
cambiado desde la publicaci on del documento de referencia listado previa-
mente. Se puede obtener la ultima versi on en el sitio web:
http://www.mot.com/SPS/DSP/chiperrata/index.html
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
256 A.7. RESUMEN T

ECNICO DEL DSP56303EVM


A.7.3. Memoria
El DSP56303EVM incluye la siguiente memoria externa:
64K24-bit de RAM (FSRAM) para expansi on de memoria.
128K8-bit de memoria ash para operaci on independiente.
En la gura A.5 se muestra la localizaci on de la memoria FSRAM y Flash
sobre el DSP56303EVM. La gura A.6 muestra un diagrama de bloques
funcionales del DSP56303EVM incluyendo los dispositivos de memoria.
Figura A.5: Ubicaci on de componentes del DSP56303EVM.
Figura A.6: Diagrama funcional a bloques del DSP56303EVM.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.7. RESUMEN T

ECNICO DEL DSP56303EVM 257


FSRAM
El DSP56303EVM usa un banco de RAM est atica r apida de 64K24-
bit (GS71024T-10, etiquetada como U4) para expansi on de memoria. La
GS71024T-10 usa una sola fuente de poder de 3.3 V y tiene un tiempo de
acceso de 10 ns. Las siguientes secciones detallan la operaci on de FSRAM.
Conexiones de la FSRAM
La conexi on b asica para la SFRAM se muestra en la gura A.7. Las ter-
minales de entrada/salida de datos IO0-IO23 para la SFRAM se conectan a
las terminales D0-D23 del DSP56303. Las lneas de habilitado de escritura
(WE) y de habilitado de salida (OE) se conectan a las lneas de escritura
(WE)y de lectura (RD) del DSP56303, respectivamente. La se nal de habili-
tado de la FSRAM (CE1) es generada por la lnea de atributo de direcci on
0 (AA0) del DSP56303. La actividad del FSRAM es controlada por AA0
y el registro de atributo de direcci on 0 (AAR0) correspondiente. Las ter-
minales de entrada de direcciones del FSRAM, A0-A15, est an conectadas
respectivamente a las terminales del puerto de direcciones A del DSP. Esta
conguraci on selecciona un mapa unicado de memoria de 64K palabras. La
memoria unicada no contiene memoria particionada de datos X, datos Y, y
programa; por lo tanto, el acceso a P:$1000, X:$1000, y Y:$1000 es tratado
como acceso a la misma celda de memoria y no son posibles movimientos (o
transferencias) de 48-bit de memoria de datos a, o desde, la memoria externa
FSRAM.
Figura A.7: Conexiones de la FSRAM al DSP56303.
Ejemplo: Programaci on de AAR0
Como se mencion o anteriormente, la actividad de la FSRAM est a contro-
lada por la terminal AA0 del DSP56303 y el correspondiente AAR0. AAR0
controla el tipo de acceso externo, el tipo de memoria y cu al direcci on exter-
na de memoria tendr a acceso la FSRAM. La gura A.8 muestra el mapa de
memoria que est a ligada a los ajustes de AAR0 descritos en este ejemplo.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
258 A.7. RESUMEN T

ECNICO DEL DSP56303EVM


Figura A.8: Ejemplo de mapa de memoria con la memoria externa unicada.
Nota: En este ejemplo, el bit de conmutaci on de memoria en el registro
de modo de operaci on (OMR) es borrado y el bit de compatibilidad de 16-bit
en el registro de estado es borrado.
En la gura A.8 la FSRAM responde a los 64K de las direcciones de
memoria de datos X y Y entre $040000 y $04FFFF. Sin embargo, con el
mapa de memoria unicado, los accesos a la misma localidad de memoria
externa son tratados como accesos a la misma celda de memoria.
Existe un mecanismo de prioridad entre los cuatro registros de control
AAR. AAR3 tiene la m as alta prioridad y AAR0 tiene la m as baja. El bit 14
del OMR, el bit de deshabilitado de prioridad de direcciones (APD) controla
cu ales terminales AA son declaradas v alidas cuando ocurre un conicto de
selecci on (es decir, la direcci on externa iguala la direcci on y el espacio que
est a especicado en m as de un AAR). Si se borra el bit APD cuando ocurre
un conicto de selecci on, s olo los terminales de m as alta prioridad de AA
son declaradas v alidas. Si el bit APD est a puesto cuando ocurre un conicto
de selecci on, las terminales de m as baja prioridad de AA son declarados
adem as de los terminales de m as alta prioridad de AA. Para este ejemplo,
s olo una terminal de AA debe ser declarada, AA0. Entonces, el bit APD
puede borrarse.
La gura A.9 muestra los ajustes de AAR0 para este ejemplo. Los bits del
tipo de acceso externo (BAT1 y BAT0) son puestos a 0 y 1, respectivamente,
para denotar el acceso FSRAM. El bit de polaridad de atributo (BAAP)
es borrado para denir AA0 como bajo activa (activa en nivel bajo). El
multicanalizador de direcciones no es necesario con la FSRAM; por lo tanto,
se borra el bit de multicanalizaci on de direcciones BAM. El empaquetado no
es necesario con la FSRAM; as el bit de habilitaci on de empaquetamiento
BPAC es borrado para deshabilitar esta opci on.
Los bits de habilitado de los espacios P, X, y Y (BPEN, BXEN, BYEN)
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.7. RESUMEN T

ECNICO DEL DSP56303EVM 259


Figura A.9: Registro de atributos de direcciones AAR0.
denen si la FSRAM es habilitada durante el acceso externo a los espacios
P, de datos X, o datos Y, respectivamente. Para este ejemplo, los bits BXEN
y BYEN est an puestos, y BPEN est a borrado para permitir a la FSRAM
responder s olo a los accesos de memoria de datos X y Y.
El n umero de bits de direcciones a comparar BNC(3:0) y los bit de direc-
ci on a comprar (BAC(11:0) determinan cu al direcci on de memoria externa
tienen acceso a FSRAM. Los bits BNC denen el n umero de bits de direc-
ci on superiores que son comparados entre los bits BAC y la direcci on externa
para determinar si se tiene acceso la FSRAM. Para este ejemplo, la FSRAM
es asignada para responder a la direcciones entre $040000 y $04FFFF. En-
tonces, los bits BNC son puestos a $8 y los bits BAC son puestos a $040. Si
los 8 bits m as signicativos de la direcci on externa son 00000100, se tiene
acceso a la FSRAM.
A.7.4. Flash
El DSP56303EVM usa un C.I. Atmel AT29LV010A-20T (U3) para tener
128K8-bit Flash CMOS para operaci on independiente (es decir, operaci on
de arranque sin accesar el DSP56303 a traves del puerto JTAG/OnCE). La
AT29LV010 usa un fuente de potencia de 3.3 V y tiene un tiempo de acceso
de 200 ns.
Conexiones de la Flash
La conexi on b asica de la Flash se muestra en la gura A.10.
Las terminales de direcciones (A0-A16) de la ash se conectan a las ter-
minales de direcciones respectivas del puerto A en el DSP. Las terminales
de entrada/salida de datos de la ash I/O0-IO7 son conectadas a las termi-
nales D0-D7 del DSP56303. Las lneas de habilitado de escritura (WE) y de
habilitado de salida (OE) se conectan a las lneas de habilitado de escritura
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
260 A.8. CODEC DE AUDIO
Figura A.10: Conexiones de la Flash.
(WE) y lectura (RD) respectivamente. La lnea de atributo de direcciones
1 (AA1) genera la se nal de habilitado del C.I (es decir del ash) (CE). Esta
lnea es mejor conocida por su denominaci on en ingles, chip enable.
A.7.5. Programaci on para operaci on independiente
Las terminales de modo del DSP56303 determinan el modo de opera-
ci on y procedimiento de arranque cuando el DSP56303 sale del estado de
reinicio. El interruptor en SW1 reinicia al DSP56303 declarando y luego bo-
rrando la terminal RESET del DSP56303. Las terminales de modo MODA,
MODB,MODC, y MODD son muestreadas mientras el DSP56303 sale del
estado de reinicio. Las terminales de modo del DSP56303EVM est an contro-
ladas por el bloque de puentes J1 mostrado en la gura A.5. El DSP56303
arranca desde la Flash despues del reinicio si hay puentes conectando las
terminales 3-4 y 5-6 sobre J1 (Modo 1: MODA y MODD est an puestas, y
MODB y MODC est an borradas).
A.8. Codec de Audio
La secci on anal ogica del DSP56303EVM usa un CS4218-KQ de Crystal
Semiconductor para dos canales de conversi on A/D de 16 bits y dos canales
de conversi on D/A de 16 bits. Observe la gura A.5 para la localizaci on del
codec (CS4218) sobre el DSP56303EVM y la gura A.6 para el diagrama
funcional de bloques del codec dentro del m odulo de evaluaci on. El CS4218
usa una fuente de poder digital de 3.3 V y una fuente de poder anal ogica de
5 V.
El CS4218 es controlado por una se nal de 12.288 MHz en la terminal de
entrada del reloj maestro (CLKIN). El oscilador en Y1 crea una se nal de 5
V a 12.288 MHz. El QS3384 en U5 entonces convierte la se nal de 5 V a 3.3
V como entrada a la terminal CLKIN del codec y la entrada EXTAL del
DSP56303. Para m as informaci on vea a la hoja de datos del CS4218 incluida
en el kit.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.8. CODEC DE AUDIO 261
El CS4218 es muy exible, ofrece frecuencias de muestreo que se pueden
seleccionar entre 8 kHz y 48 kHz. La frecuencia de muestreo se selecciona
usando puentes sobre el bloque de puentes J9. La tabla A.6 muestra la
posici on de los puentes que seleccionan las posibles frecuencias de muestreo
para el DSP56303EVM.
Tabla A.6: Selecci on de frecuencias de muestreo del CS4218
Term. 1-2 J9 Term. 3-4 J9 Term. 5-6 J9 Frecuencia de muestreo
(MF6) (MF7) (MF8) (kHz)
Puente Puente Puente 48.0
Puente Puente Abierto 32.0
Puente Abierto Puente 24.0
Puente Abierto Abierto 19.2
Abierto Puente Puente 16.0
Abierto Puente Abierto 12.0
Abierto Abierto Puente 9.6
Abierto Abierto Abierto 8
El codec est a conectado al ESSI0 del DSP56303 a traves de los puentes
J4 y J5 mostrados en la gura A.5. El bloque de puentes J4 conecta las
terminales del ESSI1 del DSP56303 a las terminales de control del CS4218.
El bloque de puentes J5 conecta las terminales del ESSI0 del DSp56303 a
las terminales de datos del CS4218. Retirando estos puentes, el usuario tiene
acceso completo a las terminales ESSI0 y ESSI1 del DSP56303. La siguiente
secci on describe las conexiones para las secciones anal ogica y digital del
codec.
A.8.1. I/O anal ogicas del codec
El DSP56303EVM contiene conectores hembra de 1/8 de pulgada pa-
ra entrada estereo, salida estereo, y audfonos. La gura A.11 muestra la
circuitera anal ogica del codec.
El conector estereo marcado como P4/IN en el DSP56303EVM se conec-
ta a la terminales de entrada derecha e izquierda RIN2 y LIN2 del codec.
Los niveles est andar de entrada son de 2 Vpp y el codec requiere que los
niveles de entrada sean limitados a 1 Vpp. Por lo tanto, un divisor de tensi on
forma un atenuador de 6 dB entre P4 y el CS4218.
Las terminales de salida del canal izquierdo y derecho del codec, ROUT
y LOUT, proveen sus se nales anal ogicas de salida, a traves del conector es-
tereo marcado como P6/OUT sobre el DSp56303EVM. Las salidas del codec
tambien est an conectadas al conector estereo marcado como P5/HDPHNE
sobre el DSP56303EVM a traves del amplicador de audio de potencia de
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
262 A.8. CODEC DE AUDIO
Figura A.11: Diagrama de entrada/salida anal ogicas del codec.
National Semiconductors LM4880 en U8. El conector estereo para audfonos
permite la conexi on directa de audfonos al DSP56303EVM.
A.8.2. Interfase digital del codec
La gura A.12 muestra la interfase digital del codec. La tabla A.7 y la
tabla A.8 muestran las selecciones de los puentes para Habilitar/Deshabilitar
las se nales del codec.
Figura A.12: Conexiones de la interfase digital del codec.
La interfase serie del codec transere datos de audio digital y datos de
control hacia y desde el dispositivo. El codec se comunica con el DSP56303
a traves del ESSI0 para informaci on de datos y a traves del ESSI1 para
informaci on de control. El codec tiene tres modos de operaci on serie que se
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.8. CODEC DE AUDIO 263
Tabla A.7: Opciones del bloque de puentes JP5
JP5 Se nal del DSP Se nal del codec
1-2 SCK0 SCLK
3-4 SC00 RESET
5-6 STD0 SDIN
7-8 SRD0 SDOUT
9-10 SC01
11-12 SC02 SSYNC
Tabla A.8: Opciones del bloque de puentes JP4
JP4 Se nal del DSP Se nal del codec
1-2 SCK1
3-4 SC10 CCS
5-6 STD1
7-8 SRD1
9-10 SC12 CDIN
11-12 SC11 CCLK
pueden seleccionar por las terminales de selecci on de modo serie SMODE1,
SMODE2, y SMODE3. Las terminales SMODE del DSP56303 se seleccionan
para habilitar el modo serie 4, el cual separa los datos de audio de los datos
de control. Las terminales SMODE tambien se ajustan para habilitar el sub-
modo maestro con bloques (frames) de 32-bits, siendo los primeros 16 bits
el canal izquierdo, y los segundos 16 bits son el canal derecho.
El ESSIO del DSP56303 transere los datos de informaci on a y desde
el codec. La terminal de transmisi on de datos serie (STD0) del DSP56303
transmite datos al codec. La terminal de recepci on de datos serie (SRD0) del
DSP56303 recibe datos desde el codec. Estas dos terminales est an conectadas
a las terminales del puerto de entrada de datos serie del codec (SDIN) y
del puerto de salida de datos serie (SDOUT), respectivamente. En el sub-
modo maestro, la terminal del reloj del puerto serie del codec (SCLK) da la
cadencia (bit rate) del reloj serie para la interfase ESSI0.

Este est a conectado
a la terminal bidireccional del reloj serie (SCK0) del DSP56303. La terminal
de control serie 0 (SC00) del DSP56303 est a programado para controlar la
se nal de reinicio del codec RESET. La terminal de control serie 2 (SC02)
est a conectada a la se nal de sincrona del puerto serie del codec (SSYNC).
Un anco de subida sobre SSYNC indica que est a por comenzar un nuevo
bloque (frame).
Las terminales ESSI1 del DSP56303 son usadas como se nales I/O de
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
264 A.9. CONVERTIDOR DE MANDOS
prop osito general (GPIO) para transferir los datos de control al codec. Los
datos de control necesitan ser transferidos s olo cuando cambian. La terminal
de control serie 0 (SC10) del DSP56303 est a programada para controlar la
terminal multi-funci on 4 del codec o la terminal de selecci on de control de
datos del C.I., MF4/CCS. Esta terminal debe estar en estado bajo para
entrar en modo control de datos. La terminal de control serie 1 (SC11)
se conecta a la terminal multi-funci on 3 del codec o la terminal de reloj
de control de datos (MF3/CCLK). Los datos de control son introducidos
sobre el anco de subida de CCLK. La terminal de control serie 2 (SC12)
est a conectada a la terminal multi-funci on 2 o la terminal de entrada de
datos de control, MF2/CDIN. Esta terminal contiene los datos de control
para el codec.
A.9. Convertidor de mandos
El DSP56303 usa el DSP56002 para realizar la conversi on de mandos
JTAG/OnCE. La interfase de comunicaci on serie (SCI) del DSP56002 se co-
munica con la PC antri on a traves de un conector serie RS-232. El SCI del
DSP56002 recibe los mandos desde la PC. El conjunto de datos puede incluir
leer datos, escribir datos, reiniciar el m odulo OnCE, reiniciar el DSP56303
(entonces se usa la terminal HA2 del DSP56002 para reiniciar el DSP56303),
petici on del m odulo OnCE o liberar al m odulo OnCE. El programa de con-
versi on de mandos del DSP56002 interpreta loa mandos recibidos por desde
la PC y enva una secuencia de instrucciones al puerto JTAG/OnCE del
DSP56303. El DSP56303 entonces puede continuar recibiendo datos o pue-
de transmitir datos hacia el DSP56002. El DSP56002 enva una respuesta
(replay) a la PC para dar informaci on del estado. El conjunto de respues-
tas puede incluir conrmaci on armativa (acknowledge good), conrmaci on
negativa (acknowledge bad), en modo depurador (in debug mode), fuera de
modo depurador (out of debug mode), o lectura de datos (data read). Cuan-
do el DSP56303 est a en estado depurador, se ilumina el diodo emisor de luz
rojo (LED2) de depurador.
El DSP56002 se conecta al puerto JTAG/OnCE del DSP56303 a traves
de un puente sobre J8. La tabla A.9 muestra las opciones de habilita-
do/deshabilitado del JTAG. El puente debe estar presente en J8 para usar
el DSP56002 como convertidor de mandos. Observe a la gura A.5 para la
localizaci on de J8 sobre el DSP56303EVM y a la gura A.6 para ver el dia-
grama funcional. La gura A.13 muestra el diagrama de la interfase serie
RS-232. La tabla A.10 muestra la terminales de conector RS-232, (P2).
Para transmitir los datos entre la PC y el DSP56002 se usa un transcep-
tor RS-232 de Maxim MAX212 alimentado por 3 V, en U11. Los datos serie
son transmitidos desde la se nal TXD (transmitted data) de la PC y recibi-
dos en el DSP56002 por la terminal RXD (receive data). Similarmente, son
trasmitidos datos serie desde la se nal TXD (transmit data) del DSP56002
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.10. INTERFASE EXTERNAS 265
Tabla A.9: Opciones de Hab/DesHab de JTAG
J8 Opci on seleccionada
1-2 Convertidor de mandos de la tarjeta habilitado
abierto Convertidor de mandos de la tarjeta des-habilitado
Figura A.13: Interfase serie RS232.
y recibidos por la se nal RD (received data) de la PC. La terminal Data
Terminal Ready (DTR) declara la terminal RESET del DSP56002.
Como una opci on, la terminal 14 del conector JTAG/OnCE del DSP56303
EVM en J6 permite al usuario conectar una tarjeta convertidora de mandos
ADS, directamente al DSP56303EVM si no se usa el programa de conversi on
de mandos del DSP56002 (con el puente en J8 removido). La terminal 8 de
J6 ha sido removida para que no se pueda conectar en forma incorrecta el
cable al DSP56303EVM. La tabla A.11 muestra informaci on de las termina-
les del conector JTAG/OnCE (J6). El cable JTAG desde el convertidor de
mandos ADS est a similarmente codicado de modo que no se pueda conectar
incorrectamente al DSp56303EVM.
A.10. Interfase externas
El DSP56303EVM provee interfases externas con dispositivos no inclui-
dos en la tarjeta por medio de sus puertos perifericos incluidos (on-chip
peripherals). La mayora de los puertos del DSP est an conectados a conecto-
res (de varios alleres o puntas) sobre el m odulo de evaluaci on (EVM) para
facilitar el acceso directo a estas terminales por medio del uso de conectores
o puentes.
A.10.1. El puerto de comunicaci on serie (SCI)
La conexi on al puerto SCI del DSP puede hacerse en J7. En la tabla
A.12 se indica la informaci on de terminales. Las se nales en J7 son se nales de
3.3 V directas del DSP. Si se requieren se nales con niveles RS-232 se deben
instalar puentes en J7. Vea la tabla A.13 para enrutar las se nales SCI del
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
266 A.10. INTERFASE EXTERNAS
Tabla A.10: Terminales del conector (P2) del depurador RS232
N umero de Nombre de la N umero de Nombre de la
terminal se nal de DSP terminal se nal del DSP
1 - 6 -
2 TxD 7 -
3 RxD 8 -
4 Reinicio 9 -
5 Tierra
Tabla A.11: Terminales del conector (J6) del JTAG/OnCE
N umero de Nombre de la N umero de Nombre de la
terminal se nal de DSP terminal se nal del DSP
1 TDI 2 Tierra
3 TDO 4 Tierra
5 TCK 6 Tierra
7 - 8 Orientaci on.
9 PRESET 10 TMS
11 +3.3 V 12 -
13 DEZ 14 TRST
DSP a traves de un convertidor de nivel RS-232 a P1. La informaci on de
salidas (terminales) de P1 se muestra en la tabla A.14.
Tabla A.12: Terminales del conector (J7) del SCI.
N umero de Nombre de la N umero de Nombre de la
terminal se nal de DSP terminal se nal del DSP
1 RxD 2 -
3 SCLK 4 -
5 TxD 6 -
Si se instala un puente en J10, el puerto SCI est a controlado por el reloj
de 153.6 kHz del oscilador de la tarjeta en lugar de un reloj externo via
el conector del puerto serie (P1) o, internamente, por un temporizador del
SCI. Si se instala J10 se deben remover el puente 3-4 de J7.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.10. INTERFASE EXTERNAS 267
Tabla A.13: Opciones de los puentes en J7.
J7 Se nal del DSP
1-2 RxD
3-4 SCLK
5-6 TxD
Tabla A.14: Terminales del conector (P1) del puerto serie del DSP.
N umero de Nombre de la N umero de Nombre de la
terminal se nal de DSP terminal se nal del DSP
1 - 6 -
2 TxD 7 SCLK
3 RxD 8 -
4 - 9 -
5 Tierra
A.10.2. Puerto serie sncrono mejorado 0 (ESSI0)
La conexi on al puerto ESSI0 del DSP se puede hacer en J5. Vea la tabla
A.15 para la informaci on de las terminales.
Tabla A.15: Terminales del conector (J5) del ESSI0
N umero de Nombre de la N umero de Nombre de la
terminal se nal de DSP terminal se nal del DSP
1 SCK0 2 -
3 SC00 4 -
5 STD0 6 -
7 SRD0 8 -
9 SC01 10 -
11 SC02 12 -
A.10.3. Puerto serie sncrono mejorado 1 (ESSI1)
La conexi on al puerto ESSI1 del DSP se puede hacer en J4. Vea la tabla
A.16 para la informaci on de las terminales.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
268 A.10. INTERFASE EXTERNAS
Tabla A.16: Terminales del conector (J4) del ESSI1
N umero de Nombre de la N umero de Nombre de la
terminal se nal de DSP terminal se nal del DSP
1 SCK1 2 -
3 SC10 4 -
5 STD1 6 -
7 SRD1 8 -
9 SC12 10 -
11 SC11 12 -
A.10.4. Puerto Host (HI08)
La conexi on al puerto HI08 se puede hacer en J3. Vea la tabla A.17 para
la informaci on de las terminales.
Tabla A.17: Terminales del conector (J3) del HI08
N umero de Nombre de la N umero de Nombre de la
terminal se nal de DSP terminal se nal del DSP
1 H0 2 H1
3 H2 4 H3
5 H4 6 Tierra
7 H5 8 H6
9 H7 10 Reinicio
11 HA0 12 HA1
13 HA2 14 HCS
15 HREQ 16 HDS
17 +3.3 V 18 HACK
19 HRW 20 Tierra
A.10.5. Control del conducto (bus) de expansi on
La conexi on a las se nales de control del conducto de expansi on del DSP
se puede hacer en J2. Vea la tabla A.18 para la informaci on de las terminales.
A.10.6. Selector del modo
La selecci on del modo de arranque para el DSP56303 se puede hacer por
las selecciones de puentes sobre J1.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
A.10. INTERFASE EXTERNAS 269
Tabla A.18: Terminales del conector (J2) del conducto de expansi on
N umero de Nombre de la N umero de Nombre de la
terminal se nal de DSP terminal se nal del DSP
1 +3.3 V 2 RD
3 WR 4 BG
5 BB 6 BR
7 TA 8 BCLK
9 BCLK 10 CAS
11 CLKOUT 12 AA1
13 AA0 14 AA1
15 AA3 16 Tierra
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
270 A.10. INTERFASE EXTERNAS
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B
El simulador GUI56300
El simulador de DSPs es una herramienta para el desarrollo de programas
y algoritmos para los procesadores de se nales de Freescale Semiconductors,
Inc.

Este duplica exactamente las funciones soportadas por los DSPs de
incluyendo:
todas las operaciones de los perifericos incluidos en el CI,
todas las actualizaciones de memoria y registros asociadas con la eje-
cuci on del c odigo programado, y
toda la actividad de procesamiento de excepciones.
La actividad del pipelined bus del dispositivo es simulada con toda exac-
titud. Con lo anterior el simulador provee al programador de una medici on
exacta del tiempo de ejecuci on del c odigo, lo cual es crtico en aplicaciones
de PDS.
El simulador ejecuta c odigo que puede ser generado usando ya sea el
programa ensamblador DSP o el ensamblador de una sola linea interno del
simulador. El c odigo objeto es cargado en el mapa de memoria del dispositivo
simulado. Se simula todo el espacio de memoria interno y externo del DSP.
Durante el depurado del programa se puede desplegar y cambiar cualquier
registro o localidad del memoria del dispositivo.
La ejecuci on de la instrucci on puede proceder hasta que se encuentre un
punto de ruptura denido por el usuario, o hasta que se alcance un punto
de alto al ejecutar un n umero de instrucciones o ciclos especicado (en el
modo de un solo paso (single step).
Algunas de las caractersticas del simulador incluyen:
271
272 B.1. AJUSTE DE LAS VENTANAS DE TRABAJO
Simulaci on de m ultiples dispositivos.
Depuraci on simb olica de programas fuente en ensamblador o en C.
Puntos de ruptura condicionales o incondicionales.
Program patching usando el ensamblador/desensamblador de una sola
lnea.
Contadores de tiempo de instrucci on y ciclo.
Bit acora de la sesi on y/o de mandos para referencia futura.
Entrada/salida desde/hacia archivos ASCII para dispositivos periferi-
cos.
Archivo de ayuda y desplegado de ayuda en lnea de los mandos del
simulador.
Macros de mandos (scripts editables para la ejecuci on de m ultiples
mandos del simulador).
Habilitado/Deshabiltado del desplegado de registros y memoria.
Calculadora Hexadecimal/Decimal/Binario.
Al iniciar el simulador GUI56300 aparece una pantalla, como se ilustra
en la gura B.1 mostrando la versi on que se est a ejecutando.
Figura B.1: Pantalla de inicio del simulador GUI56300.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.1. AJUSTE DE LAS VENTANAS DE TRABAJO 273
Figura B.2: Pantalla de inicial del simulador GUI56300.
B.1. Ajuste de las ventanas de trabajo
Cuando se arranca al simulador se muestran dos ventanas: la ventana de
sesi on (Session Window) y la ventana de mandos (Command Window). La
pantalla ser a como se muestra en la gura B.2.
las ventanas de trabajo se reeren a la forma en que las ventanas del
simulador son ajustadas en el monitor de la computadora. No hay una sola
forma de ajustar las ventanas; sin embargo, hay algunas ventanas que es
com un tener abiertas adem as de estas dos ventanas.

Estas incluyen:
La Ventana de Ensamblado (Assembly Window).
La Ventana de c odigo fuente (Source Window), s olo si se carga un
archivo COFF con informaci on para depuraci on.
Tambien, posiblemente, desee tener abiertas las ventanas:
Displaying register values,
Displaying memory values, y
una WATCH list
Si se est a depurando un programa escrito en C, tambien es recomendable
tener abierta la ventana de la pila (Stack Window) de modo que pueda ver
la lista de llamados a funciones C (call stack).
Dependiendo del tama no y resoluci on del monitor, al tener todas estas
ventanas abiertas al mismo tiempo habr a un cierto traslape. Su propia expe-
riencia le dir a cu al es la mejor conguraci on de estas ventanas; sin embargo,
una sesi on tpica del simulador aparecer a como se muestra en la gura B.3.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
274 B.1. AJUSTE DE LAS VENTANAS DE TRABAJO
Figura B.3: Pantalla de una sesi on tpica del simulador.
B.1.1. Guardado de preferencias en las ventanas
Se puede guardar la posici on de las ventanas cuando se salga del simu-
lador, as, cuando lo reinicie todas las ventanas ser an reestablecidas a la
posici on que tenan al salir.
Para guardar el estado de las ventanas al salir:
Desde el men u File seleccione Preferences. Entonces aparece una
ventana de di alogo como se muestra en la gura B.4.
Figura B.4: Guardar preferencias.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.2. VISTA A ALGUNOS MANDOS 275
Marque el cuadro etiquetado Save Window Status On Exit.
Seleccione OK.
B.2. Vista a algunos mandos
Hay un total de cincuenta y dos mandos en el simulador que pueden
ejecutarse desde la lnea de mandos. Es util conocer estos mandos, y su
sintaxis, si se va a escribir un macro de mandos.
Los mandos del simulador se pueden agrupar en seis categoras:
Modicaci on de memoria/registro.
Archivo entrada/salida (I/O).
Control de la ejecuci on de la simulaci on.
Mandos de depuraci on de c odigo fuente en C.
Tareas miscel aneas.
Control de ventanas (usado especialmente al escribir macros para man-
dos).
B.2.1. Modicaci on de memoria/registro
Los mandos siguientes est an relacionados con la modicaci on de memoria
y de registros. Dichos mandos permiten:
Instrucciones de ensamblado (ASSEMBLE con ASM).
Cambio (con CHANGE) de registros o localidades de memoria.
Copiar (con COPY) un bloque de memoria a una nueva localidad.
Desensamblar (con DISASSEMBLE) un c odigo almacenado en el espacio
de memoria del DSP simulado.
Mostrar (con DISPLAY) valores de registros y memoria.
Mostrar el n umero de revisi on del simulador o conguraci on de me-
moria.
Reiniciar (con RESET) los registros del dispositivo o espacio de memo-
ria.
El mando HISTORY desensambla y muestra las treinta y dos instruc-
ciones previas que fueron ejecutadas por el dispositivo.
Se puede usar una lista WATCH para mostrar una variable cuando se
detenga un solo paso o la ejecuci on del programa.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
276 B.2. VISTA A ALGUNOS MANDOS
B.2.2. Archivo entrada/salida
Los mandos siguientes est an relacionados a los archivos de entrada y
salida y permiten hacer distintas funciones como son:
ingresar (con INPUT) valores de memoria o de entrada a perifericos
desde un archivo,
extraer (con OUTPUT) valores de memoria o de entrada a perifericos
desde un archivo,
cargar (con LOAD DSP) archivos m odulo objeto en ensamblador o ar-
chivos de estado de una simulaci on previa,
guardar una bit acora o LOG de mandos del simulador con sesiones de
salida o un perl de ejecuci on de programa del DSP, y
guardar (con SAVE) la memoria del simulador a un archivo m odulo
objeto o el estado del simulador a un archivo de estado.
B.2.3. Control de ejecuci on del simulador
Para controlar la forma en que se ejecuta el simulador se tienen ciertos
mandos que permiten:
Especicar (con BREAK) condiciones de ruptura.
Continuar (con GO) hasta que se encuentre una condici on de ruptura.
Ejecutar por pasos (con STEP) un n umero especicado de instrucciones
o ciclos antes de mostrar los cambios en registros y memoria.
Rastrear con (TRACE) un n umero especicado de instrucciones o ciclos
mostrando los cambios de registros y memoria en cada paso.
El mando NEXT opera esencialmente como STEP, excepto si la instruc-
ci on a ser ejecutada llama a una subrutina o funci on, todas las instruc-
ciones en la subrutina o funci on son contadas como una instrucci on.
El mando UNTIL tiene el efecto de ajustar un punto de ruptura tempo-
ral en una direcci on especicada, ejecutando hasta que es encontrado
un punto de ruptura, luego limpiando el punto de ruptura temporal.
El mando FINISH procede hasta que se encuentra una instrucci on RST
por la subrutina en proceso
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.2. VISTA A ALGUNOS MANDOS 277
B.2.4. Mando del depurador de c odigo fuente en C
Se tienen algunos mandos que son muy utiles cuando se trabaja un pro-
grama en C. Estos mandos incluyen:
WHERE para mostrar la pila de llamados a las funciones en C.
UP DOWN y FRAME se usan para recorrer la pila de llamados (call stack).
REDIRECT se usa para dirigir datos desde stdin/stdout/stderr hacia
archivos.
STREAMS habilita las cadenas de entrada salida (i/o streams).
TYPE muestra el tipo de datos de una variable, funci on, o expresi on en
C.
B.2.5. Tareas Miscelaneas
Las tareas miscel aneas son aquellas que permiten funciones que no son
propiamente de programaci on sino para obtener o especicar otro tipo de
informaci on. Estas tareas incluyen:
DEVICE especica un nuevo dispositivo y su tipo.
EVALUATE eval ua expresiones en cinco diferentes bases numericas.
HELP muestra informaci on especca del dispositivo en la ventana de
sesi on (Session window).
PATH dene el directorio de trabajo y directorios alternativos.
QUIT termina la sesi on de simulaci on.
RADIX especica el n umero base por omisi on (default) (hex, decimal,
etc.) que es usado durante la evaluaci on de expresiones, datos de en-
trada y datos a mostrar.
SYSTEM ejecuta un mando del sistema operativo en dos modos.
WAIT especica un n umero de segundos de pausa de ejecuci on antes de
proceder a la siguiente instrucci on.
LIST muestra un archivo fuente especicado cuando est a en efecto el
depurador simb olico.
VIEW permite la selecci on del modo de desplegado del simulador fuen-
te, ensamblado o registro.
UNLOCK provee de claves de acceso para el habilitado de tipos de dis-
positivos no anunciados.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
278 B.3. SINTAXIS DE LOS MANDOS
B.2.6. Control de ventanas
Los mandos siguientes controlan el desplegado de las ventanas y son
particularmente utiles al escribir macros de mandos:
WASM abre una ventana de ensamblado mostrando direcciones, etique-
tas y mnem onicos.
WBREAKPOINT abre una ventana de puntos de ruptura mostrando los
puntos de ruptura actuales.
WCALLS abre una ventana de la pila de llamados a C.
WCOMMAND abre una ventana de mandos.
WINPUT abre una ventana de entrada.
WLIST abre una ventana que muestra el contenido de un archivo espe-
cicado.
WMEMORY abre una ventana de memoria.
WOUTPUT abre una ventana de salida.
WREGISTER abre una ventana de registros.
WSESSION abre una ventana de sesi on.
WSOURCE abre una ventana de c odigo fuente.
WSATCK abre una ventana para la pila.
WWATCH abre una ventana de observaci on (WATCH) mostrando las
expresiones que han sido especicadas por la lista watch.
B.3. Sintaxis de los mandos
La sintaxis de un mando del simulador se muestra usando puntuaci on
especial para indicar palabras clave, campos requeridos u opcionales, cam-
pos repetidos, y acciones implicadas. Por ejemplo, la sintaxis de CHANGE,
DISPLAY y WAIT se ve como sigue:
DISPLAY[ON/OFF/R/W/RW][reg_[_block/_group]/addr[_block]...]
EVALUATE[B(binary)/D(dec)/F(float)/H(hex)/U(unsigned)]expresion/{c_expresion}
WAIT[count(seconds)]
La puntuaci on de la lnea de sintaxis incluye:
[] Parentesis cuadrados para encerrar a los par ametros que son opcionales.
Los parentesis en s no son ingresados como parte del mando. Por ejemplo,
en el mando WAIT el par ametro count es opcional.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.4. INGRESO DE MANDOS 279
/ La diagonal derecha se usa para separar par ametros alternativos. S olo se
puede ingresar uno de la lista. La diagonal no se introduce como parte del
mando. Por ejemplo, en el mando EVALUATE, el primer par ametro opcional
puede ser uno de los siguientes: B, D, F, H, o U.
() Los parentesis encierran una descripci on de un acci on implicada. Esto se
incluye para ayudar a claricar algunas de las abreviaciones del mando. Nin-
guno de los parentesis o la descripci on dentro de ellos se incluyen como parte
del mando. Por ejemplo, al ingresar el mando EVALUATE el primer par ametro
opcional consiste de una letra. Las palabras binary, dec, oat, entre otras,
s olo est an en la sintaxis del mando para claricarlo.
... Los puntos suspensivos indican que el campo precedente puede opcional-
mente repetirse. Por ejemplo, el mando DISPLAY puede especicar m ultiples
registros.
CAPS Las palabras en may usculas indican palabras clave. Las palabras clave
deben ingresarse exactamente como se muestran. La porci on de las palabras
clave que se muestran en negrillas representa la porci on mnima de la pala-
bra clave que debe ingresarse. La porci on de la palabra clave que no est a en
negrillas puede ingresarse si se desea, pero no es requerida.
El simulador autom aticamente muestra el resto de la palabra clave si
se ingresa el car acter que aparece en negrillas y luego presiona la barra de
espacio.
Muchos de los par ametros, como addr y reg son abreviaciones. Puede
consultar la secci on Command Parameters: List of Abbreviations en el ar-
chivo de ayuda en lnea del simulador para tener una lista completa de
abreviaciones.
B.4. Ingreso de mandos
La mayora del trabajo en el simulador se hace usando la barra de men u y
la barra de herramientas, pero, en ocasiones puede ser util realizar algunas
ordenes desde la lnea de mandos (command line). El simulador de DSPs da
la opci on de ingresar ordenes desde la lnea de mandos.

Esta es parte de la
ventana Command.
Puede notarse que en la ventana Command se muestran varios mandos
comunes sobre la lnea de ayuda. Los mandos restantes se pueden mostrar
al presionando la barra de espacio cuando el cursor est a al inicio de la lnea
de mandos.
No es necesario introducir el mando completo. S olo se necesitan intro-
ducir del primero al tercer car acter de la orden para que el simulador la
reconozca. Note que se muestra en rojo el n umero mnimo de caracteres so-
bre la lnea de ayuda. Una vez que se introducen los primeros caracteres se
puede presionar la barra de espacio para tener la sintaxis completa de cada
orden.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
280 B.5. COMENZANDO A TRABAJAR CON EL SIMULADOR
Cualquier texto que siga a un punto y coma sobre la lnea de mandos se
considera como comentario para el usuario. Se pueden usar comentarios si se
est a generando una bit acora de salida desde la ventana de sesi on o creando
un macro para ejecuci on o de mandos.
El mando que se haya introducido en la lnea de mandos es ejecuta-
do cuando se presiona la tecla Intro o Enter. Si el mando no es v alido, el
simulador lo interpreta como el nombre de un macro, y lo ejecuta si existe.
B.5. Comenzando a trabajar con el simulador
El simulador de DSPs est a dise nado para darle exibilidad en la forma
de depurar su c odigo objeto. Hay muchos caminos que se pueden tomar;
sin embargo hay algunos ventanas comunes con las cuales conviene estar
familiarizado. En los siguientes pasos se da una buena idea de las cosas que
har a para iniciar una sesi on tpica con simulador.
Tpicamente se desea:
1. Ajustar la trayectoria (Set the PATH) del directorio de trabajo.
2. Cargar un archivo objeto con (LOAD).
3. Ajustar el ambiente de desplegados (Set Up the Display Environment)
abriendo ventanas para ver el c odigo fuente, c odigo ensamblador, va-
lores de registros, y los valores de memoria.
4. Usar una lista de observaci on (WATCH List).
5. Ajustar y modicar puntos de ruptura (BREAK points).
6. Ejecutar o ir por pasos en las instrucciones (GO o STEP).
Una vez que se haya familiarizado con el simulador encontrar a que no
se tienen que hacer cada uno de los pasos descritos anteriormente. En lu-
gar de eso, probablemente se tendr an las ventanas colocadas a su gusto
asegur andose que los ajustes sean guardados en la opci on de Window Pre-
ferences. Probablemente tambien se tendr an macros de mandos (command
macros) que ajustan la trayectoria, cargan el programa, y ajustan expresio-
nes a observaci on.
Una vez que se est a c omodo con lo b asico, entonces se puede familiarizar
con tareas de depuraci on m as complejas usando la simulaci on de dispositivos
de entrada y salida (I/O). Si est a usando c odigo en C como c odigo fuente,
tambien es necesario que aprenda algo acerca de los mandos especcos utiles
en la depuraci on de c odigo fuente en C.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.5. COMENZANDO A TRABAJAR CON EL SIMULADOR 281
B.5.1. Ajustando y borrando la trayectoria
El simulador hace uso de dos tipos de trayectorias para guardar y tener
acceso a los archivos:
la trayectoria del directorio de trabajo, y
las trayectorias de directorios alternativos.
El directorio de trabajo es la trayectoria primaria, es el directorio usado
por omisi on (default) cuando se busca un archivo para entrada o salida
(suponiendo que no se especica explcitamente con el nombre de archivo
de entrada/salida). Si no se encuentra el archivo en el directorio de trabajo,
autom aticamente se buscan trayectorias alternativas. La ventaja de tener
trayectorias alternativas es que se pueden tener archivos objeto, archivos
fuente y macros de mandos en directorios separados, pero que se pueda aun
tener acceso a ellos sin tener que redenir constantemente la trayectoria.
Para ajustar la trayectoria del directorio de trabajo:
1. Desde el men u FILE seleccione Path, luego seleccione Set. Apare-
cer a una ventana de di alogo, como se muestra en la gura B.5.
Figura B.5: Ajuste de la trayectoria.
2. Si es apropiado seleccione otra unidad desde el men u Volumes.
3. Mueva hacia arriba o hacia abajo el arbol de directorios hasta que
aparezca en la lista de subdirectorios el directorio deseado. Hay varias
formas de hacerlo:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
282 B.5. COMENZANDO A TRABAJAR CON EL SIMULADOR
mueva hacia abajo o hacia arriba el arbol de directorios con los
botones que muestran echas hacia la izquierda o hacia la dere-
cha,
mueva hacia abajo al arbol de directorios haciendo un doble click
en la lista de subdirectorios,
mueva hacia arriba el arbol seleccionando un directorio desde la
caja en donde aparece el directorio origen, y
seleccione un directorio desde el men u History, el cual muestra
los directorios seleccionados recientemente.
4. Haga un solo click sobre el directorio deseado de la lista de subdirec-
torios que est an resaltados. Note que el directorio resaltado aparece
en el area con la etiqueta Directory.
5. Haga click en Select. El directorio seleccionado es ahora el directorio
de trabajo.
Para ajustar una trayectoria alternativa:
1. Desde el men u File seleccione Path, luego seleccione Add.
2. Si es apropiado, seleccione otra unidad desde el men u Volumes.
3. Mueva hacia arriba o hacia abajo el arbol de directorios hasta que
aparezca el directorio que desea en la lista de subdirectorios.
4. Seleccione el directorio deseado haciendo un solo click sobre el en la
lista de subdirectorios.
5. Seleccione Select. El directorio seleccionado ahora est a agregado a la
lista de trayectorias alternativas. Puede usar Display the Current
PATH para ver la lista de trayectorias alternativas.
Para borrar las trayectorias alternativas:
1. Desde el men u File, seleccione Path, luego seleccione Clear Alternate
Path list.
La lista de trayectorias alternativas es borrada de todos los dispositivos. La
trayectoria del directorio de trabajo no se borra.
Tenga en mente que se mantiene un directorio de trabajo por cada dis-
positivo, aunque todos los dispositivos comparten las mismas trayectorias
alternativas.
Para cambiar el directorio de trabajo de un dispositivo que no es el
dispositivo por omisi on, debe primero cambiar el dispositivo por omisi on
haciendo lo siguiente:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.6. CARGA DE ARCHIVOS OBJETO 283
Figura B.6: Selecci on del dispositivo.
1. Desde el men u Modify seleccione Device, luego seleccione Set Default
y aparecer a la caja de di alogo que se muestra en la gura B.6
2. En Device seleccione el n umero de dispositivo que quiere que sea el
dispositivo por omisi on (el dispositivo en uso).
3. Seleccione OK.
El dispositivo por omisi on es el dispositivo para el que se aplican los
mandos. Cuando cambie el dispositivo por omisi on la ventana de sesi on
(session window) y la ventana de mandos (command window) autom atica-
mente cambian para reejar la informaci on para el nuevo dispositivo. Las
otras ventanas como la ventana de ensamblado (assembly window), ventana
fuente (source window), y dem as, no se actualizar an autom aticamente.

Esto
permite desplegar la informaci on en ventanas separadas al mismo tiempo.
Para ver la informaci on para el nuevo dispositivo por omisi on abra otra
ventana de ensamblado, assembly window, source window, y dem as.
B.6. Carga de archivos objeto
Se pueden cargar al DSP archivos Object Module Format (OMF) o Com-
mon Object File Format (COFF) directamente en la memoria del simulador.
Los archivos OMF se identican por la extensi on .lod, y los archivos COFF
se identican por la extensi on .cld. El ensamblador (ASM56300) genera
ambos formatos.
Tambien se pueden generar ambos formatos con el simulador del DSP
cuando se guardan archivos objeto.
Para cargar un archivo COFF (.cld):
1. Desde del men u File seleccione Load. Luego seleccione Memory COFF
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
284 B.6. CARGA DE ARCHIVOS OBJETO
2. En Load seleccione memory debug symbols o ambos. El simulador pro-
cesar a la informaci on de smbolos y n umeros de lnea contenida en un
archivo objeto con formato COFF (archivo .cld) s olo si el archivo
fue compilado o ensamblado con el depurador habilitado. (En el en-
samblador esto es representado por la opci on -g.) Si se ha cargado
la informaci on de smbolos, el simulador al evaluar aceptar a nombres
simb olicos de los n umero de lnea del archivo fuente y los traducir a en
las localidades de memoria asociadas.
3. En Filename especique el nombre del archivo objeto a cargar y haga
click sobre el bot on File para buscar el archivo.
4. Seleccione OK.
Si el archivo .cld no se encuentra en el directorio seleccionado, el
simulador tratar a de cargar el archivo desde el directorio de trabajo. Si
el archivo no existe en el directorio de trabajo, el simulador tratar a de
cargarlo desde los directorios alternativos. Se mostrar a un mensaje de
error si el archivo no se encuentra en cualquiera de estos directorios.
Para cargar un archivo OMF (.lod):
1. Desde el men u File, seleccione Load. Luego seleccione Memory OMF.
2. Especique el nombre del archivo en la caja de di alogo.
No es necesario introducir la extensi on con el nombre del archivo. El
simulador supone que la extensi on es .lod
3. Seleccione Open
Debe tenerse en cuenta que el archivo objeto es cargado en la memo-
ria del dispositivo actual. Si se desea cargar el archivo en otro dispositivo
deber a primero seleccionar ese archivo como el dispositivo por omisi on.
B.6.1. Cargando archivos del estado del simulador
Se puede cargar un archivo de estado de la simulaci on previamente guar-
dado. El archivo de estado act ua como una inicializaci on que incluye infor-
maci on acerca de:
El estado de todos los dispositivos DSP en el sistema y su tipo de
dispositivo.
Registros habilitados, contadores, registros de estado, registros pe-
rifericos, entre otros.
Todo el contenido de la memoria.
Los ajustes de las ventanas.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.6. CARGA DE ARCHIVOS OBJETO 285
El registro de la historia de mandos (command history buer).
La salida de la ventana de sesi on para cada dispositivo.
Esencialmente, un archivo de estado contiene toda la informaci on ne-
cesaria para duplicar exactamente la condici on del simulador como exista
cuando el archivo fue guardado.
Esto puede ser util de varias maneras: por ejemplo, si se est a en una
larga sesi on de desarrollo y se desea tomar un descanso, guarde el estado
del simulador en un archivo de estado de manera que no pierda su lugar.
En caso de que una parte particular de un programa este dando problemas,
se puede salvar el estado justo antes del area del problema, simplicando la
conguraci on (setup) al repetir varios intentos en aislar el problema. Hay,
por supuesto, muchas razones para guardar el estado del simulador.
Para cargar un archivo de estado del simulador:
1. Desde el men u File seleccione Load, luego seleccione State.
2. Especique el nombre del archivo de estado en la caja de di alogo.
3. Seleccione Open.
El estado actual del simulador ser a reemplazado por la informaci on de
estado en el archivo .sim.
Guardando el archivo del simulador
SAVE S(state)/addr[_block]...filename[-A/-O/-C]
El mando SAVE permite la creaci on de un archivo de estado del simulador
a partir del estado actual del mismo, o la creaci on de un archivo m odulo ob-
jeto o un archivo en formato COFF desde bloques de memoria especicados.
Si se especica S como el segundo par ametro, se crea un archivo de estado
del simulador.

Este contiene todo el estado del simulador, incluyendo conte-
nidos de memoria, puntos de ruptura, y la posici on actual de los apuntadores
de cualquier archivo abierto. Este archivo est a en un formato interno que,
para el simulador, es eciente para almacenar o cargar (vease la descripci on
del mando load s). El sujo por omisi on para el nombre del archivo del
estado del simulador es .sim.
Si se especican los bloques de memoria (en lugar de S), se almacenan las
areas de memoria especicadas en un formato objeto, de modo que el archivo
pueda ser recargado con el mando del simulador load. El formato objeto
por omisi on es OMF. El sujo para un archivo OMF .lod ser a agregado
al nombre del archivo si no se especica explcitamente. Si se especica un
sujo de un archivo COFF .cld en el nombre del archivo, el contenido de la
memoria ser a almacenado en un archivo COFF. El simulador no almacena
informaci on para depuraci on simb olica en el archivo de salida COFF.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
286 B.6. CARGA DE ARCHIVOS OBJETO
Se puede especicar un car acter clave -A, -O, o -C para seleccionar
append, overwrite o cancel si el nombre del archivo ya existe. Por omi-
si on, se le preguntar a que hacer durante la ejecuci on del mando. Agregar
(Appending) no es una opci on v alida para archivos de estado.
Ejemplos:
save p:0..$ff x:0..$20 session1 -a
Guarda los tres mapas de memoria a un archivo OMF session.lod. Si el
archivo ya existe, agregarlo a el.
save s lunchbrk
Guarda el estado del simulador a un archivo lunchbrk.sim.
save s lunchbrk.b -c
Guarda el estado del simulador a un archivo lunchbrk.b. Si el archivo existe,
cancela este mando.
B.6.2. Guardando archivos objeto
Se pueden guardar bloques de memoria en un archivo objeto COFF o
ASCII. Los archivos objetos se pueden recargar en el simulador o cualquier
otro ambiente donde se usan tales archivos.
Para guardar un archivo COFF (.cld):
1. Desde el men u File seleccione Save, luego seleccione Memory COFF.
2. En Space Memory seleccione la memoria a guardar.
3. En Start Address teclee la direcci on de inicio del bloque de memoria.
4. En End Address teclee la ultima direcci on del bloque de memoria.
5. En File Name introduzca el nombre del archivo del archivo a guardar
o seleccione File para abrir en los directorios.
La extensi on por omisi on es .cld.
6. Seleccione OK.
Si no se especica una trayectoria para el directorio, el archivo ser a guar-
dado en el directorio de trabajo. Si el archivo ya existe, se le pedir a que
decida si desea sobre escribirlo o que sea agregado al archivo.
El simulador no guarda informaci on para depuraci on simb olica.
Para guardar un archivo OMF (.lod):
1. Desde el men u File haga click en Save. Despues seleccione Memory
OMF.
2. En Memory Space, seleccione la memoria a guardar.
3. En Start Address ingrese la direcci on de inicio del bloque de memo-
ria.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.7. INTRODUCCI

ON A LA CONFIGURACI

ON DE LA MEMORIA
DEL SIMULADOR 287
4. En End Address ingrese la ultima direcci on del bloque de memoria.
5. En File Name teclee el nombre del archivo a guardar y seleccione File
para abrir los directorios.
La extensi on por omisi on es .lod.
6. Seleccione OK.
Si no se especica una trayectoria para el directorio, el archivo ser a guar-
dado en el directorio de trabajo. Si el archivo ya existe, se le pedir a que
decida si desea reescribirlo o que sea agregado al archivo.
B.7. Introducci on a la conguraci on de la memo-
ria del simulador
Se puede indicar una conguraci on especca del DSP para cada dispo-
sitivo. Los atributos de la memoria interna son determinados por la congu-
raci on del dispositivo seleccionado. El acceso a la memoria externa est a tam-
bien determinado por la conguraci on del dispositivo; sin embargo, los efec-
tos de escribir en memoria externa RAM, ROM o perifericos, pueden ser
controlados totalmente por el usuario.
Para hacer la conguraci on de un dispositivo:
1. Desde el men u Modify seleccione Device, luego seleccione Configure.
2. En Device seleccione el n umero del dispositivo que desea congurar.
3. En Configure seleccione Type.
4. En Device Type seleccione el tipo de dispositivo que desea simular.
5. Seleccione OK.
El simulador provee la exibilidad de denir las respuestas de la memoria
externa entregando c odigo fuente en lenguaje C para las funciones de la
memoria externa. El c odigo fuente usado por omisi on est a contenido en el
archivo simvmem.c.
El simulador contiene el mapa de memoria predenido del tipo de dispo-
sitivo por omisi on como la conguraci on de la memoria. Se puede congurar
el dispositivo para que exista su estado de inicio (reset) en un modo de
operaci on predenido. Una vez que el simulador est a activo, el modo de
operaci on puede ser cambiado bajo control del programa cambiando el valor
del registro de modo de operaci on (OMR) de dispositivo. Las terminales
(pins) del modo son conguradas autom aticamente al modo de operaci on
por omisi on. El modo de operaci on que simula el dispositivo enseguida de
un re-inicio por hardware simulado puede ser ajustado con resetting the
device registers and memory.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
288
B.8. REINICIO DE LOS REGISTROS DEL DISPOSITIVO Y
MEMORIA
El mapa de memoria externo completo del dispositivo es, por omisi on,
memoria RAM. El gran espacio de memoria externa es simulado usando una
tecnica de memoria virtual que autom aticamente compagina los bloques de
memoria al disco si falla el ambiente de operaci on para alojar el espacio de
memoria requerido.
Por medio del cambio de valores de memoria (changing memory values)
se pueden modicar las areas incluidas en el CI de arranque (bootstrap) y de
datos en ROM. La ROM de arranque se especica usando PR: como el que
designa el espacio de memoria. Las ROMs de datos se pueden especicar
por XR: o YR:. Cargando un archivo de salida del ensamblador con el load
del simulador tambien se puede modicar la ROM de arranque o las areas
ROM de datos. Las areas ROM se pueden re-inicializar seleccionando Reset
desde el men u Execute, luego seleccionando State.
B.8. Reinicio de los registros del dispositivo y me-
moria
Se pueden reiniciar los registros del dispositivo o todo el estado del simu-
lador en cualquier momento en que es detenida la ejecuci on de instrucciones.
Reiniciando los registros tambien permite seleccionar el modo de operaci on
que tendr a el dispositivo en respuesta a la simulaci on de la secuencia de
reinicio por hardware.
Para reiniciar los registros del dispositivo:
1. Antes de reiniciar los registros, desear a saber cu al modo de operaci on
est a disponible para el dispositivo que se est a usando. Para ver el el
modo de operaci on que est a disponible, abra la ventana de mandos.
En la lnea de mandos, escriba:
help mode
2. Vea la ventana de sesi on. Contendr a una lista de los modos de opera-
ci on disponibles para el dispositivo que se est a simulando.
Ahora se puede proceder con el reinicio de los registros.
3. Desde el men u Execute seleccione Reset, luego seleccione Device.
Aparecer a la caja de di alogo que se muestra en la gura B.7.
4. Seleccione el modo de operaci on al cual deber a re-iniciar el dispositivo.
5. Seleccione OK
Los registros del dispositivo est an ahora ajustados a las condiciones
de re-inicio denidas.
Para reiniciar la memoria de simulaci on:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.9. RESET DEVICE DESDE LA L

INEA DE MANDOS 289


Figura B.7: Ajuste de inicializaci on.
1. Desde el men u Execute, seleccione Reset, luego seleccione State.
Esto re-inicia todo el estado del simulador a las condiciones de arran-
que. Todos los puntos de ruptura son borrados, la memoria es inicia-
lizada, y son cerrados todos los archivos de bit acora o historial y de
I/O.
B.9. Reset Device desde la lnea de mandos
RESET S(state)/D(device)[]
El mando RESET se puede usar para reiniciar los registros del disposi-
tivo (D) o todo el estado del simulador (S). Tambien se puede usar para
seleccionar el mode de operaci on que el dispositivo tomar a en respuesta a
la simulaci on de la secuencia de reinicio por hardware. El par ametro mode
especica el modo de operaci on del DSP en la forma Mn (n=dgito decimal).
Para ver los modos de operaci on disponibles para un dispositivo en par-
ticular:
1. En la lnea de mandos, teclee:
help mode.
2. Vea la ventana de sesi on. Ella contendr a una lista de los modos de
operaci on disponibles para el dispositivo que est a simulando.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
290 B.10. CAMBIO DE LA BASE NUM

ERICA
Ejemplos
resetd
Reinicia todos los registros del dispositivo a las condiciones de reinicio de-
nidas.
resetd m0
Reinicia los registros del dispositivo y selecciona el modo de operaci on 0
como el modo de operaci on por omisi on que seguir an a las secuencias sub-
secuentes de reinicio por hardware.
resets
Reinicia todo el estado del simulador a la condici on de arranque (start-up).
Todos los puntos de ruptura son borrados, la memoria es inicializada, y son
cerrados todos los archivos de historial y de I/O.
B.10. Cambio de la base numerica
Se puede cambiar la base numerica (radix) que usa por omisi on el simu-
lador para los par ametros de los mandos y otros valores de entrada. Tambien
se puede cambiar la base numerica usada el desplegar registros especcos y
localidades de memoria.
Como una alternativa para cambiar la base por omisi on, tambien se
puede denotar el n umero base de un valor precediendolo con un signo de
pesos ($), un ap ostrofe (), o un signo de porciento ( %):
$ el valor es hexadecimal
el valor es decimal
% el valor es binario
El simulador comienza con la base en decimal por omisi on para valores
de entrada y hexadecimal para la mayora de los valores de salida. Cambiar
la base de los valores de entrada es util porque permite ingresar valores sin
tener que teclear los signos que especican la base antes de cada valor.
Para cambiar la base de valores de entrada:
1. Desde el men u Modify seleccione Radix, luego seleccione Set default.
Aparecer a la caja de di alogo como se muestra en la gura B.8. Note
que autom aticamente es seleccionada la base actual.
2. En Radix seleccione el sistema numerico a usar. Este sistema ser a el
de omisi on para los valores que ingrese cuando realice mandos.
3. Seleccione OK
Para cambiar la base para desplegar un registro o una localidad de me-
moria:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.10. CAMBIO DE LA BASE NUM

ERICA 291
Figura B.8: Ajuste de la base numerica
Figura B.9: Cambio de base numerica de registros.
1. Desde el men u Modify seleccione Radix, luego seleccione Set Display.
Aparecer a la caja de di alogo mostrada en la gura B.9.
2. En Radix seleccione el sistema numerico a usar.
3. En Registers seleccione el registro que ser a mostrado con el nuevo
sistema numerico. Para seleccionar m as de un registro, mantenga abajo
la tecla CTRL mientras selecciona los nombres de los registros. Esto no
afecta la base por omisi on de los valores de entrada.
4. En Memory seleccione el espacio de memoria y las direcciones que ser an
mostradas con la nueva base. Esto no afecta la base por omisi on de los
valores de entrada.
5. Seleccione OK.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
292 B.11. DEPURACI

ON DE C

ODIGO FUENTE EN C
B.11. Depuraci on de c odigo fuente en C
El simulador provee varias caractersticas que son especcamente usa-
das en la depuraci on de c odigo fuente en C. Los siguientes t opicos ayudar an
a comprender mejor el uso del simulador para depurar c odigo fuente en C.
(Recuerde cuando compile c odigo fuente de incluir informaci on para depu-
raci on).
B.11.1. Moviendo hacia arriba/abajo el Call Stack
Para mover la pila de llamadas hacia arriba:
1. Desde el men u Modify seleccione Up. Aparecer a la siguiente caja de
di alogo que se muestra en la gura B.10.
Figura B.10: Selecci on para mover la pila hacia arriba.
2. En Frame seleccione el n umero de cuadros (frames) a mover hacia
arriba en la pila (stack).
3. Seleccione OK.
El cuadro al cual se movi o es ahora el punto de inicio para los c alculos
subsecuentes.
Para mover la pila de llamadas hacia abajo:
1. Desde el men u Modify seleccione Down. Aparecer a la siguiente caja de
di alogo que se muestra en la gura B.11.
2. En Frame seleccione el n umero de cuadros (frames) a mover hacia
arriba en la pila (stack).
3. Seleccione OK.
El cuadro que se movi o es ahora el punto de inicio para los c alculos
subsecuentes.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.11. DEPURACI

ON DE C

ODIGO FUENTE EN C 293


Figura B.11: Selecci on para mover la pila hacia abajo.
B.11.2. Mostrando el Call Stack
Se puede mostrar la pila de llamada de la funci on C comenzando con el
cuadro que haya especicado.
Para desplegar la pila de llamadas (Call stack):
1. Desde el men u Display seleccione Call Stack.
2. Se ver a la caja de di alogo como se muestra en la gura B.12.
Figura B.12: Desplegado de la pila de llamadas a C.
3. En Frames seleccione si desea mostrar los cuadros internos o externos.
4. En Count especique el n umero de cuadros que desea mostrar.
5. Seleccione OK.
Si est a escribiendo un script, puede ser util usar el mando WHERE para
desplegar la pila de llamado a la funci on C (C function Call Stack).
B.11.3. Monitor de llamadas a funciones C
Se tiene un monitor para revisar las llamadas que son hechas por las
funciones C desplegando la ventana Calls.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
294 B.12. HABILITANDO CADENAS I/O
Para ver las llamadas a funciones C:
1. Desde el men u Windows seleccione Calls sobre una ventana como la
que se muestra en la gura B.13. La ventana Calls es actualizada
Figura B.13: Monitor de llamadas a C.
en tanto se ejecuta cada instrucci on. Si la instrucci on no contiene un
llamado a una funci on, se muestran tres signos de interrogaci on para
indicar que no se ha reconocido la funci on.
2. Haga un doble click sobre stack level para seleccionarlo como la
expresi on de contexto para hacer un EVALUATE Expression.
Cada llamado a una funci on agrega otro cuadro o marco a la pila, cada
regreso retira uno. La entrada #0 es la funci on m as anidada, esto es la cima
de la pila, el n umero m as alto es la funci on main(). Cada entrada muestra
un n umero para indicar el nivel al cual la llamada est a anidada la direcci on
de regreso del PC, es decir, la direcci on despues de la llamada a la funci on, y
el nombre de la funci on. El nivel superior representa la entrada al monitor
depurador, y as indica la siguiente instrucci on a ser ejecutada. La pila de
llamadas tambien indica el contexto a usar para evaluar las expresiones C.
Como cada funci on puede tener su propia copia de una variable con nombre,
es necesario indicar cu al instancia es requerida.
B.12. Habilitando cadenas I/O
Se pueden habilitar o inhabilitar cadenas I/O para programas en C que
corren en el dispositivo actual. Los archivos de cadenas est andares soporta-
dos son: STDIN, STDOUT, STDERR. Cualquier referencia por programas
en C a estos archivos pueden dirigirse a archivos en el sistema host.
El manejo de archivos de cadenas se puede congurar independientemen-
te para cada dispositivo. El manejo de cadenas es habilitado por omisi on.
Si un programa en C intenta el acceso a un archivo de cadenas mientras no
est a habilitado y redirigido, el acceso es ignorado. La salida es desechada y
es dado como entrada un valor est andar.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.13. USO DE LA BARRA DE HERRAMIENTAS 295
Para habilitar o deshabilitar las cadenas I/O:
1. Desde el men u File seleccione IO Streams.
2. Seleccione Enable o Disable.
B.12.1. Redirecci on de una cadena I/O
Se puede redirigir la cadena I/O desde el dispositivo actual hacia un
archivo en el host. Cada archivo cadena puede ser asignado individualmente,
las cadenas no deseadas no tienen que ser redirigidas.
Las cadenas se pueden redirigir ya sea que la cadena sea habilitada o
inhabilitada; sin embargo, para que la redirecci on sea efectiva, las operacio-
nes de cadenas deben estar habilitadas. El inhabilitar el soporte de cadenas
mientras una cadena es redirigida no termina la redirecci on. Meramente la
hace no efectiva hasta que las cadenas sean habilitadas nuevamente.
Para redirigir la cadena I/O:
1. Desde el men u File seleccione IO Redirect, luego seleccione Stream.
2. En Streams seleccione tipo de cadena que desea redirigir: STDIN,
STDOUT, o STDERR.
3. En File Name especique el nombre del archivo para redirigir la ca-
dena o seleccione el bot on File para buscar el archivo.
4. Seleccione OK.
Para detener la redirecci on de la cadena I/O:
1. Desde el men u File seleccione IO Stream, luego seleccione Off.
2. Seleccione el tipo de cadena que desea detener la re-direcci on.
3. Seleccione OK.
Para mostrar la cadena I/O redirigida:
1. Desde el men u Display seleccione Redirected IO Streams.
2. Vea la ventana de sesi on. La cadena redirigida estar a listada con el
nombre del archivo al cual la cadena est a siendo dirigida.
B.13. Uso de la barra de herramientas
Se puede usar la barra de herramientas para controlar la ejecuci on del
programa. Los iconos localizados en la barra de herramientas duplican de
alguna manera los mandos de control encontrados en el men u Execute.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
296 B.13. USO DE LA BARRA DE HERRAMIENTAS
Figura B.14: Iconos de la barra de herramientas.
Usando la barra de herramientas se tiene una forma m as r apida de hacer
algunas de las cosas que se pueden hacer en el men u Execute.
Los iconos de la barra de herramientas se muestran en la gura B.14.
Cada bot on tiene la funci on que se indica a continuaci on:
GO: Inicia la ejecuci on de programas desde la siguiente direcci on. Todos
los puntos de ruptura son observados.
Stop: Detiene la ejecuci on del programa o macro de mandos, si est a co-
rriendo.
STEP: Ejecuta la siguiente instrucci on o lnea, si est a abierta la ventana
del c odigo fuente (Source window), mostrando el programa fuente, el
bot on Step ejecuta una lnea de c odigo. Por el contrario, el bot on
Step ejecuta una instrucci on. Al encontrar una instrucci on JSR, el
simulador comienza con la primera instrucci on de la funci on, y avanza
una instrucci on a la vez. Para avanzar una instrucci on a la vez desde
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.13. USO DE LA BARRA DE HERRAMIENTAS 297
la barra de herramientas:
1. Aseg urese que el programa en ejecuci on este detenido y que la
ventana Source no este abierta.
2. Seleccione el bot on Step sobre la barra de herramientas. El si-
mulador ejecutar a la siguiente instrucci on en ensamblador.
Para avanzar una lnea a la vez desde la barra de herramientas:
1. Aseg urese que el programa en ejecuci on este detenido y que la
ventana Source este abierta. Si la ventana Source no est a abierta,
el simulador autom aticamente ejecutar a la siguiente instrucci on
en la ventana Assembly en lugar de la siguiente lnea de la ventana
Source.
2. Seleccione el bot on Step en la barra de herramientas. El simula-
dor ejecutar a la siguiente lnea ejecutable de c odigo en la ventana
Source. (Las lneas de comentarios en el c odigo fuente son igno-
rados.)
Note que los valores en la ventana de registros, la ventana de memoria,
y todas las ventanas del simulador son actualizadas cada vez que se
selecciona Step.
Step a traves de instrucciones:
Se pueden especicar el n umero de instrucciones, lneas, o ciclos que
desea que ejecute el simulador antes de detenerse. Avanzar varias ins-
trucciones es una manera r apida de especicar la ejecuci on de un n ume-
ro de instrucciones sin tener que poner puntos de ruptura. Es similar a
realizar un TRACE excepto que el desplegado de los registros y los blo-
ques de memoria ocurre despues de que se haya ejecutado un n umero
especicado de ciclos, lneas o instrucciones.
Si la siguiente instrucci on a ejecutar llama a una subrutina o comienza
la ejecuci on de un macro, la subrutina o macro no es ejecutada. Sin
embargo, es posible permitir la ejecuci on de la funci on actual o en
proceso (allow the current function to FINISH).
Para avanzar a traves de instrucciones de programa:
1. Desde el men u Execute seleccione Step. Aparecer a la siguiente
caja de di alogo que se muestra en la gura B.15.
2. En Increment seleccione avanzar por cycles, lines o instructions.
3. En Count especique el n umero de ciclos, lneas o instrucciones
por avanzar.
4. Seleccione el cuadro etiquetado como Halt at Breakpoints si
desea que sean observados los puntos de ruptura.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
298 B.13. USO DE LA BARRA DE HERRAMIENTAS
Figura B.15: Bot on para avanzar paso a paso.
Si no es seleccionado el cuadro, los puntos de ruptura ser an igno-
rados y no detendr an la ejecuci on del programa.
5. Seleccione OK
Note que los valores en la ventana de registros, ventana de memoria,
y todas las ventanas del simulador son actualizadas despues de que se
ha ejecutado el ultimo ciclo, lnea o instrucci on.
Como una alternativa, se puede usar el bot on STEP sobre la barra de
herramientas para avanzar una instrucci on o lnea a la vez.
Next: Ejecuta la siguiente instrucci on o lnea.
Se puede especicar el n umero de instrucciones o lneas que desee
que el simulador ejecute antes de detener la ejecuci on. Ejecutar el
siguiente n umero especicado de instrucciones es una manera r apida
de controlar la ejecuci on sin tener que poner puntos de ruptura.
Ejecutar instrucciones con NEXT es similar a ejecutar la orden STEP
Through Instructions excepto que s olo puede especicar el n umero
de lneas o instrucciones, y no ciclos. Como el avance a traves de ins-
trucciones, el desplegado de los registros y bloques de memoria ocurre
s olo despues de que ha sido ejecutado el n umero de lneas o instruc-
ciones.
La diferencia importante entre el uso de NEXT en oposici on a STEP es la
forma en que se manejan las subrutinas. Si la siguiente instrucci on a ser
ejecutada llama a una subrutina o comienza la ejecuci on de un macro,
todas las instrucciones de la subrutina o del macro son ejecutadas antes
de que se detenga la ejecuci on. Los registros habilitados, memoria, y
otros valores actualizados son entonces mostrados. (Para reconocer los
macros, se debe incluir la informaci on para depuraci on simb olica debe
ser cargada. La informaci on para depurar est a incluida en el archivo en
formato COFF .cld generado usando la opci on -g en el ensamblador
de Motorola.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.13. USO DE LA BARRA DE HERRAMIENTAS 299
Para ejecutar las siguientes instrucciones del programa:
1. Desde el men u Execute, seleccione Next.
2. En Increment, seleccione ya sea por lneas o por instrucciones.
3. En Count especique el n umero de lneas o instrucciones a ejecu-
tar.
4. Seleccione el cuadro etiquetado Halt at Breakpoints si desea
que sean observados los puntos de ruptura.
Si no es seleccionado el cuadro, los puntos de ruptura ser an igno-
rados y no detendr an la ejecuci on del programa.
5. Seleccione OK.
Note que los valores de la ventana de registros, ventana de memoria,
y todas las ventanas del simulador son actualizadas despues de que es
ejecutada la ultima lnea o instrucci on.
FINISH: permite que se ejecute la siguiente funci on hasta ser comple-
tada. Cuando avance por pasos a traves de un programa, es posible
que la ejecuci on se detenga en medio de una funci on o subrutina. Se-
leccionando el bot on Finish se completa la ejecuci on de la funci on
o subrutina. El simulador continua hasta que encuentra una instruc-
ci on RTS. Si se encuentra otra funci on durante la operaci on FINISH, la
ejecuci on contin ua hasta el nal de la funci on actual.
Permitiendo que termine la funci on actual:
Algunas veces encontrar a que la ejecuci on del programa se ha detenido
en medio de la ejecuci on de una subrutina o funci on. Esto puede ocurrir
por varias razones. Puede ocurrir porque se ha especicado que un
cierto n umero de pasos sean ejecutados, lo que ha sucedido en medio
de una subrutina. O porque se ha alcanzado una condici on UNTIL o
punto de ruptura mientras est a en medio de una subrutina.
En cualquier caso donde el simulador se ha detenido la ejecuci on en
medio de una subrutina o funci on, se puede hacer que la subrutina o
funci on terminen.
Para terminar la ejecuci on de la funci on o subrutina:
1. Desde el men u Execute, seleccione finish.
El simulador contin ua hasta que encuentre una instrucci on RTS.
La ejecuci on solamente contin ua hasta el nal de la funci on co-
rriente. Si se encuentra otra funci on durante la operaci on FINISH,
la ejecuci on de la funci on que fue encontrada no es completada.
Device: permite hacer los ajustes del dispositivo por omisi on al cual
ser an dirigidos todos los mandos. Note que cuando se designa otro
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
300 B.14. CREACI

ON Y EJECUCI

ON DE UN MANDO MACRO
dispositivo como el dispositivo por omisi on la ventana de sesi on y la
ventana de mandos reejan inmediatamente la informaci on del nuevo
dispositivo. Sin embargo, otras ventanas como la ventana de ensam-
blado, la ventana de fuente, la ventana de stack, etc. deben ser espec-
camente abiertas para reejar la informaci on del nuevo dispositivo.
Repeat: repite el ultimo mando en el registro de historia esto es, los
mandos que aparecen en la lista de la ventana de mandos. Presionar
este bot on es lo mismo que seleccionar (hacer click) sobre el ultimo
mando en el registro (buer) de historia en la ventana de mandos y
presionar ENTER.
RESET: Reinicia el dispositivo actual. Este bot on genera una orden de
reinicio para el dispositivo actual. El dispositivo ser a reiniciado en el
mismo modo de operaci on.
B.14. Creaci on y ejecuci on de un mando macro
Un mando macro es una herramienta util para realizar m ultiples man-
dos en el simulador. El macro es util para realizar tareas que se repiten
com unmente tales como la conguraci on de trayectorias, carga de progra-
mas fuente, y ajuste de ventanas de observaci on (Watch). Sin embargo, un
macro puede consistir de casi cualquier mando del simulador.
Un macro es un archivo de texto en ASCII est andar, y puede ser creado
o editado con cualquier editor de texto. Tambien puede crearse un macro
guardando las instrucciones en un archivo log.
Para grabar un macro:
1. Desde el men u File seleccione Log. Luego seleccione Commands.
2. Especique el nombre del archivo y gu ardelo.
La extensi on del archivo por omisi on ser a .cmd. Se puede usar una
extensi on diferente, pero no se recomienda para mantener la consis-
tencia. Si se especica un nombre de archivo que ya existe, se puede
seleccionar reescribirlo overwrite o agregar append los nuevos mandos
al nal del archivo existente.
3. Ahora el archivo log registrar a todos los mandos del simulador, mien-
tras se llamen desde la barra de men u o desde la lnea de mandos en
la ventana Command. Utilice los mandos del simulador como lo hara
durante la ejecuci on normal de un programa.
Note que hay una excepci on. Si detiene la ejecuci on del programa
mientras registra los mandos, Stop no ser a registrado. La unica mane-
ra de hacer una pausa en la ejecuci on desde un macro es usando STEP,
NEXT, TRACE,UNTIL WAIT o usar un punto de ruptura.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.14. CREACI

ON Y EJECUCI

ON DE UN MANDO MACRO 301


Si se tiene alguna duda si un mando puede ser grabado, piense de esta
manera: si aparece en la ventana de mandos, es grabado.
4. Para detener el registro de mandos desde el men u File seleccione Log.
Luego seleccione Close.
5. Desde la caja de di alogos seleccione Commands.
6. Seleccione OK.
Ahora el macro ha sido guardado y puede ejecutarse nuevamente o editarse.
Para ejecutar un macro:
1. Desde el men u File, seleccione Macro.
2. Especique el archivo a ejecutar y seleccione Open.
El macro comienza. Los mandos son desplegados en la ventana de
mandos como si fueran ejecutados. Los mandos tambien son reejados
en la ventana de sesi on, junto con la salida que se genera.
Se puede detener el macro seleccionando Stop desde el men u Execute o
seleccionando el bot on Stop sobre la barra de herramientas.
B.14.1. Deteniendo la ejecuci on con WAIT
Se puede hacer una pausa en al ejecuci on del programa especicando
el n umero de segundos que se desea que espere el simulador. La ejecuci on
contin ua despues de la pausa.
Esto es particularmente util cuando se escribe un macro. Esto es, si se
hace que la simulaci on se detenga con WAIT mientras se registran los mandos,
entonces se puede guardar el archivo log. Resulta un mando macro. La pausa
que fue grabada ser a ejecutada cuando se ejecute el macro. Esto ofrece una
manera util de hacer una pausa en la ejecuci on de modo que se puedan
examinar ciertos valores o ventanas.
Para hacer una pausa en la ejecuci on:
1. Desde el men u Execute, seleccione Wait.
2. Seleccione el n umero de segundos de pausa o marque el cuadro de la
caja etiquetada Forever para hacer una pausa indenidamente.
3. Seleccione Ok.
4. Aparece una caja de informaci on para hacer saber que el simulador
est a en pausa. Si no se desea esperar a que la pausa termine autom ati-
camente, se puede continuar con la ejecuci on del programa seleccio-
nando cancel.
Tenga en mente que si selecciona Cancel mientras se est a guardan-
do un macro la cancelaci on de la pausa no ser a registrada. As, por
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
302 B.15. LA VENTANA DE ENSAMBLADO ASSEMBLY
ejemplo, si se especica un WAIT de diez segundos y luego se cance-
la despues de tres, cuando se ejecute el macro la pausa ser a de diez
segundos completos.
B.14.2. Deteniendo la ejecuci on de un programa
Se puede detener la ejecuci on de un programa o de un macro en cualquier
momento.
Para detener la ejecuci on de un programa o un macro:
1. Desde el men u Execute, seleccione stop:
Note que es la unica selecci on que puede hacer mientras est a eje-
cut andose un programa o un macro.
Tenga en mente que si comenz o la ejecuci on con providing an UNTIL
condition que ser a declarado ese punto de ruptura temporal.
En la ventana Assembly (y la ventana Source si se aplica) la siguiente
instrucci on a ser ejecutada ser a mostrada (resaltada) en rojo.
Cuando se haya detenido la ejecuci on del programa la ventana de sesi on
mostrar a Simulation aborted. Note que los valores en esta ventana, la
ventana de registros, la ventana de memoria, y todas las otras ventanas del
simulador ser an actualizadas para reejar la ultima instrucci on o lnea que
fue ejecutada.
Alternativamente, se puede detener la ejecuci on del programa al pulsar
Stop sobre la barra de herramientas.
B.15. La ventana de ensamblado Assembly
La ventana de ensamblado permite desplegar y editar el contenido de
memoria, poner y quitar puntos de ruptura y seguir la ejecuci on del pro-
grama. En tanto se ejecuta el programa, el desplegado es actualizado en
cada paso de la ejecuci on. La siguiente instrucci on a ser ejecutada siempre
es desplegada y resaltada en rojo.
Para usar la ventana Assembly:
1. Desde el men u Windows, seleccione Assembly. Aparece la ventana como
se muestra en la gura B.16.
2. Para ir a una direcci on especca, escriba la direcci on en la caja eti-
quetada Scroll To Address y presione Intro (Enter).
3. Para editar un instrucci on, seleccione con un solo click sobre el mnem oni-
co. Note que el texto del mnem onico es entonces resaltado. Escriba la
nueva instrucci on en ensamblador y presione Enter.
Observe que es resaltada la siguiente instrucci on. Para evitar escribir
accidentalmente sobre esa instrucci on, haga un click sobre una area
fuera del mnem onico.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.15. LA VENTANA DE ENSAMBLADO ASSEMBLY 303
Figura B.16: Ventana de ensamblado.
4. Se pueden poner los puntos de ruptura, inhabilitar, o borrar haciendo
una doble selecci on (doble click) sobre una direcci on o campo de eti-
quetas.
Con un doble click se pone el punto de ruptura. Se hace nuevamente
doble click sobre la direcci on o el campo de etiquetas para inhabilitar
el punto de ruptura. Si hace otra vez doble click sobre la direcci on o
campo de etiquetas se borra el punto de ruptura.
Un punto de ruptura habilitado se muestra en color azul. Los puntos
de ruptura inhabilitados se muestran en color rosa.
B.15.1. Desplegado de los puntos de ruptura
Con frecuencia es util mostrar los puntos de ruptura habilitados e inha-
bilitados abriendo la ventana Breakpoints.
Para mostrar los puntos de ruptura corrientes:
1. Desde el men u Windows,seleccione breakpoints. Una ventana de di alo-
gos muestra una lista de ruptura puestos para el dispositivo actual. La
gura B.17 muestra un ejemplo de una lista de seis puntos de ruptura.
Los puntos de ruptura inhabilitados como el #2 est an indicados con
la palabra disabled.
2. Haciendo un doble click sobre un punto de ruptura de la lista lo cambia
de habilitado a inhabilitado, o de inhabilitado a habilitado.
Los puntos de ruptura fueron puestos haciendo un doble click sobre una
lnea en la ventana de c odigo fuente Source, tal como el punto de ruptura
#5, y son identicados por el n umero de lnea.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
304 B.16. INTRODUCCI

ON AL USO DE EXPRESIONES
Figura B.17: Listado de puntos de ruptura.
Los puntos de ruptura que fueron puestos haciendo doble click sobre
una lnea en la ventana Assembly, tal como el punto de ruptura #6, son
identicados por la direcci on.
B.16. Introducci on al uso de expresiones
El simulador permite el uso de expresiones en la mayora de los sitios
donde haya una constante v alida. Por ejemplo, una expresi on puede tomar
el lugar de una localidad de inicio o termino en la especicaci on de un
intervalo de direcciones. Una expresi on est a compuesta de una combinaci on
de smbolos, constantes, operadores, y parentesis. Las expresiones siguen las
reglas convencionales del algebra y aritmetica booleana.
Las expresiones pueden contener cualquier combinaci on de enteros, n ume-
ros en punto otante, smbolos de espacio de memoria, y smbolos de regis-
tros.
B.16.1. Usando smbolos de espacio de memoria
El simulador interpreta un smbolo de espacio de memoria seguido por
una expresi on como el contenido de una localidad de memoria. La expresi on
es convertida a una constante entera en el intervalo de memoria del DSP.
Para ver una lista de prejos de espacios de memoria v alidos y su intervalo
de direcciones correspondiente desde la lnea de mandos escriba help mem.
Algunos smbolos de intervalo de memoria, tales como P:, o X:, requieren
que el simulador lea primero el Registro de Modo de Operaci on (OMR) del
dispositivo, tal que xi: o pr: se reeran a una localidad exacta de memoria
sin importar el modo de operaci on del CI.
B.16.2. Evaluaci on de expresiones
Se pueden evaluar expresiones de ensamblador del DSP o C y escribir el
resultado en la ventana de Sesi on.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.17. CAMBIO DE VALORES EN MEMORIA 305
Para evaluar una expresi on:
1. Desde el men u Evaluate seleccione Evaluate. Aparecer a una ventana
de di alogo como se muestra en la gura B.18.
Figura B.18: Ventana de evaluaci on.
2. En el cuadro Expression escriba la expresi on que desea evaluar.
Si la expresi on es una expresi on en C, encierrela entre corchetes como
expresi on .
3. En Radix seleccione la base numerica en que se mostrar a el resultado
de la expresi on.
Las expresiones en C muestran el tipo de la expresi on y el valor en for-
mato normal para el tipo expresi on si se selecciona All. Seleccionando
All cuando se eval ua una expresi on en ensamblador mostrar a la base
numerica seleccionada dependiendo de la expresi on en s.
4. Seleccione OK.
La ventana de Sesi on mostrar a el resultado de la evaluaci on.
Las expresiones en C, por omisi on, son evaluadas en el contexto de la
pila actual (current stack frame), es decir, el valor mostrado es aquel valor
que regresara si la expresi on hubiera sido incluido en el programa en el
punto de ejecuci on actual. Las expresiones en C pueden ser evaluadas en el
contexto de cualquiera de las funciones en la trayectoria de llamado de la
funci on actual.
B.17. Cambio de valores en memoria
Se pueden cambiar los valores en la memoria siempre que la ejecuci on
de instrucciones este detenida.
Para cambiar el valor en memoria:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
306 B.17. CAMBIO DE VALORES EN MEMORIA
1. Desde el men u Modify seleccione Change Memory. Aparece la ventana
de di alogo mostrada en la gura B.19.
Figura B.19: Cambio de valores de memoria.
2. Seleccione el espacio de memoria que desea modicar, en Memory Space.
3. En Start Address escriba el valor de la direcci on de inicio que desea
cambiar.
4. En End Address escriba el valor de la direcci on nal que desea cam-
biar.
5. En Value escriba el valor que desea que sea cambiado en las direccio-
nes especicadas. Tenga en mente que todos los valores, incluyendo los
valores de inicio y n ser an cambiados al valor especicado.
Autom aticamente el formato para este valor (HEX, Decimal, etc.)
ser a el mismo que la base numerica por omisi on que se este usando.
Si desea que el formato sea diferente, debe usar el prejo apropiado
antes del n umero:
$ denota un valor como hexadecimal.
B.17.1. Mostrando valores en memoria
Se pueden mostrar los valores en memoria siempre que la ejecuci on de
instrucciones este detenida.
Para mostrar valores en memoria:
1. Desde el men u Windows seleccione Memory. Aparecer a la ventana de
di alogo mostrada en la gura B.20.
2. Seleccione el espacio de memoria del cual desea desplegar su valores.
3. Seleccione OK.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.17. CAMBIO DE VALORES EN MEMORIA 307
Figura B.20: Abrir ventana de memoria.
Los valores de memoria del espacio que haya seleccionado aparecen en
una ventana, por ejemplo, si se seleccion o el espacio de memoria p se ver a una
ventana similar a al que se muestra en la gura B.21.
Figura B.21: Ventana de memoria.
Note que el ttulo en la barra de la ventana de memoria indica:
El n umero de dispositivo que est a viendo.
El n umero de la ventana de memoria. Esto se muestra por que se
pueden mostrar otras ventanas de memoria simult aneamente.
El tipo de espacio de memoria. Nuevamente, se pueden tener varias
ventanas de memoria abiertas, cada una correspondiente a un espacio
de memoria diferente.
Las direcciones de las localidades de memoria se indican en la columna
de la izquierda. Una direcci on en esa columna es la direcci on del valor inme-
diato a la derecha (la segunda columna). En el ejemplo anterior, la primera
direcci on mostrada es p:$000000, la cual contiene el valor $0014a0. Las pri-
meras direcciones mostradas son las siguientes:
Direcci on Contenido
--------------------------
p:\$000000 \$0014a0
p:\$000001 \$0001e0
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
308 B.18. MOSTRANDO VALORES DE REGISTROS
p:\$000002 \$ffff01
p:\$000003 \$ffff01
p:\$000004 \$000033
p:\$000005 \$0000ff
p:\$000006 \$000255
p:\$000007 \$16776961
p:\$000008 \$0000255
p:\$000009 \$0000255
p:\$00000a \$0000000
p:\$00000b \$0000000
p:\$00000c \$0000000
Note que los contenidos de la memoria no necesariamente son mostrados
en hexadecimal. Se puede especicar que una direcci on sea mostrada en
otra base numerica cambiando el radix. En el ejemplo anterior, la base de
las direcciones p:$000006 a p:$000009 fueron cambiadas de hexadecimal a
decimal.
B.18. Mostrando valores de registros
Se pueden mostrar los valores de los registros del dispositivo a cualquier
momento que la ejecuci on de instrucciones este detenida.
Para mostrar el valor en los registros:
1. Desde el men u Windows seleccione Register. Aparecer a la siguiente
ventana de di alogo que se muestra en la gura B.22.
Figura B.22: Abrir ventana de Registros.
2. Seleccione el periferico que desea ver.
3. Seleccione OK.
Los valores de los registros para el periferico que haya seleccionado apa-
recen en una ventana de registros, por ejemplo, si hubiera seleccionado core,
vera una ventana similar a la gura B.23.
Note que la barra de ttulo de la ventana de registros indica:
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.19. USO DE S

IMBOLOS PARA DEPURACI

ON EN ENSAMBLADOR 309
Figura B.23: Ventana de Registros.
El n umero de dispositivo donde reside el periferico.
El n umero de la ventana de registros. El n umero se muestra debido a
que se pueden abrir otras ventanas de registros para otros perifericos.
El tipo de periferico. El tipo de periferico es mostrado para facilitar
la identicaci on, ya que se pueden tener abiertas varias ventanas de
registros, cada una correspondiente a un periferico diferente.
B.19. Uso de smbolos para depuraci on en ensam-
blador
Cuando se carga un archivo objeto con el simulador, tambien se puede
cargar la informaci on de smbolos y n umero de lnea presente en el archivo
objeto COFF (.cld.). (Esto requiere que el archivo objeto tenga informa-
ci on para depuraci on habilitada al tiempo del ensamblado.) El simulador
aceptar a nombres simb olicos o n umeros de lnea del archivo fuente y los
traducir a a una direcci on de memoria asociada.
En general un nombre simb olico puede ser referido en el simulador co-
mo si fuera denido en el archivo fuente original, excepto aquellos nombres
simb olicos con los que haya conicto con un nombre de registro del simulador
deben estar precedidos por un car acter @. Luego puede denirse un nombre
simb olico especicando un nombre para la secci on que lo contiene en la forma
nombre_de_secci on@nombre_del_s mbolo (section_name@symbol_name),
usando el car acter @ como separador. Se puede usar el nombre de la secci on
global" para la secci on global. Si se especica un smbolo sin precederlo
con un nombre de secci on, el simulador supone que la secci on que lo contiene
es el pc actual.
Los n umero de lnea se pueden expresar simplemente como un entero de-
cimal precedido del car acter @ cuando se hace referencia a una lnea en el ar-
chivo fuente actual. Si se va a especicar un campo de direcciones en un man-
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
310 B.19. USO DE S

IMBOLOS PARA DEPURACI

ON EN ENSAMBLADOR
do, se omite el car acter @. En un archivo fuente un n umero de lnea particular
debe expresarse en la forma nombre_de_archivo_fuente@n umero_de_l nea.
A continuaci on se muestran algunas formas v alidas de nombres de smbo-
los y n umeros de lnea:
symbol_name
Traslada a la direcci on asociada con el nombre symbol_name
Ejemplo: change pc lab_p
@symbol_name
Traslada a la direcci on asociada con el nombre symbol_name
Ejemplo: dissaemble @start_1
section_name@symbol_name
Traslada a la direcci on asociada con el nombre simb olico symbol_name en
la secci on section_name
Ejemplo: display sec3@xdata
@section_name@symbol_name
Traslada a la direcci on asociada con symbol_name en la secci on section_name
Ejemplo: display @sec3@xdata
line_number
Traslada a la direcci on asociada con line_number en el archivo fuente actual
Ejemplo: break 30
@line_number
Traslada a la direcci on asociada con line_number en el archivo fuente
Ejemplo: change pc @30
source_filename@line_number
Traslada a la direcci on asociada con line_number en el archivo fuente con
nombre filename
Ejemplo: change pc test.asm@30
@source_filename@line_number
Traslada a la direcci on asociada con el n umero de lnea line_number en el
archivo fuente con nombre filename
Ejemplo: change pc @test.asm@30
source_filename
Traslada a a direcci on asociada con la primera lnea en el archivo fuente con
nombre filename
Ejemplo: list test.asm
@source_filename
Traslada a la direcci on asociada con la primera lnea en el archivo fuente
con nombre filename
Ejemplo: list test.asm.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
B.20. CONFIGURACI

ON Y MODIFICACI

ON DE UNA LISTA WATCH311


B.20. Conguraci on y modicaci on de una lista
WATCH
Se puede observar el contenido de una localidad especca de memoria,
registro, o el valor de cualquier expresi on congurando una Ventana de Ob-
servaci on (Watch Window). Los elementos de observaci on se mantienen en
una lista que se actualiza cada vez que se detiene la ejecuci on del programa.
El valor o expresi on que se observa puede ser v alida aun si es calcu-
lada durante la ejecuci on del programa. Se pueden usar expresiones en C,
encerrando en corchetes la expresi on:{c_expression}. Se pueden usar refe-
rencias simb olicas si se han cargado smbolos desde el m odulo objeto. Los
valores se vuelven a calcular y se muestran a cada pausa en la ejecuci on.
Para mostrar un valor en una lista de observaci on WATCH:
1. Desde el men u Windows seleccione Watch. Aparecer a una ventana de
di alogo como se muestra en la gura B.24.
Figura B.24: Ventana de Observaci on (Watch).
2. Seleccione el n umero de ventana donde se desea que aparezca la ex-
presi on. Desear a hacer esto cuando tenga m as de una ventana de ob-
servaci on abierta.
3. En Expression, escriba la expresi on que desea que aparezca en al
ventana Watch.
4. En Radix, seleccione la base numerica en que desea se muestren las
variables.
5. Seleccione OK.
La expresi on que haya especicado aparecer a en la ventana Watch: Si
la expresi on que escribi o no es v alida, obtendr a un mensaje de error
explicando por que la expresi on no es v alida.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
312B.20. CONFIGURACI

ON Y MODIFICACI

ON DE UNA LISTA WATCH


Una expresi on en C que hace referencia a variables en C s olo puede
evaluarse en el contexto en el cual est a establecido el WATCH, esto es, mientras
todas las variables usadas en la expresi on esten en su alcance (scope usado
en lenguaje C). As, si una o m as variables en una expresi on se salen del
alcance (ya sea por una llamada a una funci on o un regreso de una funci on),
los valores son reemplazados con el mensaje "Expression out of scope".
Cuando todos los elementos de la expresi on regresen al alcance, los valores
son mostrados nuevamente.
Una expresi on que ha salido del alcance debido a la llamada de una
funci on puede evaluarse y mostrarse seleccionando el stack frame para la
evaluaci on del contexto. La asignaci on del stack frame permanece con efec-
to s olo hasta que es ejecutada la siguiente instrucci on. Una expresi on que
est a fuera de alcance a la salida desde una funci on no puede ser evalua-
da, ya que sus variables no existen m as, hasta que la funci on sea llamada
nuevamente.
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio

Indice alfabetico
A
absolutamente sumable, 49
AGU unidad de generaci on autom ati-
ca de direcciones, 17
aliasing, 38
alias, 38
ALU unidad aritmetica y l ogica,
17
an alisis espectral, 2
ancho de banda, 86
aproximaci on de Butterworth, 78
archivos COFF, 279, 282
OMF, 279, 282
arquitectura Harvard, 12
Harvard modicada, 22
asignar almacenamiento, 247
automatic update, 250
B
banda de rechazo, 78
de transici on, 78
pasante, 78
barra de herramientas, 250
breakpoints, 251
Butterworth, 77
normalizado, 80
pasa-banda, 90
C
crculo unitario, 122
c alculo de N, 161
campo de comentarios, 238, 239
de etiquetas, 238
de operaci on, 238
de operando, 239
de operandos, 238
etiqueta, 238
campos de transferencia de datos,
238
caracteres especiales, 241
ceros y polos, 84
Chebyshev, 77
circuitera anal ogica del codec, 258
circuito procesador DSP, 12
codec (CS4218), 257
command, 250
condici on de simetra, 157
conexi on en cascada, 132
en paralelo, 132
conjugada anti-simetrica, 48
simetrica, 48
control del archivo objeto, 247
del ensamblado, 246
del listado de salida, 247
conversi on de mandos JTAG/OnCE,
261
convertidor de mandos, 261
convoluci on discreta, 150
D
denici on de datos constantes, 247
depurador, 236
de Domain Technologies, 249
descripci on del DSP56303EVM, 252
Device, 295
diagrama de interconexi on, 235
direccionamiento circular, 21
con acarreo inverso, 21
lineal, 20
directivas del encadenador, 249
del ensamblador, 241
para macros, 248
para programaci on estructura-
da, 248
313
314

INDICE ALFAB

ETICO
dise no de ltros elpticos, 112
dispositivos bit-slice, 14
DSP56002, 16
DSP56303, 16
DSP56303EVM, 231
DSP56303EVM Users Manual, 231
E
ecuaci on en diferencias, 119
efecto de deformado, 123
de muestreo, 39
ejecutar por pasos, 251
Elpticos, 77
encadenador, 236, 249
ensamblado condicional, 248
ensamblador, 236
ensamblar programas, 236
enunciados fuente, 238
equipo requerido, 231
escalamiento en frecuencia, 84
especicaci on de un ltro, 78
F
fen omeno de Gibbs, 159
ltrado digital, 2
ltro adaptable, 4
anal ogico, 77
anti-traslape, 38
de reconstrucci on, 41
digital, 3
elptico normalizado, 111
ltros Chebyshev, 92
Chebyshev tipo I, 97
digitales, 119
digitales RIF, 149
elpticos, 109
FINISH, 295
forma de construir tablas, 103
directa II, 130
frecuencia de muestreo, 38
funci on de transferencia, 77, 119
de transferencia de Chebyshev,
95
elptica, 110
funciones de aproximaci on, 77
funciones ventana, 159
G
GO, 250, 292
H
Harvard, 12
Hermtica, 48
Hermtica-sesgada, 48
I
implantaci on de un ltro RIF, 165
instalaci on, 233
instrucci on MAC, 12
Intel 2920, 15
interfase digital del codec, 259
serie del codec, 259
J
jump, 250
L
lenguaje ensamblador, 238
l obulo principal, 151
M
macro, 181, 296
mandos del ensamblador, 241
del simulador, 271
Manual del Usuario, 231
mapa de memoria, 23
Matlab, 103
matriz de Toeplitz, 163
memoria FSRAM y Flash, 253
X, 22
Y, 23
mnima distorsi on, 156
Mnimos Cuadrados Ponderados,
162
modo de direccionamiento, 19, 164
muestreo deciente, 40
multiplica-acumula (MAC), 239
N
NEC 7720, 15
NEC 77P20, 15
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio

INDICE ALFAB

ETICO 315
NEXT, 294
O
opciones del encadenador, 249
del ensamblador, 241
orden del ltro, 86
P
pasa-altas, 84
pasa-bajas, 84
pasa-banda, 84
PC contador de programa, 17
PDS, 2
plano s, 84
polinomios de Butterworth, 79
de Chebyshev, 92, 94
polos complejos conjugados, 84
del lado izquierdo, 80
primer l obulo lateral, 151
principales diferencias, 12
procesador de se nales digitales, 12
procesamiento de im agenes, 4
de voz, 4
en 1-D, 3
en 2-D, 7
proceso de muestreo, 37
programa de ejemplo, 239
programas en ensamblador, 236
propiedades de los coecientes, 132
puerto JTAG/OnCE del DSP56303,
261
puntos de ruptura, 251
R
radix, 250
realizaci on de los ltros RIF, 164
del ltro RII, 128
rechazo de banda, 84
Registro de compensaci on (oset),
19
OMR, 22
Registros de direcciones, 19
modicadores, 19
regla del trapecio, 122
relaci on no lineal, 123
REPEAT, 296
RESET, 250, 296
respuesta al impulso (truncada), 151
al impulso nita, 149
en fase lineal, 156
innita al impulso (RII), 119
RIF por series de Fourier, 151
S
se nal acotada, 49
de energa, 50
de potencia, 50
real, 48
secci on de segundo orden, 134
secciones bi-cuad, 132
bi-cuadr aticas, 131
secuencia, 37
compleja, 46
escal on, 45
exponencial, 46
exponencial compleja, 47
exponencial real, 47
muestra unitaria, 45
sinusoidal, 47
sensores, 2
se nal, 2
anal ogica, 2
electrica, 2
en tiempo discreto, 37
smbolos de control, 246
simulador archivo de estado, 280
barra de herramientas, 291
base numerica, 286
depuraci on en C, 288
GUI56000, 36
GUI56300, 268
mapa de memoria, 283
modicar memoria, 301
mostrar memoria, 302
mostrar registros, 304
puntos de ruptura, 299
sintaxis de un mando, 274
uso de expresiones, 300
Ventana de Observaci on, 307
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio
316

INDICE ALFAB

ETICO
sistemas auto-adaptables, 4
STEP, 250, 292
Stop, 250, 292
suma de convoluci on, 12
Suma de Poisson, 40
T
teorema de muestreo, 38
tiempo diferido, 3
real, 3
TMS 32010, 15
transceptor RS-232, 261
transductores, 2
transformaci on bilineal, 123
pasa-bajaspasa-banda, 84
transformaciones anal ogico-anal ogi-
co, 84
de frecuencia, 84
digital-a-digital, 126
transformada Z, 55
de Fourier Discreta, 12
de Laplace, 55
traslape espectral, 38
tri angulo de estabilidad, 133
V
variable de frecuencia normaliza-
da, 152
vectores de interrupci on, 22
ventana Bartlett, 161
de datos, 172, 250
de desensamblado, 172
de desensamblado (unassembly),
250
de Hamming, 159
de Hann, 159
de mandos, 172, 250
de registros, 171
de registros, 250
Kaiser, 160
rectangular, 150
ventanas del simulador, 269
W
warping, 123
G. Miramontes, ISBN 968-5923-15-9 Pr acticas de Laboratorio

You might also like