我有一个程序可以绘制信号的频谱分析(Amp / Freq),这很可能是DFT转换为极性的。然而,这并不完全是那种图形,例如winamp(位于左上角),或者实际上是任何其他音频软件图。我不确定这种图形叫什么(如果它有一个不同的名称),所以我不确定要寻找什么。
关于频率轴是基数两个指数,我很正面,但振幅轴让我很困惑。
任何指针?
答案 0 :(得分:3)
实际上是一个有趣的问题。我知道你在说什么;频率轴肯定是对数的。但振幅怎么样?作为对另一张海报的回应,幅度不能仅以dB为单位,因为dB没有零概念。这引入了量化误差,SNR和动态范围的概念。
假设接收的数字化(即离散时间和离散幅度)时域信号x [n]等于s [n] + e [n],其中s [n]是发送的离散信号 - 时间信号(即连续幅度)和e [n]是量化误差。假设x [n]用b位表示,为简单起见,取[0,1]中的值。那么e [n]的最大峰峰值幅度是一个量化电平,即2 ^ { - b}。
动态范围定义为,以分贝为单位,20 log10(最大峰 - 峰| s [n] |)/(最大峰 - 峰| e [n] |)= 20 log10 1 /(2 ^ { - b})= 20b log10 2 = 6.02b dB。对于16位音频,动态范围为96 dB。对于8位音频,动态范围为48 dB。
那么Winamp的幅度如何?我的猜测:
假设最小幅度为-6.02b dB,最大幅度为0 dB。在视觉上,Winamp在考虑这些门槛的情况下绘制了窗口。
使用另一个非线性映射,例如log(1 + X)。此函数始终为非负,当X很大时,它近似于log(X)。
那里有谁知道其他专家?让我知道你的想法。我也很感兴趣,这是如何实现的。
答案 1 :(得分:2)
要生成功率谱,您需要执行以下步骤:
10 * log10(re * re + im * im)
)这给出了对数幅度(即dB)与线性频率的对比。
如果您还想要一个对数频率刻度,那么您需要从适当的二进制范围累加幅度(并且您需要一个相当大的FFT开始)。
答案 2 :(得分:0)
嗯,我不是百分之百确定你的意思,但肯定只是从FFT中剔除数据?
如果你想得到的数据是(你的44Khz文件)频率点为22Khz,11Khz 5.5Khz等,你可以使用小波分解,我猜......
这个帖子可能有点帮助......
Converting an FFT to a spectogram
与我猜测的频谱图相同的信息......
答案 3 :(得分:0)
您需要的是功率谱图。您必须计算信号当前窗口的DFT。然后平方每个值。