Easyelectronics.ru

Электроника для всех
Текущее время: 14 окт 2019, 03:51

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Цифровые рекурсивные фильтры
СообщениеДобавлено: 01 июн 2015, 13:33 
Заглядывает иногда
Аватара пользователя

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

Моя цель - подготовить подготовить вас к чтению серьёзных статей по этой тематике (не дай Бог, конечно, но в жизни может всякое случиться...).
Что от вас требуется:
1. Умение пользоваться Googleм (многие термины я объяснить подробно не смогу)
2. Знание математики в пределах 1 курса технического ВУЗа или продвинутое (см. пункт 1)
3. Знание программирования. Язык значения не имеет. Я буду приводить примеры на том языке,который под руку попадёт. В основном это будет Си и Фортран.
Претензии любителей Бэйсика, Дельфи, МатЛаба и PHP не принимаются.
Вложение:
Смайл.jpg
Смайл.jpg [ 224.32 Кб | Просмотров: 21778 ]

И такого вида сигнал тоже можно отфильтровать :-)
...
Статья полностью опубликована в
http://we.easyelectronics.ru/Soft/cifro ... iltry.html


Последний раз редактировалось Santik 10 июн 2015, 14:25, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 01 июн 2015, 16:36 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 618
Откуда: Киев
Уточните, если jw = S (комплексная частота), то что является Бета?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 01 июн 2015, 16:56 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
SOVA писал(а):
Уточните, если jw = S (комплексная частота), то что является Бета?

\beta-определяет частоту среза. Имеет несколько разный смысл для H(S) и H(z).
Нас пока больше интересует \beta в z-области. Формулу я привёл выше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 02 июн 2015, 17:06 
Старожил

Зарегистрирован: 27 янв 2010, 13:34
Сообщения: 2250
Откуда: Израиль
Вы правда верите, что эти наброски из учебника могут чем-то помочь новичку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 02 июн 2015, 19:16 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Ссылку на учебник не дадите?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 02 июн 2015, 19:51 
Старожил

Зарегистрирован: 27 янв 2010, 13:34
Сообщения: 2250
Откуда: Израиль
Не дам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 02 июн 2015, 20:17 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Жаль...
А то я здесь недавно "изобрёл" z- преобразование ФНЧ-ПФ, а потом выяснил, что эту формулу Тони Константинидис почти 50 лет тому назад вывел :-). Хотя о существовании соответствующей матрицы он похоже не подозревал. Я даже хотел эту матрицу назвать "матрица Константинидиса". Но он не согласился :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июн 2015, 11:28 
Старожил

Зарегистрирован: 20 мар 2010, 17:31
Сообщения: 1394
Откуда: Челябинск
Santik писал(а):
Жаль...
А то я здесь недавно "изобрёл" z- преобразование ФНЧ-ПФ, а потом выяснил, что эту формулу Тони Константинидис почти 50 лет тому назад вывел :-). Хотя о существовании соответствующей матрицы он похоже не подозревал. Я даже хотел эту матрицу назвать "матрица Константинидиса". Но он не согласился :-)

Вы имеете ввиду замену переменной? Так вроде это преобразование было описано еще в учебнике Голда, а он вроде вышел пораньше Константинидиса с Богнером...
Хотя самостоятельно такое вывести - снимаю шляпу!

зы. выше просили ссылки на учебник - из последних мне очень понравился "Смит С. Цифровая обработка сигналов. Практическое руководство для инженеров и научных работников" - вполне вменяемая книжка с приемлемым уровнем арифметики для начинающих.
Ну и Айфичер ("ЦОС. Практический подход"), конечно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июн 2015, 12:04 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Mikesoft писал(а):
Вы имеете ввиду замену переменной? Так вроде это преобразование было описано еще в учебнике Голда, а он вроде вышел пораньше Константинидиса с Богнером...
Хотя самостоятельно такое вывести - снимаю шляпу!

Я имею ввиду формулу z- преобразования ФНЧ-ПФ:
Вложение:
CodeCogsEqn(16).gif
CodeCogsEqn(16).gif [ 950 байт | Просмотров: 21814 ]

Вложение:
CodeCogsEqn(17).gif
CodeCogsEqn(17).gif [ 1.25 Кб | Просмотров: 21814 ]

Особенно тяжело дался секанс в последней формуле :-)
Я этим секансом больше месяца занимался. Чуть с женой не поругался... :-)
Mikesoft писал(а):
зы. выше просили ссылки на учебник - из последних мне очень понравился "Смит С. Цифровая обработка сигналов. Практическое руководство для инженеров и научных работников" - вполне вменяемая книжка с приемлемым уровнем арифметики для начинающих.
Ну и Айфичер ("ЦОС. Практический подход"), конечно...

Меня крайне заинтересовала бы книга, где был бы описан матричный способ перехода H(S) --> H(z).
Нигде не встречали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июн 2015, 15:39 
Старожил

Зарегистрирован: 20 мар 2010, 17:31
Сообщения: 1394
Откуда: Челябинск
Santik писал(а):
Mikesoft писал(а):
Вы имеете ввиду замену переменной? Так вроде это преобразование было описано еще в учебнике Голда, а он вроде вышел пораньше Константинидиса с Богнером...
Хотя самостоятельно такое вывести - снимаю шляпу!

Я имею ввиду формулу z- преобразования ФНЧ-ПФ:
я имею ввиду примерно то же самое... (за дословность не поручусь - книжки дома, а на память я такое - увы -не осилю... отупел-с...)


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


Цитата:
Меня крайне заинтересовала бы книга, где был бы описан матричный способ перехода H(S) --> H(z).
Нигде не встречали?

Не, книги - нет. такое ощущение, что в каких-то публикациях типа журнальной статьи или типа того проскакивало (просматриваю изредка, чтоб мозги совсем не атрофировались),


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 03 июн 2015, 15:55 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Mikesoft писал(а):
Вы имеете ввиду замену переменной? Так вроде это преобразование было описано еще в учебнике Голда, а он вроде вышел пораньше Константинидиса с Богнером...

Да, Вы оказались совершенно правы!
Действительно в книге Голд Б., Рэйдер Ч. "Цифровая обработка сигналов" 1969 года нашёл подобную формулу :-)
А Богнер, Константинидис - это 1975 год.
Там правда обобщение некоторое - из ФНЧ - все типы фильтров получают (ФНЧ, ФВЧ, полосовые и режекторные).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 06 июн 2015, 08:14 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Готовиться к опубликованию статья "Цифровые рекурсивные фильтры. Часть 2." в которой будут рассмотрены следующие вопросы:
Методика расчёта матрицы z- преобразования.
Преобразования матрицы (ФНЧ-ФВЧ, ПР-РФ)
Будут приведены примеры матриц более высоких порядков.

Хотелось бы услышать ваше мнение : Что бы Вы ещё хотели увидеть в этой статье?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 06 июн 2015, 11:06 
Старожил

Зарегистрирован: 20 мар 2010, 17:31
Сообщения: 1394
Откуда: Челябинск
Santik писал(а):
Готовиться к опубликованию статья "Цифровые рекурсивные фильтры. Часть 2."
А где можно посмотреть на первую часть?
Цитата:
в которой будут рассмотрены следующие вопросы:
Методика расчёта матрицы z- преобразования.
Преобразования матрицы (ФНЧ-ФВЧ, ПР-РФ)
Будут приведены примеры матриц более высоких порядков.
А нужны ли "более высокие порядки"? Насколько помню, у рекурсивных фильтров могут быть проблемы с устойчивостью. вы эти проблемы вроде "плавно обошли". поэтому (имхо, конечно) лучше тех, кто собирается проектировать БИХ-фильтры высоких порядков - отослать к толстым учебникам. чисто чтоб не нарвались на другие проблемы.
Ну и (опять же на мой взгляд) - критерии выбора фильтров.
Цитата:
Хотелось бы услышать ваше мнение : Что бы Вы ещё хотели увидеть в этой статье?
Примеров из практики.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 06 июн 2015, 14:43 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
http://we.easyelectronics.ru/Soft/cifrovye-rekursivnye-filtry.html
На фильтрах высоких порядков интереснее всякие эксперименты проводить:
Успеет ли контроллер за время меньшее, чем шаг дискретизации АЦП, обсчитать рекуррентную формулу?
Это в принципе главный вопрос.
Вопрос устойчивости - очень важный конечно, но я ведь сравнивал результаты своей программы с другими. Различия порядка 10^{-7}
Порядок фильтра всегда можно уменьшить, если проблемы возникают.
Можно использовать наиболее "безопасные" фильтры - фильтры Баттерворта.
Примеры из практики - вот этого я не понял немного.
Вы хотите увидеть реализацию конкретного фильтра на ATmega8, к примеру?
Это возможно, но эта задача уже решена, я апноут где-то видел. Выше 3 порядка подняться нельзя на максимальной частоте АЦП. Вот с STM32 интереснее, но у меня нет "железа".
А программы расчёта коэффициентов на Си - будут однозначно.
И ещё. Я ведь пытаюсь дать общую методику построения БИХ фильтров. Чтобы каждый смог построить фильтр такого типа и порядка, который ему нужен. Матричная методика расчёта, как никакая другая, очень этому способствует.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 06 июн 2015, 19:52 
Старожил

Зарегистрирован: 20 мар 2010, 17:31
Сообщения: 1394
Откуда: Челябинск
Santik писал(а):
Это в принципе главный вопрос.
Вопрос устойчивости - очень важный конечно, но я ведь сравнивал результаты своей программы с другими. Различия порядка 10^{-7}
Порядок фильтра всегда можно уменьшить, если проблемы возникают.

Вопрос устойчивости - важен в том смысле, что рекурсивный фильтр потенциально может быть неустойчивым. вы ж проверяли свои фильтры не про всему ансамблю входных данных? Или я ошибаюсь? :-) Не, уменьшить порядок фильтра, конечно, можно - но для этого нужно осознать проблему (да и хотя бы просто знать о ее ненулевой вероятности. ),
Цитата:
Можно использовать наиболее "безопасные" фильтры - фильтры Баттерворта.

Разве в них неустойчивость невозможна? Не буду ни возражать, ни соглашаться - надо освежить предмет в памяти...
Цитата:
Примеры из практики - вот этого я не понял немного.
Вы хотите увидеть реализацию конкретного фильтра на ATmega8, к примеру?
Не. реализовать расчитаный фильтр сможет почти всякий. Более интересен "сквозной пример": "понадобилось вот это, по таким параметрам выбрал тип и вид фильтра, так рассчитал, на этом реализовал, получил такой-то результат..."

Цитата:
Вот с STM32 интереснее, но у меня нет "железа".

совсем нет? в принципе, дискавери ф4 сейчас стоит порядка 1200 рублей с доставкой, а модули в формате ардуйни-нано на STM32F103C8T6 - вообще 250 рублей с доставкой. ИМХО, не слишком напряжно...
Цитата:
А программы расчёта коэффициентов на Си - будут однозначно.
И ещё. Я ведь пытаюсь дать общую методику построения БИХ фильтров. Чтобы каждый смог построить фильтр такого типа и порядка, который ему нужен. Матричная методика расчёта, как никакая другая, очень этому способствует.

Если есть методики - сами программы не очень-то и нужны. только оооочень ленивым... (ненавижу студентов-копипастеров, поэтому, наверное, программы лучше не приводите - пусть хоть чуть-чуть понапрягаются).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 06 июн 2015, 22:43 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Да, я согласен, проблема устойчивости - это проблема. Фильтр Баттерворта тоже потенциально неустойчив, но он более безопасен по сравнению с другими БИХ-фильтрами. И конечно всё очень сильно зависит от порядка. До 6 порядка проблем устойчивости практически не возникает.
В "железе" конечно лучше было бы проверять, но пока ограничусь проверкой в симуляторе IAR.
Во сквозной пример придумать мне как-то затруднительно. Может быть следящий фильтр для ЛЧМ- сигнала? Но это на 100% в железе надо будет проверять. Да ещё там жёсткие ограничения на порядок...
Ну или перестраиваемый полосовой фильтр. Но опять же без железа - это никуда не годится.
На ATmege8 может что-нибудь придумаю. Но это тогда будет в статье "Цифровые рекурсивные фильтры. Часть 3." :-)
Ну если кто-то заинтересуется и сделает что- нибудь. Полосовой 5 порядка - я ведь текст программы выложил. Осталось только экспериментировать - хотя бы перестраиваемый фильтр.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 07 июн 2015, 12:32 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
В Сообществе, в разделе "Алгоритмы и программные решения" опубликована статья "Цифровые рекурсивные фильтры. Часть 2."


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 07 июн 2015, 15:14 
Старожил

Зарегистрирован: 26 апр 2012, 19:19
Сообщения: 364
Зачем это все нужно? Точнее как это применить к реальной задаче? Для чего нужны фильтры - я понимаю.
Например имеется набор входных выборок... что делать со всей этой матрицей коэффициентов, чтобы на выходе получить отфильтрованые выборки?
К тому же как сказывается результат работы фильтра на амплитуде и фазе отфильтрованных частот?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 07 июн 2015, 16:24 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Матрица несёт некую "вспомогательную" функцию и помогает быстро рассчитать коэффициенты рекуррентной формулы. Даже непосредственно в микроконтроллере.
То есть мы получаем такие же коэффициенты как и в программе Матлаб или Filter Solutions.
Все эти огромные примеры имеют единственную цель - научить пользователя создавать матрицы z- преобразования.
Знание матрицы = знанию рекуррентной формулы.
Если у Вас нет задачи оперативно менять параметры фильтра, то несомненно можно обойтись Filter Solutions.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 07 июн 2015, 21:05 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
wypuk писал(а):
Зачем это все нужно? Точнее как это применить к реальной задаче? Для чего нужны фильтры - я понимаю.
Например имеется набор входных выборок... что делать со всей этой матрицей коэффициентов, чтобы на выходе получить отфильтрованые выборки?
К тому же как сказывается результат работы фильтра на амплитуде и фазе отфильтрованных частот?


Ещё раз на примере фильтра Баттерворта поясню, как матрица чудесным образом превращается в коэффициенты рекуррентной формулы :-)
Имеем ФНЧ Баттерфорта 2 порядка:
Вложение:
CodeCogsEqn(4).gif
CodeCogsEqn(4).gif [ 966 байт | Просмотров: 21105 ]

Пусть нам надо сделать цифровой ФНЧ. z- преобразование ФНЧ
Вложение:
CodeCogsEqn(7).gif
CodeCogsEqn(7).gif [ 441 байт | Просмотров: 21105 ]

H(z) в общем виде для фильтров 2 порядка выглядит так:
Вложение:
CodeCogsEqn(19).gif
CodeCogsEqn(19).gif [ 1.21 Кб | Просмотров: 21105 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 07 июн 2015, 21:32 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
И вот сейчас случится чудо.
На ваших глазах матрица z- преобразования превращается... матрица превращается... превращается матрица ... в обыкновенные коэффициенты рекуррентной формулы:
Вложение:
ФНЧ2А.gif
ФНЧ2А.gif [ 1.64 Кб | Просмотров: 21093 ]

Для этого достаточно умножить эту матрицу на вектор, состоящий из коэффициентов в формуле H(S)!
Вспомнив курс линейной алгебры или постучав в Бубен Шамана (я лично только вторым методом пользуюсь) запишем аналитические выражения для коэффициентов Ai:
Вложение:
CodeCogsEqn(49).gif
CodeCogsEqn(49).gif [ 1.12 Кб | Просмотров: 21093 ]

Коэффициенты B_i=\beta^2(1;2;1)
Формулу для \beta можно посмотреть в статье (Часть 1.)
Вот и всё, цифровой фильтр построен! Можно загонять коэффициенты в рекуррентную формулу:
Вложение:
CodeCogsEqn(48).gif
CodeCogsEqn(48).gif [ 1.83 Кб | Просмотров: 21093 ]


Последний раз редактировалось Santik 08 июн 2015, 07:35, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 07 июн 2015, 22:21 
Старожил

Зарегистрирован: 26 апр 2012, 19:19
Сообщения: 364
Я правильно понял, что по этой самой рекурентной формуле вычисляется Y(n) используя значения 3х последних выборок и 2 предыдущих рассчитаных значения Y(n-1) и Y(n-2)?
А сама эта рекуррентная формула откуда взялась? Просто так бац и вот тебе для такого-то фильтра - такая-то формула? Типа есть некий справочник всевозможных фильтров и соответствующих им рекурентных формул! Так или как?
Конечно я провел некую аналогию и могу догадаться что она может получиться из формулы H(Z) = (B0 + B1*Z^-1 + B2*Z^-2)/(A0 + A1*Z^-1 + A2*Z^-2) если положить H(Z)=1,
а Z^0, Z^-1, Z^-2 перед коэффициентами "B" заменить на X(n), X(n-1), X(n-2) соответственно, а перед коэффициентами "A" заменить на Y(n), Y(n-1), Y(n-2) соответственно.
Получиться что

1 = (B0*X(n) + B1*X(n-1) + B2*X(n-2)) / (A0*Y(n) + A1*Y(n-1) + A2*Y(n-2))

A0*Y(n) + A1*Y(n-1) + A2*Y(n-2) = B0*X(n) + B1*X(n-1) + B2*X(n-2)

Y(n) = (B0*X(n) + B1*X(n-1) + B2*X(n-2) - A1*Y(n-1) - A2*Y(n-2)) / A0 --- та самая рекуррентная формула

Но! это просто интуитивные для меня выводы.
Каким образом ты сам ее получил эту рекуррентную формулу? А для других фильтров как?

Во вторых. Какого порядка мне нужно выбрать фильтр под мою конкретную задачу? По каким критериям это определить?
И какова передаточная характеристика для такого фильтра.
Например такая
H(s) = (a1*S^5 + a2*S^4 +a3*S^3 + a4*S^2 + a5*S + a6) / (b0*S^6 + b1*S^5 + b2*S^4 +b3*S^3 + b4*S^2 + b5*S + b6)
или такая
H(s) = (a2*S^4 + a4*S^2 ) / (b0*S^6 + b2*S^4 +b3*S^3 + b4*S^2 )
или такая
H(s) = (a1*S^5 + a6) / (b3*S^3 + b4*S^2 + b5*S + b6)
как ее определить и где взять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 07 июн 2015, 22:48 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
wypuk писал(а):
Я правильно понял, что по этой самой рекурентной формуле вычисляется Y(n) используя значения 3х последних выборок и 2 предыдущих рассчитаных значения Y(n-1) и Y(n-2)?
А сама эта рекуррентная формула откуда взялась? Просто так бац и вот тебе для такого-то фильтра - такая-то формула? Типа есть некий справочник всевозможных фильтров и соответствующих им рекурентных формул! Так или как?

По рекуррентной формуле - правильно.
вопрос 2.
Нет, не так! Рекуррентная формула всегда одна и та же (для определённого порядка, конечно). А какой фильтр - Баттерворта, Чебышева или Кауэра никакого значения не имеет! Так что никакого "справочника" нет.
wypuk писал(а):
...Каким образом ты сам ее получил эту рекуррентную формулу? А для других фильтров как?
Во вторых. Какого порядка мне нужно выбрать фильтр под мою конкретную задачу? По каким критериям это определить?
И какова передаточная характеристика для такого фильтра.

Формула настолько простая, что я её держу голове! :-)
Если знаю коэффициенты H(z) - то сразу рекуррентную формулу пишу...
Вложение:
CodeCogsEqn(50).gif
CodeCogsEqn(50).gif [ 1.67 Кб | Просмотров: 21061 ]

N- порядок фильтра.
Вывод рекуррентной формулы см. http://www.dsplib.ru/content/filters/ch9/ch9.html
Ну и по аналоговым/цифровым фильтрам для начала я бы посоветовал
http://www.dsplib.ru/content/filters/ch3/ch3.html
http://www.dsplib.ru/content/filters/butterex/butterex.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 08 июн 2015, 08:57 
Старожил

Зарегистрирован: 20 мар 2010, 17:31
Сообщения: 1394
Откуда: Челябинск
wypuk писал(а):
Зачем это все нужно? Точнее как это применить к реальной задаче? Для чего нужны фильтры - я понимаю.
Например имеется набор входных выборок... что делать со всей этой матрицей коэффициентов, чтобы на выходе получить отфильтрованые выборки?

Вкратце, это делается так:
1. у вас есть задача отфильтровать входной сигнал.
2. под задачу фильтрации выбирается тип фильтра.
(не буду оригинален, и процитирую википедию: "АЧХ фильтра Баттерворта максимально гладкая на частотах полосы пропускания и снижается практически до нуля на частотах полосы подавления. При отображении частотного отклика фильтра Баттерворта на логарифмической АФЧХ, амплитуда снижается к минус бесконечности на частотах полосы подавления. ... АЧХ фильтра Баттерворта — монотонно убывающая функция частоты. Фильтр Баттерворта — единственный из фильтров, сохраняющий форму АЧХ для более высоких порядков (за исключением более крутого спада характеристики на полосе подавления) тогда как многие другие разновидности фильтров (фильтр Бесселя, фильтр Чебышёва, эллиптический фильтр) имеют различные формы АЧХ при различных порядках.

В сравнении с фильтрами Чебышёва I и II типов или эллиптическим фильтром, фильтр Баттерворта имеет более пологий спад характеристики и поэтому должен иметь больший порядок (что более трудно в реализации) для того, чтобы обеспечить нужные характеристики на частотах полосы подавления. Однако фильтр Баттерворта имеет более линейную фазо-частотную характеристику на частотах полосы пропускания."
) Ну, или почитайте Хоровца и Хилла, там более подробно про различия типов фильтров, и с примерами.

3.После выбора типа фильтра считается требуемый порядок фильтра.
4.После того, как определились с фильтром - считаем коэффициенты фильтра и, собственно, пишем фильтр...
Чтобы посчитать коэффициенты фильтра - есть два пути. первый - это воспользоваться, скажем, матлабом или (сам не смотрел, но ТС рекомендует) фильтер сольюшенс. второй путь - считать коэффициенты непосредственно на месте (это, скорее всего, какой-то адаптирующийся фильтр, настраивающийся в устройстве, допустим, по параметрам текущего сигнала или текущей хотелке юзера) - это предлагаемый ТС-ом путь матричного преобразования.
5. ну а после того, как сам фильтр готов - подаем ему на вход входные отсчеты, и получаем с выхода выходные отсчеты..

Цитата:
К тому же как сказывается результат работы фильтра на амплитуде и фазе отфильтрованных частот?

В полном соответствии с АЧХ и ФЧХ :-) которые вы выбираете в п.2.
-----------------------
Santik, я примерно об этом говорил, когда "хотел пример".


Последний раз редактировалось Mikesoft 08 июн 2015, 14:53, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Цифровые рекурсивные фильтры
СообщениеДобавлено: 08 июн 2015, 09:31 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Mikesoft писал(а):
Вкратце, это делается так: ...
....
Santik, я примерно об этом и говорил, когда "хотел пример".


Красиво излагаете! Главное доступно -и ни одной формулы! Я так не умею :-(
Вы не со студентами случайно работаете ? :-)
А у меня всё не очень хорошо получается. Выложил Часть 2. Не "влезли" частотные преобразования, ПФ и РФ.
Короче, ещё Часть 3. будет. До "примеров" даже не знаю когда доберусь. Сейчас хочу "по-максимуму" теорию выложить, а потом уже к "практике" перейду.
Я вот подумал и понял, что ТЗ на фильтр с перестраиваемой частотой не так то просто написать ( если не хочешь, конечно, впоследствии выглядеть идиотом! :-)
Со "статическими" фильтрами - всё понятно.
Может здесь от обратного придётся "плясать" - вот перестраиваемый полосовой фильтр Баттерворта 5 порядка - вот такие характеристики он будет иметь в зависимости от центральной частоты и полосы. Не нравятся характеристики? Бери фильтр 6 порядка.
Вложение:
Б2.JPG
Б2.JPG [ 30.53 Кб | Просмотров: 20998 ]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB