2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2, 3, 4, 5  След.
 
 Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 11:34 
От устройства в компьютер поступает сигнал. Про этот сигнал известно, что он содержит гармонику известной частоты и гауссовский шум большей, чем гармоника, мощности.

Реальная производственная задача: почистить сигнал от шума (с целью оценки мощности гармонической составляющей).

Я сделал прогу с БПФ, чтобы смотреть спектр. Сделал хитрую программу-фильтр собственного изобретения для отсева шума. Вроде работает. Смущает нестандартность моего подхода, подозреваю, что изобрел велосипед.

Вопрос: каким стандартным алгоритмом убирают шум с сигнала?

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 14:03 
Аватара пользователя
Я делаю так. Из каждого промежутка длиной Т (период синусоиды) зашумленного сигнала нахожу синусоиду разложением в ряд Фурье. Потом нахожу среднее среди всех найденных синусоид. При достаточном их количестве шума практически не остаётся.

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 14:15 
Александрович в сообщении #893658 писал(а):
Я делаю так. Из каждого промежутка длиной Т (период синусоиды) зашумленного сигнала нахожу синусоиду разложением в ряд Фурье. Потом нахожу среднее среди всех найденных синусоид. При достаточном их количестве шума практически не остаётся.


Спасибо. У меня мощность шума относится к мощности гармоники как 9:1. У Вас для такого шума проканывает?

И еще: а если гармоника не одна?

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 15:05 
Аватара пользователя
oleg777 в сообщении #893662 писал(а):
У меня мощность шума относится к мощности гармоники как 9:1.

Я не совсем понимаю что вы называете мощностью шума и гармоники. В 3 раза уровень шума выше чем амплитуда гармоники?

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 15:13 
Александрович в сообщении #893671 писал(а):
oleg777 в сообщении #893662 писал(а):
У меня мощность шума относится к мощности гармоники как 9:1.

Я не совсем понимаю что вы называете мощностью шума и гармоники. В 3 раза уровень шума выше чем амплитуда гармоники?


Да, только не в 3, а в 9. Мой самодельный фильтр отделяет этот шум, после чего я считаю спектр и вижу на нем гармонику.

Вопрос в том, существуют ли стандартные фильтры для отделения мух.

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 15:21 
Аватара пользователя
Способ №0. Никак не чистить. Посчитать спектр, найти мощность на пике и среднюю мощность вне пика, исходя из последней, оценить добавку к мощности синусоиды от наличия шума и ввести поправку.
Способ №1. Узкополосный фильтр для (известной) частоты сигнала. Может завышать, поскольку есть составляющая шума, совпадающая по частоте с сигналом.
Способ №2. Комплексная демодуляция. Умножаем исходный сигнал на синус и (в другом канале) косинус интересующей частоты, получаем постоянную составляющую, соответствующую амплитуде сигнала нужной частоты (соотношение по каналам зависит от фазового сдвига) плюс шум и высокочастотную добавку, которые убираются усреднением.

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 15:33 
Аватара пользователя
Если частота известна можно просто нарезать сигнал на периоды и найти среднее колебание. При 100 периодах интенсивность шума уменьшится в 10 раз.

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 15:52 
Евгений Машеров в сообщении #893673 писал(а):
Способ №0. Никак не чистить. Посчитать спектр, найти мощность на пике и среднюю мощность вне пика, исходя из последней, оценить добавку к мощности синусоиды от наличия шума и ввести поправку.
Способ №1. Узкополосный фильтр для (известной) частоты сигнала. Может завышать, поскольку есть составляющая шума, совпадающая по частоте с сигналом.
Способ №2. Комплексная демодуляция. Умножаем исходный сигнал на синус и (в другом канале) косинус интересующей частоты, получаем постоянную составляющую, соответствующую амплитуде сигнала нужной частоты (соотношение по каналам зависит от фазового сдвига) плюс шум и высокочастотную добавку, которые убираются усреднением.


Спасибо!

С нулевым вариантом все ясно - не пойдет, шум слишком большой.

А вот по прочим двум - не подскажете ли хорошую, проверенную литературу в интернете?

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 17:13 
Аватара пользователя
9:1 это отношение мощностей или амплитуд?

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 18:56 
Евгений Машеров в сообщении #893700 писал(а):
9:1 это отношение мощностей или амплитуд?


Это отношение корня из дисперсии шума к амплитуде синусоиды. Я просто обозначил порядок. Вы же понимаете, мощность шума - неопределенная штука, зависит от частоты дискретизации. Фрактал, блин

А что?

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 20:49 
Аватара пользователя
Да вот настроение помоделировать. Такое чувство, что "способ №0" вполне рабочий. Фурье на сколько точек считается? И частота сигнала на зубец гребёнки частот попадает? Или оказывается между?

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 21:18 
Евгений Машеров в сообщении #893775 писал(а):
Да вот настроение помоделировать. Такое чувство, что "способ №0" вполне рабочий. Фурье на сколько точек считается? И частота сигнала на зубец гребёнки частот попадает? Или оказывается между?


Фурье считается на 2 в степени. Обычно смотрю на 4096.

Смотрю частоту 50гц. Все хор у меня с БПФ, тщательно написано.

По способу N0 хорошо вижу гармонику. При 1:9 она теряется на спектре. Применяю свой фильтр. Он делает из шума гармонический сигнал, на фоне которого видна входящая гармоника. В этом суть моего фильтра: он преобразует шум в гармонический сигнал, спектр которого определяется параметрами фильтра.

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 21:44 
Аватара пользователя
А частота оцифровки?

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение06.08.2014, 21:54 
1000 Гц

 
 
 
 Re: Как почистить сигнал от гауссовского шума?
Сообщение07.08.2014, 08:56 
Аватара пользователя

(Оффтоп)

"Вызывает интерес и такой ещё разрез"


Если суммарная мощность белого шума в 81 ($9^2$) раз выше синусоиды - то при разложении по 2048 точкам спектра пик, соответствующий синусоиде, будет в 25 раз выше шумовых. И даже если заложиться на то, что частота не точно 50Гц (ну, или частота оцифровки немного дрейфует) и пик попал между "зубьев", что также привело к появлению боковых лепестков, и пики 40% от максимального, а среди шумовых есть разной, случайно меняющейся амплитуды, и максимальный втрое больше среднего - всё равно получается отчётливый пик. Если он не виден - либо ошибка в программе, либо соотношение мощностей куда хуже.
Узкополосный фильтр гармонику выделит, да, причём даже если её нет. В том смысле, что белый шум на входе даст на выходе фильтра синусоиду (с колебаниями амплитуды и фазы, но отчётливую синусоиду). Это может быть полезный эффект (скажем, в электромузыкальных инструментах или алгоритмах передачи речи, когда оценивается фильтр, эквивалентный речевому тракту говорящего, и передаются лишь его параметры, а потом на его вход подаётся возбуждающий сигнал) или вредный (эффект Слуцкого-Юла в экономике, когда обработкой экономических рядов с целью увидеть и прогнозировать экономические циклы, эквивалентной узкополосному фильтру - реально употреблялось сглаживание, соответствующее НЧ-фильтру, и дифференцирование, работавшее, как ВЧ-фильтр, вместо получался полосовой - нашли два с лишним десятка циклов, которым ничего в реале не соответствовало, чистый артефакт обработки). Но в любом случае это артефакт, и это надо принимать во внимание.
Ну и ещё один способ.
№3. Когерентное накопление.
Период интересующего колебания известен, берём $k=1000/50=20$ точек и находим среднее по сериям из 20 точек.
$Y_{(i \mod k)}=\frac k n \sum\limits_{i=1}^{i=n} x_{(i \mod k)}$

 
 
 [ Сообщений: 61 ]  На страницу 1, 2, 3, 4, 5  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group