我正在嘗試爲Audacity編寫一個簡單的測量插件,它與撞擊我的頭骨的岩石一樣有趣。我想要做的就是獲取大量音頻並找到所有樣本的平均值(大塊的DC offset),以便我可以將它作爲數字呈現給用戶,以便我可以從樣本中減去DC偏移量進一步處理。我知道並理解我想要做的數學,但我不明白如何在Lisp/XLisp/Nyquist /無論如何做。如何在奈奎斯特中找到聲音的平均值/平均值
Background information in this thread
據我所知,沒有任何功能做到這一點。出於某種原因,snd-avg
function實際上並不像您預期的那樣計算聲音的平均值。它先做絕對值,然後然後計算平均值計算平均值再做絕對值。儘管有一個單獨的snd-abs
函數可以做到這一點。 > :(
所以我想我有寫我自己?這意味着轉換聲音到一個數組,然後計算的,平均?
(snd-fetch-array sound len step)
讀取樣本 順序陣列從 聲音,返回任 FLONUMs陣列或NIL當聲 終止。
(snd-samples sound limit)
將 樣本轉換爲lisp數組。
還有的甚至不是一個普通的功能,所以我必須做的和我自己,太?但數學函數只能用於列表?所以我需要將數組轉換爲列表?
而且這也會佔用大量的內存用於更長的波形(每個樣本18個字節),所以最好將其分塊處理並做一個cumulative average。但我甚至不知道如何去做未經優化的版本。
不,(hp s 0.1)
將無法正常工作,因爲:
- 我只想刪除DC,並保持任意低頻。 0.01 Hz應該通過不變,DC應該被移除。
- 的高通濾波器是因果關係和波形的第一個樣本保持不變,不管你用什麼拐點頻率,使其失去作用測量峯值樣品等
務必留下問題,以便在搜索時可以找到具有類似問題的人。 – 2012-01-31 15:28:29