Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как выделить полезный сигнал из шума?
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
_Alfred_
Недавно столкнулся с проблеммой выделения полезного сигнала на фоне шумов, по амплитуде соизмеримых с самим сигналом.
На данный момент задача стоит так: есть полезный сигнал синусоидальной формы и есть шум (пока стационарный) такой-же или большей амплитуды. Задача: измерение частоты полезного сигнала.

Есть ли у кого-нибудь литература/наработки по этому вопросу?
BVU
Цитата(_Alfred_ @ Oct 10 2005, 02:40)
Недавно столкнулся с проблеммой выделения полезного сигнала на фоне шумов, по амплитуде соизмеримых с самим сигналом.
На данный момент задача стоит так: есть полезный сигнал синусоидальной формы и есть шум (пока стационарный) такой-же или большей амплитуды. Задача: измерение частоты полезного сигнала.

Есть ли у кого-нибудь литература/наработки по этому вопросу?
*


Существует способ выделения сигнала над уровнем шумов называемый - метод накопления сигнала. Но это обработка в нереальном времени. Если Вас не лимитирует этот критерий (реальное время) можете воспользоваться данным методом.
s_yakov
попробуйте знаковый коррелятор
zhorro
Можно попробовать БПФ.
Я обычно делаю БПФ а потом корреляторами уточняю до требуемого значения

Если рессурсы серьезно ограничены то можно попробовать достаточно инерционный ФАПЧ

А литература подойдет любая по системам автоматического регулирования
kons
Первое, что приходит в голову - преобразование Фурье. При указанных Вами условиях "палка" от полезного сигнала будет выделяться на фоне "мусора" от шума так, что с шумом ее никогда не спутаешь. Точность оценки частоты - порядка Fд/N, где Fд - частота дискретизации, N - длина преобразования.
Если для заданной точности требуется нереальное N, но известно, что периодический сигнал только один, то можно попробовать адаптивный самонастраивающийся фильтр (как вариант - ФАПЧ типа аналоговой), после чего мерить частоту/период на его выходе.
kons
Пока писал - опередили... Так что решения на поверхности - раз всем в голову одновременно приходит одно и то же.
radist
С точки зрения науки есть только один метод - узкополосная фильтрация, а как его реализовать - дело вкуса. В аналоговом виде проще фАПЧ, там, в зависимости от условий, можно реализовать фильтр до единиц гц шириной. В цифровом виде проще БПФ, Однако, у этого метода есть некоторые недостатки. АЧХ одного канала имеет вид sin(x)/x, да к тому же соседние каналы перекрываются. С первым недостатком борются применением оконных функций, а со вторым - дискриминаторной обработкой.
tobias_ivan
Что-то мне подсказывает, что при соизмеримых уровнях шума и помехи выделить полезный сигнал невозможно, вот только ссылочку найти не могу.
Тем более, что полезный сигнал - синусоибальное колебание.
А вот нашел, Варакин Л.Е. 1.3. Помехоустойчивость ШСС стр. 6-8. На стр.8 для систем АМ,ЧМ указано при каких соотношениях сигнал/шум эти системы будут работать.
Vjacheslav
Была задача регистрировать сигнал при соотношении сигнал\шум ~0.01 - сигнал узкополосный и частота оставалась стабильной в течение измерений, но могла изменяться в зависимости от условий: 2.2 - 2.8 кГц. Применяли два скрещенных синхронных детектирования (опорное между ними сдвинуто по фазе на 90 градусов) далее цифровое накопление с вычислением модуля. Частота опорного сигнала перестраивалась - синтезатор. Результат имел сигнал\шум ~ 100. Возможно для Ваших целей это будет и несколько сложновато - привожу как пример методики.
Stanislav
Цитата(_Alfred_ @ Oct 10 2005, 01:40)
Недавно столкнулся с проблеммой выделения полезного сигнала на фоне шумов, по амплитуде соизмеримых с самим сигналом.
На данный момент задача стоит так: есть полезный сигнал синусоидальной формы и есть шум (пока стационарный) такой-же или большей амплитуды. Задача: измерение частоты полезного сигнала.

Есть ли у кого-нибудь литература/наработки по этому вопросу?
*

Условия поставлены очень неточно (к сожалению, на форуме это встречается постоянно). Приведите конкретные цифры, пожалуйста, а именно: частоту, диапазон ее изменения, модель шума, или хотя бы его спектральные хар-ки.
Далее, непонятно, что Вы подразумеваете под "амплитудой" шума?
rar_
Цитата(_Alfred_ @ Oct 10 2005, 01:40)
Недавно столкнулся с проблеммой выделения полезного сигнала на фоне шумов, по амплитуде соизмеримых с самим сигналом.
На данный момент задача стоит так: есть полезный сигнал синусоидальной формы и есть шум (пока стационарный) такой-же или большей амплитуды. Задача: измерение частоты полезного сигнала.

Есть ли у кого-нибудь литература/наработки по этому вопросу?
*

Слышал что неплох метод медианного центра
_Alfred_
Спасибо всем, кто откликнулся! В последние несколько недель был завален другими делами, поэтому не отвечал.

Цитата(Stanislav @ Oct 14 2005, 18:54) *
Условия поставлены очень неточно (к сожалению, на форуме это встречается постоянно). Приведите конкретные цифры, пожалуйста, а именно: частоту, диапазон ее изменения, модель шума, или хотя бы его спектральные хар-ки.
Далее, непонятно, что Вы подразумеваете под "амплитудой" шума?

Данная работа - мой дипломный проект. Моя задача - разработка общего алгоритма выделения полезного сигнала из шума и последующая его реализация в виде устройства. На данном этапе условия следующие: есть вихревой измеритель скорости, частота сигнала прямопропорциональна скорости потока. Пока "идеальные" условия - сигнал с датчика - синусоида. Частота меняется (скорость потока непостоянна). Шум более-менее постоянен (собственные шумы устройств и трубы) но может изменятся - помехи от других устройств, удары по трубе, "гул" в трубах, шум от насосов и т.д. Пока рассматриваю "идеальные" условия - белый шум, со временем не меняется.
Проблемма - амплитуда полезного сигнала уменшается с уменьшением скорости потока квадратично. Измерение на больших скоростях не представвляет сложности - соотношени сигнал/шум 10 к 1. Но при снижении частоты соотношение сигнал/шум составляет 1 к 1 (точка 200 - 300 Гц , в зависимости от датчика и среды, где проводятся измерения), при дальнейше сниженни частоты - 1 к 10. Из-за этого есть возможность измерять только большие скорости, на нижней же части диапазона измерений (0 - 5%) просто отключать измерения и не учитывать расход. Моя задача - отодвинуть нижнюю границу как можно ниже.


Цитата(kons @ Oct 10 2005, 13:50) *
Первое, что приходит в голову - преобразование Фурье. При указанных Вами условиях "палка" от полезного сигнала будет выделяться на фоне "мусора" от шума так, что с шумом ее никогда не спутаешь. Точность оценки частоты - порядка Fд/N, где Fд - частота дискретизации, N - длина преобразования.
Если для заданной точности требуется нереальное N, но известно, что периодический сигнал только один, то можно попробовать адаптивный самонастраивающийся фильтр (как вариант - ФАПЧ типа аналоговой), после чего мерить частоту/период на его выходе.

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


Цитата(s_yakov @ Oct 10 2005, 13:34) *
попробуйте знаковый коррелятор

Цитата(rar_ @ Oct 22 2005, 19:47) *
Слышал что неплох метод медианного центра

s_yakov и rar_а не могли бы Вы рассказать более подробно? Не совсем пойму о чем речь.


Цитата(zhorro @ Oct 10 2005, 13:44) *
Можно попробовать БПФ.
Я обычно делаю БПФ а потом корреляторами уточняю до требуемого значения

Если рессурсы серьезно ограничены то можно попробовать достаточно инерционный ФАПЧ

А литература подойдет любая по системам автоматического регулирования

Цитата(radist @ Oct 10 2005, 14:22) *
С точки зрения науки есть только один метод - узкополосная фильтрация, а как его реализовать - дело вкуса. В аналоговом виде проще фАПЧ, там, в зависимости от условий, можно реализовать фильтр до единиц гц шириной. В цифровом виде проще БПФ, Однако, у этого метода есть некоторые недостатки. АЧХ одного канала имеет вид sin(x)/x, да к тому же соседние каналы перекрываются. С первым недостатком борются применением оконных функций, а со вторым - дискриминаторной обработкой.

Была мысль использовать фазовую автоподстройку под частоту полезного синала, вот только есть сомнения, буду ли "успевать бегать" за изменением частоты, и не буду ли "застрявать" на точках, типа 50 Гц, где есть стабильные и сильные помехи...
БПФ - как это расшифровываеться?

Была еще мысль работать с амплитудами, т.к. амплитуда шума распределена по з-ну Гауса, а полезный сигнал будет периодически сдвигать распределение.
Вобщем впереди три свободных дня - буду моделировать.

Еще раз благодарю ВСЕХ, кто ответил и ответит!
unregistered
БПФ - как это расшифровываеться?
Быстрое преобразование Фурье.
z64
если шум гауссовский а сигнал гармоника, что достаточно оценить частоту пересечения нулевого уровня. Это классический результат, по моему Райса.
Классиков надо знать - товарищ.
bav
Попробуй на вход поставить автокоррелятор (если шум представляет собой случайный! процесс), на выходе будет синусоида значительно чище. Время задержки в корреляторе - период сигнала.
Медленно, трудоемко, но зато эффективно...
Stanislav
Цитата(z64 @ Nov 20 2005, 20:16) *
если шум гауссовский а сигнал гармоника, что достаточно оценить частоту пересечения нулевого уровня. Это классический результат, по моему Райса.
Классиков надо знать - товарищ.
Знание только некоторых классиков часто приводит к результату, весьма далекому от удовлетворительного.
2 Alfred
Сдается, задача не так проста, как представлялась изначально. По-моему, решение нужно искать в виде некого следящего фильтра с адаптивной частотой настройки и полосой пропускания. Реализация может быть различной - в зависимости от вычислительных возможностей, - Фурье, автокорреляция, ФАПЧ и др. К сожалению, более подробно обсудить эту тему могу только на сл. неделе.
В любом случае, сначала нужно получить качественный реальный сигнал. Если он уже есть, выложите несколько его реализаций в посте. Это совершенно необходимо для построения действующей модели.
kons
При заданных условиях ФАПЧ(она же адаптивный фильтр) скорее всего не катит - когда поток=0, сигнала нет и ему не за что зацепиться, при резких скачках потока слежение тоже может теряться. Наверное, оптимален комбинированный вариант - измерение простым счетчиком при больших расходах (когда сигнал большой) и при помощи преобразования Фурье при малых. Преобразование может быть весьма коротким, т.к. должно охватывать только начало шкалы прибора. Естественно, перед преобразованием нужна правильная децимация с ФНЧ. Порог обнаружения сигнала (как со счетчиком, так и с БПФ) должен быть увязан с ожидаемым уровнем, т.е. прямо пропорционален квадрату частоты пока тракт не перегружается. Кстати, усиление аналогового тракта+АЦП можно задрать - если большой сигнал высокой частоты (который меряют счетчиком) ограничится, то не страшно. Главное, чтобы тракт не перегружался при низких частотах, в том числе и фоновыми шумами.
michael34
Ну ты такой простой... Мой профессор 30 лет бьётся над этим вопросом. И я пишу диссертацию на эту же тему. И этот вопрос так от балды не решается. Какова конкретная задача? какие известные параметры? что нужно найти? какие ограничения и т.п.?
kirgizz
Извиняюсь за некоторые огрехи, т.к. не знаю некоторых технических названий по-русски.

Работаю над подобной проблемой, правда не завершена она еще. Советую посмотреть в интернете понятие "lock-in amplifier" а также PLL для автоподстройки частоты. С lock-in'ом я разобрался, а вот с PLL пока парюсь (частота входного сигнала не постоянна + нужна точная информация о частоте в DSP).
DRUID_3
Цитата(zhorro @ Oct 10 2005, 11:44) *
Можно попробовать БПФ.
Я обычно делаю БПФ а потом корреляторами уточняю до требуемого значения

Если рессурсы серьезно ограничены то можно попробовать достаточно инерционный ФАПЧ

А литература подойдет любая по системам автоматического регулирования


Ну, для этой задачи это с пушки по воробьям. Но мне вот интересно самому что и как Вы уточняете корреляторами после БПФ?

Цитата(tobias_ivan @ Oct 10 2005, 12:35) *
Что-то мне подсказывает, что при соизмеримых уровнях шума и помехи выделить полезный сигнал невозможно, вот только ссылочку найти не могу.
Тем более, что полезный сигнал - синусоибальное колебание.
А вот нашел, Варакин Л.Е. 1.3. Помехоустойчивость ШСС стр. 6-8. На стр.8 для систем АМ,ЧМ указано при каких соотношениях сигнал/шум эти системы будут работать.


Да нет, почему же, очень даже возможно. Есть корреляционные методы основное применение которых как раз и есть распознавание при высоком уровне шума. Сейчас они очень широко применяются как в радио(электро)связи так и в системах распознавания образов.

Цитата(Vjacheslav @ Oct 10 2005, 14:07) *
Была задача регистрировать сигнал при соотношении сигнал\шум ~0.01 - сигнал узкополосный и частота оставалась стабильной в течение измерений, но могла изменяться в зависимости от условий: 2.2 - 2.8 кГц. Применяли два скрещенных синхронных детектирования (опорное между ними сдвинуто по фазе на 90 градусов) далее цифровое накопление с вычислением модуля. Частота опорного сигнала перестраивалась - синтезатор. Результат имел сигнал\шум ~ 100. Возможно для Ваших целей это будет и несколько сложновато - привожу как пример методики.


Это почти то что нужно - квадратурный детектор. Самое интересное, что для синусоидальной функции корреляционные и частотные (разложение Фурье) методы к этому незамысловатому девайсу таки и сводятся. Не даром это явление так широко применялось в аналоговой технике. Если еще вспомнить что ДПФ по своей сути является набором таких детекторов стоящих с определенным шагом по частоте, то задача должна здорово проясниться. ИМХО задачу можно решить просто программно, применив DSP. Причем ресурсы системы можно существенно сэкономить (как показывает мой небольшой но горький опыт glare.gif ) если исходить в расчетах из погрешностей датчика (или там АЦП и т.д.) и требуемой точности результатов а не тянуть там число "Пи" до 20-го знака после запятой ( angry.gif ) в выуженном из инета алгоритме. И еще одно замечание: прелесть БПФ в быстроте, но ужас в том, что это преобразование для всех точек частотного интервала, но иногда практичнее и быстрее работает ДПФ если нужно анализировать узкий (по разрешению) частотный участок.
zhorro
Корреляторами можно уточнять частоту синусоиды, если она не точно попадет на одну из частот преобразования Фурье она расползется на Sinc, вот его положение и уточняю корреляторами

А в данной задаче на мой взгляд БПФ разумно использовать для начальной оценки частоты. А дальше ставить следящую систему. Что там будет следить или нет, все зависит от отношения сигнал/шум и адекватности модели следящей системы (ФАПЧ к примеру) - порядок астатизма и прочее.
emark
Цитата(DRUID_3 @ Feb 19 2006, 17:03) *
И еще одно замечание: прелесть БПФ в быстроте, но ужас в том, что это преобразование для всех точек частотного интервала, но иногда практичнее и быстрее работает ДПФ если нужно анализировать узкий (по разрешению) частотный участок.


Алгоритм Герциля ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.