Capı́tulo 5
Filtros de primer orden
Nombre del estudiante Calificación
Xochitl Berenice Barrios Capuchino
1. Menciona tres fenómenos que puedan ser considerados como filtros para señales de
Audio, distintos a los que se contemplan en la sección de Introducción.
a) Distorsión armónica: es un fenómeno no lineal que produce la generación de armónicos
adicionales en una señal de audio. Puede modelarse como un filtro no lineal que
introduce armónicos específicos en la señal de entrada, alterando su timbre y carácter
tonal.
b) Efectos de modulación: estos introducen cambios en la frecuencia, fase o amplitud de
una señal de audio para crear efectos espaciales o de movimiento y pueden modularse
como filtros con parámetros variables en el tiempo que modifican la señal de entrada
de manera dinámica.
c) Comprensión dinámica: es un proceso que modifica la amplitud de una señal de audio
según ciertos criterios. Puede modelarse como un filtro no lineal que ajusta la amplitud
de la señal en función de su nivel de intensidad, reduciendo la brecha entre picos y las
partes más suaves de la señal.
2. Describe las propiedades mas deseables que debe tener un filtro para su implementación
en tiempo real.
a) Tiempo de respuesta rápido: El filtro debe tener un tiempo de respuesta rápido para
procesar las señales en tiempo real sin introducir retrasos perceptibles.
b) Estabilidad: El filtro debe ser estable para evitar oscilaciones o divergencias en la señal
de salida, lo que garantiza un comportamiento predecible y controlado.
c) Bajo retardo: El filtro debe introducir un retardo mínimo en la señal de salida para
mantener la coherencia temporal y evitar problemas de sincronización en tiempo real.
d) Eficiencia computacional: El filtro debe ser computacionalmente eficiente para
ejecutarse en tiempo real sin consumir recursos excesivos del sistema.
e) Flexibilidad y ajustabilidad: El filtro debe permitir ajustar sus parámetros en tiempo real
para adaptarse a diferentes condiciones de señal y requisitos de procesamiento.
f) Facilidad de implementación: El filtro debe ser fácil de implementar y mantener, con
una estructura clara y modular que facilite su integración en sistemas en tiempo real.
3. Considere el filtro implementado en esta práctica con un polo 𝑎 = 𝑠𝑝, donde 𝑝 representa
la magnitud del polo. El factor de compensación de ganancia 𝑏 = 1 − 𝑝 elegido en nuestra
implementación asegura que la ganancia máxima no sobrepasa la unidad. Sin embargo,
conforme 𝑝 se acerca a uno, la banda de paso del filtro se vuelve muy angosta, por lo cual
la mayor parte del espectro es atenuada, restando una gran cantidad de energía (volumen)
a la señal de salida. Una alternativa es controlar la forma de la curva de compensación de
manera que en un extremo se tenga una compensación nula (b = 1), lo que puede ocasionar
saturación o distorsión, y en el otro extremo se tenga una compensación completa (𝑏 = 1 −
𝑝) con la consecuente pérdida de energía. Una manera de lograr esto es eligiendo b de la
siguiente manera:
𝑏 = (1 − 𝑝)𝑠
donde 𝑠 es el parametro de compensacion de ganancia, el cual vara desde 𝑠 = 0 (sin
compensacion) hasta s = 1 para una compensación completa. Modifique la clase Filtro1P
para agregar el parámetro de compensación de ganancia, con sus respectivas funciones set
y get para manipularlo. Incorpore al programa de prueba un mecanismo de interfaz para
variar este parámetro y encuentre un valor que produzca buenos resultados sin llegar a
distorsionar seriamente la señal de salida cuando la magnitud p del polo se acerca a la
unidad.
CODIGO PARA INCREMENTAR O DISMINUIR EL VALOR DE S
R= El valor de S que produce buenos resultados se encuentra entre 0.65 y 0.7
4) Reto
a) Muestre que el factor de ganancia para una ganancia máxima unitaria es 𝑏 = (1 − 𝑝)/2 tanto
para el caso de un filtro pasa bajas como un filtro pasa altas:
Caso 1) Filtro pasa bajas
Su función de transferencia con un polo y un cero es:
𝑏(𝑧 − 𝑐)
𝐻(𝑧) =
𝑧 − 𝑠𝑝
Tomando 𝑐 = −1, obtenemos:
𝑏(𝑧 + 1)
𝐻(𝑧) =
𝑧 − 𝑠𝑝
Para una ganancia máxima unitaria, queremos que el módulo de la función de transferencia sea 1,
cundo 𝑧 = 1, es decir |𝐻(𝑧)| = 1, entonces
𝑏(1 + 1)
𝐻(1) = =1
1 − 𝑠𝑝
2𝑏
=1
1 − 𝑠𝑝
Como la ganancia es máxima, el enumerados debe ser igual al denominador, por lo tanto:
2𝑏 = 1 − 𝑠𝑝
1−𝑠𝑝
b= 2
por lo tanto, para un filtro pasa bajas con ganancia máxima unitaria, el factor de ganancia es
1−𝑝
b= 2
ya que, 𝑠 tomaría un signo positivo en el caso del filtro pasa bajas.
Caso 2) Filtro pasa altas
Su función de transferencia con un polo y un cero es:
𝑏(𝑧 − 𝑐)
𝐻(𝑧) =
𝑧 − 𝑠𝑝
Tomando 𝑐 = 1, 𝑐 = −𝑠 , 𝑠 = −1 y para una ganancia máxima unitaria, queremos que el módulo
de la función de transferencia sea 1, cuando 𝑧 = −1, es decir |𝐻(𝑧)| = 1, entonces:
𝑏((−1) − (1))
𝐻(−1) =
(−1) − 𝑠𝑝
−2𝑏
=1
(−1) − 𝑠𝑝
Y en el caso del filtro pasa altas el valor de s es negativo, por lo tanto:
−2𝑏
=1
(−1) + 𝑝
−2𝑏 = −1 + 𝑝
−1 + 𝑝
𝑏=
−2
1−𝑝
𝑏=
2
b) Muestre que la ecuación en diferencias mediante la que se puede implementar el filtro es:
y[n] = py[n − 1] + b(x[n] − cx[n − 1])
𝑏(𝑧−𝑐)
Partiendo de: 𝐻(𝑧) = 𝑧−𝑠𝑝
Sabiendo que:
𝑦(𝑧) 𝑏(𝑧−𝑐)
𝐻(𝑧) = =
𝑥(𝑧) 𝑧−𝑠𝑝
Multiplicando ambos lados por 𝑧 −1 , obtenemos:
𝑦(𝑧) 𝑏−𝑏𝑐𝑧 −1
𝑥(𝑧)
= 1−𝑠𝑝𝑧 −1
y(z)(1 − 𝑠𝑝𝑧 −1 ) = 𝑥(𝑧)(𝑏 − 𝑏𝑐𝑧 −1 )
y(z)−𝑦(𝑧)𝑠𝑝𝑧 −1 ) = 𝑥(𝑧)𝑏 − 𝑏𝑐 𝑥(𝑧)𝑧 −1 )
aplicando transformada inversa, obtenemos y tomando s positivo:
𝑦[𝑛] − 𝑝𝑦[𝑛] = 𝑏𝑥[𝑛] − 𝑏𝑐𝑥[𝑛 − 1]
Despejando y[n]
𝑦[𝑛] = 𝑝𝑦[𝑛] + 𝑏𝑥[𝑛] − 𝑏𝑐𝑥[𝑛 − 1]
c) Implemente este filtro como una nueva UGen y compare, de manera cualitativa, su desempeño
con respecto al filtro Filtro1P
Filtro 2P Filtro 1P
El filtro implementado con una ecuación de diferencias nos permite poder ajustar múltiples
parámetros como lo es p, b y c, en comparación del filtro anterior, de una forma más flexible y nos
ayuda a poder tener un mejor control sobre el filtrado de la señal. En las imágenes anteriores se
muestra la implementación de cada filtro y podemos ver que no se resalta un cambio notable en la
señal dentro de los mismos parametros.
Conclusiones:
Durante esta práctica, se han abordado conceptos fundamentales relacionados con el diseño e
implementación de filtros en tiempo real para el procesamiento de señales. Se ha explorado la
ecuación en diferencias como modelo matemático para la implementación de filtros y se han
aplicado estos conceptos en el desarrollo de un filtro utilizando la biblioteca Beads en Processing.
A través de las actividades realizadas, se ha logrado comprender la importancia de propiedades
como la estabilidad, eficiencia computacional, tiempo de respuesta y flexibilidad en la
implementación de filtros de primer orden para aplicaciones en tiempo real. Se ha puesto en
práctica la creación de un filtro personalizado y se ha explorado cómo ajustar sus parámetros para
obtener diferentes respuestas de filtrado en tiempo real.
Los objetivos planteados al inicio de la práctica, que incluían comprender la ecuación en diferencias,
implementar un filtro en Processing y explorar sus propiedades deseables, ha servido para obtener
una mejor comprensión del tema. Se ha logrado una comprensión más profunda de los filtros de
primer orden y se ha adquirido experiencia práctica en su implementación y ajuste en sus
parámetros.