Poniższe informacje dotyczą kompensacji CIC i nie stanowią ogólnej techniki „zniekształcania”. Jest to jednak prosta metoda „kompensacji” niezmiennego „zniekształcenia”. Jeśli znana jest odpowiedź częstotliwościowa, można zastosować odwrotność częstotliwości w celu kompensacji. Przykłady takie jak filtr CIC, w których można zastosować filtr słabej jakości ze względu na zmniejszoną złożoność, są później kompensowane w łańcuchu sygnałowym. W tym przykładzie odpowiedź częstotliwościowa jest znana i można zastosować odwrotność. Uwaga: w przypadku filtrów o wielu prędkościach po zdziesiątkowaniu chcesz używać widma „użytecznego”.
Ogólnie, aby skompensować filtr CIC, odwrotność odpowiedzi filtrów CIC może być wykorzystana do wygenerowania filtra kompensacji. CIC ma odpowiedź (patrz odnośnik [r2] lub [r3])
H.( ω ) = ∣∣∣s i n ( ω D / 2 )s i n ( ω M/ 2)∣∣∣N.
Gdzie D jest opóźnieniem różnicowym, M jest szybkością decymacji, a N jest kolejnością filtrów (liczba filtrów kaskadowych). Odwrotność można określić jako
H.( ω ) = ∣∣∣s i n ( ω M/ 2)s i n ( ω D / 2 )∣∣∣N.
Po uzyskaniu odpowiedzi częstotliwościowej filtra kompensacyjnego, możemy po prostu wybrać pożądaną długość filtra FIR. Długość FIR zależy od aplikacji. Oczywiście im dłuższy filtr FIR, tym lepsza kompensacja.
Poniżej przedstawiono wykresy tej prostej kompensacji.
Poniżej znajduje się kod Pythona do tworzenia odpowiedzi częstotliwości i wykresów.
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')
y : i n c- 1
[r1] Altera, „Zrozumienie filtrów kompensacyjnych CIC”
[r2] R. Lyons, „Understanding Digital Signal Processing”, wyd. 2, Prentice Hall, Upper Saddle River, New Jersey, 2004
[r3] R. Lyons, „Understanding Cascaded Integrator Comb Filters”