




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、32阶FIR滤波器的FPGA实现随着软件无线电的发展。对于滤波器的处理速度要求越来越高。传统的FIR滤波器一般采用通用DSP处理器,但是DSP处理器采用的是串行运算,而FPGA是现场可编程阵列,可以实现专用集成电路,另外还可以采用纯并行结构及考虑流水线结构,因此在处理速度上可以明显高于DSP处理器。本文采用并行分布式算法在FPGA上设计并实现了高速处理的32阶FIR低通滤波器,在此过程中利用Matlab的数值计算与分析功能来提高设计效率。 1 FlR低通滤波器的窗函数实现 理想的滤波器频率响应中傅里叶反变换ha(n)一定是无限长的序列,而且是非因果的,而实际要设计的滤波器h(n)是有限长的,因
2、此要用有限长来逼近无限长的,其方法就是用一个有限长度的窗口函数序列(n)来截取,即: 常见的窗函数有矩形窗、巴特利特窗、汉宁窗、哈明窗、布莱克曼窗、凯泽窗。其中,凯泽窗提供了可变的过渡带宽。本文采用凯泽窗对FIR滤波器进行设计,其窗函数表达式为: I0?为第一类变形零阶贝赛尔函数,形状参数为依赖于滤波器阶数M的参数,用来调整主瓣宽度与旁瓣衰减,选择M可产生各种过渡带宽和接近最优的阻带衰减。给定通带截止频率p,阻带起始频率s,阻带衰减As,凯泽窗设计中有经典公式可供使用,如下: 过渡带宽: 滤波器阶数: 假设低通数字滤波器设计指标如下: 采用上面介绍的凯泽窗,利用Matlab编程计算得到32阶F
3、IR低通滤波器参数如下: 32阶FIR低通滤波器幅频特性图如图1所示。 上述求得的系数是浮点型的,而在FPGA设计中使用的数据是定点型的,所以在设计滤波器之前要将系数转化为定点型,即系数的量化。在本文中采用数字信号处理(DSP)技术中的Q值法对系数进行量化。为了兼顾精度和所占用的资源,本文的系数用12位二进制来量化,得到的整数系数结果如下:2 并行分布式算法原理及FPGA设计 32阶FIR滤波器的差分方程表达式为: 式中:x(n)为输入;y(n)为输出;h(n)为滤波器系数。 设x(n)用二进制可表示为: 其中,最高位为符号位。则式(7)可写为: 式(10)为并行分布式算法,由上可以看出并行分
4、布式算法是将滤波器表达式重新排列,分别加权求和。与传统算法最大的不同之处是在FPGA设计过程中以查找表代替乘法器,即根据输入数据的不同,将对应的滤波器系数预先求和保存在ROM中,也就是将每一项的乘法求和通过并行结构查表寻值完成,提高运行速度。 具体FPGA实现时,首先将12位的输人数据并行输入到12列32位移位寄存器分别寄存,然后以寄存器中的值为地址,对应于查找表的结果,按照式(10),每列进行相应二次幂加权,最后各列累加,在第32个数据完全输入之后得到正确的滤波器输出。由于输入数据的延迟,在此之前滤波器输出会延迟或者产生不正确的结果,可以在实现过程中加入控制信号进行输出控制。由于查找表的规模
5、是随着地址的增加呈指数增加的,可以将32位的查找表划分为四个8位的查找表,从而降低对ROM的需求。 在本设计中可采用多级流水线技术,也就是将在明显制约系统速度的长路径上插入几级寄存器,虽然流水线会影响器件资源的使用量,但它降低了寄存器间的传播时延,允许维持高的系统时钟速率。3 FPGA仿真与验证 由于直接将大量数据进行硬件仿真验证很不方便,因此利用Matlab产生一个采样频率为100 MHz,频率分别为1 MHz与30 MHz的两个正弦信号相加后,作为输入信号。同样,浮点变为定点,将此信号进行12位量化,并将负数转化为补码形式,按照一定格式保存为vec文件,导入到Quartus中进行仿真,时序
6、功能仿真结果如图2所示。 其中,clk为时钟信号,x_in为滤波器输入信号,y为滤波器输出信号。图2并不能很直观地看出并行分布式算法产生的滤波效果,可以将Quartus中vwf文件转化为tbl文件,在Matlab中按照一定形式编程可以得到时域及频域波形图,如图3,图4所示。 图3,图4中,软件仿真是直接在Matlab中用输入信号与滤波系数卷积得到的,在时域波形中软件仿真输出信号与理想信号相比有一定时间延迟,而Quartus仿真与软件仿真结果中幅度的差别是由于硬件输入量化产生的。 从时域或者频域波形图可以看出,频率为30 MHz的信号被滤除掉,只有频率为1 MHz的信号通过滤波器,达到了滤波的目的。4 结 语 本设计选用Stratix系列芯片,最大处理速度可以达到200 MHz以上。本文没有考虑线性相位的滤波器对称性,在考虑线性相位的基础之上结合一些其他算法可以降低器件数量和进一步提高处理速度。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加盟健康中心合作合同范本
- 初创公司分红合同范本
- 保证合同范本单方
- 医用合同范本
- 单位和个人合伙合同范本
- 劳务门店合同范本
- 书画居间合同范本
- 供用热力合同范本
- 关联交易合同范本
- 会展活动合同范本
- DeepSeek入门宝典培训课件
- 社区健康促进工作计划
- 《作文中间技巧》课件
- 2025年度移动端SEO服务及用户体验优化合同
- 中小学《清明节活动方案》班会课件
- 广东省2025年中考物理仿真模拟卷(深圳)附答案
- 2025届八省联考 新高考适应性联考英语试题(原卷版)
- 新苏教版一年级下册数学第1单元第3课时《8、7加几》作业
- 2024年山东电力高等专科学校高职单招职业技能测验历年参考题库(频考版)含答案解析
- 特殊教育学校2024-2025学年度第二学期教学工作计划
- 宁夏银川一中2025届高三上学期第五次月考数学试卷(含答案)
评论
0/150
提交评论