本帖最后由 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
视频嵌入失败, 经验坛友介绍下方法.?
如果你们也踩坑了, 不妨下面回复留言讨论.!~
如果你有更好的方法, 或者觉得视频中有错误的地方, 也欢迎指正.!~
先占个楼, 留个坑给自己后面踩.
这里列一下最终方案 :
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
一周热门 更多>