引言:从本文开始,我们详细介绍Xilinx CIC IP核滤波器相关知识,包括CIC IP核提供的特性、IP核接口描述以及IP核设计指导等相关内容。

1.概述

级联积分器梳状(CIC)滤波器,也称为Hogenauer滤波器,是用于实现数字系统中大采样率变化的多速率滤波器,它们通常用于具有大的过采样率的应用中。也就是说,系统采样率远大于数字下变频器(DDC)和数字上变频器(DUC)中处理信号所占用的带宽。CIC滤波器的实现具有只使用加法器、减法器和延迟元件的结构。这些结构使得CIC滤波器对其硬件高效的多速率滤波实现很有吸引力。

2.IP核特性

Xilinx提供的CIC IP核支持以下特性:

  • AXI4-Stream兼容接口
  • 支持抽取和内插
  • 固定或者可编程速率改变(4~8192)
  • 支持3~6级CIC级联
  • 差分延迟可选1或者2
  • 支持全精度或者非全精度数据输出
  • 支持单通道或者多通道(最大16通道)
  • 可选的映射到DSP48 Slices
  • 支持输入同步清零
  • 支持输入时钟使能

3.IP核接口描述

图1、CIC IP核接口信号

CIC IP核接口描述如表1所示。

表1、CIC IP核接口描述

4.IP核设计指导

4.1通用设计指导

CIC滤波器的系统响应可以表示为式1:

其中,N表示CICI滤波器的级数;R表示滤波器速率改变(抽取或者内插);M表示差分延迟。

CIC滤波器的幅频相应如式2所示,式中f表示离散时间频率。

图2举例CIC幅频相应。由式2及图2,可知在f=n*(1/RM),n为整数,存在零点,因此,差分延迟M可以调整零点的位置。

图2、CIC滤波器幅频相应

图3显示了差分延迟M对CIC滤波器的影响。从图中可以看到,M除了影响零点的位置,增加M也会对旁瓣衰减产生较大影响,但是通带边沿衰减也较为严重。

图3、差分延迟M对CIC滤波器的影响

图4显示了CIC滤波器速率变化参数R对频率响应的影响。从图中可以看到,随着R的增大,通带边沿衰减加大,旁瓣由一定程度的衰减,但变化不大。从时域来讲,增加R即增加CIC滤波器矩形窗口RM长度。

图4、速率改变因子R对CIC滤波器幅频相应影响

图5显示了改变CIC滤波器阶数N对幅频特性的影响。增加N即增加CIC滤波器级联级数,级联数越大,旁瓣衰减也越大,同时通带边沿衰减也有一定程度增大。

图5、CIC滤波器阶数N对幅频特性的影响

从图3~图5中可以看到,增大M、R及N都能增大CIC滤波器的旁瓣衰减,但对于具体项目应用来说,通常将M及R作为“固定值”,仅通过调整N来改变CIC滤波器旁瓣衰减,以满足滤波器要求。

另外,也可以看到随着N的增加,通带边沿衰减也较为严重,导致CIC通带不平坦加大,对信号带来失真。因此,在使用CIC滤波器时,通常要求设计补偿滤波器(CFIR),主要是补偿CIC滤波器通带衰减,使其通带尽量平坦。

对于补偿滤波器,由于CIC滤波器频率响应具有sinc函数形状,通常补偿滤波器具有反sinc函数形状,如式3所示。

图6显示了补偿滤波器的应用。

图6、CIC补偿滤波器应用

4.2CIC抽取器

式1中滤波器输出按照R因子抽取后,滤波器fs/R速率下的传递函数表示为式4所示。

该响应可以看做N级积分器和N级梳状器级联,如图7所示。

图7、CIC抽取滤波器结构

从图7中,可以看到,积分器工作在fs采样率,梳状器工作在fs/R速率下,滤波器只有延迟线及加、减法器组成,这有利于硬件实现速率的提高。

图8显示了抽样前CIC抽取滤波器的响应。当CIC滤波器作为抽取器时,要仔细考虑,抽取后原信号频谱的镜像不能混叠到有用信号fc的通带内。图8中采样速率改变因子R=8,级数N=3,差分延迟M=1。抽取滤波器输入频谱显示在通带(fc=1/32归一化频率)和阻带内(约1/4归一化频率)。抽取器的输出显示了CIC滤波器对输入信号频谱的衰减。图8中垂直虚线显示了抽取时镜像混叠位置,图中归一化频率为高频率(fs)。

图8、抽样前CIC滤波器的幅频响应

图9显示了CIC抽取器输出影响。在该图中频率轴按照fs/R低频率归一化。

图9、CIC抽取器输出频谱

从图9中可以看到:

1.如果没有混叠发生,图中实红线表示CIC输出频谱;

2.如果由于下采样产生混频,虚红线显示了阻带输出频谱。该混叠频谱影响CIC抽取器最终输出;

3.实蓝线显示了CIC抽取器实际输出,它清楚的显示了下采样中混叠频谱的影响。

因此,必须确保正确选择CIC抽取器参数,以避免混叠对信号频谱噪声影响。

4.2.1 流水线CIC抽取器

为了获得更高的系统时钟频率,CIC抽取器流水线结构可以表示为图10所示。

图9、流水线CIC抽取器结构

CIC输出数据位宽和设计参数N、M和R有关。全精度CIC抽取输出位宽Bmax可以表示为式5。

为了获得完全的精度,CIC抽取器实现在内部为每个积分器和微分器级使用Bmax位。这在输出端不会引入量化误差。当以量化噪声为代价使用有限精度输出时,CIC抽取器实现中的硬件资源可以减少。这种权衡资源和量化噪声的能力对于实现最佳实现非常重要。

4.3CIC内插器

CIC内插器滤波器如图10所示。该结构与CIC抽取滤波器类似,只不过梳状器和积分器的顺序进行了变化。图10中,上采样速率因子R,该速率在梳状器和积分器之间变化,即每个输入采样值间插入R-1个0值。

图10、CIC内插器

对于内插,CIC滤波器的响应应用于上采样(插入零值样本)输入信号。在速率变化R=7,级数N=4,差分延迟M=1的滤波器中,频率响应如图11所示。

图11、CICI内插器响应

4.3.1流水线CIC内插器

与CIC抽取器类似,CIC内插器流水线结构如图12所示。

图12、流水线CIC内插器

CIC内插器输出数据位宽和设计参数N、M和R有关。全精度CIC抽取输出位宽Bmax可以表示为式6。

滤波器的输出可以选择为全精度或有限精度(带截断或舍入),以适应特定于应用的输出宽度。使用有限精度不会影响内部寄存器的大小,只有末级输出被缩放,如果需要的话,四舍五入以提供所选的输出宽度。

4.3.2输出位宽和增益

如式5和式6所示,CIC滤波器的增益是所有关键设计参数的函数。当输出宽度等于最大寄存器宽度时,IP核输出全精度结果,输出的幅度反映滤波器增益。当输出宽度设置为小于最大寄存器宽度时,输出将被截断,增益相应减小。

当IP核被配置为具有可编程速率变化时,随着滤波器速率的改变,增益也相应地发生变化。当输出被指定为全精度时,随着速率的变化,增益的变化在IP核输出幅度中是明显的。当输出被截断时,IP核移动内部结果,给定当前速率变化的最大值,以完全占用输出位。

4.4CIC滤波器时序描述

CIC滤波器接口采用AXI4-Stream协议进行输入输出数据处理。利用TVALID、TREADY和TDATA信号组合,实现上、下游模块数据流交互,如图13所示。

图13、AXI传输时序图

4.4.1 CIC抽取器时序图

图14显示了下采样因子R=4的CIC抽取器时序图。该IP核未采用过采样,每个时钟上升沿输入一个采样数据。一些时钟后,当m_axis_data_tvalid高电平时,指示第一个滤波输出值可用。该时间间隔和下采样因子R以及内部流水线寄存器设置参数相关。在第一个滤波输出采样值后,后续输出每隔R个时钟周期输出一个滤波数据。

图14、CIC抽取器、固定速率,单通道

图15显示了相同的滤波器,输入采样周期为3。在图中A点波形,CIC IP核准备好接受数据,但是主机未提供。CIC IP核持续询问,直到在B点提供数据。在C点主机在CIC IP核询问前提供了数据,主机持续提供,直到D点CIC IP核可以接收数据。

图15、CIC抽取器、固定速率,单通道,过采样

多通道抽取器可以配置为两种模式:数据块模式和数据流模式:

  • 数据块模式:每个数据通道按照背靠背传输,即传输通道N数据后立即传输N+1通道数据;
  • 数据流模式:采样通道在整个多通道周期均匀输出。

图16显示了R=4时,多通道CIC时序图。在该举例中,抽取滤波器使用数据块模式处理3个通道数据。DIN接口按照时分复用方式输入数据,抽取输出DOUT显示了时分复用数据,CHAN_OUT显示了对应的通道号。

图16、CIC抽取器,固定速率,多通道,数据块模式

图17显示了数据流模式下相同滤波器配置时序图。

图17、CIC抽取器,固定速率,多通道,数据流模式

图18显示了CIC抽取器可编程速率时序图。图中抽取器初始下采样率R=4,在一定时间后,下采样率变为R=7。图中A点s_axis_config_tvalid高电平时,指示速率改变可用。CIC IP核在下一采样时钟接收此速率改变,同时,s_axis_config_tready会拉低一个时钟,以防止上游主机插入新的速率改变因子。

图18、可编程速率CIC抽取器

4.4.2 CIC内插器时序图

图19显示了CIC内插器时序图,上采样因子R=4。新的采样数据每4个时钟接收一个。在开始一定延迟之后,m_axis_data_tvalid插入,新的滤波器输出数据在后续每个时钟沿可用。图中A点波形,主机在CIC IP核请求之前提供数据,直到CIC IP核在B点可以接收数据。同样,C点CIC IP核持续请求主机发送数据,主机直到D点提供数据。

图19、CIC内插器,固定速率,单通道

图20显示了相同的滤波器配置,输入采样周期为8的时序图。

图20、CIC内插器,固定速率,单通道,过采样

同样,多通道内插器可以配置两种时序模式:数据块模式和数据流模式。

  • 数据块模式:通道数据背靠背传输,即第N个通道传输完后立即传输第N+1个通道数据。
  • 数据流模式:采样通道在整个多通道周期均匀输出。

图21和图22显示了这两种模式时序图。

图21、CIC内插器,固定速率,多通道,数据块模式

图22、CIC内插器,固定速率,多通道,数据流模式

图23显示了CIC内插器采用可编程速率时序图。在该图中,内插器开始采用R=4上采样,一定时间后,R=7。速率改变后,s_axis_config_tready拉低,直到速率R=7已经配置成功。

图23、CIC内插器使用可编程速率

延伸阅读:数字信号处理(三):Xilinx FFT IP核详解(三)

ise的时钟ip核_Vivado CIC IP核滤波器详解(一)相关推荐

  1. IP地址,子网掩码,网段 概念详解

    文章目录 1. 子网掩码 1.1 子网掩码的概念及作用 1.2 子网掩码的组成 1.3 子网掩码的表示方法 1.4 为什么要使用子网掩码? 1.5 子网掩码的分类 2. 子网掩码和IP地址的关系 2. ...

  2. IP地址分类及子网掩码划分网段详解!!!

    IP地址的组成 网络位:表示IP地址所属的网段 主机位:用来唯一标识一个网段内的某一台设备 IP地址的作用 可以实现同一网段或跨网段的通信 IP地址的分类 A类地址:0.0.0.0 -- 127.25 ...

  3. android 访问内网ip_android 获取局域网IP与MAC 地址 毫秒级(详解)

    两个 linux命令 开始理清思路:主要使用 linux 两个命令(2017-07-21 fix:这个思路不好,后面使用udp取代[毫秒级]) [ping]: 查询某个ip是否被设备占用 [cat]  ...

  4. 计算机网络【IP数据包首部的各个字段详解】

    文章目录 一 网络层简述 二 网络层首部--版本,首部长度,区分服务,总长度 三 网络层首部--标识,标志,片偏移 四 网络层首部--生存时间,协议,首部检验和 五 可选字段,填充字段,源IP,目标I ...

  5. CentOS7 iP 静态网卡 动态网卡 详细设置详解

    CentOS6 网卡设置 好废话不多说我们就开始 首先网卡呢是分静态和动态的 CentOS6静态IP设置 1. cd /etc/sysconfig/network-scripts 2. vi ifcf ...

  6. 【5GC】开源5G核心网(Open5GS)架构详解

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G ...

  7. 基于xilinx vivado的GTX/GTP ip核设置与例程代码使用详解

    本文目录 1 概述 2 参考文档 3 GTX的IP设置 3.1 本例程使用环境 3.2 GTX IP界面的设置情况 3.2.1 GTX IP设置第1页 3.2.2 GTX IP设置第2页 3.2.3 ...

  8. TCP/IP协议与Http协议的区别详解

    TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据. 关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:"我们在传输数 ...

  9. 子网ip和子网掩码不匹配_【详解】你知道什么是IP路由查找的“最长匹配原则”吗?...

    最长匹配原则是CISCO IOS路由器默认的路由查找方式. 当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的表项进行bit by bit的逐位查找,直到找到匹配度最长的条目, ...

最新文章

  1. java程序分为哪两大类_JAVA程序基础(第1-2章分类)复习-1
  2. Android 颜色Color(转)
  3. Win下PHP环境Eclipse PDT+XAMPP+XDebug部署
  4. ERROR: 资源短缺 PXA_NO_FREE_SPACE
  5. 学习笔记(58):Python实战编程-Combobox
  6. 特斯拉将国产Model 3和Model Y后轮驱动版价格上调4752元
  7. NYOJ a problem is easy
  8. 《深入浅出MFC》读书笔记
  9. charset参数 sqluldr2_linux下配置 oracle数据导出工具sqluldr2
  10. 'Data_Label_Tools - 开源数据标注工具大列表
  11. 第4章 程序的控制结构(单元测试题Python含答案)
  12. java poi 数据透视_java 通过 poi pivotTable 实现 数据透视表
  13. Python新手接了第一个副业单子,2小时完成:Python修正excel表格数据
  14. 十分钟开发出神经网络五子棋(二)
  15. VS 显示方法引用的设置方法
  16. 量子物理 詹班 计算机,连爱因斯坦都被困其中,量子力学到底有多厉害?
  17. Android aar包的so和jniLibs中的so库冲突
  18. GAIL(Imitating driver behavior with generative adverarial networks)
  19. 目前最全的IT技术问答、社区、科技服务网站合集
  20. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢

热门文章

  1. 云上的Growth hacking之路,打造产品的增长引擎
  2. 代号“凤凰”,阿里新零售秘密武器,今年要打入100个城市
  3. 使用 MaxCompute(原ODPS) java sdk 运行安全相关命令
  4. 源码级别的广播与监听实现
  5. 彻底理解内存泄漏,memory leak
  6. “华为云-东吴杯”圆满成功,顶尖参赛者推动“智造”场景结构升级
  7. 1024 程序员节专题论坛来袭,聚焦企业级开源数据库 openGauss
  8. 华为在中国建立其全球最大的网络安全透明中心
  9. 浅谈分布式存储中的网络通信
  10. 剧情反转:今年AI要凉!薪资碾压全行,但人才缺500万!