1.1 MATLAB设计说明

基于matlab的CIC滤波器仿真_取值

这个CIC滤波器的频率特性,如果上图,上图和梳子比较相似。所以称为梳状滤波器。

基于matlab的CIC滤波器仿真_CIC_02

    这个是CIC抽取滤波器,如图可以看到,每2个点抽取一个点,达到抽取效果。

基于matlab的CIC滤波器仿真_取值_03

    这个是CIC内插滤波器,如图可以看到,每2个点插入一个点,达到抽取效果。

1.2 FPGA设计说明

    一般在实际应用中,我们多半设计抽取滤波器用的更多,一般抽取滤波器如下所示:

基于matlab的CIC滤波器仿真_取值_04

在这里,我们将其中一些参数具体化,设计一个具体参数的CIC滤波器。

基于matlab的CIC滤波器仿真_取值_05

我们将这个系统模块话,然后在实际应用的时候,我们只要改变其中的参数就可以了。

系统分为如下三个模块。

基于matlab的CIC滤波器仿真_取值_06

   

基于matlab的CIC滤波器仿真_CIC_07

   

基于matlab的CIC滤波器仿真_取值_08

模块一的设计:

delay_one(

                i_clk,//输入时钟

                i_rst,//输入复位信号

                i_data,//输入信号

                o_data//输出信号

                );

模块二的设计:

down(

           i_clk,//输入时钟

           i_rst,//输入复位信号

           i_M,  //抽取值

           i_data,//输入信号

           o_data//输出信号

           );

模块三的设计:

delay_M(

              i_clk,//输入时钟

              i_rst,//输入复位信号

              i_data,//输入信号

              o_data//输出信号

              );

那么其在顶层,我们只要调用这些模块就行了。

其中CIC积分器输出结果如下所示:

基于matlab的CIC滤波器仿真_取值_09

系统滤波输出结果如下所示:

基于matlab的CIC滤波器仿真_CIC_10

可以看到,滤波后的效果。

当改变CIC级数的时候,就能得到不同效果的CIC滤波器