行业展会

数字信号处理 fir 如何充分利用数字信号处理器上的片内FIR和IIR硬件加速器

小编 2024-11-23 行业展会 23 0

如何充分利用数字信号处理器上的片内FIR和IIR硬件加速器

有限脉冲响应(FIR)和无限脉冲响应(IIR)滤波器都是常用的数字信号处理算法---尤其适用于音频处理应用。因此,在典型的音频系统中,处理器内核的很大一部分时间用于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进行数模转换。

加速器使用模型

如前所述,根据应用的不同,可能需要以不同的方式使用加速器,以最大限度分担FIR和/或IIR处理任务,并尽可能节省内核周期以用于其他操作。从高层次角度来看,加速器使用模型可分为三类:直接替代、拆分任务和数据流水线。

直接替代

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

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

拆分任务

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

当多个通道可并行处理时,此模型特别有用。

根据粗略的时序估算,在内核和加速器之间分配通道总数,使二者大致能够同时完成任务。

如图3所示,与直接替代模型相比,此使用模型可节省更多的内核周期。

数据流水线

内核和加速器之间的数据流可进行流水线处理,使二者能够在不同数据帧上并行处理。

 如图3所示,内核处理第N个帧,然后启动加速器对该帧进行处理。内核随后继续进一步并行处理加速器在上一迭代中产生的第N-1帧的输出。该序列允许将FIR和/或IIR处理任务完全转移给加速器,但输出会有一些延迟。

 流水线级以及输出延迟都可能会增加,具体取决于完整处理链中此类FIR和/或IIR处理级的数量。

图3说明了音频数据帧如何在不同加速器使用模型的三个阶段之间传输---DMA IN、内核/加速器处理和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技术学院电子和通信工程学士学位。

FIR和IIR滤波器的设计步骤

我们的教科书中总喜欢先介绍IIR,再介绍FIR,我也先介绍IIR。

IIR滤波器的设计:

低通滤波器顾名思义就是低频率成分通过,高频率成分截止,那么在设计一个低通滤波器时首先要明白想要截止多大的频率。比如想截掉4Hz以上的信号,理想状态下就是将4Hz以上的信号成分全部截止,4Hz以下的信号全部保留。然而事实上几乎不存在这样的滤波器,通常情况下总是在通过频率和截止频率之间存在一个过渡带。通过频率这部分称为通带,允许通过的最大频率为通带截止频率ωp,截至频率这部分称为阻带,阻带最小截至频率为ωs,通带和阻带之间的部分为过渡带,也即ωp~ωp。通带之间的波动称为通带波动δp,阻带之间的波动称为阻带波动δs。

数字滤波器设计中,Wp和Ws为归一化角频率,如果工程要求设计低通数字滤波器满足通带截止频率为fp = 40,阻带截止频率fs = 50,则fp,fs和Wp,Ws之间的转换关系为:

Wp = 2*pi*fp/Fs;

Ws = 2*pi*fs/Fs;

截止频率的定义是当输出幅值响应下降到输入幅值的-3dB ( 20*log(1/sqrt(2)) ),也就是0.707(也就是 1/sqrt(2))时对应的频率,也称3db截频。

%%巴特沃斯数字滤波器函数:

[n,Wc] = buttord(Wp/pi,Ws/pi,Ap,As);

[b,a] = butter(n,Wc,'low');%低通滤波器

----------------------------------------

%% 切比雪夫1型低通滤波器

[N,wc] = cheb1ord(Wp/pi ,Ws/pi ,Ap,As);

[b,a] = cheby1(N,Ap,wc,'low');

%% 椭圆低通滤波器

[N,wc] = ellipord(Wp/pi ,Ws/pi ,Ap,As);

[b,a] = ellip(N,Ap,As,wc,'low');

FIR滤波器的设计:

采用窗函数法设计理想低通,高通滤波器,参考北京交通大学陈后金主编的【数字信号处理】5.2节 窗函数法设计线性相位FIR数字滤波器P164,和P188。

设计步骤如下:

1) 确定滤波器类型,不同的FIR类型可设计不同类型的滤波器,I型可设计LP(低通滤波器),HP(高通滤波器),BP(带通滤波器),BS(带阻滤波器)。

2) 确定设计的滤波器的参数

Eg:若要设计一个低通滤波器,fp=20,fs=30;Ap=1,As=40,则3db截频Wc = 2*pi*(fs-fp)/Fs;Fs为采样频率。

当选定某一窗函数时,衰耗Ap和As就已经确定,凯撒窗除外。Ap和As的计算方法可参看另外一篇博客: https://www.cnblogs.com/xhslovecx/p/10118570.html

3) 确定窗函数

50<A , β = 0.1102(A-8.7);

21<=A<=50, β=0.5842(A-21)^0.4 + 0.07886(A-21);

A<21, β = 0;

4) 确定滤波器的阶数M,首先确定滤波器的长度N。对于除凯撒窗以外的窗函数,N值由以下公式确定:

N>=(窗函数近似过渡带宽度)/(Wp-Ws)

若采用Kaiser窗,则

M≈ (A-7.95)÷ 2.285*|Wp-Ws|,A>21。其中,A = -20lg(min(δp,δs))

5) 理想滤波器脉冲信号如下:

hd = (Wc/pi)*sinc(Wc*(k-0.5*M)/pi);%低通

hd = -(Wc/pi)*sinc(Wc*(k-0.5*M)/pi);%高通

6) 加窗:

W = hanning(N); W = hamming(N); W = blackman(N); N = M+1;

W = kaiser(N,beta);

7) 截断

h = hd.*W;

8)滤波

sigFiltered = filter(h,[1],signal);

相关问答

FIR数字滤波器的原理及方法?

FIR(FiniteImpulseResponse)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具...

iir与fir滤波器的优缺点?

一、FIR滤波器的优缺点优点:1、有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和...

FIR数字滤波器设计原理?

原理:在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,把模拟信号转化为数字信号;为了使信号处理能够不发生失真,信号的采样速度必须满足奈奎斯特定...

数字滤波器设计求解答急用对模拟信号进行低通滤波处理,要求...

[最佳回答]数字滤波器设计题:对模拟信号进行低通滤波处理,要求通带0≤f≤5kHz,通带衰减小于0.5dB,阻带5.5kHz≤f<∞,阻带衰减大于50dB,设采样频率Fs=20kHz。(...

FIR反馈回路怎么看?

FIR反馈回路可以通过查看数字滤波器的差分方程来判断。如果数字滤波器的差分方程中没有包含反馈项,则该滤波器为FIR滤波器,没有反馈回路。如果数字滤波器的差...

fir数字滤波器优点?

1、有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的...

数字信号处理,设离散系统方程为y(n)=x(n)+2x(n-1)+3x(n-2)+4...

[最佳回答]系统结构如下:由于系数没有对称性,因此不可能具有线性相位特性.

FIR与IIR的区别?

对FIR来说和IIR最大的差别是可以实现线性相位。所以图像处理和数据传输等对相位敏感的必须用FIR。语音信号则可以用设计量相对小、并且幅频特性精度高的IIR。...

请问数字信号处理主要学什么?

数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。数字信号处...

fir怎么确定通带频率?

要求通带边界频率为400hz,阻带边界频率为500hz,通带最大衰减1db,阻带最小衰减40db,抽样频率为2000hz,用matlab画出幅频特性,画出并分析滤波器传输函数的零...

猜你喜欢