我什至不知道这样做是否可行,但我想问一下,我怀疑是否可以在-(void)renderFFTToTex例程中进行更改。是否有人对此有任何想法或可以建议的其他建议?谢谢。

最佳答案

要重新调整频率,我们需要调整此参数:

CGFloat yFract = (CGFloat)y / (CGFloat)(maxY - 1);

其值在0..1之间,并确定要在显示行y上显示哪个fft输出。

要获得对数刻度,请首先进行数学运算:频率f(0.1kHz-20kHz)必须显示在位置log(f)上。叫低限(0.1kHz)L,高限(20kHz)H。然后经过一些数学[[跳过]],您将得到:
yFract = ( exp(yFract*log(H/L)) - 1 ) / ( H/L - 1 );

您应该在其中填写您认为的H / L比值,例如
yFract = ( exp(yFract*log(20)) - 1 ) / ( 20 - 1 );

(您应该检查0是否为0,1是否为1)

关于iphone - 将Auriotouch线性刻度更改为对数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3409377/

10-11 23:14