Você está na página 1de 10

LABORATORIO DE SEÑALES Y SISTEMAS

PRÁCTICA # 3
“Filtros FIR y Convolución de señales discretas”

OBJETIVOS:

 Muestrear una señal continua con ruido para su procesamiento digital mediante
sistemas discretos.
 Aplicar filtros de respuesta al impulso finito a un sistema para la eliminación de
componentes indeseadas.
 Expresar la salida del sistema en función de la respuesta impulso mediante el uso
de la convolución.

MARCO TEÓRICO:

Filtros FIR

Un filtro es un sistema diseñado para remover algunas componentes o modificar las


características de una señal [1].

Los Filtros FIR (Respuesta al impulso finito) son sistemas donde cada muestra filtrada es
la suma de un número finito muestras de la secuencia de entrada [1].

En la Figura 3.1 se muestra un sistema discreto cuyo proceso es transformar una


secuencia llamada señal de entrada en otra secuencia llamada señal de salida. En la
práctica # 2 muestreo, comenzamos estudiando los sistemas donde la señal de entrada
es una señal continua en el tiempo y la salida es una señal discreta en el tiempo. En esta
práctica vamos a estudiar los sistemas discretos en el tiempo llamados Filtros FIR [1].

Figura 3.1 Diagrama de bloques de un sistema discreto [1].

Filtro de media móvil

Una simple transformación de una señal discreta en el tiempo es calcular la media móvil
o promedio móvil de dos o más números consecutivos de la secuencia de entrada,
formando una nueva secuencia del promedio de los valores. El filtro FIR es una
generalización del promedio móvil. El promedio se usa generalmente cuando los datos
fluctúan y se deben suavizar antes de la interpretación [1].

1
LABORATORIO DE SEÑALES Y SISTEMAS

Consideremos un simple promedio móvil como un ejemplo de un sistema que procesa


una secuencia de entrada y produce una secuencia de salida. Por ejemplo, considere el
promedio de tres puntos: cada valor de la secuencia de salida es la suma de tres valores
consecutivos de la secuencia de entrada dividido para tres [1].

Si se aplica el algoritmo del ejemplo a la señal mostrada en la Figura 3.2, se puede


calcular una nueva secuencia llamada 𝑦[𝑛], donde la salida es el operador promedio [1].

Figura 3.2 Secuencia de entrada [1].

La secuencia de la Figura 3.2 es un ejemplo de una señal de longitud finita. El soporte es


el conjunto de valores, en los cuales la secuencia no es cero; en este caso, el soporte de
la secuencia es el intervalo finito −1 ≤ 𝑛 ≤ 3. Un promedio de 3 puntos se puede
calcular usando las siguientes ecuaciones [1]:

1
𝑦[0] = (𝑥[0] + 𝑥[−1] + 𝑥[−2])
3

1
𝑦[1] = (𝑥[1] + 𝑥[0] + 𝑥[−1])
3

Al generalizar la ecuación de entrada y salida obtenemos:

1 (3.1)
𝑦[𝑛] = (𝑥[𝑛] + 𝑥[𝑛 − 1] + 𝑥[𝑛 − 2])
3

La ecuación dada en 3.1 es llamada ecuación de diferencia. Esta es una descripción


completa de un sistema FIR ya que se usa (3.1) para calcular la señal de salida para todos
los índices −∞ ≤ 𝑛 ≤ ∞. Para la entrada de la Figura 3.2, el resultado es la señal 𝑦[𝑛]
tabulada como se indica a continuación [1]:

2
LABORATORIO DE SEÑALES Y SISTEMAS

n n<-2 -2 -1 0 1 2 3 4 5 n>5
x[n] 0 0 -1 2 4 6 4 0 0 0
y[n] 0 0 -0.3 0.33 1.67 4 4.67 3.33 1.33 0

Note que 𝑦[𝑛] tiene un soporte finito −1 ≤ 𝑛 ≤ 5, la secuencia de salida es mostrada


en la Figura 3.3, observe que la salida es más larga y suavizada que la secuencia de
entrada. Este comportamiento es característico de los filtros FIR de media móvil [1].

Figura 3.3 Secuencia de salida [1].

Un filtro que usa solo los valores presentes y pasados de la entrada es llamado un filtro
causal, lo que implica que la causa no procede al efecto correspondiente. Sin embargo,
un filtro que usa valores futuros de la entrada es llamado no causal. Sistemas no
causales no pueden ser implementados en aplicaciones en tiempo real porque la
entrada no está disponible cuando la salida es calculada [1].

Filtro FIR general

Los filtros FIR causales tienen una ecuación de diferencia de la forma [1]:
𝑀

𝑦[𝑛] = ∑ 𝑏𝑘 𝑥[𝑛 − 𝑘] (3.2)


𝑘=0

Cuando 𝑀 = 2 y 𝑏𝑘 = 1/3 para 𝑘 = 0,1,2, se obtiene un caso especial de un filtro de


media móvil de 3 puntos mostrados en la ecuación (3.1). Si los coeficientes de 𝑏𝑘 no son
los mismos, (3.2) se define como un promedio móvil ponderado de 𝑀 + 1 muestras [1].

En (3.2) no se involucra valores futuros de la entrada, el sistema es causal, y la salida no


comienza antes de que la entrada sea cero. La Figura 3.4 muestra el filtro FIR causal que
usa 𝑥[𝑛] y los últimos 𝑀 puntos para calcular la salida. Además, la entrada tiene un
soporte finito (0 ≤ 𝑙 ≤ 𝑁 − 1), habrá un intervalo de 𝑀 muestras al principio, donde el

3
LABORATORIO DE SEÑALES Y SISTEMAS

cálculo incluirá menos de 𝑀 + 1 muestras distintas de cero cuando la ventana


deslizante del filtro se enganche con la entrada, y un intervalo de 𝑀 muestras al final
donde la ventana deslizante del filtro se desconecta de la secuencia de entrada [1].

Figura 3.4 Operación de un filtro FIR causal de orden M [1].

El parámetro 𝑀 es el orden del filtro FIR. El número de coeficientes del filtro es también
llamado la longitud del filtro 𝐿. La longitud es mayor que el orden 𝐿 = 𝑀 + 1 [1].

Secuencia de impulso unitario

El impulso unitario es una secuencia simple que solo toma un valor diferente de cero
cuando 𝑛 = 0 [1].

1, 𝑛=0
𝛿[𝑛] = {
0, 𝑛≠0 (3.3)

La secuencia de impulso unitario puede ser desplazada a la izquierda o la derecha por


un entero 𝑛0 , como se muestra en (3.4) [1].

1, 𝑛 = 𝑛0
𝛿[𝑛 − 𝑛0 ] = {
0, 𝑛≠0 (3.4)

Figura 3.5 Representación de una secuencia de impulso unitario [1].

4
LABORATORIO DE SEÑALES Y SISTEMAS

Se puede desplazar en la escala del tiempo o amplitud la secuencia de impulsos, como


una combinación lineal para formar una nueva secuencia [1]:

𝑥[𝑛] = 2𝛿[𝑛] + 4𝛿[𝑛 − 1] + 6𝛿[𝑛 − 2] + 4𝛿[𝑛 − 3] + 2𝛿[𝑛 − 4] (3.5)

La generalización a lo anterior es la expansión de la secuencia como se muestra en


(3.6) [1].

𝑥[𝑛] = ∑ 𝑥[𝑘]𝛿[𝑛 − 𝑘]
𝑘
(3.6)
= ⋯ + 𝑥[−1]𝛿[𝑛 + 1] + 𝑥[0]𝛿[𝑛] + 𝑥[1]𝛿[𝑛 − 1] + 𝑥[2]𝛿[𝑛 − 2]

Respuesta al impulso unitario

Cuando la entrada a un filtro FIR es 𝑥[𝑛] = 𝛿[𝑛], la salida del filtro es la respuesta al
impulso unitario denotado por 𝑦[𝑛] = ℎ[𝑛], tal que: [1].
𝑀

ℎ[𝑛] = ∑ 𝑏𝑘 𝛿[𝑛 − 𝑘] (3.7)


𝑘=0

Figura 3.6 Diagrama de bloques de un filtro FIR [1].

Convolución y filtros FIR

Una expresión general de la salida del filtro FIR (3.2), puede ser expresada en términos
de la respuesta al impulso. Donde los coeficientes en (3.2) son idénticos a los valores de
la respuesta al impulso, pudiendo reemplazar 𝑏𝑘 en (3.2) por ℎ[𝑘]:
𝑀

𝑦[𝑛] = ∑ ℎ[𝑘]𝑥[𝑛 − 𝑘] (3.8)


𝑘=0

Cuando la relación entre la entrada y la salida del filtro FIR es expresado en términos de
la entrada y la respuesta al impulso como se muestra en (3.8), esto es llamado suma de
convolución finita, donde la salida puede ser obtenida como la convolución de las
secuencias 𝑥[𝑛] y ℎ[𝑛] [1].

5
LABORATORIO DE SEÑALES Y SISTEMAS

La operación de convolución es conmutativa en el sentido de que es irrelevante cuál de


los dos componentes se refleje y desplace [2].
𝑀 𝑀

𝑦[𝑛] = ∑ ℎ[𝑘]𝑥[𝑛 − 𝑘] = ∑ 𝑥[𝑘]ℎ[𝑛 − 𝑘] (3.9)


𝑘=0 𝑘=0

Para realizar la convolución entre dos secuencias discretas se puede utilizar el método
de la suma por columnas como se muestra en el siguiente ejemplo [2]:

𝑥[𝑛] = {4,1,3}

ℎ[𝑛] = {2,5,0,4}

Índice de
0 1 2 3
secuencia
h[n] 2 5 0 4
x[n] 4 1 3
8 20 0 16
2 5 0 4
6 15 0 12
y[n] 8 22 11 31 4 12

La señal de salida luego de la convolución entre 𝑥[𝑛] y ℎ[𝑛] es la siguiente:

𝑦[𝑛] = {8,22,11,31,4,12}

ACTIVIDADES A DESARROLLAR:

EJERCICIO 1: FILTRADO DE UNA SECUENCIA DE RUIDO

Usando Matlab cree una secuencia de entrada 𝑥[𝑛] compuesta de una distribución
1 1
aleatoria uniforme 𝑥 ∈ [− 2 , 2] para valores de 0 ≤ 𝑛 ≤ 40 y cero para otros casos.

a) Filtro de media móvil de 3 puntos.


b) Filtro de media móvil de 7 puntos.

6
LABORATORIO DE SEÑALES Y SISTEMAS

Figura 3.7 Señal discreta y señal filtrada de 3 y 7 puntos del filtro promedio.

Sugerencia: Se recomienda utilizar la función filter

𝑦 = 𝑓𝑖𝑙𝑡𝑒𝑟(𝑏, 𝑎, 𝑥), filtra los datos de entrada 𝑥 usando una función de transferencia
racional definida por los coeficientes del numerador y denominador 𝑏 y 𝑎.

Por ejemplo:

𝑦(𝑛) = 1/𝑤𝑖𝑛𝑑𝑜𝑤𝑆𝑖𝑧𝑒(𝑥(𝑛) + 𝑥(𝑛 − 1) + ⋯ . 𝑥(𝑛 − 𝑤𝑖𝑛𝑑𝑜𝑤𝑆𝑖𝑧𝑒 − 1))).

 Para una ventana de 5, el calculo de los coeficientes del numerador y


denominador de la función de transferencia racional son:
windowSize = 5;
b = (1/windowSize)*ones(1,windowSize);
a = 1;
y = filter(b,a,x);

EJERCICIO 2: ILUSTRACIÓN DEL FILTRADO FIR

1. El usuario debe ingresar la longitud del filtro FIR (L).

2. Genere la siguiente señal continua:


a) 𝑥(𝑡) = 1.14𝑡
Definida en el tiempo 𝑡 = 0: 0.001: 6

7
LABORATORIO DE SEÑALES Y SISTEMAS

3. Genere la señal de ruido:


a) 𝑟𝑢𝑖𝑑𝑜(𝑡) = 𝐴 ∗ cos(2 ∗ 𝑝𝑖 ∗ 𝑡)
Definida en el tiempo 𝑡 = 0: 0.001: 6, con amplitud 𝐴 = 1/2.

4. Sume la señal continua con el ruido generado 𝑦(𝑡).

5. Genere la señal discreta 𝑦[𝑛] tomando una muestra cada 90 datos de la señal
𝑦(𝑡).

6. Genere el filtrado de la señal discreta 𝑦[𝑛], para lo cual debe implementar el


siguiente filtro FIR de media móvil usando lazos for.
𝑀

𝑦[𝑛] = ∑ 𝑏𝑘 𝑥[𝑛 − 𝑘]
𝑘=0

7. Mostrar las siguientes gráficas como se observa en las Figuras 3.8 y 3.9, para las
longitudes del filtro 𝐿 = 6 y 𝐿 = 11

Figura 3.8 Señales continuas.

8
LABORATORIO DE SEÑALES Y SISTEMAS

Figura 3.9 Señal discreta y señal filtrada.

EJERCICIO 3: CONVOLUCIÓN DE DOS SEÑALES

En Matlab realizar el código para determinar la convolución de dos señales discretas, a


partir de una señal de entrada y una respuesta al impulso.

Figura 3.10 Señales discretas x[n], h[n] y y[n].

9
LABORATORIO DE SEÑALES Y SISTEMAS

Para poder determinar los índices de las componentes en tiempo discreto de la salida, se debe
recurrir a la siguiente función conv_m creada en Matlab que luego será llamada en su programa
principal para realizar la operación de convolución de señales discretas.

PREGUNTAS A CONTESTAR:

1. Dado los coeficientes del filtro 𝑏𝑘 = {2 , −1, −1, 3} , encuentre 𝑦[𝑛] en función
de 𝑥[𝑛]
2. Determine y grafique la respuesta impulso del filtro
10

𝑦[𝑛] = ∑(𝑘 − 2)𝑥[𝑛 − 𝑘]


𝑘=0

3. Use la convolución para calcular la salida 𝑦[𝑛] para un filtro de longitud 4,


sabiendo la respuesta impulso y grafique:
ℎ[𝑛] = 𝛿[𝑛] − 𝛿[𝑛 − 1] + 2𝛿[𝑛 − 2] − 2𝛿[𝑛 − 3]

4. El filtro FIR está dado por los coeficientes {𝑏𝑘 } = {1,0,2,0, −1,0,2}.
a) Si la señal de entrada al filtro es 𝑥[𝑛] = −7𝛿[𝑛 − 3], determine la salida
𝑦[𝑛], y realice un gráfico de la señal de salida.
5. Si los coeficientes del filtro FIR son {𝑏𝑘 } = {0,1,0,1,1}:
a) Realice un gráfico de la señal de salida cuando la señal de entrada es 𝑥[𝑛] =
0, 𝑛 < 0
𝜇[𝑛] = {
1, 𝑛 ≥ 0
b) Determine la longitud y el orden del filtro.

BIBLIOGRAFÍA:

[1] J. H. McClellan, R. W. Schafer y M. A. Yoder, Signal Processing First, Pearson , 1st


Edición.

[2] J. G. Proakis y D. G. Manolakis, Tratamiento digital de señales, Madrid: Pearson,


Cuarta Edición.

10

Você também pode gostar