学习笔记 CIC filter及其matlab实现

学习笔记: CIC filter及其matlab实现
2010-04-19 14:55 8063人阅读 评论(0) 收藏 举报
filtermatlabdelaybufferoutputinput
References:
[1] Understanding cascaded integrator-comb filters – By Richard Lyons, Courtesy of Embedded Systems Programming URL: www./articles/article10028.html
[2] Example of Cascaded Integrator Comb filter in Matlab /2007/07/01/example-of-cascaded-integrator-comb-filter-in-matlab/
[3] Digital Signal Processing – Principles, Algorithms and Applications , John G. Proakis, Dimitris G. Manolakis
CIC数字滤波器是窄带低通滤波器的高计算效率的实现形式,常常被嵌入到现代通信系统的
抽取和插值模块的硬件实现中。
CIC filter 应用
CIC滤波器非常适合用作抽取之前的抗混迭滤波和插值之后的抗镜像滤波。这两种应用都跟very high-data-rate滤波有关,例如现代无线系统中硬件正交调制和解调,以及delta-sigma A/D 和 D/A 转换器。
Figure 1: CIC filter applications
因为CIC滤波器的幅频响应包络象sin(x)/x,通常在CIC滤波器之前或者之后都有一个high-p
erformance linear-phase lowpass tapped-delay-line FIR filters, 用于补偿CIC滤波器不够平坦的通带。
CIC滤波器不需要乘法运算,易于硬件实现。
抽取CIC滤波器只不过是滑动平均滤波器的一个非常高效的迭代实现,有NR taps, 其输出再进行 R 抽取 . 同样,插值CIC滤波器在每两个输入采样之间插入R -1个0,然后通过一个NR -tap的工作在输出采样率ƒs ,out 的滑动平均滤波器。对于高采样率转换率的抽取和插值来说,Figure 1所示的级联形式的计算量大大低于单一FIR滤波器的计算量。
STUDYONRecursive running-sum filter

Figure 2: D-point averaging filters
Figure 2a是标准的D-point moving-average 处理,需要D-1次加法运算和1次乘法运算。时域表达式:

Equation 1
z域表达式:

Equation 2
z域传递函数:

Equation 3
Figure 2b: 迭代running-sum filter,等价于figure 2a.
y(n) = 1/D * [x(n) + x(n-1) + … + x(n-D+1)]
y(n-1) = 1/D * [x(n-1) + x(n-2) + x(n-D+1) + x(n-D)]
y(n) – y(n-1) = 1/D * [x(n) – x(n-D)]

Equation 4
z域传递函数:

Equation 5
Equation 3 和 Equation 5 本质是一样的。Equation 3 是非递归表达式,equation 5是递归表达式。不考虑delay length D的话,递归形式只需要一个加法和一个减法运算。
例子:figure 1a的matlab实现,滑动平均滤波器,忽略scale factor
% Moving Average filter
N = 10; %延时
xn = sin(2*pi*[0:.1:10]); %n=[0:1:100]; sin(2*pi*f*t)=sin(2*pi*f*T*n)=>f=1Hz, fs=10Hz.
hn = ones(1,N); %脉冲响应
y1n = conv(xn,hn);
% transfer function of Moving Average filter
hF = fft(hn,1024);
plot([-512:511]/1024, abs(fftshift(hF)));
xlabel(’Normalized frequency’)
ylabel(’Amplitude’)
title(’frequency response of Moving average filter’)
Figure 1c的matlab实现
% Implementing Cascaded Integrator Comb filter with the 日产总统型房车
% comb section following the integrator stage
N = 10;
delayBuffer = zeros(1,N);
intOut = 0;
xn = sin(2*pi*[0:.1:10]);
for ii = 1:length(xn)
% comb section
combOut = xn(ii) – delayBuffer(end);
delayBuffer(2:end) = delayBuffer(1:end-1);
delayBuffer(1) = xn(ii);
% integrator
intOut = intOut + combOut;
y2n(ii) = intOut;
end
西安pm2.5
err12 = y1n(1:length(xn)) – y2n;
shibor利率err12dB = 10*log10(err12*err12′/length(err12)) % identical outputs
close all
先integrator后comb的实现
% Implementing Cascaded Integrator Comb filter with the
% integrator section following the comb stage
N = 10;
delayBuffer = zeros(1,N);
intOut = 0;
xn = sin(2*pi*[0:.1:10]);
for ii = 1:length(xn)
% integrator
intOut = intOut + xn(ii);
% comb section
combOut = intOut – delayBuffer(end);
delayBuffer(2:end) = delayBuffer(1:end-1);
delayBuffer(1) = intOut;
y3n(ii) = combOut;
end
err13 = y1n(1:length(xn)) – y3n;
err13dB = 10*log10(err13*err13′/length(err13)) % identical outputs
CIC filter structures
Figure 2c: the classic form of 1st-order CIC filter, 忽略figure 2b中的1/D因子。创业基金会
其中前馈部分称为comb section, 其differential delay 是D;反馈部分称为积分器。
差分方程:

Equation 6

本文发布于:2024-09-22 16:43:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/8420.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实现   运算   硬件   形式   计算   插值   抽取   滤波
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议