реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Цифровая обработка низкочастотного аналогового сигнала, Полезный сигал ниже 50 Гц
mihalevski
сообщение Aug 1 2013, 04:09
Сообщение #31


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 20-05-10
Из: Omsk
Пользователь №: 57 391



Цитата(bullit @ Apr 13 2013, 16:23) *
ФНЧ? эт чтоб срез на 30 Гц и уже на 50 Гц порядка -40-60 дБ?
Не подскажите какой цифровой фильтр взять?


Если нет необходимости в определении точного значения амплитуды сигнала (частота точно неизвестна) можно применить очень простой КИХ фильтр (на основе циклотомических полиномов с единичными коэффициентами) который бедет давить сетевую помеху и ее гармоники на указанные величины. Где-то ранее расчет такого фильтра я здесь приводил. Частота дискретизации 600 Гц.
Go to the top of the page
 
+Quote Post
bullit
сообщение Aug 3 2013, 18:38
Сообщение #32


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Возникла такая задача:
Как лучше всего на уровне шума, уровень которого не известен, ловить приход сигнала?
Как подсчитывать уровень шума? при том что о может немного во времени меееедленно меняться!
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 4 2013, 09:13
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



что значит не известен?
среднеквадратичное значение всегда можно посчитать
Go to the top of the page
 
+Quote Post
bullit
сообщение Aug 4 2013, 09:46
Сообщение #34


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



В том то и дело, что не знаю где шум, а где сигнал!
Я могу подсчитать хоть средне, хоть среднеквадратичное, но только всего сигнала, ну т.е. какого-то интервала.
Но я не знаю где шум, а где сигнал. тут получается замкнутый круг))

Объясню чуть подробней: вот есть сигнал, как на картинке в вашем посте 28. Визуально я могу выделить сигнал и шум, а как программно - не знаю как подобрать нормальный алгоритм.

К сожалению от алгоритма герцеля пришлось отказаться, так как ооочень много шума, пришлось ставить ПФ порядком выше.
Хотя может после ПФ герцеля поставить?

Да еще чтоб при отсутствии сигнала, не ловить на уровне шума ложные срабатывания.

Мне кажется нужно использовать то, что отличает шум от сигнала: 1) это уровень 2) гармоничность 3) длительность

Сейчас вот есть такой алгоритм:
1) провожу подсчет среднего за N точек (синий на графике) (1/N кратен (частота сэмплов/частота искомого сигнала)) - по-моему это децимация называется? поправьте если ошибаюсь.
2) отрицательные значения умножаем на -1
2) считаем среднее за интервал длительности сигнала
Получаем что-то подобное:

Прикрепленное изображение

Критерий: сигнал выше среднего 60-80 % времени - но критерий какой-то странный))
Go to the top of the page
 
+Quote Post
bullit
сообщение Aug 4 2013, 10:55
Сообщение #35


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Вот кстати различия между шумом и сигналом:
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 4 2013, 12:39
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(bullit @ Aug 4 2013, 15:46) *
В том то и дело, что не знаю где шум, а где сигнал!
Я могу подсчитать хоть средне, хоть среднеквадратичное, но только всего сигнала, ну т.е. какого-то интервала.
Но я не знаю где шум, а где сигнал. тут получается замкнутый круг))

когда уровень вдруг становится больше чем 3 (или больше) сигма, скорее всего (99.7%) это уже не шум а сигнал, и считать среднеквадратичное значение шума надо прекратить.
Цитата(bullit @ Aug 4 2013, 15:46) *
К сожалению от алгоритма герцеля пришлось отказаться, так как ооочень много шума, пришлось ставить ПФ порядком выше.
Хотя может после ПФ герцеля поставить?

что-то мне подсказывает что интеграл Фурье на заданной частоте это оптимальный полосовой фильтр,

Цитата(bullit @ Aug 4 2013, 15:46) *
Сейчас вот есть такой алгоритм:
1) провожу подсчет среднего за N точек (синий на графике) (1/N кратен (частота сэмплов/частота искомого сигнала)) - по-моему это децимация называется? поправьте если ошибаюсь.
2) отрицательные значения умножаем на -1
2) считаем среднее за интервал длительности сигнала
Получаем что-то подобное:

Прикрепленное изображение

Критерий: сигнал выше среднего 60-80 % времени - но критерий какой-то странный))


если уровень меньше чем k * sigma (k=3 например) считаем среднеквадратичное значение дальше, если нет, то это сигнал и не обновляем среднеквадратичное значение.

причём чтобы не хранить кольцевой буфер для честного вычисления среднего и среднеквадратичного значений, можно считать немного проще:
Y0 += (x - Y0) / N;
Y2 += (x - Y0)^2 / N;
stDev = sqrt(Y2);
Go to the top of the page
 
+Quote Post
bullit
сообщение Aug 4 2013, 14:53
Сообщение #37


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Если Вы посмотрите последний рисунок, то увидите, что там отношение более чем 3.
Может лучше считать rms на интервале половины или кратной искомой частоты?

За формулы rms спасибо!

Ну кстати!
Сделал расчёт на интервалах пол периода искомого сигнала в течении секунды. И получился достаточно не плохой результат. Даже трехкратного запаса не надо. Единственное как первоначально понять что мы не на сигнале, а в паузе. Либо первоначально смотреть на весь период следования сигнала (2 сек = 1 сек сигнал + 1 сек пауза) и уже исходя из этого смотреть. Ну вроде очень даже не плохой результат!
Спасибо. Будем дальше испытывать!

Что-то у меня значение RMS по выше приведенной формуле просто постоянно растёт - никак понять не могу что я делаю не так.
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 4 2013, 17:53
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(bullit @ Aug 4 2013, 20:53) *
Что-то у меня значение RMS по выше приведенной формуле просто постоянно растёт - никак понять не могу что я делаю не так.

потому что она неправильная.
Y0 += (x - Y0) / N;
Y2 += ((x-Y0)^2 - Y2) / N
Go to the top of the page
 
+Quote Post
bullit
сообщение Aug 4 2013, 18:40
Сообщение #39


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Растёт, только с большей скоростью)
Я так понимаю N это всё таки константа?
И судя по всему это нечто иное чем RMS, не? Тем более, если N не константа.
Поправьте если я ошибаюсь!
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 4 2013, 19:08
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(bullit @ Aug 5 2013, 01:40) *
И судя по всему это нечто иное чем RMS, не?

N - константа времени.
и да, по ссылке правильно.
а это просто замена честного усреднения БИХ фильтром.
разница лишь в том что если считать честно не с начала до конца, а только за последние n отсчётов, то придётся хранить все эти n отсчётов в неком кольцевом буфере, а так не надо.
Go to the top of the page
 
+Quote Post
Corner
сообщение Aug 21 2013, 15:50
Сообщение #41


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Для точного определения где шум, а где сигнал наиболее удобно FFT. Белый шум равномерно размазан по спектру, а детерминированный сигнал будет превышать эту величину. Причем при узком спектре полезного сигнала соотношение С/Ш в рамках одной полоски будет тем выше, чем больше точек у FFT.
Go to the top of the page
 
+Quote Post
bullit
сообщение Aug 28 2013, 04:42
Сообщение #42


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Огромное спасибо за подсказку - это прекрасная идея. Только я не стал брать БПФ. А просто из отфильтрованного сигнала "вырезал" режкторным фильтром полезный сигнал - получил уровень шума. есть конечно нюансы по масштабу сигнала - но преодолимо!
И работает прекрасно - но нужно конечно подпиливать!
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 11:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.0148 секунд с 7
ELECTRONIX ©2004-2016