研究了一种采用FPGA实现32阶FIR数字滤波器硬件电路方案;讨论了窗函数的选择、滤波器的结构以及系数量化问题;阐述了FIR滤波器的FPGA实现,各模块的设计以及如何优化硬件资源,提高运行速度等问题。实验结果表明了该方法的有效性。
随着软件无线电的发展,对于滤波器的处理速度要求越来越高。传统的FIR滤波器一般采用通用DSP处理器,但是DSP处理器采用的是串行运算,而FPGA是现场可编程阵列,可以实现专用集成电路,另外还可以采用纯并行结构及考虑流水线结构,因此在处理速度上可以明显高于DSP处理器。本文采用并行分布式算法在FPGA上设计并实现了高速处理的32阶FIR低通滤波器,在此过程中利用Matlab的数值计算与分析功能来提高设计效率。
在数字信号处理中,数字滤波器的应用是极其广泛和重要的单元。与模拟滤波器相比,数字滤波器可以克服模拟滤波器所无法克服的电压漂移,温度漂移以及噪声等问题。数字滤波器根据冲击响应函数的特性,可以分为IIR滤波器和FIR滤波器两种。由于FIR滤波器只有零点、系统稳定等诸多优点。
1 FlR低通滤波器的窗函数实现
理想的滤波器频率响应中傅里叶反变换ha(n)一定是无限长的序列,而且是非因果的,而实际要设计的滤波器h(n)是有限长的,因此要用有限长来逼近无限长的,其方法就是用一个有限长度的窗口函数序列ω(n)来截取,即:
常见的窗函数有矩形窗、巴特利特窗、汉宁窗、哈明窗、布莱克曼窗、凯泽窗。其中,凯泽窗提供了可变的过渡带宽。本文采用凯泽窗对FIR滤波器进行设计,其窗函数表达式为:
I0[·]为第一类变形零阶贝赛尔函数,形状参数β为依赖于滤波器阶数M的参数,用来调整主瓣宽度与旁瓣衰减,选择M可产生各种过渡带宽和接近最优的阻带衰减。给定通带截止频率ωp,阻带起始频率ωs,阻带衰减As,凯泽窗设计中有经典公式可供使用,如下:
过渡带宽:
滤波器阶数:
形状参数:
假设低通数字滤波器设计指标如下:
采用上面介绍的凯泽窗,利用Matlab编程计算得到32阶FIR低通滤波器参数如下:
32阶FIR低通滤波器幅频特性图如图1所示。
上述求得的系数是浮点型的,而在FPGA设计中使用的数据是定点型的,所以在设计滤波器之前要将系数转化为定点型,即系数的量化。为了兼顾精度和所占用的资源,本文的系数用12位二进制来量化,得到的整数系数结果如下:
2 并行分布式算法原理及FPGA设计
32阶FIR滤波器的差分方程表达式为:
式中:x(n)为输入;y(n)为输出;h(n)为滤波器系数。
设x(n)用二进制可表示为:
其中,最高位为符号位。则式(7)可写为:
式(10)为并行分布式算法,由上可以看出并行分布式算法是将滤波器表达式重新排列,分别加权求和。与传统算法最大的不同之处是在FPGA设计过程中以查找表代替乘法器,即根据输入数据的不同,将对应的滤波器系数预先求和保存在ROM中,也就是将每一项的乘法求和通过并行结构查表寻值完成,提高运行速度。
具体FPGA实现时,首先将12位的输人数据并行输入到12列32位移位寄存器分别寄存,然后以寄存器中的值为地址,对应于查找表的结果,按照式(10),每列进行相应二次幂加权,最后各列累加,在第32个数据完全输入之后得到正确的滤波器输出。可以将32位的查找表划分为四个8位的查找表,从而降低对ROM的需求。
在本设计中可采用多级流水线技术,也就是将在明显制约系统速度的长路径上插入几级寄存器,虽然流水线会影响器件资源的使用量,但它降低了寄存器间的传播时延,允许维持高的系统时钟速率。
3 FPGA仿真与验证
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16&TImes;1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
由于直接将大量数据进行硬件仿真验证很不方便,因此利用Matlab产生一个采样频率为100 MHz,频率分别为1 MHz与30 MHz的两个正弦信号相加后,作为输入信号。vec文件,导入到QuartusⅡ中进行仿真,时序功能仿真结果如图2所示。
其中,clk为时钟信号,x_in为滤波器输入信号,y为滤波器输出信号。图2并不能很直观地看出并行分布式算法产生的滤波效果,可以将QuartusⅡ中。vwf文件转化为。tbl文件,在Matlab中按照一定形式编程可以得到时域及频域波形图,如图3,图4所示。
图3,图4中,软件仿真是直接在Matlab中用输入信号与滤波系数卷积得到的,在时域波形中软件仿真输出信号与理想信号相比有一定时间延迟,而QuartusⅡ仿真与软件仿真结果中幅度的差别是由于硬件输入量化产生的。
从时域或者频域波形图可以看出,频率为30 MHz的信号被滤除掉,只有频率为1 MHz的信号通过滤波器,达到了滤波的目的。
4 结 语
本设计选用StraTIx系列芯片,最大处理速度可以达到200 MHz以上。本文没有考虑线性相位的滤波器对称性,在考虑线性相位的基础之上结合一些其他算法可以降低器件数量和进一步提高处理速度。由于FPGA器件的可编程特性,在本设计中可以修改滤波器参数,得到高速处理的高通或者带通数字滤波器,具有一定实用价值。另外,本文利用QuartusⅡ与Matlab联合仿真,极大地提高了FPGA的设计效率。
相关推荐
7月18日早间消息,赛灵思今天宣布已经完成对中国AI芯片创企深鉴科技的收购。深鉴科技是一家总部位于北...
发表于 2018-07-20 10:33
•
103次阅读
深鉴科技在业内素有“中国英伟达”之称,成立初姚颂便表示,深鉴是一个解决方案的提供商,类似于一个制作D...
发表于 2018-07-20 10:26
•
79次阅读
目前,图像监控系统大多采用PC和视频采集卡作为系统主要部分,基于嵌入式技术的图像监控系统设备在我国...
发表于 2018-07-19 18:04
•
56次阅读
FPGA 原型设计人员艰苦努力所得的明显回报就是 ASIC 设计可以及时而毫无问题地完成产品定案(t...
发表于 2018-07-19 11:33
•
19次阅读
英特尔近日宣布计划收购小型芯片制造商eASIC,这是英特尔继2015年以167亿美元收购Altera...
发表于 2018-07-19 10:42
•
209次阅读
发表于 2018-07-19 10:32
•
104次阅读
FPGA被应用于通信、汽车、工业、医疗、视频和国防等,但是所有设计的一个共同特性就是它们全都需要电源...
发表于 2018-07-19 09:13
•
405次阅读
具有丰富功能的ISL68300和ISL68301为FPGA、DSP、ASIC以及网络处理器提供高达八...
发表于 2018-07-18 15:12
•
418次阅读
AV1在编码循环中使用了三个标准增强滤波器。第一个是去块效应滤波器,它的功能就是其字面意思:消除编码...
发表于 2018-07-17 18:30
•
102次阅读
采用单端CMOS数字信号时,逻辑电平以大约1 V/nS的速度移动,典型输出负载为10 pF(最大值)...
发表于 2018-07-17 08:41
•
221次阅读
发表于 2018-07-16 16:36
•
217次阅读
发表于 2018-07-16 16:02
•
215次阅读
发表于 2018-07-16 09:20
•
153次阅读
发表于 2018-07-16 09:20
•
131次阅读
发表于 2018-07-16 09:20
•
117次阅读
在我们设计出来前边三种CPU之后,我们来进行程序的编写。 所谓程序的编写,就是;利用我们写好的CPU...
发表于 2018-07-16 09:20
•
322次阅读
频谱仪中读出来得功率的单位是dBm/XXHz,XXHz=RBW Bandwidth.当你把RBW设置...
发表于 2018-07-16 08:43
•
183次阅读
PYNQ全称为Python Productivity for Zynq,即在原有Zynq架构的基础上...
发表于 2018-07-14 09:05
•
92次阅读
首先编写相应的C/C++语言程序,加入到Vivado HLS工程中,再编写相应的testbench代...
发表于 2018-07-14 08:56
•
131次阅读
边沿触发用的很少,一般还是以下降沿触发为主。当设备完成一个数据后,会输出一个下降沿,触发处理器。而电...
发表于 2018-07-14 08:30
•
92次阅读
你在产品的设计中,是怎样选择滤波器的?
发表于 2018-07-13 16:59
•
283次阅读
除了CPU(中央处理)和GPU(图形处理器)之外,芯片家族还有另外一名“成员”—FPGA。
发表于 2018-07-13 15:20
•
190次阅读
发表于 2018-07-13 12:05
•
28次阅读
发表于 2018-07-13 11:33
•
27次阅读
代码设计完成后,最好先使用开发工具进行语法检测,之后进行功能仿真,此处仿真不涉及时序上的延时。仿真工...
发表于 2018-07-13 09:32
•
64次阅读
FPGA具有丰富的硬件计算单元以及分布式并行内存,其他芯片只有非常有限的计算资源,比如CPU只有几个...
发表于 2018-07-13 09:31
•
107次阅读
对于xilinx 7系列的FPGA而言,flip-flop支持高有效的异步复/置位和同步复位/置位。...
发表于 2018-07-13 09:31
•
63次阅读
该数字算法流程图相当于一个滞环比较器,为了防止预测出现偏差,需要保证系统只在负载阶跃的时刻进行检测。...
发表于 2018-07-13 09:06
•
235次阅读
FPGA 有一个响亮的别名——“万能芯片”,它是一种能够通过软件更改、配置器件内部连接结构和逻辑单元...
发表于 2018-07-13 08:32
•
52次阅读
发表于 2018-07-13 06:49
•
16次阅读
发表于 2018-07-13 05:38
•
36次阅读
发表于 2018-07-12 18:49
•
137次阅读
数字视频技术是当今消费市场上最令人激动的一个亮点,而无线技术能够确保数据的加密并逐渐支持更高的数据...
发表于 2018-07-12 16:00
•
69次阅读
发表于 2018-07-12 15:20
•
171次阅读
发表于 2018-07-12 11:21
•
257次阅读
两种不推荐的异步时钟域操作方法:一种是通过增加Buffer或者其他门延时来调整采样;另一种是盲目使用...
发表于 2018-07-12 09:33
•
1398次阅读
在现实生活中或许有很多硬件爱好者会对支持高速金融服务器这种高端大气上档次的服务器十分好奇,也好奇实现...
发表于 2018-07-12 08:38
•
88次阅读
在线路内对冲场景下,来自以太网接口的流量将被传递至FPGA以实现网络分流,而后被交付至Connect...
发表于 2018-07-12 08:38
•
61次阅读
广东高云半导体科技股份有限公司(以下简称“高云半导体”)于7月10日在广州科学城总部经济区科学大道2...
发表于 2018-07-11 16:53
•
1263次阅读
据了解,贾红的爷爷是一位革命烈士,曾跟随刘志丹等革命前辈抛头颅,洒热血,为中国的革命事业献出了他宝贵...
发表于 2018-07-11 15:57
•
458次阅读
在我的上一篇文章中,我讨论了增量-累加模数转换器(ADC) 的2个重要特点。这2个特点简化了抗混叠滤...
发表于 2018-07-11 09:38
•
633次阅读
频谱分析仪是一种测试测量设备,主要用于射频和微波信号的频域分析,包括测量信号的功率,频率,失真等。它...
发表于 2018-07-11 08:47
•
36次阅读
首先说一下xapp1052模块的组成结构:顶层模块是xilinx_pci_exp_ep,在顶层模块中...
发表于 2018-07-11 08:47
•
30次阅读
传统变换器采用模拟硬件实现闭环反馈控制,获得稳定的电压和电流输出。模拟控制实时反应系统状态,响应速度...
发表于 2018-07-11 08:40
•
93次阅读
PrecisionFDA平台是基因组信息学社区和共享数据平台,这是一个为研究人员准备的开源、基于云的...
发表于 2018-07-11 08:33
•
96次阅读
随着通用处理器(CPU)的摩尔定律已入暮年,从美国的微软、亚马逊到中国的BAT、华为,几乎所有的互联...
发表于 2018-07-10 16:56
•
1399次阅读
另一位发言者是Dean Kamen,他是DEKA研发中心的创始人,他指出人们对物联网隐私问题以及智能...
发表于 2018-07-10 16:56
•
244次阅读
在WebRTCon 2018期间,Aupera CTO周正宁接受了LiveVideoStack的专访...
发表于 2018-07-10 15:29
•
231次阅读
随着人工智能(AI)的不断发展,它已经从早期的人工特征工程进化到现在可以从海量数据中学习,机器视觉、...
发表于 2018-07-10 10:49
•
63次阅读
xilinx官方实例代码如下,其实大概意思就是一个高电平之后,变成低电平。然后再高电平,等待tlas...
发表于 2018-07-10 10:49
•
44次阅读
每个模块开始要注明文件名、功能描述、引用模块、设计者、设计时间及版权信息等。
发表于 2018-07-10 10:48
•
93次阅读
在设计一个用于AC信号处理的数据采集系统 (DAQ) 时,你的测试结果也许不满足你所需的技术规格,其...
发表于 2018-07-10 09:37
•
599次阅读
原型设计不是一个按几个按钮就能完成的过程,在它不同的阶段需要仔细的关注和思考。除说明这个过程需要完成...
发表于 2018-07-09 15:11
•
81次阅读
为了更好的解决基因测序行业面临的基因组分析标准流程不经济高效,以及跨不同云和硬件(CPUs,FPGA...
发表于 2018-07-09 14:14
•
91次阅读
随着消费电子、物联网等领域的不断发展,用户需求也越来越复杂和多样,因此我们在嵌入式系统设计中必须选择...
发表于 2018-07-09 14:04
•
104次阅读
Spectrum Instrumentation公司推出了一款新的基于M2p 平台以及59xx模块的...
发表于 2018-07-09 14:02
•
46次阅读
当然不是,之前的程序只是完成了原理性的仿真。实际环境和这个差别老大了哦。比如没有加入噪声。噪声是时刻...
发表于 2018-07-09 10:44
•
157次阅读
本次系列课程大约会有五次课,希望结束课程后,学生能在单片机上完成滤波程序和波形的DA输出,再配合使用...
发表于 2018-07-09 10:37
•
187次阅读
我们先看有哪三种GPIO:MIO、EMIO、AXI_GPIO。其中MIO和EMIO是直接挂在PS上的...
发表于 2018-07-07 08:23
•
115次阅读
随着高通、TI、瑞萨、NXP等汽车电子巨头均在2014年前后着手研发基于深度学习的处理器单元,他们普...
发表于 2018-07-06 15:37
•
286次阅读
可以看出,一次旅行,其实结合了各种交通工具的优点。随着摩尔定律的失效和CPU在AI等并行计算方面的缺...
发表于 2018-07-06 11:00
•
617次阅读
人工智能(AI)处理器和支持AI的SoC目前正受到投资界的全面关注,因为他们被视为新兴高度自动化车辆...
发表于 2018-07-06 10:03
•
457次阅读
同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路...
发表于 2018-07-06 10:00
•
114次阅读
这个参数确定的是移位寄存器的移位时钟个数。这个时钟个数取决于后面的Depth参数。其中第一个参数Fi...
发表于 2018-07-06 10:00
•
62次阅读
在生成滤波器IP核之前需要产生抽头系数,这个抽头系数的阶数是自己设定的,阶数越高代表滤波器乘累加运算...
发表于 2018-07-06 10:00
•
74次阅读
将调制信号加上一个直流分量,保证信号的最小值大于零,然后再和载波相乘,得到已调信号。
发表于 2018-07-06 09:00
•
87次阅读
FPGA作为通信、航天、军工等领域的关键核心器件,是保障国家战略安全的重要支撑基础。近年来,随着数字...
发表于 2018-07-06 08:47
•
1416次阅读
我知道,我对与电子有关的所有事情都很着迷,但不论从哪个角度看,今天的现场可编程门阵列(FPGA),都...
发表于 2018-07-06 08:42
•
1131次阅读
据称,本次三家联合发布的解决方案是业界首个在电信云中采用FPGA完成商用级vBRAS数据面调度加速的...
发表于 2018-07-06 08:30
•
96次阅读
Qorvo在线研讨会:带你了解滤波器
发表于 2018-07-06 00:53
•
209次阅读
由于数据传输的差异,测试pattern生成的眼图并不一定会是从一个完整的眼图起始。因此,如果采用第一...
发表于 2018-07-05 15:25
•
269次阅读
在硬件电路设计中,每一个IC芯片都有相应的电源端口对其供电,以驱动IC进行工作。对于普通的IC芯片,...
发表于 2018-07-05 08:33
•
167次阅读
ADS中文基础教程
发表于 2018-07-05 03:05
•
183次阅读
因此,要想学好FPGA,你得用硬件的思维方式来编写代码,注重FPGA的系统结构设计,好的系统结构设计...
发表于 2018-07-04 14:12
•
102次阅读
因为Zynq-7000 PS(Processing System)端嵌入了Cortex-A9 ARM...
发表于 2018-07-04 14:12
•
101次阅读
JESD204B协议是目前高速AD,DA通用的协议。对于基带使用FPGA用户来说,Xilinx品牌的...
发表于 2018-07-04 10:12
•
85次阅读
低噪声、低失真的 LT1819 电路以适当增加器件数目和降低组件灵敏度为代价换取了一个可调带宽 ──...
发表于 2018-07-04 10:12
•
74次阅读
在做项目的过程中,经常遇到乘法计算,乘法器的设计就尤为重要。乘法器决定了最终电路功能能否实现,资源使...
发表于 2018-07-04 09:41
•
392次阅读
测量技术是现代工业生产和科学研究中必不可少的一项技术,其中基于磁致伸缩效应的位移测量技术因其稳定性好...
发表于 2018-07-03 14:06
•
409次阅读
虽然每个人都希望宣示ASIC的所有权,但大部份最先进的处理都是以FPGA完成的,它让用户有机会在高效...
发表于 2018-07-03 10:34
•
1030次阅读
Xilinx以制造 可编程门阵列(FPGA)而闻名,它是基于一个通过可编程接点连接的可配置逻辑块(C...
发表于 2018-07-03 10:19
•
147次阅读
本文是基于FPGA实现Cordic算法的设计与验证,使用Verilog HDL设计,初步可实现正弦、...
发表于 2018-07-03 10:18
•
87次阅读
随着信息技术的发展,特别是各种数字处理器处理速度的提高,人们对数据采集系统的要求越来越高,特别是在一...
发表于 2018-07-03 09:01
•
174次阅读
未加水印的图像表示为f水印表示为w,常数a控制水印和衬底图像的相对可见性。如果a为1,则水印是不透明...
发表于 2018-07-03 08:22
•
101次阅读
该委员会专门设计用于与来自锡林克斯的PYNQ项目合作,并使用Python语言和库,设计师可以创建高性...
发表于 2018-07-03 08:17
•
132次阅读
本视频介绍了一种通过了解控制带宽和输出滤波器电容特性估算电源瞬态响应的简单方法。该方法充分利用了这样...
发表于 2018-07-03 04:08
•
259次阅读
清华大学魏少军教授指出,未来10年,人工智能和深度学习将成为提升硅片需求的主导因素。到2025年,人...
发表于 2018-07-02 18:10
•
1217次阅读
通过对新设计的功能使用Virtualizer虚拟原型技术和对重用逻辑使用基于FPGA的HAPS原型技...
发表于 2018-07-02 11:50
•
95次阅读
而众所周知,在专用芯片与通用芯片中间,还有一个更为灵活,也更为神秘的领域:FPGA。无论是英特尔天价...
发表于 2018-07-02 07:59
•
335次阅读
Spartan-6系列具有低成本、省空间的封装形式,能使用户引脚密度最大化。所有Spartan-6...
发表于 2018-07-01 10:48
•
126次阅读
verilog实现反相器,2输入与门、2输入或门、2输入与非门、2输入或非门、2输入异或门、2输入同...
发表于 2018-07-01 10:28
•
142次阅读
RF2948B是为工作在2.4 GHz ISM频带的直接序列扩频系统而设计的收发器,适合在IEEE ...
发表于 2018-07-01 08:55
•
83次阅读
数字抽取滤波器是ΣΔADC(ΣΔAnolog-to-Digital Converter)的重要组成部...
发表于 2018-06-29 14:32
•
336次阅读
随着硬件技术的进步,软盘逐渐被新的存储介质代替。但部分旧设备(比如织布机等)并不支持这些更快、容量更...
发表于 2018-06-29 14:26
•
419次阅读
随着社会信息化程度的不断提高,人们对视频处理的要求越来越高,视频处理系统处理的数据量也越来越大。在嵌...
发表于 2018-06-29 14:13
•
463次阅读
一直以来,设计中的电磁干扰(EMI)问题十分令人头疼,尤其是在汽车领域。为了尽可能的减小电磁干扰,设...
发表于 2018-06-29 09:30
•
1196次阅读
真双口RAM给设计带来很多便利。在高速存储中,需要对连续的数据同时处理,使用简单双口RAM只能读取一...
发表于 2018-06-29 08:54
•
1232次阅读
前面说过操作系统能很好的去操作底层硬件,但是不知道什么时候去操作和操作到了什么程度,这些都是由应用程...
发表于 2018-06-29 08:49
•
486次阅读
基于Xilinx 16nm Virtex UltraScale+ 器件VU9P的异构计算实例F3在阿...
发表于 2018-06-28 09:57
•
839次阅读
百度云云市场从产品、技术、客户资源等多渠道,开放资源与能力,引入第三方合作伙伴,与合作伙伴深度合作,...
发表于 2018-06-28 09:51
•
1195次阅读
评论