FPGA与数字信号处理

过去十几年,通信与多媒体技术的快速发展极大地扩展了数字信号处理(DSP)的应用范围。眼下正在发生的是,以更高的速度和更低的成本实现越来越复杂的算法,这是针对高级信息服更高带宽以及增强的多媒体处理能力等需求的日益增加的结果。一些高性能应用正在不断发展,其中包括高级有线和无线音频、数据和视频处理。
通信和多媒体应用的发展,如互联网通信、安全无线通信以及消费娱乐设备,都在驱动着对能够有效实现复数运算和信号处理算法的高性能设备的需求。
这些应用中需要一些典型的DSP算法包括快速傅里叶变换(FFT)、离散余弦变换(DCT)、小波变换、数字滤波器(有限脉冲响应(FIR)、无限脉冲响应(IIR)和自适应滤波器)以及数字上下变频器。这些算法中,每一种都有一些结构性的元件可以用并行方法实现。而FPGA体系结构能够有效地实现并行运算。
数字滤波器:
数字滤波器通常用于修正和改变时域或频域中信号的特性。最为普通的数字滤波器就是线性时间不变(Linear Time-Invariant,LTI)滤波器。通常分为有限脉冲响应(FIR)和无限脉冲响应(IIR)两大类。
FIR滤波器:
有限长单位冲激响应滤波器,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
FIR滤波处理如下式所示,其中x(n)为输入信号,h(n)为FIR滤波系数,y(n)为经过滤波后的信号;N表示FIR滤波器的抽头数,滤波器阶数为N-1。

由上式可得到FIR滤波器在FPGA中的实现结构,如图1所示,主要由延迟单元Z-1、乘法器和累加器组成。此结构为直接型FIR滤波器结构,也称横向结构(transverse)。
FIR结构如下:

FIR滤波器结构
FIR滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号。FIR滤波器是全零点结构,系统永远稳定;并且具有线性相位的特征,在有效频率范围内所有信号相位上不失真。详细算法这里不多做介绍。
IIR滤波器:
IIR--无限脉冲响应滤波器,它的设计理念是根据所要设计滤波器的参数去确定一个模拟滤波器的传输函数,然后再根据这个传输函数,通过双线性变换、或脉冲响应不变法来进行数字滤波器的设计。
其实际为递归滤波器,顾名思义,具有反馈。
IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。
其他数字信号处理方法:
离散傅里叶变换
自适应滤波器
最小二乘法
NTT高效卷积
NTT快速卷积
CIC滤波器
与数字信号处理相关的技术:
矩形变换与数论变换
差错控制和加密技术
调制以及解调
FPGA在数字信号处理(DSP)中的使用
在FPGA内实现DSP功能具有以下优点:
性能提升
设计实现灵活性提高
系统级集成更高
通过一些设计调整的结合运用,基于FPGA的信号处理性能还可以获得进一步的提升。运算速度或者数据路径宽度都可以进一步提高,另外,时序操作可以在结构上增加一些并行度。这些措施中,每一种都可以提高一定的性能。在利用了目标FPGA器件灵活性的结构中实现算法,会获得比较大的好处。
利用FPGA,可以将多个设计功能集成到一个器件中。这种功能性的集成也可以提高性能、减小面积和功耗。
信号处理实现的另一个潜在的优点是,FPGA中包含一些预先验证过的信号处理算法单元。这些IP核或者块可以非常有效的实现一些常用的信号处理功能,使他们的性能达到最高。将多个高性能信号处理算法集成在一起,可以有效的降低成本、风险、,缩短开发时间。
设计考虑:
FPGA设计中一些注意事项对于下面列举的信号处理算法的实现非常重要。这些设计因素必须仔细的去实现,这样才能达到最高的性能,将设计实现的时间缩到最短。
同步设计的实现
模块化项目结构
时钟边界转换
时钟体系结构的实现
关键时钟与控制信号的布线
流水线深度和结构
有效的设计约束
信号处理算法架构的决策
加入良好的调试功能
随着FPGA技术的进步,在FPGA中实现信号处理算法正在成为有吸引力的替代方案,其实现成本也很诱人。在FPGA中实现信号处理算法,传统上的限制正在硬件和软件设计层次上逐渐被克服。FPGA硬件结构正在实现增强的DSP块。并具有更多的功能和更强的性能。系统级设计软件正在简化从块级到硬件描述语言(HDL),级的转换。一些系统工具中集成了流行的DSP算法开发工具(例如MATLAB),大大简化了FPGA中实现信号处理算法的过程。
版权所有权归卿萃科技,转载请注明出处。
作者:卿萃科技ALIFPGA
原文地址:卿萃科技FPGA极客空间 微信公众号

扫描二维码关注卿萃科技FPGA极客空间
FPGA与数字信号处理的更多相关文章
- 转载--关于FPGA设计数字信号处理电路的心得
FPGA使用的越来越广泛,除了可用于设计控制电路以为,数字信号处理电路更是FPGA的强项和难点.个人可以说才刚刚入门FPGA设计,也做过一些数字信号处理方面的电路设计,记录下个人心得体会. (一)善用 ...
- FPGA与数字图像处理技术
数字图像处理方法的重要性源于两个主要应用领域: 改善图像信息以便解释. 为存储.传输和表示而对图像数据进行处理,以便于机器自动理解. 图像处理(image processing): 用计算机对图像进行 ...
- 数字信号处理专题(3)——FFT运算初探
一.前言 FFT运算是目前最常用的信号频谱分析算法.在本科学习数字信号处理这门课时一直在想:学这些东西有啥用?公式推来推去的,有实用价值么?到了研究生后期才知道,广义上的数字信号处理无处不在:手机等各 ...
- 数字信号处理专题(1)——DDS函数发生器环路Demo
一.前言 会FPGA硬件描述语言.设计思想和接口协议,掌握些基本的算法是非常重要的,因此开设本专题探讨些基于AD DA数字信号处理系统的一些简单算法,在数字通信 信号分析与检测等领域都会或多或少有应用 ...
- 数字信号处理--FFT与蝶形算法
在数字信号处理中常常需要用到离散傅立叶变换(DFT),以获取信号的频域特征.尽管传统的DFT算法能够获取信号频域特征,但是算法计算量大,耗时长,不利于计算机实时对信号进行处理.因此至DFT被发现以来, ...
- 数字信号处理与音频处理(使用Audition)
前一阵子由于考博学习须要,看了<数字信号处理>,之前一直不清除这门课的理论在哪里应用比較广泛. 这次正巧用Audition处理了一段音频,猛然发现<数字信号处理>这门课还是很实 ...
- 数字信号处理MATLAB简单序列
数字信号处理应用的几个基本序列: 1 单位样本序列 function mainImseq() clc clear disp('生成抽样序列'); y=imseq(,,); %调用样本函数,此时序列下标 ...
- 基于FPGA的数字识别的实现
欢迎大家关注我的微信公众号:FPGA开源工作室 基于FPGA的数字识别的实现二 作者:lee神 1 背景知识 1.1基于FPGA的数字识别的方法 通常,针对印刷体数字识别使用的算法有:基于模版 ...
- 现代数字信号处理——AR模型
1. AR模型概念观 AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推, ...
随机推荐
- Tomcat利用Redis存储Session
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt269 如果英文不错的看,建议直接看官网吧,官网写的挺清楚.下面的内容是转载的 ...
- C++IO类&文件输入输出
C++IO类&文件输入输出 istream(输入流)类型,提供输入操作. ostream(输出流)类型,提供输出操作. cin,一个istream对象,从标准输入读取数据. cout,一个os ...
- 猎八哥浅谈MYSQL触发器
什么是MYSQL触发器,我们先了解一下触发的意思.触发的字面意思是指因触动而激发起某种反应. MYSQL必知必会中对触发器的解释是:MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于 B ...
- 个人作业3-个人总结(Alpha阶段)
一.个人总结 1.团队状况:这是我们第一次团队开发,小组成员的编程水平都相对一般,要在一周内完成一个APP是一个很大的考验.再加上冲刺的那周团队大半成员都在为一个比赛培训,时间就更少了,曾经有很多次我 ...
- 【beta】阶段 第六次 Scrum Meeting
每日任务 1.本次会议为第六次 Meeting会议: 2.本次会议在周六上午大课间,在陆大楼召开,召开本次会议为15分钟. 一.今日站立式会议照片 二.每个人的工作 (有work item 的ID) ...
- 201521123082 《Java程序设计》第7周学习总结
201521123082 <Java程序设计>第7周学习总结 标签(空格分隔): Java 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ...
- 201521123087 《java程序设计》 第七周学习总结
1. 本周学习总结 2. 书面作业 ArrayList代码分析1.1 解释ArrayList的contains源代码 ...
- 201521123037 《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 接口: 接口简而言之是方法声明和常量值的集合,接口中所有的方法默认为public ...
- 201521123025《java程序设计》第14周学习总结
1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作 1.1建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 1.2在自己建立的数据库上执行常见SQL语句 ...
- 201521123074 《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 Q1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现 ...