Найти - Пользователи
Полная версия: Помогите с фильтрацией!
Начало » Python для новичков » Помогите с фильтрацией!
1
Ксюша
Привет!
Возникла проблема. Необходимо отфильтровать сигнал режекторным фильтром (пакеты отвечающие за 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 ()
Zubchick
Вам скорей на форум электротехники (или что это?!) Разве что не импортирован модуль math, но тогда бы интерпретатор выдавал ошибку…
Так что смотрите правильна ли логика. Ну и на всякий проверьте то ли вы читаете из файла и нет ли шанса что то, что вы получили и есть ответ :D
sypper-pit
у тебя он(режекторный фильтр) цифровой?
sypper-pit
какие данные, что получаешь, ответь !!!
Ксюша
Ага, режекторный. Вообщем в итоге выходной сигнал идентичный входному. Я вырисовываю спектр полученного сигнала, на котором отчетливо видно, что ничего не вырезалось, т.е. все вырезаемые частоты на месте(не обнулились).
Ксюша
Цифровой , режекторный.
Ксюша
Однозначно дело в фильтре. Пробовала его на разных сигналах. Причем как на реальных, полученных при экспериментах с датчиков, так и сгенереных самостоятельно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB