将分贝范围转换为字节范围
Convert decibel range to byte range
问候,
我正在寻找一个公式来转换一个范围,其中:
最小 = -100db 和最大 = -30db
至:
最小值 = 0 且最大值 = 255
例如:-60db = ?
看似简单,却让我头晕目眩。
假设您的意思是结果以 db 为单位,您要求的是简单的线性插值:
f(x) = ymin + (x - xmin)*(ymax - ymin)/(xmax - xmin)
或者在你的情况下,
f(x) = 0 + (x + 100)*(255 - 0)/(-30 + 100)
f(-60 db) = 145.714
相反,如果您是在谈论将 db 转换为用于与音频信号相乘的比例因子,那么它会稍微复杂一些。例如,将音频信号乘以 0 就是负无穷大 db。所以(至少)你必须特殊情况。
问候,
我正在寻找一个公式来转换一个范围,其中:
最小 = -100db 和最大 = -30db
至:
最小值 = 0 且最大值 = 255
例如:-60db = ?
看似简单,却让我头晕目眩。
假设您的意思是结果以 db 为单位,您要求的是简单的线性插值:
f(x) = ymin + (x - xmin)*(ymax - ymin)/(xmax - xmin)
或者在你的情况下,
f(x) = 0 + (x + 100)*(255 - 0)/(-30 + 100)
f(-60 db) = 145.714
相反,如果您是在谈论将 db 转换为用于与音频信号相乘的比例因子,那么它会稍微复杂一些。例如,将音频信号乘以 0 就是负无穷大 db。所以(至少)你必须特殊情况。