Math 如何在参数均衡器中绘制频率分离图

Math 如何在参数均衡器中绘制频率分离图,math,frequency,logarithm,equalizer,parametric-equations,Math,Frequency,Logarithm,Equalizer,Parametric Equations,我试着做一些类似的事情,仅就频率轴而言,即沿中线的值: 这似乎是均衡器的标准格式,但我无法计算出这样做的公式 i、 e.第一组频率线的值为10、20、30、40、50、60、70、80、90、100 但是当你上升到100时,间距会减小 从这里开始,它是100,200,300,400,500。。到1000,间距重置为100,然后每个间隔减少到1000 相同的模式重复到最大值,在本例中为20000 这是怎么做到的?它是对数的吗?在我的帮助下,我能够算出一个公式,将频率轴绘制成对数标度

我试着做一些类似的事情,仅就频率轴而言,即沿中线的值:

这似乎是均衡器的标准格式,但我无法计算出这样做的公式

i、 e.第一组频率线的值为10、20、30、40、50、60、70、80、90、100 但是当你上升到100时,间距会减小 从这里开始,它是100,200,300,400,500。。到1000,间距重置为100,然后每个间隔减少到1000 相同的模式重复到最大值,在本例中为20000

这是怎么做到的?它是对数的吗?

在我的帮助下,我能够算出一个公式,将频率轴绘制成对数标度

        int factor = 10;
        for(int i = 10; i <= FREQ_MAX; i+=factor)
        {
            fx = (float) ((float) (Math.log10(i) - Math.log10(PEQ.FREQ_MIN))/(Math.log10(PEQ.FREQ_MAX)-Math.log10(PEQ.FREQ_MIN)) * getMaxCanvasWidth());
            canvas.drawLine(fx, 0, fx, getHeight(), paintLinesThick);

            if(isDisplayedFreq(i))
            {
                paintText.setTextAlign(Paint.Align.LEFT);
                canvas.drawText(getFreqAsFormattedLabel(i), fx + (getMaxCanvasWidth() / 120f), (getHeight() / 2f) + (getHeight() / 50f), paintText);
            }

            if(i >= (factor*10))
            {
                factor *= 10;
            }
        }