50Hz noise

Захват, обработка и генерирование сигнала
Ответить
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

50Hz noise

Сообщение Vasiliy Baev »

Коллеги, здравствуйте.
Хочу обсудить с вами вопрос фильтрации сигнала от 50Hz помехи.
Какие фильтры вы используете, с какими параметрами?
Как боретесь с краевым эффектом? На сколько я помню из курса цифровой обработки от краевого эффекта избавиться невозможно... Интересуют способы уменьшения этого эффекта.

В своей задаче снимаю значения с частотой 20kHz, накапливаю данные, а затем обрабатываю накопленный за 1с массив и ни как не могу побороться с 50Hz помехой.
Использую фильтр Butterworth, крутил его настройки и так и этак, но необходимого эффекта достигнуть не удалось.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: 50Hz noise

Сообщение IvanLis »

Vasa писал(а):В своей задаче снимаю значения с частотой 20kHz, накапливаю данные, а затем обрабатываю накопленный за 1с массив и ни как не могу побороться с 50Hz помехой.
если сигнал выложите захваченный, то проще будет
холостых советов меньше

попробуйте давить сигнал не 50Гц, а хотя бы до 5кГц

а лучше полосовым фильтром выделить только необходимый диапазон
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: 50Hz noise

Сообщение Pavel Krivozubov »

Может это подойдёт?
http://www.labviewportal.org/viewtopic. ... %B9#p16227
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: 50Hz noise

Сообщение Vasiliy Baev »

Pavel Krivozubov, попробую! Спасибо.

В данный момент реально измеряемый сигнал записать не могу. Выкладываю 11с запись снятую с провода подключенному к ЦАПу cRIO, тут как раз 50Гц и болтается.
Файл >1мб, пришлось запаковать. 20kHz, 11c
Вложения
DATA50Hz.rar
(625.85 КБ) 138 скачиваний
Аватара пользователя
mxdamage

Activity
assistant
assistant
Сообщения: 113
Зарегистрирован: 11 авг 2011, 15:45
Награды: 1
Версия LabVIEW: 2011
Откуда: Москва
Контактная информация:

Re: 50Hz noise

Сообщение mxdamage »

Наводка на 50 Гц никогда не бывает только на 50 Гц. Она есть и на всех кратных частотах, поэтому нужен гребенчатый фильтр (comb filter), как посоветовал Pavel Krivozubov. Я так понял, в его реализации - это каскад режектроных фильтров Баттерворта.

Гребенчатый фильтр также есть уже готовый в Digital Filter Design Toolkit.

А что за краевой эффект в этой теме имеется в виду?
ESeid

Автор
advanced
advanced
Сообщения: 150
Зарегистрирован: 30 мар 2011, 22:41
Награды: 1
Версия LabVIEW: 8.2-2013
Контактная информация:

Re: 50Hz noise

Сообщение ESeid »

mxdamage, категорически согласен. Но тут есть и еще одна тонкость: 50 Hz - это не константа, а частота сети. А она все время немного "плывет" в зависимости от нагрузки, в пределах 5%, если правильно помню ГОСТ. И, если на первой гармонике это легко покрывается шириной фильтра, то уже на 5-й, достаточно сильной, возникают проблемы. А мы, борясь с этой помехой от флуоресцентных ламп, прекрасно ее видели минимум до 3 kHz. А там уже девиация частоты очень значительная. Таким образом, качественный фильтр должен быть адаптивным: непрерывно мерять частоту помехи и "давить" именно ее. Впрочем, возможны и другие решения.
Аватара пользователя
mxdamage

Activity
assistant
assistant
Сообщения: 113
Зарегистрирован: 11 авг 2011, 15:45
Награды: 1
Версия LabVIEW: 2011
Откуда: Москва
Контактная информация:

Re: 50Hz noise

Сообщение mxdamage »

ESeid писал(а):Таким образом, качественный фильтр должен быть адаптивным: непрерывно мерять частоту помехи и "давить" именно ее. Впрочем, возможны и другие решения.
Да, вы правы, но я в своей практике не наблюдал отклонения 50 Гц более, чем на 0.1 Гц (0.2%) от номинала, хотя вполне допускаю, что "плавание" частоты возможно. Это все от электросети зависит. Адаптивный фильтр возможно сделать, но для упрощения реализации фильтра (и его дальнейшей отладки), просто бы сделал каскад режекторных фильтров с различной шириной полосы подавления. Но если вдруг требуется максимально сохранить исходный сигнал, то тогда, возможно, адаптивный фильтр.
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: 50Hz noise

Сообщение Vasiliy Baev »

Павел, Ваш фильтр приспособить к своей задаче у меня не получилось.
На форуме NI ничего интересного (подавление 60Hz/50Hz помехи) найти не удалось.
mxdamage, ESeid, спасибо за рекомендации.

Посмотрите на мои первые работы в Digital Filter Design Toolkit. Пытался создать каскадный фильтр, вот что из этого вышло:
filter.PNG
Не могу быть уверен, что всё делаю правильно. Жду ваши комментарии и рекомендации
Аватара пользователя
mxdamage

Activity
assistant
assistant
Сообщения: 113
Зарегистрирован: 11 авг 2011, 15:45
Награды: 1
Версия LabVIEW: 2011
Откуда: Москва
Контактная информация:

Re: 50Hz noise

Сообщение mxdamage »

Vasa писал(а):Посмотрите на мои первые работы в Digital Filter Design Toolkit. Не могу быть уверен, что всё делаю правильно. Жду ваши комментарии и рекомендации
filter type - надо выбирать "notch peak 1", у вас сейчас наоборот стремится оставить полоски сигнала.
Df - это ширина полосы подавления. Поставьте 0.1
N = 10 означает, что на вашей частоте дискретизации (20000) будет 10 вырезаемых полос, то есть подавятся гармоники на 2000*k, k=0..10 Гц, а нам нужно 50. ТО есть нужно либо поставить N=Fs/Fo, или выбрать тип фильтра "by F0 and DW", где F0=50Hz

Да и... В качестве картинок лучше показывать спектры сигналов, а не их временные реализации.
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: 50Hz noise

Сообщение Vasiliy Baev »

Посмотрите спектр исходного сигнала и программу для фильтрации. Пока отфильтровать сигнал не получается.
Жду советов. :help:
Вложения
APP
APP
GRAPH
GRAPH
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: 50Hz noise

Сообщение Pavel Krivozubov »

Vasa, а почему мой фильтр использовать не получилось? Судя по приведенному графику подобные гармоники он давил весьма успешно.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: 50Hz noise

Сообщение Borjomy_1 »

Vasa, Определитесь, в каком диапазоне частот у Вас должен быть полезный сигнал. Вы должны выделить постоянное напряжение или вас интересует конкретная частота? Какая динамика изменения сигнала Вас устраивает? Какой уровень шума требуется достичь? Только тогда можно будет сказать, возможно ли только цифровым фильтром эту задачу решить, либо требуется аппаратные доработки. Цифровым ФНЧ можно очень хорошо задавить помеху. Надо только правильно его настроить.
Частота дискретизации, как понимаю, 20кГц. Еще что обратил внимание - у Вас полезный сигнал имеет размах порядка 200 отчетов АЦП. Это мало, собственные шумы АЦП начинают оказывать влияние на точность преобразования. Если Вы исследуете малый сигнал, весьма рекомендуется также уменьшить входной диапазон АЦП до 200мВ. Провод, которым Вы подключатесь к устройству, экранирован? Опишите схему подключения, как принимается сигнал: в дифференциальном режиме или с общей точкой.
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: 50Hz noise

Сообщение Vasiliy Baev »

Совсем забыл про тему, извините.

Pavel Krivozubov, спасибо за Ваш пример, использовал при обработке. В новых версиях LabVIEW переписан IIR фильтр, теперь на терминал IIR filter specifications можно подавать массив настроек (исключить цикл While и сдвиговый регистр) - результат аналогичен, но большой выигрыш во времени обработки.

Хотелось бы разобраться с гребенчатым(comb) фильтром.

http://zone.ni.com/reference/en-XX/help ... b_filters/
Гребенчатый фильтр LabVIEW работает отлично, но с настройками notch type 1 вырезает и 0 Hz - таким образом вырезаем подставку в сигнале.
rej.PNG
Как средствами LabVIEW создать режекторный фильтр, который не вырезал бы 0 частоту?
Пытался исхитриться, но желаемого результата не получил:
comb.png
Такая вот порнография, которая вырезает лишь часть необходимых частот, оставляя целый ряд частот (100, 200,300 ... ) не тронутыми.
Пытался и вот так исхитриться, но этот вариант совсем не работает:
pron.PNG
pron.PNG (8.45 КБ) 5260 просмотров
Надеюсь на помощь форума. :help:

Добавлено:
Объединил две свои попытки воедино - получил желаемый результат.

ПиСи
Что касается измерений, то использовал АЦП 24 битное, диапазон +-10V был выбрал из-за неудачно выбранной развязки после усилителей, провод где возможно экранирован, питание усилителей батарейное, коэф усиления 3000, измеряем пост составляющую напряжения. В дальнейшем, после изменения аналоговой системы, буду измерять сигнал в диапазоне +-1V, коэф усиления планируется получить в 100 раз больше.
После обработки каскадным фильтром, небольшая медианная фильтрация, а затем усреднение сигнала.
В данный момент экспериментирую с адаптивным фильтром и соответствующим тулкитом LAbVIEW.
Последний раз редактировалось Vasiliy Baev 02 авг 2012, 15:04, всего редактировалось 1 раз.
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: 50Hz noise

Сообщение Konstantin Sumenko »

А полезный-то сигнал в какой полосе лежит?
Ответить

Вернуться в «Обработка сигнала»