你做FFT音乐频谱的时候栽坑了吗? [附: 讲解视频]

2019-12-20 21:36发布

本帖最后由 kayatsl 于 2016-12-22 17:42 编辑

早在好多年前, 试水stm32的时候, 做过一次音乐频谱, http://www.amobbs.com/forum.php? ... =5437297#pid5662844

后面很多人也问我要资料, 没给的原因主要有俩:
1. 代码实在太烂, 基本不具备参考价值, 势必误人子弟
2. 我觉得其中仍存在很多问题, 没有参透应该如何实现才具备观赏性.

QQ图片20161222174920.png (455.22 KB, 下载次数: 0) 下载附件 2016-12-22 17:38 上传

视频中介绍一般初学者和进阶同学在做 FFT 音乐频谱时, 需要留意和很可能会踩到的坑

http://v.youku.com/v_show/id_XMTUzMDA2ODk3Ng==.html

视频嵌入失败, 经验坛友介绍下方法.?

如果你们也踩坑了, 不妨下面回复留言讨论.!~
如果你有更好的方法, 或者觉得视频中有错误的地方, 也欢迎指正.!~


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
85条回答
kayatsl
2019-12-21 01:13
本帖最后由 kayatsl 于 2016-12-22 17:40 编辑

先占个楼, 留个坑给自己后面踩.


这里列一下最终方案 :

1. 前端使用 MAX9814 , 带AGC的MIC放大芯片, 放大后的信号可直接输ADC
2. DMA + ADC,  fs = 180khz 过采样, ADC精度: 12bit , DMA长度 8192
3. DMA buffer 满了以后, 做去直流分量运算 同时转换数据成浮点数组. (免得FFT后第一根谱线一直有高分量)
4. 传到 FIR Decimate 做 纯浮点低通滤波 + 4倍下变频.  fc = 18khz, fstop = 22khz, A = -60db
    fs = 180khz --- 4 decimator---> 45khz
    有效信号频率 f = fs/2 = 22.5khz
5. 将数据做 纯浮点 2048点 FFT 运算.
6. 利用 tanh 函数, 将数据前段线性, 后段非线性扫描上屏幕.
7. 刷新屏幕, 屏幕刷新率 = 180k / 8192 约 22fps

一周热门 更多>