fpga:fir低通滤波器ip核使用方法

在进行fpga程序编写和项目开发的过程中,fir滤波器IP核充当着非常重要的部分,在这里讲述一下fir滤波器的使用方法和理解。

以滤波为例,两个频率分别为20kHz和100kHz的正弦信号叠加,滤除100kHz的信号,留下20kHz的信号,通过fir 滤波器IP核实现这个过程。

首先第一步,生成两个频率的正弦信号,这里面利用ddsIP核,根据设置的位宽,和20kHz和100kHz的目标频率,设置频率控制字,这里dds位宽为[23:0],所以对应的两个频率控制字分别为24’h1A37和24’h8312(20kHz和100kHz),把两个波形进行叠加,得到的波形为:
fpga:fir低通滤波器ip核使用方法_第1张图片
第一路为20kHz信号,第二路为100kHz信号,第三路为叠加信号。

设计滤波器参数:通过滤波器fdatool设计低通滤波器,为了保留20kHz频率,截止频率选择25kHz,采样率设置为400kHz,采样率的设置要保证大于最高频率的2倍,即大于100kHz的2倍,同时不能取太大,这样会影响滤波器频率响应的过渡带,要想达到好的效果,就需要设置更大的阶数,需要更多的计算资源。
fpga:fir低通滤波器ip核使用方法_第2张图片
上面为MATLAB设置的参数,然后生成系数文件,导入fir IP核中,注意选择定点数,否则无法生成。
fir滤波器设置
fpga:fir低通滤波器ip核使用方法_第3张图片
主要图中的输入采样率,需要和MATLAB中设置的保持一致400kH,输入时钟为系统时钟这里面为50MHz,利用左边的频响看是否满足设计,注意这个频响是归一化的频响,需要利用采样率的一半乘以归一化的横坐标来计算。通过图可以看出,200kHz*0.1为20kHz,在通带内,100kHz的衰减很大,被滤掉。
同时注意理解采样率,相当于采样周期,系统时钟50MHz,相当于每125个系统周期,滤波器采集一个点。
同时在例化IP核的过程中,需要把输入有效位输入400kHz的时钟。
fpga:fir低通滤波器ip核使用方法_第4张图片
这样才算完成fir 滤波器的参数设计和使用,这里的clk_400k_pls为利用系统时钟分频计数得到的400kHz的周期脉冲。
把叠加的波形输入到fir中,得到的滤波后的结果如图
fpga:fir低通滤波器ip核使用方法_第5张图片

最下面的波形firdata即为滤波后的结果。

你可能感兴趣的:(FPGA,fpga开发,硬件工程)