Привет!
Возникла проблема. Необходимо отфильтровать сигнал режекторным фильтром (пакеты отвечающие за Signal Processing numpy и scipy(модуль signal)). Фильтр вроде бы соорудила (пользуясь имеющимися функциями модуля signal). Но получаемый результат, т.е. отфильтрованный сигнал ничем не отличается от исходного. Наверное я что-то недопонимаю. Если кто-то увидит в чем дело помогите пожалуйста!!!
А вот и сам код
from numpy import *
from scipy import *
from scipy import signal
import matplotlib.pyplot as plt
# считываю с файла данные напряжения и времени (зависимость напряжения от времени)
#x - данные напряжения
#t - данные времени
# создаю фильтр-прототип Чебышева 1 рода (ФНЧ):
z,p,k=signal.cheb1ap(5,0.5) #входные параметры n=5-порядок и R=0.5-уровень пульсаций
#выходные параметры - нули и полюсы прототипа
# трансформирую нули и полюсы в коэффициенты полинома
b,a=signal.zpk2tf(z,p,k)
# задаю нижнюю и верхнюю частоту среза (в Гц):
w1=100
w2=500
w0=2*math.pi*math.sqrt(w1*w2) # средняя частота
Bw=2*math.pi*(w2-w1) # полоса пропускания
# преобразую ФНЧ Чебышева в режекторный фильтр:
b1,a1=signal.lp2bs(b,a,w0,Bw)
# затем делаю преобразование Фурье над данными напряжения:
m=fft(x)
# осуществляю непосредственную фильтрацию:
h=signal.lfilter(b1,a1,m)
# делаю обратное преобразование Фурье над полученными данными:
l=ifft(h)
# строю график
plt.plot(t,l)
plt.show ()