我試圖製作一個帶通濾波器。當我正在處理它時,我注意到一些奇怪的東西。 濾波器的頻率響應正常(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