You are on page 1of 38

FILTROS DIGITALES

FILTRO DIGITAL: Proceso computacional que genera una secuencia discreta a partir de otra, segn una regla
preestablecida.
CLASIFICACIN
o En funcin de la forma del mdulo de la respuesta en frecuencias
o En funcin del procedimiento de realizacin
o En funcin de la longitud de la respuesta impulsional
o En funcin de la caracterstica de fase.
ANLISIS
Proceso por el cual dado un filtro digital Respuesta en Frecuencias

SINTESIS O DISEO DE FILTROS DIGITALES
En el diseo de filtros selectivos en frecuencia. Las caractersticas deseadas del filtro se especifican en el dominio de
la frecuencia en funcin de la respuesta del filtro en magnitud y fase. El proceso del diseo del filtro consiste bien en:
a) La seleccin de los coeficientes de la ecuacin en diferencias,
b) La determinacin de la respuesta impulsional h(n).
de forma que se cumpla algn criterio sobre las caractersticas en el dominio del tiempo o de la frecuencia.
ETAPAS DEL DISEO
o Especificacin de las propiedades.
o Aproximacin
o Realizacin
En general, un filtro digital es un sistema DLI realizado utilizando aritmtica de precisin finita.
APROXIMACIN AL DISEO DE FILTROS ANALGICOS
La forma clsica de disear un filtro discreto IIR consiste en transformar un filtro analgico en uno digital que cumpla
las especificaciones prescritas, por lo que haremos un repaso general sobre el diseo de filtroa anlgicos.
Se trata de determinar la H(s) de un sistema LIT cuya correspondiente respuesta frecuencial caiga dentro del margen
de tolerancias especificado. Esto constituye un problema de aproximacin funcional, por lo que veremos a
continuacin distintos tipos de aproximacin:
Aproxi maci n Butteworth
Lo ms simple sera considerar: |H(jS)|
2
= k/P(S
2
)
La aproximacin de Butterworth consiste en :
siendo N en orden del filtro, Sc la frecuencia de corte del filtro, (que representa una atenuacin de 3dB).
Se define el filtro Butterworth normalizado como:

Caractersticas:
* Esta aproximacin es la que presenta una respuesta mas plana en S=0. ( Para un filtro de orden N, las 2N-1
primeras derivadas de |H(jS)|son nulas en S =0.
* Para altas frecuencias presenta una pendiente asinttica de -20N dB/dcada.
* En general, la ganancia es montona decreciente con S.
Aproxi maci n de Chebyshev
Presenta las siguientes caractersticas:
* Gananci a en paso banda mas bal anceada que l a Butterworth.
* La gananci a en paso banda osci l a con ri zado * constante.
* La gananci a en rechazo de banda decrece montonamente y es si mi l ar a l a Butterworth.
* La aproximacin es:
: Controla la amplitud del rizado en paso banda.
k: Controla el nivel de ganancia.
TN(S): Polinomio de Chebyshev de 10 clase y orden N definido por:
TN(S) = cos( N cos
-1
S ) , |S|<1 TN(S) = cosh( N cosh
-1
S ) , |S|>=1

Propi edades de l os pol i nomi os de Chebyshev:
1) TN(0) =(-1)
N/2
si N es par, 0 si N es impar
2) TN(1) = 1 N
3) T N(-1) = 1 si N es par, -1 si N es impar
4) TN (S) oscila con rizado constante entre +1 y -1 para |S|<1
5) Para |S|1, TN(S) es montona creciente, tendiendo a infinito como 2
N-1
S
N


A continuacin se muestra una representacin grfica de los polinomios de Chebyshev de distintos rdenes.

A partir de la frecuencia de corte normalizada (S=1),[Hn(jS)]
2
pasa a ser montona decreciente.

FORMA GENERAL DE [Hn(j S)]
2
EN LA APROXIMACION CHEBYSHEV PARA
a) N par (N=4) b) N i mpar (N=5)
* En pasabanda oscila entre k (mximo) y k/(1+
2
) (mnimo)
* Se denomina RIZADO en db (*) a la relacin de valores mximos y mnimos de [Hn(jS)
2
] en pasabanda:
* K se escoge para ajustar la ganancia en c.c., as para ganancia unitaria en c.c, K debe ser:

* A altas frecuencias, la ganancia en dB tiene asintticamente a:

Aproxi maci n El pti ca
* La aproximacin Chebyshev presenta mejores caractersticas que la Butterworth en el paso banda. A altas
frecuencias, en el rechazo de banda, ambas presntan un buen comportamiento, pero sus caractersitcas se teterioran
progresivamente al decrecer ls frecuancia.
* La aproximacin elptica es la que presenta un mejor comportamiento en este ltimo sentido, al poseer una banda
de trancisin mas estrecha, comparativamente para un orden dado del filtro.
* La aproximacin elptica presenta rizado constante en el paso banda y rechazo de banda.

Transformaci ones en Frecuenci a

* Hemos considerado las tres aproximaciones ms frecuentes de filtros analgicos paso bajo. A partir de estas
aproximaciones pueden obtenerse otros tipos de filtros analgicos a travs de una transformacin de la variable
frecuencial.
* Las tres transformaciones que permiten a partir de un filtro prototipo paso bajo normalizado, obtener filtros paso
alto, paso banda y rechazo de banda se ilustra en la siguiente figura:
Transformaci n paso baj o a paso al to

* Si el Filtro es Butterworth o Chebyshev, oh es la frecuencia de corte del filtro paso alto (que le corresponder oh
/ oh =1 rad/seg en el paso bajo normalizado).
* Si el Filtro es elptico
Transformaci n paso bajo a paso banda
siendo ob y B constantes a determinar de forma que se cumplan las especificaciones del filtro paso banda..
s = j 1 sii p = j1
B=( 2- 1) ob = ( 1 2)
1/2

Si el filtro es Butterworth o Chebyshev, 2 y 1 son las frecuencias de corte del filtro paso banda, B es el
ancho de banda del filtro y ob es la media geomtrica de las frecuencias de corte.
Si el filtro es elptico hay que seleccionar dos ob y dos B de forma que la transformacin genere el paso bajo
normalizado.
DISEO DE FILTROS DIGITALES IIR
Metodol og a: Dado un filtro analgico, generar un filtro digital con caractersticas similares.
o Aprovechar las ventajas y la simplicidad del diseo analgico
o Simular con filtros digitales las caractersticas de los filtros analgicos
Condi ci ones:
1) Que se conserven las propiedades esenciales de la respuesta en frecuencia del Filtro Analgico en
la correspondiente al Filtro Digital. (es decir, que se mapee el eje imaginario del plano S en el crculo
unidad del plano Z)
2) Que se garanticen los requisitos de Estabilidad

MTODO DE LA RESPUESTA IMPULSIONAL INVARIANTE
Cri teri o: Encontrar un filtro digital cuya respuesta Impulsional sean muestras equiespaciadas de la respuesta
Impulsional del filtro analgico.
h(n)=ha(t)t=nT
Las respuestas en frecuencias del filtro digital estarn relacionadas con la respuesta en frecuencia del filtro
analgico por:
Es decir, la respuesta en frecuencias del filtro digital consiste en la suma de infinitos tJrminos de respuestas
analgicas frecuenciales escaladas y desplazadas.

A partir del Teorema del muestreo sabemos que:
si Ha(j )= o para $ B/T
entonces: H(e
jw
) = 1/T Ha(j ) para # B/T
La siguiente expresin constituye una generalizacin de la anterior:
Correspondenci a entre pol os
Sea un polo en s = + j , que se corresponder con:
Pz=e
sT
= e
FT
e
jST
= De
jw
, siendo D = e
FT
w= ST
Para F<0 Y D=|z|<1 , F=0 Y D=1 , F0 Y D1 por lo que se preserva l a estabi l i dad del fi l tro.

* Observamos que si reemplazamos s por s+jSs, siendo ( Ss=2B/T), el val or de z no cambi a.
* Cada franja horizontal de ancho Ss en el plano S se mapea en la totalidad del plano Z. Esta ambigedad es otra
manifestacin del fenmeno aliasing, encontrado al muestrear seales analgicas.
T debe escogerse suficientemente pequeo, de forma que todos los polos del filtro analgico, caigan dentro de
la primera franja.
La tcnica de la repuesta Impulsional invariante puede distorsionar la forma de la respuesta frecuencial por el
"aliasing", aun cuando todos los polos del filtro analgico estn en la primera franja.
Ajuste Di recto de l as Respuestas Impul si onal es:
Objeti vo : Computar H(z) directamente a partir de Ha(s).
Expandamos Ha(s) en fracciones simples
Esta representacin se ilustra en la figura:
Descomposicin paralela de un filtro analgico de orden M en M filtros simples de polo
nico.

Sea la respuesta Impulsional del filtro i-simo:
hai(t) = Aie
pit
si t0, 0 si t<0; Muestreando:
de donde:
En el procedimiento de diseo de la invarianza de la respuesta Impulsional, la relacin entre la frecuencia
discreta y continua es lineal, consiguientemente excepto por el aliasing la forma de la respuesta en frecuencia
se mantiene. Esto contrasta con el siguiente procedimiento que est basado en una transformacin algebraica.
Mtodo basado en l a sol uci n numri ca de l a Ecuaci n Di ferenci al .
Cri teri o: Obtener el filtro digital aproximando las derivadas de la ecuacin diferencial correspondiente a un filtro
analgico, mediante diferencias finitas.
Sea: ' ck d
k
ya(t)/dt
k
= ' dk d
k
xa(t)/dt
k

Consideremos la aproximacin:
d

ya(t)/dt ---- L
(1)
[y(n)] = [y(n+1)-y(n)]/T
d
k
ya(t)/dt
k
---- L
(k)
[y(n)] = L
(1)
[L
(k-1)
[y(n)] ]
Luego:
Comparando ambas funciones de transferencia, podemos concluir que:

Es decir, el proceso de aproximacin de derivadas por diferencias
equivale a realizar un mapeo del plano s al plano Z segn la transformacin:
s=(1-z
-1
)/T
Anl i si s del mapeo -- Z:
Se ha indicado que el eje imaginario jS del plano S debe mapearse en el crculo unidad del plano Z y que, para que
el filtro digital diseado a partir de uno analgico sea estable, los polos situados en el semiplano izquierdo de S deben
caer dentro del crculo unidad en el Z. Analicemos este caso, expresando z como funcin de s:
Sustituyendo s=j , resulta:
y expresando el cociente en forma polar:

Luego, el mapeo de polos es "semiplano izquierdo de s al crculo anterior en z". Observar que aunque el eje jS
no se mapea en el crculo unidad, los polos caen dentro de ste y por tanto el filtro digital resulta estable.
Hay una nocin intuitiva segn la cual, la simulacin discreta del operador derivada mediante diferencias
finitas es mejor cuanto mas pequea es la distancia entre muestras (periodo de muestreo). Esta idea resulta
consistente de acuerdo con los resultados obtenidos. Si T es suficientemente pequeo en L
(1)
[y(n)], la
respuesta en frecuencias del filtro digital se concentrar< en la vecindad de z=1, es decir donde ambos crculos
son tangentes, por lo que el filtro digital ser< bastante aproximado al analgico.
Una aproximacin alternativa consiste en reemplazar las derivadas por una aproximacin en diferencias hacia
adelante:

L
(1)
[y(n)] = [y(n+1)-y(n)]/T

la cual presenta la desventaja de que puede dar lugar a filtros digitales inestables.

De todos modos, los mtodos hasta ahora comentados suelen dar lugar a resultados insatisfactorios si el filtro
que se disea no es paso bajo.
DISEO DE FILTROS DIGITALES FIR
Aunque los filtros IIR presentan caractersticas atractivas, tienen algunos inconvenientes como por ejemplo el no
poder aprovechar las ventajas de la FFT en la implementacin, ya que para esto es necesario un nmero de puntos
finito. Otra desventaja es que los IIR alcanzan una magnfica respuesta en amplitud a expensas de un comportamiento
no lineal en fase.
Algunas ventajas de los filtros FIR son:
* Facilidad de diseo para filtros de fase lineal
* Realizacin eficiente en forma tanto recursiva como no recursiva
* Factible implementacin utilizando la FFT
* Los filtros FIR no recursivos, son siempre estables.
* El ruido de redondeo puede hacerse fcilmente pequeo con realizaciones no recursivas.
Algunas desventajas son:
Se requiere un nmero de puntos N alto para aproximar filtros de transicin brusca.
El retardo de fase puede no ser entero.

Fi l tros FIR si mtri cos y anti si mtri cos

Un filtro FIR de longitud M se describe por la ecuacin en diferencias:
bien por la convolucin:
a partir de ambas expresiones, se deduce que: bk=h(k), k=0,1,2,...,M-1
El filtro tambin se puede caracterizar por su funcin de transferencia:
que es un polinomio de grado M-1 en la variable z
-1.


Un Filtro FIR tiene fase lineal si su respuesta impulsional satisface la condicin:
Teniendo en cuenta estas condiciones de simetra y antisimetra:

Ahora, si sustituimos z
-1
por z en la expresin de H(z) y multiplicamos ambos lados de la ecuacin resultante por z
-(M-1)
,
obtenemos:

Las caractersticas de respuesta en frecuencia de filtros FIR de fase lineal se obtienen evaluando H(z) en el
crculo unidad.
Cuando h(n)=h(M- 1-n), H(w) se puede expresar como:

donde Hr( w) es una funcin real de w y se puede expresar como:
La caracterstica de fase del filtro para M impar y par es:

Cuando h(n)=- h(M-1-n) , la respuesta impulsional es antisimtrica.
Para M impar es h((M-1)/2)=0.
En este caso:
donde:


La caracterstica de fase del filtro para M par y M impar es:

El problema de diseo de filtros FIR es simplemente el de determinar M coeficientes h(n), n=0,1,...,M-1, a
partir de una especificacin de la respuesta en frecuencias deseada Hd(w) del filtro FIR.
A continuacin veremos mtodos de diseo basados en la especificacin de Hd(w).
DISEO DE FILTROS FIR DE FASE LINEAL USANDO VENTANAS
Especificacin de Hd(w) y determinacin (mediante la Transformada de Fourier) de hd(n):
En general, hd(n) es infinita, por lo que para producir un filtro FIR de longitud M, debe ser truncada en un
punto n=M-1. Lo que equivale a multiplicar por una ventana rectangular w(n):
La respuesta impulsional del filtro FIR ser:
Consideremos el efecto de la funcin ventana en la respuesta en frecuencias deseada Hd(w), y recordemos
que multiplicar por una funcin ventana equivale a una convolucin en frecuencias de los espectros, esto es:
La transformada de Fourier de la ventana rectangular es:
La funcin ventana tiene una respuesta en magnitud:
Y una fase lineal a tramos:
La convolucin de Hd(w) con W(w) tiene el efecto de suavizar Hd(w)
(a) Proceso de convol uci n i mpl i cado por l a truncaci n de l a respuesta i mpul si onal deseada
(b) Aproxi maci n t pi ca resul tado del ventaneo de l a respuesta i mpul si oal deseada
En la eleccin de la ventana rectangular, hay que llegar a una solucin de compromiso entre dos requisitos
antagnicos como son:
Elegir M de forma que W(e
jw
) sea lo mas estrecho posible.
Elegir M de forma que la duracin de w(n) se lo mas corta posible.
Otra solucin alternativa consiste en usar ventanas menos abruptas en sus caractersticas en el dominio
temporal.
Todas estas funciones ventanas tienen lbulos laterales mas bajos comparados con la ventana rectangular, sin
embrago para un mismo valor de M el ancho del lbulo principal es tambin mas amplio, por lo que la regin
de transicin del filtro ser mas amplia. Para reducir este ancho, podemos simplemente incrementar la
longitud de la ventana. La siguiente tabla resume estas caractersticas para los distintos tipos de ventanas:

Ti po de Ventana Ancho de Transi ci n del
l bul o pri nci pal
Pi co de l bul os
l ateral es (dB)
Rectangular 4 /M -13
Bartlett 8 /M -27
Hanning 8 /M -32
Hamming 8 /M -43
Blackman 12 /M -58

La tcnica de ventana se describe mejor con un ejemplo especfico. Supongamos que queremos disear un filtro FIR
de fase lineal paso bajo y simtrico con una respuesta en frecuencias deseada:
El retardo (M-1)/2 es para forzar la longitud M. La respuesta impulsional es:
Observar que hd(n) es no causal y de duracin infinita.
Si se selecciona M impar el valor de h(n) en n=(M-1)/2 es:
Ventanas usadas para el di seo de fi l tros FIR




Di seo de Fi l tros FIR de fase l i neal por el mtodo de Muestreo en Frecuenci a
Especificamos la respuesta en frecuencias deseada Hd(w) en un conjunto de frecuencias equiespaciadas:
y calculamos la respuesta impulsional h(n) del filtro FIR a partir de estas especificaciones. Para reducir los lbulos
laterales deseable optimizar la especificacin de frecuencia en la banda de transicin del filtro.
Ahora, explotaremos una propiedad bsica de simetra de la funcin de respuesta en frecuencia muestreada para
simplificar los clculos. Sea la respuesta en frecuencia deseada del filtro FIR:

Supongamos que especificamos la respuesta en frecuencias del filtro en las frecuencias anteriores. Entonces,
obtenemos:
Expresando h(n) en funcin de , obtenemos:
Esta expresin nos permite calcular los valores de h(n) a partir de la especificacin de las muestras en frecuencia.
Observar que cuando , ambas expresiones se reducen a la DFT e IDFT
respectivamente. Al ser h(n) real:
Esta condicin de simetra, junto con las condiciones de simetra para h(n) ayudan a reducir ala mitad las
especificaciones en frecuencias. As, las ecuaciones lineales para determinar h(n) a partir de se
simplifican considerablemente.


MUESTREO DE SEALES
Teorema de Muestreo
En la Naturaleza nos encontramos con seales continuas en el tiempo, frente a las seales discretas, nico tipo
de seales manejables por los sistemas digitales.
Seales Continuas (en el tiempo): x(t)
Seales Discretas (en el tiempo): x[n]
Bajo ciertas condiciones una seal continua puede ser completamente representada y puede ser
perfectamente recuperada a partir de valores instantneos consistentes en muestras equiespaciadas de dicha seal.
En lo que sigue intentaremos descubrir cuales son dichas condiciones, lo que nos llevar a enunciar el
Teorema de Muestreo, base de todo el Procesado Digital de Seal.
Los ordenadores, microprocesadores, DSPs,... son dispositivos digitales que trabajan nicamente con seales
discretas (tambin llamadas secuencias), x[n], definidas slo para n = 0, t 1, t 2, ... y que se forman a partir de una
seal continua de la siguiente manera:
x[n] = x(nTs) con Ts : periodo de muestreo
Fs = 1/Ts : frecuencia de muestreo

-
s

-
s

-
s
La transformacin de una seal continua en su equivalente discreto se realiza en dos pasos: primero se
multiplica la seal por un tren infinito de deltas de Dirac espaciadas Ts segundos; posteriormente, la seal resultante
atraviesa un Conversor Continuo-Discreto. Este proceso y las seales que intervienen se muestran en las siguientes
figuras.
x(t): seal continua original
xs(t): seal muestreada
x[n]: seal discreta
En este instante nos centraremos en determinar bajo que condiciones podemos recuperar de forma perfecta e
inequvoca x(t) a partir de xs(t), pues, a priori, existen infinitas
seales que en los instantes de muestreo pasan por los
valores de xs(t), tal y como muestra la figura 2.
Para ello, vamos a relacionar el espectro de la seal
original y el espectro de la seal muestreada. En la figura 3 se
pueden observar los efectos del muestreo tanto en el dominio
temporal como en el frecuencial. Notar que el muestreo
consiste en el producto de una seal por un tren infinito de
deltas equiespaciadas Ts, lo que se traduce en el dominio
espectral en la convolucin por un tren infinito de deltas equiespaciadas s=2/Ts. Tal y como desarrollaremos
analticamente de forma posterior, la seal muestreada resultante poseer un espectro formado por infinitas rplicas
del espectro original centradas en mltiplos de la frecuencia de muestreo.



n
s p
) nT (t (t) x
C/D
x(t) x
s
(t) x[n] = x
s
(nT
s
)
(a)
x(t)
t
x
s
(t)
t
x[n]
n
(b)
Figura 1. Proceso de Conversin Continuo-Discreto. a) Diagrama de Bloques, b) Seales
que intervienen.
Figura 2. Reconstruccin de x(t) a partir de
x
s
(t)
Figura 3. Efecto del muestreo en el tiempo y en la frecuencia.
x(t)
t t
x
s
(t)
X()

max
-
max

X
s
(
)

max
-
max

s
-
s
x
p
(t)
t T
s
X
p
(
)

s
2
s
-
s
-2
s
1/T
s
TF

-
s

-
s

-
s
De forma analtica, y recordando previamente las expresiones de la Transformada de Fourier y de la
Transformada Inversa de Fourier de seales continuas:
dt x(t)e ) X(
t j -



d )e X(
2
1
x(t)
t j

podemos, segn el diagrama de bloques de la figura 1.a, escribir


(t) x x(t) (t) x
p s

y por la propiedad de
modulacin podemos obtener la transformada de Fourier de la seal muestreada:
) ( X ) X(
2
1
) ( X
p s


Dado que el espectro del tren de impulsos es:
s
s
- k
s
s - n
s p
T
2
con ) k - (
T
2
) nT - (t TF ) ( X

'


el espectro de la seal muestreada queda:




- k
s
s - k
s
s
s
) k - X(
T
1
) k - (
T
2
) X(
2
1
) ( X

A la vista de esta expresin podemos confirmar lo que ya habamos observado de forma grfica, es decir, que
el espectro de la seal muestreada, Xs(), consiste en rplicas del espectro original, X(), centradas en mltiplos de
s y escaladas por un factor de 1/Ts.
Retomando nuestra pregunta sobre las condiciones que se deben cumplir para poder recuperar la seal
original x(t) a partir de la seal muestreada xs(t), y a la vista de la figura 3 y de la expresin de Xs(), podemos decir
que si muestreamos una seal a una frecuencia de muestreo por encima del doble de su mxima frecuencia podremos
recuperar la seal original mediante un filtro paso bajo ideal con ganancia Ts y frecuencia de corte
max s c max
- < < (ver figura 4).
Nos encontramos, pues, en condiciones de enunciar el teorema de muestreo.
Teorema de Muestreo:
Sea x(t) una seal de banda limitada, es decir,
max
0 ) X( , entonces x(t) queda
totalmente representada por sus muestras equiespaciadas Ts, siendo
max
s
s
2
T
2


la frecuencia de
muestreo
A la frecuencia mnima de muestreo
max s
2 se le denomina Frecuencia de Nyquist. Muestrear a una
frecuencia inferior a la de Nyquist provoca solapamiento espectral (Alliassing, figura 4.c) y la imposibilidad de
recuperar la seal original.
Transformada de Fouri er de una Secuenci a
Llegados a este punto, resta obtener la relacin entre el espectro de la seal continua x(t) y el espectro de la
seal discreta x[n]. Previamente conviene presentar la definicin de la Transformada de Fourier de una secuencia:
[ ]


- n
n j -
e n x ) X(
Una caracterstica importante es que X() es peridica de periodo 2, ya que:
Figura 4. Recuperacin de la seal original a partir de la seal muestreada.
X
s
(
)

max
-
max

s

-
s
(a)
s
> 2
max
X
s
(
)

max
-
max

s

-
s
(b)
s
= 2
max
X
s
(
)

max
-
max

s

-
s
(c)
c
< 2
max
Aliassin
g
[ ] [ ] ) X( e e n x e n x ) 2 X(
- n
n 2 j - n j -
- n
n ) 2 j( -
+


Previamente, habamos llegado a una expresin que nos relacionaba el espectro de la seal continua y de la
seal muestreada:
1) (ec. ) k - X(
T
1
) ( X
- k
s
s
S



Podemos llegar a otra expresin equivalente de la siguiente manera:




- n
s s
- n
s p s
) nT - (t ) x(nT ) nT - (t x(t). (t) x x(t) (t) x
y aplicando la Transformada de Fourier,
{ } { }
2) (ec. e ) x(nT
) nT - (t )TF x(nT ) nT - (t ) x(nT TF ) nT - (t ) x(nT TF ) ( X
s
nT j -
- n
s
s s s s
- n
s s s

'

n n
Ya tenemos dos expresiones de Xs() (ec.1 y ec. 2), por tanto:
s
nT j -
- n
s
- k
s
s
S
e ) x(nT ) k - X(
T
1
) ( X






Se puede observar el gran parecido existente entre esta expresin y la de la Transformada Discreta de Fourier:
[ ]

- n
n j -
s
nT j -
- n
s s
e n x ) X(
e ) x(nT ) ( X

de hecho, estas dos expresiones son idnticas si hacemos =Ts, puesto que ya vimos que x[n]=x(nTs).
En definitiva, ya disponemos de la relacin existente entre la Transformada de Fourier de la secuencia x[n], la
Transformada de Fourier de la seal muestreada xs(t) y la Transformada de Fourier de la seal original x(t):

,
_


k s s
T
s
T
2
k
T
X
Ts
1
) ( X ) X(
s

En resumen, bajo las condiciones del Teorema de Muestreo, el espectro de la secuencia x[n] es igual al
espectro de la seal x(t) escalado en amplitud por 1/Ts y escalado en frecuencia segn =Ts y apareciendo rplicas
espectrales en mltiplos de 2, tal como muestra la figura 5.
Transformada de Fouri er Di screta (DFT)
(a) (b) (c)
Figura 5. Espectros de (a) la seal continua, (b) la seal muestreada y (c) la secuencia
discreta.
X()

max
-
max

X()
T
smax
-T
smax

2 -2
1/T
s
X
s
(
)

max
-
max

s
-
s
1/T
s
Hasta el momento hemos trabajado con seales y secuencias de duracin infinita, pero en la prctica, debido a
limitaciones de memoria, los sistemas digitales solo pueden trabajar con secuencias de longitud finita. Una secuencia
tpica de N muestras es:
x[0], x[1], x[2], ...., x[N-1]
por lo tanto, la expresin de la Transformada de Fourier de un secuencia ver truncado su sumatorio infinito:
[ ]


1
0 n
n j -
e n x ) X(
N
An as, X() es una funcin continua en , por lo que no se puede evaluar en un sistema digital. Se recurre a
calcular nicamente N valores equiespaciados de X():
[ ] [ ] 1 - N 0,1,2,.... k con k
N
2
siendo e n x k X ) X(
k
1
0 n
kn
N
2
j -
k

N
Esta es la expresin de la Transformada de Fourier Discreta (DFT). Como se puede observar, la DFT consiste
en calcular N nmeros complejos a partir de los N valores de la seal discreta. Es por tanto posible calcularlos y
almacenarlos en sistemas digitales.
La FFT (Fast Fourier Transform o Transformada Rpida de Fourier) es un algoritmo rpido de clculo de la
DFT, que alcanza su mayor eficiencia, desde el punto de vista de la velocidad de cmputo, cuando el nmero de
puntos en los que evaluamos el espectro es potencia de 2.
MC68HC912B32
El MC68HC912B32 es un microcontrolador de 16-bits (MCUs) compuesto de un chip periferico estandar. El bus externo
multiplexado puede tambien operar en 8 bits, en el modo reducido para interfazarlo con memorias simples de 8 bits en
sistemas de bajo costo.
Features MC68HC912B32
CPU12 X
Multiplexed bus X
32-Kbyte FLASH electrically
erasable, programmable X
read-only memory (EEPROM)
32-Kbyte read-only memory
(ROM)
768-byte EEPROM X
1-Kbyte random-access memory
X
(RAM)
Analog-to-digital (A/D) converter X
Standard timer module (TIM) X
Enhanced capture timer (ECT)
Pulse-width modulator (PWM) X
Asynchronous serial
communications interface X
(SCII)
Synchronous serial peripheral
X
interface (SPI)
J1850 byte data link
X
communication (BDLC)
Controller area network module
(CAN)
Computer operating properly
X
(COP) watchdog timer
Slow mode clock divider X
80-pin quad flat pack (QFP) X
Features include:
16-bit CPU12:
Upwardly compatible with the M68HC11 instruction set
Interrupt stacking and programmers model identical to the M68HC11
20-bit arithmetic logic unit (ALU)
Instruction queue
Enhanced indexed addressing
Fuzzy logic instructions
Multiplexed bus:
Single chip or expanded
16-bit by 16-bit wide or 16-bit by 8-bit narrow modes
Memory:
32-Kbyte FLASH electrically erasable, programmable read-only memory (EEPROM) with 2-
Kbyte erase-protected boot block MC68HC912B32 and MC68HC912BC32 only
32-Kbyte ROM MC68HC12BE32 and MC68HC12BC32 only
768-byte EEPROM
1-Kbyte random-access memory (RAM) with single-cycle access for aligned or misaligned
read/write
8-channel, 10-bit analog-to-digital converter (ATD)
8-channel standard timer module (TIM) MC68HC912B32 and MC68HC(9)12BC32 only:
Each channel fully configurable as either input capture or output compare
Simple pulse-width modulator (PWM) mode
Modulus reset of timer counter
Enhanced capture timer (ECT) MC68HC12BE32 only:
16-bit main counter with 7-bit prescaler
Eight programmable input capture or output compare channels; four of the eight input
captures with buffer
Input capture filters and buffers, three successive captures on four channels, or two captures
on four channels with a capture/compare selectable on the remaining four
Four 8-bit or two 16-bit pulse accumulators
16-bit modulus down-counter with 4-bit prescaler
Four user-selectable delay counters for signal filtering
16-bit pulse accumulator:
External event counting
Gated time accumulation
Pulse-width modulator (PWM):
8-bit, 4-channel or 16-bit, 2-channel
Separate control for each pulse width and duty cycle
Programmable center-aligned or left-aligned outputs
Serial interfaces:
Asynchronous serial communications interface (SCI)
Synchronous serial peripheral interface (SPI)
J1850 byte data link communication (BDLC), MC68HC912B32 and MC68HC12BE32 only
Controller area network (CAN), MC68HC(9)12BC32 only
Computer operating properly (COP) watchdog timer, clock monitor, and periodic interrupt
timer
Slow-mode clock divider
80-pin quad flat pack (QFP)
Up to 63 general-purpose input/output (I/O) lines
Single-wire background debug mode (BDM)
On-chip hardware breakpoints
Port A
Port A pins are used for address and data in expanded modes. The port data register is not in the address map during
expanded and peripheral mode operation. When it is in the map, port A can be read or written at anytime.
The port A data direction register (DDRA) determines whether each port A pin is an input or output. DDRA is not in the
address map during expanded and peripheral mode operation. Setting a bit in DDRA makes the corresponding bit in
port A an output; clearing a bit in DDRA makes the corresponding bit in port A an input. The default reset state of
DDRA is all 0s.
When the PUPA bit in the PUCR register is set, all port A input pins are pulled up internally by an active pullup device.
This bit has no effect if the port is being used in expanded modes as the pullups are inactive.
Setting the RDPA bit in the reduced drive register (RDRIV) causes all port A outputs to have reduced drive levels.
RDRIV can be written once after reset and is not in the address map in peripheral mode.
Port B
Port B pins are used for address and data in expanded modes. The port data register is not in the address map during
expanded and peripheral mode operation. When it is in the map, port B can be read or written at anytime.
The port B data direction register (DDRB) determines whether each port B pin is an input or output. DDRB is not in the
address map during expanded and peripheral mode operation. Setting a bit in DDRB makes the corresponding bit in
port B an output; clearing a bit in DDRB makes the corresponding bit in port B an input. The default reset state of
DDRB is all 0s.
When the PUPB bit in the PUCR register is set, all port B input pins are pulled up internally by an active pullup device.
This bit has no effect if the port is being used in expanded modes because the pullups are inactive.
Setting the RDPB bit in register RDRIV causes all port B outputs to have reduced drive levels. RDRIV can be written
once after reset. RDRIV is not in the address map in peripheral mode.
Port E
Port E pins operate differently from port A and B pins. Port E pins are used for bus control signals and interrupt
service request signals. When a pin is not used for one of these specific functions, it can be used as general-purpose
I/O. However, two of the pins, PE1 and PE0, can be used only for input, and the states of these pins can be read in
the port data register even when they are used for IRQ and XIRQ.
The PEAR register determines pin function, and the data direction register (DDRE) determines whether each pin is
an input or output when it is used for general-purpose I/O. PEAR settings override DDRE settings. Because PE1 and
PE0 are input-only pins, only DDRE7DDRE2 have effect. Setting a bit in the DDRE register makes the
corresponding bit in port E an output; clearing a bit in the DDRE register makes the corresponding bit in port E an
input. The default reset state of DDRE is all 0s.
When the PUPE bit in the PUCR register is set, PE7, PE3, PE2, and PE0 are pulled up. PE7, PE3, PE2, and PE0
are active pulled-up devices, while PE1 is always pulled up by means of an internal resistor.
Port E and DDRE are not in the map in peripheral mode or in expanded modes when the EME bit in the MODE
register is set.
Setting the RDPE bit in register RDRIV causes all port E outputs to have reduced drive level. RDRIV can be written
once after reset. RDRIV is not in the address map in peripheral mode.
Port DLC
The MC68HC912B32 and MC68HC12BE32 contain the port DLC.
Byte data link communications (BDLC) pins can be configured as general-purpose I/O port DLC. When BDLC functions
are not enabled, the port has seven general-purpose I/O pins, PDLC6PDLC0. The port DLC control register
(DLCSCR) controls port DLC function. The BDLC function, enabled with the BDLCEN bit, takes precedence over other
port functions.
The port DLC data direction register (DDRDLC) determines whether each port DLC pin is an input or output. Setting a
bit in DDRDLC makes the corresponding pin in port DLC an output; clearing a bit makes the corresponding pin an
input. After reset, port DLC pins are configured as inputs.
When the PUPDLC bit in the DLCSCR register is set, all port DLC input pins are pulled up internally by an active pullup
device.
Setting the RDPDLC bit in register DLCSCR causes all port DLC outputs to have reduced drive level. Levels are at
normal drive capability after reset. RDPDLC can be written anytime after reset.
Port CAN
The MC68HC(9)12BC32 contains the port CAN.
The port CAN has five general-purpose I/O pins, PCAN[6:2]. The msCAN12 receive pin, RxCAN, and transmit pin,
TxCAN, cannot be configured as general-purpose I/O on port CAN.
The msCAN data direction register (DDRCAN) determines whether each port CAN pin PCAN[6:2] is an input or output.
Setting a bit in DDRCAN makes the corresponding pin in port CAN an output; clearing a bit makes the corresponding
pin an input. After reset, port CAN pins PCAN[6:2] are configured as inputs.
When a read to the port CAN is performed, the value read from the most significant bit (MSB) depends on the MSB,
PCAN7, of the port CAN data register, PORTCAN, and the MSB of DDRCAN: it is 0 if DDRCAN7 = 0 and is PCAN7 if
DDRCAN7 = 1.
When the PEUCAN bit in the port CAN control register (PCTLCAN) is set, port CAN input pins PCAN[6:2] are pulled up
internally by an active pullup device.
Setting the RDRCAN bit in register PCTLCAN causes the port CAN outputs PCAN[6:2} to have reduced drive level.
Levels are at normal drive capability after reset. RDRCAN can be written anytime after reset.
Port AD
Port AD provides input to the analog-to-digital subsystem and general-purpose input. When analog-to-digital functions
are not enabled, the port has eight general-purpose input pins, PAD7PAD0. The ADPU bit in the ATD control register
2 (ATDCTL2) enables the A/D function.
Port AD pins are inputs; no data direction register is associated with this port. The port has no resistive input loads and
no reduced drive controls.
Port P
The four pulse-width modulation channel outputs share general-purpose port P pins. The PWM function is enabled with
the PWM enable register (PWEN). Enabling PWM pins takes precedence over the general-purpose port. When pulse-
width modulation is not in use, the port pins may be used for general-purpose I/O.
The port P data direction register (DDRP) determines pin direction of port P when used for general-purpose I/O. When
DDRP bits are set, the corresponding pin is configured for output. On reset, the DDRP bits are cleared and the
corresponding pin is configured for input.
When the PUPP bit in the PWM control register (PWCTL) register is set, all input pins are pulled up internally by an
active pullup device. Pullups are disabled after reset.
Setting the RDPP bit in the PWCTL register configures all port P outputs to have reduced drive levels. Levels are at
normal drive capability after reset. The PWCTL register can be read or written anytime after reset.
Port T
This port provides eight general-purpose I/O pins when not enabled for input capture and output compare in the timer
and pulse accumulator subsystem. The TEN bit in the timer system control register (TSCR) enables the timer function.
The pulse accumulator subsystem is enabled with the PAEN bit in the pulse accumulator control register (PACTL).
The port T data direction register (DDRT) determines pin direction of port T when used for general-purpose I/O. When
DDRT bits are set, the corresponding pin is configured for output. On reset the DDRT bits are cleared and the
corresponding pin is configured for input.
When the PUPT bit in the timer mask register 2 (TMSK2) is set, all input pins are pulled up internally by an active
pullup device. Pullups are disabled after reset.
Setting the RDPT bit in the TMSK2 register configures all port T outputs to have reduced drive levels. Levels are at
normal drive capability after reset. The TMSK2 register can be read or written anytime after reset. For the
MC68HC912B32 and MC68HC(9)12BC32,
Port S
Port S is the 8-bit interface to the standard serial interface consisting of the serial communications interface (SCI) and
serial peripheral interface (SPI) subsystems. Port S pins are available for general-purpose parallel I/O when standard
serial functions are not enabled.
Port S pins serve several functions depending on the various internal control registers. If WOMS bit in the SCI control
register 1 (SC0CR1) is set, the P-channel drivers of the output buffers are disabled for bits 01 (23). If SWOM bit in
the SP0CR1 register is set, the P-channel drivers of the output buffers are disabled for bits 47 (wired-OR mode). The
open drain control affects both the serial and the general-purpose outputs. If the RDPSx bits in the PURDS register are
set, the appropriate port S pin drive capabilities are reduced. If PUPSx bits in the port S pullup, reduced drive register
(PURDS) are set, the appropriate pullup device is connected to each port S pin which is programmed as a general-
purpose input. If the pin is programmed as a general-purpose output, the pullup is disconnected from the pin
regardless of the state of the individual PUPSx bits.
Converti dor Anal gi co a Di gi tal
El convertidor analgico a digital toma una entrada de seal analgica y la convierte a una seal digital . Este es el
mtodo por ejemplo en que los telfonos celulares toman la voz de la persona y la prepara para ser enviada va seal
inalmbrica digital.
Un convertidor analogico a digital realiza un proceso llamado de muestreo y cuantizacin. Empieza por tomar una
lectura de la seal analgica en un cierto tiempo (muestreo). El A/D entonces redondea el dato a el valor mas cercano
representado por el numero de bits usados. Por ejemplo, En el caso del HC12, desde el A/D puede ser establecido
para 8 o 10 bits, Hay 2
8
(256) o 2
10
(1024) posibles valores que pueden ser tomados

Regi stros Importantes
Control de Registro A/D 2
Direccion $0062
El bit 7 de este registro habilita el A/D. El 0 lo regresa a su estado de apagado y el 1 lo enciende. El resto de los bits
no son importantes.


Control de Registro A/D 5
Direccion $0065
El bit 6: cuando el A/d ene l HC12 corre, hace algunas conversiones y los promedia para asegurarse que el resultado
obtenido sea valido. Este bit establece cuantas conversiones har. 0 es para 4 conversiones y el 1 es para ocho. Si se
realiza 8 conversiones el resultado sera mas preciso a su salida.
El bit 5: Si este bit es establecido, en lugar de hacer una simple conversiones, el A/D toma conversiones
continuamente. Este es bueno para algunas aplicaciones, pero tambin consume mucho mas energia.
Los bits 3-0 : Estos bits darn las coordenadas en la cuales se especifica en que puerto y hacia que registro ser
mandado el resultado. Por ejemplo, si el canal 3 es usados, $3 deberia ser colocado en el registro


ATDSTAT
Direccion $0066
El bit 7 estar en alto cuando la conversione est completada. El resto de los bits no son importantes.


ADR0H
Direccin $0070
ADR1H
Direccin $0072
ADR2H
Direccin $0074
ADR3H
Direccin $0076
ADR4H
Direccin $0078
ADR5H
Direccin $007A
ADR6H
Direccin $007C
ADR7H
Direccin $007E
These are the registers where the converted output will be placed.

Pi ns Importantes
PAD0 PAD7
Estos pins tomaran las entradas del analogico, cuando son convertidas, son colocadas en registros ADR0H al ADR7H,
respectivamente

VRH and VRL
Para establecer los valores muestreados del A/D, los valores maximos y minimos que los datos pueden tomar deberan
ser conocidos. VRH (Voltaje de referencia alto) esta dado por el maximo y VRL (Voltaje de referencia bajo) es el
minimo. Por ejemplo, Si el rango de entrada analotica esta desde tierra a +5Volts, VRH deberia estar a 5V y VRL a
Tierra.

Codigo de Ejemplo

PORTB EQU $0001
DDRB EQU $0003

ATDCTL2 EQU $0062
ATDCTL5 EQU $0065
ADR0H EQU $0070
ATDSTAT EQU $0066
SCF EQU %10000000
ADPU EQU %10000000
ADMODE EQU %00000000

ORG $0800
MOVB #$FF,DDRB ;Set B to all out

MOVB #ADPU,ATDCTL2 ;POWER ATD
LDAA #!200 ;WAIT FOR ATD TO STABILIZE
DLYATD DECA
BNE DLYATD

CHECK MOVB #00,ATDCTL5 ;SET ATD TO 4 CONV,1 CONV,1 IN, AN1
RWAIT ldaa ATDSTAT ;CHECK ATD STATUS
anda #SCF
BEQ RWAIT
LDAB ADR0H ;AB GETS CONVERTED #
STAB PORTB
LOOP BRA CHECK
MCUEZ
Mcuez es el programa que usa el HC12 , y definitivamente es muy efectivo ya que se puede editar, compilar y ejecutar
paso a paso los programas realizados. En la figura de abajo, se muestra la pantalla del Mcuez , aqu se tiene control
absoluto del micro ya que se puede ver el CCR trabajando en tiempo real con el micro, se pueden ver el mapa de
memoria, las lineas del programa ejecutandose paso a paso entre muchas cosas mas.
Di agrama del Fi l tro Di gi tal
H0
H1
H2
H3

T
T
T
Filtro Digital Pasabajas de 4 Orden, con una frecuencia de corte establecida en 1Khz. Es decir que el filtro debe de ser
capaz de atenuar aquellas frecuencias que esten arriba de la frecuencia de corte. Y dejar pasar nicamente aquellas
frecuencias que estn por debajo de la frecuencia de corte.
A simple anlisis el objetivo de este filtro es mandar por medio de un generador de funciones una seal al puerto A/D
del micro, digitalizar la informacin y multiplicarla por su respectivo coeficiente el cual ser establecido mediante
matlab. Luego la informacin obtenida del A/D se guarda en un registro y se multiplica por su respectivo coeficiente y
se suma con un dato que es el resultado de la multiplicacin del primer coeficiente con el dato actual del A/D. Esta es
la secuencia que esta siguiendo este filtro y dar por resultado un filtro pasabajas.
OBTENCION DE COEFICIENTES DEL FILTRO DIGITAL PASABAJAS
Wn=[0.0000000000000000000000000000000000000001 0.1]
B=FIR1(3,Wn)
Freqz(B)

Wn =
0.00000000000000 0.10000000000000
B =
Columns 1 through 2
0.04590801059018 0.45676849623192
Columns 3 through 4
0.45676849623192 0.04590801059018
PROGRAMACION DEL FILTRO DIGITAL
ORG $0800 ;
PORTIN EQU $913 ;
PORTA EQU $0000 ;
DDRA EQU $0002 ;
ATDCTL2 EQU $0062 ;
ATDCTL4 EQU $0064 ;
ATDCTL5 EQU $0065 ;
ADR3H EQU $0076 ;
ZCICLO EQU $900 ;
Z0 EQU $901 ;
Z1 EQU $902 ;
Z2 EQU $903 ;
Z3 EQU $904 ;
C0 EQU $905 ;
C1 EQU $907 ;
C2 EQU $909 ;
C3 EQU $911 ;
VOUT EQU $914 ;
ORG $0D00 ;
inicio lds #$BFF ;
clr $0016 ; copctl
MOVB #$0,ZCICLO ;
MOVB #$FF,DDRA ;
MOVB #$0,PORTA ;
MOVB #$0, ADR3H ;
MOVB #$0,Z0 ;
MOVB #$0,Z1 ;
MOVB #$0,Z2 ;
MOVB #$0,Z3 ;
LOOP MOVB #%10000000,ATDCTL2;
MOVB #%01000011,ATDCTL5;
LDAA #$28 ;
DELAY1 DECA ;
BNE DELAY1 ;
LDAA ADR3H ;
STAA PORTIN ;
LDAA Z2 ;
STAA Z3 ;
LDAB #$C ;
MUL ;
STD C3 ;
LDAA Z1 ;
STAA Z2 ;
LDAB #117 ;
MUL ;
STD C2 ;
LDAA Z0 ;
STAA Z1 ;
LDAB #117 ;
MUL ;
STD C1 ;
LDAA PORTIN ;
STAA Z0 ;
LDAB #$C ;
MUL ;
STD C0 ;
LDAA $905 ; TOMANDO NADA MAS 8 BITS DE LOS
LDAB $907 ; TOMANDO NADA MAS 8 BITS DE LOS
ABA ;
STAA VOUT ;
LDAA VOUT ;
LDAB $909 ; TOMANDO NADA MAS 8 BITS DE LOS
ABA ;
STAA VOUT ;
LDAA VOUT ;
LDAB $911 ; TOMANDO NADA MAS 8 BITS DE LOS
ABA ;
STAA VOUT ; COLOCANDO LA SUMATORIA DE LAS
STAA PORTA ;
LDX #$12E ;
DELAY2 DEX ;
BNE DELAY2 ;

JMP LOOP ;
SWI ;
Expl i caci n de l a Programaci n:
Como se puede observer las primeras lineas estan destinadas para definir las variables del sistema, es importante
sealar que son definidas en la memoria RAM y su direccion de inicio se coloca en ORG 800, este origen es la direccin
inicial de la memoria RAM del HC12. La otra parte del programa es guardada o almacenada en la EEPROM por esta
razon su ORG comienza en la direccion $D00, que es la direccion de inicio de la EEPROM.
inicio lds #$BFF ;
clr $0016 ; copctl
Estas 2 lineas son importantes para desactivar el copctl y poder ejecutar sin problemas nuestro programa desde le
EEPROM
MOVB #$0,ZCICLO ;
MOVB #$FF,DDRA ;
MOVB #$0,PORTA ;
MOVB #$0, ADR3H ;
MOVB #$0,Z0 ;
MOVB #$0,Z1 ;
MOVB #$0,Z2 ;
MOVB #$0,Z3 ;
Esta seccin del programa inicializa con 0 todas las variables que se van a utilizar ya que en ocasiones estos registros
pueden tener datos y es necesario que esten vacios. La instruccin MOVB es otra de las novedades del HC12 ya que
mueve un dato hacia un registro en una sola instruccin.
LOOP MOVB #%10000000,ATDCTL2;
MOVB #%01000011,ATDCTL5;
LDAA #$28 ;
DELAY1 DECA ;
BNE DELAY1 ;
LDAA ADR3H ;
STAA PORTIN ;
Aqu empieza el lazo de control, el ATDCTL2 activa el puerto A/D, ya que este puerto siempre esta apagado para ahorrar energia,
cuando se coloca un %10000000 a este registro se pone en encendido al A/D, luego se configura el ATDCTL5 diciendole que va a
hacer 8 conversiones y promediarlas y tambien especificamos que la seal vendr del puerto 3 del A/D y ser colocada en el
ADR3H, que en realidad se trata del registro $0076. Es importante darle Delay o un pequeo tiempo de retardo para estabilizar el
A/D, ya que de otra forma no har las conversiones.

LDAA Z2 ;
STAA Z3 ;
LDAB #$C ;
MUL ;
STD C3 ;
LDAA Z1 ;
STAA Z2 ;
LDAB #117 ;
MUL ;
STD C2 ;
LDAA Z0 ;
STAA Z1 ;
LDAB #117 ;
MUL ;
STD C1 ;
LDAA PORTIN ;
STAA Z0 ;
LDAB #$C ;
MUL ;
En esta parte del programa es muy simple ya que las Z son los registros en donde se estan guardando los estados
anteriores que nos esta dando el A/D. Y por lo tanto solo se estan recolocando y multiplicando por su respectivo
coeficiente.
Tambin es importante sealar que los coeficientes fueron multiplicados por 256, ya que en si los coeficientes
representan un valor en decimales, y por lo tanto se tuvo que hacer eso para poder tener un dato exacto a la salida.
Coeficiente1= C hex
Coeficiente2=117 dec
Coeficiente3=117 dec
Coeficiente4= C hex
Por lo tanto al multiplicar el dato del A/d por el coeficiente se obtiene una cantidad muy grande, que es de 16 Bits,
por lo tanto cada registro de C0 a C3 son registros de 16 bits en donde se encuentra almacenada esta informacin.
LDAA $905 ; TOMANDO NADA MAS 8 BITS DE LOS
LDAB $907 ; TOMANDO NADA MAS 8 BITS DE LOS
ABA ;
STAA VOUT ;
LDAA VOUT ;
LDAB $909 ; TOMANDO NADA MAS 8 BITS DE LOS
ABA ;
STAA VOUT ;
LDAA VOUT ;
LDAB $911 ; TOMANDO NADA MAS 8 BITS DE LOS
ABA ;
STAA VOUT ; COLOCANDO LA SUMATORIA DE LAS
STAA PORTA ;
En esta seccin, como se puede obsevar esta truncando los registros de 16 bits, ya que se esta dividiendo entre 256
los resultados anteriores, y por lo tanto solo se esta tomando los 8 bits mas significativos de los registros C0 al C3.
Pero en esta parte los esta sumando uno por uno y la suma total es mandada hacia el Puerto A del micro.
Al cual a su vez esta conectado hacia un DAC, el cual har convertir la seal digital y una seal analgica, que es la
seal final del filtro.
LDX #$12E ;
DELAY2 DEX ;
BNE DELAY2 ;

JMP LOOP ;
SWI ;
La ultima parte del programa es un retardo, el cual es de vital importancia ya que este retardo es el que esta
estableciendo la frecuencia de corte del filtro.
Se calculo este retardo a partir de la frecuencia nominal del micro, ya que este micro esta trabajando a 8 millones de
ciclos por segundo. Y se obtuvo por resultado que necesitbamos 2 veces $12E. Y se puso 2 veces $12E porque como
es lgico este ciclo de retardo consume 2 ciclos maquina por cada decremento, as que se coloco en el registro
indexado el numero 12E para que as obtuvieramos el doble deseado originalmente.
De esta forma cuando termina el ciclo de retardo pasa hacia un salto incondicional regresandolo a la etiqueta loop
volviendo con esto a reiniciar el lazo.
Uno de los mas grandes problemas que se presento en este proyecto fue la colocacin del programa en la EEPROM,
por esta razn, la siguiente lista enumera los pasos a seguir para la programacin y colocacin de la EEPROM del HC12
Dentro de Dbug12 o dentro del MCUEZ
1.- Cambiar la velocidad de transmisin del reloj del micro a 300 bauds/seg mediante la siguiente instruccin:
BAUD 300
2.- Irnos a la pantalla principal y cambiar la transmicin de la interfase de 9600 a 300
3.- Regresar a la pantalla del Dbug12 y cargar el programa mediante:
LOAD 0
Luego F6 y teclear el nombre del programa
4.- Desconectar la interfase
5.- Quitar los Jumpers J6 y J7 del micro
6.- DARLE UN PULSO DE VOLTAJE DE 5VOLTS AL PIN AD0, QUE ES EL PIN 0 DEL PUERTO ANALOGICO DIGITAL AD0
Con esos pasos se puede arrancar el programa desde la EEPROM sin necesidad de usar la computadora.

You might also like