Компенсатор FIR-фильтра при использовании прореживающего фильтра CIC


10

Какой FIR-фильтр больше подходит для компенсации узкополосного сигнала с помощью каскадного интегрально-гребенчатого (CIC) фильтра , чтобы компенсировать частотную характеристику CIC?



да, тот ...
Аугусто Зебадуа

Ответы:


3

На ваш вопрос нет однозначного ответа: как и в случае с любой конструкцией фильтра, это зависит от ваших требований. Как довольно хорошо описано на странице Википедии , фильтры CIC (cascaded-integrator-comb) состоят из нескольких пар ступеней интегратора и гребенки (отсюда и название). Каждый каскад интегратора имеет совокупный импульсный отклик, который эквивалентен фильтру вагон-автобуса (то есть с прямоугольным частотным откликом). Частотная (амплитудная) характеристика вагона имеет форму, напоминающую функцию sinc, поэтому общая структура CIC будет иметь амплитудную характеристику, которая выглядит как функция sinc, взятая для некоторой степени , где N - число ступеней гребенки интегратора.NN

Однако не так много ручек для настройки в зависимости от требований конкретного приложения. Вы можете настроить отношение прореживания / интерполяции структуры CIC, задержку гребенки и количество ступеней, но вы все еще застряли с синусоидальной частотной характеристикой, которая не особенно идеальна, так как она не ровная по основная доля и имеет относительно высокие боковые лепестки. Таким образом, для CIC обычно следует другой фильтр, который «очищает» общий ответ.

Суть в том, что вам нужно от любого компенсирующего фильтра, который вы установите после CIC, будет определяться вашим приложением. Что действительно важно, так это реакция всего каскада, который вы бы ограничивали в зависимости от потребностей вашего приложения. Там нет конкретного фильтра, который "наиболее подходит".


Где вы написали «один с прямоугольной частотной характеристикой», вы не имеете в виду «один с прямоугольной импульсной характеристикой?»
nibot

Да, ты прав. Спасибо за указание на ошибку.
Джейсон Р

4

Был похожий вопрос, https://dsp.stackexchange.com/a/1551/306 , и ниже приводится часть ответа из другого поста.

Как правило, чтобы компенсировать фильтр CIC, обратная реакция фильтра CIC может использоваться для генерации фильтра компенсации. CIC имеет ответ 2

ЧАС(ω)знак равно|sяN(ωD/2)sяN(ωM/2)|N

Где D - это задержка дифференцирования, M - скорость прореживания, а N - порядок фильтров (количество каскадных фильтров). Обратное можно указать как

ЧАС(ω)знак равно|sяN(ωM/2)sяN(ωD/2)|N

Получив частотный отклик компенсационного фильтра, мы можем просто выбрать желаемую длину КИХ-фильтра. Длина РПИ зависит от приложения. Очевидно, что чем дольше КИХ-фильтр, тем лучше компенсация.

Ниже приведены графики этой прямой компенсации.

Ниже приведен код Python для создания частотных характеристик и графиков.

импорт numpy как np от numpy импорт 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')

sяNс-1

1 Альтера, «Понимание компенсационных фильтров CIC»

2 Р. Лайонс, «Понимание цифровой обработки сигналов», 2-е изд., Прентис Холл, Аппер-Седл-Ривер, Нью-Джерси, 2004


Вы показываете желаемую частотную характеристику в фильтре компенсации ... но как вы получаете коэффициенты фильтра, которые производят фильтр, который приближает эту характеристику? Я думаю, что это то, что задает вопрос.
нибот

0

ISOP (интерполированный полином второго порядка) часто используются для компенсации падения полосы пропускания CIC.

Ответ Matlab этого фильтра можно показать с помощью:

alpha = 0.01 ;
b     = [1, alpha, -alpha] ; 
h     = mfilt.firsrc(1,1,b)
freqz( b )

Выбор альфы для ваших требований является сложной частью. В худшем случае симуляция грубой силы преформы преобразуется с 0 до 0,5 с шагом 0,001, находя альфа, что приводит к лучшей компенсации спада. Определение наилучшей компенсации понижения как минимальной ошибки на границе полосы пропускания.

Для эффективности этот фильтр обычно размещается на более низкой скорости передачи данных, перед CIC для интерполяции и после CIC для прореживания.


См. Dsp.stackexchange.com/questions/19584/… для другой интерпретации / объяснения этого подхода компенсации.
Дэн Бошен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.