2016-01-19 46 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

相關問題