使用级联积分梳状(CIC)滤波器抽取窄带信号时,哪种FIR滤波器更适合补偿CIC频率响应?

评论

您是说en.wikipedia.org/wiki/Cascaded_integrator-comb_filter吗?

是的,那个...

#1 楼

您的问题没有唯一的答案:与任何滤波器设计问题一样,这取决于您的要求。正如在Wikipedia页面上很好地描述的那样,CIC(级联积分器梳)滤波器由许多对积分器和梳齿级组成(因此得名)。每个积分梳齿级都有一个总的冲激响应,它相当于一个箱式滤波器(即一个具有矩形频率响应的滤波器)。棚车的频率(幅度)响应具有类似于Sinc函数的形状,因此整个CIC结构将具有一个幅度响应,看起来像对某些功率$ N $采取的Sinc函数,其中$ N $是积分器的数量-comb阶段。

但是,没有很多旋钮可以根据特定于应用程序的要求进行调整。您可以调整CIC结构的抽取/内插比,梳状延迟和级数,但仍会遇到类似Sinc的频率响应,这并不是特别理想,因为它在整个频率范围内并不平坦主瓣,具有较高的旁瓣。因此,通常在CIC之后是另一个过滤器,它“清理”了总体响应。

问题:在CIC之后放置的任何补偿滤波器中需要的是由您的应用程序定义。真正重要的是整体级联的响应,您将根据应用程序的需求对其进行约束。没有“最合适”的特定过滤器。

评论


$ \ begingroup $
在写“具有矩形频率响应的矩形”时,您的意思不是“具有矩形脉冲响应的矩形吗?”。
$ \ endgroup $
–nibot
2012年10月12日20:47

$ \ begingroup $
是的,您是对的。感谢您指出错误。
$ \ endgroup $
–Jason R
2012-10-14 18:42

#2 楼

还有一个类似的问题,https://dsp.stackexchange.com/a/1551/306,以下是另一篇文章的一部分答案。

通常,为了补偿CIC CIC滤波器响应的倒数
可用于生成补偿滤波器。 CIC的响应为2

$$
H(\ omega)= \ left | \ frac {sin(\ omega D / 2)} {sin(\ omega M / 2)} \ right | ^ N
$$

其中D是微分延迟,M是抽取率,N是滤波器的阶数(级联滤波器的数量)。逆可以指定为

$$
H(\ omega)= \ left | \ frac {sin(\ omega M / 2)} {sin(\ omega D / 2)} \ right | ^ N
$$

一旦我们有了
频率补偿滤波器的响应,我们可以简单地选择所需的FIR滤波器的长度。 FIR的长度是特定于应用程序的。显然,FIR滤波器越长,补偿越好。

以下是这种直接补偿的图。




以下是创建频率的Python代码


从numpy导入numpy作为np
导入sin,abs,pi
导入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')




有关其他方法和$ sinc ^ {-1} $近似值1,请参见Altera,“了解CIC补偿滤波器”,

1 Altera, “了解CIC补偿滤波器”

2 R. Lyons,“了解数字信号处理”,
第二版,新泽西州上萨德尔河Prentice Hall,2004年,

评论


$ \ begingroup $
您显示了补偿滤波器中所需的频率响应...但是如何获得产生近似于该响应的滤波器的滤波器系数?我认为这就是问题所在。
$ \ endgroup $
–nibot
2012年10月12日20:49



#3 楼

ISOP(内插二阶多项式)通常用于补偿CIC通带压降。

该滤波器的Matlab响应可使用以下方式显示: br />根据需要选择Alpha是棘手的部分。最坏的情况是瓶坯蛮力仿真,以0.001的增量在0到0.5之间循环,找到导致最佳下垂补偿的alpha。将最佳的下垂补偿定义为通带边缘的最小误差。

为了提高效率,该滤波器通常以较低的数据速率放置,在插值CIC之前和抽取CIC之后。

评论


$ \ begingroup $
有关此补偿方法的另一种解释/说明,请参见dsp.stackexchange.com/questions/19584/…。
$ \ endgroup $
–丹·博申(Dan Boschen)
16年6月27日在20:45