Фильтрация сигнала. Помогите отфильтровать
-
- interested
- Сообщения: 8
- Зарегистрирован: 28 сен 2012, 08:17
- Версия LabVIEW: 2009
- Контактная информация:
Фильтрация сигнала. Помогите отфильтровать
Есть файл, который осдержит 2229 выборок зависимости значения сигнала от времени. Необходимо отфильровать данный сигнал. Помогите подобрать фильтр для этого сигнала. Как узнать, содержит ли данный сигнал шумы и помехи и как их отфильтровать? По вннешнему виду сигнала, он просто содержит выбросы, которые нужно отфильтровать. Правильно ли я понимаю? Как вообще можно понять , какой фильтр (ФНЧ, ФВЧ, РФ, ПФ)нужно применять? Для этого неоюбходимо сстроить спектр сигнала. А как по спектру сигнала это понять? Работаю в Labview.Входной сигнал и он же, но растянутый приведены ниже
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Фильтрация сигнала. Помогите отфильтровать
Ваш вопрос совершенно не касается LabView, но требует знания и понимания методов обработки сигналов, в частности фильтрации. Начните с учебников, например "Цифровая обработка сигналов", когда разберетесь с тем, какие действия надо произвести с вашим сигналом, чтобы получить из него нужную информацию, тогда уже приступайте к реализации.
Главное, вы должны сами точно знать какую информацию вы хотите получить из данного сигнала. Только после этого вы можете определить, что является полезным сигналом, а что шумом. Для разной информации из одного сигнала разные части спектра этого сигнала могут считаться или шумом или полезным сигналом. Все зависит от того, что из этого сигнала для вас важно. Соответственно, все что не важно считается шумом. :)
Главное, вы должны сами точно знать какую информацию вы хотите получить из данного сигнала. Только после этого вы можете определить, что является полезным сигналом, а что шумом. Для разной информации из одного сигнала разные части спектра этого сигнала могут считаться или шумом или полезным сигналом. Все зависит от того, что из этого сигнала для вас важно. Соответственно, все что не важно считается шумом. :)
-
alerm
- leader
- Сообщения: 683
- Зарегистрирован: 02 май 2012, 21:28
- Награды: 1
- Версия LabVIEW: 20
- Благодарил (а): 59 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
я конечно могу ошибаться, но тут явно не белый шум (уже радует), все же стоит привести спектр
-
- interested
- Сообщения: 8
- Зарегистрирован: 28 сен 2012, 08:17
- Версия LabVIEW: 2009
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
Дело в том, что это универское задание. Просто есьт файл с значением сигнала, и задана частота дискретизации 32 кГц. Нужно самому подобрать фильтр, чтобы получился "красивый сигнал". Строю спектры двумя функциями Auto power spectrum(спектр мощности), и FFT power spectrum. Как по этим графикам можно понять, какие выбрать граничные частоты и какой тип фильтра?
-
alerm
- leader
- Сообщения: 683
- Зарегистрирован: 02 май 2012, 21:28
- Награды: 1
- Версия LabVIEW: 20
- Благодарил (а): 59 раз
- Поблагодарили: 9 раз
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
а можно файл? я предполагаю, что это текстовый файл с 2229 значениями
-
- interested
- Сообщения: 8
- Зарегистрирован: 28 сен 2012, 08:17
- Версия LabVIEW: 2009
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
Можно, прилагаю
- Вложения
-
- DATA.xls
- (144.5 КБ) 152 скачивания
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Фильтрация сигнала. Помогите отфильтровать
В спектре присутствует частота 1/4 от частоты дискретизации. Значит, надо применить ФНЧ (lowPass filter) с относительной частотой среза где-то 0,275..0,325. (это означает, что если явно фильтру задаете частоту sampling freq, то High Cutoff freq = sampling freq* 0,275. Если sampling freq остается =1, то и High Cutoff freq = 0,275) Порядок фильтра 2-3. Если нужно удалить и постоянную составляющую, то ставится BandPass Filter, с High Cutoff freq = sampling freq* 0,25.
-
- interested
- Сообщения: 8
- Зарегистрирован: 28 сен 2012, 08:17
- Версия LabVIEW: 2009
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
Использую Classical Filter Design: Lowpass Butterworth, sampling frequency 32k Hz, passband edge frq 8.8k (32kHz*0.275), passband ripple 0.1 bD? stopband edge freq 10.4 kHz, stopband attenuation 0.6 db/.Порядок фильра получается 3. Но спект отфильтрованного сигнала не меняется. Он акой же ка и отфильтрованного
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Фильтрация сигнала. Помогите отфильтровать
Странно, что у Баттерворда есть passband Ripple и stopband attenuation. Попробуйте поменять их параметры. Кроме того, имеет смысл увеличить масштаб графика, поскольку на фоне основной гармоники шумы других гармоник будут не видны. При увеличении разница должна быть видна.
-
- interested
- Сообщения: 8
- Зарегистрирован: 28 сен 2012, 08:17
- Версия LabVIEW: 2009
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
сам график отфильтрованного сигнала меняется, но график спектра отфиьтрованног сигнала не меняется. При изменении passband Ripple и stopband attenuation меняется порядок фильтра. Чем они больше, тем боьше порядок фильтра
-
- interested
- Сообщения: 8
- Зарегистрирован: 28 сен 2012, 08:17
- Версия LabVIEW: 2009
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
и еще.. если задана частота дискретизации 32 кГц, а взято 2229 точек, это число 2229 негде не сипользуются для проэктирования фильтра и вообще?
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Фильтрация сигнала. Помогите отфильтровать
Не может график отфильтрованного сигнала меняться, а спектр не меняться. У Вас где-то неточность в программе.
Всё верно, число точек в замере для расчета фильтра значения не имеет (фильтр расчитывается один раз, но данные через него можно пропускать без ограничений). Имеет значение только соотношение частоты дискретизации и частоты среза фильтра (0,25). Число точек в замере будет влиять только на дискрет спектра. Например, для частоты опроса 32кГц 2000 отсчетов будет означать, что разрешение спектра будет 32000/2000 = 16 Гц. Полоса детектируемых частот 0..16000Гц
Всё верно, число точек в замере для расчета фильтра значения не имеет (фильтр расчитывается один раз, но данные через него можно пропускать без ограничений). Имеет значение только соотношение частоты дискретизации и частоты среза фильтра (0,25). Число точек в замере будет влиять только на дискрет спектра. Например, для частоты опроса 32кГц 2000 отсчетов будет означать, что разрешение спектра будет 32000/2000 = 16 Гц. Полоса детектируемых частот 0..16000Гц
-
- interested
- Сообщения: 8
- Зарегистрирован: 28 сен 2012, 08:17
- Версия LabVIEW: 2009
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
Вот моя программа
- Вложения
-
- InputSignal.vi
- (293.6 КБ) 195 скачиваний
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Фильтрация сигнала. Помогите отфильтровать
Посмотрите правленный вариант.
Кстати, подстава может быть в том, что файл времени грузится отдельно. Может быть ситуация, когда время отсчетов меняется с переменым шагом (и отображается на Вхiдний невiдфiльтрований сигнал правильно). А вот фильтр работает с искаженными данными. В общем, следует принять, что данные идут с определенным шагом и убрать обработку по файлу времени.
Кстати, подстава может быть в том, что файл времени грузится отдельно. Может быть ситуация, когда время отсчетов меняется с переменым шагом (и отображается на Вхiдний невiдфiльтрований сигнал правильно). А вот фильтр работает с искаженными данными. В общем, следует принять, что данные идут с определенным шагом и убрать обработку по файлу времени.
- Вложения
-
- InputSignal1.vi
- (167.99 КБ) 215 скачиваний
-
- InputSignal1 (1).vi
- v 9.0
- (146.63 КБ) 188 скачиваний
Последний раз редактировалось Borjomy_1 28 сен 2012, 15:49, всего редактировалось 1 раз.
-
- interested
- Сообщения: 8
- Зарегистрирован: 28 сен 2012, 08:17
- Версия LabVIEW: 2009
- Контактная информация:
Re: Фильтрация сигнала. Помогите отфильтровать
Не могли бы вы пересохранить в 2009 или ниже версии, у меня 2009 Labview
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение