Subido por Jose G. Torres M

INTRODUCCION AL PROCESAMIENTO DE SENALES

Anuncio
1
INTRODUCCIÓN AL PROCESAMIENTO DE SEÑALES
La Ingeniería electrónica se define como la rama de la ciencia que se encarga de la transmisión
de información por medio de señales eléctricas.
El uso de tales señales se debe
fundamentalmente a la velocidad con la que viajan (cercana a la de la luz) y a la facilidad con la
que pueden ser manipuladas.
El trabajo en la electrónica está relacionado con un sistema de comunicaciones, cuya finalidad
es la transmisión de información de manera eficiente, el cual puede visualizarse de manera
esquemática por medio del diagrama de bloques mostrado en la figura 1.
Señal
eléctrica
Inf.
de
entrada
Señal
eléctrica
Sistema
de
comunicacione
Inf.
de
salida
Figura 1: Diagrama de bloques de un sistema de comunicación.
El sistema de comunicaciones se puede dividir en tres bloques fundamentales, como se aprecia
en la figura 2, los cuales se describen de manera breve a continuación:
Señal
eléctrica
Señal
eléctrica
Transmisor
Canal
Perturbación
Receptor
2
Figura 2: Diagrama en bloques de un sistema de comunicaciones.
•
EL CANAL: Es el medio de enlace entre el transmisor y el receptor y puede consistir en
cables (alambres), guías de onda, aire, vacío, tierra, fibra óptica, etc. Es el causante de la
mayoría de los problemas en la comunicación, incluidos los siguientes:
Atenuación.
Desfases (retardos).
Distorsiones generadas por alinealidades.
Respuesta en frecuencia no apropiada (Debido a que no hay respuesta instantánea a
variaciones de energía y a que esta respuesta es distinta a diferentes frecuencias, lo
que tiene que ver con el concepto de anchura de banda).
Ruido e interferencia (Lo que se cuantifica con el concepto de razón S/N).
El principal problema que genera el canal es que este trata de cambiar la forma de la señal y
por lo tanto su contenido de información.
•
EL TRANSMISOR: Es la parte del sistema que se encarga de codificar apropiadamente la
señal tal que supere eficientemente las limitaciones del canal (Amplifica, filtra, modula,
codifica, etc.).
3
•
EL RECEPTOR: Realiza las operaciones inversas a las del transmisor, tomando la mejor
decisión acerca de lo que se le envió (Al hacer esto puede equivocarse, lo que conduce al
concepto de rata de error de bit (BER)).
De lo anterior se concluye que se necesita conocer (caracterizar o analizar) las señales y los
sistemas y la forma como estos modifican a aquellas, lo que normalmente se realiza en tres
dominios diferentes:
•
DOMINIO TIEMPO: En este dominio se analiza la relación entrada salida del sistema
mediante las siguientes herramientas:
Las ecuaciones integro-diferenciales que caracterizan la relación entrada salida del
sistema.
La correlación que mide la velocidad de variación de una señal o el parecido con otra.
La convolución que permite conocer la salida de un sistema en términos de la entrada y
su respuesta al impulso.
Los promedios temporales.
En estos casos se analiza como cambia la señal al pasar por el sistema y que tan rápidamente
varia la señal con el tiempo.
•
DOMINIO DE LA FRECUENCIA: En éste se pueden evaluar:
La respuesta en frecuencia (H (Ω )) .
El contenido espectral de la señal.
En este caso se analiza cuales son las componentes más importantes de la señal en cuanto a que
aportan la mayor cantidad de energía (Ancho de banda de la señal), cuales son los componentes
de ésta que el sistema favorece y cuales desfavorece (Ancho de banda del sistema). Además se
4
visualiza qué sucede con los componentes de la señal cuando se realizan ciertas operaciones
sobre ella (Modulación, multiplicación de una señal por otra, muestreo, etc.).
•
DOMINIO ESTADISTICO: Debido a que las señales de información (Y aún los sistemas)
tienen un comportamiento netamente aleatorio (Si no fuera así no serían señales de
información), se concluye que éstas sólo pueden ser conocidas con base en promedios. La
estadística tiene herramientas que permiten conocer de manera muy apropiada este
comportamiento (Promedios estadísticos, función densidad de probabilidad, etc.).
Con estas herramientas se pueden diseñar la señal y el sistema (Síntesis) tal que el proceso de
comunicación sea eficiente desde varios puntos de vista:
Costos (Uso óptimo de los canales).
Velocidad de transmisión de la información.
Complejidad.
Confiabilidad (En el sentido que la información que se reciba sea la que se envió).
Privacidad.
Seguridad.
Los procesos de análisis y síntesis pueden realizarse en dos ambientes diferentes:
•
ANALOGO: La señal existe (O sea tiene importancia) en todos los instantes de tiempo y
tiene infinitos posibles valores dentro de un rango determinado (Rango dinámico de la
señal). El sistema se construye exclusivamente de hardware (Activo y pasivo) y maneja
infinitos posibles estados (ASP), para realizar operaciones sobre la señal tales como el
filtrado, la amplificación, la modulación, etc.
5
•
DIGITAL: La señal existe (O tiene importancia) sólo en momentos discretos del tiempo y
tiene un número finito de valores dentro de un rango determinado. El sistema es una
mezcla de hardware y software digital con interfaces análogas con el mundo real (DSP), que
realizan operaciones de cálculo y lógicas para extraer información de una señal digital o
modificarla.
En algunos casos los sistemas son híbridos en el sentido de que a pesar de que manejan señales
digitales utilizan una representación análoga de esas señales para su transmisión, por ejemplo
con el uso de señales sinusoidales de diferentes frecuencia (FSK) o fases (PSK).
La tendencia en este momento va en la dirección de realizar todas las operaciones que antes se
hacían en ASP, y otras nuevas, con dispositivos o sistemas DSP, esto se debe entre otras a las
siguientes razones:
1. Ha habido grandes avances en los ordenadores en los últimos años de tal manera que éstos
presentan mayor potencia (Hacen más cosas), mayor fiabilidad en los cálculos, menor
tamaño, son más rápidos y baratos, tienen menor consumo de potencia, no presentan
variación con la temperatura o la edad.
2. Algunas señales son inherentemente digitales.
3. Se han dado enormes desarrollos en el diseño de circuitos integrados, MSI, LSI, VLSI.
4. También ha habido grandes adelantos en el diseño de software (FFT).
5. El DSP permite realizar muchas operaciones imposibles o difíciles de realizar en ASP
(Filtrado con desfase lineal, supresión de ecos, encriptación, etc.).
6. Flexibilidad en la reconfiguración de operaciones. Si se desea cambiar el comportamiento
de un ASP hay que rediseñar el hardware; en DSP sólo se necesita cambiar el programa
(Software).
6
7. Reproducibilidad perfecta: Los sistemas DSP presentan desempeño idéntico de unidad a
unidad (No hay problemas de tolerancia).
8. Precisión garantizada: En ASP la tolerancia de los componentes no permite un buen
control de esta; por el contrario en DSP se pueden especificar la precisión de los
conversores A/D, la longitud de la palabra, el tipo de aritmética usada, etc. y estas sólo
dependen del número de bits usados en los conversores A/D y D/A y en el procesador.
9. Además con DSP se tiene fácil transportabilidad y almacenamiento en medios magnéticos
sin deterioro o pérdida de la fiabilidad, además de procesamiento en tiempo real (La señal
digital es menos susceptible al ruido que la señal análoga).
10. Baja sensibilidad al ruido.
Sin embargo el uso de sistemas DSP presenta algunas desventajas, tales como:
1. Se requiere mayor ancho de banda para la transmisión de señales digitales.
2. Velocidad y costo (En los conversores A/D y D/A y en los procesadores digitales), lo que
genera problemas con señales de gran ancho de banda.
3. Tiempo de diseño: Los diseños de DSP son consumidores de tiempo y en algunos casos
imposibles de realizar.
4. Problemas con la longitud finita de palabra: Lo que implica degradación seria de las señales,
hace imposible reconstruir exactamente la señal analógica a partir de sus muestras y
también degrada el desempeño de los DSP (Produciendo deriva e inestabilidad).
5. Se requiere sincronización en la transmisión de señales digitales.
SISTEMAS DSP
Un procesador DSP (Ya sea un procesador de propósito general o especializado más software)
requiere a su entrada una señal digital o sea discreta en el tiempo (que sólo exista en instantes
discretos del tiempo) y discreta en amplitud (solo tiene un número finito de niveles), denotada
7
por x(n ) y produce a la salida, luego de procesada una señal que es también de naturaleza
discreta. Ver figura 3.
Tal procesador de DSP ”puro” no está en capacidad de procesar señales provenientes de
fenómenos del mundo real, las cuales son esencialmente análogas porque están definidos en todo
instante del tiempo y tienen un continuo de amplitudes en cualquier intervalo finito.
x(n )
y (n )
DSP
y (n )
x(n )
4
0
1
2
3 4
5 6
7
n
0
1
2
3
6
5
7
n
Figura 3: Sistema DSP
Se requiere, entonces, que hayan interfaces entre el mundo real y el DSP que conviertan las
señales análogas en discretas (Dispositivos ADC) y viceversa (Dispositivos DAC), tal como se
muestra en la figura 4; aunque en algunos casos es posible que no se necesiten uno o ambos
procesos.
8
ADC
x(t )
x(n )
y (n )
DSP
DAC
y (t )
Figura 4: Sistema DSP completo
A continuación se entra a analizar cada uno de los tres bloques.
•
PROCESO DE CONVERSION DE ANALOGO A DIGITAL (ADC)
En este caso el sistema ADC toma una señal análoga proveniente de algún fenómeno físico y
entrega una discreta o digital al sistema DSP.
De manera teórica, el proceso de conversión ADC requiere de cuatro pasos como se muestra en
la figura 5.
x(t )
2n
Entrada
Análoga
Fs
Filtro Pasabajos
Muestreo y retención
M
1
Cuantizador
Circuito
x(n )
Código de
Lógico
salida digital
Codificador
Figura 5: Diagrama de bloques del proceso de conversión análogo a digital.
9
La idea fundamental es que en este proceso se conserve la información de la señal de entrada; la
herramienta que permite predecir que en efecto esto se da se llama el teorema del muestreo el
cual se enuncia a continuación.
TEOREMA DEL MUESTREO
“Una señal de banda limitada a B Hz (Es decir sin contenido espectral apreciable por encima de
esta frecuencia) puede determinarse de manera unívoca a partir de sus muestras tomadas a
intervalos no mayores a Ts = 1 2 B s ”.
Esto significa que para que no haya pérdida de la información contenida en la señal se deben
tomar muestras a una rata mayor a f s = 2 B muestras/s.
10
En la figura 6 se muestran la señal análoga y sus respectivas muestras.
12 V
Señal análoga
6V
t
− 6V
Muestras de señal
− 12 V
1
2
3
4
5
6
7
8
9
10
nT s
Figura 6: Muestreo de una señal análoga.
El proceso de muestreo puede verse como el producto de la señal por un tren periódico de pulsos
como el que se muestra a continuación en la figura 7:
p(t )
A
τ
t
Ts
Figura 7: Tren de pulsos.
11
Esta señal puede representarse por medio de una serie de Fourier así:
∞
∑ ck e
p (t ) =
jk
2π
t
Ts
k = −∞
Con:
 πkτ 

sen
Ts 
Aτ

ck =
si k ≠ 0
Ts  πkτ 


 Ts 
y,
ck =
Aτ
Ts
si k = 0
La señal muestreada estará dada, entonces, por la siguiente expresión:
xs (t ) = x(t ) p (t )
jk 2πt
∞
Aτ
kπτ
x s (t ) = ∑ x(t )
Sa (
) e Ts
Ts
Ts
k = −∞
=
∞
Aτ
kπτ
x(t ) S a (
) e
∑
Ts k = −∞
Ts
jk 2πt
Ts
Se debe recordar que el espectro de x(t ) está dado por:
X (Ω) = F ( x(t ))
=
∞
∫ x(t )e
−∞
− jΩ t
dt
12
Y el espectro de x s (t ) por:
X s (Ω ) =
∞
∫ x s (t ) e
− jΩ t
dt
−∞
∞
 kπτ
Aτ ∞
x(t ) S a 
= ∫
∑
T
 Ts
−∞ s k =−∞
j k2π t

 e Ts

e − j Ω t dt
Intercambiando el orden de la integral y la sumatoria se tiene:
 kπτ
Aτ ∞
X s (Ω ) =
S a 
∑
Ts k = −∞  Ts
∞
j k 2π t

 ∫ x(t ) e Ts
− ∞
e − j Ω t dt

2π k 
 o sea el espectro de la señal desplazado
La última integral representa a X  Ω −
Ts 

alrededor de la frecuencia de muestreo Fs = 1 Ts y sus infinitos armónicos.
De esta manera:
X s (Ω ) =
 kπτ
Aτ ∞
S a 
∑
Ts k = −∞  Ts
 
2π k 
 X  Ω −

T
s 
 
Si el espectro original de x(t ) tiene la forma mostrada en la figura 8,
X (Ω )
− 2 πB
2 πB
Ω
13
Figura 8: Espectro de la señal antes del muestreo.
La forma del espectro de la señal resultante, luego del muestreo, será como se muestra en la
figura 9:
X s (Ω )
Ω
123
Banda
de guarda
2π
Ts
4π
Ts
Figura 9: Espectro de la señal después del muestreo.
Se observa que, en este caso, se puede recuperar el espectro de la señal original (Y por tanto la
señal) usando un filtrado pasabajos ideal que elimine los componentes espectrales que
aparecieron en el muestreo, dado que no hubo superposición de estos con el original porque se
escogió adecuadamente la frecuencia de muestreo Fs .
Si la frecuencia de muestreo no hubiese sido escogida adecuadamente, el espectro resultante
pudiera haber quedado como se muestra en la figura 10:
X s (Ω )
K
14
Figura 10: Espectro con aliasing de una señal muestreada.
En este caso es imposible recuperar el espectro original por medio del filtrado pasabajos ya que
se produjo lo que se denomina “aliasing” o solapamiento en la frecuencia.
La frecuencia mínima de muestreo hará que las distintas componentes espectrales queden
juntas como se muestra en la figura 11:
X s (Ω )
−
4π
Ts
−
2π
Ts
2πB
2π
Ts
4π
Ts
Figura 11: Espectro resultante con la frecuencia mínima de muestreo.
Ω
15
Esta frecuencia mínima se puede calcular así:
2π
− 2πB = 2πB
Ts
∴
2π
= 4πB
Ts
Esto nos indica que la frecuencia mínima de muestreo (Frecuencia de Nyquist) será:
Ω min = 4πB
Fs min = 2 B
Por ejemplo, en telefonía se limita en banda a 3.4 KHz y se utiliza una rata de muestreo de 8000
muestras/s, lo que da una banda de guarda de 1200 Hz.
En la práctica siempre ocurrirá aliasing debido a que las señales nunca son de banda limitada y
también a que siempre hay ruido presente, el cual tiene un gran ancho de banda.
La idea es mantener el aliasing tan bajo como sea posible y también reducir la rata de muestreo
al mínimo para bajar las exigencias de velocidad al conversor análogo digital y del procesador, y
disminuir las exigencias de ancho de banda del sistema, lo cual se logra filtrando la señal antes
del muestreo.
En el caso de señales pasa banda con un espectro como el que se muestra en la figura 12:
X (Ω )
Ω1
Ω2
Ω
16
Figura 12: Espectro de una señal de banda pasante.
Se puede probar que la frecuencia de muestreo debe estar en el intervalo 2 B ≤ Fs ≤ 4 B 1, lo
cual depende de la frecuencia más baja del espectro original como se muestra en la figura 132.
F
r
e
c
u
e
n
c
i
a
d 4B
e
m
u
e
s 2B
t
r
e
o
0
B
2B
3B
4B
5B
Frecuencia más baja
1
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 747−755.
2
Stremler, Ferrel. Introducción a los sistemas de comunicación. 3 ed. Wilmington : Addison Wesley, 1993. pp.
130.
17
Figura 13: Frecuencia de muestreo en términos de la frecuencia más baja y el ancho de banda de
señales pasabanda.
En donde el ancho de banda B esta dado por:
B = f 2 − f1
En algunos casos es conveniente sobre muestrear la señal con el objetivo de usar un conversor de
baja resolución, aprovechando el hecho de que hay una alta correlación entre muestras sucesivas
y por tanto una menor varianza de la diferencia entre dichas muestras que la de la señal misma,
como se verá más adelante. Sobremuestrear tambièn es útil para reducir la complejidad del filtro
o permitir usar un filtro común para varias señales de diferente ancho de banda.
En la figura 14 se observa el diagrama en bloques de un conversor A/D.
Figura 14: Diagrama de bloques de un conversor A/D.
El comportamiento del dispositivo de muestreo y retención (Sample and Hold: S/H) se observa
en la figura 15.
18
Figura 15: Respuesta de un circuito S/H.
CUANTIZACION
En el proceso de cuantización se ajusta el valor de la muestra análoga a uno de 2 B valores
(niveles de cuantización), en donde B es el número de bits del conversor.
Este proceso de ajuste introduce un error irreversible llamado error (o ruido) de cuantización, el
cual es función de B y es, como máximo, igual a la mitad del LSB (BIT menos significativo). En la
figura 16 se muestra la característica de transferencia de un cuantizador de redondeo3.
Salida
xˆ = Q[x ]
Niveles de
Palabras código en
Niveles de
x
Rango R=RFS
Rango pico a
Figura 16: Característica entrada−salida de un cuantizador con redondeo.
3
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 760−762.
19
Errores del conversor4:
•
Error de offset: La primera transición no ocurre exactamente en 1 2 de LSB.
•
Error de factor de escala (o de ganancia): La diferencia entre los valores en los cuales
ocurre la primera y la última transición no son iguales a Fs − 2 LSB .
•
De linealidad: Las diferencias entre los valores de transición no son todas iguales o cambian
uniformemente.
En la cuantización se divide el rango de amplitud en L intervalos, se asignan L + 1 niveles de
decisión ( x1 para − ∞ y x L para + ∞ ) y L niveles de cuantización. como se muestra en la figura
17:
x5
Niveles de
cuantización
x4
x3
x2
x1
+∞
x4′
x3′
x2′
x1′
Niveles de
decisión
−∞
Figura 17: Diferenciación entre niveles de cuantización y de decisión.
Si se asigna el cero a un nivel de cuantización, el cuantizador se llama de redondeo y si se fija el
cero a un nivel de decisión el cuantizador es de truncamiento.
El intervalo entre niveles de cuantización tiene un tamaño q dado por:
4
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 762.
20
q=
≅
R
2B −1
R
2B
Para
B >>
En donde R es el rango de escala completa del ADC con señales de entrada bipolares. La
diferencia entre la muestra real y la muestra cuantizada o error de cuantización (e), tiene un
comportamiento aleatorio, con una función densidad de probabilidad uniforme en el intervalo
± q 2 , como se muestra en la figura 18.
Pe (e )
1q
−
q
2
q
2
e
Figura 18: Función densidad de probabilidad del ruido de cuantización.
La potencia de ruido está dada por su varianza:
q/2
σ e2
∫e
=
2
p e (e) de
−q / 2
1
=
q
=
q/2
∫e
2
−q / 2
q2
12
de
21
El parámetro que permite determinar qué tan bueno es el proceso de cuantización es la relación
señal a ruido de cuantización, (S N )q , la cual preferiblemente debe tener un valor alto.
La relación (S N )q dependerá del comportamiento estadístico de la señal (que también es
aleatoria), sin embargo, se pueden adelantar algunas conclusiones utilizando una señal de prueba
sinusoidal de amplitud A; en este caso:
R = 2A
La potencia de la señal (S), está dada por:
S=
A2
2
Por tanto la relación señal a ruido de cuantización, (S N )q está dada por la siguiente expresión:
A2
S
  = 22
 N q
q
12
Con:
q=
=
R
2B
2A
2B
Se tiene:
A2
2
S
  =
2
 N q
2A 2B
12
(
3 × 2 2B
=
2
)
22
Expresada en decibelios:
S
 
 N q
( )
dB
3
= 10 log   + 10 log 2 2 B
2
3
= 20 B log 2 + 10 log  
2
= 6.0206 B + 1.7609 [dB]
Como se observa, este parámetro depende del número de bits del conversor y por tanto del
número de niveles de cuantización.
El número de bits usados depende de factores tales como la velocidad, la relación señal a ruido
inherente de la señal análoga de entrada y los costos. En la mayoría de las aplicaciones de DSP
una resolución del ADC entre 12 y 16 bits es adecuada.
Ejemplo:
Telefonía: 8 bits.
CD: 16 bits/canal.
En el caso de que la señal de entrada al cuantizador sea aleatoria, con una varianza σ 2x :
σ2
P
S
  = 10 log x = 10 log 2x
Pn
 N q
σn
σ
12 σ x
= 20 log x = 20 log
σn
q
= 20 log
12 σ x 2 B
R
= 20 B log 2 + 20 log 12 − 20 log
= 6.02 B + 10.02 − 20 log
R
σx
R
σx
23
Debido a problemas de fabricación la (S N )q es menor que la dada por esta ecuación y por tanto
los bits efectivos son menores que el número de bits del conversor.
Por otro lado las señales con potencia instantánea mayor tendrán mayor (S N )q . En este caso se
procesa la señal de tal manera que se distorsione antes de someterla al muestreo y la
cuantización, amplificando más las amplitudes pequeñas que las grandes, tal proceso se
denomina compresión del rango dinámico. En la conversión de digital a análogo se debe hacer
lo contrario o sea la expansión. El proceso completo se denomina compansión.
En el sistema telefónico a nivel mundial se utilizan dos esquemas diferentes de compansión
denominadas ley µ y ley A por el parámetro que utilizan en la curva de transferencia de los
compresores.
El siguiente programa en Matlab simula el proceso de cuantización:
function vq=fxquant(v, bit, rmode, lmode)
%
%fxquant simula la aritmética de punto flotante
%uso: vq=fxquant(V,BIT,RMODE,LMODE)
%Retorna la señal de entrada V reducida a una longitud de palabra
%de BIT bits y limitada en el rango [-1,1]. El tipo de
%reducción en la longitud de palabra y la limitación puede escogerse
%con
%RMODE:
'ROUND' redondea al nivel más cercano
%
'TRUNC' truncamiento en complemento a 2
24
%
'MAGN' truncamiento en magnitud(Es decir al valor más
%cercano a cero)
%
'CEIL' redondeo hacia mas infinito
%LMODE:
'SAT' limitador saturado
%
'OVERFL' sobre flujo en complemento a 2
%
'TRIANG' limitador triangular
%
'NONE' sin limitador.
if bit<=0|abs(rem(bit,1))>eps;
error('La longitud de palabra debe ser un número positivo');
end;
plus1=2^(bit-1);
vq=v*plus1;
if strcmp(rmode,'round');
vq=round(vq);
elseif strcmp(rmode,'trunc'); vq=floor(vq);
elseif strcmp(rmode,'ceil');
vq=ceil(vq);
elseif strcmp(rmode,'magn');
vq=fix(vq);
else error('Especificación de reducción de palabra desconocida');
end;
if strcmp(lmode,'sat');
vq=min(plus1-1,vq);
vq=max(-plus1,vq);
25
elseif
strcmp(lmode,'overfl');
vq=vq+plus1*(1-2*floor((min(min(vq),0))/2/plus1));
vq=rem(vq,2*plus1)-plus1;
elseif
strcmp(lmode,'triang');
vq=vq+plus1*(1-2*floor((min(min(vq),0))/2/plus1));
vq=rem(vq,4*plus1)-plus1;
f=find(vq>plus1);
vq(f)=2*plus1-vq(f);
f=find(vq==plus1);
vq(f)=vq(f)-1;
elseif
strcmp(lmode,'none');
else error('Especificación de limitación desconocida');
end;
vq=vq/plus1;
CODIFICACION
Las muestras digitales que en la mayoría de los casos están en forma binaria son luego
codificadas de manera adecuada para su posterior manipulación. Codificar significa asignar
códigos discretos a muestras cuantizadas. Las representaciones más comunes son en punto fijo
(complemento a 2), punto flotante y punto flotante por bloques. (Ver tabla 9.1, página 761 de
Proakis)5.
FILTRADO ANTIALIASING
5
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 761.
26
Para reducir los efectos del aliasing (solapamiento espectral) se usan normalmente filtros de
corte agudo que limiten el ancho de banda de la señal, y/o se incrementa la frecuencia de
muestreo para ampliar la separación entre el espectro de la señal y sus imágenes.
Idealmente el filtro antialiasing debería rechazar todas las frecuencias por encima de la de
plegado (foldover = Fs 2 ), como se muestra en la figura 19 (a) pero en la realidad se usan
filtros como el mostrado en la figura 19 (b) en donde Fc y Fsupresión son las frecuencias de
corte y de rechazo de banda respectivamente, en las figuras 19 (b) y 19(c) se observa que hay
una distorsión de amplitud en la señal porque la respuesta en la banda de paso no es plana y las
frecuencias por encima de Fsupresión no son atenuadas completamente. Debido a la respuesta no
ideal de los filtros prácticos, la frecuencia de Nyquist efectiva se toma como 2Fsupresión .
− 0.00
− 16.66
− 33.33
Magnitud
− 50.00
dB
− 66.67
0
3400
f (Hz )
− 83.34
− 100.00
0.1000
(a )
dB
− Amín
F
c
1250
2500
3750
5000
625.1
1875
3125
4375
f
(b) Fsupresión
0.0000
3.750
− 0.1666
2.500
− 0.3333
1.250
− 0.5000
radianes
0.000
− 1.250
− 0.6667
− 2.500
− 0.8334
f
− 1.0000
0.1000
850.1
1700
2550
5000
425.1
1275
2125
2975
(c)
f
− 3.750
0.1000
1250
2500
3750
5000
625.1
1875
3125
4375
(d )
Figura 19: Características ideal (a) y real (b), (c) y (d) del filtro antialiasing.
La atenuación mínima del filtro, Amín está relacionada con la resolución del ADC pues se busca
que la señal atenuada en la banda de rechazo sea menor que el ruido de cuantización.
27
Suponiendo una señal de prueba sinusoidal de amplitud A y de frecuencia variable, la atenuación
mínima en la frecuencia Fsupresión se puede calcular así:
q=
2A
2B
q2
12
σn2 =
Es decir,
4 A2
2
σn =
12 × 2 2 B
El valor rms de ruido está dado por:
2A
σn =
12 × 2 2 B
2A
=
12 × 2 B
Y el valor rms de la señal
Vrms =
A
2
Luego, la atenuación está dada por
V
Amin = rms
σn
A
=
2
2A
2 B 12
=
=
2 B 12
2 2
1.5 × 2 B
28
Para que la señal quede atenuada por debajo del ruido de cuantización se usa:
Amin = 1.5 × 2 B +1
Expresada en decibelios
Amin dB = 20 log
( 1 .5 × 2 B + 1 )
= 20 log 1.5 + 20 log 2 B +1
= 7.7815 + 6.0206 B
Como se muestra en la figura 19 (d) una distorsión adicional es la de fase, en la cual los
componentes de la señal no están igualmente retardados (o sea, no están linealmente desfasados
en proporción a su frecuencia). La cantidad de distorsión depende de las características del
filtro, incluyendo la caída en la banda de transición, la cual mientras más abrupta sea mayor es la
distorsión de fase. Sin embargo, el uso de una banda de transición más estrecha permite bajar la
rata de muestreo, y por lo tanto se pueden usar conversores más baratos y lentos.
La tendencia en DSP en tiempo real es la de usar frecuencias de muestreo altas, lo cual requiere
ADC rápidos aunque caros. Las razones para hacer esto son las siguientes:
•
Se requieren filtros antialiasing simples, lo que minimiza la distorsión de fase y permite
reducir los costos para sistemas multicanal.
•
El sobremuestreo combinado con DSP adicional conduce a mejorar la relación señal a ruido.
•
Para sistemas DSP que trabajen en diferentes aplicaciones, la frecuencia de corte del filtro
necesita ser variable y usar sobremuestreo permite el empleo de técnicas de conversión de
ratas de muestreo para alcanzar fácilmente los requerimientos de frecuencia de corte variable
ya que los filtros
análogos programables no tienen buen desempeño y para sistemas
multicanal son caros.
En los conversores de sobremuestreo se incrementa la tasa de muestreo tal que se pueda usar
un cuantizador de baja resolución, porque se reduce el rango dinámico de la señal de entrada.
29
La varianza del error de cuantización:
σ n2 =
q2
12
q=
con
R
2B
El rango dinámico de la señal se debe adaptar a R y por tanto q es proporcional a σ x .
Esto implica que para un número dado de bits, el ruido de cuantización es proporcional a la
varianza de la señal que se va a cuantificar y por tanto si se disminuye ésta se puede reducir el
número de bits del cuantizador.
Para esto se usa un esquema de cuantización diferencial como el que se muestra en la figura 20:
x(n )
+
d (n )
Q[
]
d q (n )
xq (n )
)
x (n )
Predictor
d q (n )
xq (n )
+
)
x (n )
+
Predictor
+
Figura 20: Esquema de cuantización diferencial.
En donde:
xˆ (n ) =
p
∑ ak xq (n − k ) , Filtro transversal.
k =1
El error de cuantización:
eq (n ) = d (n ) − d q (n )
= x(n ) − xˆ (n ) − d q (n )
= x(n ) − x q (n )
30
Por tanto, el error para la señal reconstruida es igual al error de cuantización para la muestra
d (n ) , el cual es mucho menor que el error de cuantización de la muestra de x(n ) .
La forma más simple de modulación diferencial es la modulación delta (DM) en donde el
cuantizador es de 1 bit y el predictor es de primer orden (Ver la figura 21), con una salida
consistente en la entrada retrasada una vez.
En este caso se produce una versión en escalera de la señal (Lo que conduce a distorsiones por
sobre pendiente y granular).
x(n )
+
d (n )
d q (n )
+1
d q (n )
−1
)
x (n )
Z
a
xq (n )
−1
xq (n )
+
)
x (n )
+
Z −1
+
Figura 21: Esquema de modulación diferencial (Modulación Delta).
De la figura 21 se obtiene:
xq (n ) = a xq (n − 1) + d q (n )
Si a = 1 : Integrador (Acumulador ideal).
Si a ≠ 1 : Integrador con pérdidas.
En la figura 22 se puede observar el esquema de modulación diferencial en forma analógica:
x(t )
+
+
)
x (t )
d (t )
+1
−1
+1
−1
−
Reloj
T
∫
∫
)
x (t )
FPB
31
Figura 22: Esquema de modulación diferencial en forma analógica.
El filtro pasabajas (FPB) es necesario para eliminar los componentes entre B y Fsupresión 2 .
Para disminuir el ruido por sobrecarga de pendiente y granular se usa un integrador a la entrada,
como se puede observar en la figura 23.
x(t )
+
∫
+
)
x (t )
d (t )
+1
−1
+1
Reloj
−1
−
FPB
T
∫
Figura 23: Esquema de modulación diferencial en forma analógica con integrador a la entrada.
Esto incrementa la correlación entre muestras y reduce la variación de la señal de entrada,
además evita el uso del integrador a la salida ya que también se tendría que poner un derivador.
Como los integradores afectan las dos señales de entrada, se pueden remplazar por uno solo, así
como se muestra en la figura 24:
x(t )
+
+
)
x (t )
d (t )
−
+1
−1
+1
∫
−1
Reloj
FPB
T
Figura 24: Esquema de modulación diferencial que usa un solo integrador.
En la figura 25 se aprecia el caso discreto:
e (n )
x(n )
+
+
−
+
Z
−1
d (n )
+
d q (n )
32
Figura 25: Modulador diferencial discreto.
Se puede probar que el ruido de cuantización en este conversor6 está dado por:
σ 2n

1
2B
≅ π 2 σ e2 
3
 Fsupresión




3
σ e2 : Potencia de ruido de cuantización.
CONVERSIÓN DIGITAL A ANALÓGICA (DAC)
La reconstrucción de la señal se logra de manera teórica usando un filtro pasabajas ideal, ver
figura 26.
H (ω)
1 Fs
F
− s
2
Fs
2
ω 2π
Figura 26: Filtro de reconstrucción ideal.
La respuesta al impulso de este filtro:
F (h(t )) = H (ω)
h(t ) = F −1 (H (ω))
6
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 770.
33
1 Fs
=
2π
2 π Fs 2
j ωt
∫e
dω
− 2 π Fs 2
= sen (π Fs t
)
= S a ( π Fs t
)
π Fs t
O sea que si la entrada a este filtro es
x s (t ) =
∞
∑ x(nTs ) δ( t − nTs )
n = −∞
Entonces la salida reconstruida, consistirá en la superposición de las respuestas a los diferentes
impulsos ponderados equivalentes a cada muestra:
 π

sen  (t − nTs )
 Ts

y (t ) = ∑ x(nTs )
π
n = −∞
(t − nTs )
Ts
∞
En donde la función:
 π

sen  (t − nTs ) 
 Ts

π
(t − nTs )
Ts
Se llama fórmula de interpolación ideal.
Como esta interpolación requiere de un filtro pasabajas ideal, no es realizable físicamente y se
usan algunas otras técnicas de interpolación prácticas como las siguientes:
•
MUESTREO Y MANTENIMIENTO (Mantenedor de orden cero, Sample and Hold:
S/H):
En la figura 27 se presenta el diagrama en bloques de un conversor digital analógico que usa un
circuito de muestreo y mantenimiento.
34
Salida
x(n )
D/A
S/H
Filtro
analógica
Suavizador
Figura 27: Sistema conversor digital−analógico con sample and hold (S/H).
La relación entrada−salida ideal de este conversor se muestra en la figura 28; pero en la realidad
sufre los mismos problemas del conversor ADC7.
Nivel de
salida
3∆
2∆
100
∆
101 110 111
000 001 010 011
Código
de entrada
−∆
− 2∆
− 3∆
− 4∆
Figura 28: Función de transferencia ideal del conversor DAC.
Un parámetro importante del DAC es su tiempo de establecimiento (Settling time) que se define
como el tiempo requerido para que la salida del DAC alcance y se mantenga dentro de una
fracción dada (Normalmente ± 1 2 LSB) del valor final, después de la aplicación de la palabra
código de entrada. Con frecuencia esto produce una transición de gran amplitud denominada
“glitch”, lo que normalmente se resuelve con un circuito S/H diseñado para servir como un
“deglitcher”.
7
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 775.
35
La función del S/H es mantener la salida del DAC igual al valor de la salida previo hasta que la
nueva muestra en la salida del DAC alcance el estado estacionario, lo cual produce una versión
en escalera como se muestra en la figura 29 (a).
h (t )
x(t )
x̂(t )
1
5Ts 6Ts
0
Ts
t
t
0
2Ts 3Ts 4Ts
Ts
(a )
(b )
Figura 29: (a) Versión en escalera de una señal, obtenida mediante la función S/H.
(b) Respuesta al impulso del S/H.
En la figura 29 (b) se muestra la respuesta al impulso del S/H y en la figura 30 su respuesta en
frecuencia, comparada con la del pasabajo ideal.
ideal
H(f )
real
2
−
Ts
1
−
Ts
1
−
2Ts
1
2Ts
1
Ts
2
Ts
f (Hz )
Figura 30: Respuesta en frecuencia del S/H y del filtro reconstructor ideal.
Como consecuencia del proceso de sample and hold, el espectro de las muestras es multiplicado
por una función seno sobre su argumento modificando el espectro de banda base y produciendo
una distorsión denominada distorsión por efecto de apertura con la aparición de componentes
espectrales imágenes del espectro original que se deben eliminar con un filtro pasabajos.
36
El error por efecto de apertura se puede eliminar aplicando un filtro digital con característica
tiempo−frecuencia x sen ( x ) a la señal discreta antes de aplicarla al DAC.
•
MANTENEDOR DE PRIMER ORDEN
Para suavizar la señal de salida del DAC se utilizan otros tipos de interpolación tales como el de
primer orden en el cual la señal de salida es aproximada a x(t ) mediante segmentos de recta cuya
pendiente está dada por la muestra actual x(nTs ) y la muestra anterior x(nTs − Ts ) tal como se
muestra en la figura 31.
En este caso:
xˆ (t ) = x(nTs ) +
x (nTs ) − x (nTs − Ts )
(t − nTs ) ,
Ts
para nTs ≤ t ≤ ( n + 1 ) Ts
x̂(t )
x(t )
6Ts
0
Ts
2Ts 3Ts 4Ts 5Ts
t
7T s
Figura 31: Señal reconstruida con un mantenedor de primer orden.
La respuesta al impulso de este mantenedor se muestra en la figura 32 y está dada por:
t

1 + T ,
s

t
h(t ) = 1 −
,
 Ts
,
0

para 0 ≤ t ≤ Ts
para Ts ≤ t ≤ 2Ts
en otro caso
2
1
2Ts
T
t
37
Figura 32: Respuesta al impulso del mantenedor de primer orden.
Ya que h(t ) = T [ δ(t ) ]
La correspondiente respuesta en frecuencia es (Ver figura 33):
(
H ( F ) = Ts 1 + 4 π F
2
)
2
2 1 / 2  sen (π F Ts ) 
j Θ (F )
Ts

 e
(
π
)
F
T
s


Con Θ(F ) = − π F Ts + tan −1 (2π F Ts )
H(f )
f
− 3 Ts
− 2 Ts
− 1 Ts − 1 2Ts
1 2Ts 1 Ts
2 Ts
3 Ts
Figura 33: Respuesta en frecuencia del mantenedor de primer orden.
En este caso también aparecen componentes de alta frecuencia que deben atenuarse con un filtro
pasabajos.
•
INTERPOLADOR LINEAL CON RETARDO
Se evitan los saltos de x̂(t ) añadiendo un retardo a la muestra en el proceso de reconstrucción
(Ver figura 34):
38
xˆ (t ) = x (nTs − Ts ) +
x (nTs ) − x (nTs − Ts )
(t − nTs ) ,
Ts
para n Ts ≤ t ≤ ( n + 1 ) Ts
Figura 34: Reconstrucción de una señal con un interpolador lineal con retardo.
La respuesta al impulso es como se muestra en la figura 35 y está dada por:



h(t ) = 



t
Ts
,
para 0 ≤ t ≤ Ts
n=0
t
, para Ts ≤ t ≤ 2 Ts
Ts
0
, otro caso
2−
n =1
n=2
h(t )
t
0
Ts
2Ts
Figura 35: Respuesta al impulso del interpolador lineal con retardo.
Su correspondiente respuesta en frecuencia es (Ver figura 36):
 Sen (π F Ts )  − j 2 π F T s
H ( f ) = Ts 
 e
 (π F Ts ) 
2
H(f )
− 2 Ts
− 1 Ts − 1 2Ts
0
f
1 2Ts 1 Ts
2 Ts
39
Figura 36: Respuesta en frecuencia del interpolador lineal con retardo.
En este caso la respuesta en frecuencia cae rápidamente lo mismo que los lóbulos laterales,
además que se introduce un desfase lineal con la frecuencia; los componentes por encima de
Fs 2 se eliminan con un filtro pasabajos de corte abrupto.
•
PROCESADORES DE SEÑALES DIGITALES
Los sistemas DSP se caracterizan por una rata efectiva alta de datos (o throughput) y por el uso
de algoritmos intensivos en operaciones aritméticas (Multiplicación y suma o multiplicación y
acumulación), que producen un flujo pesado de datos a través del procesador. Por esta razón, la
arquitectura de los microprocesadores estándar es inapropiada para el procesamiento digital de
señales, lo que ha conducido a la creación de nuevas clases de procesadores cuya arquitectura y
conjunto de instrucciones se diseñan específicamente para operaciones DSP. Algunas de estas
características incluyen:
Multiplicadores en hardware interno (Built−in) para multiplicaciones rápidas. Los nuevos
chips DSP incorporan instrucciones de multiplicación−acumulación en un solo ciclo y
algunos tienen varios multiplicadores trabajando en paralelo.
Buses y memoria separados para programa y datos (Arquitectura Harvard) lo que permite
solapamiento de Fetch de instrucción y ejecución.
Instrucciones que salvan ciclos para ramificación y enlazado (Branching and looping), como
por ejemplo, en el TMS320C25 se tienen las siguientes instrucciones:
− RPTK N: Repite la siguiente instrucción N veces.
− MACD: Mueve datos en la memoria, multiplica y acumula con retardo.
Velocidad en bruto (Raw) rápida. El TMS320C25 usa un reloj de 40 MHz y tiene un tiempo
de ciclo de 100 ns.
Uso del pipeline, lo que reduce el tiempo de instrucción e incrementa la velocidad.
40
Los DSP más nuevos son más rápidos y versátiles. Algunos ya tienen capacidades de
aritmética de punto flotante e incorporan características encontradas en microprocesadores
estándar, tales como una línea serial, espacio de memoria extendida, timers e interrupciones
multinivel.
SEÑALES EN TIEMPO DISCRETO
Las señales en tiempo discreto pueden originarse de dos maneras:
1. Tomando muestras de una señal análoga y luego cuantificándola.
xa (t ) → xa (nTs ) → x q (nTs ) = x (n )
2. Acumulando una variable a lo largo de un determinado período de tiempo. (Ver figura 1.7, página
10 de Proakis)8.
En ambos casos se genera una secuencia de números en función de la variable independiente n (número
de muestra) el cual es el equivalente discreto del tiempo.
La señal x(n ) puede representarse de varias maneras:
•
Representación funcional:
 1,

x(n ) =  4 ,
 0 ,
8
Para n = 1, 3
Para n = 2
En otro caso
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 10.
41
•
•
Representación tabular:
x(n )
...
−2
5
3
1
4
...
n
...
−1
0
1
2
3
...
Representación como secuencia:
x(n ) = { 3, 5, 2, 1, 0 }
↑
En este caso la flecha ( ↑ ) indica el origen de coordenadas (Es decir, n = 0 ).
SEÑALES ELEMENTALES EN TIEMPO DISCRETO
Impulso unitario:
δ (n − k ) = 
1
0
Para n = k
En otro caso
Func ión im puls o
1.5
1
x (n)
•
0.5
0
-10
-8
-6
-4
-2
0
n
2
4
6
8
Figura 37: Función impulso unitario.
10
42
La figura 37 se puede obtener en Matlab empleando una función como la del ejemplo M2:
Ejemplo M2:
function x=impulso(long,k)
%La señal x generada por esta función es un impulso de longitud long
%y desplazado k unidades de tiempo.
if k<0
n=-long:0;
L=length(n);
x=zeros(1,L);
x(L+k)=1;
else
n=0:long;
L=length(n);
x=zeros(1,L);
x(k+1)=1;
end
stem(n,x)
•
Escalón unitario:
µ (n − k ) = 
1
0
Para n ≥ k
Para n < k
43
Func ión es c alón unitario
1.5
x (n)
1
0.5
0
-10
-8
-6
-4
-2
0
n
2
4
6
8
10
Figura 38: Función escalón unitario.
La figura 38 se puede obtener en Matlab empleando una función como la del ejemplo M3:
Ejemplo M3:
function x=escalon(long,k)
%La señal x generada por esta función es un escalón de longitud long
%y desplazado k unidades de tiempo.
n=k-3:long+k-4 ;
x=zeros(1,long);
x(4:long)=1;
stem(n,x)
•
Rampa unitaria:
µ r (n − k ) = 
n
0

Para n ≥ k
Para n < k
44
F unc ión ram pa unitaria
10
9
8
7
x (n)
6
5
4
3
2
1
0
-10
-8
-6
-4
-2
0
n
2
4
6
8
10
Figura 39: Función rampa unitaria.
La figura 39 se puede obtener en Matlab empleando una función como la del ejemplo M4:
Ejemplo M4:
function x=rampa(long,k)
%La señal x generada por esta función es una rampa de longitud long
%y desplazada k unidades de tiempo.
n=k-3:long+k-4 ;
m=0:long-4;
x=zeros(1,3);
x=[x,m];
stem(n,x)
•
Señal sinusoidal:
x(n ) = A cos (ω n + θ) ,
− ∞ ≤ n ≤ +∞
45
Donde:
θ : [rad]
f: [ciclos/muestra]
ω : [rad/muestra]
ω = 2π f
5
4
3
2
1
0
-1
-2
-3
-4
-5
-20
-15
-10
-5
0
5
10
15
20
Figura 40: Señal sinusoidal.
La figura 40 se puede obtener en Matlab empleando una función como la del ejemplo M5:
Ejemplo M5:
function x=seno(A,f0,Theta,Num_ciclos)
%La señal x generada por esta función es una sinusoide de amplitud: A,
%frecuencia: f0 (entre 0 y 1), Theta en radianes y número de ciclos:
%Num_ciclos.
N=ceil(1/f0);
L=N*Num_ciclos;
n=0:L-1;
46
x=A*sin(2*pi*f0*n+Theta);
stem(n,x)
•
Señal exponencial compleja:
x(n ) = a n , ∀n
En donde,
a = rejθ
x(n ) = r n e j n θ
= r n (cos (n θ ) + j sen (n θ))
= X R (n ) + j X R (n )
Y por tanto,
X R (n ) = r n (cos (n θ ))
X I (n ) = r n (sen (n θ))
La exponencial compleja se puede representar por medio de dos gráficas, una de la parte real y otra de
la parte compleja o por medio de un gráfico de magnitud y otro de fase, en donde:
x(n ) = r n
arg( x(n )) = n θ
47
n
M agnitud Gráfic o de a (a= 0.9,theta= 1.32)
4
3
A ngulo
2
angle(x (n))
| x (n) |
2
1
0
-10
-5
0
n
P arte real
5
-5
0
5
n
P arte im aginaria
10
3
2
im ag(x(n))
2
real(x (n))
-2
-4
-10
10
4
0
-2
-4
-10
0
1
0
-1
-5
0
n
5
10
-2
-10
-5
0
n
5
10
Figura 41: Función exponencial compleja.
La figura 41 se puede obtener en Matlab empleando una función como la del ejemplo M6:
Ejemplo M6:
function x=exp_compleja(a,f0,Theta,longitud)
%La señal x generada por esta función es una exponencial compleja
%de magnitud: a, frecuencia: f0 (Entre 0 y 1), Theta en radianes
%y longitud determinada: longitud.
n=0:longitud-1;
x=(a.^n).*exp(j*2*pi*f0*n+Theta);
subplot(221)
stem(n,real(x))
subplot(222)
stem(n,imag(x))
48
subplot(223)
stem(n,abs(x))
subplot(224)
stem(n, angle(x))
COMPARACIÓN DE LOS CONCEPTOS DE FRECUENCIA Y RANGOS DE
FRECUENCIA EN TIEMPOS CONTINUO Y DISCRETO
Una señal sinusoidal en tiempo continuo
x(t ) = A cos (Ω 0 t + Θ )
Está completamente caracterizada por tres parámetros:
A: Amplitud.
Θ: Fase, [Rad].
Ω 0 : Frecuencia angular, [Rad/s].
F0 : Frecuencia, [Hz. ó ciclos/s].
Ω 0 = 2π F0
Esta señal cumple lo siguiente:
Para todo valor de F0 , la función es periódica, con período fundamental T = 1 F0 .
Dos sinusoides de frecuencias diferentes son diferentes.
Un aumento de la frecuencia implica un incremento de la tasa de oscilación.
Las mismas conclusiones se aplican para la exponencial compleja.
49
El rango de frecuencias está en el intervalo (− ∞, + ∞ ) , en donde las frecuencias positivas
implican un giro del fasor en sentido antihorario y las negativas implican un giro en sentido
horario.
Gráfic o polar de a n
90
3
120
60
2
150
30
1
180
0
330
210
240
300
270
Figura 42: Gráfico polar de a n .
En tiempo discreto:
La señal coseno puede provenir del muestreo de una señal análoga:
x(t ) = A cos (Ω 0 t + Θ )
→
x (n Ts ) = A cos(Ω 0 n Ts + Θ )
→
F


x(n ) = A cos  2π 0 n + Θ 
Fs


= A cos (2π f 0 n + Θ )
= A cos (ω0 n + Θ )
En donde:
f 0 = F0 Fs
para − ∞ ≤ n ≤ ∞
50
Es la frecuencia normalizada en [ciclos/muestra].
•
En cuanto a la periodicidad x(n ) será periódica si existe un intervalo de tiempo N (entero)
en el cual la señal se repite, es decir:
x(n ) = x(n + N )
x(n + N ) = cos (ω0 (n + N ) + Θ )
= cos (ω0 n + ω0 N + Θ )
= x(n ) si ω0 N = 2π k
f0 = k N
ó
Es decir x(n ) es periódica si su frecuencia es una cantidad racional. En este caso el período
fundamental resulta de cancelar los factores comunes entre k y N, hasta que estos sean primos
relativos. En otras palabras la contraparte discreta de una señal periódica de tiempo continuo
no siempre es periódica. Como ejemplo, en la figura 43 se observa una señal periódica de
frecuencia f 0 = 1 8 y una no periódica de frecuencia f 0 = 1 3π .
5
0
-5
0
5
10
15
20
25
30
35
40
(a)
5
0
-5
0
5
10
15
20
25
(b)
30
35
40
45
50
Figura 43: Señal sinusoidal: (a) periódica, (b) no periódica.
51
•
Además las sinusoides con frecuencias separadas por un múltiplo entero de 2π son idénticas,
lo que quiere decir que un incremento en la frecuencia no siempre implica un incremento en
la tasa de oscilación:
cos ((ω0 + 2π ) n + Θ ) = cos (ω0 n + 2π n + Θ )
= cos (ω0 n + Θ )
Es decir que las señales,
x k (n ) = A cos (ω k n + Θ )
Con
ω k = ω 0 + 2π k , − π ≤ ω 0 ≤ π
Son indistinguibles.
Como ejemplo, en la figura 44 se observan sinusoides con frecuencias normalizadas entre 0 y 1 y
separadas entre sí 0.125 ciclos/muestra.
52
6
5
5
0
0
4
2
0
0
10 (a)
20
-5
0
10 (b)
20
-5
5
5
5
0
0
0
-5
0
10 (d)
20
-5
5
5
0
0
0
10 (e) 20
-5
0
10 (c) 20
0
10 (f)
20
0
10
20
6
4
2
-5
0
10
(g)
20
-5
0
10
(h)
20
0
(i)
Figura 44: Señales sinusoidales de frecuencias crecientes entre 0 y 1.(a)f=0, (b)f=0.125, (c)f=0.25, etc.
Se concluye entonces, que el rango de frecuencias en tiempo discreto está en el intervalo:
0 ≤ f ≤1
0 ≤ ω ≤ 2π
⇔
O de manera similar,
−
1
1
≤ f ≤
2
2
⇔
−π ≤ ω ≤ π
Esto implica que las sinusoides con frecuencias ω ≤ π son únicas, y las sinusoides con
frecuencias ω > π son alias de las anteriores.
53
La mayor frecuencia que se puede reconstruir en tiempo continuo a partir de muestras de tiempo
discreto tiene que ver con la frecuencia de muestreo, así:
−π≤ω≤π
∴
•
→
Ω
≤π
Fs
−π≤
− π Fs ≤ Ω ≤ π Fs
⇒
−
Fs
F
≤F≤ s
2
2
La mayor tasa de oscilación la tiene la señal con frecuencia π ó − π (ó 1 2 y − 1 2) ya que
cos (π n ) = (− 1)n es la mayor oscilación posible en una onda sinusoidal de tiempo discreto.
6
4
x (n)
2
0
-2
-4
-6
-10
-8
-6
-4
-2
0
n
2
4
6
8
10
Figura 43: Onda cosenoidal de frecuencia máxima.
EXPONENCIALES COMPLEJAS RELACIONADAS ARMONICAMENTE
Escogiendo la frecuencia relativa como f 0 = 1 N se definen las exponenciales complejas
armónicamente relacionadas como:
54
j 2π k n
S k (n ) = e N
con
k = 0, ± 1, ± 2, L
De esta expresión se puede concluir que:
j 2π (k + N ) n
N
S k + N (n ) = e
= e j 2π f 0 n
= S k (n )
Esto quiere decir que existe sólo N exponenciales complejas relacionadas armónicamente, con
período común N.
De esta manera se puede escoger un conjunto consecutivo de N exponenciales complejas, por
ejemplo desde k = N 0 hasta k = N 0 + N − 1 para formar un conjunto armónicamente
relacionado de frecuencia f 0 = 1 N . Normalmente se escoge el conjunto desde N 0 = 0 , es
decir:
j 2π k n
S k (n ) = e N
con
k = 0, 1, L , N − 1
Es evidente que la combinación lineal
x(n ) =
N −1
N −1
k =0
k =0
∑ C k S k (n) = ∑
j 2π k n
Ck e N
Es una señal periódica de período fundamental N (Serie de Fourier de x(n ) ).
55
CLASIFICACION DE LAS SEÑALES EN TIEMPO DISCRETO
•
SEÑALES DE ENERGIA:
La energía en tiempo continuo está definida por:
E=
∞
2
∫ x(t ) dt
−∞
Y en tiempo discreto, se calcula así:
∞
E = ∑ x(n )
2
−∞
Si E < ∞ se dice que la señal es de energía.
La siguiente función de Matlab se puede usar para calcular la energía de una señal:
Ejemplo M7:
function y=energia(x)
L=length(x);
y=0;
for i=1:L
y=y+x(i)^2;
end
56
Ejemplo:
Calcular la energía de la señal a
n
,
a <1
Esta señal se muestra en la figura 44.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-25
-20
-15
-10
-5
0
5
10
15
Figura 44: Exponencial decreciente bilateral
Teniendo en cuenta que la suma de una serie geométrica
x(n ) = r n 0 ≤ n ≤ N
Está dada por
S=
N
∑rn
n =0
=
1 − r N +1
1− r
r <1
20
57
Se tiene, entonces, que:
S=
−1
∑ a2
−n
n = −∞
S=
∞
n
∑ a2 +
=
1
1− a2
1+ a2
∑ a2
n
n=0
n =1
S=
∞
+
∞
∑ a2
n
n =0
−1+
1
a <1
1− a2
1− a2
En este caso tenemos que si a = 0.7 , entonces la energía de x(n ) será:
E = 2.9216
•
SEÑALES DE POTENCIA
La potencia media en tiempo continuo se define como,
P = lim
T →∞
1
T
T 2
∫
x (t ) 2 dt
−T 2
Y en tiempo discreto:
58
P = lim
N →∞
N
1
2
x(n )
2N + 1 ∑
n=−N
Si la potencia media es diferente de cero o infinito se dice que la señal es de potencia.
La potencia de una señal en tiempo discreto que no tenga nivel DC se puede calcular con la
función var(x,1) de Matlab.
Ejemplo:
Calcular la potencia de la señal x(n ) = A cos ω 0 n .
P=
1
N
N −1
∑ x(n)
n =0
A2
P=
N
A2
2N
A2
=
2N
A2
=
2
P=
2
N −1
∑ cos (ω n )
2
0
n =0
N −1
∑ (1 + cos(2ω n))
n =0
N −1
∑1 +
n =0
0
A2
2N
N −1
∑ cos(2ω n )
n =0
0
Esto debido a que el segundo término de la ecuación es el valor DC de la señal sinusoidal que es
cero.
Se concluye entonces que la onda sinusoidal es una señal de potencia.
•
SEÑALES PERIÓDICAS O APERIODICAS
Una señal es periódica con período N sí y sólo sí
x(n + N ) = x(n ), ∀n
59
El valor más pequeño de N se llama el período fundamental. Si no existe N la señal es
aperiódica.
En el caso de señales periódicas si x(n ) toma valores finitos en el período, su potencia media es
finita y coincide con la calculada sobre un período:
P=
1 N −1
2
x(n )
∑
N
n=0
Esto quiere decir que las señales periódicas son señales de potencia.
•
SEÑALES DE SIMETRÍA PAR E IMPAR
SEÑAL SIMÉTRICA(par):
En este caso,
x(n ) = x(− n )
SEÑAL ANTISIMÉTRICA (impar):
En este caso,
x(n ) = − x(− n )
Una señal cualquiera puede representarse como la suma de su parte par y su parte impar, en
donde la parte par está dada por
1
xe (n ) = [x(n ) + x(− n )] Parte par de x(n ) .
2
60
La parte impar:
xo (n ) =
1
[x(n ) − x(− n )] Parte impar de x(n ) .
2
De tal manera que,
x(n ) = xe (n ) + xo (n )
La siguiente función en Matlab permite construir la parte par y la parte impar de una función
cualquiera:
Ejemplo M8
function []=parimpar(x,n)
xe=(x+fliplr(x))/2;
xo=(x-fliplr(x))/2;
subplot(311)
stem(n,x)
subplot(312)
stem(n,xe)
subplot(313)
stem(n,xo)
En la figura 45 se muestra una señal y sus correspondientes componentes par e impar.
61
40
20
0
-10
-8
-6
-4
-2
0
2
4
6
8
10
-8
-6
-4
-2
0
2
4
6
8
10
-8
-6
-4
-2
0
2
4
6
8
10
20
10
0
-10
20
0
-20
-10
FIGURA 45 : Señal discreta con su parte par e impar
MANIPULACIONES SIMPLES DE LAS SEÑALES EN TIEMPO DISCRETO
•
RETRASO O ADELANTO
x(n ) → x(n − k ) ,
k : Entero
Si k > 0 : Retraso
Si k < 0 : Adelanto
•
REFLEXION
x(n ) → x(− n )
La reflexión de una señal se puede realizar en Matlab utilizando la función fliplr().
Las operaciones de reflexión y retardo no son conmutativas, de tal manera que si Td es la operación de
retardo y Fd la de reflexión, se tiene:
62
Td k [x(n )] = x(n − k ) ,
k >0
Fd [x(n )] = x(− n )
Td k [Fd [x(n )]] = Td k [x(− n )]
= x(− n + k )
[
]
Fd Td k [x(n )] = Fd [x(n − k )]
= x(− n − k )
•
ESCALADO TEMPORAL (Submuestreo)
En este caso se cambia n por µ n , con µ entero.
x(n ) → x(µn )
En Matlab se puede usar la función decimate() para realizar la operación de submuestreo, aunque hay
que tener en cuenta que para hacer esto realiza un filtrado de orden N, y por lo tanto para realizar el
submuestreo únicamente se escoge N=1.
En la figura 46 se observa una señal y su versión submuestreada, usando un µ=2.
1
0.8
0.6
0.4
0.2
0
-50
-40
-30
-20
-10
0
10
20
30
40
50
1
0.8
0.6
0.4
0.2
0
0
10
20
30
40
50
60
63
Figura 46: Submuestreo de una señal
En esta operación se eliminan las muestras que están en posiciones diferentes a múltiplos de µ, lo
que es similar a cambiar la rata de muestreo de Fs = 1 Ts a Fs = 1 µTs .
•
ESCALADO DE LA SEÑAL
y (n ) = A x(n )
En este caso se multiplica el valor de cada muestra de la señal por A.
•
SUMA DE SEÑALES
y (n ) = x1 (n ) + x2 (n )
El valor de y (n ) es la suma de los valores en cada instante de las dos señales.
•
PRODUCTO DE DOS SEÑALES
y (n ) = x1 (n ) x 2 (n )
El valor de y (n ) es el resultado de multiplicar los valores de las dos señales en el mismo instante
(Producto punto a punto).
SISTEMAS EN TIEMPO DISCRETO
SISTEMA: Se puede definir como el conjunto de dispositivos de hardware y/o algoritmos que
transforman una señal de entrada en una de salida, como se muestra de manera esquemática en la
figura 47.
T[
]
64
Figura: 47: Diagrama en bloques de un sistema.
El sistema se simboliza así:
T[
]
x (n ) 
→ y (n )
REPRESENTACION DE SISTEMAS POR BLOQUES
•
SUMADOR:
x1 (n )
+
x 2 (n )
x1 (n ) + x 2 (n )
Figura 48: Diagrama en bloques de un sumador.
•
MULTIPLICADOR:
x1 (n )
×
x 2 (n )
x1 (n ) x 2 (n )
Figura 49: Diagrama en bloques de un multiplicador.
•
RETARDADOR
x (n )
Z −1
y (n ) = x (n − 1)
65
Figura: 50: Diagrama en bloques de un sistema retardador.
•
ADELANTADOR
x (n )
Z
y (n ) = x (n + 1)
Figura: 51: Diagrama en bloques de un sistema adelantador.
La operación de adelanto no se puede realizar en DSP en tiempo real, pero sí sobre valores
almacenados en la memoria.
•
MULTIPLICADOR POR UNA CONSTANTE
a
x (n ) → y (n ) = a x (n )
x (n )
a
y (n ) = a x (n )
Figura: 52: Diagrama en bloques de un multiplicador por una constante.
CLASIFICACION DE LOS SISTEMAS
Los sistemas se clasifican de acuerdo con sus propiedades, las cuales deben cumplirse en todos
los casos (o sea, para todas las señales de entrada). Algunas de las propiedades de interés son las
siguientes:
66
•
MEMORIA ( Sistemas dinamicos o estaticos):
En un sistema sin memoria la salida depende de los valores presentes en la entrada y no de
valores pasados o futuros de ésta, de tal manera que no requiere almacenamiento.
En los sistemas con memoria la salida depende de valores presentes, pasados y/o futuros de la
señal de entrada, y por esto requieren de capacidad de almacenamiento en memoria de la señal
de entrada.
•
INVARIANZA EN EL TIEMPO
Un sistema es invariante en el tiempo si su característica de entrada−salida no cambia con el
tiempo; es decir, al retrasarse k unidades de tiempo la entrada al sistema, la salida tendrá la
misma forma pero estará retrasada también k unidades.
x (n ) → y (n )
x (n − k ) → y (n , k )
Si
y (n, k ) = y (n − k ) : Sistema invariante
Si
y (n , k ) ≠ y (n − k ) : Sistema variante
Ejemplo:
Si se tiene una relación de entrada salida de un sistema así:
y (n ) = n x (n ) .
67
La respuesta a otra señal retrasada será,
x1 (n ) → y1 (n ) = n x1 (n )
x 2 ( n ) → y 2 (n ) = n x 2 (n )
x 2 ( n ) = x1 ( n − k ) → y 2 ( n ) = n x 2 ( n − k ) ≠ y1 ( n − k )
Por lo tanto, este sistema es variante, lo que era de esperarse ya que tiene una ganancia que varía con el
tiempo.
•
LINEALIDAD
Un sistema es lineal si cumple con el principio de superposición, es decir si:
T[
]
T[
]
x1 (n ) 
→ y1 (n ) = T [x1 (n )]
x2 (n ) 
→ y 2 (n ) = T [x2 (n )]
Entonces:
T[
]
a x1 (n ) + b x 2 (n ) 
→ y3 (n ) = T [a x1 (n ) + b x 2 (n )]
= a T [x1 (n )] + b T [x 2 (n )]
= a y1 (n ) + b y 2 (n )
Para todo a y b y cualquier secuencia de entrada. Debe, además, cumplir que si la entrada es cero la
salida debe también ser cero.
Ejemplo:
El sistema descrito por la relación entrada_salida,
68
y (n ) = e x (n )
Es no lineal ya que si
T[ ]
x1(n ) → y1(n ) = e x1(n )
T[ ]
x2 (n ) → y2 (n ) = e x2 (n )
Entonces,
T[ ]
ax1(n ) + bx2 (n ) → y3 (n ) = eax1(n )+ bx2 (n )
≠ ay1(n ) + by2 (n )
•
ESTABILIDAD
Un sistema arbitrario en reposo se dice de entrada−salida acotada (BIBO “Bounded
input−bounded output”) sí y sólo sí toda entrada acotada produce una salida acotada.
Ejemplo:
El sistema descrito por la relación entrada_salida:
y (n ) =
n
∑ x (k )
k =0
Es inestable ya que si se le aplica una entrada acotada como la siguiente:
x (n ) = µ (n )
La salida será no acotada:
y (n ) =
n
∑ µ (k )
k =0
= (n + 1)µ (n )
69
INTERCONEXIÓN DE SISTEMAS
•
CONEXIÓN EN CASCADA;
Esta conexión se muestra en la figura 52:
x (n )
T1 [
]
y1 (n )
T2 [
y (n )
]
Figura: 52: Diagrama en bloques de una conexión en cascada.
En este caso, se tiene:
y1 (n ) = T1 [x (n )]
y (n ) = T2 [ y1 (n )]
= T2 [T1 [x (n )]]
Lo cual es equivalente a tener el sistema que se muestra en la figura 53:
x (n )
Tc [
]
y (n )
Figura: 53: Sistema equivalente de una conexión en cascada.
En donde, en general:
Tc = T2 T1
≠ T1 T2
70
Si los sistemas son invariantes en el tiempo, se tiene que:
T1
x (n − k ) → y1 (n − k )
T2
y1 (n − k ) → y (n − k )
Y por tanto:
Tc = T1 T2
x (n − k )   
→ y (n − k )
Luego la transformación Tc es invariante en el tiempo.
Si además, los sistemas son lineales:
T2 T1 = T1 T2
•
CONEXIÓN PARALELA: Este arreglo se muestra en la figura 54:
x (n )
T1 [
]
y1 (n )
+
T2 [
]
y 2 (n )
y (n ) = y1 (n ) + y 2 (n )
71
Figura: 54: Diagrama en bloques de una conexión paralela.
En este caso, se tiene que,
y (n ) = y1 (n ) + y 2 (n )
= T1 [x (n )] + T2 [x (n )]
= (T1 + T2 ) [x (n )]
= T p [x (n )]
El sistema equivalente se muestra en la figura 55:
x (n )
Tp [
]
y (n )
Figura: 55: Sistema equivalente de una conexión paralela.
Se pueden construir sistemas más complicados a partir de los dos anteriores y también se pueden
analizar sistemas más complejos descomponiéndolos en combinaciones de éstos.
SISTEMAS DISCRETOS RECURSIVOS Y NO RECURSIVOS
En el sistema no recursivo los valores de la salida dependen exclusivamente de los valores de la
entrada en todo instante de tiempo; por el contrario en los sistemas recursivos aquellos dependen
de valores en tiempo pasado de la salida y de la entrada y por lo tanto para calcular la salida es
necesario tener la entrada y unas condiciones iniciales.
72
Como ejemplo de un sistema no recursivo se tiene el que calcula la media acumulativa:
y (n ) =
1
n
x (k )
n +1 ∑
n = 0,1,L
k =0
Este sistema requiere infinitas posiciones de memoria para almacenar la señal de entrada.
Una realización alternativa se construye de la siguiente manera:
y (n )(n + 1) =
n −1
∑ x ( k ) + x (n )
k =0
= n y (n − 1) + x (n )
y (n ) =
n y (n − 1) x (n )
+
(n + 1) (n + 1)
Este es un sistema recursivo equivalente (Ver figura 56) que requiere sólo una posición de
memoria para almacenar la salida inmediatamente anterior.
1
n +1
x (n )
+
×
×
Z −1
y (n )
n
Figura: 56: Sistema recursivo que calcula la media acumulativa.
Un sistema recursivo causal y realizable en la práctica(figura 58) se puede expresar así:
y (n ) = F [ y (n − 1), y (n − 2 ),L, y (n − N ), x (n ), x (n − 1), L, x (n − M )]
Un sistema no recursivo(figura 57) se puede expresar así:
y (n ) = F [x (n ), x (n − 1),L, x (n − M )]
73
La diferencia fundamental entre ambos está en el lazo de realimentación, lo que obliga a que
haya un elemento (como mínimo) de memoria, porque el cálculo de y (n ) en términos de y (n )
es imposible en sistemas discretos.
[
x (n )
F x (n ), x (n − 1 ), L , x (n − M
)]
y (n )
Figura: 57: Sistema no recursivo.
x (n )
[
F x (n ), x (n − 1), L , x (n − M ),
]
y (n − 1 ), y (n − 2 ), L , y (n − N )
y (n )
Z −1
Figura: 58: Sistema recursivo.
Otra diferencia entre los dos sistemas consiste en que la salida de un sistema recursivo debe ser
calculada en orden mientras que la de un sistema no recursivo puede ser calculada en cualquier
orden.
ANALISIS DE SISTEMAS DISCRETOS
LINEALES E INVARIANTES EN EL TIEMPO
Existen dos métodos de análisis (o sea de caracterización del comportamiento del sistema ante
cualquier señal de entrada) en el dominio del tiempo para los sistemas LTI, los cuales se explican
a continuación:
1. Un primer método consiste en resolver la ecuación de entrada−salida del sistema,
y (n ) = F [ y (n − 1), y (n − 2 ),..., y (n − N ), x (n ), x (n − 1),..., x (n − M )]
74
que para un sistema LTI tiene la forma:
N
y (n ) = − ∑ a k y ( n − k ) +
k =1
M
∑ bk x(n − k )
k =0
Esta relación se llama ecuación en diferencias y representa un sistema lineal porque las
potencias de x (n ), y (n ) y sus valores pasados no son mayores a uno, e invariante debido a que
los coeficientes {a k } y {bk } de esta ecuación no son funciones del tiempo y sólo dependen de
las características específicas del sistema.
Por ejemplo un sistema no lineal podría estar representado por una relación entrada−salida de la
siguiente forma:
y (n ) = ax (n ) + bx 2 (n )
De tal manera que este sistema no cumple la superposición:
T[ ]
x1(n ) → y1(n ) = a x1(n ) + b x12 (n )
T[ ]
x2 (n ) → y2 (n ) = a x2 (n ) + b x22 (n )
T[ ]
x1(n ) + x2 (n ) → y3 (n ) = a (x1(n ) + x2 (n )) + b (x1(n ) + x2 (n ))2
y3 (n ) ≠ y1 (n ) + y 2 (n )
Sin embargo este sistema es invariante en el tiempo porque a y b no dependen de éste.
75
A pesar que existe una metodología muy elaborada para resolver ecuaciones en diferencias lineales de
coeficientes constantes, algunas se pueden resolver por métodos iterativos, como se ve en el siguiente
ejemplo:
y (n ) = a y (n − 1) + x (n )
y (0 ) = a y (− 1) + x (0 )
y (1) = a y (0 ) + x (1)
= a 2 y (− 1) + a x (0 ) + x (1)
y (2 ) = a y (1) + x (2 )
= a 3 y (− 1) + a 2 x (0 ) + a x (1) + x (2 )
En definitiva, la señal de salida tendrá la siguiente forma:
y (n ) = a (n +1) y (− 1) +
n
∑ a k x (n − k )
k =0
La primera componente a (n+1) y (− 1) se debe fundamentalmente a las condiciones iniciales y a
parámetros del sistema y se denomina la respuesta natural o respuesta a la entrada nula.
n
La segunda componente
∑ a k x (n − k ) se debe a la señal de entrada y a parámetros del sistema y se
k =0
denomina respuesta forzada.
2. El segundo método consiste fundamentalmente en descomponer la señal de entrada
en suma de señales elementales, determinar la respuesta a cada una de esas señales y
76
luego aplicar la superposición, o sea sí,
x (n ) =
∞
∑ c k x k (n )
k = −∞
Y, además:
y k (n ) = T [x k (n )]
Entonces,


y (n ) = T  ∑ c k x k (n )
 k

= ∑ c k T [x k (n )]
k
= ∑ c k y k (n )
k
Las señales elementales más usadas son:
x k (n ) = δ (n − k ) :
Para señales de tipo general, y
x k (n ) = e j ω k n :
Para señales periódicas, de período N.
77
En donde,
ωk =
k 2π
N
con
k = 0, 1, 2, L , N − 1
78
SISTEMAS LTI DESCRITOS POR ECUACIONES EN DIFERENCIAS
Como se dijo antes, la solución de la ecuación en diferencias que describe la relación entrada−salida de
un sistema LTI consta de dos partes:
•
La respuesta a la señal de entrada con condiciones iniciales cero, denominada respuesta al estado
nulo o respuesta forzada, y zs (n ) .
•
La respuesta a las condiciones iniciales sin señal de entrada llamada respuesta a entrada nula o
respuesta natural, y zi (n ) .
La respuesta total consiste en la superposición de ambas,
y (n ) = y zs (n ) + y zi (n )
Esto nos indica que un sistema con condiciones iniciales distintas de cero no está en reposo en el
sentido que puede producir una señal de salida sin tener aplicada una señal de entrada.
La forma general de la relación entrada−salida de un sistema recursivo descrito por ecuaciones lineales
de coeficientes constantes, es:
N
y (n ) = − ∑ a k y ( n − k ) +
k =1
M
∑ bk x(n − k )
k =0
En donde N es el orden de la ecuación en diferencias u orden del sistema; para calcular la salida para
n ≥ 0 se deben conocer la entrada para n ≥ 0 y N condiciones iniciales.
79
SOLUCION DE ECUACIONES EN DIFERENCIAS
DE COEFICIENTES CONSTANTES
Para resolver una ecuación en diferencias lineal de coeficientes constantes se utilizan tres
métodos:
1. Método iterativo, similar al que se mostró previamente.
2. Método directo.
3. Método indirecto, basado en la transformada Z.
El objetivo consiste en hallar la salida y (n ) en términos de la señal de entrada y unas
condiciones iniciales. Esta salida consta de dos partes: La salida transitoria y h (n ) y la salida
forzada y p (n ) :
y (n ) = y h (n ) + y p (n )
METODO DIRECTO:
En este método se calculan de manera directa la solución transitoria y la respuesta forzada, como se
explica a continuación:
La solución transitoria y h (n ) se puede calcular haciendo x(n ) = 0 y suponiendo y h (n ) = λn .
y (n ) +
N
∑ ak y (n − k ) = 0
k =1
⇒
N
∑a λ
k =0
k
(n−k )
=0
a0 ≡ 1
80
Esto conduce al polinomio característico
λ N + a1λ N −1 + L + a N = 0
Con N raíces λ1 , λ 2 , L , λ N reales o complejas, algunas de orden múltiple.
•
Si son raíces únicas, la solución transitoria tiene la siguiente forma:
y h (n ) = c1λ1n + c 2 λn2 + L + c N λnN
Los coeficientes c1 , c 2 , L , c N se calculan con las condiciones iniciales.
•
Si hay algunas raíces de orden múltiple (Por ejemplo, λ1 de orden m), la respuesta transitoria tiene
la siguiente forma:
yh (n ) = c1λ1n + c2 nλ1n + c3n 2λ1n + L + cm n (m −1)λ1n + c(m +1)λn2 + L + c( N + m − 1 )λnN
Ejemplo:
Resolver la siguiente ecuación en diferencias:
y (n ) = ay (n − 1) + x(n )
y (n ) = yh (n ) + y p (n )
Para hallar la solución particular se hace x(n ) = 0 y se supone yh (n ) = λn , de tal manera que:
λn + (− a )λn −1 = 0
81
(λ − a )λn −1 = 0
Luego, λ = a
O sea,
yh (n ) = Cλn
= Ca n
Para determinar el valor de la constante, evaluamos la ecuación en diferencias con x(n ) = 0 :
y (0 ) = ay (− 1)
Ca 0 = ay (− 1)
De donde,
C = ay (− 1)
De tal manera que
yh (n ) = a n +1 y (− 1)
En Matlab podemos calcular la solución total de la ecuación en diferencias o las soluciones transitoria y
permanente usando la función filter(B,A,X,Ci).
En donde,
B es el vector de coeficientes de X,
A es el vector de coeficientes de Y,
X es la señal de entrada,
Ci es el vector de condiciones iniciales.
82
En el ejemplo anterior, se tiene:
A = [1,−a ]
B = [1]
Suponiendo y (− 1) = 1
Ci = [1]
En la figura 59 se muestra la solución transitoria suponiendo que a = 0.7 .
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
2
4
6
8
10
12
14
16
18
20
Figura 59 : Solución transitoria de la ecuación en diferencias del ejemplo.
83
La solución particular y p (n ) debe satisfacer la ecuación en diferencias para la señal x(n ), n ≥ 0 , o sea
es cualquier solución que satisface la ecuación:
N
M
k =0
k =0
∑ ak y(n − k ) = ∑ bk x(n − k ) ,
a0 ≡ 1
En este caso se supone que y p (n ) tiene una forma que depende de x(n ) ( Ver tabla 2.1, página 104 de
Proakis9.)
y p (n ) = kx(n )
Se evalúa la ecuación en diferencias con esta y p (n ) en valores de n donde no se haga cero ningún
término
Continuando con el ejemplo anterior y suponiendo una señal de entrada x(n ) = µ (n ) , la solución
particular se puede hallar así:
y p (n ) = Kx (n )
y p (n ) = Kµ (n )
Reemplazando en la ecuación en diferencias, se tiene:
Kµ (n ) = Kaµ (n − 1) + µ (n )
Todos los términos de ésta ecuación se hacen diferentes de cero para n ≥ 1 .
9
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 104
84
K = Ka + 1 , o sea:
K=
1
1− a
Luego, la solución particular será:
y p (n ) =
1
µ (n )
1− a
La solución total y (n ) = y h (n ) + y p (n )
y (n ) = Ca n +
1
µ (n )
1− a
Usando las condiciones iniciales para calcular la constante C, se tiene:
y (0) = C +
1
1− a
Pero también
y (0 ) = ay (− 1) + x(0)
De aquí
C = ay (− 1) −
a
1− a
Luego, la solución total es:
85
y (n ) = a n +1 y (− 1) −
1
a n +1
+
µ (n ) n ≥ 0
1− a 1− a
Esta solución se usa para calcular y zs (n ) haciendo las condiciones iniciales iguales a cero, como se
muestra en la figura 60.
3.5
3
2.5
2
1.5
1
0.5
0
0
2
4
6
8
10
12
14
16
18
20
Figura 60. Solución de estado cero de la ecuación del ejemplo.
Si además se hacen las condiciones iniciales diferentes de cero se calcula la respuesta a la entrada nula
y z i (n ) que se muestra en la figura 61.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
2
4
6
8
10
12
14
16
18
20
Figura 61: Respuesta a la entrada nula del ejemplo.
86
De tal manera que
y (n ) = y zs (n ) + y z i (n )
Como se muestra en la figura 62:
3.5
3
2.5
2
1.5
1
0.5
0
0
2
4
6
8
10
12
14
16
18
20
Figura 62: Respuesta total del sistema descrito por la ecuación en diferencias del ejemplo
La solución particular se puede calcular de la respuesta en estado nulo así:
y p (n ) = lim
n→∞
y zs (n )
Respuesta en régimen permanente
La respuesta en régimen permanente es la que persiste mientras la entrada lo haga; la que se
desvanece cuando n → ∞ se denomina respuesta transitoria.
DESCRIPCION DE UNA SEÑAL EN TERMINOS DE IMPULSOS
El producto entre x(n ) y un impulso retrasado δ (n − k ) :
x(n )δ (n − k ) = x(k )δ (n − k )
87
Extrae el valor de la secuencia en n = k , de tal manera que si se multiplica la secuencia por el
impulso retrasado todos los posibles desplazamientos − ∞ ≤ k ≤ ∞ y se suman todos los
resultados, se tiene:
x(n ) =
∞
∑ x(k )δ (n − k )
k = −∞
Esta ecuación se denomina la propiedad separadora del impulso.
Por ejemplo, la secuencia
x(n ) = {2,4,0,3}
↑
Se puede construir por medio de impulsos como:
x(n ) = 2δ (n + 1) + 4δ (n ) + 3δ (n − 2)
RESPUESTA DE UN SISTEMA LTI A ENTRADAS ARBITRARIAS
Sea la respuesta del sistema y (n, k ) a un impulso situado en n = k , denotada por h(n, k ) :
y (n, k ) ≡ T [δ (n − k )] ≡ h(n, k )
Si el impulso está ponderado por una cantidad x(k ) , la respuesta del sistema a este impulso será:
T[
]
x(k ) δ (n − k ) 
→ x(k ) h(n, k )
Con una señal de entrada arbitraria dada por la propiedad separadora:
x(n ) =
∞
∑ x(k )δ (n − k )
k = −∞
La señal de salida será la suma ponderada de las respuestas a cada impulso
y (n ) = T [x(n )]
 ∞

= T  ∑ x(k )δ (n − k )
k = −∞

88
=
∞
∑ x(k )T [δ (n − k )]
k = −∞
=
∞
∑ x(k )h(n, k )
k = −∞
Esta propiedad es aplicable a cualquier sistema lineal variante o invariante con el tiempo. Si,
además, el sistema es invariante con el tiempo y haciendo
h(n ) ≡ T [δ (n )]
Entonces, por la invarianza temporal se tiene:
T [δ (n − k )] = h(n − k ) y por tanto,
∞
y (n ) = ∑ x (k )h(n − k )
k = −∞
Esta operación se denomina la convolución entre x(n ) y h(n ) . Se simboliza de la siguiente
manera:
y (n ) = x(n ) ⊗ h(n )
El cálculo de la convolución requiere de los siguientes pasos:
1. Cambiar la variable independiente n por k
2. Realizar la reflexión de la respuesta al impulso cambiando h(k ) por h(− k )
3. Desplazar h(− k ) un tiempo n0 hacia la izquierda o hacia la derecha para calcular y (n0 )
4. Multiplicar x(k ) con h(n0 − k )
5. Sumar todos los valores de la secuencia producto
6. Repetir los pasos 3, 4, 5 para todos los valores de n necesarios
La siguiente función en Matlab permite visualizar el proceso de la convolución, mostrando en la
parte izquierda una de las dos secuencias, en el centro la otra secuencia girada y desplazada y a
la derecha el resultado parcial de la salida.
89
Ejemplo M9:
function y=convolucion(x,h)
a=length(x);
b=length(h);
L=a+b-1;
y=zeros(1,L);
x=[zeros(1,b-1),x];
h=fliplr(h);
for i=0:L-1
hp=[zeros(1,i),h,zeros(1,a-1-i)]
hp=hp(1:L)'
prod=x*hp;
y(i+1)=prod;
subplot(L,3,3*i+1)
stem(x)
pause
subplot(L,3,3*i+2)
stem(hp)
pause
subplot(L,3,3*i+3)
stem(y)
pause
end
En la figura 63 se muestra el proceso de la convolución para h(n ) = {1, 2, 3 } y x(n ) = { 4, 5, 6 } .
90
x(n)
h(n-k)
y(n)
10
4
4
5
2
2
0
10 0
5
5
5
2
0
10 0
5
5
5
5
0
40
5
5
5
0
40
5
5
0
40
0
0
40 0
5
0
40 0
5
20
5
2
0
5
20
2
0
10 0
0
20 0
10
2
0
10 0
0
0
40
0
40 0
5
20
0
5
0
0
5
Figura 63: Proceso de la convolución paso a paso con x (n ) = { 4, 5, 6 } y h(n ) = {1, 2, 3 } .
En MATLAB existe una función que nos permite conocer la señal de salida en términos de su
respuesta al impulso y la señal de entrada.
y = conv( x,h )
En donde x es un vector que contiene los valores de la señal de entrada y h es un vector que
contiene la respuesta al impulso del sistema.
Si la longitud de x es L y la longitud de h es M, entonces, la longitud del vector resultante de
salida y es L+M−1.
Si en la suma de convolución se cambia n − k por m se tiene:
y (n ) =
∞
∑ x(n − m )h(m )
m = −∞
91
Como m es un índice auxiliar se puede cambiar por cualquier otro,
y (n ) =
∞
∑ x(n − k )h(k )
k = −∞
Ejemplo, usando Matlab en el ejemplo anterior se tiene:
x=[4 5 6];
h=[1 2 3];
y=conv(x,h)
y = 4 13
y=conv(h,x)
y = 4 13
28
27
18
28
27
18
En resumen la sumatoria de convolución permite, conociendo la respuesta al impulso del sistema
LTI, calcular la respuesta a cualquier señal arbitraria de entrada.
Dicho de otra manera, diseñando adecuadamente la respuesta al impulso (Es decir, los
coeficientes h(k ) ) se puede lograr la respuesta deseada y (n ) ante una señal de entrada x(n ) .
PROPIEDADES DE LA CONVOLUCION
1. CONMUTATIVA
Esta propiedad indica que es posible cambiar un sistema que tiene una respuesta al impulso h(n )
y que genera una salida y (n ) ante una señal de entrada x (n ) por otro sistema que tiene una
respuesta al impulso x (n ) y que genera una salida y (n ) ante una señal de entrada h(n ) .
x (n ) ⊗ h (n ) = h (n ) ⊗ x (n )
El diagrama de bloques de la propiedad conmutativa se puede observar en la figura 64.
x(n )
h (n )
y (n )
≡
h (n )
x(n )
Figura 64: Propiedad conmutativa de la convolución.
y (n )
92
2. ASOCIATIVA
Esta propiedad es útil cuando se tienen varios sistemas LTI en cascada (Ver figura 65):
x (n )
h1 (n )
x (n )
≡
) n( 2h
x (n )
≡
y1 (n )
y 2 (n )
h1 (n ) ⊗ h2 (n )
h2 (n )
h1 (n )
y (n )
Figura 65: Propiedad asociativa de la convolución.
De la figura 65 se pueden establecer las siguientes ecuaciones:
[ x(n ) ⊗ h1 (n ) ] ⊗ h2 (n ) = x (n ) ⊗ [ h1 (n ) ⊗ h2 (n ) ]
y (n ) = [ x (n ) ⊗ h1 (n ) ] ⊗ h2 (n )
 ∞

=  ∑ x (k ) h1 (n − k ) ⊗ h2 (n )
 k =−∞

=
∞
∞
∑ ∑ x(k ) h1 (l − k ) h2 (n − l )
l = −∞ k = −∞
=
∞
∞
k =−∞
l =−∞
∑ x (k ) ∑ h1 (l − k ) h2 (n − l )
y (n )
y (n )
93
Si: se hace s = l − k
y (n ) =
∞
∑
k =−∞
⇒
l=s+k
∞
x (k )
∑ h1 (s ) h2 (n − s − k )
s =−∞
También, haciendo: m = n − k , se tiene:
y (n ) =
=
∞
∑
k =−∞
x (k )
∞
∑ h1 (s ) h2 (m − s )
s =−∞
∞
∑ x(k ) [h1 (m ) ⊗ h2 (m )]
k = −∞
Pero, m = n − k :
y (n ) =
∞
∑ x (k ) [h1 (n − k ) ⊗ h2 (n − k )]
k =−∞
= x (n ) ⊗ [h1 (n ) ⊗ h2 (n )]
Se concluye entonces que si se tienen N sistemas LTI en cascada se pueden reemplazar por uno
solo que cumpla la siguiente relación:
[x(n ) ⊗ h1 (n )] ⊗ h2 (n ) ⊗ L ⊗ h N (n ) = x(n ) ⊗ h (n )
En donde:
h (n ) = h1 (n ) ⊗ h2 (n ) ⊗ L ⊗ h N (n )
94
A la inversa también es cierto, un sistema LTI complejo se puede reemplazar por N sistemas LTI
más simples en cascada.
3. DISTRIBUTIVA
Esta propiedad es útil cuando se tienen varios sistemas LTI en paralelo como se muestra en la
figura 66:
h1 (n )
x (n )
+
h2 (n )
≡
y1 (n )
x (n )
h1 (n ) + h2 (n )
y 2 (n )
y (n )
Figura 66: Propiedad distributiva de la convolución.
De la figura 66 se pueden obtener las siguientes ecuaciones:
x (n ) ⊗ [h1 (n ) + h2 (n )] = x (n ) ⊗ h1 (n ) + x (n ) ⊗ h2 (n )
= x (n ) ⊗ h (n )
y (n )
95
En donde:
h(n ) = h1 (n ) + h2 (n )
Se concluye entonces que si se tienen N sistemas LTI en paralelo, se puede generar un sistema
LTI único equivalente con una respuesta al impulso
h (n ) = h1 (n ) + h2 (n ) + L + h N (n )
Y viceversa, se puede descomponer un sistema LTI complejo en sistemas LTI más simples en
paralelo.
SISTEMAS LTI CAUSALES
En este caso la respuesta al impulso debe ser cero para n < 0 :
h (n ) = 0 ,
n<0
Pero,
y (n ) =
∞
∑ h (k ) x (n − k )
k = −∞
Si el sistema es causal,
y (n ) =
∞
∑ h (k ) x ( n − k )
k =0
96
n
=
∑ x ( k ) h (n − k )
k = −∞
Si, además, la secuencia de entrada es causal,
x (n ) = 0 ,
n<0
Entonces, la señal de salida estará dada por:
y (n ) =
=
n
∑ x (k ) h ( n − k )
k =0
n
∑ h (k ) x (n − k )
k =0
Ejemplo:
Determinar la respuesta al escalón unidad de un sistema LTI con respuesta al impulso:
h(n ) = a n µ (n ) con a < 1
y (n ) =
n
∑ak
k =0
=
1 − a n +1
para n ≥ 0 y
1− a
y (n ) = 0 para n < 0
97
ESTABILIDAD PARA LOS SISTEMAS LTI
Sea x (n ) acotada, tal que
x (n ) ≤ M x < ∞
Si el sistema es estable, la salida será también acotada, o sea:
y (n ) ≤ M y < ∞
Pero,
y (n ) =
≤
∞
∑ h (k ) x (n − k )
k =−∞
∞
∑ h (k ) x (n − k )
k =−∞
≤
∞
∑ h ( k ) x (n − k )
k =−∞
≤Mx
∞
∑ h (k )
k = −∞
Luego, un sistema es estable sí:
98
∞
∑ h (k )
<∞
k = −∞
O sea, si la respuesta al impulso es absolutamente sumable. Esta forma de chequear la estabilidad
del sistema en muchos casos es menos eficiente que utilizando una herramienta similar a la
transformada de Laplace llamada la transformada Z
SISTEMAS CON RESPUESTA IMPULSIONAL FINITA O INFINITA
1. Los sistemas con respuesta impulsional finita (FIR) Se definen como aquellos sistemas que
tienen una respuesta al impulso dada por:
h (n ) = 0 para n < 0 y n ≥ M
De tal manera que:
y (n ) =
M −1
∑ h (k ) x (n − k )
k =0
En este caso la salida es la suma ponderada de las M muestras más recientes de la señal de
entrada, por lo que se requiere una memoria finita de M posiciones para almacenar las M
muestras de la señal de entrada.
2. Los sistemas con respuesta impulsional infinita (IIR), causales Se definen como aquellos sistemas
que tienen una respuesta al impulso dada por:
99
y (n ) =
∞
∑ h (k ) x ( n − k )
k =0
En este caso el sistema no se puede implementar directamente de acuerdo con esta ecuación
porque se requerirían infinitas posiciones de memoria. (Para almacenar un número infinito de
coeficientes y de valores de entrada).
La solución a este problema consiste en utilizar ecuaciones en diferencias para describir la relación
entrada−salida del sistema y resolver éstas para determinar la señal de salida. Por esta razón se puede
concluir que un sistema recursivo tiene un h(n ) de duración infinita (Sistema IIR), sin embargo, no todo
sistema IIR LTI puede ser descrito por medio de una ecuación en diferencias lineal de coeficientes
constantes (Subclase este último de los primeros).
CORRELACION DE SEÑALES DISCRETAS
La correlación es una función que permite:
•
Medir el parecido que hay entre dos secuencias (Con aplicaciones en radar, sonar, geología,
comunicaciones digitales, etc.).
•
Identificar la presencia o no de una señal que llega contaminada con ruido (En este caso se compara
la señal recibida con las posibles señales transmitidas que están almacenadas en el receptor).
AUTOCORRELACION Y CORRELACION CRUZADA
PARA SEÑALES DE ENERGIA
Por definición la correlación cruzada de dos señales reales está expresada de la siguiente manera:
∞
rxy (l ) = ∑ x (n ) y (n − l ) ,
n=−∞
l = 0, ± 1, ± 2, L
100
∞
rxy (l ) = ∑ x (n + l ) y (n ) ,
l = 0, ± 1, ± 2, L
n= −∞
En donde:
•
l es el retardo entre una señal y otra.
•
El subíndice indica la dirección en que una secuencia es desplazada con respecto a la otra (x no se
desplaza, y se desplaza l unidades).
La correlación cruzada entre y (n ) y x(n ) está dada por:
∞
ryx (l ) = ∑ y (n )x (n − l ) ,
l = 0, ± 1, ± 2, L
n =−∞
∞
ryx (l ) = ∑ y (n + l )x (n ) ,
l = 0, ± 1, ± 2, L
n =−∞
De estas ecuaciones se concluye que
rxy (l ) = ryx (− l ) , y por lo tanto ambas correlaciones cruzadas
aportan la misma información , pudiéndose calcular la una a partir de la otra.
La correlación está relacionada con la convolución de la siguiente manera:
rxy (l ) = x (l ) ⊗ y (− l )
Por lo tanto se puede utilizar el algoritmo de la convolución para el cálculo de la correlación
cruzada.
La autocorrelación de una función está dada por:
101
∞
rxx (l ) = ∑ x (n ) x (n − l ) ,
l = 0, ± 1, ± 2, L
n =−∞
∞
rxx (l ) = ∑ x (n + l ) x (n ) ,
l = 0, ± 1, ± 2, L
n =−∞
En Matlab se tiene una función que realiza la correlación de dos funciones x e y:
xcorr ( x, y )
Ejemplo M10:
function z=correlacion(x,y)
%Esta función dibuja la correlación entre las funciones x e y.
z=xcorr(x,y);
subplot(311)
stem(x)
ylabel('x(n)')
subplot(312)
stem(y)
ylabel('y(n)')
subplot(313)
stem(z)
ylabel('rxy(l)')
En la figura 67 se muestran dos señales x(n ) e y (n ) y su correspondiente correlación.
102
6
x (n)
4
2
0
1
1.5
2
2.5
3
3.5
4
4.5
5
1
1.5
2
2.5
3
3.5
4
4.5
5
-3
-2
-1
0
1
2
3
4
y (n)
10
5
0
rx y (l)
150
100
50
0
-4
Figura 67: Secuencia de correlación rxy ( l )
de dos señales x (n ) e y (n ) .
En la figura 68 se muestra una señal aleatoria con comportamiento estadístico normal y su
respectiva función de autocorrelación.
103
3
2
x (n)
1
0
-1
-2
0
5
10
15
20
25
30
35
40
45
50
-20
-50
-40
-30
-20
-10
0
10
20
30
40
50
60
rxx (l)
40
20
0
Figura 68: Secuencia de autocorrelación rxx ( l )
de una señal x (n ) .
PROPIEDADES DE LAS SECUENCIAS DE AUTOCORRELACION
Y CORRELACION CRUZADA
Sea una secuencia z (n ) el resultado de la combinación lineal de dos secuencias de energía finita x (n ) e
y (n ) :
z (n ) = ax (n ) + by (n − l )
Con:
a, b: Constantes.
l: Desplazamiento en el tiempo.
104
La energía de esta señal está dada por:
∞
∑ [ax (n ) + by (n − l )]2
n = −∞
= a2
∞
∑ x 2 (n ) + b 2
n = −∞
∞
∑
n = −∞
y 2 (n − l ) + 2 ab
∞
∑ x (n ) y (n − l )
n = −∞
= a 2 rxx (0 ) + b 2 ryy (0 ) + 2 abrxy (l )
En donde:
rxx (0 ) = E x y,
r yy (0 ) = E y
Entonces,
a 2 rxx (0 ) + b 2 r yy (0 ) + 2 ab rxy ( l ) ≥ 0
Señal de energía
Si b ≠ 0 :
2
a
a
rxx (0 )   + 2 rxy (l )   + r yy (0 ) ≥ 0
b
b
Considerando la anterior como una ecuación cuadrática se tiene:
[
]
2
4 rxy
( l ) − rxx (0 ) r yy (0 ) ≤ 0
105
Ya que rxy ≤ rxx y rxy ≤ r yy (Las dos señales se parecen menos entre ellas que lo que se parecen a sí
mismas).
Entonces,
rxy ( l ) ≤
rxx (0 ) r yy (0 ) =
Ex E y
Si y (n ) = x (n ) :
rxx ( l ) ≤ rxx (0 ) = E x
Esto implica que la correlación alcanza su valor máximo para un retardo cero.
Por otra parte, si una señal se escala en una cantidad su correlación lo hace en la misma proporción pero
no cambia su forma, y por lo tanto en algunas ocasiones es conveniente normalizar, tal que la
autocorrelación normalizada está dada por:
ρ xx (l ) =
rxx ( l )
rxx (0 )
Y la correlación cruzada normalizada es:
ρ xy (l ) =
rxy ( l )
rxx (0 )r yy (0 )
106
De las dos ecuaciones anteriores se puede concluir:
ρ xx ( l ) ≤ 1 y ρ xy ( l ) ≤ 1
Otra propiedad de la correlación:
rxy ( l ) = r yx (− l ) → rxx ( l ) = rxx (− l )
O sea que la autocorrelación es una función par y por tanto sólo es necesario calcular rxx (l ) para l ≥ 0 .
AUTOCORRELACION Y CORRELACION CRUZADA
DE SECUENCIAS DE POTENCIA
Si x (n ) e y (n ) son secuencias de potencia, la correlación cruzada entre ellas es:
rxy ( l ) = lim
M →∞
1
2M + 1
M
∑ x (n ) y ( n − l )
n =− M
Además, la autocorrelación de x (n ) :
rxx ( l ) = lim
M →∞
1
2M + 1
M
∑ x (n ) x (n − l )
n =− M
Si x (n ) e y (n ) son señales periódicas de período N, los promedios sobre un intervalo infinito coinciden
con los promedios tomados sobre un intervalo de longitud N, luego, en este caso:
107
rxy ( l ) =
1 N −1
x (n ) y (n − l )
N ∑
rxx ( l ) =
1 N −1
x (n ) x (n − l )
N ∑
n =0
n =0
Ambas secuencias son periódicas de período N, lo que sirve para identificar periodicidades en
secuencias contaminadas con ruido.
y (n ) = x (n ) + w (n )
En donde w(n ) es una señal aleatoria.
La autocorrelación de y (n ) está dada por:
r yy ( l ) = rxx ( l ) + rxw ( l ) + rwx ( l ) + rww ( l )
En este caso, las correlaciones rxw ( l ) , rwx ( l ) son iguales y además muy pequeñas, ya que no hay
mucho parecido entre x (n ) y w(n ) , además rww ( l ) tendrá un pico en l = 0 y tenderá rápidamente a
cero por su naturaleza aleatoria, por tanto rxx ( l ) será aproximadamente periódica y exhibirá picos en
l = 0, N , 2 N , L
Si sólo se observan M muestras de la señal y (n ) , la amplitud de los picos disminuirá a medida que l
tienda a M ya que muchos productos de x (n ) x (n − l ) se harán cero, luego se debe evitar calcular
r yy ( l ) para valores grandes de l (l > M 2 ) .
108
En la figura 69 se observan una señal periódica contaminada con ruido y sus respectivas
autocorrelaciones.
Rxx(l)
0
-5
w(n)
2000
30
40
50
60
-2000
50
70
2
100
0
50
-2
-4
30
40
50
60
Rzz(l)
0
-10
30
40
50
60
70
100
150
100
150
100
150
0
-50
50
2000
70
10
w(n)+x(n)
0
Rww(l)
x(n)
5
0
-2000
50
Figura 69: Correlación de una secuencia periódica, una secuencia ruidosa y la suma de las dos.
SECUENCIAS DE CORRELACION DE ENTRADA−SALIDA
Sea un sistema LTI como el que se muestra en la figura 70:
x (n )
h (n )
y (n )
109
Figura 70: Diagrama de bloques de un sistema LTI con salida y (n ) .
y ( n ) = x (n ) ⊗ h (n )
y (n ) =
∞
∑ h (k ) x ( n − k )
k = −∞
La correlación entre las señales de entrada y salida es:
r yx ( l ) = y ( l ) ⊗ x (− l ) = h( l ) ⊗ [x ( l ) ⊗ x (− l )]
O sea (Ver figura 71):
r yx ( l ) = h( l ) ⊗ rxx ( l )
rxx (n )
h (n )
r yx (n )
Figura 71: Diagrama de bloques de un sistema LTI con salida r yx (n ) .
Si se reemplaza l por − l , se tiene:
rxy ( l ) = h (− l ) ⊗ rxx ( l )
Además:
r yy ( l ) = y ( l ) ⊗ y (− l )
= [h( l ) ⊗ x ( l )] ⊗ [h(− l ) ⊗ x (− l )]
110
= [h( l ) ⊗ h(− l )] ⊗ [x ( l ) ⊗ x (− l )]
= rhh ( l ) ⊗ rxx ( l )
Esta correlación existe si el sistema es estable. Además la estabilidad asegura que una señal de entrada
de energía (potencia) produce a la salida una señal de energía (potencia).
Con l = 0 :
r yy (0 ) =
∞
∑ rhh (k ) rxx (k )
k =−∞
Estas relaciones son válidas tanto para señales de energía como de potencia.
TRANSFORMADA Z
La transformada Z tiene los siguientes usos:
•
Análisis y caracterización de sistemas LTI.
•
Solución de ecuaciones en diferencias.
•
Cambia operaciones complicadas por operaciones simples (Por ejemplo, cambia la convolución por
un producto).
•
Permite analizar la estabilidad de un sistema LTI de acuerdo con la localización de los polos y los
ceros de su función de transferencia.
TRANSFORMADA Z DIRECTA
111
La transformada Z está definida de la siguiente forma:
X (z ) = Z ( x(n ) )
=
∞
∑ x (n ) z − n
n =−∞
En donde z es una variable compleja, dada por:
z = re jθ
Esta relación se simboliza como un par transformado de la siguiente manera:
x (n ) ←→ X ( z )
Z
Por ser una serie infinita de potencias es posible que la transformada no converja o que solamente lo
haga para algunos valores de z; Se habla entonces de la región de convergencia (ROC) como aquella
región del plano z en donde X ( z ) es finita.
Ejemplos:
La secuencia
112
x1 (n ) = { 1, 2, 5, 7, 0, 1 }
↑
Tiene una transformada z dada por:
X 1 ( z ) = 1 + 2 z −1 + 5 z −2 + 7 z −3 + z −5
De esta expresión se concluye que la ROC es todo el plano z excepto, z = 0 . Igualmente la secuencia
x 2 (n ) = { 1, 2, 5, 7, 0, 1 }
↑
Tiene una transformada z dada por:
X 2 ( z ) = z 2 + 2 z + 5 + 7 z −1 + z −3
Con una ROC dada por todo el plano z excepto, z = 0 y z = ∞ . De manera similar, la secuencia
x3 (n ) = δ (n )
Tiene una transformada z dada por:
X 3 (z ) =
∞
∑ δ (n ) z − n
n= −∞
=1
En este caso la ROC es todo el plano z. Para la secuencia
x 4 (n ) = δ ( n − k )
La transformada z se puede escribir como:
113
X 4 (z ) = z −k
Con una ROC dada por todo el plano z excepto, z = 0 .
Se concluye entonces, que las secuencias de duración finita tienen una ROC en todo el plano z excepto
quizá en z = 0 y/o z = ∞ .
La transformada Z es una manera alternativa de representar a x (n ) porque los coeficientes del
polinomio son los valores de x (n ) en todo n, y el exponente de z indica el valor de muestra del
coeficiente.
Ejemplo:
x ( n ) = α n µ (n )
∞
X (z ) =
X (z ) =
∑α n z − n
n=0
n
∑ (α z −1 ) = ∑ (r )n
∞
∞
n =0
n =0
Esta expresión es la suma de una serie geométrica, que se puede hallar así:
S=
∞
∑ (r ) n
n =0
(
1+ r + r2 +L+ rn )
n→∞
= lim
114
(
r + r 2 + L + r n +1 )
n→∞
r × S = lim
(
1 − r n +1 )
n→∞
S − r × S = lim
En definitiva,
 1 − r n +1 

S = lim 
 1− r 


n→∞
La cual converge si r < 1
O sea que
X (z ) =
1
1 − α z −1
Siempre y cuando,
α z −1 < 1
α < z
z > α
115
La región de convergencia es aquella en donde z > α .
Ejemplo:
Si α = 0.7 , el gr áfico de polos y ceros de X ( z ) es el que se muestra en la figura 72:
Diagrama de polos y ceros de la transformada Z
1
0.8
0.6
Imaginary Part
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
Real Part
0.5
1
Figura 72: Diagrama de polos y ceros para X ( z ) con α = 0.7 .
En este caso la región de convergencia es la parte externa del círculo que pasa por el polo en z = 0.7 ,
por la condición z > α
Para construir este gráfico se utilizó la función de Matlab zplane(B,A) en donde B contiene
los coeficientes del numerador y A contiene los coeficientes del denominador de la
transformada z, suponiendo que dicha transformada esté dada como una razón de
polinomios.
116
La siguiente función construida en Matlab permite dibujar la superficie de la transformada Z:
Ejemplo M11:
function []=superficie(X,a,b)
%Esta función dibuja la superficie de la transformada Z
%se debe introducir la función X(z) entre comillas simples y las %dimensiones
del rectangulo donde se dibujará la superficie a y b
x=-a:0.05:a;
y=-b:0.05:b;
M=length(y);
L=length(x);
z=zeros(L,M);
for i=1:L
for k=1:M
z(i,k)=[x(i)+j*y(k)];
end
end
surf(real(z),imag(z),abs(eval(X)))
La superficie de la magnitud de la transformada Z en el ejemplo anterior calculada con esta función
queda como se muestra en la figura 73:
117
Figura 73 : Superficie de la magnitud de la transformada Z del ejemplo.
Se observa en esta figura que la magnitud de la superficie tiende a infinito cerca del polo y tiende a cero
cerca del cero de la función.
Ejemplo:
x (n ) = −α n µ (− n − 1)
X (z ) =
−1
∑ − α n z −n
n= −∞
∞
= − ∑ α −n z n
n =1
118
∞
( )n
= − ∑ α −1 z
n =1
∑ (α −1 z )
∞
= 1−
n
n =0
1
=1−
=
1−α
−1
1
1 − α z −1
para
α −1 z < 1
z
,
ROC :
z < α
Se puede concluir, entonces, que aunque las dos secuencias son diferentes, sus transformadas son
idénticas, excepto por la región de convergencia que, en este caso, es el interior del círculo de radio
r < α . Esto nos indica que la transformada z no especifica de manera única a una secuencia a no ser
que vaya acompañada de su región de convergencia.
También se puede concluir que la región de convergencia de una secuencia causal es el exterior de un
círculo y la de una secuencia anticausal es el interior de éste.
En un caso más general, si se tiene una secuencia x (n ) bilateral, con z = r e jθ , entonces:
X (z ) =
X (z ) =
∞
∑ x(n ) z − n
n = −∞
∞
∑ x(n ) r − n e − j nθ
n = −∞
X (z ) =
∞
∑ x (n ) r −n e − j nθ
n =−∞
119
≤
∞
x (n ) r − n e − j n θ
∑
n= −∞
=
∞
x (n ) r − n
∑
n =−∞
O sea que X ( z ) existe si x (n ) r − n es absolutamente sumable. De manera equivalente:
X (z ) ≤
=
−1
x (n ) r − n +
∑
n= −∞
∞
∑
x (− n ) r n
∞
∑ x (n ) r − n
n =0
+
∞
∑ x (n ) r − n
1 42443
n=
1
4
0 42443
n=
1
4
(1)
( 2)
Para que (1) converja deben existir valores de r lo suficientemente pequeños para que la secuencia
x (− n ) r n sea absolutamente sumable (Es decir, el interior de un círculo de radio r1 , ver figura 74).
Región de c onvergenc ia
0.6
0.4
r1
Im ag(z )
0.2
0
-0.2
-0.4
-0.6
-0.8
-0.6
-0.4
-0.2
0
Real(z )
0.2
0.4
0.6
0.8
120
Figura 74: Región de convergencia para la secuencia x (− n ) r .
n
Para que (2) converja deben existir valores de r lo suficientemente grandes (Es decir, el exterior de un
círculo de radio r2 , ver figura 75) para que x (− n )r n (o x (n ) r − n ) sea absolutamente sumable.
Región de c onvergenc ia
0.6
0.4
r2
Im ag(z )
0.2
0
-0.2
-0.4
-0.6
-0.8
-0.6
-0.4
-0.2
0
Real(z )
0.2
0.4
0.6
0.8
Figura 75: Región de convergencia para la secuencia x (n ) r
−n
Si r1 > r2 la región de convergencia será un anillo, ver figura 76:
Región de convergencia
0.6
0.4
0.2
Im
ag(
z)
0
-0.2
-0.4
-0.6
-0.8
-0.6
-0.4
-0.2
0
Real(z)
0.2
0.4
0.6
0.8
Figura 76: Región de convergencia en anillo, con r1 > r2 .
.
121
Si r1 < r2 no existirá una región de convergencia y por tanto X ( z ) tampoco existirá.
Como conclusión, la ROC de una secuencia bilateral infinita es un anillo; además si una
secuencia es la superposición de varias secuencias, su región de convergencia será la intersección
de las ROC individuales.
Como un ejemplo, la siguiente secuencia :
x (n ) = α n µ (n ) + β n µ (− n − 1)
Tiene una transformada z dada por:
X (z ) =
1
1 − α z −1
−
1
1 − β z −1
De lo anterior se puede concluir que:
< α no hay región de convergencia y por tanto X ( z ) no converge.
•
Si β
•
Por el contrario, si β
X (z ) =
1
1−α z
−1
> α , entonces:
−
1
1 − β z −1
,
ROC : α ≤ z ≤ β
LA TRANSFORMADA Z INVERSA
De manera te ó rica la transformada z inversa puede hallarse de la siguiente manera:
X (z ) =
∞
∑ x (k ) z − k
k =−∞
122
Multiplicando por z n −1 :
X (z ) z
n −1
=
∞
∑ x (k ) z n−1−k
k =−∞
Integrando alrededor de una línea que rodea la región de convergencia, se tiene:
n−1
∫ X ( z ) z dz = ∫
∞
∑ x (k ) z n−1−k dz
c k =−∞
c
=
∞
∑ x(k ) ∫ z n−1−k dz
k = −∞
c
La integral de línea debe evaluarse en una trayectoria cerrada dentro de la región de convergencia.
Por el teorema integral de Cauchy:
1
2π j
∫z
n−1− k
c
 1 , para k = n
dz = 
 0 , para k ≠ n
O sea, en definitiva:
∫ X (z ) z
n−1
dz = 2π j x (n )
c
A manera de prueba, se tiene que:
123
∫z
−1
dz = ln ( z )
c
(
= ln r e jθ
= jθ
)
r
2π
+ ln (r ) 1 ¿?
0
r1
= 2π j
Además,
∫z
c
n −1−k
z n −k
dz =
n−k
r n − k e jθ ( n − k )
=
n−k
θ =2π
θ =0
=0
Para encontrar la transformada z inversa normalmente no se usa el procedimiento de evaluar la integral
cerrada vista previamente, sino un método derivado de éste y tablas, como se verá más adelante.
124
PROPIEDADES DE LA TRANSFORMADA Z
•
Si:
LINEAL
x1 (n ) ←→ X 1 ( z ) y,
Z
x 2 (n ) ←→ X 2 ( z )
Z
Entonces:
x ( n ) = ax1 (n ) + bx 2 (n ) ←→ X (z ) = aX 1 ( z ) + bX 2 ( z )
Z
Ejemplo:
[ ( ) ( )]
x(n ) = 3 2 n − 4 3 n µ (n ) x1 ( n ) = 2 n µ ( n ) ←→ X 1 ( z ) =
x 2 ( n ) = 3 n µ ( n ) ←→ X 2 ( z ) =
1
Z
1 − 3 z −1
3
1 − 2 z −1
−
4
1 − 3 z −1
Ejemplo:
x ( n ) = cos (ω 0 n ) µ ( n )
=
(
)
1 j ω0 n
e
+ e − j ω0 n µ (n )
2
, ROC :
1 − 2 z −1
, ROC : z > 3
X ( z ) = 3X1 ( z ) − 4 X 2 ( z )
=
1
Z
z > 3
, ROC : z > 2
125
Pero,
Z
e j ω 0 n µ ( n ) ←→
e − j ω 0 n µ ( n ) ←→
1
1− e
=
12
1 − e j ω 0 z −1
z
1
Z
X (z) =
, ROC : z > 1
j ω 0 −1
, ROC : z > 1
1 − e − j ω0 z −1
+
12
1 − e − j ω0 z −1
1 − z −1 cos( ω 0 )
1 − 2 z −1 cos( ω 0 ) + z −2
,
z >1
z >1
,
Ejemplo:
x(n ) = sen (ω 0 n ) µ (n )
=
X (z) =
=
•
Si,
(
)
1
e j ω 0 n − e − j ω 0 n µ (n )
2j
1 2j
j ω 0 −1
1− e
z
−
1− e
z −1 sen (ω0 )
1 2j
− j ω0 −1
1 − 2 z −1 cos (ω0 ) + z − 2
RETARDO TEMPORAL
x ( n ) ←→ X ( z )
Z
Entonces,
x ( n − k ) ←→ z −k X ( z )
Z
,
z >1
z
,
z >1
126
La ROC es igual que la de X ( z ) excepto para z = 0 , si k > 0 ó z = ∞ , si k < 0 .
Ejemplo:
La transformada z del pulso
 1 , para 0 ≤ n ≤ N − 1
x(n ) = 
 0 , otro caso
Se puede calcular a partir de la transformada del escalón unidad, así:
x(n ) = µ (n ) − µ (n − N )
X ( z ) = Z ( µ (n ) ) − Z (µ (n − N ) )
X ( z ) = Z ( µ (n ) ) − z − N Z ( µ (n ) )
(
)
X ( z ) = 1 − z − N Z (µ (n ) )
Y por tanto se concluye que:
X (z) =
•
Si,
(1 − z − N ) ,
( 1 − z −1 )
ROC :
z >1
ESCALADO EN EL DOMINIO DE Z
x ( n ) ←→ X ( z ) , ROC : r1 ≤ z ≤ r2
Z
127
Entonces,
(
)
a n x ( n ) ←→ X a −1 z , ROC : a r1 ≤ z ≤ a r2
Z
Con a constante real o compleja.
(
∞
) ∑ x(n ) (a −1 z ) −n
Z a n x(n ) =
n =−∞
(
)
= X a −1 z , r1 ≤ a −1 z
≤ r2 , o sea :
a r1 ≤ z ≤ a r2
Como
a = r0 e j ω 0 , z = r e jω
Entonces
a −1 z =
r
e j (ω − ω 0 )
r0
Lo cual produce diferentes efectos sobre la transformada dependiendo de r0 :
•
r0 > 1 : Contracción y rotación.
•
r0 < 1 : Expansión y rotación.
•
r0 = 1 : Rotación únicamente.
Ejemplo:
128
Como un ejemplo del escalado, la transformada de la secuencia
x ( n ) = a n cos (ω 0 n ) µ ( n )
Estará dada por:
X (z) =
•
Si,
1 − a z −1 cos ω 0
1 − 2 a z −1 cos ω 0 + a 2 z −2
,
z > a
INVERSION TEMPORAL
x ( n ) ←→ X ( z ) , ROC : r1 ≤ z ≤ r2
Z
Entonces:
( )
x ( − n ) ←→ X z -1 , ROC :
Z
1
1
≤ z ≤
r2
r1
Ejemplo:
Para hallar la transformada z de la señal
x(n ) = µ (− n )
Se utiliza el par transformado:
µ ( n ) ←→
Z
1
1 − z −1
, ROC : z > 1
129
Se tiene, entonces, que:
µ ( − n ) ←→
Z
•
Si,
1
, ROC : z < 1
1− z
DIFERENCIACION EN Z
x ( n ) ←→ X ( z ) , ROC : r1 ≤ z ≤ r2
Z
Entonces,
n x ( n ) ←→ − z
Z
dX ( z )
dz
Ejemplo:
x ( n ) = n a n µ ( n ) ←→
Z
•
a z −1
(1 − a z )
CONVOLUCION DE DOS SECUENCIAS
Si,
x1 ( n ) ←→ X 1 ( z )
Z
x 2 ( n ) ←→ X 2 ( z )
Z
−1
2
, ROC :
z > a
130
Entonces:
x ( n ) = x1 ( n ) ⊗ x 2 ( n ) ←→ X ( z ) = X 1 ( z ) X 2 ( z )
Z
La transformada Z cambia la operación de convolución entre dos secuencias por el producto de
sus respectivas transformadas.
Ejemplo:
x1 ( n ) = { 1, − 2 , 1 } ←→ X 1 ( z ) = 1 − 2 z −1 + z − 2
Z
 1 , 0 ≤ n ≤ 5
Z
x 2 (n ) = 
→ X 2 ( z ) = 1 + z −1 + z − 2 + z − 3 + z − 4 + z − 5
 ←
0 , otro caso 
Realizando el producto de las dos transformadas
X ( z ) = X1 ( z ) X 2 ( z )
Se tiene entonces,
1 + z −1 + z −2 + z −3 + z −4 + z −5
1 − 2 z −1 + z − 2
1 + z −1 + z − 2 + z − 3 + z − 4 + z − 5
− 2 z −1 − 2 z − 2 − 2 z − 3 − 2 z − 4 − 2 z − 5 − 2 z − 6
z − 2 + z −3 + z − 4 +
1 − z −1
z −5 +
z −6 + z −7
− z −6 + z −7
131
Luego:
X (z ) = 1 − z −1 − z −6 + z −7
La convolución de las dos secuencia estará dada entonces por:
x ( n ) = { 1, − 1, 0, 0, 0, 0, − 1, 1 }
De acuerdo con este resultado, la relación entrada−salida de un sistema LTI estará dada por:
Y (z ) = H (z )X (z )
En donde H ( z ) es la transformada de la respuesta al impulso y se denomina función de
transferencia del sistema.
•
MULTIPLICACION DE DOS SECUENCIAS
Si,
x1 ( n ) ←→ X 1 ( z )
Z
x 2 ( n ) ←→ X 2 ( z )
Z
Entonces:
x ( n ) = x1 ( n ) x 2 ( n ) ←→ X ( z ) =
Z
1
2π j
 z  v −1 dv

v 
∫ X 1 (v ) X 2 
c
132
De tal manera que, si
X 1 (v ) converge para r1 l ≤ v ≤ r1 u y
X 2 ( z ) converge para r2 l ≤ z ≤ r2 u ,
Entonces X 2 ( z / v ) converge para r2 l ≤ z v ≤ r2 u , y por lo tanto la región de convergencia
de X ( z ) es como mínimo r1 l r2 l ≤ z ≤ r1 u r2 u .
Si, además,
x ( n ) = x1 ( n ) x 2∗ ( n )
Entonces,
X (z) =
•
1
2π j
∫
c
∗
∗  z  −1
X 1 (v ) X 2
v dv
 ∗ 
 v

RELACION DE PARSEVAL
∞
1
n =−∞
2π j
∑ x1 (n ) x2∗ (n ) =
∗  1  −1
 v dv
∗ 
∫ X 1 (v ) X 2 
c
Siempre que r1 l r2 l < 1 < r1 u r2 u
v
133
•
TEOREMA DEL VALOR INICIAL
Si x ( n ) es una secuencia causal o sea, x ( n ) = 0 , n < 0 entonces:
x (0 ) = lim
X (z)
z→∞
X (z) =
∞
∑ x ( n ) z −n
n =0
= x ( 0 ) + x (1) z −1 + L
Si z → ∞ , entonces z − n → 0 para n > 0 .
•
CORRELACION DE DOS SECUENCIAS
Si,
x1 ( n ) ←→ X 1 ( z )
Z
x 2 ( n ) ←→ X 2 ( z )
Z
Entonces:
( )
Z
rx1 x 2 (l ) ←→ R x1 x 2 ( z ) = X 1 ( z ) X 2 z −1
Ya que,
134
rx1 x 2 (l ) = x1 (l ) ⊗ x 2 ( − l )
TRANSFORMADAS Z RACIONALES
Algunas transformadas, incluyendo la función de transferencia de sistemas LTI, se pueden
expresar como el cociente de dos polinomios:
X (Z ) =
=
N (Z )
D( Z )
b0 + b1 z −1 + b2 z −2 + L + bM z − M
a 0 + a1 z −1 + a 2 z − 2 + L + a N z − N
M
∑ bk
z −k
N
z −k
= k =0
∑ ak
k =0
El comportamiento de la función en el tiempo x (n ) correspondiente a la transformada X (z ) ,
depende de las raices de los polinomios del numerador y del denominador, como se analizará a
continuación:
135
Se definen los ceros de X ( z ) como los valores de z para los cuales X ( z ) = 0 (raíces del
numerador) y los polos de X ( z ) como los valores de z para los cuales X ( z ) = ∞ (raíces del
denominador)
Se pueden evitar las potencias negativas, suponiendo que a 0 y b0 son diferentes de cero,
sacando factor común b0 z − M y a 0 z − N :
 b 

Z M +  1  z M −1 + L + 
b z
 b0 

X (z) = 0
×
−N
 a 

a0 z
Z N +  1  z N −1 + L + 
 a0 

−M
bM
b0
aN
a0






De tal manera que se puede expresar la transformada como una serie de factores o raíces tanto
en el numerador como en el denominador:
X (z) =
b0 ( − M + N ) ( z − z1 ) ( z − z 2 ) L ( z − z M )
z
×
a0
( z − P1 ) ( z − P2 ) L ( z − PN )
O, de manera equivalente:
M
∏ (z − zk )
X ( z ) = G × z ( N − M ) × k =1
N
∏ ( z − pk )
k =1
En este caso se tienen:
M ceros.
N polos.
N −M
ceros o polos en el origen.
136
Un cero en z = ∞ , si X (∞ ) = 0 y un polo en z = 0 , si X (0 ) = ∞ .
Igual número de polos y ceros.
Esta transformada se puede graficar mediante un diagrama de polos (Que normalmente se
representan por una X) y ceros (Representados por una O), indicándose la multiplicidad por un
número al lado del polo o del cero. Por definición la región de convergencia no puede contener
polos.
Ejemplo:
Determinar el diagrama de polos y ceros de la señal:
x(n ) = a n u ( n ) ,
a>0
La transformada Z de esta secuencia, está dada por:
X (z) =
1
1 − a z −1
=
z
, ROC : z > a
z−a
En la figura 77 se puede observar el diagrama de polos y ceros correspondiente a esta
transformada.
Diagram a de polos y c eros
1
0.8
0.6
0.4
Im ag(z )
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
Real(z )
0.5
1
Figura 77: Diagrama de polos y ceros para X ( z ) con ROC : z > a .
En la figura 78 se observa el gráfico de la magnitud de dicha transformada:
137
Figura 78: Gráfico de la magnitud de la transformada Z del ejemplo.
Ejemplo:
Determinar el diagrama de polos y ceros de la señal:
a n , 0 ≤ n ≤ M − 1
x(n ) = 
0 , el resto
La correspondiente transformada Z estará dada por:
X (z ) =
X (z ) =
M −1
∑
an z −n
n=0
M −1
∑
n=0
( a z −1 ) n
Lo que corresponde a la suma de una serie geométrica dada por:
X (z ) =
(
1 − a z −1
)M
1 − a z −1
O, de manera equivalente:
138
zM − aM
z
×
z−a
zM
X (z ) =
Se puede concluir que esta función tiene:
M ceros en z k = a e
jθ k
j 2π k
= a e M , k = 0, 1, 2, L , M − 1
Ya que si:
z = r e jθ
Entonces:
zM = aM
Y por tanto,
r M e j M θ = a M ⇒ r = a ∧ Mθ k = 2π k
∴ θk =
2π k
M
•
El cero en z = a se cancela con el polo en z = a .
•
Finalmente,
X (z) =
( z − z1 ) ( z − z 2 ) L ( z − z M −1 )
z M −1
M − 1 ceros en z = z k .
M − 1 polos en z = 0 .
Suponiendo como un caso particular que M = 8 :
•
Se tienen siete ceros en:
j 2π k
z k = a e 8 , k = 1, 2, L , 7
139
jπ
z1 = a e 4
jπ
z2 = a e 2
z3 = a e
j 3π
4
z 4 = a e jπ
j 5π
z5 = a e 4
j 3π
z6 = a e 2
j 7π
z7 = a e 4
•
Además se tienen siete polos en z = 0 .
El diagrama de polos y ceros para X ( z ) se observa en la figura 79:
Diagrama de polos y ceros
0.8
0.6
0.4
Imag(z)
0.2
m=7
0
-0.2
-0.4
-0.6
-0.8
-1
-0.8
-0.6
-0.4
-0.2
0
Real(z)
0.2
0.4
0.6
0.8
1
Figura 79: Diagrama de polos y ceros para X ( z ) con M = 8 .
Si se tiene el diagrama de polos y ceros se puede determinar X ( z ) excepto el factor de escala G.
LOCALIZACION DE LOS POLOS EN EL PLANO Z
Y COMPORTAMIENTO EN EL TIEMPO DE SEÑALES CAUSALES
140
El comportamiento en el tiempo de una señal causal depende tanto del número de polos de su
transformada Z, como de la localización de éstos.
•
Un solo polo
La única que lo tiene es la transformada de la exponencial real.
x ( n ) = a n µ ( n ) ←→ X ( z ) =
Z
1
1 − a z −1
, ROC : z > a
Esta transformada tiene un polo en z = a , ver figuras 80 a 85.
a < 1 y a positiva:
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1
0.5
0
0
5
10
15
20
25
(b)
Figura 80: (a) Diagrama de polos y ceros para X ( z ) con a < 1 , a positiva.
(b) Comportamiento temporal de la señal.
a < 1 y a negativa:
141
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1
0.5
0
-0.5
-1
0
5
10
15
20
25
(b)
Figura 81: (a) Diagrama de polos y ceros para X ( z ) con a < 1 y a negativa.
(b) Comportamiento temporal de la señal.
a = 1 y a positiva:
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1.5
1
0.5
0
-0.5
0
5
10
15
20
25
(b)
Figura 82: (a) Diagrama de polos y ceros para X ( z ) con a = 1 y a positiva.
(b) Comportamiento temporal de la señal.
a = 1 y a negativa:
142
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1
0
-1
0
5
10
15
20
25
(b)
Figura 83: (a) Diagrama de polos y ceros para X ( z ) con a = 1 y a negativa.
(b) Comportamiento temporal de la señal.
a > 1 y a positiva:
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
6000
4000
2000
0
0
5
10
15
20
25
(b)
Figura 84: (a) Diagrama de polos y ceros para X ( z ) con a > 1 y a positiva.
(b) Comportamiento temporal de la señal.
a > 1 y a negativo:
143
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
5000
0
-5000
0
5
10
15
20
25
(b)
Figura 85: (a) Diagrama de polos y ceros para X ( z ) con a > 1 y a negativa.
(b) Comportamiento temporal de la señal.
•
UN POLO DOBLE
Al multiplicar la exponencial compleja por el tiempo se produce un polo de orden dos en z = a :
x ( n ) = n a µ ( n ) ←→
n
Z
a z −1
( 1 − a z −1 ) 2
=
=
a z −1
1 − 2 a z −1 + a 2 z −2
az
2
z − 2a z + a 2
Se puede observar nuevamente el comportamiento en el tiempo de la señal, dependiendo de si a
es positiva o negativa o si es mayor, igual o menor que uno, ver figuras 86 a 91.
a < 1 y a positiva:
144
(a)
Imaginary Part
1
0.5
2
0
2
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1.5
1
0.5
0
0
5
10
15
20
25
(b)
Figura 86: (a) Diagrama de polos y ceros para X ( z ) con a < 1 , a positiva.
(b) Comportamiento temporal de la señal.
a < 1 y a negativa:
(a)
Imaginary Part
1
0.5
2
0
2
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1
0
-1
0
5
10
15
20
25
(b)
Figura 87: (a) Diagrama de polos y ceros para X ( z ) con a < 1 y a negativa.
(b) Comportamiento temporal de la señal.
a = 1 y a positiva:
145
(a)
Imaginary Part
1
0.5
2
0
2
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
30
20
10
0
0
5
10
15
20
25
(b)
Figura 88: (a) Diagrama de polos y ceros para X ( z ) con a = 1 y a positiva.
(b) Comportamiento temporal de la señal.
a = 1 y a negativa:
(a)
Imaginary Part
1
0.5
2
0
2
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
40
20
0
-20
-40
0
5
10
15
20
25
(b)
Figura 89: (a) Diagrama de polos y ceros para X ( z ) con a = 1 y a negativa.
(b) Comportamiento temporal de la señal.
a > 1 y a positiva:
146
(a)
Imaginary Part
1
0.5
2
0
2
-0.5
-1
-3
2
x 10
-2
-1
0
Real Part
5
1
2
3
1.5
1
0.5
0
0
5
10
15
20
25
(b)
Figura 90: (a) Diagrama de polos y ceros para X ( z ) con a > 1 y a positiva.
(b) Comportamiento temporal de la señal.
a > 1 y a negativa:
(a)
Imaginary Part
1
0.5
2
0
2
-0.5
-1
-3
2
x 10
-2
-1
5
0
Real Part
1
2
3
1
0
-1
-2
0
5
10
15
20
25
(b)
Figura 91: (a) Diagrama de polos y ceros para X ( z ) con a > 1 y a negativa.
(b) Comportamiento temporal de la señal.
•
POLOS COMPLEJOS CONJUGADOS
La exponencial compleja modulada:
147
x ( n ) = a cos (ω 0 n )µ ( n ) ←→
1 − a cos ω0 z −1
Z
n
1 − 2 a cos ω0 z −1 + a 2 z −2
=
z 2 − a cos ω0 z
z 2 − 2 a cos ω0 z + a 2
Tiene una transformada z con polos complejos conjugados (Ver figuras 92 a 94) situados en:
p1, 2 = a cos ω 0 ± j a sen ω 0
a <1
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1
0.5
0
-0.5
0
5
10
15
20
25
(b)
Figura 92: (a) Diagrama de polos y ceros para X ( z ) con a < 1 .
(b) Comportamiento temporal de la señal.
a =1
148
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1
0
-1
0
5
10
15
20
25
(b)
Figura 93: (a) Diagrama de polos y ceros para X ( z ) con a = 1 .
(b) Comportamiento temporal de la señal.
a >1
Imaginary Part
(a)
1
0.5
0
-0.5
-1
-4
-3
-2
-1
0
Real Part
1
2
3
4
4000
2000
0
-2000
0
5
10
15
20
25
(b)
Figura 94: (a) Diagrama de polos y ceros para X ( z ) con a > 1 .
(b) Comportamiento temporal de la señal.
•
POLOS DOBLES COMPLEJOS CONJUGADOS
La siguiente función tiene una transformada Z que tiene polos complejos conjugados:
149
x ( n ) = n a n cos ω 0 n u ( n )
a cos ω 0 z −1 − 2 a 2 z −2 + a 3 cos ω 0 z −3
X (z) =
( 1 − 2a cos ω 0 z −1 + a 2 z −2 ) 2
=
a cos ω 0 z 3 − 2 a 2 z 2 + a 3 cos ω 0 z
( z 2 − 2a cos ω 0 z + a 2 ) 2
a cos ω 0 z 3 − 2a 2 z 2 + a 3 cos ω 0 z
= 4
z − 4a cos ω 0 z 3 + 2a 2 1 + 2 cos 2 ω 0 z 2 − 4a 3 cos ω 0 z + a 4
(
)
En este caso, ver figuras 95 a 97, se tiene un par de polos complejos conjugados dobles en:
p1, 2 = a cos ω 0 ± j a sen ω 0
Los ceros:
z1 = 0
z 2, 3 =
2 a ( 1 ± sen ω 0 )
cos ω 0
z4 = ∞
a <1
150
(a)
Imaginary Part
1
2
0.5
2
0
2
-0.5
-1
-2
-1
0
1
Real Part
2
3
4
1
0
-1
0
5
10
15
20
25
(b)
Figura 95: (a) Diagrama de polos y ceros para X ( z ) con a < 1 .
(b) Comportamiento temporal de la señal.
a =1
(a)
Imaginary Part
1
2
0.5
2
0
-0.5
2
-1
-2
-1
0
1
2
Real Part
3
4
5
40
20
0
-20
-40
0
5
10
15
20
25
(b)
Figura 96: (a) Diagrama de polos y ceros para X ( z ) con a = 1 .
(b) Comportamiento temporal de la señal.
a >1
151
(a)
Imaginary Part
2
1
0.5
2
0
-0.5
-1
2
-2
1
x 10
-1
0
1
5
2
3
Real Part
4
5
6
0.5
0
-0.5
-1
0
5
10
15
20
25
(b)
Figura 97: (a) Diagrama de polos y ceros para X ( z ) con a > 1 .
(b) Comportamiento temporal de la señal.
Los diagramas anteriores de polos y ceros fueron hechos en Matlab con la función zplane(N,D),
en donde N es el vector de coeficientes del numerador de la transformada Z racional y D es el
vector de coeficientes del denominador de la misma transformada.
Los diagramas de respuesta en el tiempo se realizaron con la función impz(N,D), en donde N Y D
son los mencionados en el párrafo anterior.
LA FUNCION DE TRANSFERENCIA DE UN SISTEMA LTI
Un sistema LTI tiene una relación entrada salida descrita por la relación de convolución:
y ( n ) = x ( n ) ⊗ h ( n ) ←→ Y ( z ) = X ( z ) H ( z )
Z
De tal manera que la función de transferencia está dada por:
H (z) =
Y (z)
X (z)
Esto significa que al igual que la relación de convolución describe completamente al sistema,
también lo hará su función de transferencia H ( z ) .
152
Si, por otro lado, se describe la relación entrada−salida del sistema por una ecuación en
diferencias de coeficientes constantes:
N
y (n ) = − ∑ ak y (n − k ) +
k =1
N
M
∑ bk x(n − k )
k =0
Y ( z ) = − ∑ ak Y ( z ) z − k +
k =1
M
∑ bk X ( z ) z − k
k =0
N
M

− k 

Y ( z ) 1 + ∑ ak z
= X ( z ) ∑ bk z − k


 k =1

k =0
Lo que da una función de transferencia dada por:
M
∑ bk z − k
H (z) =
k =0
N
1 + ∑ ak z
k =1
−k
M
∑ bk z − k
= k =0
N
∑ ak z
,
−k
a0 ≡ 1
k =0
Se puede concluir, entonces, que la función de transferencia de un sistema LTI descrito por una
ecuación en diferencias de coeficientes constantes es una función racional y por tanto, puede
aplicársele el análisis realizado previamente en cuanto a la ubicación de los polos y los ceros y el
respectivo comportamiento temporal, de tal manera que un sistema LTI causal que tenga polos
por fuera del circulo unitario es inestable debido a que su respuesta al impulso crece
indefinidamente y por lo tanto no es absolutamente sumable y viceversa, si un sistema causal
tiene los polos de su función de transferencia dentro de la circunferencia unitaria será estable
porque su respuesta al impulso decrece con el tiempo y es absolutamente sumable.
Ejemplo:
Determinar la función de transferencia de un sistema LTI caracterizado por la ecuación en
diferencias:
153
y(n ) =
1
y ( n − 1) + 2 x ( n )
2
La transformada Z de esta ecuación en diferencias es:
Y (z) =
1
Y ( z ) z −1 + 2 X ( z )
2
Y, por tanto la función de transferencia estará dada por:
2
⇒ H (z) =
1 −1
1−
z
2
De acuerdo con lo visto en ejemplos anteriores, la respuesta al impulso del sistema estará dada
por:
1 n
h ( n ) = 2   u ( n )
 2 
El diagrama de polos y ceros y la respuesta al impulso de este sistema se muestra en la figura 98:
(a)
Imaginary Part
1
0.5
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
1
0.5
0
0
5
10
15
20
(b)
Figura 98: (a) Diagrama de polos y ceros para H ( z ) .
(b) Respuesta al impulso del sistema.
CAUSALIDAD Y ESTABILIDAD
Un sistema LTI causal es aquel que tiene una respuesta al impulso
h( n ) = 0 , n < 0
25
154
Esto implica que la ROC está por fuera de un círculo, incluyendo z = ∞ . Si el sistema es estable debe
cumplir que su respuesta al impulso sea absolutamente sumable, o sea:
∞
∑
h( n )
< ∞
n =0
Pero,
H (z) =
∞
∑ h( n ) z −n
n =−∞
H (z) ≤
∞
h ( n ) z −n
∑
n =−∞
=
∞
∑
h( n )
z −n
n =−∞
Cuando esta expresión se evalúa en la circunferencia unidad
H (z) ≤
∞
∑
( z = 1 ) , se tiene:
h( n )
n =−∞
Luego, si el sistema es estable la circunferencia unidad está contenida dentro de la ROC de H ( Z ) .
Además, si el sistema es causal debe tener los polos de su función de transferencia dentro de una
circunferencia, esto quiere decir, en definitiva, que para que un sistema LTI sea estable y causal, los
polos de su función de transferencia deben estar contenidos dentro de la circunferencia unidad.
Ejemplo 3.6.3 tomado de Proakis10:
Sea,
10
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
155
H (z) =
H (z) =
3 − 4 z −1
1 − 3.5 z −1 + 1.5 z − 2
3z 2 − 4 z
z 2 − 3 .5 z + 1 .5
Luego:
H (z) =
=
H (z) =
3 − 4 z −1
1 − 1 z −1  1 − 3 z −1


2


(
)
A
+
B
1
+
2
( 1 − 1 2 z −1 ) ( 1 − 3z −1 )
( 1 − 1 2 z −1 ) ( 1 − 3z −1 )
Especifique la ROC y determine h ( n ) para las siguientes condiciones:
1. El sistema es estable.
2. El sistema es causal.
3. El sistema es anticausal.
1. ROC:
1
< z < 3
2
La respuesta al impulso:
1 n
h ( n ) =   µ ( n ) − 2 (3) n µ ( − n − 1)
 2 
2. ROC:
z > 3
156
La respuesta al impulso:
1 n

h ( n ) =   µ ( n ) − 2 (3 ) n µ ( n )
 2 
En este caso el sistema es causal pero inestable.
3. ROC:
z <
1
2
La respuesta al impulso:
1 n
h ( n ) = −  µ ( − n − 1) − 2 (3) n µ ( − n − 1)
 2 
Nuevamente el sistema es inestable.
INVERSION DE LA TRANSFORMADA Z
El objetivo de hallar la transformada Z inversa es encontrar la función en el tiempo cuya transformada Z
se conoce. Como se vio anteriormente, esta función está dada por:
x(n ) =
1
2π
X (z ) z
j∫
n −1
dz
c
Pero normalmente no se calcula así, sino por uno de los siguientes tres métodos:
1. Expansión en series de potencias.
2. Expansión en fracciones parciales.
3. Aplicando el teorema del residuo de Cauchy.
A continuación se analizan cada uno de estos métodos.
157
INVERSION DE LA TRANSFORMADA Z
POR EXPANSION EN SERIES DE POTENCIAS
Debido a que X ( z ) se da normalmente como una razón de polinomios de la forma:
b0 + b1 z −1 + L + bM z − M
X (z ) =
a0 + a1 z −1 + L + a N z − N
Se puede obtener x ( n ) por inspección, luego de realizar la división larga entre el numerador y el
denominador, arreglando éstos en potencias descendentes o ascendentes de z −1 , lo que conduce a dos
tipos de señales, causales o anticausales.
Ejemplo:
Sea:
X (z) =
•
1 + 2 z −1 + z −2
1 − z −1 + 0.3561z −2
 z < r1 , Señal anticausal
ROC : 
 z > r1 , Señal causal
Organizando los polinomios en potencias ascendentes de z −1 se tiene:
1 + 2 z −1 + z −2
1− z
−1
+ 0.3561z
−2
= 1 + 3 z −1 + 3.6439 z − 2 + 2.575 z − 3 + L
Esto indica que la función es la siguiente:
x ( n ) = { 1, 3, 3.6439, 2.575, L }
El gráfico de la función se puede hallar usando la función filter(B, A, x ) o impz(B,A) y se observa en la
figura 99:
158
(a)
Imaginary Part
1
0.5
2
0
-0.5
-1
-3
-2
-1
0
Real Part
1
2
3
4
2
0
-2
0
5
10
15
20
(b)
Figura 99: (a) Diagrama de polos y ceros para X ( z ) .
(b) Comportamiento temporal de la señal x ( n ) .
•
Organizando los polinomios en potencias descendentes de z −1 se tiene:
z −2 + 2 z −1 + 1
= 2.8082 + 13.5023 z + 32.8396 z 2 + L
0.3561z − 2 − z −1 + 1
Esto nos indica que la función en el tiempo es,
x ( n ) = { L , 32.8396, 13.5023, 2.8082}
↑
El gráfico de esta función se observa en la figura 100:
100
50
0
-50
-100
-150
-6
-5
-4
-3
-2
-1
0
25
159
Figura 100: Comportamiento temporal de la señal x ( n ) .
De los resultados anteriores se concluye que dependiendo de la ROC deberá realizarse la división
organizando los polinomios en forma ascendente o descendente de potencias de z −1 .
La división larga se puede realizar recursivamente de la siguiente manera:
x (0 ) =
x (1) =
x(2 ) =
a0
b0
[ a1 − x (0 ) b1 ]
b0
[a 2 − x (1) b1 − x (0 ) b2 ]
b0
O sea,
n


 a n − ∑ x ( n − i ) bi 

 , n = 1, 2, L
i =1
x(n ) = 
b0
Lo cual se puede implementar en lenguaje C así:
x[0]= a[0] / b[0]
for(n=1;n<=npt;++n)
{
sum=0;
k=n;
if(n>M) k=M;
for(i=1;i<=k;++i)
{
160
sum=sum+x[n-i]*b[i];
}
x[n]=( a[n]-sum) / b[0] ;
}
En este programa, M es el orden del polinomio del denominador y npt es el número de puntos de la
transformada inversa. Además, se asume que ambos polinomios están ordenados en potencias
ascendentes de z −1 .
INVERSION DE LA TRANSFORMADA Z
POR EL METODO DE LA EXPANSION EN FRACCIONES PARCIALES
En este método se expande la transformada z en una suma de fracciones parciales simples y se obtiene
la transformada inversa de cada una de ellas mediante tablas, procediendo luego a sumarlas.
Como se ha dicho previamente, normalmente X ( z ) es la razón de dos polinomios:
X (z) =
•
a0 + a1 z −1 + L + a N z − N
b0 + b1 z −1 + L + bM z − M
Si los polos son de primer orden y N = M :
X ( z ) = B0 +
= B0 +
= B0 +
C1
1 − p1 z −1
C1 z
z − p1
M
∑
+
Ck z
k =1 z − p k
+
C2
1 − p 2 z −1
C2 z
z − p2
, B0 =
+L+
+L+
aN
bN
CM
1 − p M z −1
CM z
z − pM
161
Los C k se denominan los residuos de X ( z ) .
Si N < M , entonces B0 = 0 .
Si N > M se debe realizar la división larga hasta que se cumpla que el polinomio resultante
tenga un orden N < M escribiendo el numerador y el denominador en potencias descendentes
de z −1 .
Los coeficientes C k se obtienen multiplicando ambos miembros de la ecuación por
( z − pk ) z
y haciendo z = p k , o sea:
Ck = X ( z )
( z − pk )
z
z= pk
Si X ( z ) contiene uno o más polos de orden múltiple se requieren términos extras; por
ejemplo, si hay un polo en z = p k de m−ésimo orden, la expansión en fracciones parciales
incluye términos de la forma,
m
∑
i =1
Di
( z − pk ) i
Es decir,
M
m
Ck z
Di
+ ∑
z − pk
( z − pk ) i
=
1
k =1
i
144
42444
3
Polo de orden m
X ( z ) = B0 + ∑
Los coeficientes Di se calculan de la siguiente manera:
Di =
1
(m − i ) !
m
d m −i  ( z − p k ) X ( z )

z
dz m−i 


 z = p
k
162
Ejemplo:
X (z) =
=
z −1
1 − 0.25 z −1 − 0.375 z − 2
z
z − 0.25 z − 0.375
2
Las raíces del denominador:
0.25 ±
z1, 2 =
0.25 2 − 4 × 1 × ( − 0.375 )
2
Lo que conduce a:
z1 = 0.75 y
z 2 = −0.5
Estas raíces también se pueden hallar usando el comando roots (C ) de Matlab:
c=[1 -0.25 -0.375]
R=roots(c)
R=
0.7500
-0.5000
X (z) =
z
( z − 0.75) ( z + 0.5 )
X (z) =
C1 z
C2 z
+
( z − 0.75 ) ( z + 0.5)
C1 =
X ( z ) ( z − 0.75 )
z
z =0.75
163
C1 =
1
z + 0 .5
z =0.75
= 0 .8
Similarmente,
C2 =
X ( z ) ( z + 0 .5 )
z
C2 =
1
z − 0.75
z = − 0 .5
z =−0.5
= − 0 .8
Luego,
X (z) =
X (z) =
0 .8 z
0 .8 z
−
( z − 0.75 ) ( z + 0.5 )
0 .8
−
0 .8
( 1 − 0.75 z ) ( 1 + 0.5 z −1 )
−1
Por los ejemplos vistos previamente, se tiene entonces que:
[
x ( n ) = 0.8 ( 0.75 ) n µ ( n ) − ( − 0.5 ) n µ ( n )
]
Los residuos se pueden calcular en Matlab con la función residuez ( A, B ) , la cual se describe a
continuación:
RESIDUEZ Z-transform partial-fraction expansion.
[R,P,K] = RESIDUEZ(B,A) finds the residues, poles and direct terms of the
partial-fraction expansion of B(z)/A(z),
B(z)
r(1)
---- = ------------ +...
A(z)
1-p(1)z^(-1)
B
and
A
are
the
r(n)
------------ + k(1) + k(2)z^(-1) ...
1-p(n)z^(-1)
numerator
and
denominator
respectively, in ascending powers of z^(-1).
containing the residues and poles, respectively.
in a row vector.
The number of poles is
n = length(A)-1 = length(R) = length(P)
polynomial
coefficients,
R and P are column vectors
K contains the direct terms
164
The
direct
term
coefficient
vector
is
empty
if
length(B)
<
length(A);
otherwise,
length(K) = length(B)-length(A)+1
If P(j) = ... = P(j+m-1) is a pole of multiplicity m, then the expansion
includes terms of the form
R(j)
R(j+1)
-------------- + -----------------1 - P(j)z^(-1)
(s - P(j)z^(-1))^2
R(j+m-1)
+ ... + -----------------(s - P(j)z^(-1))^m
[B,A] = RESIDUEZ(R,P,K) converts the partial-fraction expansion back to B/A
form.
See also RESIDUE, PRONY, POLY, ROOTS, SS2TF, TF2SS, TF2ZP AND ZP2SS.
En este caso se tiene que:
num=[0 1]
den=[1 -0.25 -0.375]
[R p k]=residuez(num,den)
R=
0.8000
-0.8000
p=
0.7500
-0.5000
k=
[]
k es un vector vacío debido a que la fracción es propia.
165
La función en el tiempo x ( n ) que tiene la transformada X ( z ) planteada en el ejercicio (Ver
figura 101) se puede calcular en Matlab con la función impz (B, A) , de la siguiente manera:
IMPZ Impulse response of digital filter
[H,T] = IMPZ(B,A) computes the impulse response of the filter B/A choosing
the number of samples for you, and returns the response in column vector H
and a vector of times (or sample intervals) in T(T = [0 1 2 ...]').
[H,T] = IMPZ(B,A,N) computes N samples of the impulse response.
If N is a vector of integers, the impulse response is computed only at those
integer values (0 is the origin).
[H,T] = IMPZ(B,A,N,Fs) computes N samples and scales T so that samples are
spaced 1/Fs units apart.
Fs is 1 by default.
[H,T] = IMPZ(B,A,[],Fs) chooses the number of samples for you and scales T so
that samples are spaced 1/Fs units apart.
IMPZ with no output arguments plots the impulse response using STEM(T,H) in
the current figure window.
See also IMPULSE in the Controls Toolbox for continuous systems.
En este caso, se tiene que:
num=[0 1]
den=[1 -0.25 -0.375]
impz(num,den)
166
Función en el tiempo
1
0.9
0.8
0.7
x(n)
0.6
0.5
0.4
0.3
0.2
0.1
0
0
5
10
15
20
25
30
n
Figura 101: Función x ( n ) con transformada X ( z ) =
Ejemplo:
X (z) =
=
1 + 2 z −1 + z −2
1 − z −1 + 0.3561z −2
z 2 + 2z + 1
z 2 − z + 0.3561
= B0 +
C1 z
z − p1
+
Las raíces del denominador:
den=[1 –1 0.3562]
roots(den)
ans =
0.5000 + 0.3259i
0.5000 - 0.3259i
C2 z
z − p2
0.8
−
0.8
(1 − 0.75 z ) (1 + 0.5 z )
−1
−1
167
1
0.8
0.6
Im aginary P art
0.4
0.2
0
2
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
Real P art
0.5
1
Figura 102: Diagrama de polos y ceros de la función X ( z ) =
1 + 2z
1− z
−1
−1
+z
−2
+ 0.3561z
−2
Como se observa en la figura 102, los polos son complejos conjugados y pueden obtenerse con
la función residuez(num,den):
[R,P,K]=residuez(num,den)
R=
-0.9037 - 5.9894i
-0.9037 + 5.9894i
P=
0.5000 + 0.3259i
0.5000 - 0.3259i
K=
2.8074
También se puede hallar la expansión en fracciones simples utilizando el procedimiento
convencional:
168
X ( z ) = B0 +
C1 z
( z − p1 )
C2 z
+
(z − p1∗ )
B
C1
X (z)
= 0 +
+
( z − p1 )
z
z
C2
(z − p1∗ )
En donde,
B0 =
X (z) z
z
z=0
B0 = 2.81
C1 =
C1 =
X ( z )( z − p1 )
z
z = p1
z 2 + 2z + 1
(
z z − p1∗
)
z = p1
C1 = 6.06∠ − 98.58 o
= −0.9037 − j 5.9894
C2 =
(
X ( z ) z − p1∗
z
)
z = p1∗
C 2 = 6.06∠ 98.58 o
= −0.9037 + j 5.9894
X ( z ) = 2.81 +
6.06∠ − 98.58
1 − p1 z
−1
+
6.06 ∠ 98.58
1 − p ∗1 z −1
Lo que conduce a una señal en el tiempo dada por:
( )n µ (n )
x ( n ) = 2.81 δ ( n ) + (6.06∠ − 98.58 ) ( p1 ) n µ ( n ) + (6.06∠ 98.58 ) p1∗
(
)( 0.596 e 33.02 j ) n µ (n )
n
+ ( 6.06 e 98.58 j )( 0.596 e −33.02 j ) µ ( n )
x ( n ) = 2.81 δ ( n ) + 6.06 e −98.58 j
x ( n ) = 2.81δ ( n ) + 6.06 × (0.596 ) n × 2 cos (33.02 n − 98.58 )
169
Utilizando la función impz(num,den) se obtiene la función en el tiempo x ( n ) , ver figura 103:
4
3.5
3
2.5
2
1.5
1
0.5
0
-0.5
0
2
4
6
8
10
Figura 103: Función x ( n ) con transformada
12
14
X (z) =
16
18
1 + 2z
1− z
−1
−1
+z
−2
+ 0.3561z
−2
Ejemplo:
X (z) =
z2
( z − 0.5 )( z − 1)2
En este caso se tiene un polo de orden 2 en z = 1 , ver figura 104:
C1
D1
D2
X (z)
=
+
+
( z − 0.5) ( z − 1) ( z − 1) 2
z
Utilizando el método convencional para hallar el desarrollo en fracciones simples, se tiene:
C1 =
X ( z ) ( z − 0 .5 )
z
z = 0 .5
=2
170
1
0.8
0.6
Im aginary P art
0.4
0.2
2
2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
Real P art
0.5
1
Figura 104: Diagrama de polos y ceros de la función X ( z ) =
1
d 2−1
D1 =
( 2 − 1) ! dz 2−1
 ( z − 1) 2 X ( z )

z

=
d 
z


dz  z − 0.5  z = 1
=
( z − 0 .5 ) − z
( z − 0 .5 ) 2 z = 1
=


 z = 1
− 0 .5
0 .5 2
= −2
D2 =
d 2− 2
1
( 2 − 2 ) ! dz 2−2
=
z
z − 0. 5
 X ( z ) ( z − 1) 2

z

z =1
=2
Luego,
X (z) =
2z
2z
2z
−
+
z − 0 .5
z −1
( z − 1)2


 z = 1
z
2
( z − 0.5 )( z − 1) 2
171
X (z ) =
2
2
2
−
+
−1
−1
1 − 0 .5 z
1− z
1 − z −1
(
)
2
La señal en el tiempo, ver figura 105, está dada por:
x ( n ) = 2 ( 0 .5 ) n µ ( n ) − 2 µ ( n ) + 2 n µ ( n )
Señal en el tiempo
30
25
x(n)
20
15
10
5
0
0
2
4
6
8
10
12
14
n
Figura 105: Función x ( n ) con transformada X ( z ) =
Usando residuez( ), se tiene:
num = [0 1];
den = [1 -2.5 2 -0.5];
[R P K] = residuez(num,den)
R=
-4.0000
2.0000
2.0000
P=
1.0000
1.0000
0.5000
K=
2
1 − 0 .5 z
−1
−
2
1− z
−1
+
2
(1 − z )
−1
2
172
[]
De acuerdo con este resultado la expansión que se obtiene es la siguiente:
X (z) =
2
1 − 0 .5 z
−1
+
−4
1− z
−1
+
2
( 1 − z −1 )2
Lo que implica que la señal en el tiempo está dada por:
x ( n ) = 2 (0.5 )n µ ( n ) − 4 µ ( n ) + 2( n + 1) µ ( n + 1)
Se observa que la expresión resultante en el tiempo es diferente a la obtenida por el método
tradicional, pero al simplificarlas son idénticas. La señal resultante en el tiempo es la misma
como se observa en la figura 106:
30
25
x(n)
20
15
10
5
0
0
2
4
6
8
10
12
14
n
Figura 106: Función x ( n ) con transformada X ( z ) =
2
1 − 0 .5 z
−1
−
4
1− z
−1
+
2
(1 − z )
−1
2
173
INVERSION DE LA TRANSFORMADA Z
POR EL METODO DEL RESIDUO
En este caso se evalúa la integral de contorno:
x(n ) =
1
2π j
∫ X (z) z
n−1
dz
c
La curva cerrada c en la que se evalúa esta integral debe encerrar todos los polos de X ( z ) .
TEOREMA DEL RESIDUO DE CAUCHY
x(n ) =
1
2π j
∫ X (z) z
n−1
dz
c
x ( n ) es igual a la suma de todos los residuos de z n −1 X ( z ) en todos los polos dentro de c.
En donde,
[
Res z
n−1
]
d m−1
1
[ ( z − p k )F ( z )]
X ( z ) , pk =
,
( m − 1) ! dz m−1
z = pk
F ( z ) = z n−1 X ( z ) y
m es el orden de los polos.
Ejemplo:
Hallar la señal de tiempo discreto causal correspondiente a:
X (z) =
=
z
( z − 0.75 ) ( z + 0.5 )
z −1
1 − 0.25 z −1 − 0.375 z −2
Asumir que c es el círculo de z = 1
174
F (z) =
=
z × z n−1
( z − 0.75) ( z + 0.5 )
zn
( z − 0.75 ) ( z + 0.5)
F ( z ) tiene polos en:
z = 0.75
z = − 0 .5
Luego,
x ( n ) = Res [ F ( z ) , 0.75] + Res [ F ( z ) , − 0.5]
En donde,
Res [ F ( z ) , 0.75] =
=
Res [ F ( z ) , − 0.5] =
=
=
z n ( z − 0.75 )
1
(1 − 1) ! ( z − 0.75)( z + 0.5 ) z = 0.75
(0.75) n
= 0.8 ( 0.75 ) n , n ≥ 0
1.25
z n ( z + 0 .5 )
1
(1 − 1) ! ( z − 0.75)( z + 0.5 ) z = −0.5
zn
( z − 0.75 )
( − 0 .5 ) n
− 1.25
= −0.8 ( − 0.5 ) n , n ≥ 0
Luego,
[
]
x ( n ) = 0.8 0.75 n − ( − 0.5 ) n µ ( n )
Ejemplo:
z = − 0 .5
175
X (z) =
En este caso,
F (z) =
F (z) =
z 2 + 2z +1
z 2 − z + 0.3561
(
)
( z 2 − z + 0.3561 )
z n ( z 2 + 2z + 1 )
z ( z 2 − z + 0.3561 )
z n −1 z 2 + 2 z + 1
F ( z ) tiene polos en:
z1 = p1
z 2 = p1∗
y en:
z = 0 cuando n = 0
Por lo tanto es necesario considerar los dos casos separadamente:
•
n=0
En este caso
F (z) =
(
z 2 + 2z + 1
z z 2 − z + 0.3561
)
[
x (0 ) = Res [ F ( z ) , 0 ] + Res [ F ( z ) , p1 ] + Res F ( z ) , p1∗
Res [ F ( z ) , 0] =
=
( z 2 + 2z + 1 )z
z ( z 2 − z + 0.3561 )
1
0.3561
= 2.81
z =0
]
176
Res [ F ( z ) , p1 ] =
(z
2
(
)
+ 2 z + 1 ( z − p1 )
z z 2 − z + 0.3561
con p1 = r1e jθ 1
)
z = p1
En donde:
r1 = 0.5967
θ1 = 33.08°
Al sustituir se tiene:
Res [ F ( z ) , p1 ] = −0.9041 − j 5.9928
Debido a que p1 y p1∗ son complejos conjugados, entonces
[
]
Res F ( z ) , p1∗ = −0.9041 + j 5.9928
Lo que conduce a:
x (0 ) = 2.81 − 0.9041 − j 5.9928 − 0.9041 + j 5.9928
=1
•
n>0
En este caso,
F (z) =
(
z n z 2 + 2z + 1
(
)
z z 2 − z + 0.3561
)
Sólo se tienen dos polos: p1 y p 1∗ .
Los residuos:
Res [ F ( z ) , p1 ] =
(
)
z n z 2 + 2 z + 1 ( z − p1 )
(
z ( z − p1 ) z − p1∗
)
z = p1
177
Res [ F ( z ) , p1 ] =
[
(
r1n e j nθ 1 r12 e j 2 θ 1 + 2 r1 e jθ 1 + 1
(
r1 e jθ 1 r1 e jθ 1 − r1 e − jθ 1
] (
= ( 0.5967 e
)
)
) (
)
j 33.08 n
) ( 6.06 e j 98.58 )
n
Res F ( z ) , p1∗ = 0.5967 e j 33.08
6.06 e − j 98.58
Luego,
 2 × π × 33.08 n
2π × 98.58
x ( n ) = 12.12 ( 0.5967 ) n cos 
−


360
360




COMPARACION ENTRE LOS TRES METODOS
•
La expansión en series de potencias no da una expresión cerrada para x ( n ) pero es simple y
apropiada para implementar en un computador, aunque, por su naturaleza iterativa, hay que
ser cuidadosos en el cálculo de secuencias largas que pueden dar lugar a acumulación de
errores y por tanto se requiere el uso de doble precisión en los cálculos.
•
La expansión en fracciones parciales y el teorema del residuo conducen a soluciones cerradas
pero la principal desventaja es la necesidad de factorizar el denominador y si hay polos de
orden múltiple hacer derivadas de alto orden.
•
La expansión en fracciones parciales es útil para generar los coeficientes de estructuras en
paralelo para filtros digitales. El método del residuo es útil en el análisis de errores de
cuantización.
LA TRANSFORMADA Z UNILATERAL
El objetivo de esta transformada es hallar la solución a ecuaciones en diferencias con
condiciones iniciales distintas de cero.
178
Se define de la siguiente manera:
X + (z) =
∞
∑ x(n ) z − n
n=0
Lo cual se simboliza así:
Z+
x ( n ) ←
→ X + ( z )
A pesar de que X + ( z ) se evalúa para n ≥ 0 esto no significa necesariamente que x ( n ) sea cero para
n < 0.
Las siguientes son algunas de las características de la transformada z unilateral:
•
No contiene información de x ( n ) para n < 0 .
•
Es única sólo para señales causales.
•
La ROC es el exterior de un círculo y por tanto no es necesario definir esta región.
Ejemplos:
•
Z+
x1 (n ) = {1, 2, 5, 7, 0, 1} ←→ X 1+ ( z ) = 5 + 7 z −1 + z − 3
↑
•
Z+
x2 (n ) = {1, 2, 5, 7, 0, 1} ←→ X 2+ ( z ) = 1 + 2 z −1 + 5 z − 2 + 7 z − 3 + z − 5
•
Z+
x3 (n ) = {0, 0, 1, 2, 5, 7, 0, 1} ←→ X 3+ ( z ) = z − 2 + 2 z − 3 + 5 z − 4 + 7 z − 5 + z − 7
•
Z+
x4 (n ) = {2, 4, 5, 7, 0, 1} ←→ X 4+ ( z ) = 5 + 7 z −1 + z − 3
↑
179
Z+
•
x5 (n ) = δ (n ) ←→ X 5+ (z ) = 1
•
Z+
x6 (n ) = δ (n − k ) ←→ X 6+ ( z ) = z − k
•
x7 (n ) = δ (n + k ) ←→ X 7+ ( z ) = 0
Z+
Todas las propiedades de la transformada z bilateral se cumplen para la transformada z unilateral
excepto la propiedad de desplazamiento temporal, cuya versión modificada se enuncia a continuación.
PROPIEDAD DE RETARDO TEMPORAL
Si,
Z+
x ( n ) ←
→ X + ( z )
Entonces,
k


Z+
x ( n − k ) ←
→ z − k  X + ( z ) + ∑ x ( − n ) z n  ,


n =1
Sin embargo, si x ( n ) es causal,
Z+
x ( n − k ) ←
→ z − k X + ( z )
Ejemplo:
Teniendo el siguiente par transformado:
para k > 0
180
Z+
x ( n ) = a n µ ( n ) ←
→ X + ( z ) =
1
1 − a z −1
Hallar la transformada z unilateral de la función:
x1 (n ) = x(n − 2)


1
Z+
x1 ( n ) = x ( n − 2 ) ←
→ X 1+ ( z ) = z − 2 
+ x ( − 1) z + x ( − 2 ) z 2 
 1 − a z −1



1
X 1+ ( z ) = z − 2 
+ a −1 z + a − 2 z 2 
 1 − a z −1

PROPIEDAD DE AVANCE TEMPORAL
Si,
Z+
x ( n ) ←
→ X + ( z )
Entonces,
k −1


Z+
x ( n + k ) ←
→ z k  X + ( z ) − ∑ x ( n ) z − n  ,


n=0
Ejemplo:
Teniendo el siguiente par transformado:
para k > 0
181
Z+
x ( n ) = a n µ ( n ) ←
→ X + ( z ) =
1
1 − a z −1
Hallar la transformada z unilateral de la función:
x1 (n ) = x(n + 2)


1
Z+
x1 ( n ) = x ( n + 2 ) ←
→ X 1+ ( z ) = z 2 
− a 0 − a1 z −1 
 1 − a z −1



z2
X 1+ ( z ) = 
− z2 − a z
 1 − a z −1

SOLUCION DE ECUACIONES EN DIFERENCIAS
CON CONDICIONES INICIALES DISTINTAS DE CERO
UTILIZANDO LA TRANSFORMADA Z UNILATERAL
Para resolver una ecuación en diferencias utilizando la transformada z unilateral se deben realizar los
siguientes pasos:
•
Transformar la ecuación en diferencias en una ecuación algebraica en el dominio de z.
•
Aplicar las condiciones iniciales.
•
Obtener la solución en el tiempo hallando la transformada inversa.
Ejemplo:
Resolver la ecuación en diferencias,
y ( n ) = y ( n − 1) + y ( n − 2 )
182
Con condiciones iniciales:
y ( − 1) = 0
y(− 2) = 1
Determinar y ( n ) para n ≥ 0 .
La solución a esta ecuación es lo que se denomina la serie de Fibonacci.
[
]
[
Y + ( z ) = z −1 Y + ( z ) + y ( − 1) z + z −2 Y + ( z ) + y ( − 1) z + y ( − 2 ) z 2
Y + ( z ) = z −1 Y + ( z ) + y ( − 1) + z −2 Y + ( z ) + y ( − 1) z −1 + y ( − 2 )
[
]
Y + ( z ) 1 − z −1 − z −2 = y ( − 1) + y ( − 1) z −1 + y ( − 2 )
Y + (z) =
=
=
1
1− z
− z −2
z2
z 2 − z −1
z2
( z − p1 ) ( z − p 2 )
En donde,
p1 =
−1
1+ 5
2
]
183
p2 =
1− 5
2
Y + (z) =
Y + (z)
z2



 z − 1+ 5   z − 1− 5 






2
2
=
z
A


 z − 1+ 5 




2
+
B


 z − 1− 5 




2
En donde,
A=
p1
5
B=−
p2
5
Luego,
n
n

1 + 5 
1 − 5 
1
+
5
1
−
5

 −


y (n ) = 
 2 5  2 
2 5  2 

y(n ) =
 1 
 
5  2 
1
n +1
(
)
(

 µ (n )


)
n +1
n +1

− 1− 5
 1+ 5
 µ (n )


Esta función se muestra en la figura 107:
184
60
50
40
30
20
10
0
0
1
2
3
4
5
6
7
8
9
Figura 107: Serie de Fibonacci.
ANALISIS FRECUENCIAL EN TIEMPO DISCRETO
El objetivo en este caso es analizar el comportamiento de la señal en el tiempo,
expresándola como una superposición de señales más simples sinusoidales o exponenciales
complejas.
También se puede realizar el análisis de dichas señales en el dominio de la frecuencia
representando las amplitudes de las diferentes componentes, calculando su aporte en
energía o potencia y determinando el intervalo de frecuencias en donde está concentrada la
mayor cantidad de esta; este intervalo es el más relevante en la construcción de la señal, y
conduce al concepto de ancho de banda de la señal.
El comportamiento de los sistemas lineales e invariantes en el tiempo también se puede analizar de
manera sencilla por este método ya que la respuesta de un sistema LTI a una sinusoide es otra sinusoide
de la misma frecuencia pero de distinta amplitud y fase.
superposición de las respuestas a cada una de estas sinusoides.
La señal de salida será, entonces, la
185
Si se representa en el dominio de la frecuencia la relación entre las amplitudes y las fases de las
sinusoides de entrada y de salida se puede determinar cuál es el rango de frecuencias en donde el
sistema responde bien a tales señales de entrada, lo que conduce al concepto de ancho de banda del
sistema.
La representación de las señales en el dominio de la frecuencia es diferente dependiendo del tipo de
señal. Si la señal es periódica se utilizan las series de Fourier y si no lo es se usa la transformada de
Fourier.
•
ANALISIS ESPECTRAL EN TIEMPO CONTINUO
SERIES DE FOURIER PARA SEÑALES PERIODICAS
Una señal periódica en tiempo continuo se puede representar como una superposición de señales
exponenciales complejas de la siguiente manera:
∞
∑ Ck e j k Ω 0 t
x (t ) =
Ecuación de síntesis
k = −∞
Los coeficientes C k representan las amplitudes y retardos (o fases) de cada una de las componentes y
se pueden calcular así:
Ck =
1
T 2
∫ x( t ) e
− j k Ω0 t
dt
T −T 2
En estas dos ecuaciones se tiene que :
Ecuación de análisis
186
2π
Ω0 =
F0 =
y
T
1
T
T y F0 se denominan el período y la frecuencia fundamental respectivamente.
La potencia de la señal se evalúa, suponiendo que ésta se aplica sobre una resistencia de 1 Ω (potencia
normalizada), así:
P=
∞
∑
Ck 2
k = −∞
=
1
∫
T T
x (t ) 2 dt
A esta relación se le denomina el Teorema de Parseval y permite evaluar la potencia tanto en el dominio
del tiempo como en el de la frecuencia.
El ancho de banda de la señal se determina calculando el valor de k que permite obtener con la fórmula
anterior el 90% o más de su potencia, dicho ancho de banda será entonces, k F0 , sin embargo debe
tenerse en cuenta que la representación se hace por medio de exponenciales complejas con frecuencias
positivas y negativas y por tanto cada lado del espectro deberá aportar sólo el 45%.
Se puede construir un gráfico de la magnitud de los C k contra las frecuencias armónicas de F0 llamado
espectro de barras de amplitud o uno de la magnitud al cuadrado denominado espectro de barras de
187
potencia, dicho gráfico permite una visualización rápida acerca de la distribución de la potencia de la
señal en función de la frecuencia y por tanto, de cuáles son los componentes espectrales más
importantes desde el punto de vista de que son los que más aportan en la construcción de la señal.
Similarmente, se puede hacer un gráfico de las fases de cada una de las exponenciales complejas en
cada armónico de la frecuencia fundamental, el cual permite identificar los retrasos que deben tener
cada uno de los armónicos para que la suma de todos ellos sintetice correctamente la señal.
REPRESENTACION DE SEÑALES NO PERIODICAS
UTILIZANDO LA TRANSFORMADA DE FOURIER
Las señales no periódicas de energía se pueden construir como una suma infinita de
exponenciales complejas, así:
x (t ) =
1
∞
∫ X (Ω ) e
jΩ t
2 π -∞
dΩ
Ecuación de síntesis
La cantidad X ( Ω ) se denomina densidad espectral y se calcula con la siguiente expresión:
X (Ω ) =
∞
∫ x (t ) e
−jΩ t
dt
Ecuación de análisis
-∞
La energía de la señal está dada por el teorema de Parseval:
E=
∞
∫
-∞
x (t )
2
dt
188
=
1
∞
∫
2 π -∞
X ( Ω ) 2 dΩ
En donde X (Ω ) 2 se denomina densidad espectral de energía.
189
•
EN TIEMPO DISCRETO
Al igual que en tiempo continuo existen dos representaciones dependiendo de la naturaleza de la señal
en tiempo discreto, si la señal es periódica se emplean las series de Fourier de tiempo discreto y si la
señal es no periódica se utiliza la transformada de Fourier de tiempo discreto.
SERIE DE FOURIER PARA SEÑALES PERIODICAS
En tiempo continuo el rango de frecuencias está en el intervalo ( − ∞, ∞ ) y por tanto la representación
de la señal se hace con infinitas componentes sinusoidales o exponenciales complejas separadas en
frecuencia 1 T Hz .
En tiempo discreto el rango de frecuencias está en el intervalo [− π , π ] y por tanto una señal con
período fundamental N se puede representar como la suma de sinusoides o exponenciales complejas
separadas 2π N y por lo tanto son necesarias sólo N componentes.
La ecuación de síntesis:
x(n ) =
N −1
∑ Ck e j 2π k n
N
k =0
La ecuación de análisis:
− j 2π k n
1 N −1
N
Ck =
x(n ) e
N ∑
n=0
De esta ecuación se puede deducir que los C k tienen periodo N, es decir:
190
Ck + N = Ck
O sea que el espectro de una señal periódica también lo es con periodo N, de tal manera que se
requieren solamente N coeficientes consecutivos para describir completamente a x ( n ) .
Ejemplo:
La señal
x ( n ) = cos
πn
3
Tiene una frecuencia
ω0 =
π
[rad/muestra]
3
= 2π f 0
Tal que,
f0 =
=
1
[ciclos/muestra]
6
1
N
Por tanto esta señal se puede representar por medio de una serie de Fourier, así:
191
x(n ) =
5
∑ Ck e
j k 2π n
6
k =0
Con:
1 5
Ck =
∑ x(n ) e
6 n=0
−jkπ n
3
Pero,
πn  e
x ( n ) = cos 
=
 3 
jπ n
3
+ e
2
− jπ n
3
Comparando este resultado con la expresión de la serie se concluye que,
k = ±1
O sea,
C1 = C −1 =
1
2
Por otro lado,
C −1 = C5
Ya que
Ck + N = Ck
La siguiente función dibuja el espectro de una señal periódica.
192
function []=espectro_discreto(x)
%Esta función dibuja la magnitud y la fase del espectro discreto de una
%función para frecuencias entre 0 y (N-1)*W0.
%Para que el espectro dibujado sea el correcto es necesario que la %función
esté definida en un período completo N (Es decir, desde 0 hasta %N-1).
L=length(x);
y=fft(x,L)/L;
n=0:L;
theta=[zeros(1,L+1)];
for i=1:L
if abs(imag(y(i)))<=10^-6
theta(i)=0;
else
theta(i)=angle(y(i));
end
end
y=[y 0];
subplot(211)
stem(n,abs(y))
ylabel('| Ck |');
title('(a)')
subplot(212)
stem(n,theta)
ylabel('Fase (Ck)');
193
xlabel('(b)')
El espectro de esta señal se observa en la figura 108.
(a)
0.8
| Ck |
0.6
0.4
0.2
0
0
1
2
3
4
5
6
0
1
2
3
(b)
4
5
6
1
Fas e (Ck )
0.5
0
-0.5
-1
 π n .

 3 
Figura 108: (a) Espectro de magnitud de la función x ( n ) = cos 
(b) Espectro de fase
El valor de k depende del número de muestras de la señal, en este caso particular se tomó un solo
periodo ( N = 6 ) . Si se toman tres periodos, el resultado será el que se muestra en la figura 109, en la
cual se observa que el valor de k resulta multiplicado por el número de períodos enteros de la señal.
194
(a)
0.8
| Ck |
0.6
0.4
0.2
0
0
2
4
6
8
0
2
4
6
8
10
12
14
16
18
10
12
14
16
18
1
Fas e (Ck )
0.5
0
-0.5
-1
(b)
 π n  , tomando tres períodos de la señal.

 3 
Figura 109: Espectro de x ( n ) = cos 
Hay que tener precaución al escoger el número de muestras porque se pueden producir resultados
incorrectos, como en el siguiente caso (Ver figura 110) donde se toman sólo 15:
(a)
0.5
| Ck |
0.4
0.3
0.2
0.1
0
0
2
4
6
8
0
2
4
6
8
10
12
14
16
18
10
12
14
16
18
4
Fas e (Ck )
2
0
-2
-4
(b)
195
πn
 3
Figura 110: Espectro distorsionado de la función x ( n ) = cos 
.


Esto se debe fundamentalmente a que en Matlab no es posible generar ondas periódicas, sino pulsos
periódicos en un intervalo, lo que es similar a multiplicar la onda periódica por un pulso rectangular (Lo
que se denomina enventanado); esto significa que el espectro de la onda periódica será modificado por
el espectro de dicho pulso (Lo que equivale a la convolución de los dos espectros).
Ejemplo:
Hallar el espectro de la señal
πn 
x ( n ) = sen 

 3 
=
e
jπ n
3
− e
−
jπ n
3
2j
De esta expresión se puede concluir que C1 = −
resultante es el que se observa en la figura 111:
j
j
y que C −1 =
, y por tanto el espectro
2
2
196
(a)
0.5
| Ck |
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
0
1
2
3
(b)
4
5
6
2
Fas e (Ck)
1
0
-1
-2
 π n .

 3 
Figura 111: (a) Espectro de magnitud de x ( n ) = sen 
(b) Espectro de fase.
Para dibujar con Matlab el ángulo de una cantidad compleja se usa la función angle( x ) en donde hay
que tener cuidado con los resultados, porque si la parte real de la cantidad es muy pequeña el resultado
tenderá a ser ± π 2 independiente del valor de la parte imaginaria.
En la representación de la señal también se podrían haber dibujado tanto la parte real ( real ( x )) como
la parte imaginaria (imag ( x )) contra la frecuencia, como se muestra en la figura 112.
197
(a)
1
0.5
0
-0.5
-1
0
1
2
3
4
5
6
0
1
2
3
(b)
4
5
6
0.5
0
-0.5
πn
 3
Figura 112: (a) Parte real del espectro de x ( n ) = sen 
.


(b) Parte imaginaria.
La figura anterior fue realizada con la siguiente función en Matlab:
function []=espectro_discreto1(x)
%Esta función dibuja la parte real y la parte imaginaria del espectro
%discreto de una función para frecuencias entre 0 y (N-1)*W0.
%Para que el espectro dibujado sea el correcto es necesario que la %función
esté definida en un período completo N (Es decir, desde 0 hasta %N-1).
L=length(x);
y=fft(x,L)/L;
n=0:L;
for i=1:L
198
if abs(imag(y(i)))<=10^-2
y(i)=real(y(i))
end
if abs(real(y(i)))<=10^-2
y(i)=j*imag(y(i))
end
end
y=[y 0];
subplot(211)
stem(n,real(y))
title('(a)')
subplot(212)
stem(n,imag(y))
xlabel('(b)')
Ejemplo:
Hallar el espectro del tren de pulsos que se observa en la figura 113:
1.5
x(n)
1
0.5
0
-0.5
0
5
10
15
20
25
30
35
n
Figura 113: Tren de pulsos.
40
199
El cual fue generado en Matlab utilizando la siguiente función:
function[y]=periodico(x,num_period)
%Esta función genera una función periódica y(n) a partir de una señal
%no periódica x(n) y el número de períodos deseados num_period.
x=x';
x=x*ones(1,num_period);
y=x(:);
n=0:length(y)-1;
stem(n,y)
Suponiendo, para simplificar, que el tren de pulsos arranca en n = 0 , con un ciclo de dureza L N ,
siendo N el período, se tiene:
x(n ) =
N −1
∑ Ck e
j k 2π n
N
k =0
− j k 2π n
1 N −1
Ck =
∑ x(n ) e N
N n =0
Pero, en este caso,
− j k 2π n
1 L −1
Ck =
∑e N
N n =0
200
− j k 2π
1 L −1 n
=
r con r = e N
∑
N n=0
1− r L
, si k ≠ 0
1− r
Ck =
1
N
Ck =
L
, si k = 0
N
En definitiva:
Ck =
Ck =
1
N
1− e
1− e
− j k 2π L
N
− j k 2π
N
, si k ≠ 0
L
, si k = 0
N
Manipulando un poco este resultado, se obtiene la expresión definitiva:
Ck =
1
e
N
−
j k 2π ( L −1)
2N
2π k L 

2N 
, k≠0
2π k 

sen 

 2N 
sen 

Esta función se representa en la figura 114:
201
(a)
0.5
| Ck |
0.4
0.3
0.2
0.1
0
0
1
2
3
4
0
1
2
3
4
5
6
7
8
9
5
6
7
8
9
2
Fas e (Ck )
1
0
-1
-2
(b)
Figura 114: Espectro de un tren de pulsos. (a) Magnitud de C k .
(b) Fase de C k .
La potencia de una señal periódica se puede calcular usando la relación de Parseval en tiempo discreto,
P=
=
=
1 N −1
x(n ) x ∗ (n )
∑
N n=0
1 N −1
∑
x(n )
Ck
2
N n=0
N −1
∑
k =0
2
La potencia se puede calcular en Matlab usando la función var ( x,1) .
Ejemplo:
La potencia del tren periódico anterior es:
202
x=[ones(1,5),zeros(1,5)]
x =
1
1
1
1
1
0
0
0
0
0
pot=var(x,1)
pot =
0.2500
SERIE DE FOURIER PARA SEÑALES PERIODICAS REALES
Si x ( n ) es real, entonces
x(n ) = x∗ (n )
Y, por lo tanto,
C k∗ = C − k
Tal que,
Ck
= C− k
∠C k = −∠C − k
Simetría par en la magnitud.
Simetría par en la fase.
La serie exponencial de Fourier se modifica de tal manera que se puede representar la señal en términos
de funciones elementales sinusoidales:
203
L
2π kn
x ( n ) = C 0 + 2 ∑ C k cos 
+ θ k 
 N

k =1
x( n ) = a0 +
L
∑  ak cos 
k =1
2π k n 
 2π k n  
 − bk sen 

N 
 N 
En donde,
a 0 = C 0 Equivalente al nivel DC en tiempo continuo.
a k = 2 C k cos (θ k )
bk = 2 C k sen (θ k )
L=
N
, si N es par
2
L=
N −1
, si N es impar
2
LA TRANSFORMADA DE FOURIER
Esta transformada se usa para representar en el dominio de la frecuencia señales no periódicas y se
define de la siguiente manera:
X (ω ) =
∞
∑ x ( n ) e − jω n
Ecuación de análisis
n = −∞
Como el rango de frecuencias en tiempo discreto está en el intervalo [− π , π ] , entonces se tiene que:
X (ω + 2π k ) =
∞
∑ x(n ) e − j (ω + 2π k ) n
n = −∞
204
= X (ω )
De tal manera que la transformada de Fourier es periódica con período 2π .
Ejemplo:
Hallar el espectro de la señal
x(n ) = δ (n )
∞
X (ω ) =
∑ δ ( n ) e − jω n
n = −∞
=1
2
M agnitud
1.5
1
0.5
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
1
angulo(rad)
0.5
0
-0.5
-1
-4
Figura 115: Espectro de la función x ( n ) = δ ( n ) .
Como se observa en la figura 115 el espectro es real y constante para todas las frecuencias y por lo tanto
la fase es cero.
205
Este gráfico se realizó con la siguiente función en Matlab:
function[y]=espectro(x)
%Esta función dibuja el espectro de la función x.
w=-pi:0.1:pi;
y=fft(x,length(w));
z=fftshift(y);
subplot(211)
plot(w,abs(z))
xlabel('w(rad/s)')
ylabel('Magnitud')
subplot(212)
plot(w,angle(z))
xlabel('w(rad/s)')
ylabel('angulo(rad)')
Ejemplo:
Hallar el espectro de la señal
x(n ) = δ (n − k )
∞
X (ω ) =
∑ δ (n − k ) e − jω n
n = −∞
=
∞
∑ δ ( s ) e − jω ( s + k )
s = −∞
= e − jω k
206
En este caso el espectro es complejo y por lo tanto para su representación se requieren dos
gráficos, ya sea de la magnitud y la fase contra la frecuencia como es lo usual, o de la parte real y
la parte imaginaria contra la frecuencia.
1.5
M agnitud
1
0.5
0
-0.5
-3
-2
-1
0
w(rad/s )
1
2
3
-3
-2
-1
0
w(rad/s )
1
2
3
4
angulo(rad)
2
0
-2
-4
Figura 116: Espectro de la función x ( n ) = δ ( n − k ) .
Para construir el espectro que se observa en la figura 116 se asumió un impulso retrasado 4
unidades de tiempo.
Ejemplo:
Hallar el espectro de la señal
 1, 0 ≤ n ≤ N −1
x(n ) = 
 0 , El resto
X (ω ) =
N −1
∑ e − jω n
n=0
=
1 − e − jω N
1 − e − jω
207
− jω N
e 2
=
− jω N
 jω N
e 2 − e 2


− jω  jω
− jω 

2
2
e
− e 2 
 e



− jω ( N −1)
2
e
sen 

ω 
sen 

 2 
=




ωN 
2


El espectro, suponiendo una duración de pulso de 5 unidades de tiempo, se puede ver en la figura 117.
Este es el equivalente en tiempo discreto de la función seno sobre su argumento de tiempo
continuo.
5
M agnitud
4
3
2
1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 117: Espectro de
un pulso.
208
LA TRANSFORMADA INVERSA DE FOURIER
Para hallar la transformada inversa se procede a multiplicar por e jω m la ecuación de la transformada y
se integra en un intervalo de frecuencias [− π , π ] :
π
∫ X (ω ) e
jω m
dω =
π
∞
− jω n jω m
e
dω
∫ ∑ x(n ) e
−π n = −∞
−π
Intercambiando el orden de la integral y la sumatoria, se tiene:
∞
π
n = −∞
−π
π
jω m
∫ X (ω ) e dω =
−π
∑ x(n ) ∫ e jω ( m − n ) dω
Este intercambio puede hacerse si,
X N (ω ) =
N
∑ x(n ) e − jω n
Converge cuando N → ∞ .
n=−N
Por otro lado,
π
 2π si m = n
jω ( m − n )
ω
e
d
=

∫
 0 si m ≠ n
−π
O sea,
π
∫ X (ω ) e
jω m
dω = 2π x ( m )
−π
En definitiva,
1
x(n ) =
2π
π
∫ X (ω ) e
−π
jω n
dω
Ecuación de síntesis.
209
LA CONVERGENCIA
La transformada de Fourier converge (Es decir, existe) si su magnitud es diferente de infinito, o sea, si:
∞
∑ x ( n ) e − jω n
X (ω ) =
n = −∞
∞
∑
≤
(n ) < ∞
n = −∞
Por lo tanto, X (ω ) converge si la secuencia x ( n ) es absolutamente sumable.
Algunas secuencias no cumplen lo anterior, pero sí son cuadráticamente sumables, tal que:
Ex =
∞
∑
x(n ) 2 < ∞
n = −∞
En este caso la transformada de Fourier converge en sentido cuadrático medio:
π
lim
∫
X (ω ) − X N (ω ) 2 dω = 0
N → ∞ −π
Tal que la energía del error tiende a cero pero no así el error.
Ejemplo:
Sea
 1,
X (ω ) = 
 0,
ω < ωc
ωc ≤ ω ≤ π
210
ωc
1
x(n ) =
2π
=
∫ X (ω ) e
dω
−ω c
sen (ω c n )
, n≠0
πn
ωc
1
x (0 ) =
2π
=
jω n
∫ X (ω ) dω
−ω c
ωc
π
La energía de esta señal está dada por el teorema de Parseval, como se verá más adelante:
1
E=
2π
=
ωc
∫
X (ω ) 2 dω
−ω c
ωc
π
El espectro,
X N (ω ) =
sen (ω c n ) − jω n
e
π
n
n=−N
N
∑
Se muestra en las figuras 118 a 121 para diversos valores de N.
211
E s pec tro de s en(x )/x para N= 1
0.4
M agnitud
0.3
0.2
0.1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 118: Espectro X N (ω ) con N = 1 .
E s pec tro de s en(x )/x para N= 3
0.4
M agnitud
0.3
0.2
0.1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 119: Espectro X N (ω ) con N = 3 .
212
E s pec tro para N= 10
0.4
M agnitud
0.3
0.2
0.1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 120: Espectro X N (ω ) con N = 10 .
E spectro para N= 30
0.4
M agnitud
0.3
0.2
0.1
0
-4
-3
-2
-1
0
w(rad/s)
1
2
3
4
-3
-2
-1
0
w(rad/s)
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 121: Espectro X N (ω ) con N = 30 .
Se observan oscilaciones alrededor de ω = ω c independientemente del valor de N, lo que se denomina
fenómeno de Gibbs, lo que permite concluir que la señal y su representación por medio de la ecuación
de síntesis no coinciden completamente, sino que lo hacen en sentido cuadrático medio.
213
PROPIEDADES DE LA TRANSFORMADA DE FOURIER
PROPIEDAD LINEAL
Si,
x1 ( n ) ←→ X 1 (ω ) y,
F
x 2 ( n ) ←→ X 2 (ω )
F
Entonces,
ax1 ( n ) + bx 2 ( n ) ←→ aX 1 (ω ) + bX 2 (ω )
F
Ejemplo:
Hallar el espectro de la señal (Ver figura 122):
x(n ) = a n ,
a <1
1
0.9
0.8
0.7
x( n )
0.6
0.5
0.4
0.3
0.2
0.1
0
-10
-8
-6
-4
-2
0
2
4
6
8
10
n
Figura 122: Señal x ( n ) = a
n
,
a < 1.
En este caso se puede expresar la señal como la superposición de dos señales:
x ( n ) = x1 ( n ) + x 2 ( n )
En donde,
214
 an ,
x1 ( n ) = 
0 ,
n≥0
n<0
 a− n ,
x2 (n ) = 
0 ,
n<0
n≥0
La transformada de la primera función:
X 1 (ω ) =
=
∞
∑ a n e − jω n
n=0
1
1 − a e − jω
Siempre que,
a e − jω = a
e − jω = a < 1
El espectro de esta señal se observa en la figura 123.
4
M agnitud
3
2
1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
1
angulo(rad)
0.5
0
-0.5
-1
-4
215
Figura 123: Espectro de la función x1 ( n ) .
De manera similar, para la segunda componente se tiene:
X 2 (ω ) =
−1
∑
a − n e − jω n =
n = −∞
a e jω
1 − a e jω
El espectro de esta señal se muestra en la figura 124.
x 10
-6
5
M agnitud
4
3
2
1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 124: Espectro de la función x 2 ( n ) .
Sumando los dos resultados anteriores se obtiene el espectro buscado, ver figura 125:
X (ω ) =
1− a2
1 − 2 a cos (ω ) + a 2
En esta figura se observa que nuevamente el espectro es real y por lo tanto, el ángulo de fase es cero.
216
6
4
2
0
-4
-3
-2
-1
0
1
2
3
4
-3
-2
-1
0
1
2
3
4
1
0.5
0
-0.5
-1
-4
Figura 125: Espectro resultante X (ω ) .
•
PROPIEDAD DE RETARDO TEMPORAL
Si,
x ( n ) ←→ X (ω )
F
Entonces,
x ( n − k ) ←→ e − jω k X (ω )
F
Al desplazar la señal k unidades de tiempo, la magnitud del espectro no cambia pero su fase sí lo hace
en − kω radianes.
Ejemplo:
x ( n ) = δ ( n ) → X (ω ) = 1
F
217
x ( n − k ) = δ ( n − k ) → X (ω ) = e − jω k
F
•
PROPIEDAD DE REFLEXION TEMPORAL
Si,
x ( n ) ←→ X (ω )
F
Entonces,
x ( − n ) ←→ X ( − ω )
F
Al girar una función en el tiempo, la magnitud de su espectro no se altera, pero su fase se invierte.
•
PROPIEDAD DE LA CONVOLUCION
Si,
x1 ( n ) ←→ X 1 (ω )
F
y
x 2 ( n ) ←→ X 2 (ω )
F
Entonces,
x ( n ) = x1 ( n ) ∗ x 2 ( n ) ←→ X 1 (ω ) X 2 (ω )
F
Este resultado permite una vía alterna para calcular la convolución de dos secuencias, hallando primero
la transformada de cada una de ellas, realizando luego el producto de las transformadas y, por último
resolviendo la transformada inversa de dicho producto. Este procedimiento se vuelve muy eficiente
cuando se utiliza la Transformada Rápida de Fourier (FFT), como se verá más adelante.
Ejemplo:
218
Determinar la convolución de las secuencias siguientes:
x1 ( n ) = x 2 ( n ) = { 1, 1, 1 }
↑
Primero se calcula la transformada de Fourier de las dos secuencias, la cual se dibuja en la figura 126:
X 1 (ω ) = X 2 (ω ) = e jω + 1 + e − jω
= 1 + 2 cos(ω )
M agnitud
3
2
1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 126: Espectro X 1 (ω ) = X 2 (ω ) .
Se observa que aunque la fase debió ser cero, en Matlab se agrega un desfase lineal debido a que la
secuencia no se toma simétrica con respecto al origen sino retrasada (En media longitud de la
secuencia), al efectuar el cálculo con la función fft ( x ) .
El producto de las dos transformadas se muestra en la figura 127 y está dado por:
X (ω ) = X 1 (ω ) X 2 (ω ) = ( 1 + 2 cos(ω )) 2
219
= 3 + 4 cos(ω ) + 2 cos( 2ω )
(
) (
= 3 + 2 e jω + e − jω + e j 2ω + e − j 2ω
)
= e − j 2ω + 2e − jω + 3 + 2e jω + e j 2ω
10
M agnitud
8
6
4
2
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 127: Espectro X (ω ) .
Y por tanto el resultado de la convolución será,
x ( n ) = {1, 2, 3, 2, 1 }
↑
El cual se puede obtener en Matlab con la función ifft ( x ) , ver figura 128:
220
3
2.5
y ( n )
2
1.5
1
0.5
0
0
1
2
3
4
5
6
n
Figura 128: Resultado de la convolución del ejemplo.
En donde nuevamente se observa el retraso mencionado previamente.
•
PROPIEDAD DE CORRELACION
Si,
x1 ( n ) ←→ X 1 (ω )
F
y
x 2 ( n ) ←→ X 2 (ω )
F
Entonces,
rx1 x 2 ( m ) ←→ S x1 x 2 (ω ) = X 1 (ω ) X 2 ( − ω )
F
La función S x1 x 2 (ω ) se denomina densidad espectral de energía cruzada de las dos señales.
•
TEOREMA DE WIENER KINTCHINE
Si x ( n ) es real, entonces:
rxx (l ) ←
→ S xx (ω )
F
Este resultado indica que la autocorrelación y la densidad espectral de energía contienen la misma
información acerca de la señal. El problema es que varias señales pueden tener la misma función de
221
autocorrelación y por tanto la misma densidad espectral ya que en estas operaciones se pierde la
información de la fase.
Ejemplo:
Determinar la densidad espectral de energía de la señal (Ver figura 129):
x(n ) = a n µ (n ) , − 1 < a < 1
Por la definición de la autocorrelación de una señal de energía, se tiene que,
rxx (l ) =
rxx (l ) =
∞
∑ x(n ) x(n − l )
n = −∞
∞
∑ a n a n −l
n=0
1
0.9
0.8
x ( n )
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
2
4
6
8
10
12
14
16
18
20
n
Figura 129: Función x ( n ) del ejemplo.
Esta correlación dependerá del valor de l, así:
Para l ≥ 0 ,
rxx (l ) =
∞
∑ a n a n −l
n =l
= a −l
∞
∑( a2 )
n =l
n
222
= al
Si l < 0 ,
rxx (l ) =
1
1− a2
∞
∑ a n a n −l
n=0
∞
= a −l
∑( a2 )
n
n=0
= a −l
1
1− a2
En definitiva, se tiene
rxx (l ) =
1
1− a
2
a l , −∞ <l < ∞
La cual se obtiene en Matlab usando la función xcorr ( x ) , como se muestra en la figura 130:
2
1.8
1.6
rxx ( l )
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
5
10
15
20
25
30
35
40
45
l
Figura 130: Autocorrelación rxx (l ) .
La densidad espectral será entonces, ver figura 131:
S xx (ω ) = F ( rxx (l ) )
223
=
1
1 − 2 a cos(ω ) + a 2
12
10
Sxx ( w )
8
6
4
2
0
-4
-3
-2
-1
0
1
2
3
4
w
Figura 131: Densidad espectral S xx (ω ) .
•
PROPIEDAD DE DESPLAZAMIENTO FRECUENCIAL
Si,
x ( n ) ←→ X (ω )
F
Entonces,
x ( n ) e jω 0 n ←→ X (ω − ω 0 )
F
Ejemplo:
El espectro de la señal x ( n ) = a n µ ( n ) tiene la forma que se muestra en la figura 132:
224
4
M agnitud
3
2
1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
1
angulo(rad)
0.5
0
-0.5
-1
-4
Figura 132: Espectro de la función x ( n ) = a µ ( n ) .
n
Al multiplicar la señal por e jπ n / 3 , el espectro resulta desplazado tal como se muestra en la figura 133:
4
M agnitud
3
2
1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
1
angulo(rad)
0.5
0
-0.5
-1
-4
Figura 133: Espectro de la función x ( n ) = a µ ( n ) multiplicada por
n
•
Si,
PROPIEDAD DE MODULACION
e jπ n / 3 .
225
x ( n ) ←→ X (ω )
F
Entonces,
x ( n ) cos (ω 0 n ) ←→
F
1
[ X (ω − ω 0 ) + X (ω + ω 0 )]
2
El resultado de esta operación es el desplazamiento del espectro de la señal alrededor de la frecuencia
de la sinusoide.
Así por ejemplo, al realizar el producto de a n µ ( n ) por cos( 2π × n / 3) , se logra el espectro que se
observa en la figura 134:
M agnitud
2
1.5
1
0.5
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
1
angulo(rad)
0.5
0
-0.5
-1
-4
Figura 134: Espectro de la función x ( n ) = a µ ( n ) multiplicada por cos  2π
n

n
3
 .

226
•
PROPIEDAD DE ENVENTANADO
Si,
x1 ( n ) ←→ X 1 (ω )
F
y
x 2 ( n ) ←→ X 2 (ω )
F
Entonces,
x3 ( n ) = x1 ( n ) x2 ( n ) ←→ X 3 (ω ) =
F
1
2π
π
∫ X 1 (λ ) X 2 (ω − λ ) dλ
−π
Este resultado indica que multiplicar dos señales en el tiempo equivale a la
convolución de sus transformadas de Fourier.
La integral anterior se conoce como la convolución periódica, dado que es la convolución de dos
transformadas periódicas con el mismo período.
Ejemplo:
La figura 135 muestra el espectro de la señal x ( n ) = 5 cos ( 2π n 64 )
227
(a)
2.5
| Ck |
2
1.5
1
0.5
0
0
10
20
30
0
10
20
30
40
50
60
70
40
50
60
70
1
Fas e (Ck )
0.5
0
-0.5
-1
(b)
Figura 135: Espectro de la función x ( n ) = 5 cos ( 2π n 64 ) .
La figura 136 muestra el espectro de 40 muestras de la señal x ( n ) = 5 cos ( 2π n 64 ) , resultado de
multiplicar la señal por una ventana rectangular de longitud 40. Se observa en esta figura la aparición
de lóbulos laterales debidos a la ventana, sin embargo se distinguen claramente dos picos en las dos
frecuencias, situados en ± 2π 64 .
M agnitud
150
100
50
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 136: Espectro de la función x ( n ) = 5 cos ( 2π n 64 ) con sólo 40 muestras.
228
DENSIDAD ESPECTRAL DE ENERGIA
La energía de una señal se puede calcular en el tiempo así:
Ex =
∞
x (n )
∑
2
n = −∞
Pero también se puede calcular en el dominio de la frecuencia de la siguiente manera:
1
Ex =
2π
π
∫
X (ω )
2
dω
−π
Este resultado se conoce como el Teorema de Parseval para señales de energía.
En donde la función
S xx (ω ) = X (ω )
2
Se denomina Densidad Espectral de Energía (DEE), debido a que el área bajo la curva de esta función
permite calcular la energía de la señal. El intervalo de frecuencias alrededor de la frecuencia central en
donde está contenido un porcentaje importante de esta energía (90% o más) es lo que se denomina el
ancho de banda de la señal.
La frecuencia central será aquella que minimiza el ancho de banda y está dado por la siguiente
expresión:
∞
∫ω
ω0 =
−∞
∞
∫
−∞
F (ω ) 2 dω
F (ω ) 2 dω
229
La cual resulta de minimizar lo que se denomina el ancho de banda de “radio de giro”, dado por:
∞
∫ (ω − ω 0 )
W 2 = −∞
∞
∫
2
F (ω ) 2 dω
F (ω ) 2 dω
−∞
En el caso en que la señal es real,
X ∗ (ω ) = X ( − ω )
Re ( X (ω )) − j Im ( X (ω )) = Re ( X ( − ω )) + j Im ( X ( − ω ))
∴ Re ( X (ω )) = Re ( X ( − ω ))
Im ( X (ω )) = − Im ( X ( − ω ))
De manera equivalente:
X ( − ω ) = X (ω )
Se tiene entonces simetría par en la magnitud del espectro, lo que hace necesario calcular solamente el
espectro en un intervalo [0, π ] .
Además existe simetría impar en el ángulo, con la misma implicación anterior.
∠ X ( − ω ) = −∠ X (ω )
En cuanto a la densidad espectral, se cumple que
S xx ( − ω ) = S xx (ω )
Y por tanto esta función tiene simetría par.
230
Esto quiere decir que para señales reales sólo es necesario especificar el espectro en el intervalo [0, π ] .
Ejemplo:
Hallar el espectro de la señal
x(n ) = a n µ (n ) , − 1 < a < 1
∞
∑ a n e − jω n
X (ω ) =
n=0
Para verificar que la transformada converge, se tiene:
∞
∑
x(n ) =
n=0
∞
∑
a n
n=0
=
1
1− a
< ∞ a <1
Luego sí existe la transformada, ver figura 137.
∞
X (ω ) =
∑ ( a e − jω )
n=0
=
1
1 − a e − jω
n
231
4
M agnitud
3
2
1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
1
angulo(rad)
0.5
0
-0.5
-1
-4
Figura 137: Espectro de la señal del ejemplo.
La densidad espectral de energía (ver figura 138):
S xx (ω ) = X (ω )
1
1 − 2 a cos(ω ) + a 2
Densidad espectral de energía de x ( n )
12
2
10
| X ( w ) |
=
2
8
6
4
2
0
-4
-3
-2
-1
0
1
2
3
4
w
Figura 138: Densidad espectral de energía, S xx (ω ) de x ( n ) .
232
RELACION DE LA TRANSFORMADA DE FOURIER
CON LA TRANSFORMADA Z
Recordando que la transformada Z está dada por la siguiente expresión:
X (z) =
∞
∑ x(n ) z − n ,
n = −∞
r2 ≤ z ≤ r1
Y que además,
z = r e jω
Se tiene:
X (z)
∞
∑ x ( n ) r − n e − jω n
=
z = re jω
n = −∞
Luego X ( z ) es la transformada de Fourier de la secuencia x ( n ) r − n . El factor de ponderación crece
con n si r < 1 y decrece si r > 1 .
Además X ( z ) converge si
X (z) ≤
∞
x(n ) r − n < ∞
∑
n = −∞
En el caso particular que X ( z ) converja para z = 1 , se tiene:
X (z)
z = e jω
=
∞
∑ x ( n ) e − jω n
n = −∞
233
Lo cual significa que la transformada de Fourier es la transformada z evaluada en la circunferencia
unidad, si la ROC de la transformada z no incluye esta circunferencia, entonces la transformada de
Fourier no existe.
Sin embargo, la existencia de la transformada de Fourier no garantiza la existencia de la transformada z;
así por ejemplo, la señal:
x(n ) =
sen (ω c n )
, −∞ ≤n≤ ∞
πn
Tiene una transformada de Fourier
 1 , ω ≤ ωc
X (ω ) = 
 0 , Resto
Pero no tiene transformada z, ya que
∞
∑
x(n ) r − n = ∞
n = −∞
LA TRANSFORMADA DE FOURIER DE SEÑALES QUE TIENEN POLOS DE LA TRANSFORMADA Z EN LA
CIRCUNFERENCIA UNIDAD
Algunas señales no son ni absoluta ni cuadráticamente sumables, de tal manera que no tienen
transformada de Fourier. Sin embargo, sería útil extender la transformada para estos casos; lo cual se
hace permitiendo que ésta contenga impulsos en las frecuencias en donde están ubicados los polos. En
este caso se evalúa la transformada de Fourier en la circunferencia unitaria y se coloca un impulso en los
puntos donde haya un polo.
Ejemplo:
Calcular la transformada de Fourier de la señal
234
x(n ) = µ (n )
Como se sabe, la transformada z de esta función es,
X (z) =
1
1 − z −1
,
z >1
La cual tiene un polo en z = 1 .
La transformada de Fourier, será entonces:
X (ω ) =
1
1 − e − jω
j
=
ω
e 2
, ω ≠ 2π k con k = 0, 1, L
ω 

2 j sen 

 2 
Ejemplo:
Hallar el espectro de la función
x ( n ) = cos (ω 0 n ) µ ( n )
La transformada z de esta secuencia:
X (z) =
X (ω ) =
1 − z −1 cos (ω 0 )
1 − 2 z −1 cos(ω 0 ) + z − 2
1 − e − jω cos (ω 0 )
, ROC :
1 − 2e − jω cos (ω 0 ) + e − 2 jω
z >1
, ω ≠ ω 0 + 2π k con k = 0, 1, 2, L
CARACTERISTICAS EN EL DOMINIO DE LA FRECUENCIA
235
DE LOS SISTEMAS LTI
Una de las aplicaciones importantes de la representación de señales por medio de exponenciales
complejas o sinusoidales consiste en la caracterización de sistemas LTI. En este caso se aplican
como excitación señales sinusoidales y se observa la respuesta a dichas funciones.
Como se ha analizado previamente la respuesta de un sistema LTI a cualquier señal de entrada está dada
por la sumatoria de convolución,
∞
y(n ) =
∑ h( k ) x( n − k )
k = −∞
Si aplicamos a dicho sistema una señal exponencial compleja,
x ( n ) = A e jω n , − ∞ < n < ∞ , − π < ω < π
La salida será:
y(n ) = A
∞
∑ h ( k ) e − jω k e jω n
k = −∞
= Ae
jω n
∞
∑ h ( k ) e − jω k
k = −∞
= A e jω n H (ω )
En donde la función:
H (ω ) =
∞
∑ h(k ) e − jω k
k = −∞
236
= F ( h( n ))
Se denomina la respuesta en frecuencia del sistema y existe si,
∞
∑
h( n )
< ∞
n = −∞
O sea si el sistema es estable BIBO.
Se dice entonces, que la función e jω n es una autofunción del sistema y que H (ω ) es un autovalor.
De los resultados anteriores se puede concluir que la respuesta de un sistema
LTI a una exponencial compleja depende de su frecuencia, cambiando ésta de
amplitud y sufriendo un retraso.
H (ω ) = H (ω ) e jθ (ω )
En donde,
H (ω ) : Respuesta en magnitud
θ (ω ) : Respuesta en fase.
A partir de la respuesta en frecuencia del sistema se puede calcular su respuesta al impulso de la
siguiente manera:
h( n ) =
1
2π
π
∫ H (ω ) e
jω n
dω
−π
La respuesta a funciones sinusoidales se puede calcular así:
237
x1 ( n ) = A e jω n ←→ y1 ( n ) = A H (ω ) e jθ (ω ) e jω n
x 2 ( n ) = A e − jω n ←→ y 2 ( n ) = A H ( − ω ) e jθ ( −ω ) e − jω n
Si se asume que la respuesta al impulso es real,
H (ω ) = H ( − ω )
y
θ ( − ω ) = −θ (ω )
Y por lo tanto, si
x ( n ) = A cos (ω n ) ←
→ y ( n ) =
A
[ y1 ( n ) + y 2 ( n )]
2
= A H (ω ) cos (ω n + θ (ω ))
Además, si;
x ( n ) = A sen (ω n ) ←
→ y ( n ) =
A
[ y1 ( n ) − y 2 ( n )]
2j
= A H (ω ) sen (ω n + θ (ω ))
Esto quiere decir que la respuesta en frecuencia caracteriza completamente el efecto de un sistema LTI
sobre señales sinusoidales de frecuencia arbitraria, de tal manera que éste sólo modifica la amplitud de
dichas señales y les introduce un retraso pero no cambia su forma.
En general, si la entrada es la suma de varias sinusoides, se aplica la superposición de las respuestas a
cada una de ellas:
L
x ( n ) = ∑ Ai cos (ω i n + φ i ) , − ∞ < n < ∞
i =1
238
L
y ( n ) = ∑ Ai H (ω i ) cos(ω i n + φ i + θ (ω i ))
i =1
Se puede también concluir de acuerdo con estos resultados que los sistemas LTI son filtros que atenúan
unas frecuencias y amplifican otras.
RESPUESTA DE LOS SISTEMAS LTI A SEÑALES PERIODICAS
Si se aplica a un sistema LTI una señal periódica x ( n ) , la cual puede ser expresada en términos de
exponenciales complejas como:
x(n ) =
N −1
∑
k =0
j k 2π n
Ck e N
con k = 0, 1, L , N − 1
La respuesta estará dada por:
N −1
(
y(n ) =
C k H 2π k
N
k =0
∑
)
j 2π k n
e N
Se concluye de este resultado que la señal de salida también es periódica con período N, pero de forma
diferente a la de la entrada.
RESPUESTA A SEÑALES APERIODICAS
Por la propiedad de la convolución se tiene que la densidad espectral de salida está dada por:
Y (ω ) = X (ω ) H (ω )
El gráfico de H (ω ) muestra cuáles frecuencias resultan favorecidas y cuáles no. Para calcular la señal
de salida, se tiene:
239
1
y(n ) =
2π
π
∫ Y (ω ) e
jω n
dω
−π
La densidad espectral de energía de salida,
Y (ω )
= X (ω )
2
H (ω )
2
S yy (ω ) = S xx (ω ) H (ω )
2
2
De tal manera que la energía de salida está dada por:
1
Ey =
2π
1
=
2π
π
∫ S yy (ω ) dω
−π
π
∫
H (ω )
2
S xx (ω ) dω
−π
RELACION ENTRE LA RESPUESTA EN FRECUENCIA
Y LA FUNCION DE TRANSFERENCIA
Si la función de transferencia H ( z ) converge en la circunferencia unidad se puede obtener la respuesta
en frecuencia evaluando la función de transferencia en dicha circunferencia, es decir,
H (ω ) = H ( z )
z = e jω
En el caso de tener una función de transferencia racional, se tiene:
H (z) =
Y por lo tanto,
B( z )
A( z )
240
B (ω )
A(ω )
H (ω ) =
M
∑ bk e − jω k
k =0
n
H (ω ) =
1+
∑ ak e − jω k
k =1
∏ ( 1 − z k e − jω )
M
= b0 k =1
∏ ( 1 − pk e − jω )
N
k =1
En cuanto a la densidad espectral de energía, se tiene:
H (ω )
2
= H (ω ) H ∗ (ω )
Pero,
∏ ( 1 − z k∗ e j ω )
M
H ∗ (ω ) = b0 k =1
∏ ( 1 − pk∗ e j ω )
N
k =1
Esta expresión se puede considerar como el resultado de evaluar la siguiente ecuación:
∏ ( 1 − z k∗ z )
M


H ∗ 1 
= k =1
∗
N
ω
j
 z  z =e
∏ ( 1 − pk∗ z )
k =1
z = e jω
Además, si h ( n ) es real se puede tener pares de polos y ceros complejos conjugados, de modo que:
241
( )


H ∗  1  = H z −1
∗
 z 
Y, por tanto,
H ∗ (ω ) = H ( − ω )
De tal manera que
H (ω )
2
( )
= H (ω ) H ∗ (ω ) = H (ω ) H ( − ω ) = H ( z ) H z −1
z = e jω
LA TRANSFORMADA DE FOURIER DISCRETA
Para realizar el análisis espectral de una secuencia se recurre a realizar la transformada de Fourier de la
señal en un procesador digital. El problema que surge consiste en que la transformada es una función
continua de la frecuencia y por lo tanto requiere de infinitos puntos para su representación en el
intervalo finito de frecuencias [− π , π ] e infinitas posiciones de memoria para su almacenamiento. Se
recurre entonces a una forma de representación equivalente denominada la transformada discreta de
Fourier, la cual consiste en el muestreo de la transformada de Fourier en una serie de puntos
distribuidos uniformemente en el intervalo de frecuencias mencionado.
Tomando N muestras de la transformada de Fourier
X (ω ) =
∞
∑ x ( n ) e − jω n
n = −∞
En un intervalo de 2π , se tiene:
∞
2π k 
X 
=

∑ x(n ) e
 N  n = −∞
− j 2π k n
N
con k = 0, 1, L , N − 1
242
− j 2πkn
− j 2πkn
− j 2πkn
N −1
2 N −1
N
N
= L+
x ( n )e
+
x ( n )e
+
x ( n )e N
+L
n=−N
n=0
n= N
−1
∑
∑
∑
− j 2π k n
∞ l N + N −1
2π k 

N
X
x(n ) e
= ∑
∑
 N  l = −∞ n = l N
=
∞
N −1
∑ ∑
− j 2π k n
N
x(n − l N ) e
l = −∞ n = 0
=
N −1
∑
∞
∑ x(n − l N )
− j 2π k n
N
e
n=0 1
l =4
−∞
42443
x p (n )
La señal x p ( n ) es una réplica periódica de x ( n ) con período N y por lo tanto se puede representar por
medio de una serie de Fourier, de la siguiente forma:
x p (n ) =
N −1
∑
k =0
j k 2π n
Ck e N
con n = 0, 1, L , N − 1
Donde
− j k 2π n
1 N −1
Ck =
∑ x p (n ) e N
N n=0
con k = 0, 1, L , N − 1
O sea,
Ck =
Por lo tanto,
1
2π k 
X 
 con k = 0, 1, L , N − 1
N
 N 
243
j k 2π n
1 N −1  2π k 
x p (n ) =
X
 e N
∑
N k =0  N 
con n = 0, 1, L , N − 1
Si L ≤ N no habrá aliasing en el tiempo en x p ( n ) y entonces se puede recuperar x ( n ) a partir de
x p ( n ) , de lo contrario es imposible lograrlo. En la figura 139 se muestra una función y su respectiva
versión periódica con y sin aliasing.
15
10
(a)
5
0
0
2
4
6
8
10
12
14
20
(b)
10
0
0
5
10
15
20
25
30
35
40
45
50
0
5
10
15
20
25
30
35
40
45
50
20
(c ) 10
0
Figura 139: (a) x ( n ) , (b) Versión periódica sin aliasing temporal. (c) Versión periódica con aliasing temporal.
Esta figura se realizó hallando primero el número de muestras deseado de la transformada de Fourier
con la función aliasing que se muestra a continuación y calculando luego la transformada inversa con la
función idiscreta que también se muestra.
function[y]=aliasing(x,N)
%Esta función permite construir cualquier número de muestras de la
%transformada de Fourier.
%
244
USO:
%y=aliasing(x,N)
%En donde:
%x es un la señal y N es el número de muestras deseadas de la %transformada.
N1=length(x);
y=zeros(1,N);
for k=0:N-1
suma=0;
for n=0:N1-1
suma=suma+x(n+1)*exp(-j*2*pi*k*n/N);
end
y(k+1)=suma;
end
function[y]=idiscreta(x,long)
%Esta función permite construir cualquier número de puntos en varios
%períodos de la transformada inversa discreta de Fourier.
%USO:
%y=idiscreta(x,long)
%En donde:
%x es un período de la transformada discreta de Fourier y long es el %número
de puntos deseados de la señal.
N=length(x);
y=zeros(1,long);
for n=0:long-1
suma=0;
245
for k=0:N-1
suma=suma+x(k+1)*exp(j*2*pi*k*n/N);
end
y(n+1)=suma;
end
y=y/N;
Si no se produce aliasing temporal se tiene:
 x p (n ) ,
x(n ) = 
,
0
0 ≤ n ≤ N −1
Otro caso
También se puede recuperar el espectro X (ω ) a partir de sus N muestras si no hay aliasing en el
tiempo de la siguiente forma:
X (ω ) =
∞
∑ x ( n ) e − jω n
n = −∞
Con:
j 2π k n
1 N −1
2π k
x(n ) =
∑X N e N ,
N k =0
(
)
n = 0, 1, L , N − 1
j 2π k n
1 N −1  2π k 
X (ω ) = ∑
∑ X  N  e N e − jω n
N
n=0
k =0
N −1
N −1
(
2π k
)
2π k  1 N −1 − j ω − N n

= ∑ X

∑e
N  N n=0
k =0 
14444244443
2π k 
P  ω −

N 

En donde:
246
P (ω ) =
1 N −1 − jω n
∑e
N n=0
=
1 1 − e − jω N
N 1 − e − jω
ωN
sen 
 2
=
ω
N sen 
 2

− jω ( N −1 )

 e
2



Se concluye que,
X (ω ) =
N −1
2π k  
2π k 
X 
 P ω −
 con N ≥ 1
N 
 N  
k =0
∑
LA TRANSFORMADA DE FOURIER DISCRETA
Las muestras de X (ω ) no representan de manera unívoca a x ( n ) si ésta es de duración infinita, pero si
2π k 
x ( n ) es de duración L < N , X 
 genera una secuencia periódica,
 N 
 x(n ) ,
x p (n ) = 
0 ,
0 ≤ n ≤ L −1
L ≤ n ≤ N −1
Esto equivale a rellenar con N − L ceros a x ( n ) ; para reconstruir a X (ω ) sólo se requieren L
muestras y aunque el relleno con ceros no aporta información adicional sobre X (ω ) sí mejora la
representación gráfica ya que produce un trazo más continuo.
Si x ( n ) = 0 para n < 0 y n ≥ L , entonces:
X (ω ) =
N −1
∑
n=0
x ( n ) e − jω n con 0 ≤ ω ≤ 2π
247
Tomando N muestras de X (ω ) :
L −1
2π k 
X 
=
X
(
k
)
=

∑ x(n ) e
 N 
n=0
X (k ) =
N −1
∑
x(n ) e
− j 2π k n
N
− j 2π k n
N
con k = 0, 1, L , N − 1
n=0
Esto convierte una señal de longitud L en un conjunto de muestras en frecuencia {X ( k )} de longitud N
denominado transformada discreta de Fourier (DFT).
De manera equivalente la transformada discreta de Fourier se puede expresar
como:
X (k ) =
N −1
∑
n=0
x ( n ) W Nk n con k = 0, 1, L , N − 1
En donde:
− j 2π
WN ≡ e
N
Por otro lado, la transformada inversa discreta de Fourier (IDFT), está dada por:
j 2π k n
1 N −1
x(n ) =
X (k ) e N
∑
N k =0
con n = 0, 1, L , N − 1
Similarmente, la transformada inversa se puede expresar así:
x(n ) =
1 N −1
∑ X (k ) W N− k n con n = 0, 1, L , N − 1
N k =0
Las relaciones anteriores se pueden simbolizar así:
248
x ( n ) ← 
→ X ( k )
N
DFT
RELACION DE LA TRANSFORMADA DISCRETA
CON LA SERIE DE FOURIER Y OTRAS TRANSFORMADAS
•
RELACION CON LOS COEFICIENTES DE LA SERIE DE FOURIER
x p (n ) =
N −1
∑
k =0
j k 2π n
Ck e N
con − ∞ ≤ n ≤ ∞
− j k 2π n
1 N −1
Ck =
∑ x p (n ) e N
N n=0
con k = 0, 1, L , N − 1
De acuerdo con estas expresiones se puede concluir que
X (k ) = N Ck
•
RELACION CON LA TRANSFORMADA DE FOURIER
De acuerdo con los resultados anteriores se tiene que
X ( k ) = X (ω )
ω = 2π k N
La transformada inversa produce una secuencia periódica
x p (n ) =
∞
∑ x(n − l N )
l = −∞
De la cual se puede recuperar una secuencia con aliasing
 x p (n ) ,
xˆ ( n ) = 
,
0
0 ≤ n ≤ N −1
El resto
249
Si x ( n ) es de longitud L ≤ N entonces
xˆ ( n ) = x ( n ) ,
•
0 ≤ n ≤ N −1
RELACION CON LA TRANSFORMADA Z
X (k ) = X ( z )
con k = 0, 1, L , N − 1
z = e j 2π k N
La transformada discreta de Fourier consiste en muestras de X ( z ) en N puntos sobre la circunferencia
unidad.
X (k ) =
∞
∑ x (n ) e
− j k 2π n
N
n = −∞
Siempre y cuando la ROC de la transformada Z incluya esta circunferencia.
Si x ( n ) es de longitud L ≤ N se puede recuperar unívocamente a partir de su DFT de N puntos y por
lo tanto también su transformada Z.
X (z) =
N −1
∑
x(n ) z − n
n=0
j k 2π n
N −1
1
= ∑ 
∑ X (k ) e N
N

n=0 
k =0
N −1 
N −1
1 N −1
=
X (k ) ∑
∑
N k =0
n=0
=
1
N
n
 j 2π k

 e N z −1 




N −1
(1 − z − N ) ∑

 z −n


k =0 1 − e
X (k )
j 2π k N
z −1
250
También, de acuerdo con este resultado,
X (ω ) =
1 − e − j ω N N −1
N
∑
k =0
X (k )
1 − e − j (ω − 2π k ) N
La función freqz de Matlab permite hallar N puntos de la respuesta en frecuencia de un sistema o de la
transformada de Fourier de una señal con base en la correspondiente transformada z.
PROPIEDADES DE LA TRANSFORMADA DISCRETA DE FOURIER
La transformada discreta de Fourier cumple prácticamente todas las propiedades de la transformada de
Fourier, con algunas diferencias importantes que se enfatizarán oportunamente.
•
PERIODICIDAD
Si
x ( n ) ← 
→ X ( k )
N
DFT
Entonces
x ( n + N ) = x ( n ) , ∀n
X ( k + N ) = X ( k ) , ∀k
Ejemplo:
La siguiente función en Matlab permite construir cualquier número de puntos en varios períodos de la
transformada discreta de Fourier.
function[y]=discreta(x,long)
%USO:
%y=discreta(x,long)
251
%En donde:
%x es un período de la señal periódica y long es el número de puntos
%deseados
N=length(x);
y=zeros(1,long);
for k=0:long-1
suma=0;
for n=0:N-1
suma=suma+x(n+1)*exp(-j*2*pi*k*n/N);
end
y(k+1)=suma;
end
k=0:long-1;
stem(k,abs(y))
La figura 140 muestra la magnitud de la transformada discreta de Fourier de un tren periódico de pulsos
en uno y tres períodos.
3
2
1
0
0
1
2
3
4
5
(a)
3
2
1
0
0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18
(b)
252
Figura 140: Transformada de Fourier de un tren de pulsos: (a) Un período, (b) Tres períodos.
La señal correspondiente en el tiempo se puede calcular con un período completo de la transformada
discreta de Fourier utilizando la función idiscreta que se mencionó previamente y se muestra en la figura
141:
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
2
4
6
8
10
12
14
16
18
Figura 141: Transformada inversa de Fourier.
•
LINEALIDAD
Si
→ X 1 ( k )
x1 ( n ) ← 
N
DFT
→ X 2 ( k )
x 2 ( n ) ← 
N
DFT
Entonces,
a x1 ( n ) + b x 2 ( n ) ← 
→ a X 1 ( k ) + b X 2 ( k )
N
DFT
La figura 142 muestra la magnitud de la transformada discreta de Fourier de las señales
x ( n ) = a n µ ( n ) , x ( n ) = a n cos(ω 0 n )µ ( n ) y de la suma de las dos.
253
4
(a)
2
0
0
10
20
30
40
50
60
70
80
90
100
0
10
20
30
40
50
60
70
80
90
100
0
10
20
30
40
50
60
70
80
90
100
2
(b)
1
0
6
4
(c )
2
0
Figura 142: Magnitud de la transformada discreta de Fourier de las señales (a) x ( n ) = a µ ( n ) , (b)
n
x(n ) = a
•
n
n
n
cos (ω 0 n )µ ( n ) y (c) a µ ( n ) + a cos (ω 0 n )µ ( n ) .
SIMETRIA CIRCULAR DE UNA SECUENCIA
La DFT de N puntos de una secuencia de duración finita ( L ≤ N ) , x ( n ) , es equivalente a la DFT de N
puntos de una secuencia periódica x p ( n ) de período N:
x p (n ) =
∞
∑ x(n − l N )
l = −∞
Si se desplaza x p ( n ) k unidades de tiempo se tiene lo siguiente:
x 'p ( n ) = x p ( n − k )
=
∞
∑ x(n − k − l N )
l = −∞
254
La secuencia de duración finita
 x ' ( n ) ,
x ' (n ) =  p
 0
,
0 ≤ n ≤ N −1
El resto
Se relaciona con x ( n ) mediante una operación de desplazamiento circular:
x ' ( n ) = x ( n − k , módulo N )
= x ( ( n − k )) N
Esto quiere decir que el desplazamiento circular de una secuencia de N puntos es equivalente al
desplazamiento lineal de su extensión periódica y viceversa.
En la figura 143 se muestra una secuencia y su respectivo desplazamiento circular de 5 unidades, hecha
con la siguiente función en Matlab que realiza dicho desplazamiento basada en la transformada discreta
de Fourier.
function [xdesp]=circular(x,l)
x=fft(x);
N=length(x);
y=zeros(1,N);
for k=0:N-1
y(k+1)=x(k+1)*exp(-j*2*pi*l*k/N);
end
xdesp=ifft(y);
255
1.5
1
0.5
0
1
2
3
4
5
6
4
5
6
(a)
1.5
1
0.5
0
1
2
3
(b)
Figura 143: (a) Secuencia x ( n ) , (b) Secuencia desplazada 5 unidades.
Antes de hablar de la convolución circular es necesario precisar los siguientes conceptos:
SECUENCIA CIRCULARMENTE PAR
En este tipo de secuencias (Ver figura 144) se cumple que:
x ( N − n ) = x ( n ) con 1 ≤ n ≤ N − 1
9
8
7
6
5
4
3
2
1
0
0
2
4
6
8
10
12
14
16
Figura 144: Secuencia circularmente par.
256
SECUENCIA CIRCULARMENTE IMPAR
En este tipo de secuencias (Ver figura 145) se cumple que:
x ( N − n ) = − x ( n ) con 1 ≤ n ≤ N − 1
10
8
6
4
2
0
-2
-4
-6
-8
-10
0
2
4
6
8
10
12
14
16
18
Figura 145: Secuencia circularmente impar.
REFLEXION TEMPORAL
En la reflexión temporal de una secuencia x ( n ) (Ver figura 146) se cumple que:
x (( − n )) N = x ( N − n ) con 0 ≤ n ≤ N − 1
(a)
1
0.8
0.6
0.4
0.2
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
(b)
6
7
8
9
10
1
0.8
0.6
0.4
0.2
0
257
Figura 146: Secuencia x ( n ) y su versión reflejada.
La figura 146 fue lograda con el siguiente programa en Matlab que realiza la reflexión circular de una
secuencia real.
function[y]=reflexion(x)
N=length(x);
y=fliplr(fft(x));
y=abs(ifft(y));
n=0:N-1;
subplot(211)
stem(n,x)
title('(a)')
subplot(212)
stem(n,y)
xlabel('(b)')
•
MULTIPLICACION DE DOS DFT Y CONVOLUCION CIRCULAR
Si
x1 ( n ) ← 
→ X 1 ( k )
N
DFT
x 2 ( n ) ← 
→ X 2 ( k )
N
DFT
Y, además
X 3 ( k ) = X 1 ( k ) X 2 ( k ) con k = 0, 1, L , N − 1
Entonces,
258
j 2π k m
1 N −1
N
x3 ( m ) =
X 3 (k ) e
∑
N k =0
x3 ( m ) =
N −1
∑ x1 (n ) x2 ((m − n )) N
con m = 0, 1, L , N − 1
n=0
Esta operación se denomina convolución circular de dos secuencias y se simboliza de la siguiente
manera:
x1 ( n )
x 2 ( n ) ← 
→ X 1 ( k ) X 2 ( k )
N
Para el cálculo de la convolución circular se requieren los siguientes pasos:
N
DFT
1. Reflexión circular de una de las secuencias.
2. Multiplicación por la otra secuencia.
3. Suma de los puntos de la secuencia resultante para calcular el valor del punto correspondiente de la
salida.
4. Desplazamiento circular de una secuencia.
5. Repetir los pasos 2 a 4 hasta completar todos los desplazamientos posibles.
En la figura 147 se muestra el resultado de la convolución circular de dos secuencias.
259
(a)
4
2
0
0
0.5
1
1.5
2
2.5
3
0
0.5
1
1.5
2
2.5
3
0
0.5
1
1.5
2
2.5
3
(b)
1
0.5
0
(c )
10
5
0
Figura 147: (a) x ( n ) , (b) h ( n ) , (c) convolución circular de x ( n ) y h ( n ) .
Se aprecia en esta figura que la convolución circular resultante no coincide con la convolución lineal,
cuyo resultado es el siguiente:
conv ( x, h ) = [ 1 3 6 10 9 7 4 ]
Esto se debe fundamentalmente a que se produjo aliasing en el tiempo por una mala escogencia de la
longitud de la convolución circular. Este problema se resuelve teniendo
en cuenta que la longitud de la convolución lineal es la suma de las longitudes de cada una de las
secuencias menos uno y por lo tanto es necesario agregar ceros al final de cada una de las secuencias, lo
que no las modifica, y recalcular la convolución lineal como se muestra en la figura 148:
260
(a)
4
2
0
0
1
2
3
4
5
6
0
1
2
3
4
5
6
0
1
2
3
4
5
6
(b)
1
0.5
0
15
(c )
10
5
0
Figura 148: (a) y (b) Secuencias con inserción de ceros, (c) Convolución circular de estas secuencias.
La siguiente función devuelve la convolución circular de dos secuencias x ( n ) y h ( n ) :
y = conv _ circular ( x, h, L )
En donde L es la longitud deseada de la convolución circular.
function[y]=conv_circular(x,h,L)
x=[x,zeros(1,L-length(x))];
h=[h,zeros(1,L-length(h))];
xw=fft(x,L);
hw=fft(h,L);
yw=xw.*hw;
y=ifft(yw);
y=abs(y);
n=0:L-1;
261
subplot(311)
stem(n,abs(x));
ylabel('( a )')
subplot(312)
stem(n,abs(h));
ylabel('( b )')
subplot(313)
stem(n,abs(y));
ylabel('( c )')
•
DESPLAZAMIENTO CIRCULAR EN EL TIEMPO DE UNA SECUENCIA
Si
x ( n ) ← 
→ X ( k )
N
DFT
Entonces,
x (( n − l )) N ← 
→ X ( k ) e
N
DFT
− j 2π k l
N
En la figura 149 se muestra una señal y su correspondiente desplazamiento circular de 5 unidades.
262
(a)
10
8
6
4
2
0
0
1
2
3
4
5
6
7
8
0
1
2
3
4
(b)
5
6
7
8
10
8
6
4
2
0
Figura 149: (a) x ( n ) , (b) x ( (n − 5 ) ) N .
•
DESPLAZAMIENTO CIRCULAR EN FRECUENCIA
Si
x ( n ) ← 
→ X ( k )
N
DFT
Entonces,
x(n ) e
j 2π l
N
n
← 
→ X (( k − l )) N
N
DFT
La figura 150 muestra el espectro de una señal y su correspondiente espectro desplazado L
unidades resultado de multiplicar la señal por e j 2π L n N .
263
(a)
(b)
50
4
40
2
30
0
20
-2
10
0
-4
0
2
4
6
8
0
2
(c )
4
6
8
6
8
(d)
50
4
40
2
30
0
20
-2
10
0
-4
0
2
4
6
8
0
2
4
Figura 150: Magnitud y ángulo del espectro de las señales: (a) y (b): x ( n ) , (c) y (d) x ( n ) e
j 2π L n N
.
Esta figura fue construida con el siguiente programa elaborado en Matlab:
function [xdesp]=circular_frecuencia(x,L)
%Esta funcion realiza el desplazamiento circular de una secuencia basado %en
la transformada discreta de Fourier.
z=fft(x);
N=length(x);
y=zeros(1,N);
for n=0:N-1
y(n+1)=x(n+1)*exp(-j*2*pi*L*n/N);
end
ydesp=fft(y);
n=0:N-1;
264
subplot(221)
stem(n,abs(z))
title('(a)')
subplot(222)
stem(n,angle(z))
title('(b)')
subplot(223)
stem(n,abs(ydesp))
title('(c)')
subplot(224)
stem(n,angle(ydesp))
title('(d)')
•
MULTIPLICACION DE DOS SECUENCIAS
Si
x1 ( n ) ← 
→ X 1 ( k )
N
DFT
x 2 ( n ) ← 
→ X 2 ( k )
N
DFT
Entonces,
x1 ( n ) x 2 ( n ) ← 
→
N
DFT
1
X 1 (k )
N
N
X 2 (k )
En la figura 151 se muestra el espectro en magnitud y fase de dos señales y su producto, logrado con la
siguiente función realizada en Matlab:
function[y]=conv_circular_tiempo(x,h)
265
%Esta función devuelve la convolución circular de dos espectros, %resultado de multiplicar dos
señales x(n) y h(n) en el tiempo
%Uso:
%
y=conv_circular_tiempo(x,h)
L=max(length(x), length(h));
x=[x,zeros(1,L-length(x))];
h=[h,zeros(1,L-length(h))];
z=x.*h;
xw=fft(x,L);
hw=fft(h,L);
zw=fft(z)/L;
n=0:L-1;
subplot(321)
stem(n,abs(xw));
ylabel('( a )')
subplot(322)
stem(n,angulo(xw));
ylabel('( b )')
subplot(323)
stem(n,abs(hw));
ylabel('( c )')
subplot(324)
stem(n,angulo(hw));
ylabel('( d )')
subplot(325)
stem(n,abs(zw));
266
ylabel('( e )')
subplot(326)
stem(n,angulo(zw));
ylabel('( f )')
5
40
Fas e
M agnitud
60
20
0
-5
0
2
4
6
8
0
2
4
6
8
0
2
4
6
8
0
2
4
6
8
1
4
Fas e
M agnitud
6
2
0
0
-1
0
2
4
6
8
3
5
2
Fas e
M agnitud
0
1
0
0
-5
0
2
4
6
8
Figura 151: Espectro en magnitud y fase de dos señales y el producto de ellas.
•
TEOREMA DE PARSEVAL
Si
x ( n ) ← 
→ X ( k )
N
DFT
y ( n ) ← 
→ Y ( k )
N
DFT
Entonces,
N −1
∑
n=0
x(n ) y ∗ (n ) =
1 N −1
X (k ) Y ∗ ( K )
∑
N k =0
En particular, si x ( n ) = y ( n ) , entonces
267
N −1
∑
x(n )
2
n=0
=
1 N −1
∑ X (k )
N k =0
2
METODOS DE FILTRADO LINEAL USANDO LA DFT
Como se vio previamente un sistema LTI tiene una relación entrada−salida desde el punto de
vista de la frecuencia dada por la expresión,
Y (ω ) = H (ω ) X (ω )
O visto como un par transformado,
Y (ω ) = H (ω ) X (ω ) ←
→ x ( n ) ⊗ h ( n )
F
El cálculo de esta relación en un procesador digital de señales es problemático porque las
funciones involucradas son continuas en la frecuencia.
Si se trabaja con la transformada discreta de Fourier se puede expresar la relación entrada−salida
como:
Y ( k ) = Y (ω )
ω=
2π k
N
con k = 0, 1, L , N − 1
O, de manera equivalente, como un par transformado:
Y ( k ) = H ( k ) X ( k ) ← 
→ x ( n )
N
DFT
N
h( n )
Sin embargo, esta operación puede no ser equivalente a la convolución lineal debido al aliasing
temporal.
En la convolución lineal, si:
x ( n ) = 0 con n < 0 y n ≥ L
Y además,
268
h( n ) = 0 con n < 0 y n ≥ M
Entonces,
y(n ) =
M −1
∑ h( k ) x( n − k )
k =0
La salida y ( n ) será cero para n < 0 y n ≥ L + M − 1 , es decir, tendrá una longitud L + M − 1 y por
esta razón las transformadas Y ( k ) , X ( k ) y H ( k ) deberán tener todas esta misma longitud, de tal
manera que la convolución circular coincida con la convolución lineal.Es necesario, entonces, aumentar
la longitud de x ( n ) y h ( n ) agregando ceros, hasta completar la longitud igual a L + M − 1 o
superior.
En las figuras 152 y 153 se muestran dos señales y su respectiva convolución circular para dos longitudes
diferentes, en la primera se aprecia el efecto del aliasing temporal por una selección incorrecta de la
longitud de la convolución circular y en la segunda se hace la elección adecuada de dicha longitud y por
tanto no se presenta aliasing.
6
(a)
4
2
0
0
1
2
3
4
5
6
7
8
0
1
2
3
4
5
6
7
8
0
1
2
3
4
5
6
7
8
(b)
1
0.5
0
15
(c )
10
5
0
Figura 152: (a) x ( n ) , (b) h ( n ) , (c) Convolución circular de estas señales con aliasing.
269
6
(a)
4
2
0
0
2
4
6
8
10
12
14
0
2
4
6
8
10
12
14
0
2
4
6
8
10
12
14
(b)
1
0.5
0
15
(c )
10
5
0
Figura 153: (a) x ( n ) , (b) h ( n ) , (c) Convolución circular de estas señales sin aliasing.
Si la secuencia a filtrar es de larga duración (O eventualmente de duración infinita) es ineficiente usar la
transformada discreta de Fourier de manera directa porque se requerirían longitudes de DFT demasiado
grandes y por tanto es necesario partir la secuencia de entrada en bloques pequeños y realizar el
filtrado con una de las dos metodologías que se enuncian a continuación:
•
METODO DE SOLAPAMIENTO Y ALMACENAMIENTO
En este método se escogen bloques de entrada de tamaño N = L + M − 1 , tomando al principio de
cada uno M − 1 datos del anterior (En el primer bloque se añaden M − 1 ceros porque no hay datos
del anterior), se elige la secuencia h ( n ) de longitud M y se le agregan L − 1 ceros, luego se calculan las
transformadas de las dos secuencias, se realiza el producto de ambos resultados y posteriormente se
calcula la transformada inversa de L + M − 1 puntos.
Como las secuencias x ( n ) y h ( n ) tienen longitudes L + M − 1 y M respectivamente, las de las
transformadas deberían ser L + 2 M − 2 para que no existiera aliasing pero en realidad es
N = L + M − 1 y por tanto se concluye que los primeros M − 1 puntos tienen aliasing y deben
desecharse, los restantes están correctos y se almacenan para obtener la secuencia de salida, uniéndola
con los otros bloques resultantes.
270
El siguiente programa permite realizar el filtrado de una señal de longitud grande mediante el método
de solapamiento y almacenamiento:
function[y]=overlap_save(x,h,Nfft)
%USO:
%y=overlap_save(x,h,Nfft)
%Con:
%x: Secuencia de entrada.
%h: Respuesta al impulso.
%Nfft: Longitud de la transformada. Con restricciones en las longitudes
%
máxima y mínima.
%y: Secuencia de salida.
M=length(h);
H=fft(h,Nfft);
L=Nfft-M+1;
bloque=[zeros(1,M-1),x(1:L)];
B=fft(bloque,Nfft);
y1=B.*H;
yseg=ifft(y1);
y(1:L)=yseg(M:Nfft);
for ix=L+1:L:length(x)
if ix+L-1>length(x)
x=[x,zeros(1,ix+L-1-length(x))];
end
bloque=x(ix-M+1:ix+L-1);
B=fft(bloque,Nfft);
271
y1=B.*H;
yseg=ifft(y1);
y(ix:ix+L-1)=yseg(M:Nfft);
end
if ~any(imag(h))& ~any(imag(x))
y=real(y);
end
En la secuencia siguiente se muestra el valor de la señal, la respuesta al impulso y los distintos bloques
usados en el cálculo de la transformada de la señal de entrada.
x=1:20;
h=[1 0 1 0 1];
y=overlap_save(x, h, 10);
bloque = [ 0
0
0
0
1
2
3
4
5
6]
bloque = [ 3
4
5
6
7
8
9
10
11
12]
bloque = [ 9
10
11
12
13
14
15
16
17
18]
bloque = [15
16
17
18
19
20
0
0
0
0]
•
METODO DE SOLAPAMIENTO Y SUMA
Se escogen bloques de longitud L y se le agregan M − 1 ceros al final de cada uno. Se calculan
las transformadas de longitud N = L + M − 1 tanto de la secuencia de entrada como de la
respuesta al impulso. Se hace el producto de las transformadas y luego se calcula la
transformada inversa de longitud N.
Como la secuencia de entrada es de longitud L y la respuesta al impulso de longitud M, la
secuencia resultante de longitud L + M − 1 no tiene aliasing. Esto quiere decir que los
272
M − 1 últimos puntos de esta secuencia se deben sumar con los primeros de la secuencia resultante
siguiente.
El siguiente programa permite realizar el filtrado de una señal de longitud grande mediante el método
de solapamiento y suma:
function[y]=overlap_add(x,h,Nfft)
%USO:
%y=overlap_add(x,h,Nfft)
%Con:
%x: Secuencia de entrada.
%h: Respuesta al impulso.
%Nfft: Longitud de la transformada. Con restricciones en la longitud
%
mínima.
%y: Secuencia de salida.
H=fft(h,Nfft);
M=Nfft-length(h)+1;
y=zeros(1,length(x)+Nfft-1);
for ix=1:M:length(x)
if ix+M-1>length(x)
x=[x,zeros(1,ix+M-1-length(x))];
end
x_seg=x(ix:ix+M-1)
X=fft(x_seg,Nfft);
Y=X.*H;
y_seg=ifft(Y);
273
y(ix:ix+Nfft-1)=y(ix:ix+Nfft-1)+y_seg(1:Nfft);
end;
if ~any(imag(h))& ~any(imag(x))
y=real(y);
end;
En la siguiente secuencia se muestra el valor de la señal, la respuesta al impulso y los distintos bloques
usados en el cálculo de la transformada de la señal de entrada.
x=1:51;
h=[1 0 1 0 1];
y=overlap_add(x,h,12);
bloque = [ 1
2
3
4
5
6
7
8]
bloque = [ 9
10
11
12
13
14
15
16]
bloque = [17
18
19
20
21
22
23
24]
bloque = [25
26
27
28
29
30
31
32]
bloque = [33
34
35
36
37
38
39
40]
bloque = [41
42
43
44
45
46
47
48]
bloque = [49
50
51
0
0
0
0
0]
CALCULO EFICIENTE DE LA DFT
A continuación se analizan algunos métodos de cálculo de la Transformada de Fourier Discreta que son
muy eficientes desde el punto de vista computacional.
Como se vio previamente, la transformada discreta de Fourier está dada por:
X (k ) =
N −1
∑
n=0
x ( n ) W Nk n
con 0 ≤ k ≤ N − 1
274
Y la transformada inversa se puede hallar mediante la siguiente expresión:
x(n ) =
1 N −1
∑ X (k ) W N− n k , con 0 ≤ n ≤ N − 1
N k =0
En donde el factor de fase:
WN = e
−
j 2π
N
Tiene las siguientes propiedades que son útiles para simplificar el cálculo de la transformada discreta de
Fourier:
•
SIMETRIA
k+ N
W 2
N
= − W Nk
j 2π
k+ N
−
2
WN
= e N
•
( k + N2 ) = e −
j 2π k
N
e
− jπ
= −e
−
j 2π k
N
= − W Nk
PERIODICIDAD
W Nk + N = W Nk
k+N
WN
=e
−
j 2π
N
( k+N)
=e
−
j 2π k
N
e
− j 2π
=e
−
j 2π k
N
= W Nk
Para el cálculo de la transformada discreta directa o inversa de Fourier se tiene que para cada valor de k
se requieren:
•
N multiplicaciones complejas ( 4 N productos reales).
•
N − 1 sumas complejas ( ( 4 N − 2 ) sumas reales).
•
En total N 2 productos complejos ( 4N 2 productos reales y N 2 − N sumas complejas).
275
Para el cálculo directo de la DFT utilizando funciones trigonométricas se tiene:
X R (k ) =
N −1
 x ( n ) cos 2π k n + x ( n ) sen 2π k n 
I
 R
N
N 
n=0 
∑
X I (k ) = −
N −1
 x ( n ) sen 2π k n − x ( n ) cos 2π k n 
I
 R
N
N 
n=0 
∑
En este caso se requiere realizar:
•
2N 2 cálculos de funciones trigonométricas.
•
4N 2 multiplicaciones reales.
•
4 N ( N − 1) sumas reales, ya que sen ( 2π k n N ) = 0 para k , n = 0 .
•
Numerosas operaciones de direccionamiento e indexado.
METODO DIVIDE Y VENCERAS
La estrategia para lograr una reducción en el número de cálculos consiste en descomponer la DFT de N
puntos en DFT´s más pequeñas, haciendo que la longitud de la secuencia se fragmente en un par de
factores enteros:
N = LM
Si N es un número primo se rellena la secuencia con ceros, de tal manera que se pueda expresar la
longitud resultante como el producto de dos enteros.
La secuencia x ( n ) se puede almacenar en una matriz bidimensional indexada por l y m, como se
muestra en la figura 154, de tal manera que:
0 ≤ l ≤ L −1 y 0 ≤ m ≤ M −1
l
m
0
1
M
L −1
0
1
K
M −1
276
Figura 154: Arreglo bidimensional para almacenar una secuencia.
Dependiendo de la correspondencia entre n, l y m se pueden generar dos tipos de arreglos
diferentes, así:
•
Almacenamiento por filas:
En este caso:
n=Ml+m
Cada fila contiene M elementos consecutivos de x ( n ) , como se aprecia en la figura 155.
()
x 0
()
x 1
K
(
x M −1
)
( )
x M
M
M
x
((L − 1)M )
K
Figura 155: Arreglo bidimensional para almacenar una secuencia por filas.
La siguiente función organiza el vector x en una matriz bidimensional ( L, M ) .
function[y]=alm_filas(x,M)
%USO
%y=alm_filas(x,M)
%Donde:
%x: Vector a organizar.
%M: Número de columnas deseadas.
277
long=length(x);
L=ceil(long/M);
x=[x,zeros(1,L*M-long)];
for l=0:L-1
y(l+1,1:M)=x(M*l+1:M*l+M);
end
Ejemplo:
Usando el programa anterior se obtuvieron los siguientes resultados:
x=[ 1 2 3
4 5 6
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
89 90 91 92 93 94 95 96 97 98 99 100 ]
M = 12
y=alm_filas(x,M)
y=
1
2
3
4
5
6
7
8
9
10 11 12
13 14 15 16 17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72
73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96
97 98 99 100
0
0
0
0
0
0
0
0
278
•
Almacenamiento por columnas:
En este caso:
n = Lm+l
Cada columna contiene L elementos consecutivos de x ( n ) , como se aprecia en la figura 156.
()
()
x L
x 0
K x((M − 1)L )
()
x 1
M
M
(
x L −1
)
K
Figura 156: Arreglo bidimensional para almacenar una secuencia por columnas.
La siguiente función organiza el vector x en una matriz bidimensional ( L, M ) .
function[y]=alm_columnas(x,L)
%USO
%y=alm_columnas(x,L)
%Donde:
%x: Vector a organizar.
%L: Número de filas deseadas.
long=length(x);
M=ceil(long/L);
x=[x,zeros(1,L*M-long)];
279
for l=0:L-1
for m=0:M-1
y(l+1,m+1)=x(m*L+l+1);
end
end
Ejemplo:
Usando el programa anterior se obtuvieron los siguientes resultados:
x=[ 1 2 3
4 5 6
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
89 90 91 92 93 94 95 96 97 98 99 100 ]
L=12
y=alm_columnas(x,L)
y=
1 13 25 37 49 61 73 85
97
2 14 26 38 50 62 74 86
98
3 15 27 39 51 63 75 87
99
4 16 28 40 52 64 76 88 100
5 17 29 41 53 65 77 89
0
6 18 30 42 54 66 78 90
0
7 19 31 43 55 67 79 91
0
8 20 32 44 56 68 80 92
0
9 21 33 45 57 69 81 93
0
280
10 22 34 46 58 70 82 94
0
11 23 35 47 59 71 83 95
0
12 24 36 48 60 72 84 96
0
De manera similar, los resultados de la transformada discreta de Fourier X ( k ) de la secuencia, se
pueden almacenar de dos formas diferentes dependiendo de la relación entre k , p y q , con:
0 ≤ p ≤ L −1 y 0 ≤ q ≤ M −1
Si:
•
k = M p + q : Se produce almacenamiento por filas de la transformada.
•
k = L q + p : Almacenamiento por columnas de la transformada.
METODO DE DIEZMADO EN EL TIEMPO
En el caso en que x ( n ) esté almacenado por columnas (O sea, n = ( m L + l ) y X ( k ) lo esté por filas
(con k = ( p M + q ) ) , se puede expresar la transformada discreta de Fourier de la siguiente manera:
X ( p, q ) =
M −1 L −1
∑ ∑ x (l , m ) W N( p M + q ) ( m L + l )
m=0 l =0
Pero:
( p M + q ) (m L + l )
M Lm p
mLq
M pl
lq
WN
= WN
WN
WN
WN
Nmp
WN
=1
W Nm q L = W Nm Lq = WMm q
W NM p l = W Np lM = W Lp l
281
X ( p, q ) =
L −1 

∑  W Nl q
l =0 
 M −1
mq
 ∑ x (l , m ) W M 
 m = 0

 l p
 WL

Esta expresión implica el cálculo de DFT de longitudes M y L:
•
Primero se calcula la DFT de M puntos:
F (l , q ) =
M −1
∑
m =0
x (l , m ) W M
mq
con 0 ≤ q ≤ M − 1
Para cada una de las filas, l = 0, 1, L , L − 1 .
•
Luego se calcula la matriz producto:
G (l , q ) = W N F (l , q ) con 0 ≤ l ≤ L − 1 y 0 ≤ q ≤ M − 1
lq
•
Por último se calcula la DFT de L puntos:
X ( p, q ) =
L −1
∑ G (l , q ) WLl p
l =0
Para cada columna q = 0, 1, L , M − 1 .
COMPLEJIDAD DE LOS CALCULOS EN ESTA METODOLOGIA
•
El primer paso requiere el cálculo de L transformadas discretas de Fourier cada uno de M puntos, lo
que requiere L M 2 multiplicaciones complejas y L M ( M − 1) sumas complejas.
•
El segundo, requiere L M multiplicaciones complejas.
•
El tercero, exige M L2 productos complejos y M L ( L − 1) sumas complejas.
Se tiene entonces, el siguiente número de operaciones:
•
Multiplicaciones complejas: N ( M + L + 1) , cuando antes se requerían N 2 .
282
•
Sumas complejas: N ( M + L − 2 ) , cuando antes se necesitaban: N ( N − 1) .
Ejemplo:
En el caso en que la longitud de la secuencia sea de 1000, se tiene:
N = 1.000
N 2 = 1.000.000
⇒
Con el método de diezmado en el tiempo para la misma secuencia se requieren:
L = 2, M = 500
⇒
503.000 multiplicaciones complejas.
501.000 sumas complejas.
Se observa que se produce una reducción en los cálculos del orden de 2 a 1.
Si N puede descomponerse en un producto de números primos:
N = r1 r2 r3 L rv
Esta descomposición puede repetirse (v − 1) veces más lográndose en cada una de ellas la misma
reducción de 2 a 1 en los cálculos.
El siguiente programa calcula la transformada discreta de Fourier por el método de diezmado en el
tiempo:
function[x1] = diezmado_tiempo(x,L)
%USO:
%xk=diezmado_tiempo(x,L)
%En donde:
%L es el número de filas L.
x1=alm_columnas(x,L);
%Se almacena el vector en
una
matriz
(L,M)
[L1,L2]=size(x1);
%columnas agregando ceros si es necesario
M=L1*L2/L;
%Se calcula el número de columnas resultantes
por
283
N=M*L;
%Se halla la longitud del vector resultante al
%agregar ceros
x1=fft(x1.').';
%Se realiza la transformada de la matriz por filas
w=zeros(L1,L2);
for l=0:L-1
for q=0:M-1
w(l+1,q+1)=exp(-j*2*pi*l*q/N);
%Se calcula la matriz de fase
end
end
x1=x1.*w;
%Se hace el producto de la transformada por el
%factor de fase
x1=fft(x1);
%Se calcula la transformada por columnas
Ejemplo:
A continuación se muestran todos los resultados intermedios del método de diezmado en el tiempo
obtenidos mediante el programa anterior:
Señal a la que se le va a calcular la transformada:
x = [1
2
3
4
5]
Vector organizado por columnas:
1
x ( L, M ) =  2

 3
4
5

0 
Transformada por filas de x ( L, M ) :
5
F (l , q ) =  7

 3
3
3

3
284
Matriz de fase:
lq
WN
1.0000
= 1.0000

1.0000

0.5000 − 0.8660 i 

− 0.5000 − 0.8660 i 
1.0000
Producto entre la matriz de fase y la transformada por filas:
G (l , q ) = W N
lq
− 3.0000
5.0000
F (l , q ) = 7.0000

3.0000

− 1.5000 + 2.5981 i 

− 1.5000 − 2.5981 i 
Transformada por columnas:
15.0000

X ( p , q ) = 0.0000 − 3.4641 i

 0 + 3.4641 i
− 6.0000

3.0000 + 0.0000 i 

− 6.0000 − 0.0000 i 
METODO DE DIEZMADO EN FRECUENCIA
En este caso se almacenan los datos de entrada por filas y los datos de salida por columnas, o sea:
n=Ml+m y
k = Lq+ p
De tal manera que la transformada discreta de Fourier X ( k ) se expresa de la siguiente forma:
X ( p, q ) =
M −1 L − 1
∑ ∑ x(l , m ) W Np m
m=0 l =0
=
M −1
∑
m=0
L −1
mq 
WM
pl
WL
qm
WM
lp 
mp
 ∑ x (l , m ) W L  W N
 l = 0

285
Esto implica que para calcular la transformada por este método se requiere realizar los siguientes pasos:
•
Almacenamiento de la señal por filas.
•
Cálculo de la DFT por columnas.
•
Multiplicaciones de la matriz resultante por los factores W N
•
Cálculo de la DFT de M puntos por fila.
•
Lectura por columnas de la matriz resultante.
mp
.
Como resultado se logra una reducción en la cantidad de cálculos similar a la obtenida por el método de
diezmado temporal.
La siguiente función calcula la transformada discreta de Fourier por el método de diezmado en
frecuencia:
function[x2]=diezmado_frecuencia(x,M)
%USO:
%xk=diezmado_frecuencia(x,M)
%En donde:
%M es el número de columnas.
x1=alm_filas(x,M);
%Se almacena el vector en una matriz (L,M) por
[L1,L2]=size(x1);
%filas agregando ceros si es necesario
L=L1*L2/M;
%Se calcula el número de filas resultantes
N=M*L;
%Se halla la longitud del vector resultante al
%agregar ceros
x1=fft(x1);
w=zeros(L1,L2);
for p=0:L-1
%Se realiza la transformada de la matriz por
%columnas
286
for m=0:M-1
w(p+1,m+1)=exp(-j*2*pi*m*p/N);
%Se calcula la matriz de fase
end
end
x1=w.*x1;
%Se realiza el producto de la transformada por el
%factor de fase
x2=fft(x1.').';
%Se calcula la transformada por filas
Ejemplo:
A continuación se muestran todos los resultados intermedios del método de diezmado en frecuencia
obtenidos mediante el programa anterior:
Señal a la que se le va a calcular la transformada:
x=[0 1 2 3 4 5]
Vector organizado por filas:
0
x ( L, M ) = 
3
2
5 
1
4
Transformada por columnas de x ( L, M ) :
 3
F (l , q ) = 
− 3
5
−3
7
− 3
Matriz de fase:
lq
WN
1.0000
=
1.0000
1.0000
0.5000 − 0.8660 i

− 0.5000 − 0.8660 i 
1.0000
287
Producto entre la matriz de fase y la transformada por columnas:
 3.0000
lq
G (l , q ) = W N F (l , q ) = 
 − 3.0000
5.0000
− 1.5000 + 2.5981 i

1.5000 + 2.5981 i 
7.0000
Transformada por filas:
15.0000

X ( p, q ) = 
 − 3.0000 + 5.1962 i
− 3.0000 + 1.7321 i
− 3.0000 − 0.0000 i
− 3.0000 − 1.7321 i 
− 3.0000 − 5.1962 i 
ALGORITMOS PARA LA FFT BASE 2
Si en la descomposición de N en productos de números primos:
N = r1 r2 r3 L rv
Se tiene que:
r1 = r2 = L = rv ≡ r
O sea:
N = rv
Entonces las transformadas son de tamaño r, con r = 2 el más usado, siendo r la base del algoritmo
para el cálculo de la FFT.
Algoritmo de diezmado en el tiempo:
Sea:
N = 2v
288
Y, además:
M =
N
2
y L=2
Se divide la secuencia de datos en dos de longitud N 2 , f1 ( n ) y f 2 ( n ) :
f1 (n ) = x(2n )
N

−1
 con n = 0, 1, L ,
f 2 ( n ) = x ( 2 n + 1) 
2
f 1 ( n ) y f 2 ( n ) se obtienen diezmando x ( n ) por 2 y es por esta razón que el algoritmo se denomina de
diezmado en el tiempo.
X (k ) =
N −1
∑ x(n ) W Nk n
con k = 0, 1, L , N − 1
n=0
=
∑ x(n ) W Nk n
n par
=
N −1
2
∑
m=0
Pero W N2 = W N
X (k ) =
+
∑ x (n ) W Nk n
n impar
x ( 2 m ) W N2 m k +
N −1
2
∑
m=0
x ( 2 m + 1) W N( 2 m +1) k
2
N −1
2
∑
m=0
f1 ( m ) W Nk m
+ W Nk
2
N −1
2
∑
m=0
f 2 ( m ) W Nk m
2
= F1 ( k ) + W Nk F2 ( k ) con k = 0, 1, L , N − 1
De las expresiones de F1 ( k ) y F2 ( k ) se puede concluir que éstas son periódicas, con período N 2 :
N 
F1  k +
 = F1 ( k )
2 

289
N 
F2  k +
 = F2 ( k )
2 

Además,
k+N 2
WN
= −W Nk
Luego:
X ( k ) = F1 ( k ) + W Nk F2 ( k ) con k = 0, 1, L ,
N
−1
2
N 
k
X  k +
 = F1 ( k ) − W N F2 ( k )
2 

El número de operaciones necesarias para el cálculo de la transformada está dado por:
•
( N 2 )2
productos complejos para calcular F1 ( k ) y F2 ( k ) .
•
N 2 productos complejos para calcular W Nk F2 ( k ) .
En definitiva, el cálculo completo de multiplicaciones complejas requerido es:
N 2
N
N2
N
2 
+
=
+

2
2
2
 2 
Lo que comparado con los N 2 productos complejos del cálculo directo implica una reducción de
aproximadamente la mitad.
Las expresiones anteriores se pueden escribir también de la siguiente manera:
G1 ( k ) = F1 ( k ) ,
k = 0, 1, L ,
N
−1
2
290
G 2 ( k ) = W Nk F2 ( k ) ,
N
−1
2
k = 0, 1, L ,
X ( k ) = G1 ( k ) + G 2 ( k ) ,
k = 0, 1, L ,
N 
X  k +
 = G1 ( k ) − G2 ( k ) ,
2 

N
−1
2
k = 0, 1, L ,
N
−1
2
El proceso de diezmado en el tiempo se puede repetir nuevamente, haciendo:
v11 ( n ) = f 1 ( 2 n ) ,
n = 0, 1, L ,
v12 ( n ) = f 1 ( 2 n + 1) ,
v 21 ( n ) = f 2 ( 2 n ) ,
N
−1
4
N
−1
4
n = 0, 1, L ,
n = 0, 1, L ,
v 22 ( n ) = f 2 ( 2 n + 1) ,
N
−1
4
n = 0, 1, L ,
N
−1
4
Calculando las DFT´s de N 4 puntos se obtienen las de N 2 puntos F1 ( k ) y F2 ( k ) :
F1 ( k ) = V 11 ( k ) + W Nk 2 V 12 ( k ) ,
k = 0, 1, L ,
N 
k
F1  k +
 = V 11 ( k ) − W N 2 V 12 ( k ) ,
4 

F2 ( k ) = V 21 ( k ) + W Nk 2 V 22 ( k ) ,
k = 0, 1, L ,
k = 0, 1, L ,
N 
k
F2  k +
 = V 21 ( k ) − W N 2 V 22 ( k ) ,
4 

N
−1
4
N
−1
4
N
−1
4
k = 0, 1, L ,
N
−1
4
El número de operaciones necesarias en este caso para el cálculo de la transformada está dado por:
291
•
4 ( N 4 ) 2 multiplicaciones para calcular los
calcularse con
•
{ vij (k ) }, o sea que los
F1 ( k ) y F2 ( k ) pueden
N2
N
+
multiplicaciones complejas.
4
2
N 2 multiplicaciones complejas más para calcular X ( k ) a partir de F1 ( k ) y F2 ( k ) .
(
En definitiva, el número total de multiplicaciones es N 2 4
) + N , con una reducción de
aproximadamente la mitad de los cálculos. Es posible repetir este proceso hasta que las secuencias sean
de un punto, de tal manera que para N = 2 v el diezmado puede realizarse v = log
el número de operaciones necesarias sea:
•
( N 2 ) log
•
N log 2 N sumas complejas.
2
N multiplicaciones complejas.
Como un caso particular si N = 8 la transformada se realiza en tres etapas:
1. Se comienza con el cálculo de 4 DFT´s de 2 puntos.
2. Luego se hallan 2 DFT´s de 4 puntos.
3. Por último se encuentra la DFT de 8 puntos.
El cálculo básico se parece a una mariposa, como se observa en la figura 157:
A = a + W N′ b
a
b
W N′
−1
B = a − W N' b
Figura 157: Mariposa básica para el cálculo de la DFT.
Con esta metodología de cálculo de la transformada:
•
Cada mariposa requiere una multiplicación y dos sumas complejas.
2
N veces, tal que
292
•
Para N = 2 v se tienen N 2 mariposas y
( N 2 ) log 2 N
•
log 2 N etapas y por tanto se requieren
productos y N log 2 N sumas.
Cada vez que se calcula una mariposa los resultados se pueden almacenar en las mismas posiciones
de la entrada, lo que implica una cantidad fija de memoria es decir, 2 N registros para N números
complejos.
•
La secuencia diezmada se encuentra en orden binario invertido y la secuencia X ( k ) resultante se
encuentra en orden normal.
El siguiente programa calcula la transformada discreta de Fourier por el método del diezmado temporal:
function[y]=fft_diez_tem(x)
%USO:
%
[y]=fft_diez_tem(x)
%En donde el vector de entrada debe tener una longitud que sea potencia %de
dos. Además se hace uso de la función alc(x,L) que almacena el %vector en
una matriz de dos filas y N/2 columnas.
%
y=alc(x,2);
%Almacenamiento por columnas
[L1,L2]=size(y);
if L2 >1
%Si no se tiene una columna y dos filas se
%repite recursivamente
y1=fft_diez_tem(y(1,1:L2));
y2=fft_diez_tem(y(2,1:L2));
y=[y1(:).',y2(:).'];
%Se recupera la secuencia en orden binario
%invertido
else
y=y(:).';
%Idem
end
w=zeros(L1,L2)';
%Inicialización de la matriz de fase
N=L1*L2;
%tamaño de la transformada
293
for l1=0:L1-1
%Cálculo de la matriz de fase
for l2=0:L2-1
w(l2+1,l1+1)=exp(-j*2*pi*l1*l2/N);
end
end
w=w(:).';
y=y.*w;
%Producto de las transformadas intermedias por
%la matriz de fase
for i=1:N/2
%Cálculo de la mariposa
temp1=y(i);
temp2=y(i+N/2);
y(i)=temp1+temp2;
y(i+N/2)=temp1-temp2;
end
Ejemplo:
A continuación se muestran los resultados intermedios del cálculo de la transformada discreta de
Fourier utilizando como entrada el siguiente vector:
x=[0 1 2 3 4 5 6 7]
Vector en orden binario invertido:
y =[0 4]
Matriz de fase:
w = [1 1 ]
Producto del vector de fase por la matriz en orden binario invertido:
294
y =[0 4]
Resultado de la mariposa:
y = [ 4 − 4]
Vector en orden binario invertido:
y = [ 2 6]
Matriz de fase:
w = [1 1 ]
Producto del vector de fase por la matriz en orden binario invertido:
y = [ 2 6]
Resultado de la mariposa:
y = [ 8 − 4]
Vector en orden binario invertido:
y = [ 4 − 4 8 − 4]
Matriz de fase:
 1.0000
w=
 1.0000

0.0000 − 1.0000 i 
1.0000
Producto del vector de fase por la matriz en orden binario invertido:
295
y = [ 4.0000 − 4.0000 8.0000 − 0.0000 + 4.0000 i ]
Resultado de la mariposa:
y = [ 12.0000 − 4.0000 + 4.0000 i − 4.0000 − 4.0000 − 4.0000 i ]
Vector en orden binario invertido:
y = [1 5 ]
Matriz de fase:
w = [1 1 ]
Producto del vector de fase por la matriz en orden binario invertido:
y = [ 1 5]
Resultado de la mariposa:
y = [ 6 − 4]
Vector en orden binario invertido:
y =[3 7]
Matriz de fase:
w = [1 1 ]
Producto del vector de fase por la matriz en orden binario invertido:
y =[3 7]
Resultado de la mariposa:
296
y = [ 10 − 4]
Vector en orden binario invertido:
y = [ 6 − 4 10 − 4]
Matriz de fase:
1.0000
w=
1.0000

0.0000 − 1.0000 i 
1.0000
Producto del vector de fase por la matriz en orden binario invertido:
y = [ 6.0000 − 4.0000 10.0000 − 0.0000 + 4.0000 i ]
Resultado de la mariposa:
y = [ 16.0000 − 4.0000 + 4.0000 i − 4.0000
− 4.0000 − 4.0000 i ]
Vector en orden binario invertido
y = [ 12.0000 − 4.0000 + 4.0000 i
16.0000 − 4.0000 + 4.0000 i
− 4.0000
− 4.0000
− 4.0000 − 4.0000 i
− 4.0000 − 4.0000 i ]
Matriz de fase:
1.0000
1.0000
w=
1.0000

1.0000

0.7071 − 0.7071 i 

0.0000 − 1.0000 i 

− 0.7071 − 0.7071 i 
1.0000
Producto del vector de fase por la matriz en orden binario invertido:
y = [ 12.0000 − 4.0000 + 4.0000 i − 4.0000 − 4.0000 − 4.0000 i
16.0000 − 0.0000 + 5.6569 i − 0.0000 + 4.0000 i − 0.0000 + 5.6569 i ]
297
Resultado de la mariposa:
y = [ 28.0000 − 4.0000 + 9.6569 i
− 4.0000 − 4.0000 − 1.6569 i
− 4.0000 + 4.0000 i − 4.0000 + 1.6569 i
− 4.0000 − 4.0000 i − 4.0000 − 9.6569 i ]
Algoritmo de diezmado en frecuencia:
En este caso se escoge M = 2 y L = N 2 y se realiza almacenamiento por columnas de la secuencia
de entrada y se parte la transformada en dos, de la siguiente forma:
N −1
2
X (k ) =
∑
n=0
N −1
∑
x ( n ) W Nk n
n= N
2
N −1
2
∑
=
x ( n ) W Nk n +
n=0
x ( n ) W Nk n + W N
N
k 2
N −1
2
N  kn
x  n +
 WN
2


n=0
∑
El factor de fase se puede simplificar de la siguiente manera:
N
WN
k 2
= (− 1 ) k
X (k ) =
N −1
2
 x(n ) + (− 1 ) k x  n + N   W k n


N

2  

∑
n=0
Se diezma X ( k ) en las muestras pares e impares:
X (2k ) =
N
−1
2
∑
n =0
X ( 2 k + 1) =
Donde:
W N2 = W N
2
 x ( n ) + x  n + N   W k n con k = 0, 1, L , N − 1



2   N 2
2

N
−1
2
N  n kn
N


−1
  W N  W N 2 con k = 0, 1, L ,
  x (n ) − x  n +
2 
2


n=0  
∑
298
Si se definen:
N 
N
g1 ( n ) = x ( n ) + x  n +
−1
 con n = 0, 1, L ,
2 
2

N  n
N
g 2 ( n ) =  x ( n ) − x  n +
−1
  W N con n = 0, 1, L ,
2 
2


Entonces:
X (2k ) =
N
−1
2
∑
n=0
X ( 2 k + 1) =
g1 ( n ) W Nk n2
N
−1
2
∑
n=0
g 2 ( n ) W Nk n2
En la figura 158 se muestra la primera etapa del algoritmo para la FFT de diezmado en frecuencia:
x (0 )
X (0 )
x (1)
DFT
X (2)
x(2 )
de
X (4)
x (3 )
x(4 )
x (5 )
x (6 )
x (7 )
4
puntos
−1
−1
−1
W80
X (1)
W81
W82
W83
X (6 )
DFT
X (3 )
de
X (5 )
4
X (7 )
puntos
Figura 158: Algoritmo de diezmado en frecuencia.
−1
299
Como se observa en la figura 159 el cálculo básico es nuevamente una mariposa:
A=a+b
a
W N'
b
−1
B = ( a − b ) W N'
Figura 159: Mariposa básica para el diezmado en frecuencia.
El procedimiento puede repetirse diezmando las DFT´s de N 2 puntos X ( 2 k ) y X ( 2 k + 1) lo que
conlleva a v = log 2 N etapas de diezmado con N 2 mariposas por etapa, por tanto el cálculo de una
DFT de N puntos por medio de este algoritmo requiere ( N 2 ) log 2 N multiplicaciones complejas y
N log 2 N sumas complejas. En este caso los datos de entrada se encuentran en orden natural y la
secuencia de salida está en orden binario invertido, adicionalmente los cálculos se realizan también in
situ.
La siguiente función realiza la transformada discreta de Fourier por el método de diezmado en
frecuencia, utilizando base 2:
function[y]=fft_diez_frec(y)
%USO:
%
[y]=fft_diez_frec(x)
%En donde el vector de entrada debe tener una longitud que sea potencia %de
dos.
N=length(y);
for k=1:N/2
temp1=y(k);
temp2=y(k+N/2);
y(k)=temp1+temp2;
%Cálculo de la mariposa
300
y(k+N/2)=(temp1-temp2)*exp(-j*2*pi*(k-1)/N);
end
if N>2
%Se repite recursivamente el cálculo de la mariposa
%hasta que se hace por pares.
y1=fft_diez_frec(y(1:N/2).');
y2=fft_diez_frec(y(N/2+1:N).');
y=[y1(:).',y2(:).'];
else
y=y(:).';
end
Ejemplo:
La siguiente secuencia muestra paso a paso los resultados del cálculo de la FFT mediante el uso del
programa anterior:
Vector al que se le calcula la mariposa:
y =[0
1
2
3
4
5
6
7]
Resultado de la mariposa:
y = [ 4.0000
− 4.0000
6.0000
8.0000
− 2.8284 + 2.8284 i
− 0.0000 + 4.0000 i
Vector al que se le calcula la mariposa:
y =[4
6
8
10 ]
Resultado de la mariposa:
y = [ 12.0000
16.0000
− 4.0000
Vector al que se le calcula la mariposa:
− 0.0000 + 4.0000 i ]
10.0000
2.8284 + 2.8284 i ]
301
y = [ 12
16 ]
Resultado de la mariposa:
y = [ 28
−4]
Resultados parciales en orden binario invertido:
y = [ 28
−4]
Vector al que se le calcula la mariposa:
y = [ − 4.0000
− 0.0000 + 4.0000 i ]
Resultado de la mariposa:
y = [ − 4.0000 + 4.0000 i
− 4.0000 − 4.0000 i ]
Resultados parciales en orden binario invertido:
y = [− 4.0000 + 4.0000 i
− 4.0000 − 4.0000 i ]
Resultados parciales en orden binario invertido:
y = [ 28.0000
− 4.0000
− 4.0000 + 4.0000 i
− 4.0000 − 4.0000 i ]
Vector al que se le calcula la mariposa:
y = [ − 4.0000
− 2.8284 + 2.8284 i
Resultado de la mariposa:
− 0.0000 + 4.0000 i
2.8284 + 2.8284 i ]
302
y = [ − 4.0000 + 4.0000 i − 0.0000 + 5.6569 i − 4.0000 − 4.0000 i − 0.0000 + 5.6569 i ]
Vector al que se le calcula la mariposa:
y = [ − 4.0000 + 4.0000 i
− 0.0000 + 5.6569 i ]
Resultado de la mariposa:
y = [ − 4.0000 + 9.6569 i
− 4.0000 − 1.6569 i ]
Resultados parciales en orden binario invertido:
y = [ − 4.0000 + 9.6569 i
− 4.0000 − 1.6569 i ]
Vector al que se le calcula la mariposa:
y = [ − 4.0000 − 4.0000 i
− 0.0000 + 5.6569 i ]
Resultado de la mariposa:
y = [ − 4.0000 + 1.6569 i
− 4.0000 − 9.6569 i ]
Resultados parciales en orden binario invertido:
y = [ − 4.0000 + 1.6569 i
− 4.0000 − 9.6569 i ]
Resultados parciales en orden binario invertido:
y = [− 4.0000 + 9.6569 i − 4.0000 − 1.6569 i − 4.0000 + 1.6569 i − 4.0000 − 9.6569 i ]
Resultado definitivo:
y = [ 28.0000
− 4.0000 + 9.6569 i
− 4.0000
− 4.0000 − 1.6569 i
− 4.0000 + 4.0000 i − 4.0000 − 4.0000 i
− 4.0000 + 1.6569 i − 4.0000 − 9.6569 i ]
303
Como se puede observar el resultado está en orden binario invertido.
DISEÑO DE FILTROS DIGITALES
Para proceder al diseño de un filtro digital se realizan los siguientes pasos:
•
Se especifica la característica deseada en el dominio de la frecuencia.
•
Se elige el tipo de filtro (FIR o IIR) dependiendo de la naturaleza del problema y de las características
en frecuencia deseadas:
Filtros FIR
Se usan donde se desea desfase lineal con la frecuencia, Sin embargo si no es esto lo que se
desea, entonces se puede usar un FIR o un IIR.
Filtros IIR
Este tipo de filtros tiene lóbulos laterales menores en la banda de rechazo que los FIR y se
prefieren porque involucran menos parámetros, menos memoria y menor complejidad
computacional.
•
Se determinan los coeficientes del filtro que aproximan las especificaciones de respuesta en
frecuencia.
•
Se escoge la estructura adecuada que tenga en cuenta lo siguiente:
Efectos de cuantificación (Longitud finita de palabra).
Complejidad computacional.
Requisitos de memoria.
Tipo de aritmética.
CONSIDERACIONES GENERALES
En los apartes que siguen se muestra por qué un filtro ideal, a pesar de tener una respuesta en
frecuencia deseable no puede realizarse físicamente.
CAUSALIDAD Y SUS IMPLICACIONES
Sea un filtro ideal pasabajo con una respuesta en frecuencia dada por:
1
H (ω ) = 
0
si
si
ω ≤ ωc
ωc < ω < π
304
Su correspondiente respuesta al impulso está dada por:
ωc


π
h( n ) = 
 ω c senω c n
 π
ωcn
si
n=0
si
n≠0
Este filtro es no causal y por tanto no realizable, además requiere infinitos coeficientes y posiciones de
memoria.
A continuación, basados en el teorema de Paley−Wiener se plantean las condiciones necesarias y
suficientes para que una respuesta en frecuencia dada H (ω ) produzca un filtro causal.
TEOREMA DE PALEY−WIENER11
Si h ( n ) tiene energía finita y h ( n ) = 0 para n < 0 , entonces:
π
∫
ln H (ω ) dω < ∞
−π
Recíprocamente, si H (ω ) es cuadráticamente integrable y si la integral previa es finita, entonces se
puede asociar a H (ω ) una respuesta en fase θ (ω ) tal que el filtro con respuesta en frecuencia:
H (ω ) = H (ω ) e jθ (ω )
es causal.
De este teorema se puede concluir que H (ω ) puede ser cero en algunas frecuencias pero no en un
intervalo de frecuencias y también que cualquier filtro ideal es no causal.
11
WIENER, N. and PALEY, R. Fourier Transforms in the complex domain. Providence R.I. : American
Mathematical Society, 1934.
305
Por otro lado se puede probar que hay una fuerte dependencia entre H R (ω ) y H I (ω ) o de manera
equivalente, entre la magnitud y la fase y por lo tantos éstas no se pueden especificar
independientemente.
Sea:
h ( n ) = he ( n ) + ho ( n )
he ( n ) =
1
2
[ h( n ) + h ( − n ) ]
ho ( n ) =
1
2
[ h ( n ) − h( − n ) ]
h ( n ) = he ( n ) +
1
[ h( n ) − h( − n ) ]
2
h ( n ) = 2 he ( n ) − h ( − n )
De tal manera que si h ( n ) es causal:
h ( n ) = 2 he ( n ) µ ( n ) − h ( − n ) µ ( n )
h ( n ) = 2 he ( n ) µ ( n ) − h( 0 ) δ ( n )
Pero,
h (0 ) = he (0 ) + ho (0 )
123
0
Luego,
h (0 ) = he (0 )
Entonces:
h ( n ) = 2 he ( n ) µ ( n ) − he ( 0 ) δ ( n ) con n ≥ 0
306
Además,
h ( n ) = 2 ho ( n ) µ ( n ) − h (0 ) δ ( n ) con n ≥ 1
Como ho (0 ) = 0 no se puede recuperar h (0 ) de ho ( n ) y por tanto se debe conocer también h (0 ) .
De lo anterior se concluye que ho ( n ) = he ( n ) para n ≥ 1 o sea, hay una fuerte relación entre ho ( n ) y
he ( n ) .
Si h ( n ) es absolutamente sumable, existe la correspondiente respuesta en frecuencia dada por:
H (ω ) = H R (ω ) + jH I (ω )
Si se supone que h ( n ) es real y causal, se tiene que:
F
he ( n ) ←→ H R (ω )
F
ho ( n ) ←→ H I (ω )
Y por lo tanto, puesto que h ( n ) está completamente especificado por he ( n ) , entonces H (ω ) se
determina completamente por H R (ω ) o, de igual forma, H (ω ) se especifica completamente por
H I (ω ) y h(0 ) , en conclusión, H R (ω ) y H I (ω ) o la magnitud y la fase de H (ω ) no se pueden
especificar independientemente si el sistema es causal.
A continuación se muestra la relación entre la parte real e imaginaria de la respuesta en frecuencia de
un sistema con h ( n ) real, causal y absolutamente sumable:
H (ω ) = H R (ω ) + jH I (ω ) =
En donde,
1
π
π
∫ H R (λ ) U (ω − λ ) dλ − he (0 )
−π
307
F
U (ω ) ←→ µ ( n )
1
U (ω ) = π δ (ω ) +
1 − e − jω
ω 
1
j
−
cot 
 con − π ≤ ω ≤ π
2
2
 2 
U (ω ) = π δ (ω ) +
Remplazando en la ecuación para H (ω ) se tiene:
1
H I (ω ) = −
2π
π
∫
−π
H R (λ ) cot 

ω −λ 
 dλ ,
2

la cual se denomina Transformada de Hilbert Discreta de H R (ω ) .
En resumen:
•
H (ω ) no puede ser cero, excepto en un conjunto finito de frecuencias.
•
Las componentes H R (ω ) y H I (ω ) no son independientes.
•
La magnitud y la fase de H (ω ) no se pueden elegir arbitrariamente.
•
La magnitud de H (ω ) no puede ser constante en ningún rango finito de frecuencias.
•
La transición de la banda de paso a la banda de rechazo no puede ser infinitamente abrupta
Las dos últimas conclusiones se deben al fenómeno de Gibbs porque se debe recortar la respuesta al
impulso para lograr causalidad.
En los métodos de diseño de filtros que se propondrán posteriormente se trabajará sobre sistemas LTI
especificados por la ecuación:
N −1
M −1
k =1
k =0
y(n ) = − ∑ ak y(n − k ) +
∑ bk x (n − k ) ,
308
que son causales y físicamente realizables y que tienen una respuesta en frecuencia dada por:
M
∑ bk e − jω k
H (ω ) =
k =0
N
1+
∑ a k e − jω k
k =1
El problema del diseño consiste en seleccionar los {a k } y {bk } tal que se aproxime la respuesta en
frecuencia H (ω ) deseada.
CARACTERISTICAS DE FILTROS PRACTICOS
SELECTIVOS EN FRECUENCIA
Las características de un filtro ideal son deseables pero no son absolutamente necesarias y se pueden
aproximar tanto como se desee. Normalmente se tolera un pequeño rizado en la banda de paso y un
valor pequeño distinto de cero en la de rechazo, como se muestra en la figura 160.
En esta figura:
•
El rizado en la banda de paso es δ 1 o expresado en decibelios, 20 log δ 1 .
•
La anchura de banda es ω p .
•
La banda de transición está dada por ω s − ω p .
•
El rizado en la banda de rechazo es δ 2 o expresado en decibelios, 20 log δ 2 .
309
F iltr o p a s a b a ja s
1+ δ1
0
1−δ1
-1 0
B an d a de P aso
M
A
G
N
I
T
U
D
-2 0
R e gió n d e
T ra n s ic ió n
-3 0
-4 0
B anda de
R e c h az o
( δ 2 )-5 0
(d B )
-6 0
ωp
-7 0
0
200
ωs
400
600
F re q u e n c ia (H z)
800
1 0 00
Figura 160: Características generales de un filtro pasabajas.
En el proceso de diseño se especifican:
•
El máximo rizado tolerable en la banda de paso: δ 1 .
•
El máximo rizado tolerable en la banda de rechazo: δ 2 .
•
La frecuencia de corte: ω p .
•
La frecuencia de rechazo: ω s .
Por último se calculan los {a k } y {bk } en H (ω ) que mejor aproximen estas especificaciones, lo cual
depende del criterio usado en la selección de los coeficientes así como de su número ( M , N ) .
A continuación se estudiarán algunas metodologías de diseño de filtros FIR de fase lineal que requieren
una respuesta al impulso causal con simetría par o impar respecto a la mitad de su longitud.
Posteriormente se hará lo mismo para los filtros IIR los cuales no pueden garantizar una respuesta con
fase lineal.
DISEÑO DE FILTROS FIR SIMETRICOS Y ANTISIMETRICOS
Un filtro FIR está descrito por la siguiente ecuación en diferencias:
310
y ( n ) = b0 x ( n ) + b1 x ( n − 1) + L + bM −1 x ( n − M + 1)
=
M −1
∑ bk x(n − k )
k =0
O también:
y(n ) =
M −1
∑ h( k ) x( n − k )
k =0
En esta ecuación se refleja la causalidad y la duración finita de la respuesta al impulso y se requiere para
su cálculo lo siguiente:
•
M coeficientes.
•
M posiciones de memoria.
•
M productos para cada valor de n.
En el dominio de z, la función de transferencia de estos sistemas está dada por:
H (z) =
M −1
∑
h( k ) z − k
k =0
En donde se requieren:
•
M coeficientes.
•
M productos complejos.
Un filtro FIR tiene fase lineal, como se mostrará más adelante, si su respuesta al impulso tiene simetría
par o impar tal que satisface la condición:
h( n ) = ± h ( M − 1 − n ) con n = 0, 1, L , M − 1
En este caso:
H ( z ) = h (0 ) + h (1) z −1 + h ( 2 ) z −2 + L + h ( M − 2 ) z − ( M − 2 ) + h ( M − 1) z − ( M −1)
311
M −3


2


M
−
1
+
H ( z ) = z − ( M −1) 2 h
h ( n ) z ( M −1− 2 n ) 2 ± z − ( M −1− 2 n ) 2 , M impar

∑
  2 

n =0


[
H ( z ) = z − ( M −1) 2
M −1
2
∑
[
]
]
h ( n ) z ( M −1− 2 n ) 2 ± z − ( M −1− 2 n ) 2 , M par
n=0
Si se sustituye z −1 por z en:
H (z) =
M −1
∑
h( k ) z − k
k =0
Y se multiplican ambos lados de la ecuación por z − ( M −1) , se tiene:
M −1
( ) ∑ h(k ) z k z − ( M −1)
z − ( M −1) H z −1 =
k =0
=
M −1
∑
h ( k ) z − ( M − k −1)
k =0
=
M −1
h( M − s − 1) z − s con s = M − k − 1 ∴ k = M − s − 1
144244
3
s =0
± h( s )
∑
= ±H (z)
( )
Las raíces de H ( z ) son las mismas de H z −1 por tanto deben ocurrir en pares recíprocos, por
ejemplo, las raíces de la transformada z de la respuesta al impulso:
h( n ) = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 9, 8, 7, 6, 5, 4, 3, 2, 1 }
Se muestran en la figura 161:
312
1
Im aginary P art
0.5
18
0
-0.5
-1
-2
-1.5
-1
-0.5
0
Real P art
0.5
1
1.5
Figura 161: Diagrama de polos y ceros de h ( n ) .
Esta figura se realizó con la función zplane (
)
de Matlab.
Evaluando la transformada z en la circunferencia unidad, se tiene:
•
Respuesta simétrica: En este caso h ( n ) = h ( M − 1 − n )
H (ω ) = H r (ω ) e − jω ( M −1) 2
M −1
H r (ω ) = h
 2
H r (ω ) = 2
( M − 3) 2
M −1
+ 2
h ( n ) cos ω 
− n  con M impar

∑

 2

n=0
M −1
2
M −1
h ( n ) cos ω 
− n  con M par
 2

n=0
∑
La fase, para M par e impar:
ω ( M − 1)

−

2
θ (ω ) = 
− ω ( M − 1) + π

2
si
H r (ω ) > 0
si
H r (ω ) < 0
313
En la figura 162 se muestra la respuesta en frecuencia de un filtro con respuesta al impulso simétrica:
h( n ) = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 9, 8, 7, 6, 5, 4, 3, 2, 1 }
M agnitude (dB )
40
30
20
10
0
-10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
0
-500
-1000
-1500
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 162: Respuesta en frecuencia de un sistema con h ( n ) simétrica.
Esta figura se realizó con la función freqz (
•
) de Matlab.
Respuesta antisimétrica: En este caso h ( n ) = − h ( M − 1 − n ) y
h 

M −1 
=0
2 
M impar.
La respuesta en frecuencia:
H (ω ) = H r (ω )
j  −
e 
ω ( M −1)
2
+
π 
2 
314
En donde:
H r (ω ) = 2
(M −3) 2
H r (ω ) = 2
∑
n=0
M −1
h ( n ) senω 
− n  con M impar
 2

M −1
2
M −1
h ( n ) sen ω 
− n  con M par
 2

n=0
∑
La fase:
π ω (M − 1)

−
si H r (ω ) > 0

2
2
θ (ω ) = 
π − ω (M − 1) + π si H (ω ) < 0
r
 2
2
En la figura 163 se muestra la respuesta en frecuencia de un filtro con respuesta al impulso
antisimétrica:
h( n ) = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, − 9, − 8, − 7, − 6, − 5, − 4, − 3, − 2, − 1 }
M agnitude (dB )
40
20
0
-20
-40
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
500
0
-500
-1000
-1500
-2000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 163: Respuesta en frecuencia de un sistema con h ( n ) antisimétrica.
315
El número de coeficientes L de la respuesta al impulso depende de si la longitud de la respuesta al
impulso es par o impar y de la simetría:
•
Respuesta simétrica:
M par: L =
M
2
M impar: L =
•
Respuesta antisimétrica:
M par: L =
M
2
M impar: L =
•
M +1
2
M −1
2
En la respuesta impulsional antisimétrica:
h( n ) = − h( M − 1 − n )
Si M es impar, H r (0 ) = H r (π ) = 0 ,
Si M es par, H r ( 0 ) = 0
Luego los filtros FIR antisimétricos no se pueden usar para filtros pasabajos (o pasaaltos si M es
impar) de fase lineal.
•
En la respuesta impulsional simétrica:
h( n ) = h( M − 1 − n )
H r (0 ) ≠ 0
316
M −1
H r ( 0 ) = h 
 2
H r (0 ) = 2
( M − 3) 2
+2

∑ h(n ) con M impar

n=0
M −1
2
∑ h( n )
con M par
n=0
x(n )
z −1
Entrada
+
+
z −1
y(n)
z −1
z −1
h(0 )
+
z −1
h( 2 )
+
+
+
z −1
z −1
z −1
h(1)
+
z −1
(
h M −3
2
)
(
h M −1
2
)
+
Salida
Figura 164: Realización en forma directa de sistema FIR de fase lineal (M impar).
DISEÑO DE FILTROS FIR USANDO VENTANAS
Se especifica H d (ω ) y se calcula hd ( n )
hd ( n ) =
1
2π
π
∫ H d (ω ) e
jω n
dω
−π
Pero hd ( n ) es infinita en longitud y debe truncarse (dígase en n = M − 1 ), esto equivale a multiplicar
por una ventana rectangular
317
 1 ,
 0,
ω (n ) = 
n = 0, 1, L , M − 1
En otro caso
Luego:
h ( n ) = hd ( n ) ω ( n )
 hd ( n ) ,
h( n ) = 

0,
n = 0, 1, L , M − 1
En otro caso
La respuesta en frecuencia correspondiente es:
1
H (ω ) =
2π
π
∫ H d (λ ) W (ω − λ ) dλ
−π
En donde:
W (ω ) =
M −1
∑
e − jω n
n=0
=
=
1 − e − jω M
1 − e− j ω
e − jω ( M −1) sen
sen
W (ω ) =
sen
ωM
ω
2
2
ωM
sen
2
ω
con − π ≤ ω ≤ π
2
 M −1 

−
ω



 2 

θ (ω ) = 

 M −1 
− ω  2  + π
cuando
sen
cuando
sen
ωM
2
ωM
2
≥0
<0
318
El espectro de esta ventana W (ω ) tiene las siguientes características:
•
El ancho de su lóbulo principal es 4π M y por lo tanto si M aumenta, éste disminuye.
•
Los lóbulos laterales son altos y no decrecen con M.
•
Los lóbulos laterales de la ventana rectangular producen rizado en la respuesta en frecuencia y en
los lóbulos laterales de H d (ω ) .
Por las razones anteriores se usan ventanas que no contienen discontinuidades abruptas para disminuir
el rizado.
Ejemplo:
Supóngase que se desea un filtro FIR con la siguiente respuesta en frecuencia:
1
H d (ω ) = 
0
para ω ≤ 0.1 π
El resto
La respuesta al impulso estará dada por:
1
hd ( n ) =
2π
0.1π
∫e
dω
− 0.1π
e jω n
=
2π j n
=
jω n
0.1π
− 0 .1 π
2 j sen ( 0.1 π n )
2π j n
= 0.1 S a (0.1 π n ) con − ∞ ≤ n ≤ ∞
Si se usa una ventana rectangular de 31 puntos con el espectro que se muestra en la figura 165 para
recortar la respuesta al impulso deseado, se logra la respuesta en frecuencia de la figura 166.
319
40
M agnitud
30
20
10
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 165: Espectro de una ventana rectangular de 31 puntos.
0.4
M agnitud
0.3
0.2
0.1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 166: Respuesta en frecuencia modificada por una ventana rectangular.
En la tabla 8.1 y en la figura 8.5 de Proakis y Manolakis12 se muestran algunas ventanas usadas para
suavizar el rizado de la respuesta en frecuencia recortada.
Estas ventanas tienen las siguientes características:
12
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 635−636.
320
•
Disminuyen el rizado de H d (ω ) , este suavizado disminuye con M.
•
Comparadas con la ventana rectangular, tienen lóbulos laterales más bajos pero la anchura del
lóbulo principal es mayor.
•
En la convolución proporcionan un mayor suavizado pero la región de transición es más amplia; para
disminuirla se requiere aumentar la longitud de la ventana lo que implica un filtro más largo.
Ejemplo:
Si en el ejemplo anterior se utiliza una ventana de Hamming de longitud 31 como la que se muestra en
la figura 167 con su correspondiente espectro que se observa en la figura 168, se logra la respuesta en
frecuencia que se dibuja en la figura 169.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-15
-10
-5
0
5
10
15
Figura 167: Ventana de Hamming de 31 puntos.
321
20
M agnitud
15
10
5
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 168: Espectro de una ventana de Hamming de 31 puntos.
0.4
M agnitud
0.3
0.2
0.1
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 169: Respuesta en frecuencia modificada por la ventana de Hamming.
Las funciones fir1 y fir2 de Matlab calculan la respuesta al impulso utilizando el método de
enventanado.
322
DISEÑO DE FILTROS FIR DE FASE LINEAL
MEDIANTE EL METODO DE MUESTREO EN FRECUENCIA
En este método se realizan los tres pasos siguientes:
•
Primero se especifica H d (ω ) en un conjunto de frecuencias igualmente espaciadas:
ωk =
2π
(k + α )
M
Donde:
k = 0, 1, L ,
M −1
con M impar
2
k = 0, 1, L ,
M
− 1 con M par
2
El valor de α es 0 ó
1
y su escogencia modifica ligeramente el comportamiento en frecuencia
2
del filtro.
•
Después se calcula h ( n ) a partir de estas muestras de la respuesta en frecuencia.
•
Por último, para reducir los lóbulos laterales se deben optimizar numéricamente las especificaciones
en las frecuencias en la banda de transición usando un procesador digital con técnicas de
programación lineal13.
En el apéndice C del libro de Proakis yManolakis14 se encuentra una serie de tablas de valores óptimos
de la respuesta en frecuencia en la banda de transición de filtros FIR de fase lineal diseñados por el
método de muestreo en frecuencia.
13
RABINER, L. R., GOLD, B. and McGONEGAL, C. A. 1970. “An Approach to the Aproximation Problem for
Nonrecursive Digital Filters”. IEEE Transactions on Audio and Electroacustics, Vol. AU−18, p.p. 86−106. June.
14
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. C1−C6.
323
Utilizando el método de muestreo en frecuencia se tiene:
H d (ω ) =
M −1
∑
h ( n ) e − jω n
n =0
2π
(k + α ) 
H d ( k + α ) = H d 
 M

H d (k + α ) =
M −1
∑
h( n ) e − j 2π ( k +α ) n M con k = 0, 1, L , M − 1
(1)
n=0
Multiplicando ambos lados por e j 2π k m M con m = 0, 1, L , M − 1 y sumando sobre
k = 0, 1, L , M − 1 :
M −1
∑ H d (k + α ) e
j 2π k m M
=
M −1 M −1
∑ ∑
k =0
k =0 n=0
M −1
M −1
k =0
n=0
∑ H d (k + α ) e j 2π k m M =
=
∑
M −1
∑
h( n )
h ( n ) e − j 2π ( k +α ) n M e j 2π k m M
M −1
∑
e − j 2π [k ( n − m ) + α n ] M
k =0
h ( n ) e − j 2π α n M
n=0
Pero,
M −1
 0
− j 2π k ( n − m ) M
e
=

∑
 M
k =0
Para n ≠ m
Para n = m
Por lo tanto:
M −1
∑ H d (k + α ) e j 2π k m M
k =0
= M h ( m ) e − j 2π α m M
M −1
∑
k =0
e − j 2π k ( n − m ) M
324
Luego,
h( n ) =
1 M −1
H d ( k + α ) e j 2π ( k +α ) n M con n = 0, 1, L , M − 1
∑
M k =0
(2)
Cuando α = 0 , las ecuaciones (1) y (2) son la DFT y su inversa.
Como se supone que h ( n ) es real, entonces:
H d ( k + α ) = H d* ( M − k − α )
Ya que:
H d* ( M − k − α ) =
=
M −1
∑
h ( n ) e j 2π ( M − k −α ) n M con k = 0, 1, L , M − 1
n=0
M −1
∑
h ( n ) e − j 2π ( k + α ) n M con k = 0, 1, L , M − 1
n=0
Este resultado sirve para reducir las especificaciones en frecuencia a ( M + 1) 2 puntos para M impar y
M 2 puntos para M par con una disminución de aproximadamente M 2 muestras de las M iniciales.
Como se vio previamente, para que un filtro FIR tenga fase lineal su respuesta en frecuencia debe estar
dada por:
H d (ω ) = H r (ω ) e j [−ω ( M −1) 2 + β π 2 ]
Donde β = 0 cuando
{ h( n ) } es simétrico y β = 1 cuando es antisimétrico.
Tomando muestras en frecuencia se tiene:
325
βπ

j
−
2π


(k + α )  e  2
H d (k + α ) = H r 
 M

2π ( k +α ) ( M −1) 

2M
Definiendo un conjunto de muestras reales,
2π
G ( k + α ) = ( − 1) k H r 
( k + α )  con k = 0, 1, L , M − 1
 M

De tal manera que:
H d (k + α ) = G (k + α )
2π ( k +α ) ( M −1) 
 βπ
j 
−

2M
e jπ k e  2
La condición de simetría:
H d ( k + α ) = H d* ( M − k − α )
Se traduce en una condición de simetría para G ( k + α ) que se aprovecha para simplificar el cálculo de
h( n ) :
h( n ) =
1 M −1
∑ H d (k + α ) e j 2π ( k +α ) n M con n = 0, 1, L, M − 1
M k =0
La función de transferencia de este filtro está dada por:
H (z) =
M −1
∑
h( n ) z − n
n=0
=
M −1 

1 M −1
H d ( k + α ) e j 2π ( k +α ) n M  z − n

∑
M k =0

n = 0 
∑
Intercambiando el orden de los sumandos, se tiene:
326
H (z) =
M −1
 1 M −1 j 2π ( k + α ) M −1 n 
(
)
H
k
+
α
z


∑ d
∑ e
M



k =0
n=0
(
)
M −1
H d (k + α )
1 − z − M e j 2πα
=
∑
j
M 444
1 − e 2π ( k + α ) M z −1
144
42
3 1k4
= 04
4442444443
H1 ( z )
H 2 (z )
= H1 ( z ) H 2 ( z )
Esta ecuación conduce directamente a la estructura mostrada en la figura 170:
H d (α )
+
e
z −1
j 2πα M
H d (1 + α )
+
e
j 2π (1+ α ) M
z −1
H d (2 + α )
+
1
M
+
+
+
x( n )
z −M
e j 2π ( 2 +α )
− e j 2πα
α =0 ó α =
M
z −1
M
M
H d (M − 1 + α )
+
1
2
e
j 2π ( M −1+ α )
+
M
z −1
Figura 170: Realización de muestreo en frecuencia de un filtro FIR.
y(n )
327
En la expresión anterior
H 2 ( z ) se puede simplificar utilizando la condición de simetría:
H d ( k + α ) = H d* ( M − k − α )
De tal manera que un par de filtros de un solo polo se pueden combinar para formar un filtro de dos
polos con parámetros reales, así:
Si α = 0 :
H 2 (z) =
H 2 (z) =
H d (0 )
1 − z −1
H d (0 )
1 − z −1
+
+
( M −1) 2
A( k ) + B ( k ) z −1
k =1
1 − 2 cos ( 2π k M ) z −1 + z − 2
∑
H d (M 2)
1 + z −1
+
M impar
( M −1) 2
A( k ) + B ( k ) z −1
k =1
1 − 2 cos ( 2π k M ) z −1 + z − 2
∑
M par
Donde por definición:
A( k ) = H d ( k ) + H d ( M − k )
B ( k ) = H d ( k )e − j 2πk M + H d ( M − k )e j 2πk M
Se pueden encontrar expresiones similares para α = 1 2 . Con las ecuaciones anteriores se puede
lograr la arquitectura mostrada en la figura 171 para M impar, la cual reduce a la mitad el número de
multiplicaciones con respecto a la realización directa.
Las expresiones simplificadas15 de la respuesta impulsional h ( n ) se calculan a partir de las siguientes
ecuaciones:
H d (k + α ) = G (k + α )
2π ( k + α ) ( M −1) 
 βπ
j 
−

2M
e jπ k e  2
+
15
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pág. 642.
z −1
1
M
x( n )
+
A( 1)
+
+
−
+
2 cos
2π
M
z −1
B ( 1)
+
+
328
Figura 171: Realización de muestreo en frecuencia de un filtro FIR.
2π
G ( k + α ) = ( − 1) k H r 
( k + α )  con k = 0, 1, L , M − 1
 M

H d ( k + α ) = H d* ( M − k − α )
h( n ) =
•
1 M −1
H d ( k + α ) e j 2π ( k +α ) n M con n = 0, 1, L , M − 1
∑
M k =0
Si α = 0 y β = 0 :
La simplificación para H d ( k ) se logra de la siguiente manera:
H d (k ) = G (k )
 2π k ( M −1) 
j −

2M
e jπ k e 
= G (k ) e
jπ k
e
jπ k
( M1
)
−1
329
= G ( k ) e j π k M con k = 0, 1, L , M − 1
La simplificación para G ( k ) se obtiene así:
2π k 
G ( k ) = ( − 1) k H r 

 M 
Por la condición de simetría,
H d ( k ) = H d* ( M − k )
Se tiene una condición de simetría para G ( k ) de la siguiente forma:
H d (k ) = G (k ) e
jπ k
 2π k ( M −1) 
j −

2M
e 
H d* ( M − k ) = G ( M − k ) e − j π ( M − k ) e
= G(M − k ) e
= G(M − k ) e
− j π (M − k )
−
e
 2π ( M − k ) ( M −1) 
−j −

2M

jπ
(M − k )
M
Como:
H d (k ) = G ( k ) e j π k M
Entonces:
G (k ) e
jπ k M
De tal manera que:
= G(M − k ) e
−
(
jπ
M 2 − M − kM + k
M
jπ
(M − k )
M
)
330
G ( k ) = −G ( M − k )
La simplificación para h ( n ) se logra con los resultados anteriores de la siguiente forma:
h( n ) =
1 M −1
H d ( k ) e j 2π k n M
∑
M k =0
=
1
M
=
1
M
[ H d (0 ) + H d (1) e j 2π n M + H d (2) e j 4π n M + H d (3) e j 6π n M
+ L + H d ( M − 1) e j 2π ( M −1) n M ]
[ G(0) + G (1) e jπ M e j 2π n M + G (2) e j 2π M e j 4π n M
+ G (3) e j 3π M e j 6π n M + L + G ( M − 1) e jπ ( M −1) M e j 2π ( M −1) n M
=
1
M
[ G(0) + G(1) ( e jπ M e j 2π n M − e jπ ( M −1) M e j 2π ( M −1) n M )
+ G ( 2 ) ( e j 2π M e j 4π n M − e jπ ( M − 2 ) M e j 2π ( M − 2 ) n M ) + L ]
(
)
(
)
j 2π

 j 2π n + 1
( M −1) n + 1 
1 
M
2
M
2 

=
− e
G ( 0 ) + G (1) e
M 





(
)
(
)
j 2π

 j 4π n + 1
(M − 2) n + 1 

M
2
M
2


+ G (2) e
− e
+ L





Pero,
e
j 2π
M
( n + 12 ) − e jM2π
(
j 2π
j 2π
)
(
n+ 1 )
−
( n + 12 )
2 =e M
2 + e M
( M −1) n + 1
2π 
1
= 2 cos 
n +  

2
 M 
e
j 4π
M
]
( n + 12 ) − e jM2π ( M − 2 ) ( n + 12 ) = e jM4π ( n + 12 ) + e − jM4π ( n + 12 )
331
4π 
1
= 2 cos 
n
+

2  
 M 
En definitiva:
h(n ) =
1
M
U

1   
 2π k 
(
)
G
0
+
2
G ( k ) cos 
n
+


∑
2   
 M 

k =1
En donde:
 M −1
 2
U =
 M −1
 2
Para M impar
Para M par
Procediendo de forma similar, se tiene:
•
Si α =
1
y β = 0:
2
1 
1  − j π 2 j π ( 2 k + 1) 2 M

H d  k +
e
 = G k +
 e
2 
2 


con k = 0, 1, L , M − 1
1 
 2π  k + 1  
k
G  k +


 = ( − 1) H r 
2 
2  
 M 

1 
1 

G  k +
 = G M − k − 
2 
2 


h( n ) =
2 U
1 
1 
1 
 2π 
G  k +
 sen 
k +
n +

∑
M k =0 
2 
2 
2  
 M 
En donde:
332
 M −1
 2
U =
 M −1
 2
•
Para M impar
Para M par
Si α = 0 y β = 1 :
H d (k ) = G (k ) e j π 2 e j π k M
con k = 0, 1, L , M − 1
2π k 
G ( k ) = ( − 1) k H r 

 M 
G (k ) = G (M − k )
h( n ) = −
2
M
( M −1) 2
∑
k =1
2π k 
1 
G ( k ) sen 
n +
 con M impar
2  
 M 
M −1


2
1 
M
2
k
1
π
−2
n +
   con M par
( n + 1) G 
h( n ) =
G ( k )sen 



 
( − 1)
∑
M 
2   
 2 
 M 
k =1


•
Si α =
1
y β = 1:
2
1 
1  j π ( 2 k +1) 2 M

H d  k +
 = G k +
 e
2 
2 


con k = 0, 1, L , M − 1
1 
 2π  k + 1  
k
G  k +
 = ( − 1) H r 


2 
2  

 M 
1 
1 

 M =0
G  k +
 = −G  M − k −  ; G 

2 
2 


 2 
h( n ) =
Para M impar
2 V
1 
1 
1 
 2π 
G  k +

 cos 
k +
n +
∑
M k =0 
2 
2 
2  
 M 
En donde:
333
 M −3
 2
V =
M
 2 − 1
Para M impar
Para M par
La siguiente función realizada en Matlab calcula la respuesta al impulso simétrica o antisimétrica basada
en el método de muestreo en frecuencia:
function[h]=muestreo_frecuencia(Hr,M,alpha,beta)
%USO:
%[h]=muestreo_frecuencia(Hr,M,alpha,beta)
%En donde:
%Hr especifica M/2 ó (M+1)/2 puntos de la magnitud de la respuesta en
%frecuencia deseada.
%alpha debe ser 0 ó 1/2.
%beta especifica respuesta simétrica (0) o antisimétrica (1).
%Se utilizan las ecuaciones de la tabla 8.3, página 642 de Proakis y
%Manolakis.
G=zeros(1,M);
e=zeros(1,M);
H=zeros(1,M);
if mod(M,2)==1
U=(M-1)/2;
else U=M/2-1;
end
%M impar
%M par
334
if alpha==0 & beta==0
%Primer caso:
Alpha=0 y Beta=0
for k=0:length(Hr)-1
G(k+1)=(-1).^k*Hr(k+1);
G(M-k)=-G(k+1);
end
for k=0:M-1
e(k+1)=exp(j*pi*k/M);
end
H=G.*e;
for n=0:M-1
suma=G(1);
for k=1:U
suma=suma+2*G(k+1)*cos((2*pi*k/M)*(n+1/2));
end
h(n+1)=suma/M;
end
elseif alpha==0.5 & beta==0
%Segundo caso:
for k=0:length(Hr)-1
G(k+1)=(-1).^k*Hr(k+1);
G(M-k)=G(k+1);
end
for k=0:M-1
e(k+1)=exp(j*pi*(2*k+1)/(2*M));
end
e=exp(-j*pi/2).*e;
H=G.*e;
for n=0:M-1
Alpha=0.5 y Beta=0
335
suma=0;
for k=0:U
suma=suma+2*G(k+1)*sin((2*pi/M)*(k+0.5)*(n+1/2));
end
h(n+1)=suma/M;
end
elseif alpha==0 & beta==1
%Tercer caso:
Alpha=0 y Beta=1
for k=0:length(Hr)-1
G(k+1)=(-1).^k*Hr(k+1);
G(M-k)=G(k+1);
end
for k=0:M-1
e(k+1)=exp(j*pi*k/M);
end
e=e.*exp(j*pi/2);
H=G.*e;
if mod(M,2)==1
for n=0:M-1
suma=0;
for k=1:U
suma=suma+2*G(k+1)*sin((2*pi*k/M)*(n+1/2));
end
h(n+1)=-suma/M;
end
else
for n=0:M-1
suma=G(M/2+1)*(-1).^(n+1);
for k=1:U
336
suma=suma-2*G(k+1)*sin((2*pi*k/M)*(n+1/2));
end
h(n+1)=suma/M;
end
end
elseif alpha==0.5 & beta==1
%Cuarto caso:
Alpha=0.5 y Beta=1
if mod(M,2)==1
V=(M-3)/2;
else V=M/2-1;
end
for k=0:length(Hr)-1
G(k+1)=(-1).^k*Hr(k+1);
G(M-k)=-G(k+1);
if mod(M,2)==1
G((M-1)/2+1)=0;
end
end
for k=0:M-1
e(k+1)=exp(j*pi*(2*k+1)/(2*M));
end
H=G.*e;
for n=0:M-1
suma=0;
for k=0:V
suma=suma+2*G(k+1)*cos((2*pi/M)*(k+0.5)*(n+1/2));
end
h(n+1)=suma/M;
end
337
else
error('No se especificaron alpha y beta correctamente')
end
Ejemplo:
Determine los coeficientes de un filtro FIR de fase lineal de longitud M = 15 que tiene una respuesta
impulsional simétrica y una respuesta en frecuencia que satisface las condiciones:
 1
2π k  
H r 
 =  0 .4
 15  
 0
Para k = 0, 1, 2, 3
Para k = 4
Para k = 5, 6, 7
A continuación se muestran los resultados para los cuatro casos de la respuesta al impulso y su
correspondiente respuesta en frecuencia, ver figuras 172 a 179:
Primer caso, α = 0 y β = 0 :
h = [− 0.0141 − 0.0019
0.5200
0.0400
0.0122 − 0.0914 − 0.0181
0.3133 − 0.0181 − 0.0914
0.0122
Res pues ta al im puls o A lpha= 0, B eta= 0
0.6
0.5
0.4
0.3
0.2
0.1
0
-0.1
0
2
4
6
8
10
12
0.3133
0.0400 − 0.0019
h(n)
•
14
n
Figura 172: Respuesta al impulso del caso 1.
− 0.0141]
338
M agnitude (dB )
50
0
-50
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
0
-200
-400
-600
-800
-1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 173: Respuesta en frecuencia del caso 1.
Segundo caso, α = 0.5 y β = 0 :
h = [ − 0.0067 − 0.0247
0.5867
0.0530 − 0.0647 − 0.0772
0.0133
0.3024 − 0.0772 − 0.0647
Respues ta al im puls o A lpha= 0.5 B eta= 0
0.6
0.5
0.4
0.3
0.2
0.1
0
-0.1
0
2
4
6
8
10
12
0.3024
0.0133 − 0.0247 − 0.0067 ]
0.0530
h(n)
•
14
n
Figura 174: Respuesta al impulso del caso 2.
339
M agnitude (dB )
50
0
-50
-100
-150
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
0
-200
-400
-600
-800
-1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 175: Respuesta en frecuencia del caso 2.
Tercer caso, α = 0 y β = 1 :
h = [ 0.0122
0.0470
0.0462 − 0.0002 0.0761
0.2990
0.3332
0.0000 − 0.3332 − 0.2990 − 0.0761 0.0002 − 0.0462 − 0.0470 − 0.0122 ]
Res pues ta al im puls o A lpha= 0 B eta= 1
0.4
0.3
0.2
0.1
h(n)
•
0
-0.1
-0.2
-0.3
-0.4
0
2
4
6
8
10
12
14
n
Figura 176: Respuesta al impulso del caso 3.
340
M agnitude (dB )
100
50
0
-50
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
200
0
-200
-400
-600
-800
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 177: Respuesta en frecuencia del caso 3.
Cuarto caso, α = 0.5 y β = 1 :
h = [ 0.0535
0.0761
0.1155
0.0585
0.0470
0.2929
0.4049
0.0000 − 0.4049 − 0.2929 − 0.0470 − 0.0585 − 0.1155 − 0.0761 − 0.0535]
Respues ta al im puls o A lpha= 0.5 B eta= 1
0.5
0.4
0.3
0.2
0.1
h(n)
•
0
-0.1
-0.2
-0.3
-0.4
-0.5
0
2
4
6
8
10
12
14
n
Figura 178: Respuesta al impulso del caso 4.
341
M agnitude (dB )
100
50
0
-50
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
500
0
-500
-1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 179: Respuesta en frecuencia del caso 4.
La forma como se obtienen los valores óptimos para la banda de transición se explica en el libro de
Proakis y Manolakis y están tabulados en el apéndice C16.
DISEÑO DE FILTROS OPTIMOS FIR
DE FASE LINEAL Y RIZADO CONSTANTE
El problema fundamental de los dos métodos de diseño anteriores es que no se tiene un control preciso
( )
de las frecuencias de corte ω p y supresión (ω s ) . En el método que se plantea en este caso, se aplica
el criterio de diseño óptimo en el sentido que el error de aproximación ponderado entre la respuesta en
frecuencia deseada y la obtenida realmente se distribuye equitativamente a lo largo de las bandas de
paso y de rechazo del filtro que minimiza el error máximo, el cual tiene rizado en ambas bandas.
16
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pp. 645−646, C1−C6.
342
Si se considera el diseño de un filtro pasabajo con frecuencias ω p y ω s , la respuesta en frecuencia
satisface las condiciones:
1 − δ1 ≤ H r (ω ) ≤ 1 + δ1 con
ω ≤ ωp
− δ2 ≤ H r ( ω ) ≤ δ 2 con
ω > ωs
En donde:
δ 1 : Rizado en la banda de paso.
δ 2 : Rizado en la banda de rechazo.
El parámetro adicional a especificar es M, la longitud del filtro o número de coeficientes; la expresión de
H r (ω ) dependerá de si el filtro es simétrico o antisimétrico y de si M es par o impar, presentándose
cuatro casos diferentes17 como se muestra a continuación:
•
CASO 1: Respuesta impulsional simétrica con M impar
H r (ω ) =
( M −1) 2
∑ a(k ) cos(ω k )
k =0
Con:

 M − 1  con k = 0
h



 2 

a(k ) = 
M −1
  M −1
− k  con k = 1, 2, L ,
2 h  2
2

•
CASO 2: Respuesta impulsional simétrica con M par
M −1
2
~
ω 
H r (ω ) = cos 
 ∑ b ( k ) cos (ω k )
 2  k =0
17
_____________. pp. 647−649.
343
En donde:
~
1
b (0 ) =
b (1)
2
~
~
M
b ( k ) = 2b ( k ) − b ( k − 1) con k = 1, 2, L ,
−2
2
~ M
M 
b 
− 1 = 2b 

 2

 2 
Con:
M
M
b ( k ) = 2 h 
− k  con k = 1, 2, L ,
2
 2

•
CASO 3: Respuesta impulsional antisimétrica con M impar
( M − 3) 2
H r (ω ) = sen (ω ) ∑ c~ ( k ) cos (ω k )
k =0
En donde:
M −3 
 M −1 
c~ 
 = c

 2 
 2 
M −5 
 M −3 
c~ 
 = 2c 

 2 
 2 
M
M −5
c~ ( k − 1) − c~ ( k + 1) = 2c ( k ) con 2 ≤ k ≤
2
1 ~
c~ (0 ) +
c ( 2 ) = c (1)
2
344
Con:
•
M −1
M −1
c ( k ) = 2 h 
− k  con k = 1, 2, L ,
2
 2

CASO 4: Respuesta impulsional antisimétrica con M par
M −1
2
~
ω 
H r (ω ) = sen 
 ∑ d ( k ) cos(ω k )
 2  k =0
En donde:
~ M
M 
d 
− 1 = 2 d 

 2

 2 
~
~
M
d ( k − 1) − d ( k ) = 2 d ( k ) con 2 ≤ k ≤
−1
2
~
1 ~
d (0 ) −
d (1) = d (1)
2
Con:
M
M
d ( k ) = 2 h 
− k  con k = 1, 2, L ,
2
 2

En definitiva, para los cuatro casos se tiene una expresión cerrada para la respuesta en frecuencia obtenida así:
H r (ω ) = Q (ω )P (ω )
Con:
1



ω 
cos  2 

Q (ω ) = 
 sen (ω )


ω 
sen  2 
caso 1
caso 2
caso 3
caso 4
345
P (ω ) =
L
∑ α (k ) cos (ω k )
k =0
En donde {α ( k )} representan los parámetros del filtro, el límite superior está dado por:




L=




M −1
2
caso 1
M −3
2
caso 3
M
−1
2
casos 2 y 4
Se define la respuesta deseada así:
 1 En la banda de paso
H dr (ω ) = 
 0 En la banda de rechazo
Se especifica además, una función de ponderación W (ω ) para elegir el tamaño relativo de los errores
en las diferentes bandas, en particular una elección de ésta puede ser:
 δ2

W (ω ) =  δ 1
 1

En la banda de paso
En la banda de rechazo
O sea que W (ω ) refleja el tamaño relativo del error entre la banda de paso y la de rechazo.
Se define el error ponderado así:
E (ω ) = W (ω ) [ H dr (ω ) − H r (ω ) ]
[
= Wˆ (ω ) Hˆ dr (ω ) − P (ω )
En donde,
]
346
Wˆ (ω ) = W (ω ) Q (ω ) y
H (ω )
Hˆ dr (ω ) = dr
Q (ω )
En el diseño se trabaja con el problema de aproximación de Chebyshev que consiste en determinar los
parámetros {α ( k )} que minimizan el máximo valor absoluto del error ponderado E (ω ) en las bandas
de frecuencia en las que se realiza la aproximación:
L
 max


min
min
 max E (ω )  =
ˆ
ˆ
(
)
(
)
(
)
(
)
−
W
ω
H
ω
α
k
cos
ω
k



∑
dr
 sobre { α ( k ) } ω ∈ S
sobre { α ( k ) } ω ∈ S



k =0



En donde S es el conjunto de bandas de frecuencia sobre las que se realiza la optimización. La solución se debe a Parks−McClellan y se basa en
el teorema de la alternancia de la teoría de aproximación de Chebyshev, el cual se enuncia a continuación:
TEOREMA DE ALTERNANCIA:
Sea S un subconjunto compacto de frecuencias en el intervalo [ 0, π ) ; una condición necesaria y
suficiente para que P (ω ) =
L
∑ α (k ) cos (ω k ) sea la mejor y única representación ponderada de
k =0
Chebyshev a Ĥ dr (ω ) en S, es que la función de error E (ω ) exhiba al menos L + 2 frecuencias
extremas en S:
ω1 < ω 2 < L < ω L + 2 ,
Tal que en esas frecuencias {ω i } :
E (ω i ) = − E (ω i + 1 )
y
E (ω i ) = Max
ω∈ S
E (ω )
con i = 1, 2, L , L + 2
347
En el caso que el filtro sea un pasabajos, se tiene que H dr (ω ) y W (ω ) son constantes por tramos y por
lo tanto
dE (ω )
d
=
{ W (ω ) [ H dr (ω ) − H r (ω ) ] }
dω
dω
=−
dH r (ω )
=0
dω
Es decir, las frecuencias {ω i } correspondientes a los picos de E (ω ) también se corresponden con los
picos en que H r (ω ) verifica la tolerancia del error.
Como H r (ω ) es un polinomio trigonométrico de grado L, para el caso 1 se tiene:
H r (ω ) =
H r (ω ) =
=
L
∑ α (k ) cos(ω k )
k =0
L
 k

 n = 0

∑ α (k )  ∑ β nk ( cos(ω ) )n 
k =0
L
∑ α ' (k ) (cos(ω ))k
k =0
Se deduce que H r (ω ) puede tener al menos L − 1 máximos y mínimos locales en el intervalo
0 < ω < π , ω = 0 y ω = π son normalmente extremos de H r (ω ) y también de E (ω ) , por tanto
H r (ω ) tiene al menos L + 1 frecuencias extremas. Además ω p y ω s son también extremos de
E (ω ) ya que E (ω ) es máximo en ω p y ω s . Se concluye entonces que hay como mucho L + 3
frecuencias extremas de E (ω ) para la única mejor aproximación del filtro ideal pasabajo. El teorema
de alternancia establece que hay al menos L + 2 frecuencias extremas de E (ω ) . Así la función de
error para el filtro pasabajo tiene L + 3 ó L + 2 extremos.
348
El teorema de alternancia garantiza una solución única para el problema de optimización de Chebyshev.
En las frecuencias extremas deseadas {ω n } se tiene el conjunto de ecuaciones:
[
]
Wˆ (ω n ) Hˆ dr (ω n ) − P (ω n ) = ( − 1) n δ con n = 0, 1, L , L + 1
Donde δ representa el valor máximo del error E (ω ) , δ = δ 2 .
Reordenando, se tiene:
P (ω n ) +
( − 1)n δ
= Hˆ dr (ω n ) con n = 0, 1, L , L + 1
Wˆ (ω n )
Equivalentemente,
L
∑ α (k ) cos(ω n k ) +
k =0
( − 1)n δ
= Hˆ dr (ω n ) cn n = 0, 1, L , L + 1
ˆ
W (ω n )
Para hallar los parámetros {α ( k )} y δ , se expresa esta ecuación en forma matricial:
1


1


M

1

cos ( ω0 )
cos ( 2ω0 )
L
cos ( Lω0 )
cos (ω1 )
cos ( 2ω1 )
L
cos ( Lω1 )
M
M
cos (ωL + 1 )
cos ( 2ω L +1 )
M
L
cos ( LωL +1 )





1

M

L +1 
( − 1)

Wˆ (ω L +1 ) 
1
Wˆ (ω 0 )
−1
Wˆ (ω )
α ( 0 ) 
ˆ
 α (1)   H dr (ω 0 ) 

  Hˆ (ω ) 
M

 =  dr 1 

M

 
(
)
L
α



  Hˆ (ω
)


dr
L
+
1
 δ 
Como inicialmente no se conoce {ω n } ni {α ( k )} y δ , para encontrarlos se recurre a un algoritmo
recursivo llamado el algoritmo de intercambio de Remez, en éste se proponen inicialmente un conjunto
de frecuencias extremas y se calcula E (ω ) , con esta función de error se determina otro conjunto de
L + 2 frecuencias extremas y se repite iterativamente hasta que converge al conjunto óptimo de
frecuencias extremas18.
18
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pág. 656.
349
Como la inversión de esta matriz es muy ineficiente desde el punto de vista de costos computacionales,
se propone el cálculo de δ analíticamente, así:
δ =
γ 0 Hˆ dr (ω 0 ) + γ 1 Hˆ dr (ω1 ) + L + γ L + 1 Hˆ dr (ω L + 1 )
γ0
γ1
( − 1) L + 1 γ L + 1
−
+L+
Wˆ (ω 0 )
Wˆ (ω1 )
Wˆ (ω L + 1 )
Donde:
γk =
L +1
1
n=0 cos (ω k ) − cos(ω n )
∏
n≠ k
Con el valor de δ calculado se puede encontrar:
( − 1)n δ
P (ω n ) = Hˆ dr (ω n ) −
Wˆ (ω n )
con n = 0 ,1, L L + 1
Con estos valores se obtiene P (ω ) usando la fórmula de interpolación de Lagrange:
L

β
∑ P (ω k )  x − kx
P (ω ) = k = 0


k 
 βk 
 x−x 
k 
k =0 
L
∑
En donde:
x = cos(ω )
xk = cos (ω k ) y
350
βk =
L
1
x − xn
n=0 k
∏
n≠k
Con el valor de P (ω ) es posible calcular la función de error:
[
E (ω ) = Wˆ (ω ) Hˆ dr (ω ) − P (ω )
]
Se calcula E (ω ) en un conjunto denso de frecuencias (Por ejemplo 16 M frecuencias, M longitud del
filtro) y si el valor absoluto del error es mayor que el δ calculado se procede a escoger un nuevo
conjunto de frecuencias correspondientes a los L + 2 picos más grandes de E (ω ) y se repite el
procedimiento computacional descrito desde el cálculo de δ cuantas veces sea necesario hasta que se
logre la convergencia. En cada iteración el valor de δ es incrementado hasta que converge al límite
superior y por lo tanto a la solución óptima. O sea, cuando se logre que E (ω ) ≤ δ para todas las
frecuencias en el conjunto denso de frecuencias, se ha encontrado la solución óptima.
Con esta solución óptima para P (ω ) se puede calcular directamente la respuesta al impulso, utilizando
el valor de la respuesta en frecuencia obtenida H r (ω ) = P (ω ) Q (ω ) , evaluando esta respuesta en
ω k = 2π k M y usando las expresiones simplificadas de la respuesta impulsional h( n ) de las páginas
285 a 288 de estas notas.
Matlab permite calcular filtros FIR óptimos de rizado constante con la función
remez ( N , F , M , W , ' tipo ') . Esta función devuelve una respuesta al impulso de longitud N + 1 a
partir de especificaciones de bandas de frecuencia ( F ) , la magnitud de la ganancia ( M ) y la
ponderación del error en cada banda (W ) . También es posible especificarle a la función si se quiere un
filtro diferenciador (differenciator) o un transformador de Hilbert (Hilbert) con el parámetro ‘tipo’. Para
una estimación del filtro se puede utilizar la función kaizerord (
) o la fórmula propuesta en el libro de
19
Proakis y Manolakis .
Ejemplo:
19
PROAKIS, John y MANOLAKIS, Dimitris. Tratamiento digital de señales. 3 ed. Madrid : Prentice Hall, 1998.
pág. 674.
351
Diseñar un filtro pasabajos de rizado constante de longitud 21 y con frecuencias de corte de 0.4 y de
supresión de 0.45 , utilizando la función remez de Matlab.
h = remez ( 20, [ 0, 0.4, 0.45, 1 ] , [ 1, 1, 0, 0 ] )
h = [ 0.0499 − 0.0721 − 0.0636 − 0.0098 0.0448 0.0209 − 0.0652
− 0.0809 0.0716 0.3090 0.4248 0.3090 0.0716 − 0.0809
− 0.0652 0.0209 0.0448 − 0.0098 − 0.0636 − 0.0721
0.0499 ]
0.6
0.5
0.4
0.3
0.2
0.1
0
-0.1
0
5
10
15
20
25
Figura 180: Respuesta al impulso del filtro del ejemplo.
352
M agnitude (dB )
20
0
-20
-40
-60
-80
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
0
P has e (degrees )
-200
-400
-600
-800
-1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 181: Respuesta en frecuencia del ejemplo.
DISEÑO DE FILTROS IIR A PARTIR DE FILTROS ANALOGICOS
En este caso se convierte un filtro analógico diseñado en la forma clásica en uno digital, transformando
la descripción entrada−salida en tiempo continuo en una equivalente digital.
El filtro analógico se puede describir a partir de su función de transferencia, utilizando la transformada
de Laplace:
Ha ( s ) =
B( s )
A( s )
M
∑ βk sk
= k =0
N
∑α k s k
k =0
353
También se puede hacer una descripción del sistema usando la convolución entre la respuesta al
impulso y la señal de entrada, dicha respuesta al impulso está relacionada con la función de
transferencia por medio de la transformada de Laplace, así:
H a (s ) =
∞
∫ h (t ) e
−s t
dt
−∞
Adicionalmente, el sistema se puede describir mediante una ecuación diferencial de coeficientes
constantes de la siguiente manera:
N
d k y (t )
k =0
dt k
∑ αk
=
M
d k x (t )
k =0
dt k
∑ βk
Debe recordarse que un sistema analógico lineal e invariante en el tiempo es estable si los polos de su
función de transferencia H a ( s ) están en el semiplano izquierdo del plano complejo s, y por tanto si la
técnica de conversión del filtro análogo a digital es efectiva cumplirá las siguientes propiedades:
1. El eje jΩ en el plano s se corresponde con la circunferencia unidad en el plano z.
2. El semiplano izquierdo en el plano s se corresponde con el interior de la circunferencia unitaria, de
tal manera que un filtro analógico estable se transforme en uno digital también estable.
Un filtro IIR estable y físicamente realizable no puede producir un desfase lineal ya que para que esto
suceda, como previamente se vio en los filtros de fase lineal, se debe satisfacer lo siguiente:
( )
H ( z ) = ± z − N H z −1
Lo que implica que si se quisiera que el filtro tuviera fase lineal obligatoriamente tendría polos
especulares fuera de la circunferencia unidad y por lo tanto sería inestable. De lo anterior se puede
concluir que en los filtros IIR se especifica la magnitud de la respuesta en frecuencia que se requiere y se
acepta la respuesta en fase resultante ya que la una depende de la otra.
DISEÑO DE FILTROS IIR MEDIANTE LA APROXIMACION EN DERIVADAS
En este caso se aproxima la ecuación diferencial a una en diferencias equivalente de la siguiente manera:
354
dy (t )
y ( nT ) − y ( nT − T )
=
dt t = nT
T
y ( n ) − y ( n − 1)
=
T
En el dominio de s, el derivador tiene una función de transferencia dada por:
H (s) = s
En z, la aproximación de la derivada está relacionada con la función de transferencia así:
−1
y ( n ) − y ( n − 1)
1− z
z
←→

H (z) =
T
T
Las dos relaciones anteriores se pueden visualizar en la figura 182.
y (t )
H (s) = s
dy (t )
dt
(a )
y ( n ) −la yprimera
( n − 1)diferencia hacia atrás en
1 − z(b)−1Sistema que efectúa
Figura 182: (a) Sistemayderivador
en tiempo continuo.
(n )
H
(
z
)
=
tiempo discreto.
T
T
Con esta aproximación se realiza la equivalencia,
s=
1− z
T
−1
(b )
O viceversa:
z=
1
1 − sT
Similarmente para la segunda derivada se tiene:
d 2 y (t )
dt
2
=
t = nT
d  dy (t ) 


dt  dt  t = nT
y ( nT ) − y ( nT − T )
y ( nT − T ) − y ( nT − 2T )
−
T
T
=
T
y ( n ) − 2 y ( n − 1) + y ( n − 2 )
=
T2
Es decir:
s =
2
1 − 2 z −1 + z − 2
T2
 1 − z −1
=

T





2
355
Generalizando, la k−ésima derivada conduce a la siguiente transformación:
 1 − z −1
sk = 

T

k



Luego, la función de transferencia para el filtro IIR digital obtenida con la aproximación de las derivadas por
diferencias finitas es:
H ( z ) = H a (s )
s = 1− z − 1
(
)
T
En esta transformación para hallar el equivalente en z del eje imaginario se hace
z=
=
1
1− j Ω T
1
+
1 + Ω 2T 2
s = j Ω , lo que conduce a:
jΩT
1 + Ω 2T 2
Ω varía desde − ∞ hasta + ∞ , el lugar correspondiente en el plano z es un círculo de radio 1 2
z = 1 2 . Como se observa en la figura 183.
Como
en
Circunferencia unidad
y centro
jΩ
Plano z
Plano s
1 plano s al plano z usando la aproximación de derivadas.σ
Figura 183: Mapeo del
2
De acuerdo con la figura 183 los polos localizados
en el semiplano izquierdo son trasladados al interior de la
circunferencia sombreada y por tanto quedan confinados en la zona de frecuencias relativamente bajas lo que
implica que por este método sólo se puede diseñar filtros pasabajos y pasa banda con frecuencias de corte o
resonancia pequeñas. Por la misma razón con este procedimiento no es posible transformar un filtro analógico
pasaalto en uno equivalente digital.
Ejemplo:
Convierta un filtro pasabanda analógico con función de transferencia:
H a (s ) =
1
( s + 0.1) 2 + 9
En un filtro IIR digital usando la aproximación en diferencia hacia atrás de las derivadas.
Este filtro tiene una respuesta al impulso y una respuesta en frecuencia mostradas en las figuras 184 y 185,
calculadas por medio de Matlab así:
•
Cálculo de los polos y los ceros de la función de transferencia:
num = [ 0 0 1]
356
z = roots ( num )
=[ ]
den = [ 1 0.2 9.01 ]
p = roots ( den )
= −0.1000 + 3.0000 i
= −0.1000 − 3.0000 i
•
La ganancia del sistema se asume como:
k =1
•
Cálculo de la respuesta al impulso:
sys = zpk ( z , p , k )
Zero/pole/gain :
1
s 2 + 0.2 s + 9.01
h = impulse( sys )
plot ( h )
Figura 184: Respuesta al impulso del sistema del ejemplo.
•
Cálculo de la respuesta en frecuencia:
freqs ( num, den )
357
2
M agnitude
1.5
1
0.5
0
-1
10
0
10
Frequenc y (radians )
10
1
P has e (degrees )
0
-50
-100
-150
-200
0
10
Frequenc y (radians )
10
1
Figura 185: Respuesta en frecuencia del sistema del ejemplo.
−1
T en:
Sustituyendo s por 1 − z
(
H a (s ) =
)
1
( s + 0.1) 2 + 9
Se tiene:
H (z) =
1
 1 − z −1


+ 0 .1  + 9
 T



2
T2
=
1 + 0.2T + 9.01T 2
2 ( 1 + 0.1T )
1
1−
z −1 +
z−2
2
2
1 + 0.2T + 9.01T
1 + 0.2T + 9.01T
Escogiendo T lo suficientemente pequeño se logra que el filtro sea un resonador con los polos cercanos a la
circunferencia unidad, por ejemplo, si T = 0.1 :
•
Cálculo de numerador y denominador de la función de transferencia:
T = 0.1000


T2
num = 

2
 1 + 0.2T + 9.01T 
= [ 0.0090 ]
358
2 ( 1 + 0.1T )
1


den = 1 , −
,
2
2 

1 + 0.2T + 9.01T
1 + 0.2T + 9.01T 
= [ 1.0000 − 1.8197 0.9008 ]
•
Cálculo del diagrama de polos y ceros, ver figura 186:
p = roots ( den )
= 0.9098 + 0.2702 i
= 0.9098 − 0.2702 i
zplane( num, den )
1
0.8
0.6
Im aginary P art
0.4
0.2
2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
Real P art
0.5
1
Figura 186: Lugar de raíces del sistema equivalente digital.
•
Cálculo de la función de transferencia en z:
k = num
= 0.0090
sys = zpk ( z , p , k )
Zero/pole/gain :
0.0090082
1 − 1.82 z − 1 + 0.9008 z − 2
•
Cálculo de la respuesta al impulso del sistema equivalente digital, ver figura 187:
h = impz ( num, den, 70 )
stem ( h )
359
•
Figura 187: Respuesta al impulso en tiempo discreto del sistema equivalente.
Cálculo de la respuesta en frecuencia, ver figura 188:
freqz ( h )
M agnitude (dB )
0
-20
-40
-60
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequency (× π rads /s am ple)
P has e (degrees )
0
-50
-100
-150
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequency (× π rads /s am ple)
Figura 188: Respuesta en frecuencia del sistema equivalente.
3 rad s = 0.4775 Hz resulta mapeada en una
frecuencia de 0.0955 debido a que con un T = 0.1 se tiene una frecuencia de muestreo de 10 Hz lo que implica
una frecuencia máxima de trabajo de 5 Hz . Como en Matlab se normaliza con respecto a la frecuencia de Nyquist
de 5 Hz entonces la frecuencia de 0.4775 Hz queda normalizada a 0.0955 . De la misma figura se puede
En la figura 188 se observa que la frecuencia de resonancia de
concluir que el filtro digital conserva el mismo comportamiento espectral del filtro análogo.
DISEÑO DE FILTROS IIR MEDIANTE INVARIANZA IMPULSIONAL
En este caso se diseña un filtro IIR con una respuesta al impulso
sea:
h( n ) que sea la versión muestreada de h(t ) , o
360
h( n ) =
=
∞
∑ h(t ) δ (t − nT )
n = −∞
∞
∑ h(nT ) δ (t − nT )
n = −∞
Esto implica una respuesta en frecuencia con infinitas réplicas de la respuesta del filtro análogo, ver figura 189.
H ( f ) = Fs
H (ω ) = Fs
H (Ω T ) =
∞
∑ Ha[ ( f
k = −∞
− k ) Fs ] con f =
F
Fs
∞
∑ H a [ (ω − 2π k ) Fs ]
k = −∞
1 ∞
2π k 
H a  Ω −

∑
T k = −∞
T 

H a (ΩT )
− 25
0
(a )
25
Ω
25T
ΩT
H (ΩT )
− 25T
0
(b )
Figura 189: (a) Respuesta en frecuencia del filtro análogo. (b) Resultado de muestrear su respuesta al impulso.
De esta figura se concluye que si se elige T lo suficientemente pequeño, el aliasing será mínimo.
La función de transferencia del filtro análogo está dada en términos de la respuesta al impulso, por:
∞
−s t
H (s ) =
∫ h (t ) e
dt
−∞
Remplazando en esta expresión la respuesta al impulso por las muestras de ésta, se tiene:
361
H1 (s ) =
=
=
∞
∫
∞
∑ h(nT ) δ (t − nT ) e − s t dt
− ∞ n = −∞
∞
∞
∑ h(nT ) ∫ δ (t − nT ) e − s t dt
n = −∞
∞
−∞
∑ h(nT ) e − s nT
n = −∞
Comparando esta expresión con la función de transferencia de un filtro digital:
∞
−n
H (z) =
∑ h( n ) z
n = −∞
Se puede concluir que la función de transferencia de un filtro digital coincide con la función de transferencia de un
filtro análogo calculado a partir de las muestras de su respuesta al impulso si se hace:
z = e sT
Como,
s = σ + jΩ y z = r e jω
Entonces:
r e jω = eσ T e j Ω T
Y por tanto se concluye que:
r = eσ T y ω = Ω T
Luego:
σ < 0 → 0 < r <1
σ > 0 → r >1
σ = 0 → r =1
Según esto el semiplano izquierdo en s se corresponde con el interior de la circunferencia unitaria en z y viceversa,
además el eje jΩ resulta mapeado en la circunferencia unidad, pero no hay una correspondencia uno a uno, debido
a que como el rango de frecuencias
ω
es único en el intervalo
intervalo − π T ≤ Ω ≤ π T se traslada a los valores
y así sucesivamente, como se aprecia en la figura 190:
( − π , π ) , la relación ω = Ω T
− π ≤ ω ≤ π , lo mismo para π T ≤ Ω ≤ 3π T
jΩ
3π
T
Plano s
Plano z
z = e sT
implica que el
π
T
σ
− π
T
362
Figura 190: Mapeo del plano s al z utilizando la invarianza impulsional.
De esta figura se concluye que el método de invarianza impulsional es inapropiado para diseñar filtros pasaaltos
debido al aliasing resultante en el espectro.
En Matlab se tiene la función impinvar para el diseño de filtros digitales a partir del muestreo de la respuesta al
impulso del filtro analógico.
IMPINVAR:
Impulse invariance method for analog to digital filter conversion.
[BZ,AZ] = IMPINVAR(B,A,Fs)
Creates a digital filter with numerator and denominator coefficients BZ and
AZ respectively whose impulse response is equal to the impulse response of
the analog filter with coefficients B and A sampled at a frequency of Fs
Hertz.
If you don't specify Fs, it defaults to 1 Hz.
Ejemplo:
Convierta el filtro analógico con función de transferencia
H a (s ) =
s + 0 .1
( s + 0.1) 2 + 9
En un filtro IIR digital por medio del método de invarianza impulsional.
•
Cálculo del diagrama de polos y ceros del sistema análogo:
b = [ 1 0.1 ]
a = [ 1 0.2 9.01 ]
z = roots (b )
= −0.1000
p = roots ( a )
= [ − 0.1000 + 3.0000 i , − 0.1000 − 3.0000 i ]
k =1
sys = zpk ( z , p, k )
Zero/pole/gain :
( s + 0 .1)
s 2 + 0 .2 s + 9 .01
El diagrama de polos y ceros del sistema análogo se puede calcular con la función
en la figura 191.
pzmap ( sys ) y se visualiza
363
P ole-z ero m ap
5
4
3
Im ag A x is
2
1
0
-1
-2
-3
-4
-5
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Real A x is
Figura 191: Diagrama de polos y ceros del sistema.
•
Calculo de la respuesta al impulso y de la respuesta en frecuencia del sistema análogo:
La respuesta al impulso del sistema análogo se puede calcular en Matlab usando la función
está dibujada en la figura 192:
Figura 192: Respuesta al impulso del sistema análogo.
La respuesta en frecuencia del sistema análogo se puede calcular en Matlab con la función
visualiza en la figura 193.
impulse ( sys ) y
freqs (b, a ) y se
364
M agnitude
10
10
10
1
0
-1
10
-1
0
10
Frequenc y (radians )
10
1
P has e (degrees )
100
50
0
-50
-100
-1
10
0
10
Frequenc y (radians )
10
1
Figura 193: Respuesta en frecuencia del sistema análogo.
•
Cálculo del diagrama de polos y ceros del sistema digital equivalente para
Fs = 10 :
T = 0.1000
1
Fs =
T
= 10
[ BZ,AZ ] = impinvar(b, a, Fs )
BZ = [ 0.1000 − 0.0946 ]
AZ = [ 1.0000 − 1.8917 0.9802 ]
El diagrama de polos y ceros del filtro digital se calcula en Matlab con la función
grafica en la figura 194.
zplane ( BZ, AZ ) y se
Figura 194: Diagrama de polos y ceros del sistema digital con T = 0.1 .
365
•
Cálculo de la respuesta al impulso y en frecuencia del sistema digital:
La respuesta al impulso del filtro digital se calcula con la función
195.
impz ( ) de Matlab y se dibuja en la figura
h = impz ( BZ, AZ, 150 )
stem ( h )
Figura 195: Respuesta al impulso del sistema digital con T = 0.1 .
La respuesta en frecuencia se calcula con
freqz ( h ) y se visualiza en la figura 196.
M agnitude (dB )
20
10
0
-10
-20
-30
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
100
50
0
-50
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 196: Respuesta en frecuencia del sistema digital con T = 0.1 .
•
Cálculo de la respuesta al impulso y en frecuencia para
T = 0.5000
T = 0 .5 :
366
1
=2
T
[ BZ,AZ ] = impinvar(b, a, Fs )
Fs =
h = impz ( BZ, AZ, 50 )
stem ( h )
Figura 197: Respuesta al impulso del sistema digital con T = 0.5 .
freqz ( h )
M agnitude (dB )
20
10
0
-10
-20
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
100
50
0
-50
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 198: Respuesta en frecuencia del sistema digital con T = 0.5 .
Comparando las figuras 195, 196, 197 y 198 se puede concluir que la respuesta en frecuencia y la respuesta al
impulso dependen de la velocidad de muestreo.
DISEÑO DE FILTROS IIR MEDIANTE LA TRANSFORMACIÓN BILINEAL
Los métodos anteriores sólo permiten diseñar filtros pasabajos y una clase restringida de filtros pasabanda; la
solución a estas limitaciones la ofrece la transformación bilineal mapeando el eje jΩ en la circunferencia unidad
367
en el plano z sólo una vez, con lo cual se evita el aliasing en frecuencia; esta transformación está relacionada con la
fórmula trapezoidal utilizada para integración numérica y se explicará con el siguiente ejemplo:
El filtro analógico con una función de transferencia dada por:
b
s+a
H (s ) =
Está caracterizado en el tiempo por una relación entrada−salida dada por la ecuación diferencial:
dy (t )
+ a y (t ) = b x (t )
dt
Si se integra la derivada se tiene:
y (t ) =
t
∫ y ( τ ) dτ + y ( t 0 )
'
t0
La aproximación de esta integral mediante la fórmula trapezoidal en
y ( nT ) =
T
2
t = nT y t 0 = nT − T está dada por:
[ y ' (nT ) + y ' (nT − T ) ] + y(nT − T )
La ecuación diferencial en
t = nT queda así:
y ' ( nT ) = − a y ( nT ) + b x ( nT )
Con
y ( n ) ≡ y ( nT ) y x ( n ) ≡ x ( nT ) , y reemplazando, se tiene:
1 + a T  y ( n ) − 1 − a T  y ( n − 1) = b T [ x ( n ) + x ( n − 1) ]




2 
2 
2


1 + a T  Y ( z ) − 1 − a T  Y ( z ) z −1 = b T




2 
2 
2


[1 + z − ] X ( z )
1
Se concluye de esta manera que la función de transferencia está dada en este caso por:
(
)
bT
1 + z −1
2
H (z) =
aT 
a T  −1
1+
− 1 −
z
2
2 

b
H (z) =
2  1 − z −1 
+a
T  1 + z −1 
Comparando con la función de transferencia del filtro análogo se tiene, entonces, que:
s=
2
T
 1 − z −1


−1
 1+ z




368
A esta relación se le denomina la transformación bilineal y es igualmente válida para una ecuación diferencial de
N−ésimo orden.
Como, además:
z = r e jω y s = σ + j Ω
Entonces:
s=
2  z −1 


T  z +1 
=
2
T
 r e jω − 1 




jω
r
e
+
1


=
2
T

r2 −1
2 r sen (ω )

+ j
 1 + r 2 + 2 r cos (ω )
1 + r 2 + 2 r cos (ω )





Por tanto,
2
r 2 −1
σ =
T 1 + r 2 + 2 r cos (ω )
Ω =
2
2 r sen (ω )
T 1 + r 2 + 2 r cos (ω )
Se concluye que si:
•
r < 1 entonces σ
<0
•
r > 1 entonces σ > 0
•
r = 1 entonces σ = 0 y además;
2
sen (ω )
T 1 + cos (ω )
2 2 cos (ω 2 ) sen (ω 2 )
=
T
2 cos 2 (ω 2 )
2
ω 
=
tan 

T
 2 
Ω =
O de forma equivalente,
ω = 2 tan − 1 

ΩT 
2


Dicha relación puede apreciarse por medio de la figura 199:
ω
π
ω = 2 tan −1 Ω T
2
ΩT
369
Figura 199: Relacion entre la frecuencia en el plano s y el plano z en la transformacion bilineal
En esta figura se observa que:
• El rango completo de frecuencias en tiempo continuo
tiempo discreto
•
Ω
se corresponde de forma unívoca con el rango en
ω , sin embargo hay deformación en frecuencia.
Además, la transformación bilineal hace corresponder
s = ∞ con z = −1 .
Normalmente el diseño de un filtro digital empieza con especificaciones en frecuencia en el dominio digital que
implica a ω , las cuales se convierten al dominio analógico por medio de la transformación
Ω = ( 2 T ) tan (ω 2 ) , luego se diseña el filtro analógico y se convierte a un filtro digital por medio de la
transformación bilineal. En este proceso T es transparente y se puede poner en cualquier valor, por ejemplo 1.
De manera similar al método anterior, Matlab cuenta con la función
análogo en uno digital usando la transformación bilineal:
bilinear (
) que permite trasformar un filtro
BILINEAR Bilinear transformation with optional frequency prewarping.
[Zd,Pd,Kd] = BILINEAR(Z,P,K,Fs) converts the s-domain transfer function
specified by Z, P, and K to a z-transform discrete equivalent obtained from
the bilinear transformation:
H(z) = H(s)
s = 2*Fs*(z-1)/(z+1)
Where column vectors Z and P specify the zeros and poles, scalar K specifies
the gain, and Fs is the sample frequency in Hz.
[NUMd,DENd] = BILINEAR(NUM,DEN,Fs), where NUM and DEN are row vectors
containing numerator and denominator transfer function coefficients,
NUM(s)/DEN(s), in descending powers of s, transforms to z-transform
coefficients NUMd(z)/DENd(z).
[Ad,Bd,Cd,Dd] = BILINEAR(A,B,C,D,Fs) is a state-space version.
Each of the above three forms of BILINEAR accepts an optional additional
input argument that specifies prewarping. For example,
[Zd,Pd,Kd] = BILINEAR(Z,P,K,Fs,Fp)
Applies prewarping before the bilinear transformation so that the frequency
responses before and after mapping match exactly at frequency point Fp (match
point Fp is specified in Hz).
370
Ejemplo:
Convierta el filtro analógico con función de transferencia
H a (s ) =
(s + 0.1)
(s + 0.1)2 + 16
En un filtro IIR digital por medio de la transformación bilineal. El filtro digital tiene que tener una
frecuencia resonante ω r = π 2 .
•
Calculo de la respuesta en frecuencia del filtro análogo:
num = [ 1.0000 0.1000]
den = [ 1.0000 0.2000 16.0100]
freqs ( num, den )
M agnitude
10
10
10
10
2
0
-2
-4
10
-1
0
10
Frequenc y (radians )
10
1
P has e (degrees )
100
50
0
-50
-100
-1
10
0
10
Frequenc y (radians )
10
1
Figura 200: Respuesta en frecuencia del filtro análogo del ejemplo.
Como se observa en la figura 200 el filtro análogo tiene una frecuencia de resonancia de 4 Hz . La transformación
bilineal requiere que la frecuencia de muestreo sea Fs = 2 para que la frecuencia análoga Ω r = 4 y la digital
ωr =π 2
se cumplan ya que,
 Ωr T 

 2 
ω r = 2 tan −1 
371
[ B, A] = bilinear ( num, den, 2 )
B = [ 0.1250 0.0061 − 0.1189 ]
A = [ 1.0000 0.0006 0.9512 ]
•
Calculo de la respuesta en frecuencia digital, ver figura 201:
freqz ( B , A)
M agnitude (dB )
20
0
-20
-40
-60
-80
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
100
50
0
-50
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 201: Respuesta en frecuencia del filtro digital del ejemplo.
Como se observa en la figura 201 se ha logrado con la transformación bilineal la frecuencia resonante que se
deseaba ( ω r = π 2 o normalizado 1/2).
Ejemplo:
Diseñar un filtro digital pasabajos de un polo simple con un ancho de banda de − 3 dB de 0.2π , usando la
transformación bilineal aplicada al filtro analógico
H (s ) =
Donde
Ωc
s + Ωc
Ω c es el ancho de banda de 3 dB del filtro analógico.
Se especifica el filtro digital para que tenga su ganancia de
del filtro analógico
ω c = 0.2π
2
tan (0.1π )
T
0.65
=
T
Ωc =
se corresponde con
− 3 dB a ω c = 0.2π . En el dominio de la frecuencia
372
Así el filtro analógico tiene la función de transferencia:
0.65
T
H (s ) =
0.65
s+
T
•
Cálculo de la respuesta en frecuencia del filtro analógico, ver figura 202:
T = [1]
num = [0.65 T ]
= [ 0.6500 ]
den = [ 1, 0.65 T ]
= [ 1.0000 0.6500 ]
freqs ( num, den )
1
M agnitude
0.8
0.6
0.4
0.2
0
-1
10
0
10
Frequenc y (radians )
10
1
0
P has e (degrees )
-20
-40
-60
-80
-100
-1
10
0
10
Frequenc y (radians )
10
1
Figura 205: Respuesta en frecuencia del filtro analógico del ejemplo.
•
Cálculo del filtro digital mediante la transformación bilineal y su correspondiente respuesta
en frecuencia, ver figura 206:
[BZ, AZ ] = bilinear (num, den, 1 T )
BZ = [ 0.2453 0.2453] , AZ = [ 1.0000 − 0.5094]
freqz ( BZ, AZ )
373
0
M agnitude (dB )
-5
-10
-15
-20
-25
-30
-35
-40
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
0
P has e (degrees )
-20
-40
-60
-80
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 206: Respuesta en frecuencia del filtro digital del ejemplo.
Como se puede observar en las figuras 205 y 206 el diseño cumple con las especificaciones en
frecuencia tanto para el filtro análogo como digital.
DISEÑO DE FILTROS DIGITALES
BASADO EN EL METODO DE MINIMOS CUADRADOS
En este método el diseño se hace directamente en el dominio de z, con algunas variantes que se entran
a analizar a continuación.
•
APROXIMACION DE PADE
En este caso se especifica hd (n ) para n ≥ 0 y se diseñan L = M + N + 1 parámetros {a k } y {bk } de
la función de transferencia:
M
∑ bk
H (z) =
k =0
N
1+
z −k
∑ ak
k =1
z−k
374
=
∞
∑ h( k ) z − k
k =0
Tal que se satisfaga algún criterio de error como el de mínimos cuadrados en el que se busca minimizar
la suma de errores al cuadrado:
ε=
u
∑ [ hd ( n ) − h ( n ) ]2
n=0
Con respecto a los parámetros {a k } y {bk } ; u es un límite superior preseleccionado en la sumatoria,
tal que si se selecciona u = L − 1 se puede ajustar h ( n ) perfectamente a hd ( n ) para
0 ≤ n ≤ M + N como se muestra a continuación.
La ecuación en diferencias correspondiente a la función de transferencia anterior es:
y ( n ) = − a1 y ( n − 1) − a 2 y ( n − 2 ) − L − a N y ( n − N )
+ b0 x ( n ) + b1 x ( n − 1) + L + bM x ( n − M )
Si se asume x ( n ) = δ ( n ) , entonces y ( n ) = h ( n ) y por tanto,
h ( n ) = − a1 h( n − 1) − a 2 h( n − 2 ) − L − a N h( n − N )
+ b0 δ ( n ) + b1 δ ( n − 1) + L + bM δ ( n − M )
Como δ ( n − k ) = 0 para n ≠ k , se tiene que,
h ( n ) = − a1 h ( n − 1) − a 2 h ( n − 2 ) − L − a N h ( n − N ) + bn para 0 ≤ n ≤ M
Y para n > M :
h ( n ) = − a1 h ( n − 1) − a 2 h ( n − 2 ) − L − a N h ( n − N )
(2)
(1)
375
Con las ecuaciones (1) y (2) se pueden hallar los {a k } y {bk } , haciendo h ( n ) = hd ( n ) para
0 ≤ n ≤ M + N y usando la ecuación (2) para calcular los {a k } , luego se usan estos en la (1) para
hallar los {bk } con lo que se logra un ajuste perfecto entre h ( n ) y hd ( n ) , esto es lo que se denomina
el Método de aproximación de Padé.
El método produce resultados aceptables dependiendo del número de parámetros del filtro, así cuanto
más complejo es éste mejor es la aproximación; como consecuencia el filtro debe tener un gran número
de polos y ceros.
Ejemplo:
Diseñar un filtro digital con una función de transferencia
H (z) =
b0 + b1 z −1
1 + a1 z −1
que aproxime la respuesta al impulso deseada
1 n
hd ( n ) = 2   µ ( n )
 2 
utilizando el método de aproximación de Padé.
En general la función de transferencia de un filtro IIR está dada por:
M
∑ bk
H (z) =
k =0
N
1+
z −k
∑ ak
z−k
k =1
y por tanto para este caso M = N = 1
Con δ ( n ) a la entrada se tiene a la salida:
h ( n ) = − a1 h ( n − 1) + b0δ ( n ) + b1δ ( n − 1)
376
Y para n > 1 se tiene:
h( n ) = − a1 h( n − 1)
Equivalentemente:
hd ( n ) = − a1 hd ( n − 1)
Sustituyendo para n = 2 :
hd ( 2 ) = − a1 hd ( 2 − 1)
O sea,
a1 = −
1
2
y para n ≤ 1 :
h( n ) =
1
h ( n − 1) + b0δ ( n ) + b1δ ( n − 1)
2
De donde:
Para n = 0 se obtiene b0 = 2 .
Para n = 1 se obtiene b1 = 0 .
Lo que produce la función de transferencia:
H (z) =
2
1 −1
1−
z
2
377
Los resultados de la respuesta al impulso obtenida realmente y la deseada se muestran a continuación:
Cálculo de la respuesta al impulso deseada:
n = 0:10
1 n
hd = 2  
 2 
= [ 2.0000 1.0000 0.5000 0.2500 0.1250 0.0625
0.0313 0.0156 0.0078 0.0039 0.0020 ]
Cálculo de la respuesta al impulso obtenida mediante el método de Padé:
num = [ 2
0]
den = [ 1 − 0.5 ]
h = impz ( num, den, 11)
= [ 2.0000 1.0000 0.5000 0.2500 0.1250 0.0625
0.0313 0.0156 0.0078 0.0039 0.0020 ]
Como se puede observar en este caso particular coinciden la respuesta al impulso obtenida por el
método de Padé con la deseada, porque esta aproximación resulta en un ajuste perfecto a H d ( z )
cuando la función de transferencia deseada es racional y se conoce a priori el número de polos y ceros
del sistema. En la práctica esto no es así y por lo tanto se requiere un procedimiento de tanteo en
donde se supongan un número de polos y ceros determinados, se calcule la respuesta en frecuencia y se
repita cambiando este número hasta que se logre el ajuste a la respuesta deseada, lo cual normalmente
es un procedimiento que consume mucho tiempo y es tedioso.
•
METODO DE MINIMOS CUADRADOS
En este caso también se especifica hd ( n ) para n ≥ 0 .
Suponiendo que se diseña un filtro todo polos:
378
b0
H (z) =
1+
N
∑ ak z − k
k =1
Si se conecta en cascada el filtro deseado con un filtro inverso 1 H ( z ) (Todo ceros) como se muestra
en la figura 207:
δ (n)
y (n )
hd ( n )
H d (z)
1 H (z)
+
+−
δ (n)
error
M
Minimizar la suma
de
errores
al
Figura 207: Conexión del filtro deseado con el inverso de su aproximación en cascada.
En este caso, idealmente y d ( n ) = δ ( n ) pero la salida real es:
y(n ) =
1
b0
N


(
)
h
n
a k hd ( n − k ) 
+
 d
∑


k =1
Para obligar a que y d ( 0 ) ≡ y (0 ) = 1 se hace b0 = hd (0 ) para n > 0 , y ( n ) representa el error entre
y d ( n ) = 0 y la salida real. Se seleccionan los {a k } para minimizar
ε =
∞
∑ y 2 (n )
n =1
379
∞
N


(
)
+
h
n
∑  d
∑ a k hd ( n − k ) 


k =1
= n =1 
hd2 ( 0 )
2
Derivando con respecto a los {a k } , se tiene un conjunto de ecuaciones lineales:
N
∑ a k rhh (k , l ) = −rhh (l ,0 )
con l = 1, 2, L , N
(3)
k =1
En donde:
rhh ( k , l ) =
∞
∑ hd (n − k ) hd (n − l )
n =1
∞
=
∑ hd (n ) hd (n + k − l ) = rhh (k − l )
n=0
La solución de la ecuación (3) produce los parámetros deseados del sistema inverso 1 H ( z ) .
En la práctica se especifica hd ( n ) para un conjunto finito de puntos: 0 ≤ n ≤ L con L >> N , en tal
caso rhh ( k ) se puede calcular con la secuencia finita hd ( n ) :
rˆhh ( k − l ) =
L − k −l
∑
n=0
hd ( n ) hd ( n + k − l ) con 0 ≤ k − l ≤ N
Con estos valores se puede resolver la ecuación (3).
Suponiendo una aproximación H ( z ) a H d ( z ) con polos y ceros:
380
N
h( n ) = − ∑ a k h( n − k ) +
k =1
M
∑ bk δ ( n − k )
con n ≥ 0
k =0
O equivalentemente:
N
h ( n ) = − ∑ a k h ( n − k ) + bn con 0 ≤ n ≤ M
(4)
k =1
Si n > M :
N
h ( n ) = − ∑ a k h ( n − k ) con n > M
(5)
k =1
Si H d ( z ) es un filtro de polos y ceros, su respuesta hd ( n ) podría satisfacer estas mismas ecuaciones
pero no es así. Sin embargo, se puede usar hd ( n ) para n > M y estimar hd ( n ) usando la ecuación
(5).
N
hˆd ( n ) = − ∑ aˆ k hd ( n − k )
k =1
Se pueden seleccionar los {a k } para minimizar la suma de errores del cuadrado entre hd ( n ) y hˆd ( n )
para n > M :
ε1 =
∞
∑
[ hd (n ) − hˆd (n )]
2
n=M +1
∞
N


= ∑  hd ( n ) + ∑ aˆ k hd ( n − k )

n = M +1 
k =1
Derivando con respecto a {a k } , se tiene:
2
381
N
∑ aˆ l rhh (k , l ) = −rhh (k ,0 )
con k = 1, 2, L , N
(6)
l =1
Donde:
rhh ( k , l ) ≡
∞
∑
h d ( n − k ) hd ( n − l )
n = M +1
Con esto se calculan los {a k } .
Los parámetros {bk } se obtienen de la ecuación (4) haciendo h ( n ) = hd ( n ) y sustituyendo los valores
de {â k } obtenidos resolviendo (6):
bn = hd ( n ) +
N
∑ aˆ k hd (n − k )
con 0 ≤ n ≤ M
k =1
Por tanto los {â k } se obtienen por el método de mínimos cuadrados y los {bk } se obtienen por el de
aproximación de Padé, lo que se denomina método de Prony, el cual puede no ser muy efectivo al
estimar los {bk } porque no está basado en mínimos cuadrados.
En Matlab se puede usar la función prony (
)
que está basada en el método propuesto.
PRONY Prony's method for time-domain IIR filter design.
[B,A] = PRONY(H, NB, NA) finds a filter with numerator order NB,
denominator order NA, and having the impulse response in vector H. The IIR
382
filter coefficients are returned in length NB+1 and NA+1 row vectors B and A,
ordered in descending powers of Z. H may be real or complex.
Ejemplo:
Aproxime un filtro Butterworth de cuarto orden que tiene la función de transferencia
H d (z) =
4.8334 × 10 −3 ( z + 1 )
4
( z 2 − 1.3205 z + 0.6326 )( z 2 − 1.0482 z + 0.2959 )
por medio de un filtro todo polos empleando el método de Prony.
num = [ 0.0048 0.0193 0.0290 0.0193 0.0048 ]
den = [ 1.0000 − 2.3687 2.3126 − 1.0538 0.1872 ]
La respuesta al impulso deseada se muestra en la figura 208.
impz(num, den)
0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
0
5
10
15
20
25
30
35
40
Figura 208: Respuesta al impulso deseada del ejemplo.
La respuesta en frecuencia de este filtro se muestra en la figura 209.
383
freqz ( num, den )
M agnitud
1.5
1
0.5
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 209: Respuesta en frecuencia del filtro del ejemplo.
Cálculo de la aproximación al filtro por el método de Prony:
Suponiendo tres polos, se tiene:
NA = 3
NB = 0
[ B,A] = prony (impz ( num, den) , NB, NA )
B = 0.0048
A = [ 1.0000
− 2.5430
2.4181 − 0.8538 ]
Con esta escogencia se logra una respuesta al impulso y en frecuencia como se observa en las figuras
210 y 211:
384
Figura 210: Respuesta al impulso de la aproximación lograda con el programa prony( ) para N = 3 , M = 0 .
0.25
M agnitud
0.2
0.15
0.1
0.05
0
-4
-3
-2
-1
0
w(rad/s)
1
2
3
4
-3
-2
-1
0
w(rad/s)
1
2
3
4
angulo(rad)
4
2
0
-2
-4
-4
Figura 211: Respuesta en frecuencia de la aproximación lograda con prony( ) para N = 3 , M = 0 .
Con 10 coeficientes se tiene:
NA = 10
[ B,A] = prony (impz ( num, den) , NB, NA )
B = 0.0048
385
A = [ 1.0000 − 4.8980
− 13.0045
12.0672 − 19.9540 24.9177 − 24.8311 20.0872
6.4052 − 2.1445
0.3666]
En la figuras 212 y 213 se observa la respuesta al impulso y en frecuencia lograda para este caso:
Figura 212: Respuesta al impulso de la aproximación usando prony( ) para N = 10 , M = 0 .
0.8
M agnitud
0.6
0.4
0.2
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
Figura 213: Respuesta obtenida con N = 10 , M = 0 utlizando prony ( ).
Con tres coeficientes en el numerador y cinco en el denominador se tiene:
NA = 5
386
NB = 3
[ B,A] = prony (impz ( num, den) , NB, NA )
B = [ 0.0048
0.0176
A = [ 1.0000
− 2.7207
0.0225
3.2084
0.0104 ]
− 2.0021
0.6684
− 0.0991 ]
En este caso se logran la respuesta al impulso y en frecuencia mostradas en las figuras 214 y 215:
Figura 214: Respuesta al impulso obtenida mediante la aproximación de prony( ) para N = 5 , M = 3 .
M agnitud
1.5
1
0.5
0
-4
-3
-2
-1
0
w(rad/s )
1
2
3
4
-3
-2
-1
0
w(rad/s )
1
2
3
4
4
angulo(rad)
2
0
-2
-4
-4
387
Figura 215: Respuesta en frecuencia obtenida mediante la aproximación de prony( ) para N = 5 , M = 3 .
•
METODO DE SHANKS
Los {a k } se calculan con el método de mínimos cuadrados como se hizo antes, lo que produce los
{â k } que permite sintetizar el filtro todo polos.
1
H1 (z ) =
1+
N
∑ aˆ k
z −k
k =1
La respuesta al impulso de este filtro:
N
v( n ) = − ∑ aˆ k v( n − k ) + δ ( n ) con n ≥ 0
k =1
Usando este filtro para excitar un filtro todo ceros, ver figura 216:
H 2 (z) =
M
∑ bk
z −k
k =0
δ (n)
hd ( n )
v(n )
H1 (z )
H 2 (z)
Figura 216: Filtro todo polos en cascada con un filtro todo ceros.
hˆd ( n ) =
M
∑ bk v ( n − k )
k =0
Se define una secuencia de error:
388
ε ( n ) = hd ( n ) − hˆd ( n )
= hd ( n ) −
M
∑ bk v(n − k )
k =0
Por lo tanto los {bk } también se pueden determinar por el criterio de mínimos cuadrados:
∞
M


ε 2 = ∑  hd ( n ) − ∑ bk v ( n − k ) 

n = 0 
k =0
M
∑ bk rvv (k , l ) = rhv (l )
2
con l = 0, 1, L , M
k =0
En donde:
rvv ( k , l ) =
rhv ( k ) =
∞
∑ v(n − k ) v(n − l )
n=0
∞
∑ hd (n ) v(n − k )
n=0
Existe un método para el cálculo de la aproximación de la respuesta en frecuencia deseada
directamente en el dominio de la frecuencia utilizando el criterio de mínimos cuadrados y que se
implementa en Matlab con la función yulewalk (
).
YULEWALK Recursive filter design using a least-squares method.
[B,A] = YULEWALK(N,F,M) finds the N-th order recursive filter coefficients B
and A such that the filter:
B( z )
A( z )
=
b (0 ) + b (1) z −1 + b ( 2 ) z −2 + L + b ( M − 1) z − ( M −1)
1 + a (1) z −1 + a ( 2 ) z − 2 + L + a ( N − 1) z
(
− N −1
)
matches the magnitude frequency response given by vectors F and M. Vectors F
and M specify the frequency and magnitude breakpoints for the filter such
that PLOT(F,M) would show a plot of the desired frequency response. The
frequencies in F must be between 0.0 and 1.0, with 1.0 corresponding to half
389
the sample rate. They must be in increasing order and start with 0.0 and end
with 1.0.
Ejemplo:
Diseñar utilizando la función yulewalk un filtro pasabajas con frecuencia de corte de 0.1 y de supresión
de 0.2
N = 15
M =[1 1
F =[ 0
0.1
0]
0
0.2
1]
[ B,A] = yulewalk ( N,F,M )
B = [ 0.0036 − 0.0324
− 0.4985
0.1370 − 0.3574
0.7001 − 0.5844
0 .6262 − 0.7390
0.3367 − 0.1365
0.5106 0.0021
0.0376 − 0.0064 0.0005]
A = 1.0 e + 003 ×
[ 0.0010 − 0.0120 0.0687 − 0.2472 0.6253 − 1.1778 1.7060 − 1.9343
1.7301 − 1.2204 0.6733 − 0.2853 0.0898 − 0.0198 0.0027 − 0.0002 ]
La respuesta obtenida se muestra en la figura 217.
h = impz ( B, A)
freqz ( h )
390
M agnitude (dB )
50
0
-50
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.9
1
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
P has e (degrees )
0
-200
-400
-600
-800
-1000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Norm aliz ed A ngular Frequenc y (× π rads /s am ple)
Figura 217: Respuesta en frecuencia obtenida con yulewalk( ) para las especificaciones del ejemplo.
La función invfreqz (
)
de Matlab trabaja de manera similar a la función yulewalk (
).
Descargar