首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Winamp style“频谱分析仪

"Winamp style“频谱分析仪
EN

Stack Overflow用户
提问于 2010-01-04 14:51:27
回答 4查看 3K关注 0票数 4

我有一个程序来绘制一个信号的频谱分析(Amp/Freq),这是精确的DFT转换为极性。然而,这并不是winamp (就在左上角)那样的图形,也不是任何其他音频软件绘制的有效图形。我真的不确定这种类型的图叫什么(如果它有一个独特的名称),所以我不确定要寻找什么。

我非常肯定频率轴是以两个指数为底的,但振幅轴让我感到困惑。

有什么建议吗?

EN

回答 4

Stack Overflow用户

发布于 2010-02-10 01:17:47

实际上是一个有趣的问题。我知道你在说什么;频率轴肯定是对数的。但是振幅又如何呢?为了回应另一张海报,振幅不能简单地以dB为单位,因为dB没有零的概念。这引入了量化误差、SNR和动态范围的概念。

假设接收到的数字化(即离散时间和离散幅度)时域信号xn等于sn + en,其中sn是发送的离散时间信号(即连续幅度),en是量化误差。假设xn用b位表示,为了简单起见,取[0,1]中的值。那么en的最大峰间振幅是一个量化电平,即2^{-b}。

动态范围以分贝为单位定义为20 log10 (最大峰间|sn|)/(最大峰间|en|) = 20 log10 1/(2^{-b}) = 20b log10 2= 6.02b dB。对于16位音频,动态范围为96 dB。对于8位音频,动态范围为48 dB。

那么Winamp如何绘制振幅图呢?我的猜测是:

  1. 假设最小振幅为-6.02b dB,最大振幅为0 dB。在视觉上,Winamp根据这些阈值绘制窗口。
  2. 使用另一个非线性映射,如1+X(Log)。这个函数总是非负的,当X很大时,它近似于log(X)。

有没有其他专家知道呢?让我知道你的想法。我也很感兴趣,这到底是如何实现的。

票数 3
EN

Stack Overflow用户

发布于 2010-01-19 16:56:00

要生成功率谱,您需要执行以下步骤:

快速傅立叶变换将窗函数应用于时域数据(例如,Hanning window)

  • compute
  • 针对FFT的N/2点计算FFT幅度的对数(通常为10 * log10(re * re + im * im))

这给出了对数幅度(即dB)与线性频率的关系。

如果你还想要一个对数频率刻度,那么你将需要从适当的柱子范围累积幅度(并且你将需要一个相当大的FFT开始)。

票数 2
EN

Stack Overflow用户

发布于 2010-01-05 07:21:25

嗯,我不是100%确定你的意思,但肯定这只是从FFT中提取数据?

如果你想得到这样的数据(对于一个44 the的文件),你有22 the,11 the 5.5 the等频率点,那么你可以使用小波分解,我想...

这个帖子可能会对你有一点帮助。

Converting an FFT to a spectogram

我猜和光谱图一样的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1997896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档