频谱质心与带宽:怎样量出频率的中心和展开
频谱质心和带宽经常只用两行库函数带过。本课反过来做:先按库的默认参数得到三段音乐的时间轨迹,再把两行函数拆成公式,自己逐帧重算。质心最大差只有 1.917e-05 Hz,带宽最大差只有 1.156e-05 Hz。对齐过程还会揭开一个容易混用的定义:平均绝对距离是 $p=1$,库函数默认算的是均方根距离 $p=2$,这三段音乐上两者能差到 1.30—1.54 倍。
完整代码在第 23 课脚本,公共实现仍在frequency_features.py。运行环境沿用课程总纲里的一次性配置。
这一课要完成什么实验
仍然用德彪西、摇滚、艾灵顿公爵三段音乐,各取前 30 秒。这次参数是:
采样率 22050 Hz
帧长 1024 个样本(46.4 毫秒)
帧移 512 个样本(23.2 毫秒)
先调用库函数,确认每段得到 1292 个质心和 1292 个带宽;然后从同一张幅度谱手写两套公式,逐帧比较。最后把 和 都算一遍,看看“定义只差一个参数”在真实音乐上会差多少。
互动持续版
静态图文到这里,接下来让声音和图形动起来
购买后解锁完整课程,以及只有官网互动版才能提供的声音、动画和可操作实验。
- 完整声音对比、分步动画与 8 个交互实验
- 微信账号登录,手机和电脑同步访问
- 申请加入课程会员群,交流、反馈和接收更新
- 持续获得这门课程的勘误与内容升级