CIC滤波器实现简单,资源消耗少(只需要加法器),成为变采样率系统中比较常用的滤波器,但也需要在合适的场景中使用,不然对信号质量会造成较大影响。

我们可以通过matlab的filter designer了解CIC滤波器的各种特性。通过图1和图2找到CIC滤波器设计窗口。

图1

图2

从幅频曲线中容易得出CIC滤器器通带平台性差,过渡带宽,带外抑制性能起伏较大。

CIC级数设计

带外抑制性能可以通过增加CIC级数(Number Of Sections)来提升,但这会对通带平坦性带来负面影响,具体设计CIC时需要折中该参数。

通常在C语言实现CIC时,可以将该参数设计为偶数,这样会使拖尾是一个整数,方便去掉数据首尾的无效值。更进一步,设计为2,4,8时,归一化可以直接通过移位实现。

CIC滤器使用场景

当我们使用CIC时,需要保证有用信号的fmax应足够小于fs/2/Mcic,其中Mcic为内插倍数。这样才能保证在有效带宽内足够的平坦度,一般fmax相对于直流衰减不能超过0.5dB.

所以在变速率系统中,CIC一般作为最后数字滤波器的前端(靠近模拟域),如上采样系统中信号先经过限带成型滤波器(低通FIR),HB滤器组,最后经过CIC到DAC速率。

下图为8倍上采样的图示。

图3

CIC在matlab中的使用

需要注意的是为了保证CIC前后信号时域采样点平均功率的一致性,在第一级CIC滤波器中没有做归一化,这部分增益正好可以补偿上采样插0带来采样点功率的损失。后续每一级都要做归一化,防止溢出。

clear;clc;close all;

%% load data symbols from RRC out,make sure fmax << fs/2/Mcic

load('zeroDataFilterOut.mat')  % 8x oversampling signal

symbPower = funCountPower(zeroDataFilterOut); % Power before filter

%% CIC filter for interpolate 8 times

Mcic = 8;

coefCic = ones(Mcic,1);

N = 4;      % number of CIC section

modDataZero8x = upsample(zeroDataFilterOut,Mcic);

txPower = funCountPower(modDataZero8x); % Power after zero insertion

%% filter

dataFilterTemp = conv(modDataZero8x,coefCic);  % First CIC section

for i = 1:N-1

dataFilterTemp = conv(dataFilterTemp,coefCic)/Mcic;

end

tailLen = N*(Mcic-1)/2;

dataOut = dataFilterTemp(tailLen+1:end-tailLen);

outPower = funCountPower(dataOut);  % Power after filter

matlab cic设计,CIC滤波器设计相关推荐

  1. 双线性变换 matlab,matlab和双线性变换的滤波器设计.doc

    matlab和双线性变换的滤波器设计.doc 武汉理工大学MATLAB课程设计报告书题目MATLAB课程设计基于MATLAB和双线性变换的滤波器设计初始条件MATLAB仿真软件数字信号处理与图像处理基 ...

  2. fir 低通 matlab,MATLAB常用的FIR滤波器设计方法之窗函数法

    FIR滤波器很多工科出身的人都不会陌生,在我们的学习和工作中,也常常需要设计FIR滤波器.因为FIR滤波器有两个特点:滤波器是稳定的以及具有线性相位.FIR滤波器在信号处理相关领域当然也包括本人所在的 ...

  3. 基于matlab的巴特沃斯滤波器设计

    一.butterworth滤波器也称最平响应特性滤波器,其特征多项式为: |K(jΩ)|^2=K(jΩ)K(-jΩ)=(Ω/Ωc)^2N 巴特沃斯滤波器的模平方函数为: |H(jΩ)|^2=1/(1+ ...

  4. Matlab幅频曲线和滤波器设计

    前言少叙,下面开始正题. 一.离散数字信号的表示 n=-3:5;subplot(221); x1=(n==0); stem(n,x1,'.'); title('单位冲击'); axis([-4,4,- ...

  5. matlab emi滤波器设计,EMI滤波器设计.pdf

    2011 年 7 月 第 7期 电 子 测 试 ELECTRONIC TEST Jul.2011 No.7 75 EMI滤波器设计 武小军, 秦开宇,唐博 (电子科技大学空天科学技术研究院,成都611 ...

  6. matlab模拟巴特沃斯滤波器设计,巴特沃斯滤波器matlab实现

    描述 巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零. 在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大 ...

  7. 基于matlab的陷波滤波器设计

    目录 一.理论基础 二.核心程序 三.仿真结论 一.理论基础 陷波滤波器指的是一种可以在某一个频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果的滤波器.陷波滤波器属于带阻滤波器的一种,只是它 ...

  8. [Matlab]巴特沃夫滤波器设计:低通、高通、带通和带阻

    巴特沃斯滤波器的特点: 1.通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零. 2.在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无 ...

  9. c语言课程设计fir滤波器设计,fir滤波器设计c语言

    C语言编写FIR滤波器,代码如下: #include <> #include <> #include<> /**************************** ...

  10. 如何使用双线性变换法将模拟电路滤波器设计成为数字滤波器?

    信号处理(数字模拟信号) 1.1 双线性变换设计递归滤波器 设计滤波器1 试着写出双线性变换法设计IIR数字高通滤波器的主要步骤 将数字高通的频率指标转换为模拟高通的频率指标(其中将高通截止频率通过预 ...

最新文章

  1. C#和Unity游戏开发者大师班2021 (2D,3D和FPS)
  2. vmoptions默认配置_AndroidStudio基本配置
  3. Centos7 关闭防火墙(转)
  4. Data Remove 程序总结
  5. java文件流 m.jb51.net_Linux指令范例速查手册(第2版)PDF 下载
  6. Java开发人员必备的7大技能,每一个都必不可少
  7. 被质疑“在开源社区执行微软意愿”,.NET 基金会前董事为其提交的 PR 道歉并辞职...
  8. python与tensorflow知识点截图集锦(持续囤积)
  9. 【Java】撩开Java线程的“神秘面纱”
  10. 树TreeView控件与DataTable交互添加节点(最高效的方法)
  11. 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_1 请求参数绑定入门
  12. lduan Centos 7 KVM Centos Windos (二)
  13. ROS机器人操作系统 优缺点分析
  14. 云课堂智慧职教答案python_云课堂智慧职教答案表,职教云答案课堂智慧职教答案公众号,云课堂智慧职教答案python...
  15. python省略号用法
  16. 使用python脚本抢购天猫和淘宝商品,0秒下单
  17. Spring的bean定义 2 : 通用bean定义逻辑 -- AbstractBeanDefinition
  18. ant design vue:upload打开选择文件弹框前弹出确认框
  19. OSPF ISIS RIP实现总公司与分公司等的互联
  20. 免认证使用校园网(2022.6.3更新)

热门文章

  1. word2007显示控件工具箱
  2. 2018年统计用区划代码和城乡划分代码
  3. Quartz 定时任务时间表达式说明
  4. inode客户端linux 怎样运行,Ubuntu下安装iNode上网客户端
  5. List集合的各种排序
  6. 图书管理系统的结构流程图
  7. 触动精灵游戏脚本制作
  8. python数字猜大小游戏
  9. uniapp 小程序列表懒加载
  10. 预约活动报名登记缴费小程序开发制作功能介绍