二阶系统级联_FPGA卡拉ok系统Biquad filter

本文介绍了FPGA在卡拉OK系统中的应用,特别是二阶Biquad滤波器在音频处理中的作用。讨论了不同形式的Biquad滤波器,包括直接形式I和II,以及它们在定点和浮点处理中的优缺点。还提到了量化误差对低频稳定性的影响以及一阶噪声整形技术提高稳定性的方法。文章最后建议根据具体需求选择适当的滤波器形式。
摘要由CSDN通过智能技术生成

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

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

1 硬件需求介绍

d5c1907ecb56bec9125c09af232a0392.png

图1 卡拉ok硬件系统

1)麦克风(microphone)

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

3)FPGA --卡拉ok系统

4)音频DAC--PCM5102A

5)音响

6)显示屏

2  FPGA硬件系统介绍

b0b35045e184664dfb5446021bcd7a3b.png

图2 fpga内部音频算法系统

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

3 Biquad Filter

        最常用的过滤器形式之一是biquad。双二阶是二阶(两个

函数名称:void SOGI_Init(Second_order_Filter *Biquad_filter,uint8_t mode) //二阶广义积分器参数初始化 *入口参数:Second_order_Filter 参数指针地址 * uint8_t mode 当mode=1时不移相,mode=0时移相PI/2 *函数功能:二阶广义积分器参数初始化,使用Tustin双线性变换离散 *************************************************************************************************************/ void SOGI_Init(Second_order_Filter* Biquad_filter, uint8_t mode) { static uint16_t K=1;//sogi比例系数 Biquad_filter->wc = (2 * PI * AC_INPUT_FREQ) / TS_FREQ; switch (mode) { case 1: //不移相 u轴 Biquad_filter->b0 = 2 * Biquad_filter->wc*K; Biquad_filter->b1 = 0; Biquad_filter->b2 = -2 * Biquad_filter->wc*K; Biquad_filter->a0 = 4 + 2 * Biquad_filter->wc*K + Biquad_filter->wc * Biquad_filter->wc; Biquad_filter->a1 = 2 * Biquad_filter->wc * Biquad_filter->wc - 8; Biquad_filter->a2 = 4 + Biquad_filter->wc * Biquad_filter->wc - 2 * Biquad_filter->wc; break; case 0: //移相 qu轴 Biquad_filter->b0 = Biquad_filter->wc * Biquad_filter->wc*K; Biquad_filter->b1 = 2 * Biquad_filter->wc * Biquad_filter->wc*K; Biquad_filter->b2 = Biquad_filter->wc * Biquad_filter->wc*K; Biquad_filter->a0 = 4 + 2 * Biquad_filter->wc*K + Biquad_filter->wc * Biquad_filter->wc; Biquad_filter->a1 = 2 * Biquad_filter->wc * Biquad_filter->wc - 8; Biquad_filter->a2 = Biquad_filter->wc * Biquad_filter->wc - 2 * Biquad_filter->wc + 4; break; } Biquad_filter->b0 = Biquad_filter->b0 / Biquad_filter->a0; Biquad_filter->b1 = Biquad_filter->b1 / Biquad_filter->a0; Biquad_filter->b2 = Biquad_filter->b2 / Biquad_filter->a0; Biquad_filter->a1 = Biquad_filter->a1 / Biquad_filter->a0; Biquad_filter->a2 = Biquad_filter->a2 / Biquad_filter->a0; }
最新发布
07-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值