Далі йдеться про компенсацію CIC і не є загальним методом "спотворення". Але це прямолінійний спосіб "компенсувати" незмінне "спотворення". Якщо частотна характеристика відома, для компенсації може бути використана обернена частота. Такі приклади, як фільтр CIC, де слабкий фільтр може бути використаний через зменшену складність, згодом компенсуються ланцюгом сигналів. У цьому прикладі частотна характеристика відома і обернена може бути використана. Зауважте, що за допомогою багатошвидкісних фільтрів ви бажаєте використовувати "корисний" спектр лише після децимації.
Як правило, для компенсації CIC-фільтра зворотний відгук CIC-фільтрів може бути використаний для генерації компенсаційного фільтра. CIC має відповідь (див. Посилання [r2] або [r3])
Н( ω ) = ∣∣∣s i n ( ω D / 2 )s i n ( ω M/ 2)∣∣∣N
Де D - диференційована затримка, M - швидкість децимації, а N - порядок фільтрів (кількість каскадних фільтрів). Зворотне можна вказати як
Н( ω ) = ∣∣∣s i n ( ω M/ 2)s i n ( ω D / 2 )∣∣∣N
Як тільки ми отримаємо частотну характеристику компенсаційного фільтра, ми можемо просто вибрати довжину фільтра FIR, яку ми бажаємо. Тривалість FIR залежить від застосування. Очевидно, що чим довше фільтр FIR, тим краща компенсація.
Далі наведені сюжети цієї прямої компенсації.
Далі йде код Python для створення частотних характеристик та графіків.
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')
Див. [R1] про інші підходи та s i n c- 1 наближення.
[r1] Altera, "Розуміння фільтрів компенсації CIC"
[r2] Р. Ліонс, "Розуміння цифрової обробки сигналів", 2-е видання, Прентіс Холл, річка Верхнє сідло, Нью-Джерсі, 2004
[r3] Р. Ліонс, "Розуміння каскадних фільтруючих гребінців"