私はバンドパスフィルタを作成しようとしていました。私はそれに取り組んでいる間、私は奇妙な何かに気づいた。 フィルタの周波数応答はOKです(scipy.signal.freqz)。しかし、正弦波信号に適用すると、フィルタの形状が変わります。Pythonでのバンドパスフィルタの形状
図3 =信号のスペクトル
理由の形状をfreqzを()関数フィルタの1 =スペクトラム
最後信号印加
図によれば、フィルタの4 =周波数応答を行う図フィルタに適用するとフィルタ(大きさも同じ)が変更されますか?
from scipy.signal import butter, lfilter, buttord, freqz
import numpy as np
import matplotlib.pyplot as plt
import math
t = np.arange(0, 8192, 1)
data = 1+np.sin(.15*np.pi*t + np.pi/2)
b, a = butter(6, [0.35, 0.55], btype='band')
y = lfilter(b, a, data)
y = np.fft.rfft(y)
y = np.abs(y)
x = np.fft.rfft(data)
x = np.abs(x)
w, h = freqz(b, a, worN=4096)
plt.figure(1)
plt.plot(np.arange(0,4097,1),y)
plt.figure(2)
plt.plot(np.arange(0,8192,1), data)
plt.figure(3)
plt.plot(np.arange(0,4097,1), x)
plt.figure(4)
plt.plot(np.arange(0,4096,1),np.abs(h))
plt.show()
これらの視覚化を生成したコードを共有できますか?私はそれが役に立つと思う。 –
コードを追加しました。申し訳ありませんが、私の過失 – Reactionic