维基百科说我们可以用以下等式近似 Bark 尺度:
b(f) = 13*atan(0.00076*f)+3.5*atan(power(f/7500,2))
如何在 Bark 尺度上将频谱划分n
为相同长度的区间(区间划分点在 Bark 尺度上是等距的)?
最好的方法是解析反函数(x
用 的函数表示y
)。我试图在纸上做,但失败了。WolframAlpha 搜索栏也做不到。我尝试了 Octavefinverse
函数,但出现错误。
Octave 说(举个简单的例子):
octave:2> x = sym('x');
octave:3> finverse(2*x)
error: `finverse' undefined near line 3 column 1
这是finverse
来自 Matlab 的描述:http: //www.mathworks.com/help/symbolic/finverse.html
也可以有数字方式来做到这一点。我可以想象你只是从等分y
轴开始,通过二分搜索寻找理想的划分。但也许有一些现有的工具可以做到这一点?