音频数字低通滤波与带进位除法优化

针对16KHz采样率、12Bit精度的ADPCM解压缩后出现的低噪问题,通过硬件排查排除外部噪声。优化方案包括:使用DMA和16KHz定时器读取ADC数据到缓冲区,对缓冲区相邻数据进行均值滤波,使用静态变量保证数据连续,最后进行编解码和DAC数据传输,实现低通滤波效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

16Khz采样频率,12Bit采样精度,经过ADPCM压缩解压缩算法后,听到一些低噪,通过硬件排除(一声道直接将mic经过运放后到耳放输出,判断进入AD的声音OK),认为问题来之AD采样内部噪声。

优化思路:

1、ADC经过16KHz的Timer进行DMA到SampBuf[32];

2、在DMA中断,将SampBuf每相邻两个数据进行一次均值滤波,那么32个数据可以求31次,所以

===>     增加一个16bit的变量PreSamp,用于存储SampBuf[32-1],将最后的数据保存,用于衔接后一次DMA中断的第一组均值的第一个数据,即PreSamp,SampBuf[0];

新增变量为静态变量,初值设为0即可。这样数据才会连续,不会出现每32个数据丢一个数据的bug;

3、将数据编解码;

4、启动DAC DMA的Timer中断,进行数据传输;

  5、OK


附:均值滤波算法(计算结果存储为整数型适用

static uint16_t EndSampVal = 0;
#if 0
	PsamBuff[0] = (int16_t)(((EndS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值