2016-01-19 43 views
-3

我把一个函数转换为不同的数字尺度,我只是想知道是否有一个数学公式可以表示。或者甚至只是写这个函数的一个更好的方法。有没有这个函数的数学等价物?

我有一个音频设备,它返回一个音源的分贝级别,并将其作为0到144之间的数字返回。该音阶表示145个值,介于-60db和+ 12db之间,间隔为.5db。

我能想到的最好方法是将-60到+12映射到list dbAry,然后根据音频设备返回的值选择一个索引。

def convert(self, value): 
    dbAry = [] 
    a = -60 
    while a != 12.5: 
     dbAry.append(a) 
     a+=0.5 

    return dbAry[int(value)] 

编辑:Python 2.7的方式。

+6

OMG。 '返回.5 *值-60' –

+0

@SergeSeredenko,这将无法正常工作。尝试145 – Meinkraft

+0

@TheProgrammerG 145根据问题 –

回答

0

试试这个:

ans = original_number/2 - 60 

此转换original_number你所需要的格式。

测试:

110/2 - 60 = -5 
144/2 - 60 = 12 
+0

不幸的不是。当我通过这个运行110时,它返回-60。我会寻找的价值是-5。但是,我开始相信这可能没有数学解决方案。但我不是数学家! – Nicholas

+0

@尼克这是不对的。尝试再次计算它。你一定犯了错误。 – Meinkraft

+0

好吧,我看到答案已经改变,我会试试这个。编辑:这对我很有用,非常感谢! – Nicholas

相关问题