基于FPGA的高速FIR数字滤波器的设计_第1页
基于FPGA的高速FIR数字滤波器的设计_第2页
基于FPGA的高速FIR数字滤波器的设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于FPGA的高速FIR数字滤波器的设计摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器-电容(OTAC)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。仿真结果表明,该滤波器带宽的可调范围为126 MHz,阻带抑制率大于35 dB,带内波纹小于05 dB,采用18 V电源,TSMC 018m CMOS工艺库仿真,功耗小于21 mW,频响曲线接近理想状态。关键词:Butte1 引 言目前FIR滤波器的实现方法主要有3种:利用单片通用数字滤波器集成电

2、路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。但长期以来,FPGA一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构。本文利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器,使FPGA在数字信号处理方面有了长足的发展。2 Matlab设计滤波器参数利

3、用Matlab为设计FIR滤波器提供的工具箱,选择滤波器类型为低通FIR,设计方法为窗口法,阶数为16,窗口类型为Hamming,Beta为0.5,Fs为8.6 kHz,FC为3.4 kHz,导出的滤波器系数如下: 3 快速FIR滤波器算法的基本原理(1) 分布式算法分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先相加形成相应的部分积,然后再对各部分积进行累加得到最终结果。对于一个N(N为偶数)阶线性相位FIR数字滤波器,输出可由式(1)表示:(2) 乘法器设计高性能乘法器是实现高性能的FIR运算的关键,分析乘法器的运算过程,可以分解为部分积的产生和部分积的相加

4、两个步骤。部分积的产生非常简单,实现速度较快,而部分积相加的过程是多个二进制数相加的加法问题,实现速度通常较慢。解决乘法器速度问题,需要分别从这两个方面入手,减小部分积的个数,提高部分积相加运算的速度。3.1 Booth算法Booth算法针对二进制补码表示的符号数之间的相乘,即可以同时处理二进制正数负数的乘法运算。Booth算法乘法器可以减少乘法运算部分积个数,提高乘法运算的速度。下面讨论一个M b×N b乘法器基本单元的设计。设乘数为A,为M比特符号数,2的补码表示,相应各比特位的值为ai(i=0,1,M-2,M-1),用比特串可表示为:A=aN-1aN-2a2a1a0 (2)设被乘数为B,为N比特符号数,2的补码表示,相应各比特位的值为bi(i=0,1,N-2,N-1),用比特串可表示为:B=bN-1bN-2b2b1b0 (3)MacSoley提出了一种改进Booth算法,将需要相加的部分积数减少为一半,大大提高了乘法速度。改进Booth算法对乘数A中相邻3个比特进行编码,符号数A可表示为:因此,应用改进Booth算法的乘法器运算过程仍然包括Booth编码过程,即部分积产生过程和部分积相加过程。所不同的是,其产生的部分积个数减少到原来的一半。热门词条P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论