为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

FPGA的CIC滤波器的设计

2019-09-02 8页 doc 32KB 25阅读

用户头像

is_005190

暂无简介

举报
FPGA的CIC滤波器的设计基于FPGA的CIC数字滤波器的设计 摘要:级联积分梳状(Cascade Integrator Comb,CIC)滤波器是数字系统中实现大采样率变化的多速率滤波器,已经证明是在高速抽取和插值系统中非常有效的单元,在数字下变频(DDC)和数字上变频(DUC)系统中有广泛的应用。它不包含乘法器,只是由加法器,减法器和寄存器组成,而且需要的加法器的数目也减少了许多,因此CIC滤波器比FIR和IIR滤波器更节省资源,并且实现简单而高速。本文主要讨论了CIC滤波器的基本原理和基于FPGA的仿真实现方法,具体是采用Verilog HDL...
FPGA的CIC滤波器的设计
基于FPGA的CIC数字滤波器的 摘要:级联积分梳状(Cascade Integrator Comb,CIC)滤波器是数字系统中实现大采样率变化的多速率滤波器,已经证明是在高速抽取和插值系统中非常有效的单元,在数字下变频(DDC)和数字上变频(DUC)系统中有广泛的应用。它不包含乘法器,只是由加法器,减法器和寄存器组成,而且需要的加法器的数目也减少了许多,因此CIC滤波器比FIR和IIR滤波器更节省资源,并且实现简单而高速。本文主要讨论了CIC滤波器的基本原理和基于FPGA的仿真实现方法,具体是采用Verilog HDL语言编程,将滤波器分为积分器模块和梳状器模块2个部分,对每个模块进行具体的功能分析和设计实现,最后通过Modelsim仿真对滤波器的性能进行分析,验证了设计的正确性。 关键词:CIC滤波器;抽取;FPGA;Verilog HDL the Design of Cascade Integrator Comb Filter Based on FPGA Abstract: CIC (Cascade Integrator Comb, CIC) filter is a digital system to achieve large changes in multi-rate sampling rate filter, which has been proven to be a very effective unit in the high-speed extraction and interpolation system. It is widely used in the digital down conversion (DDC ) and digital up conversion (DUC) systems. It does not contain the multiplier, but just composes by adders, subtractors and registers, and the number of needing adders is reduced a lot. So it takes fewer resources than FIR filter and IIR filter. And the speed of CIC filter is very high and it is also very convenient to realize. This article discusses the basic principles of CIC filter and the simulation way based on FPGA. The modules were described with Verilog HDL. Firstly, the filter was divided into two parts which were integration module and the comb module. Then the function of each module were analyzed and designed. Finally the performance of the filter was analyzed under ModelSim and the correctness of the design was verified. Keywords:CIC filter; Decimation; FPGA; Verilog HDL 1. 引言: 数字滤波是数字信号分析中最重要的组成部分之一,数字滤波与模拟滤波相比,具有精度和稳定性高,系统函数容易改变,灵活性高,不存在阻抗匹配问,便于大规模集成,可实现多维滤波等优点。 级联积分梳状(Cascade integrator comb,CIC)滤波器,是由Hogenauer引入的一种非常有效的高分解速率的数字滤波器结构,已经证明是在高速抽取和插值系统中非常有效的单元。它具有较好的抗混叠和抗镜像性能;它不包含乘法器,只是由加法器,减法器和寄存器组成,而且需要的加法器的数目也减少了许多,因此CIC滤波器比FIR和IIR滤波器更节省资源,并且实现简单而高速;无需存储滤波器的系数,结构规则易于拓展,无需外部控制,抽取倍数可变,对提高实时性和简化硬件有重要意义。 CIC滤波器的应用范围非常的广泛:由于其具有较好的抗混叠和抗镜像性能,可以实现任意采样率的转换,因此被用在软件无线电接收机中;用于正交多速率调制系统中,但又不仅仅是局限在调制器中,只要CIC滤波器之前或之后有FIR滤波器,对CIC滤波器的通带衰减进行补偿以后,都能够以很小的代价换取最大的硬件资源节省[1];在全数字接收机中的应用,CIC滤波器与HB滤波器共同实现了数字抽取滤波器,从输入的宽带高数据流的数字信号中提取所需的窄带信号,并在低通滤波器的作用下,下变频为数字基带信号[2];在 ADC中频信号处理模块中的应用,用CIC滤波器来匹配噪声抑制滤波器,并对采样后的数据再进行下采样,以降低噪声和后端硬件成本[3];在无线通信中的应用,如:蜂窝式无限电通信;CIC滤波器由于其结构的独有特性,已经成为了许多新型高性能器件的核心部件。因此研究它具有很重要的实用意义。 本文是要设计一个基于现场可编程门阵列(FPGA),用Verilog HDL语言编程实现的级联积分梳状(Cascade integrator comb,CIC)数字滤波器。主要内容包括:架构设计、接口逻辑设计、FSM设计、编码实现、功能仿真等。 2. 设计平台介绍: 系统设计需要使用Verilog HDL(Hardware  Descriptions  Language)、ModelSim 6.0、FPGA(Field Programmable Gates Array)现场可编程门阵列。 2.1 Verilog HDL简介: Verilog HDL是一种硬件描述语言(HDL: Hardware Description Language),用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。以文本形式来描述数字系统硬件的结构和行为的语言,用它表示逻辑电路图、逻辑表达式以及数字逻辑系统所完成的逻辑功能。 2.2 Modelsim简介: Modelsim仿真工具是Model公司开发的。它支持Verilog VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等。ModelSim是业界最优秀的HDL语言仿真器 。它提供最友好的调试环境,是唯一的单内核支持VHDL和Verilog混合仿真的仿真器。全面支持VHDL和Verilog语言的IEEE 标准,支持C/C++功能调用和调试。 2.3 FPGA简介: 现场可编程门阵列FPGA(Field Programmable Gates Array)是近10年加入到用户可编程技术行列中的器件。现场可编程阵列在器件的选择和内部的互联上提供了更大的自由度。FPGA的结构类似于掩膜可编程门阵列(MPGA),由逻辑功能块排列成阵列组成,并由可编程的内部连线连接这些逻辑功能块来实现不同的设计[4]。 FPGA是由掩膜可编程门阵列和可编程逻辑器件两者特性结合演变而来的,所以FPGA既具有门阵列的高密度和通用性,又具有可编程逻辑器件的用户可编程特性。对于ASIC设计,采用FPGA在实现小型化,集成化和高可靠性的同时,还减少了风险,降低了成本,缩短了周期。 2.3.1 FPGA基本原理: FPGA就结构上而言,主要由三个部分主成:可编程逻辑块CLB(Configurable Logic Blocks),可编程输入/输出模块IOB(Input/Output Block),可编程互连资源PIR(Programmable Interconnect Resource)等三种可编程电路。图1所示为FPGA平面结构示意图[5]。 CLB是实现逻辑功能的基本单元,它们通常规则地排列成一个阵列,散步于整个芯片中;IOB主要完成芯片上的逻辑与外部引脚接口,它们通常排列在芯片的四周;PIR包括各种长度的连线线段和一些可编程连接开关,它们将各个CLB之间或CLB与IOB之间以及IOB之间连接起来,构成特定功能的电路。 其中,CLB主要由逻辑函数发生器,触发器,数据选择器等电路组成,逻辑函数发生器主要由查找表LUT(Look Up Table)构成;IOB主要由输入触发器,输入缓存器 图1. FPGA的平面结构示意图 Fig.1 The schematic diagram of FPGA 和输出触发/锁存器,输出缓存器组成,每个IOB控制一个引脚,它们可配置为输入,输出或双向I/O功能;PIR由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。 2.3.2 FPGA系统设计流程: FPGA系统设计流程包括硬件和软件设计流程。 首先确定系统功能,并对关键部分予以仿真。在确定系统功能并划分功能块之后,根据不同的结构和算法,确定不同的资源消耗。由上述过程可以确定系统设计需要消耗的门数,存储器的大小。根据系统设计要求,对系统时序和时钟率进行考察和估计,可以确定所需器件的速度级别。根据系统外部接口的要求,确定接口时序和芯片引脚资源消耗情况。在上述过程完成以后,考虑系统功能和性能的可扩展性,确定器件型号。型号确定之后,需要确定配置方式,因为不同型号的器件,其配置方式是有很大差异的。硬件设计和软件设计可以同时进行。系统设计在经过设计,改进,查错,再设计,再改进,再查错的螺旋型过程后,即可完成系统所有的设计,进入产品生产[6]。如图2所示为FPGA系统设计流程: 图2. FPGA设计流程 Fig.2 The design process of FPGA 3. CIC滤波器的基本原理: 3.1 多速率信号处理原理: 所谓多速率信号处理是指改变信号的采样率,实质上是对采样后的离散序列重采样的过程,包括抽取和内插两种情况。使采样率降低的采样率转换称为抽取;使采样率升高的采样率转换称为内插。 3.1.1 整数倍抽取: 整数M倍抽取是指原始抽样序列x(n)每隔(M-1)个取一个,形成一个新序列XM(n),XM(n)=x(Mn),正整数M为抽取因子。M倍抽取器符号如图3所示,设序列x(n)的频谱为x(ejw),求得序列XM(n)的傅里叶变换 ,表明抽取后序列XM(n)的频谱为原序列x(n)的频谱经频移和M倍展宽后的M个频谱的叠加和。根据Nyquist采样定理,若序列x(n)的采样率为fs,则模拟信号的最高频率(无模糊带宽)fH≤fs/2,否则x(n)的频谱会发生混叠。当以M倍抽取率对x(n)进行抽取后得到的抽取序列XM(n)之取样率为fs/M,其无模糊带宽为fs/(2M),所以当x(n)中含有大于fs/(2M)的分量时,XM(n)的频谱必然产生混叠,无法从XM(n)中恢复x(n)中频率小于fs/(2M)的低频信号分量。如果先用一个数字滤波器(归一化带宽B=π/M)对X(ejw)进行滤波得到V(ejw),该信号只含有小于π/M频率分量,再对V(ejw)进行M倍抽取,就可以避免频谱混叠。一个完整的M倍抽取器结构如图4所示: 图3. M倍抽取器符号 Fig.3The symbol of M times extractor 图4. M倍抽取器结构 Fig.4The structure of M times extractor 3.1.2 整数倍内插: 整倍数内插是指在原始抽样序列的相邻两抽样点之间插入(L-1)个零值,设原始抽样序列为x(n),则内插后的序列为 内插器符号如图5所示。设序列x(n)的频谱为x(ejw),求得序列XL(n)的傅里叶变换XL(ejw)=X(ejwL),表明内插后序列xL(n)的频谱为原序列x(n)的频谱经L倍压缩得到的。因此,xL(ejw)中不仅含有x(ejw)的基带分量(w≤π/M,而且还含有其高频分量(w>π/L)。对内插后的信号进行低通滤波,就可以从内插信号频谱中恢复出原始基带谱,使内插序列中的(L-1)个零值都变为x(n)的准确值,所以经过内插提高信号时域分辨率。完整的L倍内插器结构如图6所示:
/
本文档为【FPGA的CIC滤波器的设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索