0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用FPGA实现高效并行实时上采样

FPGA设计论坛 来源:未知 2023-06-08 17:15 次阅读


点击上方蓝字关注我们


采样就是采集模拟信号的样本。通常采样指的是下采样,也就是对信号的抽取。其实,上采样和下采样都是对数字信号进行重采,重采的采样率与原来获得该数字信号的采样率比较,大于原信号的称为上采样,小于的则称为下采样。上采样是下采样的逆过程,也称增取样或内插。

本文介绍一种使用Virtex-6器件和WebPACK工具实现实时四倍上采样的方法。

许多信号处理应用都需要进行上采样。从概念上讲,对数据向量进行M倍上采样的简单方法是用实际频率分量数的(M-1)倍个零填充数据向量的离散傅里叶变换(DFT)[1],然后将零填充向量转换回时域[1,2]。但这种方法计算量很大,因此不能在FPGA内部高效实现。在本文介绍的高效并行实时上采样电路中,每个ADC时钟可产生M个上采样值,其中M是所需的上采样倍数。在我们的Virtex-6 XC6VLX75T FPGA实现方案中,上采样倍数M为4,可以作为较普遍方法的一个实例。

我们并行上采样方法的总体概念源于某些作者所称的“窗口SINC插值”,这种方法在文献资料[3,4]中有一些非常精彩的专文介绍。

为了更好的说明,现以图1中所示的16MHz模拟信号为例。该信号的表达式为:

图1 - 展示上采样过程的16MHz信号实例

如果用12位ADC以80MHz的频率对图1所示的信号进行采样或量化,输入范围为ADC完整输入范围的97.7%,则每个信号周期只能采样五次,产生的样本数据序列如图2所示。如果对该示例数据序列进行四倍上采样,则有效采样率为320MHz,每个信号周期能够提供20个样本。虽然您可以使用本文介绍的方法进行更高倍数的上采样,但为了说明起见我们还是使用M=4的上采样。

图2 - 本图是12位ADC,输入范围为ADC完整输入范围的97.7%,用80MHz或每周期五次频率对图1的模拟信号采样得到的样本数据序列实例。

当然,还可以通过直接在ADC生成的数据序列的每个实际样本值之间插入(M-1)个零来获得上采样数据向量及所需的样本数(公认效果较差)。该“零插入步骤”对应于复制频域中的原始信号频谱。通过对得到的“零填充”时域信号进行低通滤波,就能去除频域中所需频谱的“复本”,从而获得上采样数据向量。

FIR滤波器设计

频域中的理想(砖墙式)低通滤波器相当于在时域中用无限域Sinc函数作卷积。因此为近似化所需的卷积运算,可让前述的零填充时域信号通过速率为ADC时钟频率M倍的对称低通FIR滤波器,该滤波器拓扑结构与图3所示的示例31抽头FIR滤波器相同。用这种方法,我们可以实时生成上采样数据向量。图3中的R1、R2、...、R31代表速率为ADC时钟频率M倍的寄存器,C0、C1、…、C15代表FIR滤波器的系数。

图3 - 当滤波器工作在基本ADC时钟频率的M倍频率时,零插入步骤中使用31抽头FIR滤波器每时钟周期可生成一个上采样数据值

需要说明的是,图3所示的FIR滤波器中的大部分寄存器在任何特定时钟间隔内都会包含0,而非实际的样本数据。以M=4为例,当R1包含实际样本数据时,R2、R3和R4将包含0。当R1包含实际样本数据时,R5、R9、R13、R17、R21、R25和R29也将包含实际样本数据,其余的寄存器将包含0。在下一时钟间隔中,R2、R6、R10、R14、R18、R22、R26和R30将包含实际样本数据。

如图3所示,由于在通过FIR滤波器的每M个样本中有M-1个样本为0,就M=4、使用31抽头FIR滤波器的情况而言(如图4所示),您可以将滤波器分解开,并行产生M个输出。采用这种实现方案,并行FIR滤波器的工作频率为ADC的基本时钟频率,而非ADC时钟频率的M倍。

图4 - 通过在任何给定时钟周期内对图3中每四个寄存器中一个包含非零数据的寄存器进行观察,可以拆解该滤波器,再让滤波器在以基础ADC时钟频率运行的情况下并行

如图4所示,您可以设定窗口SINC函数的系数Cw(n)来限度地减少实现该FIR滤波器所需的乘法器数量。对于T个抽头的低通FIR滤波器而言,可通过下式得出系数:

等式2

这里的汉宁窗系数的计算方法为:

等式3

窗口SINC函数系数Cw(n)随即通过对应的C(n)和H(n)值相乘即可得到,如:

等式 4

在M=4时,如果按上面介绍的方法计算31抽头FIR滤波器的系数,令C0=1.0,C4=C8=C12=C15=0,则无需使用与图4中这些系数有关的9个乘法器。此外,由于生成UPSAMPLED VALUE(1)每个系数会使用两次,用户可以“折叠”该实现方案,比如在相乘之前让R1和R8相加,这样就可以去掉四个乘法器。得到的设计仅使用18个乘法器每时钟周期就可产生四个上采样值。需要注意的是按上文介绍的设计方法,每个原始样本值会原样从并联滤波器输出。

我们使用图5所示的可综合VHDL[5]模型评估图4所示电路的性能。该VHDL实现方案假定样本数据为12位,即可能来自美国模拟器件公司的AD9670八通道超声前端集成电路的数据。滤波器系数表达为25位定点常数,以与集成到FPGA芯片上的乘法器输入位数相匹配。来自ADC的输入样本先馈入与输入引脚相连的寄存器(图4中的R1),上采样输出值则使用与输出引脚相连的寄存器。寄存器R2到R8属芯片内部寄存器。寄存器R1到R8故意设定为15位宽度,以便为综合后逻辑提供执行计算所需的动态余量。该设计能检查溢出或下溢,还能将结果钳制在有效范围以内。

图5 - 该VHDL源代码使用单进程和25位定点系数实现图4的滤波器拓扑结构。

无需流水线化

图6显示的是使用的WebPACK工具中提供的14.7版ISim仿真器对该VHDL模型进行仿真并将馈送图2中的采样/量化12位数据序列后得到的上采样数据序列。每个原始的12位样本均保持不变,原因上文已述。原始波形中每个实际样本之间插入了三个新样本。

图6 - 该图表显示的是VHDL模型生成的上采样数据序列

计算所得(上采样所得)值与原始模拟信号中理想值之间的误差为整个范围的0.464%,平均误差为整个范围的0.070%。当然因初始量化步骤原因,在采样/量化12位源矢量数据值中存在1/2 LSB的误差(合整个范围的0.012%)。

布局布线设计使用19个DSP48E1模块,但占用的Virtex-6 Slice资源不足1%,无需流水线化即可运行在107MHz下。

我们使用WebPACK工具14.7版在XC6VLX75T-3FF484 Virtex-6 FPGA上实现这一上采样器。布局布线设计占用该器件中288个DSP48E1模块中的19个,但使用的Slice资源不足1%。终得到的上采样电路能够运行在107MHz下。无需让滤波器流水线化即可实现这一性能。此外,我们还开发出了用流水线实现的版本,可以工作在217MHz以上。

虽然XC6VLX75T-3FF484是Virtex-6系列中的端成员,但芯片上仍集成有288个带有25x18位乘法器的DSP48E1模块。换言之,在理论上足以实现15个图4所示的并行上采样FIR滤波器。我们制作的原型环形阵列超声系统使用了八套以80MHz的频率运行在XC6VLX75T FPGA上的上采样器,在波束成形之前对来自八通道Analog Devices AD9670超声前端芯片的数据进行上采样处理。在该系统中,上采样器按仿真预测的方式运行,在以AD9670 ADC的基本时钟频率80MHz运行的情况下,能使用上采样到320MHz的数据实时完成波束成形。

型Virtex-6 FPGA器件XC6VSX475T包含有2,016个25x18位乘法器,在理论上一个芯片就可以实现106个图4所示类型的上采样滤波器。

只要滤波器使用本文介绍的高效并行拓扑结构进行设计,就能够使用实现在工作频率为107MHz的XC6VLX75T-3FF484 FPGA上的FIR滤波器完成M=4倍的实时上采样。原始数据样本将原封不动通过滤波器,并行产生(M-1)=3个上采样值。这种简明的FIR滤波器设计方法无需借助复杂精密的滤波器设计工具就能提供优异的结果。本文介绍的思路稍加拓展,就可以使用更大的因数进行上采样,或者是使用抽头数更多的FIR滤波器降低计算出的上采样值的误差。

这种简明的FIR滤波器设计方法无需借助复杂精密的滤波器设计工具就能提供优异的结果。






有你想看的精彩




至芯科技-FPGA就业培训来袭!你的选择开启你的高薪之路!5月30号西安中心开课、欢迎咨询!
FPGA_电机控制Verilog
VGA、HDMI、DP…不同视频接口有什么区别?






扫码加微信邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!


点个在看你最好看






原文标题:使用FPGA实现高效并行实时上采样

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603012

原文标题:使用FPGA实现高效并行实时上采样

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    助力AIoT应用:在米尔FPGA开发板实现Tiny YOLO V4

    受限的设备运行,尤其在低功耗、实时检测的边缘计算设备中表现出色。相比传统 GPU,FPGA 能在小面积和低功耗下实现类似的推理性能,非常契合 AIoT 应用。像米尔 ZU3EG 这样
    发表于 12-06 17:18

    FPGA 实时信号处理应用 FPGA在图像处理中的优势

    现场可编程门阵列(FPGA)是一种高度灵活的硬件平台,它允许开发者根据特定应用需求定制硬件逻辑。在实时信号处理和图像处理领域,FPGA因其独特的优势而受到青睐。 1. 并行处理能力
    的头像 发表于 12-02 10:01 423次阅读

    SXRTO(采样扩展实时示波器)的5W1H

    (RTO)和采样示波器(SO)的优点的示波器。实时示波器(RTO):实时示波器基于纯模拟技术,通过对输入信号进行放大和扫描,在示波器屏幕直接呈现连续可变的波形。其
    的头像 发表于 11-21 10:24 166次阅读
    SXRTO(<b class='flag-5'>采样</b>扩展<b class='flag-5'>实时</b>示波器)的5W1H

    FPGA在图像处理领域的优势有哪些?

    等协同工作,实现高效的图像处理。这种多接口支持使得FPGA在构建复杂的图像处理系统时具有更大的灵活性。 七、实时流水线运算 FPGA能进行
    发表于 10-09 14:36

    EasyGo实时仿真丨PCS储能变流器控制仿真应用

    “CBox采用CPU+FPGA的双模块设计简化了仿真流程,上位机软件图形化操作也很直观,可在线实时调整参数,极大地提高了工作效率。”——华科某实验室FPGA以其快速并行处理能力,在储能
    发表于 09-20 10:17

    FPGA在自动驾驶领域有哪些应用?

    FPGA在自动驾驶领域的主要应用: 一、感知算法加速 图像处理:自动驾驶中需要通过摄像头获取并识别道路信息和行驶环境,这涉及到大量的图像处理任务。FPGA在处理图像的运算速度快,可并行
    发表于 07-29 17:09

    FPGA在人工智能中的应用有哪些?

    以承担机器人路径规划、环境感知、运动控制等任务,结合外部传感器的反馈信息,实现高效、准确的机器人控制系统。 四、优势总结 高并行性:FPGA的高并行
    发表于 07-29 17:05

    在多FPGA集群实现高级并行编程

    今天我们看的这篇论文介绍了在多FPGA集群实现高级并行编程的研究,其主要目标是为非FPGA专家提供一个成熟且易于使用的环境,以便在多个
    的头像 发表于 07-24 14:54 1242次阅读

    如何在FPGA实现神经网络

    可编程门阵列(FPGA)作为一种灵活、高效的硬件实现方式,为神经网络的加速提供了新的思路。本文将从FPGA实现神经网络的基本原理、关键技术、
    的头像 发表于 07-10 17:01 1905次阅读

    基于FPGA的阵列相机的实时监测和大容量存储

    实时存储,下载,查询,清空等功能。 2.2 各模块介绍 2.2.1 GPU + A7 100t 交互处理模块 本模块完成了整个 FPGA 系统的主控和与 GPU 之间的通信
    发表于 06-20 20:10

    基于FPGA实时边缘检测系统设计,Sobel图像边缘检测,FPGA图像处理

    运行时, FPGA 并行运算平台首先完成对摄像头的初始化和寄存器配置,配置完成之后读取实时的图像数据存入 SDRAM 存储器中,在 FPGA 芯片内部
    发表于 05-24 07:45

    如何用cubemx配置并实现STM32F373的三个SDADC并行采样

    求大神指点如何实现STM32F373的三个SDADC并行采样,用cubemx配置?
    发表于 03-11 07:14

    如何使用FPGA驱动并行ADC和并行DAC芯片?

    ADC和DAC是FPGA与外部信号的接口,从数据接口类型的角度划分,有低速的串行接口和高速的并行接口。
    的头像 发表于 02-22 16:15 3644次阅读
    如何使用<b class='flag-5'>FPGA</b>驱动<b class='flag-5'>并行</b>ADC和<b class='flag-5'>并行</b>DAC芯片?

    等效时间采样示波器与实时示波器的对比,有什么不同?

    等效时间采样示波器与实时示波器的对比,有什么不同? 等效时间采样示波器和实时示波器是电子测试设备中常用的两种示波器。它们在运行原理、应用场景、优点和缺点等方面存在一些显著差异。 一、等
    的头像 发表于 01-19 11:29 1457次阅读

    采样示波器和实时示波器的区别

    采样示波器和实时示波器的区别  采样示波器和实时示波器是电子测量领域常用的两种示波器类型,它们在原理、特点、应用和优缺点等方面存在差异。下面我将从这些方面逐一详细介绍,以帮助你更好地理
    的头像 发表于 01-03 17:13 1290次阅读