摘 要:本课题是基于VHDL的数字滤波器的设计与实现,要求完成数字滤波器的VHDL语言的模块描述,通过MAX+PLUSII进行各模块及顶层的仿真,并下载实现数字滤波器功能。本设计采用窗函数法实现线性FIR数字滤波器的设计,并以一个十六阶低通FIR数字滤波器的实现为例说明了设计过程。
关键词:FIR滤波器;VHDL;窗函数
本课题基于智能芯片的思想,采用FPGA电路的二次开发和在线编程能力硬化实现数字滤波器功能模块,主要讨论基于FPGA技术的数字滤波器设计方案与具体实现方法。本设计的任务是完成数字滤波器的VHDL语言的模块描述,并通过MAX+PLUSII进行各模块及顶层的仿真。
主要任务:
(1)完成基于VHDL的并行FIR数字滤波器的设计。(2)用MAX-PLUSII编程实现。(3)完成数字滤波器算法的仿真。
FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,其并行性和可扩展性好,长期以来,FPGA一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构。现在这个问题得到了解决,使FPGA在数字信号处理方面有了长足的发展。
1 设计思路及特点
1.1 设计思路
采用窗函数设计法设计FIR滤波器的系数,并采用并行加法结构来提高速度 。
1.2 设计特点
本课题是要设计一个16阶8系数的FIR滤波器,则N=16,x(n),h(n)均用8位二进制数表示。
假设有16个数据x0,x1,x2,……,x14,x15,,每个数据都用8位二进制数表示,现要将这16个数相加。我们先将16个数据分为8组,x0与x1,x2与x3……x14与x15。这样的话,8组数据就可以同时进行加法,只需要一个时钟周期。再将上一步所计算得到的8个数据分组,分为四组,进行加法。以此类推,直到算完为止,这样就需要15个加法器,但只需4个时钟周期。与传统累加结构相比,并行加法结构大大减少了计算时间,提高了计算速度。
2 具体步骤
2.1 参数设计
2.1.1设计指标
下面以一个十六阶FIR低通滤波器为例说明设计方法和过程。设定采样频率为100kHz,精度