我實現了一個基本的Karplus-Strong算法。
充滿白噪聲的鈴緩衝器從前面輸出一個採樣,並將前兩個元素的平均值添加到末尾並刪除第一個元素。重複上一步到步驟。用低通濾波器擴展Karplus-Strong
爲了獲得更好的結果並對它們進行控制,我嘗試實現該算法的擴展版本。
因此,我不需要平均濾波器,而需要像低通濾波器那樣的頻率濾波器。
我的平均濾波器有兩個輸入和一個輸出:avg(a,b)=(a + b)/ 2
維基百科頁面上的示例代碼給出了與輸入一樣多的輸出。
http://en.wikipedia.org/wiki/Low-pass_filter
我發現其他(數學)版本,如:
http://cnx.org/content/m15490/latest/
H(Z)=(1+(1/Z))/ 2
我想z是複數。
兩個版本都有兩個輸入,但也有兩個輸出。
如何從中獲得一個有意義的值?
還是我必須重寫算法的更大的部分?
如果是這種情況,我可以找到一個很好的解釋嗎?
感謝您的回覆。 我不知道我已經在使用低通濾波器。 然後我需要一個更高級的參數。 感謝提示,以計算係數和順序。 我會在將來使用它。 但目前的問題是執行這樣一個過濾器。 – 2009-12-12 21:13:52
這個實現非常簡單:y = c0 * x [0] + c1 * x [1] ...爲c設置好值是最難的部分。 – 2009-12-12 22:31:42
是的,這很簡單。也解釋了爲什麼平均值是低通濾波器。 (a + b)/ 2 => 0.5 * a + 0.5 * b。問題回答並被接受。我想高和樂隊低音是相當簡單的?如果是的話,你也可以寫這些算法? – 2009-12-12 23:00:19