我不知道这是否可行,但我想我会问,我怀疑如果有可能,它会在 - (void)renderFFTToTex例程中改变。有没有人对这个或他们可以推荐的其他建议有任何想法?谢谢。
答案 0 :(得分:2)
要重新调整频率,我们需要缩放此参数:
CGFloat yFract = (CGFloat)y / (CGFloat)(maxY - 1);
,其值介于0..1之间,并确定要在显示行y上显示的fft输出。
要获得对数刻度,首先要进行数学计算:必须在位置记录(f)上显示频率f(0.1kHz-20kHz)。调用低限(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,情况就是这样)