- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
W.
W.
W.
W.
FPGA实现FIR抽取滤波器的设计
FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在 保证任意幅频特性的同时具有严格的线性相频特性,同时英单位冲激响应是有限的,没有输 入到输岀的反馈,系统稳左。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着 广泛的应用。在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件 和硬件实现方式则难以同时达到这两方而的要求。随着可编程逻辑器件的发展,使用FPG A来实现FIR滤波器,既具有实时性,又兼顾了一立的灵活性,越来越多的电子工程师采用 FPGA器件来实现FIR滤波器。
1 FIR滤波器工作原理
在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的 数字信号,一般可用速度较髙的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式 算法设il- FIR滤波器,滤波器输岀的数据都是一串序列,要使它能直观地反应出来,还需 经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D / A模块。FPGA有着规 整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主 导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以 设计出髙速的FIR数字滤波器。
图一 FIR滤波器工作原理框图
2 16阶滤波器结构
在滤波过程中实现抽取,对于抽取率为N的抽取滤波器而言,当进来N个数据时滤波 器完成1次滤波运算,输岀1次滤波结果。抽取滤波器的结果和先滤波后抽取的结果是一 致的,只是对于同样的数据,进行滤波运算的次数大大减少。在数字系统中采用拙取滤波器 的最大优点是增加了每次滤波的可处理时间,从而达到实现髙速输入数拯的目的。采样数据 与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加,经过多次(有多少 阶就要多少次)反复的乘累加最后输出滤波结果,将相同系数归类,16阶滤波器公式:
▼ Y(n)
图二16阶FIR滤波器结构
乘法器的数量减少一半,但加法器的数量增多了,但相对乘法运算来说,加法运算所 占用的资源少的多,运算的速度也快得多。
3滤波器系数的求取
使用Matlab集成的滤波器设il?工具FDAtooL可以完成多种滤波器的数值设计、分析
与评估,设IM6阶低通滤波器参数如下:
采样频率:Fs为50MH乙 滤波器归一化截止频率:Fc为0. 4MH乙 输入数据位宽: 8位,输出数据宽度:16位FDAtool采用汉宁窗函数(Hanning)设汁16阶线性相位FIR数 字滤波器,并提取其特性参数h(n)浮点数值。
1
0
10
0.015381
2
0.00061
11
0.013641
3
0.002319
12
0.011017
4
0.004883
13
0.007935
5
0.007935
14
0.004883
6
0.011017
15
0.002319
7
0.013641
16
0.00061
8
0.015381
17
0
9
0.015991
MATLAB中算出的系数h(n)的值是一组浮点数,进行浮点值到左点值的转换,用16
位二进制补码表示为
图三幅频相频特性
Step Response
w.
W.
W.
W.
W.
滤波器抽头数是16个,考虑到线性FIR滤波器的偶对称特性,只考虑8个独立滤波 器抽头数,则需要一个28x8的表(英中指数8指的是8个滤波器抽头数,后面的8指的是 输入数据的位宽)。但是Virrex-e FPGA只能提供4输入的杏找表,所以要对查找表的地 址进行电路分割。将8位地址线分为高4位和低4位,分别作为两个24x8的查找表的地址 输入,从而指数倍地节省了硬件资源。
4主程序及仿真
在时钟和计数器的控制下,根据查找表输岀结果位权的不同,将输入数据向左移动相 应的位数,低位按照位权的不同补上个数相当的0”,然后将移位数据进行累加操作,输出 最终滤波结果,这里的结果依旧是用二进制数据表示的,只是位数因为移位和累加操作增加 了 8位。
W.
W.
begin
fir^main: process
type shift^arr is array(15 downto 0) of signed (12 downto 0);
0);0);0);0);variable tmp : signed(12 downed variable old : signed(12 downed variable pro :
0);
0);
0);
0);
variable shift:shift_arr;
begin
reset_loop:loop
for i in 0 to 14 loop
shift (i)
您可能关注的文档
最近下载
- 九年级英语上Module8 Sports life Unit 2 He trained hard to be the best教学设计-英语九年级上册.docx VIP
- 知到智慧树网课音乐艺术概论 答案.docx
- 第一单元《新闻写作》教学设计2024-2025学年统编版语文八年级上册.docx
- 设计技术服务方案(投标用).doc
- 高校教师资格证面试说课课件-醛酮.pptx VIP
- 小学五年级上册期中考试数学试卷含答案(共5套,新人教版).docx
- 袁隆平英文ppt.ppt
- 职业性皮肤病医学课件.pptx
- 道路施工交通组织方案模板.doc VIP
- 2020年北京大学全国中学生模拟联合国大会学术标准手册.pdf
文档评论(0)