|
|
  |
Особенности алгоритма Герцеля, соотношение величнины выборки и частоты дискретизации |
|
|
|
Apr 24 2008, 05:32
|
Группа: Участник
Сообщений: 12
Регистрация: 30-10-07
Пользователь №: 31 878

|
Добрый день! Есть задача - определение в сигнале составлющей 22 Гц. АЦП достаточно мощный. Мне требуется в секунду делать порядка 10 проверок того, что сигнал 22Гц есть. Как оптимизировать частоту дискретизации и величину выборки на обработку для данной задачи?(при величине выборки 50 на высоких частотах дискретизации у меня получается полная фигня) В инете копал, но не нашёл прямого ответа на этот вопрос. Книга Блейхута же так написана, что мне, несмотря на физическое образование, не хватает математической подготовки, чтобы её расшифровать.
|
|
|
|
|
Apr 24 2008, 05:56
|
Знающий
   
Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353

|
Цитата(YDM86 @ Apr 24 2008, 08:32)  Как оптимизировать частоту дискретизации и величину выборки на обработку для данной задачи?(при величине выборки 50 на высоких частотах дискретизации у меня получается полная фигня) Алгоритм Герцеля есть по своей сути частный случай БПФ. Если мусор показывает БПФ, то и алгоритм Герцеля тже ничего не даст (он дает только выигрыш во времени). ИМХО для оценки точности определения частоты можно воспользоваться требованиями к разрешающей способности спектра мощности (с учетом применяесого окна). Mожно наверное попробовать промоделировать?
--------------------
Правильно сформулированый вопрос содержит в себе половину ответа. P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
|
|
|
|
|
Apr 24 2008, 06:00
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(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)  Алгоритм Герцеля есть по своей сути частный случай БПФ. Только ДПФ. БПФ из другой, быстрой, оперы ))
|
|
|
|
|
Apr 24 2008, 06:21
|
Группа: Участник
Сообщений: 12
Регистрация: 30-10-07
Пользователь №: 31 878

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

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(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е?
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Apr 24 2008, 07:22
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(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
|
|
|
|
Guest_TSerg_*
|
Apr 24 2008, 08:10
|
Guests

|
Цитата(DRUID3 @ Apr 24 2008, 10:42)  Это ни в коей мере не БПФ и даже не ДПФ !!! И все же это разновидность ДПФ. Цитата(YDM86 @ Apr 24 2008, 10:21)  Я пробовал 50 точек в выборке с частотой дискретизации 200 Гц Как видим, даже при частоте дискретизации 70 Гц, но при времени наблюдения 1 с мы получаем вполне различимый пик на 22 Гц
А при частоте 200 Гц ситуация намного лучше.
Если же время наблюдения 500 мс, то разрешение по частоте ухудшается и в полном соответствии с вышесказанным группой товарищей.
|
|
|
|
|
Apr 24 2008, 08:53
|
Группа: Участник
Сообщений: 12
Регистрация: 30-10-07
Пользователь №: 31 878

|
Цитата Немного странно что у Вас с повышением частоты дискретизации качество фильтрации падает...хм... а Вы при этом сам фильтр Герцеля, надеюсь, меняете? Еще вопрос - Вы это делаете на какой-то физической установке или в опиумном MatLabе? У меня реальная физическая система - антенна, фильтры, микроконтроллер. Что значит менять фильтр, ведь это алгоритм вычисления по формулам, в которые входят частота дискретизации, величина выборки, собственно частота, амплитуду которой я ищу (22Гц) и значения сигнала, снятые с АЦП. Естественно, я при изменении величины выборки или частоты дискретизации меняю соответствующие сонстанты в функции алгоритма Герцеля. Цитата Ширина полосы вашего спектроанализатора, если не брать эктремальных случаев, определяется длительностью измерений в сек. Задавшись точностью измерения частоты (определяется её стабильностью в случае детектора) Вы определяете время измерения, как Т=1/df. Дальше просто умножив на частоту дискретизации получите число точек для Герцеля N=Fs/df Т.е. если я хочу проверять наличие 22Гц составляющей 10 раз в секунду, то время измерения будет 0,1с а ситуация по частоте будет плохая - df=10Гц. Обидно, а вообще есть обходные пути(Если не строить цифровой фильтр), чтобы измерять 10 раз в секунду, а диапазон частот 22+/-0,5 Гц?
|
|
|
|
|
Apr 24 2008, 09:08
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(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гц, от его отсутствия, причём АПРИОРНО известно, что никаких других гармоник там не может присутствовать кроме небольшого шума - то можно что-то придумать... Такие методы называют "сверхразрешением", при высоком отношении сигнал/шум время измерения можно улучшить хоть и на порядок. Записать максимум правдоподобия и строить пороговый обнаружитель...
|
|
|
|
|
Apr 24 2008, 10:04
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(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 Гц? Методов есть несколько. Например, корреляционный. Применимость зависит от условий.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Apr 24 2008, 10:16
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(Stanislav) Совершенно неверное утверждение. Если отношение С/Ш сколь угодно велико, за время 0,1С можно измерить частоту синусоидального сигнала со сколь угодной точностью. Гениально! Вот до чего могут довести умные книжки  Особенно если их читать и не думать. Рекомендую слушать fontp.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Apr 24 2008, 10:18
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(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 Гц? Да с чего же это??? Измеряйте на порядки чаще, кто мешает?...
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Apr 24 2008, 10:23
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

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

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(GetSmart @ Apr 24 2008, 14:16)  Гениально! Вот до чего могут довести умные книжки  Особенно если их читать и не думать. Рекомендую слушать fontp. :-))))) Он сказал примерно то же самое, только другим боком. Вы бы не лезли с теоремой Котельникова :-) Если нужно обнаружить единичную гармонику на фоне шума - то можно, всё зависит от отношения сигнал/шум. Если нужно обнаруживать гармонику на фоне других гармоник - то нельзя. Причём нужно учесть, что скорее всего постоянная составляющая в сигнале АЦП присутствует паразитно. Т.е. ему всё таки нужно отличить 22 гц от 0 гц, т.е нужно иметь хотя бы 10 гц "разрешения" Цитата(DRUID3 @ Apr 24 2008, 14:18)  Угу...Только FIFO и на основе резонатора с БИХ. Еще он легко, при желании, переделывается на спектр мощностей. Уж лучше его классифицировать как фильтр По определению ДПФ не может быть настроен на дробные по отношению к частоте дискретизации, а "механически", как накапливающий оконный фильтр - конечно может... Тот ДПФ, что в курсе математики - не может. Там интересуются только ортогональными базисами. Если рассматривать любые суммы с комплексными экспонентами - то может. И его возможности в точности такие же как у Герцеля. Хоть со спектром мощности хоть без Герцель - это просто IIR реализация сумм ДПФ, которые типа FIR :-)))
|
|
|
|
|
Apr 24 2008, 10:31
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(GetSmart @ Apr 24 2008, 14:16)  Гениально! Вот до чего могут довести умные книжки  Особенно если их читать и не думать. Рекомендую слушать fontp. А я вот рекомендую лично Вам почитать умные книжки. Невежество существует не для того, чтобы выставлять его напоказ, а для того, чтобы его лечить; я уже писал об этом. А если имеете что возразить - пишите по существу, а не устраивайте обезьянник в очередной теме. Цитата(DRUID3 @ Apr 24 2008, 14:18)  Все-таки это даже близко не она. Ни как алгоритм ни как физический принцип(формула)... Вам тоже сильно рекомендую. Почитайте у Романюка. Глава называется что-то типа "Связь полосовой фильтрации с ДПФ".
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|