Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Особенности алгоритма Герцеля
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2
YDM86
Добрый день! Есть задача - определение в сигнале составлющей 22 Гц. АЦП достаточно мощный. Мне требуется в секунду делать порядка 10 проверок того, что сигнал 22Гц есть. Как оптимизировать частоту дискретизации и величину выборки на обработку для данной задачи?(при величине выборки 50 на высоких частотах дискретизации у меня получается полная фигня) В инете копал, но не нашёл прямого ответа на этот вопрос. Книга Блейхута же так написана, что мне, несмотря на физическое образование, не хватает математической подготовки, чтобы её расшифровать.
eugen_pcad_ru
Цитата(YDM86 @ Apr 24 2008, 08:32) *
Как оптимизировать частоту дискретизации и величину выборки на обработку для данной задачи?(при величине выборки 50 на высоких частотах дискретизации у меня получается полная фигня)

Алгоритм Герцеля есть по своей сути частный случай БПФ. Если мусор показывает БПФ, то и алгоритм Герцеля тже ничего не даст (он дает только выигрыш во времени). ИМХО для оценки точности определения частоты можно воспользоваться требованиями к разрешающей способности спектра мощности (с учетом применяесого окна). Mожно наверное попробовать промоделировать?
fontp
Цитата(YDM86 @ Apr 24 2008, 09:32) *
Добрый день! Есть задача - определение в сигнале составлющей 22 Гц. АЦП достаточно мощный. Мне требуется в секунду делать порядка 10 проверок того, что сигнал 22Гц есть. Как оптимизировать частоту дискретизации и величину выборки на обработку для данной задачи?(при величине выборки 50 на высоких частотах дискретизации у меня получается полная фигня) В инете копал, но не нашёл прямого ответа на этот вопрос. Книга Блейхута же так написана, что мне, несмотря на физическое образование, не хватает математической подготовки, чтобы её расшифровать.


Дело не в Герцеле. А в принципе. Герцель - это просто способ вычислять отсчёт ДПФ с помощью простейшего фильтра.
Существует принцип непределённости - dF*dT ~ 1. Неопределённость частоты, время измерения...
Поэтому, если измерять в течентии секунды - то все частоты находящиеся примерно в окрестности +-1гц от 22 гц будут схвачены. Или другими словами, если частота дискретизации АЦП 8кгц, частота Найквиста 4 кгц
то необходимо использовать 4кгц/1гц=4000 точек, чтобы иметь непределённость частоты 1 гц. Где здесь 50 точек? 50 точек дают полосу измерения (неопределённость) 4000/50 = 80 гц. 80 гц много больше 22 гц и прихватывают много мусора, в том числе и огромный дрейф обычно присущий в АЦП на постоянной составляющей


Цитата(eugen_pcad_ru @ Apr 24 2008, 09:56) *
Алгоритм Герцеля есть по своей сути частный случай БПФ.


Только ДПФ. БПФ из другой, быстрой, оперы ))
YDM86
Так всё же - мне отправляться от величины выборки для Герцеля и подбирать под неё частоту дискретизации или наоборот? Требуется просто обнаружить 22 Гц и всё. Я пробовал 50 точек в выборке с частотой дискретизации 200 Гц(именно по алгоритму Герцеля). При этом был хороший результат - при сигнале 22,5 Гц мощность(22Гц-овой компоненты), рассчитанная по Герцелю была меньше на порядок, чем если подать именно 22Гц. При 500Гц дискр-ии уже хуже - что 22Гц подавай, что 23, а результат вычисления 22 герцовой компоненты почти один и тот же.
Предложите, пожауйста рецепт - я раньше не работал ни сБПФ, ни с ДПФ, так что в предыдущий постах понял не всё, простите меня,теоретика.
DRUID3
Цитата(eugen_pcad_ru @ Apr 24 2008, 08:56) *
Алгоритм Герцеля есть по своей сути частный случай БПФ. Если мусор показывает БПФ, то и алгоритм Герцеля тже ничего не даст (он дает только выигрыш во времени). ИМХО для оценки точности определения частоты можно воспользоваться требованиями к разрешающей способности спектра мощности (с учетом применяесого окна). Mожно наверное попробовать промоделировать?

Это ни в коей мере не БПФ и даже не ДПФ !!! Это скорее FIFO фильтр с неким подобием коррелятора. Основное отличие Герцеля - он может быть настроен на любую частоту включая дробную частоте дискретизации!

Цитата(YDM86 @ Apr 24 2008, 09:21) *
Так всё же - мне отправляться от величины выборки для Герцеля и подбирать под неё частоту дискретизации или наоборот? Требуется просто обнаружить 22 Гц и всё. Я пробовал 50 точек в выборке с частотой дискретизации 200 Гц(именно по алгоритму Герцеля). При этом был хороший результат - при сигнале 22,5 Гц мощность(22Гц-овой компоненты), рассчитанная по Герцелю была меньше на порядок, чем если подать именно 22Гц. При 500Гц дискр-ии уже хуже - что 22Гц подавай, что 23, а результат вычисления 22 герцовой компоненты почти один и тот же.
Предложите, пожауйста рецепт - я раньше не работал ни сБПФ, ни с ДПФ, так что в предыдущий постах понял не всё, простите меня,теоретика.

Немного странно что у Вас с повышением частоты дискретизации качество фильтрации падает...хм... а Вы при этом сам фильтр Герцеля, надеюсь, меняете? Еще вопрос - Вы это делаете на какой-то физической установке или в опиумном MatLabе?
fontp
Цитата(DRUID3 @ Apr 24 2008, 10:42) *
Это ни в коей мере не БПФ и даже не ДПФ !!! Это скорее FIFO фильтр с неким подобием коррелятора. Основное отличие Герцеля - он может быть настроен на любую частоту включая дробную частоте дискретизации!


Это в точности ДПФ. Хоть и к БПФ отношения не имеет. ДПФ тоже может быть "настроен" на дробные. ДПФ = Сумма (s(j)*exp(iwj))
Одинаково смещённые при этом будут линейно независимы. Остальные будут от них зависить.
В чём проблема ДПФ, если взять N отсчётных точек , а частот - 2*N? или даже 10*N ?
В том, что для каждой частоты ДПФ сигнал собирается из некоторой полосы или другими словами спектроанализатор имеет некоторую апертуру. Колокольчик такой, sinc если не применять функцию окна. Так вот эти колокольчики перекрываются или в строго математическом смысле - линейно зависимы. Та же история с Герцелем. Толку от того, что Вы можете взять произвольные частоты - почти никакого. Поскольку отклики этих фильтров - зависимы, или если нарисовать - перекрываются
Ширина полосы этих фильтриков в точности определяется величиной 1/(длительность измерения).
Если интересуют две частоты расположенные далеко друг от друга - то может проблем и нет как у Герцеля так и у ДПФ. Если частоты расположены плотно - то и у Герцеля и у ДПФ одинаковые проблемы. Герцель всего лишь удобный рекурсивный способ вычисления ДПФ

Цитата(YDM86 @ Apr 24 2008, 10:21) *
Так всё же - мне отправляться от величины выборки для Герцеля и подбирать под неё частоту дискретизации или наоборот? Требуется просто обнаружить 22 Гц и всё. Я пробовал 50 точек в выборке с частотой дискретизации 200 Гц(именно по алгоритму Герцеля). При этом был хороший результат - при сигнале 22,5 Гц мощность(22Гц-овой компоненты), рассчитанная по Герцелю была меньше на порядок, чем если подать именно 22Гц. При 500Гц дискр-ии уже хуже - что 22Гц подавай, что 23, а результат вычисления 22 герцовой компоненты почти один и тот же.
Предложите, пожауйста рецепт - я раньше не работал ни сБПФ, ни с ДПФ, так что в предыдущий постах понял не всё, простите меня,теоретика.


Ширина полосы вашего спектроанализатора, если не брать эктремальных случаев, определяется длительностью измерений в сек. Задавшись точностью измерения частоты (определяется её стабильностью в случае детектора) Вы определяете время измерения, как Т=1/df. Дальше просто умножив на частоту дискретизации получите число точек для Герцеля N=Fs/df
TSerg
Цитата(DRUID3 @ Apr 24 2008, 10:42) *
Это ни в коей мере не БПФ и даже не ДПФ !!!


И все же это разновидность ДПФ.



Цитата(YDM86 @ Apr 24 2008, 10:21) *
Я пробовал 50 точек в выборке с частотой дискретизации 200 Гц


Как видим, даже при частоте дискретизации 70 Гц, но при времени наблюдения 1 с мы получаем вполне различимый пик на 22 Гц
Нажмите для просмотра прикрепленного файла

А при частоте 200 Гц ситуация намного лучше.
Нажмите для просмотра прикрепленного файла

Если же время наблюдения 500 мс, то разрешение по частоте ухудшается и в полном соответствии с вышесказанным группой товарищей.
Нажмите для просмотра прикрепленного файла
YDM86
Цитата
Немного странно что у Вас с повышением частоты дискретизации качество фильтрации падает...хм... а Вы при этом сам фильтр Герцеля, надеюсь, меняете? Еще вопрос - Вы это делаете на какой-то физической установке или в опиумном MatLabе?

У меня реальная физическая система - антенна, фильтры, микроконтроллер.
Что значит менять фильтр, ведь это алгоритм вычисления по формулам, в которые входят частота дискретизации, величина выборки, собственно частота, амплитуду которой я ищу (22Гц) и значения сигнала, снятые с АЦП. Естественно, я при изменении величины выборки или частоты дискретизации меняю соответствующие сонстанты в функции алгоритма Герцеля.


Цитата
Ширина полосы вашего спектроанализатора, если не брать эктремальных случаев, определяется длительностью измерений в сек. Задавшись точностью измерения частоты (определяется её стабильностью в случае детектора) Вы определяете время измерения, как Т=1/df. Дальше просто умножив на частоту дискретизации получите число точек для Герцеля N=Fs/df

Т.е. если я хочу проверять наличие 22Гц составляющей 10 раз в секунду, то время измерения будет 0,1с а ситуация по частоте будет плохая - df=10Гц. Обидно, а вообще есть обходные пути(Если не строить цифровой фильтр), чтобы измерять 10 раз в секунду, а диапазон частот 22+/-0,5 Гц?
fontp
Цитата(YDM86 @ Apr 24 2008, 12:53) *
Т.е. если я хочу проверять наличие 22Гц составляющей 10 раз в секунду, то время измерения будет 0,1с а ситуация по частоте будет плохая - df=10Гц. Обидно, а вообще есть обходные пути(Если не строить цифровой фильтр), чтобы измерять 10 раз в секунду, а диапазон частот 22+/-0,5 Гц?


Ну на пределе... На самом деле там может быть множитель 2 или ещё какой - это всё написано было по-порядку. Скорее непределённость частоты у Вас будет +-5гц. Самое лучшее, что Вы можете сделать - это выбрать частоту дискретизации кратной своим 22гц - так чтобы обнулить отклик фильтра на постоянной составляющей, посадив ему боковой 0 sinc-а на постоянную составляющую. (У реальных АЦП обычно на частотном нуле имеется сильный тепловой дрейф). Возьмите 88 или 110гц, например

Принцип неопределённости - самый общий принцип, не зависит от метода и обходных путей его обойти нет. Эксперты по спектральному анализу говорят, что немного лучшие результаты дают нелинейные методы, типа AR-моделей. Но не на много...Впрочем, всё зависит от постановки задачи. Если задача такая, что 22 гц - обнаруживается, на фоне частоты 21гц - то определённо можно сказать, что улучшить метод не получится.

Если же Вам нужно отличить наличие сигнала 22гц, от его отсутствия, причём АПРИОРНО известно, что никаких других гармоник там не может присутствовать кроме небольшого шума - то можно что-то придумать...
Такие методы называют "сверхразрешением", при высоком отношении сигнал/шум время измерения можно улучшить хоть и на порядок. Записать максимум правдоподобия и строить пороговый обнаружитель...
Stanislav
Цитата(YDM86 @ Apr 24 2008, 12:53) *
Т.е. если я хочу проверять наличие 22Гц составляющей 10 раз в секунду, то время измерения будет 0,1с а ситуация по частоте будет плохая - df=10Гц.
Совершенно неверное утверждение. Если отношение С/Ш сколь угодно велико, за время 0,1С можно измерить частоту синусоидального сигнала со сколь угодной точностью.
Только каким боком здесь всё это? Вам же нужно определить наличие/отсутствие гармонического тона с частотой 22Гц, и только лишь, верно?
Для решения задачи нужны такие данные, как отношение С/Ш на входе анализатора, вид и спектральный состав иных помех, и др... Иначе оценить применимость того или иного метода будет затруднительно.


Цитата(YDM86 @ Apr 24 2008, 12:53) *
...Обидно, а вообще есть обходные пути(Если не строить цифровой фильтр), чтобы измерять 10 раз в секунду, а диапазон частот 22+/-0,5 Гц?
Методов есть несколько. Например, корреляционный. Применимость зависит от условий.
GetSmart
Цитата(Stanislav)
Совершенно неверное утверждение. Если отношение С/Ш сколь угодно велико, за время 0,1С можно измерить частоту синусоидального сигнала со сколь угодной точностью.
Гениально! Вот до чего могут довести умные книжки smile.gif Особенно если их читать и не думать.

Рекомендую слушать fontp.
DRUID3
Цитата(fontp @ Apr 24 2008, 10:22) *
Это в точности ДПФ.


Угу...Только FIFO и на основе резонатора с БИХ. Еще он легко, при желании, переделывается на спектр мощностей. Уж лучше его классифицировать как фильтр
Цитата(fontp @ Apr 24 2008, 10:22) *
Хоть и к БПФ отношения не имеет. ДПФ тоже может быть "настроен" на дробные. ДПФ = Сумма (s(j)*exp(iwj))


По определению ДПФ не может быть настроен на дробные по отношению к частоте дискретизации, а "механически", как накапливающий оконный фильтр - конечно может...

Цитата(fontp @ Apr 24 2008, 10:22) *
Толку от того, что Вы можете взять произвольные частоты - почти никакого.


Это как с нейросетями - для одного никакого, а другой на эффекте прибор разработал.

Цитата(fontp @ Apr 24 2008, 10:22) *
Герцель всего лишь удобный рекурсивный способ вычисления ДПФ
...

В свете царящей на данный момент языково-смысловой парадигмы в программировании лучше это слово не применять...

Цитата(TSerg @ Apr 24 2008, 11:10) *
И все же это разновидность ДПФ.


Все-таки это даже близко не она. Ни как алгоритм ни как физический принцип(формула)...

Цитата(TSerg @ Apr 24 2008, 11:10) *
Как видим, даже при частоте дискретизации 70 Гц, но при времени наблюдения 1 с мы получаем вполне различимый пик на 22 Гц

А при частоте 200 Гц ситуация намного лучше.

Если же время наблюдения 500 мс, то разрешение по частоте ухудшается и в полном соответствии с вышесказанным группой товарищей.


Цитата(YDM86 @ Apr 24 2008, 09:21) *
... При 500Гц дискр-ии уже хуже...

При повышении частоты ситуация улучшается, где упоминание о 500 ms?

Цитата(YDM86 @ Apr 24 2008, 11:53) *
Т.е. если я хочу проверять наличие 22Гц составляющей 10 раз в секунду, то время измерения будет 0,1с а ситуация по частоте будет плохая - df=10Гц. Обидно, а вообще есть обходные пути(Если не строить цифровой фильтр), чтобы измерять 10 раз в секунду, а диапазон частот 22+/-0,5 Гц?


Да с чего же это??? Измеряйте на порядки чаще, кто мешает?...
Stanislav
Цитата(fontp @ Apr 24 2008, 13:08) *
Принцип неопределённости - самый общий принцип, не зависит от метода и обходных путей его обойти нет.
Это верно. Только не нужно прикручивать его к задаче, где он ни к селу, ни к городу.

Цитата(fontp @ Apr 24 2008, 13:08) *
...Эксперты по спектральному анализу говорят, что немного лучшие результаты дают нелинейные методы, типа AR-моделей. Но не на много...Впрочем, всё зависит от постановки задачи. Если задача такая, что 22 гц - обнаруживается, а 21 - гц уже нет, то определённо можно сказать, что улучшить метод не получится.
Ну, во-первых, AR относится всё-таки к линейным методам анализа систем. А во-вторых, при отсутствии гармонических и иных помех можно обойтись и другим методом, например, прямым замером изменения фазы сигнала на заданном интервале времени. Была здесь, на форуме, подобная тема, я там этот метод подробно расписал.

Цитата(fontp @ Apr 24 2008, 13:08) *
...Если же Вам нужно отличить наличие сигнала 22гц, от его отсутствия, причём АПРИОРНО известно, что никаких других гармоник там не может присутствовать кроме небольшого шума - то можно что-то придумать...
Вне всякого сомнения. smile.gif
fontp
Цитата(GetSmart @ Apr 24 2008, 14:16) *
Гениально! Вот до чего могут довести умные книжки smile.gif Особенно если их читать и не думать.

Рекомендую слушать fontp.


:-)))))

Он сказал примерно то же самое, только другим боком. Вы бы не лезли с теоремой Котельникова :-)

Если нужно обнаружить единичную гармонику на фоне шума - то можно, всё зависит от отношения сигнал/шум. Если нужно обнаруживать гармонику на фоне других гармоник - то нельзя. Причём нужно учесть, что скорее всего постоянная составляющая в сигнале АЦП присутствует паразитно. Т.е. ему всё таки нужно отличить 22 гц от 0 гц, т.е нужно иметь хотя бы 10 гц "разрешения"

Цитата(DRUID3 @ Apr 24 2008, 14:18) *
Угу...Только FIFO и на основе резонатора с БИХ. Еще он легко, при желании, переделывается на спектр мощностей. Уж лучше его классифицировать как фильтр
По определению ДПФ не может быть настроен на дробные по отношению к частоте дискретизации, а "механически", как накапливающий оконный фильтр - конечно может...


Тот ДПФ, что в курсе математики - не может. Там интересуются только ортогональными базисами.
Если рассматривать любые суммы с комплексными экспонентами - то может.
И его возможности в точности такие же как у Герцеля. Хоть со спектром мощности хоть без
Герцель - это просто IIR реализация сумм ДПФ, которые типа FIR :-)))
Stanislav
Цитата(GetSmart @ Apr 24 2008, 14:16) *
Гениально! Вот до чего могут довести умные книжки smile.gif Особенно если их читать и не думать.

Рекомендую слушать fontp.
А я вот рекомендую лично Вам почитать умные книжки. Невежество существует не для того, чтобы выставлять его напоказ, а для того, чтобы его лечить; я уже писал об этом.
А если имеете что возразить - пишите по существу, а не устраивайте обезьянник в очередной теме.

Цитата(DRUID3 @ Apr 24 2008, 14:18) *
Все-таки это даже близко не она. Ни как алгоритм ни как физический принцип(формула)...
Вам тоже сильно рекомендую. Почитайте у Романюка. Глава называется что-то типа "Связь полосовой фильтрации с ДПФ".
GetSmart
Цитата(fontp)
Он сказал примерно то же самое, только другим боком. Вы бы не лезли с теоремой Котельникова :-)
Я даже процитировал что он сказал. Котельников вам уже мерещится что ли smile.gif

Придрался я к принципиальной вещи, которую в данном контексте упоминать обязательно - если в выборках будет две дробных частоты, то их можно разделить только с некоторой точностью, зависящей от деталей. А не с абсолютной, как было у Stanislav-а. С такими утверждениями надо поосторожней. Причём он даже не знает почему нельзя.

Цитата(Stanislav)
А я вот рекомендую лично Вам почитать умные книжки. Невежество существует не для того, чтобы выставлять его напоказ, а для того, чтобы его лечить; я уже писал об этом.
А если имеете что возразить - пишите по существу, а не устраивайте обезьянник в очередной теме.
Где-то я это уже читал!?! smile.gif
Ах да, в каждой ветке с Вами. В которой Вас всегда кто-нить "ставил на место". Продолжим здесь.

Модераторам: никаких переходов на личности. дело только в истине и её искажении кем-то.
Stanislav
Цитата(fontp @ Apr 24 2008, 14:23) *
Если нужно обнаружить единичную гармонику на фоне шума - то можно, всё зависит от отношения сигнал/шум. Если нужно обнаруживать гармонику на фоне других гармоник - то нельзя.
Иногда всё-таки можно. Например, если гармоническая помеха стационарна, её можно оценить и тупо вычесть из сигнала.
Цитата(fontp @ Apr 24 2008, 14:23) *
Причём нужно учесть, что скорее всего постоянная составляющая в сигнале АЦП присутствует паразитно. Т.е. ему всё таки нужно отличить 22 гц от 0 гц
Ну, постоянку-то оценить и вычесть - не проблема, по-моему. smile.gif

Цитата(GetSmart @ Apr 24 2008, 14:33) *
Придрался я к принципиальной вещи, которую в данном контексте упоминать обязательно - если в выборках будет две дробных частоты, то их можно разделить только с некоторой точностью, зависящей от деталей. А не с абсолютной, как было у Stanislav-а. С такими утверждениями надо поосторожней.
Вот именно, с такими утверждениями надо поосторожней. 01.gif
Сумма двух синусоидальных сигналов является синусоидальным сигналом тогда и только тогда , когда их частоты равны. biggrin.gif
А здесь речь шла именно о синусоидальном сигнале, и о неком dF=10 Гц, что совершенно неверно, и по поводу чего я возражал по существу.
Так что лучше принимайтесь за книжки, вместо того, чтобы писать о вещах, недоступных Вашему пониманию.
fontp
Цитата(Stanislav @ Apr 24 2008, 14:42) *
Иногда всё-таки можно. Например, если гармоническая помеха стационарна, её можно оценить и тупо вычесть из сигнала.
Ну, постоянку-то оценить и вычесть - не проблема, по-моему. smile.gif


По блоку данных, обновляемых каждые 0.1 сек ни то, ни другое сделать невозможно...

Это только если считать, что помеха совсем уже супер-стационарна и оценивать её по всем поступившим к данному моменту блокам или там по некоторому большому их количеству.
Мне кажется, что это уже другая задача, чем в теме... Это автору ещё нужно делать следящую систему за (псевдо)стационарной помехой
Stanislav
Цитата(fontp @ Apr 24 2008, 14:49) *
По блоку данных, обновляемых каждые 0.1 сек ни то, ни другое сделать невозможно...

Это только если считать, что помеха совсем уже супер-стационарна и оценивать её по всем поступившим к данному моменту блокам или там по некоторому большому их количеству.
Мне кажется, что это уже другая задача, чем в теме...
Нет-нет, я понял так, что наблюдение за сигналом ведётся постоянно. А решение нужно выносить 10 раз в секунду. Автора смутило здесь конечное (длинное) время отклика фильтра.
А, может, я и не прав? 07.gif Подождём, что скажет автор темы.

Цитата(fontp @ Apr 24 2008, 14:49) *
По блоку данных, обновляемых каждые 0.1 сек ни то, ни другое сделать невозможно...
Стоп, почему невозможно? По-моему, очень даже возможно, если блоки данных следуют без разрывов.
Постоянку можно оценить, даже если между блоками существуют разрывы. Для других стационарных помех всё может получится гораздо хуже.
GetSmart
Цитата(Stanislav @ Apr 24 2008, 16:42) *
Вот именно, с такими утверждениями надо поосторожней. 01.gif
Сумма двух синусоидальных сигналов является синусоидальным сигналом тогда и только тогда , когда их частоты равны. biggrin.gif
А здесь речь шла именно о синусоидальном сигнале, и о неком dF=10 Гц, что совершенно неверно, и по поводу чего я возражал по существу.
Так что лучше принимайтесь за книжки, вместо того, чтобы писать о вещах, недоступных Вашему пониманию.

Как об стенку горох 01.gif
fontp
Цитата(GetSmart @ Apr 24 2008, 14:55) *
Как об стенку горох 01.gif


Пропала тема ))))

Цитата(Stanislav @ Apr 24 2008, 14:54) *
Стоп, почему невозможно? По-моему, очень даже возможно, если блоки данных следуют без разрывов.
Постоянку можно оценить, даже если между блоками существуют разрывы. Для других стационарных помех всё может получится гораздо хуже.


Возможно, если накоплять по прошлым. Я другое имел в виду - по короткому блоку данных нельзя.
Потом тепловой дрейф АЦП не есть стационарный сигнал и накоплять можно не долго (насколько?). И вообще - это другая задача, причём во многом - практическая, зависит от применяемого АЦП. Во многом возможность решения задачи будет определяться выбором АЦП - насколько он подходит для работы на низких частотах, т.е. насколько у него скомпенсирован дрейф 0
В любом случае автор темы спрашивал не об этом

Простым классическим способом можно решить как я сказал выше. Дальше может и можно, но начинаются навороты
GetSmart
Если автору нужно регистрировать появление частоты 22 Гц выше какого-то уровня за 0.1 сек, то очень интересно что он вообще имел ввиду. С нуля именно такая частота за 0.1 сек точно не возникнет. Значит при сужении частотного диапазона срабатывания (скажем 22+-1Гц) полюбому уширяется временное окно, в котором может образоваться (увеличиться/уменьшиться) эта частота и оно уширится до секунды. Тут никакого принципа неопределённости нет. Это простое преобразование из временной шкалы в частотную. Те, кто это называют принципом неопределённости - сами витают в неопределённости. Достоверно сделать такое преобразование в присутствии других сигналов можно только когда в окне уложится целое число отсчётов синуса (когда начало совпадает с концом) иначе математика бессильна.

ИМХО автор хочет чуда smile.gif
TSerg
Цитата(DRUID3 @ Apr 24 2008, 14:18) *
Все-таки это даже близко не она. Ни как алгоритм ни как физический принцип(формула)...

При повышении частоты ситуация улучшается, где упоминание о 500 ms?


Хотя бы:
http://matlab.exponenta.ru/signalprocess/b...12/goertzel.php
Это алгоритм вычисления одной sum(x(n)*exp(-j2pi*n*k)) при фиксированном k

Пример с 500 мс временем наблюдения приведен для наглядной демонстрации ухудшения разрешения.
"Не стоит искать воду в песке" (С)

Цитата(GetSmart @ Apr 24 2008, 15:35) *
Если автору нужно регистрировать появление частоты 22 Гц выше какого-то уровня за 0.1 сек, то очень интересно что он вообще имел ввиду.


Он не говорил об уровне ничего.

Цитата
С нуля именно такая частота за 0.1 сек точно не возникнет.

Это почему это ?
Она что, раскачиваться будет при рождении ?
Или задумается рождаться ей или нет ?
Она может начаться с любого уровня в зависимости от способа генерации и фазирования.
GetSmart
Цитата(TSerg)
Он не говорил об уровне ничего.
...
Она что, раскачиваться будет при рождении ?
Автор желает регистрировать её динамику - это очевидно. Если её амплитуда меняется непредсказуемо, то там по определению есть ЧМ. Если есть ЧМ, то динамика (её количество) размазывается математически/физически как угодно это обозвать можно. То есть равномерно распределяется по окресностям, скажем 20,21,22,23,24,25 Гц с одновременным уменьшением амплитуд этих составляющих. Поэтому и возникает вопрос, что же автор выявит всего за 0.1 сек?


for fontp:
А скажите, если самолёт, сканируемый радаром другого будет излучать очень близкие к радару по спектру "помехи", то сможет ли радар точно рассчитать расстояние и направление до цели?
fontp
Цитата(GetSmart @ Apr 24 2008, 16:01) *
Автор желает регистрировать её динамику - это очевидно. Если её амплитуда меняется непредсказуемо, то там по определению есть ЧМ. Если есть ЧМ, то динамика (её количество) размазывается математически/физически как угодно это обозвать можно. То есть равномерно распределяется по окресностям, скажем 20,21,22,23,24,25 Гц с одновременным уменьшением амплитуд этих составляющих. Поэтому и возникает вопрос, что же автор выявит всего за 0.1 сек?


Энергию отклика фильтра в полосе примерно 10 гц. "Не возникнет" - всё это лирика
Есть или нет по отношению к порогу, определяемому средним уровнем шума, например

ЗЫ. Что касается "принципа неопределённости", то это и есть простое пространственно-частотное отношение, всегда связывающее ширину спектра с длительностью сигнала. Именно оно проявляется и в физике и по той же причине
GetSmart
Цитата(fontp)
Энергию отклика фильтра в полосе примерно 10 гц. "Не возникнет" - всё это лирика
Ну дык... Это уже реальные цыферки. Дальше расскажите ему как smile.gif
fontp
Цитата(GetSmart @ Apr 24 2008, 16:11) *
Ну дык... Это уже реальные цыферки. Дальше расскажите ему как smile.gif


Так он вроде и сам знает :-)
Он спрашивает - получится или нет, я так понял. Так тоже непонятно. Зависит от того как этот фильтр
будет звенеть от температурного дрейфа нуля АЦП. Ноль близко, есле бы был далеко - было бы другое дело
Цитата(GetSmart @ Apr 24 2008, 16:01) *
for fontp:
А скажите, если самолёт, сканируемый радаром другого будет излучать очень близкие к радару по спектру "помехи", то сможет ли радар точно рассчитать расстояние и направление до цели?


Знаю, но не скажу. Это уж совсем злобный офтоп
TSerg
Цитата(GetSmart @ Apr 24 2008, 16:01) *
Автор желает регистрировать её динамику - это очевидно.


Очевидно пока, что, со слов автора, что он желает регистрировать наличие или отсутствие сигнала с частотой 22 Гц. И ни слова о какой-либо динамике ее изменения. Она вполне может быть дискретной: да - нет.
GetSmart
Цитата(TSerg)
И ни слова о какой-либо динамике ее изменения
Тяжёлый случай. На кой регистрировать 10 раз в секунду если она не меняется? Сам процесс снятия показаний 10 раз/сек подразумевает соответствующую динамику. Причём сужение спектра подразумевает (автоматом) задержку показаний выхода от текущего входа. То есть спектр 22+-1Гц уже делает показания задержанными на 1 секунду. Хотя правильнее сказать на +-1 сек. То есть можно ошибиться даже в будущее smile.gif


Цитата(fontp)
Знаю, но не скажу. Это уж совсем злобный офтоп
Или сов.секретно smile.gif
fontp
Цитата(GetSmart @ Apr 24 2008, 16:32) *
Тяжёлый случай. На кой регистрировать 10 раз в секунду если она не меняется? Сам процесс снятия показаний 10 раз/сек подразумевает соответствующую динамику. Причём сужение спектра подразумевает (автоматом) задержку показаний выхода от текущего входа. То есть спектр 22+-1Гц уже делает показания задержанными на 1 секунду.
Или сов.секретно smile.gif


Может сигнализация какая, типа DTMF, только одночастотная. То есть, то нет с периодичностью, скажем 0.2 сек. Цуг, примерно 4.5 периода. Почему нет?
Про 1 гц - он не говорил, это были прикидки
А ширина полосы пофиг, сигнал достаточно стабильный, ширина полосы определяется исключительно временным окном
TSerg
Цитата(GetSmart @ Apr 24 2008, 16:32) *
Тяжёлый случай. На кой регистрировать 10 раз в секунду если она не меняется?


С Вами - точноsmile.gif

Автор исчез, но можно предположить, что он хочет зарегистрировать факт появления или пропадания такого сигнала с погрешностью не более 0.1 с
Ферштейн, болезный Вы наш ?
GetSmart
Цитата(fontp)
А ширина полосы пофиг, сигнал достаточно стабильный, ширина полосы определяется временным окном
Прикольно от Вас такое читать. Что значит стабильный? стабильный - это противоположность понятия динамичный. Так что он хз стабильный или нет, но одно из вопроса автора понятно точно - он хочет иметь результат за минимальное время (0.1 сек + 1/df).

Цитата(TSerg)
Автор исчез, но можно предположить, что он хочет зарегистрировать факт появления или пропадания такого сигнала с погрешностью не более 0.1 с
Бессмысленный набор слов. С математико-логической точки зрения.
fontp
Цитата(GetSmart @ Apr 24 2008, 17:07) *
Прикольно от Вас такое читать. Что значит стабильный? стабильный - это противоположность понятия динамичный. Так что он хз стабильный или нет, но одно из вопроса автора понятно точно - он хочет иметь результат за минимальное время (0.1 сек + 1/df).

Бессмысленный набор слов. С математико-логической точки зрения.


Стабильный, значит - идеальный цуг синуса частоты 22 гц (не 20, не 18) продолжительностью 0.2сек (или 0.1 сек)
Иногда включится, иногда выключится. Называется "Сигнализация" у телефонистов

Можно сказать и: "зарегистрировать факт появления или пропадания такого сигнала с погрешностью не более 0.1 с"

Ширина полосы у него 5гц (или соответственно 10 гц). Автор хочет ловить фильтром согласованой по частоте ширины полосы, реализованым через Герцель

Цитата(GetSmart @ Apr 24 2008, 17:07) *
Бессмысленный набор слов. С математико-логической точки зрения.

Говорил же : "Пропала тема" )))
Вы уверены, что говорите на русском научном (наукообразном) языке? Иногда ощущение такое, что Вы пользуетесь компьютерным переводчиком c другого языка, до полного замыливания темы :-)
GetSmart
Цитата(fontp)
Стабильный, значит - идеальный цуг синуса частоты 22 гц (не 20, не 18) продолжительностью 0.2сек (или 0.1 сек)
...
Говорил же : "Пропала тема"
То есть попытка объяснить человеку, что он в состоянии добиться, а что нет - это занятие не для слабонервных? smile.gif

В окне 0.1 Гц можно достоверно отличить только частоты 10,20,30 и далее герц. Если сделать именно такое окно и искомую частоту 20 Гц, то можно даже частотой 29 Гц заставить сработать датчик. И даже частотой 35 Гц, но уже с огромной амплитудой. Другое дело, если в рабочей полосе гарантируется отсутствие других сигналов/помех с большими относительными амплитудами.

Ладно, перепугал я тут всех smile.gif Не буду всем вам мешать вешать лапшу на уши остальным.

Цитата
Вы уверены, что говорите на русском научном (наукообразном) языке? Иногда ощущение такое, что Вы пользуетесь компьютерным переводчиком, до полного замыливания темы :-)
Это не помешало мне найти косяк в ТК и донести этот факт до некоторых других.
fontp
Цитата(GetSmart @ Apr 24 2008, 17:29) *
Это не помешало мне найти косяк в ТК и донести этот факт до некоторых других.


:-)

Вы просто очень упёртый. Вы не нашли косяк в ТК. Вы обратили внимание на условия применимости ТК к реальным сигналам. О чём действительно многие (все?) забывают. Если говорить о звуке, то на уровне искажений -80дб оцифровка по ТК никак не проявляется. Действительно, если Sony надумает создавать цифровую аппаратуру с уровнем искажений скажем -300 дб, то они попадут в просак :-)
GetSmart
Цитата(fontp)
Вы просто очень упёртый. Вы не нашли косяк в ТК. Вы обратили внимание на условия применимости ТК к реальным сигналам. О чём действительно многие (все?) забывают.

На самом деле я обнаружил принципиальное отсутствие мат аппарата для восстановления точных спектров по дискретным отсчётам. Все утверждения в умных книжках об обратном - липа smile.gif И Котельников всего лишь частный случай этого закона математики.

Всё, последний раз мешаю smile.gif Это чтобы ни у кого не возникало желания прыгнуть выше собсной головы.
GetSmart
Цитата(YDM86)
Добрый день! Есть задача - определение в сигнале составлющей 22 Гц. АЦП достаточно мощный. Мне требуется в секунду делать порядка 10 проверок того, что сигнал 22Гц есть. Как оптимизировать частоту дискретизации и величину выборки на обработку для данной задачи?(при величине выборки 50 на высоких частотах дискретизации у меня получается полная фигня)
Так уж и быть, посоветую что дельное.
1. Слушаться fontp smile.gif
2. Возьмём к примеру частоту 22+-1Гц. Для определения такой точности нужно окно как минимум 1 сек. Это значит что отклик на выходе будет соответствовать входу с задержкой грубо говоря 1 сек тоже. Приемлемо это? Но и динамика у такого сигнала будет очень медленная. Так что выбирайте ширину спектра исходя из требуемой динамики в первую очередь. Т.к. математику не обманешь. В принципе, разными ухищрениями можно попытаться повысить скорость реакции на выходе, но обязательно за счёт каких-то ограничений во входном сигнале.
Doka
граждане, к порядку!

модератор
Stanislav
Цитата(Doka @ Apr 24 2008, 22:00) *
граждане, к порядку!

модератор
...А Васька слушает, да ест.
Тут ритор мой, дав волю слов теченью,
Не находил конца нравоученью.
Но что ж? Пока его он пел,
Кот Васька всё жаркое съел.
А я бы повару иному
Велел на стенке зарубить:
Чтоб там речей не тратить по-пустому,
Где нужно власть употребить.

И.А.Крылов "Кот и повар".

У меня в последнее время всё чаще возникает ощущение, что технические темы форума могут быть превращены в форменный обезьянник стараниями только двух-трёх особо активных посетителей, постящих несусветную чушь только ради собственного самоутверждения.
По-моему, пора к таким применять адекватные меры.
Готов показать, что GetSmart не написал в теме ничего не только по сути вопроса, но и вообще правильного с физической и математической точки зрения.
Невежество и глупость же ни в коей мере не должны являться оправданием для подобных индивидуумов.
Прошу прощенья за оффтоп. До превращения темы в бедлам, пытался писать по существу вопроса.
GetSmart
Цитата(Stanislav)
Готов показать, что GetSmart не написал в теме ничего не только по сути вопроса, но и вообще правильного с физической и математической точки зрения.
Сначала объясните в соседней похожей ветке как методом умножения частоты добиться точности 8 знаков на частоте 10 МГц за 0.1 сек. Не правда ли, похожая тема?
Только та попроще будет, т.к. там априори известно, что гармоника в сигнале одна.
DRUID3
Цитата(Stanislav @ Apr 24 2008, 13:31) *
Вам тоже сильно рекомендую. Почитайте у Романюка. Глава называется что-то типа "Связь полосовой фильтрации с ДПФ".

Спасибо, но я ясно представляю себе картину...
Цитата(TSerg @ Apr 24 2008, 14:50) *
Хотя бы:
http://matlab.exponenta.ru/signalprocess/b...12/goertzel.php
Это алгоритм вычисления одной sum(x(n)*exp(-j2pi*n*k)) при фиксированном k

Пример с 500 мс временем наблюдения приведен для наглядной демонстрации ухудшения разрешения.
"Не стоит искать воду в песке" (С)

Не осилил - к чему это? Также как с 500 мс...разговор был, ранее, совсем не о них...
Stanislav
Цитата(DRUID3 @ Apr 24 2008, 23:02) *
Спасибо, но я ясно представляю себе картину...
Написанное Вами в теме говорит, скорее, об обратном. sad.gif

Цитата(DRUID3 @ Apr 24 2008, 23:02) *
Не осилил - к чему это? Также как с 500 мс...разговор был, ранее, совсем не о них...
Как это к чему? 07.gif
Это ответ на вопрос, как вычислить ДПФ при помощи алгоритма Герцеля.
Легко показать, что и обратное верно: вычислить выход "фильтра Герцеля" можно с помощью ДПФ даже для частот, "дробных по отношению к частоте дискретизации".
Если интересно, могу показать, как именно.
Тем, кто не может осилить, не нужно и пытаться отвергать очевидное.

ЗЫ. Собственно, сначала нужно определиться: а что же есть алгоритм Герцеля?
Я всю сознательную жизнь считал, что это есть лишь способ эффективного вычисления конкретных термов ДПФ. Впрочем, если найдёте другое определение, я не буду против.
DRUID3
Цитата(Stanislav @ Apr 24 2008, 22:18) *
Написанное Вами в теме говорит, скорее, об обратном. sad.gif

Как это к чему? 07.gif
Это ответ на вопрос, как вычислить ДПФ при помощи алгоритма Герцеля.
Легко показать, что и обратное верно: вычислить выход "фильтра Герцеля" можно с помощью ДПФ даже для частот, "дробных по отношению к частоте дискретизации".
Если интересно, могу показать, как именно.
Тем, кто не может осилить, не нужно и пытаться отвергать очевидное.

biggrin.gif спасибо большое, но я знаю, что математические результаты ДПФ и фильтра Герцеля(после переходного процесса, разумеется) совпадают. И о том, что в ДПФ можно подставить дробные частоты немного отошев от математического формализма. И т.д. и т.п. было бы странно, если я думал иначе все время предлагая людям Герцеля для узкой полосы частот. И о скользящем ДПФ я знаю... и о скользящем БПФ даже smile.gif ...
А тут мы с камрадом спорим совФФсем о другом. TSerg заменил герцы на милисекунды и построил на этом опровержение моего удивления понижением результатов работы фильтра Герцеля с увеличением частоты дискретизации laughing.gif ...
Stanislav
Цитата(DRUID3 @ Apr 24 2008, 23:53) *
biggrin.gif спасибо большое, но я знаю, что математические результаты ДПФ и фильтра Герцеля(после переходного процесса, разумеется) совпадают. И о том, что в ДПФ можно подставить дробные частоты немного отошев от математического формализма. И т.д. и т.п...
ОК. smile.gif

Цитата(fontp @ Apr 24 2008, 15:27) *
Простым классическим способом можно решить как я сказал выше.
Простите, не совсем понял, что Вы имели в виду? Какой конкретно способ предлагаете?

Цитата(fontp @ Apr 24 2008, 15:27) *
Возможно, если накоплять по прошлым. Я другое имел в виду - по короткому блоку данных нельзя.
При наличии гармонической помехи и малом уровне аддитивного шума можно получить решение и на коротких (0,1с) интервалах времени для полезного сигнала с частотой в 22Гц. Но при близко расположенной помехе без шаманства обойтись вряд ли получится...
Впрочем, здесь интервал задан: 21,5-22,5 Гц. В данном диапазоне помехи быть не должно - иначе задачу решить трудно: непонятно, что считать сигналом, а что - помехой.
Кроме того, если о полезном сигнале есть дополнительные сведения (напр, его амплитуда), это может сильно упростить решение.
Всё это нужно выложить автору темы здесь, чтобы получить дельный совет.
Частоту дискретизации, как Вы и сказали, лучше брать кратной ожидаемой, скажем, в 8 раз: 176 выб/с, или даже выше. Идеологически это значения не имеет, но объём вычислений может сократить существенно.
GetSmart
Цитата(Stanislav)
Кроме того, если о полезном сигнале есть дополнительные сведения (напр, его амплитуда)
Конечно есть. Автор априори знает частоту сигнала и его амплитуду во все моменты времени. Непонятно вообще, что ему ещё надо знать для счастья? smile.gif
TSerg
Цитата(DRUID3 @ Apr 24 2008, 23:53) *
А тут мы с камрадом спорим совФФсем о другом. TSerg заменил герцы на милисекунды и построил на этом опровержение моего удивления понижением результатов работы фильтра Герцеля с увеличением частоты дискретизации laughing.gif ...


Начнем с того, что в моем посте №7 к Вам относилась только корректировка Ваших умозаключений
по поводу классификации метода Goertzel.

Остальные примеры были явно адресованы автору сабжа с целью наглядного пояснения
результатов работы алгоритма при различных частотах дискретизации и времени наблюдения.
Третий пример с Fs=200 Гц и временем наблюдения 500 мс, в отличии от второго с Fs=200 Гц и временем наблюдения 1000 мс ясно показывает ухудшение разрешения по частоте (хорошо видны два одинаковых пика на частотах 21 и 22 Гц)

Если Вы решили, что вторая часть поста относится именно к Вам, то Вам померещилось и можно
перекреститьсяsmile.gif

Для автора сабжа:

Для коротких отрезков анализируемого сигнала могут подойти методы спектрального анализа, основанные на линейном моделировании - модель АРСС ( ARIMA).
Определение параметров модели может вестись на основе автокорелляционной функции процесса
или на только на основе выборок.
Для однократного нахождения параметров АР-модели по коротким последовательностям используются
те или иные варианты метода линейного предсказания (автокорреляционный, метод Берга, etc)
Порядок АР-модели оценивается как N/3 <= Q <= N/2.

Разумеется, на соотношения сигнала, шума и помех накладываются определенные ограничения.

Сложность этих методов достаточна высока для простейших контроллеров.
fontp
Цитата(Stanislav @ Apr 25 2008, 00:23) *
ОК. smile.gif

Простите, не совсем понял, что Вы имели в виду? Какой конкретно способ предлагаете?


Классический. Так чтобы длительность сигнала была равна 1/df. Про +-1 гц это я выдумал для конкретности, а автор просто поддержал разговор. В начале темы у автора не было никакой вообще определённости с длительностью измерения, и ничего не получалось, наверное потому что при высокой частоте дискретизации длительность становилась такой малой, что полоса пропускания фильтра накрывала и 0 гц и 50 гц.

Реально может его +-5 устроит. Кроме мгновенной постоянной составляющей (дрейф нуля АЦП) помех судя по всему больше нет (может ещё 50 гц, которая тоже есть всегда, в воздухе). Цуг синусоиды длиной 0.1 с имеет частотную полосу 10гц, вот её и будем фильтровать.

Тем же Герцелем, или ДПФ, или полосовым фильтром (зачем нам Герцель вообще , если частота всего одна? зато можно добиться лучшего подавления дрейфа нуля АЦП). Хороший полосовой фильтр высокого порядка с полосой 10 гц вблизи 22 гц должен работать в таких условиях.
Stanislav
Цитата(fontp @ Apr 25 2008, 11:28) *
Классический.
Извините, но я в понятии классических методов не копенгаген. Не могли бы конкретизировать?

Цитата(fontp @ Apr 25 2008, 11:28) *
Так чтобы длительность сигнала была равна 1/df. Про +-1 гц это я выдумал для конкретности, а автор просто поддержал разговор. В начале темы у автора не было никакой вообще определённости с длительностью измерения, и ничего не получалось, наверное потому что при высокой частоте дискретизации длительность становилась такой малой, что полоса пропускания фильтра накрывала и 0 гц и 50 гц.
Насколько я понял автора темы, ему нужно лишь 10 раз в секунду выносить решение о наличии/отсутствии (квази)гармонического сигнала с частотой 22Гц+/- 0,5 Гц. Или я ошибаюсь?

Цитата(fontp @ Apr 25 2008, 11:28) *
...Реально может его +-5 устроит. Кроме мгновенной постоянной составляющей (дрейф нуля АЦП) помех судя по всему больше нет (может ещё 50 гц, которая тоже есть всегда, в воздухе). Цуг синусоиды длиной 0.1 с имеет частотную полосу 10гц, вот её и будем фильтровать.

Тем же Герцелем, или ДПФ, или полосовым фильтром (зачем нам Герцель вообще , если частота всего одна? зато можно добиться лучшего подавления дрейфа нуля АЦП). Хороший полосовой фильтр высокого порядка с полосой 10 гц вблизи 22 гц должен работать в таких условиях.
Я думаю, что подход с герцелем или ПФ может быть применим только при определённых условиях. Пока автор темы их не выставил, от каких-либо оценок применимости того или иного метода и собственных предложений воздержусь.
fontp
Цитата(Stanislav @ Apr 25 2008, 16:27) *
Извините, но я в понятии классических методов не копенгаген. Не могли бы конкретизировать?

У Марпла в книге по спектральному анализу классическими считаются все методы на основе ДПФ или линейной фильтрации. Все остальные от AR-моделирования до Писаренко и MUSIC считаются модернизмом и специальными.

Цитата(Stanislav @ Apr 25 2008, 16:27) *
Насколько я понял автора темы, ему нужно лишь 10 раз в секунду выносить решение о наличии/отсутствии сигнала с частотой 22Гц+/- 0,5 Гц. Или я ошибаюсь?


Вообще-то про 0.5 гц он вначале ничего не говорил. Ему нужно было просто 10 раз в секунду выносить решение о наличии сигнала. Про стабильность частоты - это я спросил
Stanislav
Цитата(fontp @ Apr 25 2008, 16:35) *
У Марпла в книге по спектральному анализу классическими считаются все методы на основе ДПФ или линейной фильтрации. Все остальные от AR-моделирования до Писаренко и MUSIC считаются модернизмом и специальными.
Понятно. Но это ещё не алгоритм, а часть алгоритма. Самое главное: по какому критерию будем выносить решение? Тут много вариантов, и применимость из зависит опять-таки от условий (например, что хуже: недоб.деть или переб.деть?).

Цитата(fontp @ Apr 25 2008, 16:35) *
Вообще-то про 0.5 гц он вначале ничего не говорил. Ему нужно было просто 10 раз в секунду выносить решение о наличии сигнала. Про стабильность частоты - это я спросил
А какая разница?
Главное, что эти сведения удалось-таки из автора темы вытянуть. Теперь дело за малым: описать остальные условия и выложить парочку реализаций процесса. smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.