Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.55/461: Рейтинг темы: голосов - 461, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
1

Цифровые рекурсивные фильтры

31.05.2015, 12:46. Просмотров 83990. Ответов 74
Метки нет (Все метки)

Часть 1.
Часть 2.
Часть 3.
Я долго думал, как назвать тему. Вариантов было много: от рекламно-жизнерадостного "Цифровые фильтры - это очень просто!" до (с ярким оттенком снобизма) "Алгоритмы построения цифровых IIR- фильтров Баттерворта - для тупых!"
"По совету друзей" (с) я решил остановиться на нейтральном названии (простенько, но со вкусом (с)): "Цифровые рекурсивные фильтры", или, как их ещё называют в простонародье, "БИХ-фильтры" или фильтры с Бесконечной Импульсной Характеристикой,что эквивалентно буржуйскому IIR (infymite imputsi response).

Моя цель - подготовить подготовить вас к чтению серьёзных статей по этой тематике (не дай Бог, конечно, но в жизни может всякое случиться...).
Что от вас требуется:
1. Умение пользоваться Googleм (многие термины я объяснить подробно не смогу)
2. Знание математики в пределах 1 курса технического ВУЗа или продвинутое (см. пункт 1)
3. Знание программирования. Язык значения не имеет. Я буду приводить примеры на том языке,который под руку попадёт. В основном это будет Си и Фортран.
Претензии любителей Бэйсика, Дельфи, МатЛаба и PHP не принимаются.
http://we.iosyitistromyss.ru/Soft/cifro ... iltry.html
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2015, 12:46
Ответы с готовыми решениями:

Цифровые часы
Ребятки, помогите пожалуйста, нужно объяснить принцип работы схемки : Правила форума: 4.12....

Отечественные цифровые осциллографы
Повсюду слышишь Атен, Ригол и так далее... Уважаемое сообщество, что скажете о приборах,...

Цифровые часы-термометр (внутренний и внешний)
Нарисовал свою схему. Выслушаю любые критические замечания по схеме. ...

Аналоговые,импульсные,дискретные и цифровые системы
Аналоговые,импульсные,дискретные и цифровые системы. что это за системы такие? в нэте мало что про...

74
0 / 0 / 0
Регистрация: 05.10.2007
Сообщений: 498
31.05.2015, 15:49 2
Уточните, если jw = S (комплексная частота), то что является Бета?
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
31.05.2015, 16:09 3
Цитата Сообщение от SOVO
Уточните, если jw = S (комплексная частота), то что является Бета?
\beta-определяет частоту среза. Имеет несколько разный смысл для H(S) и H(z).
Нас пока больше интересует \beta в z-области. Формулу я привёл выше.
0
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 1,182
01.06.2015, 16:19 4
Вы правда верите, что эти наброски из учебника могут чем-то помочь новичку?
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
01.06.2015, 18:29 5
Ссылку на учебник не дадите?
0
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 1,182
01.06.2015, 19:04 6
Не дам.
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
01.06.2015, 19:30 7
Жаль...
А то я здесь недавно "изобрёл" z- преобразование ФНЧ-ПФ, а потом выяснил, что эту формулу Тони Константинидис почти 50 лет тому назад вывел :-). Хотя о существовании соответствующей матрицы он похоже не подозревал. Я даже хотел эту матрицу назвать "матрица Константинидиса". Но он не согласился :-)
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 903
02.06.2015, 10:41 8
Цитата Сообщение от Somtyk
Жаль...
А то я здесь недавно "изобрёл" z- преобразование ФНЧ-ПФ, а потом выяснил, что эту формулу Тони Константинидис почти 50 лет тому назад вывел :-). Хотя о существовании соответствующей матрицы он похоже не подозревал. Я даже хотел эту матрицу назвать "матрица Константинидиса". Но он не согласился :-)
Вы имеете ввиду замену переменной? Так вроде это преобразование было описано еще в учебнике Голда, а он вроде вышел пораньше Константинидиса с Богнером...
Хотя самостоятельно такое вывести - снимаю шляпу!

зы. выше просили ссылки на учебник - из последних мне очень понравился "Смит С. Цифровая обработка сигналов. Практическое руководство для инженеров и научных рибатников" - вполне вменяемая книжка с приемлемым уровнем арифметики для начинающих.
Ну и Айфичер ("ЦОС. Практический подход"), конечно...
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
02.06.2015, 11:17 9
Цитата Сообщение от Mykysoft
Вы имеете ввиду замену переменной? Так вроде это преобразование было описано еще в учебнике Голда, а он вроде вышел пораньше Константинидиса с Богнером...
Хотя самостоятельно такое вывести - снимаю шляпу!
Я имею ввиду формулу z- преобразования ФНЧ-ПФ:


<Изображение удалено>


<Изображение удалено>

Особенно тяжело дался секанс в последней формуле :-)
Я этим секансом больше месяца занимался. Чуть с женой не поругался... :-)
Цитата Сообщение от Mykysoft
зы. выше просили ссылки на учебник - из последних мне очень понравился "Смит С. Цифровая обработка сигналов. Практическое руководство для инженеров и научных рибатников" - вполне вменяемая книжка с приемлемым уровнем арифметики для начинающих.
Ну и Айфичер ("ЦОС. Практический подход"), конечно...
Меня крайне заинтересовала бы книга, где был бы описан матричный способ перехода H(S) --> H(z).
Нигде не встречали?
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 903
02.06.2015, 14:52 10
Цитата Сообщение от Somtyk
Цитата Сообщение от Mykysoft
Вы имеете ввиду замену переменной? Так вроде это преобразование было описано еще в учебнике Голда, а он вроде вышел пораньше Константинидиса с Богнером...
Хотя самостоятельно такое вывести - снимаю шляпу!
Я имею ввиду формулу z- преобразования ФНЧ-ПФ:
я имею ввиду примерно то же самое... (за дословность не поручусь - книжки дома, а на память я такое - увы -не осилю... отупел-с...)

Особенно тяжело дался секанс в последней формуле :-)
Я этим секансом больше месяца занимался. Чуть с женой не поругался... :-)
не секанс женщинам нужен....

Меня крайне заинтересовала бы книга, где был бы описан матричный способ перехода H(S) --> H(z).
Нигде не встречали?
Не, книги - нет. такое ощущение, что в каких-то публикациях типа журнальной статьи или типа того проскакивало (просматриваю изредка, чтоб мозги совсем не атрофировались),
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
02.06.2015, 15:08 11
Цитата Сообщение от Mykysoft
Вы имеете ввиду замену переменной? Так вроде это преобразование было описано еще в учебнике Голда, а он вроде вышел пораньше Константинидиса с Богнером...
Да, Вы оказались совершенно правы!
Действительно в книге Голд Б., Рэйдер Ч. "Цифровая обработка сигналов" 1969 года нашёл подобную формулу :-)
А Богнер, Константинидис - это 1975 год.
Там правда обобщение некоторое - из ФНЧ - все типы фильтров получают (ФНЧ, ФВЧ, полосовые и режекторные).
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
05.06.2015, 07:27 12
Готовиться к опубликованию статья "Цифровые рекурсивные фильтры. Часть 2." в которой будут рассмотрены следующие вопросы:
Методика расчёта матрицы z- преобразования.
Преобразования матрицы (ФНЧ-ФВЧ, ПР-РФ)
Будут приведены примеры матриц более высоких порядков.

Хотелось бы услышать ваше мнение : Что бы Вы ещё хотели увидеть в этой статье?
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 903
05.06.2015, 10:19 13
Цитата Сообщение от Somtyk
Готовиться к опубликованию статья "Цифровые рекурсивные фильтры. Часть 2."
А где можно посмотреть на первую часть?
в которой будут рассмотрены следующие вопросы:
Методика расчёта матрицы z- преобразования.
Преобразования матрицы (ФНЧ-ФВЧ, ПР-РФ)
Будут приведены примеры матриц более высоких порядков.
А нужны ли "более высокие порядки"? Насколько помню, у рекурсивных фильтров могут быть проблемы с устойчивостью. вы эти проблемы вроде "плавно обошли". поэтому (имхо, конечно) лучше тех, кто собирается проектировать БИХ-фильтры высоких порядков - отослать к толстым учебникам. чисто чтоб не нарвались на другие проблемы.
Ну и (опять же на мой взгляд) - критерии выбора фильтров.
Хотелось бы услышать ваше мнение : Что бы Вы ещё хотели увидеть в этой статье?
Примеров из практики.
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
05.06.2015, 13:56 14
http://we.iosyitistromyss.ru/S... iltry.html
На фильтрах высоких порядков интереснее всякие эксперименты проводить:
Успеет ли контроллер за время меньшее, чем шаг дискретизации АЦП, обсчитать рекуррентную формулу?
Это в принципе главный вопрос.
Вопрос устойчивости - очень важный конечно, но я ведь сравнивал результаты своей программы с другими. Различия порядка 10^{-7}
Порядок фильтра всегда можно уменьшить, если проблемы возникают.
Можно использовать наиболее "безопасные" фильтры - фильтры Баттерворта.
Примеры из практики - вот этого я не понял немного.
Вы хотите увидеть реализацию конкретного фильтра на ATmega8, к примеру?
Это возможно, но эта задача уже решена, я апноут где-то видел. Выше 3 порядка подняться нельзя на максимальной частоте АЦП. Вот с STM32 интереснее, но у меня нет "железа".
А программы расчёта коэффициентов на Си - будут однозначно.
И ещё. Я ведь пытаюсь дать общую методику построения БИХ фильтров. Чтобы каждый смог построить фильтр такого типа и порядка, который ему нужен. Матричная методика расчёта, как никакая другая, очень этому способствует.
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 903
05.06.2015, 19:05 15
Цитата Сообщение от Somtyk
Это в принципе главный вопрос.
Вопрос устойчивости - очень важный конечно, но я ведь сравнивал результаты своей программы с другими. Различия порядка 10^{-7}
Порядок фильтра всегда можно уменьшить, если проблемы возникают.
Вопрос устойчивости - важен в том смысле, что рекурсивный фильтр потенциально может быть неустойчивым. вы ж проверяли свои фильтры не про всему ансамблю входных данных? Или я ошибаюсь? :-) Не, уменьшить порядок фильтра, конечно, можно - но для этого нужно осознать проблему (да и хотя бы просто знать о ее ненулевой вероятности. ),
Можно использовать наиболее "безопасные" фильтры - фильтры Баттерворта.
Разве в них неустойчивость невозможна? Не буду ни возражать, ни соглашаться - надо освежить предмет в памяти...
Примеры из практики - вот этого я не понял немного.
Вы хотите увидеть реализацию конкретного фильтра на ATmega8, к примеру?
Не. реализовать расчитаный фильтр сможет почти всякий. Более интересен "сквозной пример": "понадобилось вот это, по таким параметрам выбрал тип и вид фильтра, так рассчитал, на этом реализовал, получил такой-то результат..."

Вот с STM32 интереснее, но у меня нет "железа".
совсем нет? в принципе, дискавери ф4 сейчас стоит порядка 1200 рублей с доставкой, а модули в формате ардуйни-нано на STM32F103C8T6 - вообще 250 рублей с доставкой. ИМХО, не слишком напряжно...
А программы расчёта коэффициентов на Си - будут однозначно.
И ещё. Я ведь пытаюсь дать общую методику построения БИХ фильтров. Чтобы каждый смог построить фильтр такого типа и порядка, который ему нужен. Матричная методика расчёта, как никакая другая, очень этому способствует.
Если есть методики - сами программы не очень-то и нужны. только оооочень ленивым... (ненавижу студентов-копипастеров, поэтому, наверное, программы лучше не приводите - пусть хоть чуть-чуть понапрягаются).
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
05.06.2015, 21:56 16
Да, я согласен, проблема устойчивости - это проблема. Фильтр Баттерворта тоже потенциально неустойчив, но он более безопасен по сравнению с другими БИХ-фильтрами. И конечно всё очень сильно зависит от порядка. До 6 порядка проблем устойчивости практически не возникает.
В "железе" конечно лучше было бы проверять, но пока ограничусь проверкой в симуляторе IAR.
Во сквозной пример придумать мне как-то затруднительно. Может быть следящий фильтр для ЛЧМ- сигнала? Но это на 100% в железе надо будет проверять. Да ещё там жёсткие ограничения на порядок...
Ну или перестраиваемый полосовой фильтр. Но опять же без железа - это никуда не годится.
На ATmege8 может что-нибудь придумаю. Но это тогда будет в статье "Цифровые рекурсивные фильтры. Часть 3." :-)
Ну если кто-то заинтересуется и сделает что- нибудь. Полосовой 5 порядка - я ведь текст программы выложил. Осталось только экспериментировать - хотя бы перестраиваемый фильтр.
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
06.06.2015, 11:45 17
В Сообществе, в разделе "Алгоритмы и программные решения" опубликована статья "Цифровые рекурсивные фильтры. Часть 2."
0
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
06.06.2015, 14:27 18
Зачем это все нужно? Точнее как это применить к реальной задаче? Для чего нужны фильтры - я понимаю.
Например имеется набор входных выборок... что делать со всей этой матрицей коэффициентов, чтобы на выходе получить отфильтрованые выборки?
К тому же как сказывается результат работы фильтра на амплитуде и фазе отфильтрованных частот?
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
06.06.2015, 15:37 19
Матрица несёт некую "вспомогательную" функцию и помогает быстро рассчитать коэффициенты рекуррентной формулы. Даже непосредственно в микроконтроллере.
То есть мы получаем такие же коэффициенты как и в программе Матлаб или Filter Solutions.
Все эти огромные примеры имеют единственную цель - научить пользователя создавать матрицы z- преобразования.
Знание матрицы = знанию рекуррентной формулы.
Если у Вас нет задачи оперативно менять параметры фильтра, то несомненно можно обойтись Filter Solutions.
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 88
06.06.2015, 20:18 20
Цитата Сообщение от wypuk
Зачем это все нужно? Точнее как это применить к реальной задаче? Для чего нужны фильтры - я понимаю.
Например имеется набор входных выборок... что делать со всей этой матрицей коэффициентов, чтобы на выходе получить отфильтрованые выборки?
К тому же как сказывается результат работы фильтра на амплитуде и фазе отфильтрованных частот?
Ещё раз на примере фильтра Баттерворта поясню, как матрица чудесным образом превращается в коэффициенты рекуррентной формулы :-)
Имеем ФНЧ Баттерфорта 2 порядка:


<Изображение удалено>

Пусть нам надо сделать цифровой ФНЧ. z- преобразование ФНЧ


<Изображение удалено>

H(z) в общем виде для фильтров 2 порядка выглядит так:


<Изображение удалено>
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2015, 20:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

цифровые полосовые фильтры
Решил разобраться с фильтрацией сигналов Для начала курил статью из википедии...

Целочисленные цифровые фильтры
Современное проектирование целочисленных цифровых фильтров (ЦЦФ) - это проектирование по...

Цифровые фильтры (КИХ и БПФ)
Всем привет, На сайте MSDN нашел готовые классы, реализующие фильтры FIR (КИХ) и FFT (БПФ), но...

Рекурсивные фильтры
Скажите, возможна ли практическая реализация рекурсивных фильтров на основе ДВС(дискретная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.