我有一个程序来绘制一个信号的频谱分析(Amp/Freq),这是精确的DFT转换为极性。然而,这并不是winamp (就在左上角)那样的图形,也不是任何其他音频软件绘制的有效图形。我真的不确定这种类型的图叫什么(如果它有一个独特的名称),所以我不确定要寻找什么。
我非常肯定频率轴是以两个指数为底的,但振幅轴让我感到困惑。
有什么建议吗?
发布于 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如何绘制振幅图呢?我的猜测是:
有没有其他专家知道呢?让我知道你的想法。我也很感兴趣,这到底是如何实现的。
发布于 2010-01-19 16:56:00
要生成功率谱,您需要执行以下步骤:
快速傅立叶变换将窗函数应用于时域数据(例如,Hanning window)
10 * log10(re * re + im * im))这给出了对数幅度(即dB)与线性频率的关系。
如果你还想要一个对数频率刻度,那么你将需要从适当的柱子范围累积幅度(并且你将需要一个相当大的FFT开始)。
发布于 2010-01-05 07:21:25
嗯,我不是100%确定你的意思,但肯定这只是从FFT中提取数据?
如果你想得到这样的数据(对于一个44 the的文件),你有22 the,11 the 5.5 the等频率点,那么你可以使用小波分解,我想...
这个帖子可能会对你有一点帮助。
Converting an FFT to a spectogram
我猜和光谱图一样的信息。
https://stackoverflow.com/questions/1997896
复制相似问题