基于PYNQ的数字信号处理之旅

描述

 

在PYNQ RFSoCWorkshop之后,Xilinx再次推出DSP-PYNQ,与之前只发布了基于RFSoC2x2开发套件的overlay和notebooks不同,本次发布的工程增加了对ZCU111和Ultra96的支持

 

Overlay


开发者可以通过简单的命令快速安装overlay,并正式开启基于PYNQ的数字信号处理之旅。


# PYNQ v2.4.1 v2.5pip3 install https://github.com/Xilinx/DSP-PYNQ/releases/download/v1.0_$BOARD/dsp_pynq-1.0-py3-none-any.whl
# PYNQ v2.6pip3 install https://github.com/Xilinx/DSP-PYNQ/releases/download/v2.0_$BOARD/dsp_pynq-2.0-py3-none-any.whl
python3 -c 'import dsp_pynq; dsp_pynq.install_notebooks()'

 

Notebooks


 

本次DSP-PYNQ一共发布了两个有关数字信号处理的notebooks,这些notebooks可以帮助开发者快速熟悉和理解如何使用Python和PYNQ开发数字信号处理(DSP)应用。其中第一个notebook是围绕数字信号处理功能的DSP和Python包入门应用,第二个notebook在第一个的基础上,将FFT和FIR处理搬移到PL端进行加速处理。

 

Notebook 1:苏格兰鸟类录音分析


在该示例应用中,我们将从可视化一些有趣的信号开始——苏格兰鸟类的录音!这段录音包含两种不同频率的苏格兰鸟的声音,我们将使用一些不同的分析技术来了解这些信号,最后对音频进行处理以分离出单一类型的鸟类。

  • 引入SciPy ecosystem,包括用于DSP运算的scipy.signal和用于数组的numpy。

    • 获取采样频率,样本数组类型,样本数据格式,数据长度等信息。

    • 使用Scipy对原始样本数据进行FFT操作。

      数字信号

      时域信号

      数字信号

      频域信号

    • 使用Scipy设计FIR滤波器,并验证其频率响应。

      数字信号

      FIR频率响应

    • 使用FIR滤波器对原始信号进行滤波。

      数字信号

      FIR滤波前频谱

      数字信号

      FIR滤波后频谱

  • 使用plotly_express和pandas dataframe实现可视化操作,能够自由对绘图进行zoomin/pan around/zoom back 保存等操作,上述图片均使用ploty_express绘得。

 

Notebook2:使用FPGA实现硬件加速


 

在该示例应用中,我们将会使用相同的SciPy技术来分析记录有两种鸟类声音的音频,并使用滤波器来分离其中一种声音。但是,这一次我们将会把软件的FFT和FIR函数搬移到FPGA端实现硬件加速,同时使用PYNQ控制。

  • 使用LogiCoreFIR Compiler和LogiCireFFT构建硬件加速逻辑。

    数字信号

    硬件设计

  • 使用AXI DMA实现PL端与PS端的Memory共享。

  • 使用Python为FPGA硬件构建控制函数,通过DMA传输数据和配置信息,实现对FFT和FIR IP核的on-the-fly重配置以及功能实现。

审核编辑 :李倩

 


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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分