Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2010 13:05:44

Ксюша
От:
Зарегистрирован: 2009-12-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с фильтрацией!

Привет!
Возникла проблема. Необходимо отфильтровать сигнал режекторным фильтром (пакеты отвечающие за 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 ()



Офлайн

#2 Янв. 11, 2010 16:01:23

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с фильтрацией!

Вам скорей на форум электротехники (или что это?!) Разве что не импортирован модуль math, но тогда бы интерпретатор выдавал ошибку…
Так что смотрите правильна ли логика. Ну и на всякий проверьте то ли вы читаете из файла и нет ли шанса что то, что вы получили и есть ответ :D



Офлайн

#3 Янв. 12, 2010 13:39:54

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Помогите с фильтрацией!

у тебя он(режекторный фильтр) цифровой?

Отредактировано (Янв. 12, 2010 13:40:12)

Офлайн

#4 Янв. 12, 2010 15:01:58

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Помогите с фильтрацией!

какие данные, что получаешь, ответь !!!

Офлайн

#5 Янв. 13, 2010 08:08:42

Ксюша
От:
Зарегистрирован: 2009-12-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с фильтрацией!

Ага, режекторный. Вообщем в итоге выходной сигнал идентичный входному. Я вырисовываю спектр полученного сигнала, на котором отчетливо видно, что ничего не вырезалось, т.е. все вырезаемые частоты на месте(не обнулились).



Офлайн

#6 Янв. 13, 2010 08:10:09

Ксюша
От:
Зарегистрирован: 2009-12-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с фильтрацией!

Цифровой , режекторный.



Офлайн

#7 Янв. 13, 2010 08:16:37

Ксюша
От:
Зарегистрирован: 2009-12-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с фильтрацией!

Однозначно дело в фильтре. Пробовала его на разных сигналах. Причем как на реальных, полученных при экспериментах с датчиков, так и сгенереных самостоятельно.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version