没有合适的资源?快使用搜索试试~ 我知道了~
学习笔记_CIC_filter及其matlab实现.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 201 浏览量
2022-06-25
10:09:49
上传
评论
收藏 438KB DOC 举报
温馨提示
试读
16页
学习笔记_CIC_filter及其matlab实现.doc
资源推荐
资源详情
资源评论
学习笔记 : CIC lter
及其
matlab
实
现
2010-04-19 14:55 8063 人阅读 评论(0) 收藏 举报
lter matlab delay buer output input
References:
[1] Understanding cascaded integrator-comb lters – By Richard
Lyons, Courtesy of Embedded Systems Programming URL:
http://www.us.design-reuse.com/articles/article10028.html
[2] Example of Cascaded Integrator Comb lter in Matlab
http://www.dsplog.com/2007/07/01/example-of-cascaded-integrator-
comb-lter-in-matlab/
[3] Digital Signal Processing – Principles, Algorithms and
Applications , John G. Proakis, Dimitris G. Manolakis
CIC 数字滤波器是窄带低通滤波器的高计算效率的实现形式,常常被嵌入到现
代通信系统的抽取和插值模块的硬件实现中。
CIC lter 应用
CIC 滤波器非常适合用作抽取之前的抗混迭滤波和插值之后的抗镜像滤波。这
两种应用都跟 very high-data-rate 滤波有关,例如现代无线系统中硬件正交
调制和解调,以及 delta-sigma A/D 和 D/A 转换器。
Figure 1: CIC lter applications
因为 CIC 滤波器的幅频响应包络象 sin(x)/x,通常在 CIC 滤波器之前或者之后
都有一个 high-performance linear-phase lowpass tapped-delay-line
FIR lters, 用于补偿 CIC 滤波器不够平坦的通带。
CIC 滤波器不需要乘法运算,易于硬件实现。
抽取 CIC 滤波器只不过是滑动平均滤波器的一个非常高效的迭代实现,有 NR
taps, 其输出再进行 R
抽取
. 同样,插值 CIC 滤波器在每两个输入采样之间插
入 R -1 个 0,然后通过一个 NR -tap 的工作在输出采样率 ƒ
s
,out
的滑动平均滤
波器。对于高采样率转换率的抽取和插值来说,Figure 1 所示的级联形式的计
算量大大低于单一 FIR 滤波器的计算量。
Recursive running-sum lter
Figure 2: D-point averaging lters
Figure 2a 是标准的 D-point moving-average 处理,需要 D-1 次加法运算
和 1 次乘法运算。时域表达式:
Equation 1
z 域表达式:
Equation 2
z 域传递函数:
Equation 3
Figure 2b: 迭代 running-sum lter,等价于 gure 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 的话,递归形式只需要一
个加法和一个减法运算。
例子:gure 1a 的 matlab 实现,滑动平均滤波器,忽略 scale factor
% Moving Average lter
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 lter
hF = t(hn,1024);
plot([-512:511]/1024, abs(tshift(hF)));
xlabel(’Normalized frequency’)
ylabel(’Amplitude’)
title(’frequency response of Moving average lter’)
Figure 1c 的 matlab 实现
% Implementing Cascaded Integrator Comb lter with the
% comb section following the integrator stage
N = 10;
delayBuer = zeros(1,N);
intOut = 0;
xn = sin(2*pi*[0:.1:10]);
for ii = 1:length(xn)
% comb section
combOut = xn(ii) – delayBuer(end);
delayBuer(2:end) = delayBuer(1:end-1);
delayBuer(1) = xn(ii);
% integrator
intOut = intOut + combOut;
y2n(ii) = intOut;
end
剩余15页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3651
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功