我該怎麼做一些Python中的音頻效果。例如,最簡單的回波效應公式:如何在大多數係數爲零時進行IIR濾波
y[n] = x[n] + k*y[n-1000]
這是一個IIR濾波器,並且可以通過lfilter()中scipy.signal計算:
import numpy as np
import time
import scipy.signal as signal
pulse = np.zeros(10000)
pulse[0] = 1.0
a = np.zeros(1000)
a[[0,999]] = 1, -0.7
start = time.clock()
out = signal.lfilter([1], a, pulse)
print time.clock() - start
import pylab as pl
pl.plot(out)
pl.show()
的問題是:該係數的a的值爲零,並且過濾器可以很快計算出來,但lfilter()無法實現這一點,並使用所有零係數。
我知道我可以爲這個最簡單的例子編寫一些特定的計算,但我正在尋找一個通用的解決方案。
在numpy/scipy中沒有任何東西可以幫助我(除了lfilter),我不知道任何其他軟件包會這樣做。我認爲cython是最好的選擇。 – user333700