OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6024|回复: 2

有关音乐频谱的自增益算法

[复制链接]

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2019-12-3
在线时间
87 小时
发表于 2021-6-10 09:32:59 | 显示全部楼层 |阅读模式
10金钱
做的一个音乐频谱灯,就FFT之后量化显示,但是这样会因为音乐的响度改变而幅值发生改变,总不能每次换个音乐或者离声源远了就改代码,有没有什么在软件上可以处理的算法,实现一个自增益的功能,根据外界声音大小自动调节幅值,以达到一个更好的显示效果和适应力,有懂的希望可以指点一下,感谢。

最佳答案

查看完整内容[请看2#楼]

搜下 AGC 想一下这种情况:假如12位ADC采样,当声音小的时候就取低8位,当声音大的时候就右移; 或定义一个系数K,data=(readADC( )-2048)*K/16, K的取值为1~16,即可实现16档音量, 在一段时间内检测data信号的幅度,如果幅度小于一定值,就慢慢增加K,若幅度大于一定值,就快速的减小K。 (类似二极管检波电路)
我想改个名字
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3389

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8643
金钱
8643
注册时间
2020-5-11
在线时间
4096 小时
发表于 2021-6-10 09:33:00 | 显示全部楼层
本帖最后由 LcwSwust 于 2021-6-10 10:07 编辑

搜下 AGC  

想一下这种情况:假如12位ADC采样,当声音小的时候就取低8位,当声音大的时候就右移;
或定义一个系数K,data=(readADC( )-2048)*K/16, K的取值为1~16,即可实现16档音量,
在一段时间内检测data信号的幅度,如果幅度小于一定值,就慢慢增加K,若幅度大于一定值,就快速的减小K。
(类似二极管检波电路)
专治疑难杂症
回复

使用道具 举报

7

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2019-12-3
在线时间
87 小时
 楼主| 发表于 2021-6-11 18:03:19 | 显示全部楼层
LcwSwust 发表于 2021-6-10 09:33
搜下 AGC  

想一下这种情况:假如12位ADC采样,当声音小的时候就取低8位,当声音大的时候就右移;

是这个道理,但是不清楚以什么值参考为基准来调节,要是以一段时间的幅值来的话是可以,但我想一首歌里总有一些声音很小的时候,那这样调节了幅值可能就都上来了,觉得与实际不符了,也许是我多虑了,我试试,感谢
我想改个名字
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-22 15:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表