フィルター、この場合は Notch(stopband) フィルターを Python に変換する方法を理解しようとしていますが、方法がわかりません。
x(n)=-2*x(n)/(-0.9*x(n) -0.9*x(n-1))
誰でも私を助けてもらえますか?
前もって感謝します。
フィルター、この場合は Notch(stopband) フィルターを Python に変換する方法を理解しようとしていますが、方法がわかりません。
x(n)=-2*x(n)/(-0.9*x(n) -0.9*x(n-1))
誰でも私を助けてもらえますか?
前もって感謝します。
numpy 配列を使用している場合、これは機能するはずです。
x[1:]=-2*x[1:]/(-0.9*x[1:]-0.9*x[:-1])
これにより配列が変更されますが、新しい配列に簡単に割り当てることができます。
y=-2*x[1:]/(-0.9*x[1:]-0.9*x[:-1])
あなたのアルゴリズムは 0 番目の要素に対して十分に定義されていないことに注意してください。そのため、私の翻訳はx[0]
変更されません。
編集
iterable を numpy 配列に変更するには:
import numpy as np
x=np.array(iterable) #pretty easy :) although there could be more efficient ways depending on where "iterable" comes from.
result = []
#prime your result, that is, add the initial values to handle indexing
lower_bound = #
upper_bound = #
for n in range(lower_bound,upper_bound):
result.append( 2*result[n]/(-0.9*result[n] -0.9*result[n-1]) )