Lo siguiente aborda la compensación CIC y no es una técnica general de "distorsión". Pero es un método directo para "compensar" la "distorsión" no variable. Si se conoce la respuesta de frecuencia, se puede usar el inverso de la frecuencia para compensar. Ejemplos como el filtro CIC, donde se podría usar un filtro deficiente debido a la complejidad reducida, se compensan más adelante con la cadena de señal. En este ejemplo, la respuesta de frecuencia se conoce y se puede usar el inverso. Tenga en cuenta que con los filtros de velocidad múltiple solo desea utilizar el espectro "utilizable" después de la aniquilación.
En general, para compensar un filtro CIC, se puede usar el inverso de la respuesta de los filtros CIC para generar el filtro de compensación. El CIC tiene una respuesta de (ver referencia [r2] o [r3])
H(ω)=∣∣∣sin(ωD/2)sin(ωM/2)∣∣∣N
Donde D es el retardo diferenciado, M es la tasa de diezmado y N es el orden del filtro (número de filtros en cascada). El inverso se puede especificar como
H(ω)=∣∣∣sin(ωM/2)sin(ωD/2)∣∣∣N
Una vez que tenemos la respuesta de frecuencia del filtro de compensación, simplemente podemos elegir la longitud del filtro FIR que deseamos. La longitud del FIR es específica de la aplicación. Obviamente, cuanto más largo sea el filtro FIR, mejor será la compensación.
Las siguientes son tramas de esta compensación directa.
El siguiente es el código de Python para crear las respuestas de frecuencia y los gráficos.
import numpy as np
from numpy import sin, abs, pi
import pylab
D = 1; M = 7; N = 3
Hfunc = lambda w : abs( (sin((w*M)/2)) / (sin((w*D)/2.)) )**N
HfuncC = lambda w : abs( (sin((w*D)/2.)) / (sin((w*M)/2.)) )**N
w = np.arange(1024) * pi/1024
G = (M*D)**N
H = np.array(map(Hfunc, w))
Hc = np.array(map(HfuncC, w))
# only use the inverse (compensation) roughly to the first null.
Hc[int(1024*pi/M/2):] = 1e-8
plot(w, 20*log10(H/G))
plot(w, 20*log10(Hc*G))
grid('on')
Ver [r1] para otros enfoques y aproximación .sinc−1
[r1] Altera, "Comprender los filtros de compensación CIC"
[r2] R. Lyons, "Comprender el procesamiento de señales digitales", 2ª ed., Prentice Hall, Upper Saddle River, Nueva Jersey, 2004
[r3] R. Lyons, "Comprender los filtros de peine integradores en cascada"