前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FPGA卡拉ok系统--Biquad filter

FPGA卡拉ok系统--Biquad filter

作者头像
FPGA开源工作室
发布2020-11-03 15:31:14
1.8K0
发布2020-11-03 15:31:14
举报
文章被收录于专栏:FPGA开源工作室

本文翻译自:http://www.earlevel.com/main/2003/02/28/biquads/

作者:Posted on February 28, 2003 by Nigel Redmon

1 硬件需求介绍

图1 卡拉ok硬件系统

1)麦克风(microphone)

2)音频ADC --PCM1080或其他音频ADC

3)FPGA --卡拉ok系统

4)音频DAC--PCM5102A

5)音响

6)显示屏

2 FPGA硬件系统介绍

图2 fpga内部音频算法系统

音频模拟信号经过音频adc采集后转化为数字信号通过I2S送入FPGA,FPGA内部可做均衡器算法,反馈抑制算法,高低通滤波器混响回声以及变声的音频处理算法。

3 Biquad Filter

最常用的过滤器形式之一是biquad。双二阶是二阶(两个极点和两个零)IIR滤波器。它的阶数足够高,可以单独使用,而且由于高阶滤波器的系数敏感度,双二阶常被用作更复杂滤波器的基本构建块。例如,双二阶低通滤波器的截止斜率为12 dB /倍频程,可用于音调控制。如果您需要24 dB /倍频程的斜率,则可以级联两个双二阶,与单个四阶设计相比,它的系数灵敏度问题更少。

Biquads有几种形式。最明显的二阶差分方程的直接实现(y [n] = a0 * x [n] + a1 * x [n-1] + a2 * x [n-2] – b1 * y [n- 1] – b2 * y [n-2]),称为直接格式I:

直接表格I

直接形式I是在定点处理器中实现的最佳选择,因为它具有单个求和点(定点DSP通常具有允许中间溢出的扩展累加器)。

我们可以采用直接形式I并将其在求和点处拆分,如下所示:

然后,我们将两半交换,以使反馈一半(两极)首先出现:

现在,请注意z延迟中的一对是多余的,与另一对存储相同的信息。因此,我们可以合并这两对,产生直接的II型配置:

直接表格II

在浮点中,直接形式II更好,因为它可以节省两个内存位置,并且浮点不像定点数学那样对溢出敏感。我们可以通过调换滤镜来对此进行一些改进。要转置滤波器,请反转信号流的方向-输出变为输入,分配节点变为求和器,求和器变为节点。滤波器的特性不变,但是在这种情况下,浮点特性会好一些。当中间和的值更接近时,浮点具有更好的精度(将小数加到浮点中的大数上的精度不及类似值)。这是转置后的直接形式II:

转置直接形式II

注意事项和建议

同样,对于定点,直接形式I通常是最佳选择,对于浮点,转置直接形式II通常是最佳选择。

在低频设置下,双二阶更容易受到量化误差的影响,这主要来自反馈系数(b1和b2)和延迟存储器。系数缺乏分辨率使得极点的精确定位变得困难,当极点位于单位圆附近时,这尤其成问题。第二个问题是延迟存储器,这是因为乘法会产生更多的位,并且这些位在存储到存储器时会被截断。该量化误差在滤波器中反馈,从而导致不稳定。32位浮点通常足以满足音频滤波器的要求,但您可能需要使用双精度,特别是在非常低的频率(用于控制滤波)和高采样率的情况下。

对于定点滤波器,24位系数和存储器对于大多数滤波器都适用,但是在48 kHz采样率下(约是96 kHz的两倍),在低于300 Hz时开始变得不稳定。在定点处理器上,双精度总是很昂贵的,但是幸运的是,有一种简单的技术可以提高稳定性。从直接绘图形式I看,当将高精度累加器存储在右侧的较低精度延迟存储器中时,就会发生量化。通过获取量化误差(将完整的累加值与其存储到内存后的值之差),并将其加回到下一个样本计算中,该滤波器的性能几乎与使用全双精度计算一样好,但是在很大程度上降低计算成本。这种技术称为一阶噪声整形。

直接形式I具有一阶噪声整形

通常,没有双精度系数和计算功能的音频不适合16位定点处理。

最后,biquads只是DSP程序员工具之一-它们并不总是最好的滤波器形式。还有其他一些滤波器不具有biquad的低频敏感度(通常,biquad系数的精度在高频时非常好,而在低频时则很差;还有其他滤波器形式可以将精度更均匀地分布或折衷降低高频性能,以获得更好的低频性能)。但是,二元模型是众所周知的,并且设计工具很多,因此,除非您找到使用其他滤波器的理由,否则它们通常是IIR滤波器的首选。

过滤器形式太多,无法覆盖,但是对于状态合成器而言,是一种流行于合成器的过滤器形式 。它具有非常出色的低频性能,并且必须解决高频方面的限制,但是最重要的是频率和Q系数是分开的,并且容易更改以进行动态滤波。它也使低频正弦波发生器成为一个很好的例子。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA开源工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注意事项和建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档