Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Синтез цифрового фильтра для данных с непостоянным интервалом дискретизации
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Alex_AZ
Приветствую, уважаемые знатоки!
Думаю, многие представляют и делали переход от аналогового прототипа фильтра к его цифровой БИХ реализации. Типовые решения, описанные в литературе
предполагают, что частота сэмплирования данных постоянна. А мне сейчас пришлось столкнулся с задачей фильтрации сигнала, где временные интервалы
между поступлением новых отсчетов непостоянны, при этом информация о времени прихода каждого отсчета есть.

Для фильтра первого порядка все вроде бы ясно - можно модифицировать традиционную структуру фильтра исправляя коэффициенты фильтра в
зависимости от интервала времени между приходом отсчетов. Для фильтров более высокого порядка сложнее - в традиционной структуре остается память о
нескольких отсчетах выхода системы, интервал между которыми отличается от вновь принятого. И сейчас я не знаю можно ли как-то модифицировать
эту структуру для решения своей задачи.

Подскажите пожалуйста литературу или методики расчета структур, с помощью которых можно отфильтровать сигнал дискретизированный с непостоянным
интервалом.
blackfin
Цитата(Alex_AZ @ Oct 22 2015, 09:36) *
А мне сейчас пришлось столкнулся с задачей фильтрации сигнала, где временные интервалы
между поступлением новых отсчетов непостоянны, при этом информация о времени прихода каждого отсчета есть.

Подскажите пожалуйста ... методики расчета структур, с помощью которых можно отфильтровать сигнал дискретизированный с непостоянным интервалом.

Например, так:

Интерполятор -> Фильтр -> Интерполятор.

После первого интерполятора отсчеты, ессно, идут с равными интервалами.

Второй интерполятор нужен только если необходимо снова вернуться к отсчетам с неравными интервалами.
Alex_AZ
В общем-то такой вариант можно использовать. Но видится, что при таком решении может существенно возрасти объем вычислений.
Входные данные приходят сравнительно редко, но есть моменты когда частота прихода новых значений возрастает примерно в 30 раз.
Не хочется запускать фильтр на частоте в 30 раз выше необходимой в обычном режиме.
blackfin
Цитата(Alex_AZ @ Oct 22 2015, 10:30) *
Не хочется запускать фильтр на частоте в 30 раз выше необходимой в обычном режиме.

А кто сказал, что после первого интерполятора "частота в 30 раз выше необходимой"..?
Alex_AZ
То есть предлагаете интерполировать полиномом на определенном интервале времени и затем рассчитать значения в требуемых точках?
blackfin
Цитата(Alex_AZ @ Oct 22 2015, 10:59) *
То есть предлагаете интерполировать полиномом на определенном интервале времени и затем рассчитать значения в требуемых точках?

Да, именно это и предлагаю.
Alex_AZ
Спасибо за вариант решения проблемы. Возможно им и воспользуюсь.

Просто кажется, что должен быть какой-то математический аппарат для построения цифровых фильтров с неравномерным временем прихода отсчетов по заданному аналоговому прототипу. По идее, решение задачи связано с решением дифф. уравнений для исходного аналогового фильтра. А для него выходной сигнал однозначно определен в любой момент времени при задании конкретных начальных условий и входного сигнала. Несколько статей получилось нагуглить по запросу "non-uniform sample rate filter", но пока в голове полного понимания не складывается.
Fat Robot
Можно отфильтровать средствами ДПФ-ОДПФ, генерируя опорные синусоиды с сеткой отсчетов, соответствующей входной.
Но нужны предположения, что происходит с сигналом между редкими отсчетами
blackfin
Цитата(Alex_AZ @ Oct 22 2015, 11:40) *
Несколько статей получилось нагуглить по запросу "non-uniform sample rate filter", но пока в голове полного понимания не складывается.

Надо гуглить: farrow-structures.
Fat Robot
Наверное, для порядка выше первого это будет не слишком эффективно.
Коэффициенты фильтров, вычисляющих коэффициенты полинома, придется каждый раз пересчитывать.
Проще напрямую вычислять коэффициенты полинома Лагранжа, как мне кажется

Цитата(blackfin @ Oct 22 2015, 09:47) *
Надо гуглить: farrow-structures.
Alex_AZ
Возможно, я конечно усложняю решение.

По Лагранжу, боюсь, что при существенно неравномерном распределении времени прихода отсчетов и интерполятор будет сильно ошибаться. Надо будет попробовать на записи реального сигнала.
Fat Robot
Всё будет определяться тем, как соотносятся частота отсчетов и макс. частота процесса, которому эти отсчеты соответствуют

Цитата(Alex_AZ @ Oct 22 2015, 10:12) *
Возможно, я конечно усложняю решение.

По Лагранжу, боюсь, что при существенно неравномерном распределении времени прихода отсчетов и интерполятор будет сильно ошибаться. Надо будет попробовать на записи реального сигнала.
Милливольт
Цитата(Alex_AZ @ Oct 22 2015, 07:36) *
Подскажите пожалуйста литературу или методики расчета структур, с помощью которых можно отфильтровать сигнал дискретизированный с непостоянным
интервалом.


У нас возникала практически такая же задача.
Перестраивать коэффициенты фильтра даже не пытались вследствие трудоемкости такого подхода. Применяли интерполяцию с передискретизацией по реальным и интерполированным отсчетам.
Наихудшие результаты были получены для Лагранжа, наилучшие - с большим отрывом - для кубического глобально заданного сплайна.
Его достоинства в том, что этот алгоритм изначально пригоден для неэквидистантных отсчетов. Разумеется, нельзя использовать его экстраполяцию, и работает такой метод только для отсчетов, описывающих реальный аналоговый процесс (а не случайную цифровую последовательность). При этом очень желательно, чтобы частота Котельникова была превышена раз в несколько.
TSerg
Обработка сигналов при непостоянной частоте дискретизации - "ласковая" тема.
Теоретически, в практическом смысле, решена давно, практически - тоже.
Fat Robot
Вы бы хоть ссылки какие-нибудь привели, статьи, монографии, а то получилась реплика в ключе "усталость профессионалов".

Цитата(TSerg @ Oct 22 2015, 21:06) *
Обработка сигналов при непостоянной частоте дискретизации - "ласковая" тема.
Теоретически, в практическом смысле, решена давно, практически - тоже.
TSerg
Цитата(Fat Robot @ Oct 23 2015, 00:13) *
Вы бы хоть ссылки какие-нибудь привели, статьи, монографии


Так сойдет? biggrin.gif




http://ieeexplore.ieee.org/xpl/articleDeta...rnumber=1166689

https://www-user.tu-chemnitz.de/~potts/nfft/

http://math.tkk.fi/numericsyear/NFFT/

http://dl.acm.org/citation.cfm?doid=1555386.1555388

Ну и.. и ну:
http://amath.colorado.edu/pub/wavelets/papers/index.html

Кратко:
Нажмите для просмотра прикрепленного файла

И даже:



Кратко о теории фреймов, как развитии теоремы Beurling (заметим - 1966 г.)
Нажмите для просмотра прикрепленного файла
Fat Robot
Да. Спасибо. Буду изучать.

Цитата(TSerg @ Oct 23 2015, 07:00) *
Так сойдет?

alexunder
Цитата(TSerg @ Oct 23 2015, 08:00) *
Так сойдет? biggrin.gif

Присоединяюсь к благодарностям.
Alex_AZ
На первый взгляд проблему решить удалось, фильтр работает, результаты очень похожи на правду. Прикладываю свои размышления и подход к построению фильтра. Критика приветствуется.
За подборку литературы выражаю благодарность TSerg, надо будет ознакомиться.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.