维基百科说我们可以用方程近似树皮尺度:
b(f) = 13*atan(0.00076*f)+3.5*atan(power(f/7500,2))
如何在树皮尺度上将频谱划分为长度相同的n间隔(间隔划分点在树皮尺度上是等距的)?
最好的方法是解析反函数(用函数表示)。我在纸上试着做,但失败了WolframAlpha搜索栏也做不到我试过倍频程函数,但我出错了。
八度音阶说(举个简单的例子):

octave:2> x = sym('x');
octave:3> finverse(2*x)
error: `finverse' undefined near line 3 column 1

这是来自Matlab的x描述:http://www.mathworks.com/help/symbolic/finverse.html
也可以用数值方法来计算我可以想象,你只需要从二元搜索中平等地划分y轴,寻找理想的划分。但也许有一些现有的工具可以做到这一点吗?

最佳答案

你需要数值求解这个方程(没有解析反函数)。将b的值设置为等距,然后解方程以找到各种f。分段法有点慢,但布伦特方法是一个很好的替代方法见http://en.wikipedia.org/wiki/Brent%27s_method

09-08 00:25