首页 > 编程知识 正文

FIR数字信号处理(数字信号处理吴镇扬)

时间:2023-05-06 20:08:03 阅读:78013 作者:318

有限冲激响应(FIR )和无限冲激响应(IIR )滤波器都是常见的数字信号处理算法,它们特别适合于音频处理APP应用。 因此,在典型的音频系统中,处理器内核的大部分时间都用于FIR和IIR滤波。 数字信号处理器上的片上FIR和IIR硬件加速器也分别称为FIRA和IIRA,它们可以利用硬件加速器来分担FIR和IIR处理任务,使内核执行其他处理任务本文通过各种使用模型和实时测试示例,探讨如何在实践中利用这些加速器。

个人资料

图1.FIRA和IIRA系统框图

图1显示了FIRA和IIRA的简化框图,以及其雄辩的处理器系统和资源之间的交互。

FIRA和IIRA模块主要包含计算引擎(MAC )单元)和较小的本地数据和系数RAM。

为了发起FIRA/IIRA过程,内核使用信道特定的信息在处理器存储器中初始化DMA传输控制块(TCB )链。 然后,将该TCB链的起始地址写入FIRA/IIRA链指针寄存器,然后配置FIRA/IIRA控制寄存器开始加速处理。 所有通道配置完成后,都会向内核发送中断,内核可以将处理后的输出用于后续操作。

理论上,最好的方法是将所有FIR和/或IIR任务从内核迁移到加速器,以便内核同时执行其他操作。 但是,实际上,如果内核需要使用加速器输出进一步处理,而其他独立任务不需要同时完成,则这并不是始终可行的。 在这种情况下,为了获得最佳结果,必须选择适当的加速器使用模型。 水平。

本文讨论将这些加速器运用于各种应用场景的各种模型。

实时使用FIRA和IIRA

图2 .典型的实时音频数据流

图2显示了典型的实时PCM音频数据流图。 一帧数字化PCM音频数据在同步串行端口(SPORT )上接收,并通过直接内存访问(DMA )发送到内存。 继续帧N 1的接收,帧n由内核和/或加速器处理,并且帧(N-1 )的先前处理的输出通过SPORT进入DAC进行数模转换。

加速器使用模型

如上所述,根据APP应用程序的不同,可能需要以不同的方式使用加速器,以便最大限度地分担FIR和/或IIR处理任务,并尽可能节省内核周期用于其他操作。 从高级角度看,加速器使用模型分为三大类:直接替代、分割任务和数据管道。

直接替代

内核FIR和/或IIR处理直接被加速器取代,内核只需等待加速器完成此任务。

该模型仅在加速器的处理速度快于内核时有效,即使用FIRA模块。

拆分任务

FIR和/或IIR处理任务在内核和加速器之间分配。

当可以同时处理多个通道时,该模型特别有用。

根据粗略的时间序列估计,在内核和加速器之间分配信道总数,使两者几乎可以同时完成任务。

如图3所示,与直接替代模型相比,该使用模型可以节省更多的内核循环。

数据管线

内核和加速器之间的数据流可以流水线处理,两者可以在不同的数据帧中并行处理。

如图3所示,内核处理第n个帧,然后启动加速器来处理该帧。 内核随后继续进一步并行处理加速器上一代生成的第N-1帧的输出。 在此序列中,可以将FIR和/或IIR处理任务完全传输到加速器,但输出会有一些延迟。

管线级别和输出延迟可能会随着完整处理链中的此类FIR和/或IIR处理级别的数量而增加。

图3显示了音频数据帧如何在不同加速器使用模式的三个阶段之间传输。 DMAin、内核/加速器处理和DMA OUT。 此外,还显示了与仅使用内核模型相比,使用不同的加速器使用模型将所有或部分FIR/IIR处理迁移到加速器如何增加内核空闲周期。

图3 .加速器使用模式比较

SHARC处理器上的FIRA和IIRA

在以下ADI SHARC处

理器系列支持片内FIRA和IIRA(从旧到新)。

ADSP-214xx (例如, ADSP-21489)

ADSP-SC58x

ADSP-SC57x/ADSP-2157x

ADSP-2156x

这些处理器系列:

计算速度不同

基本编程模型保持不变,ADSP-2156x处理器上的自动配置模式(ACM)除外。

FIRA有四个MAC单元,而IIRA只有一个MAC单元。

ADSP-2156x处理器上的FIRA/IIRA改进

ADSP-2156x是SHARC处理器系列中的最新的产品。它是第一款单核1 GHz SHARC处理器,其FIRA和IIRA也可在1 GHz下运行。ADSP-2156x处理器上的FIRA和IIRA与其前代ADSP-SC58x/ADSP-SC57x处理器相比,具有多项改进。

性能改进

计算速度提高了8倍(从SCLK-125 MHz至CCLK-1 GHz)。

由于内核和加速器借助专用内核结构实现了更紧密的集成,因此减少了内核和加速器之间的数据和MMR访问延迟。

功能改进

添加了ACM支持,以尽量减少进行加速器处理所需的内核干预。此模式主要具有以下新特性:

允许加速器暂停以进行动态任务排队。

无通道数限制。

支持触发生成(主器件)和触发等待(从器件)。

为每个通道生成选择性中断。

实验结果

在本节中,我们将讨论在ADSP-2156x评估板上,借助不同的加速器使用模型实施两个实时多通道FIR/IIR用例的结果

用例1

图4显示用例1的方框图。采样率为48 kHz,模块大小为256个采样点,拆分任务模型中使用的内核与加速器通道比为5:7。

表1显示测得的内核和FIRA MIPS数量,以及与仅使用内核模型相比获得的节约内核MIPS结果。表中还显示了相应使用模型增加的额外输出延迟。正如我们所看到的,使用加速器配合数据流水线使用模型,可节约高达335内核MIPS,但导致1块(5.33 ms)的输出延迟。直接替代和拆分任务使用模型也分别可节约98 MIPS和189 MIPS,而且未导致任何额外的输出延迟。

图4.用例1方框图

用例2

图5显示用例2的方框图。采样率为48 kHz,模块大小为128个采样点,拆分任务模型中使用的内核与加速器通道比为1:1。

与表1一样,表2也显示了此用例的结果。正如我们所看到的,使用加速器配合数据流水线使用模型,可节约高达490内核MIPS,但导致1模块(2.67 ms)的输出延迟。拆分任务使用模型可节约234内核MIPS,而没有导致任何额外输出延迟。请注意,与用例1中不同,在用例2中内核使用频域(快速卷积)处理,而非时域处理。这就是为何处理一个通道所需的内核MIPS比FIRA MIPS少的原因,这可导致直接替代使用模型实现负的内核MIPS节约。

图5.用例2方框图

结论

在本文中,我们看到如何利用不同的加速器使用模型实现所需的MIPS和处理目标,从而将大量内核MIPS转移到ADSP-2156x处理器上的FIRA和IIRA加速器。

作者

Mitesh Moonat

Mitesh Moonat目前在印度班加罗尔(ADBL)处理器应用团队担任应用工程师。他从事前/后晶片验证、外设驱动器开发和SHARC处理器支持工作。在ADI就职期间,他还从事Blackfin和21xx处理器工作。他的工作领域包括处理器架构、数字信号处理算法优化、模块以及嵌入式系统的系统级调试。Mitesh于2006年加入ADI公司。他毕业于印度瓦朗加尔国家技术学院,获得电子和通信工程学士学位。

Sanket Nayak

Sanket Nayak是印度班加罗尔(ADBL)处理器应用团队的产品应用工程师。他于2016年加入ADI公司,一直从事汽车DSP的前/后晶片验证、驱动器/FuSa ROM设计、开发和测试工作。他获得班加罗尔PES技术学院电子和通信工程学士学位。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。