Дописал программу от N=1 до N=6.
Результаты полностью совпали с программой filter.exe
Уверен, что с Фортрана переписать на любой язык не проблема.
Пишите в личку, текстом программы поделюсь
"Оптимальные" коэффициенты БИХ фильтра
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Перейдём к рассмотрению фильтра Чебышева 1 рода 4 порядка.
Все обозначения как в статье
http://www.dsplib.ru/content/filters/ch4/ch4.html
Сделаем преобразование
Обозначим:
Обозначим
Матрица z- преобразования:
+1+1+1+1+1
-4 -2 0+2+4
+6 0 -2 0+6
-4 +2 0 -2+4
+1-1+1-1+1
Можно сразу записать ответ:
Обозначим:
Окончательно получим:
Все обозначения как в статье
http://www.dsplib.ru/content/filters/ch4/ch4.html
Сделаем преобразование
Обозначим:
Обозначим
Матрица z- преобразования:
+1+1+1+1+1
-4 -2 0+2+4
+6 0 -2 0+6
-4 +2 0 -2+4
+1-1+1-1+1
Можно сразу записать ответ:
Обозначим:
Окончательно получим:
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Итак, формулы для определения коэффициентов фильтра Чебышева мы вывели.
Формулы проверены, полученные коэффициенты совпали с результатами filter.exe
На первый взгляд они выглядят ужасно, что отбивает всякое желание использовать их в микроконтроллере.
На самом деле не всё так плохо.
Гиперболические функции в программе микроконтроллера вычислять не надо - это константы. Можно попытаться подобрать такое Rp, при котором эти константы выглядят "прилично".
Вот как зависят коэффициенты H(s) от Rp:
Формулы проверены, полученные коэффициенты совпали с результатами filter.exe
На первый взгляд они выглядят ужасно, что отбивает всякое желание использовать их в микроконтроллере.
На самом деле не всё так плохо.
Гиперболические функции в программе микроконтроллера вычислять не надо - это константы. Можно попытаться подобрать такое Rp, при котором эти константы выглядят "прилично".
Вот как зависят коэффициенты H(s) от Rp:
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Вот, нашёл в результате оптимизации:
Rp=1.5606270715000000 dB
b=0.7999999999999140=4/5
c=1.3199999999999300=33/25
d=0.5921379515415450
e=0.2275103612332760
Rp=1.5606270715000000 dB
b=0.7999999999999140=4/5
c=1.3199999999999300=33/25
d=0.5921379515415450
e=0.2275103612332760
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Для перехода от H(s) к H(z) и определения коэффициентов удобно использовать матрицу z-преобразования.
Для случая N=4 матрица выглядит вот так:
Умножая матрицу z-преобразования на вектор, состоящий из коэффициентов при мы легко получаем коэффициенты H(z).
Рассмотрим свойства этой матрицы произвольного порядка n.
1 столбец - это коэффициенты . Соответственно крайний правый столбец
Сумма элементов каждого столбца (кроме крайнего правого) =0
Сумма элементов любой нечётной строки =0
Получить матрицу z-преобразования очень просто :
элементы матрицы это коэффициенты при Z при умножении полиномов:
первый столбец
второй столбец
третий столбец
четвёртый столбец
и пятый
При больших значениях N будет удобнее пользоваться калькулятором :
http://www.mathsolution.ru/math-task/simplifi-polynom
Для случая N=4 матрица выглядит вот так:
Умножая матрицу z-преобразования на вектор, состоящий из коэффициентов при мы легко получаем коэффициенты H(z).
Рассмотрим свойства этой матрицы произвольного порядка n.
1 столбец - это коэффициенты . Соответственно крайний правый столбец
Сумма элементов каждого столбца (кроме крайнего правого) =0
Сумма элементов любой нечётной строки =0
Получить матрицу z-преобразования очень просто :
элементы матрицы это коэффициенты при Z при умножении полиномов:
первый столбец
второй столбец
третий столбец
четвёртый столбец
и пятый
При больших значениях N будет удобнее пользоваться калькулятором :
http://www.mathsolution.ru/math-task/simplifi-polynom
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Следящий ФНЧ Чебышева 4 порядка.
Входной сигнал: белый шум.
Входной сигнал: белый шум.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Ещё раз о переходе ФНЧ-ФВЧ...
Существует универсальный и быстрый (почти мгновенный ) способ перехода от ФНЧ к ФВЧ.
Пусть нам нужен ФВЧ с F/FN=0.2 и Rp=1.54313 дБ
Надо рассчитать ФНЧ с тем же параметром Rp=1.54313 дБ и частотой F/FN=1-0.2=0.8
Затем меняем знаки у нечетных коэффициентов an и bn.
На этом определение коэффициентов ФВЧ закончено.(с)
Это справедливо для любых фильтров любого порядка!
Всё сказанное справедливо только для случая Rp=3 дБ и частотной нормировке (ФНЧ-ФНЧ), применённой в программе filter.exeSantik писал(а):Итак, коэффициенты для ФНЧ рассчитаны. А что делать, если нужен ФВЧ?
Да практически ничего.
Коэффициенты an - не изменятся (при той же частоте и Rp).
Коэффициенты bn надо умножить на
и изменить знак у нечётных элементов. Всё...
Существует универсальный и быстрый (почти мгновенный ) способ перехода от ФНЧ к ФВЧ.
Пусть нам нужен ФВЧ с F/FN=0.2 и Rp=1.54313 дБ
Надо рассчитать ФНЧ с тем же параметром Rp=1.54313 дБ и частотой F/FN=1-0.2=0.8
Затем меняем знаки у нечетных коэффициентов an и bn.
На этом определение коэффициентов ФВЧ закончено.(с)
Это справедливо для любых фильтров любого порядка!
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Проиллюстрируем всё выше сказанное двумя картинками из программы filter.exe
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
И ещё две картинки:
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Характеристика H(s) симметрична относительно частоты 0:
На простом примере фильтра Баттерворта 2 порядка продемонстрируем это:
Перейдём к H(z):
Коэффициенты найдём через матрицу z-преобразования.
Теперь перейдём к ФВЧ
Коэффициенты найдём через матрицу z-преобразования.
Так как мы используем "обратное" z-преобразование, вид матрицы изменится. Положим и окончательно получим;
Соответственно изменится знак у нечётного коэффициента
Поэтому у каждого ФНЧ есть свой "зеркальный" ФВЧ.На простом примере фильтра Баттерворта 2 порядка продемонстрируем это:
Перейдём к H(z):
Коэффициенты найдём через матрицу z-преобразования.
Теперь перейдём к ФВЧ
Коэффициенты найдём через матрицу z-преобразования.
Так как мы используем "обратное" z-преобразование, вид матрицы изменится. Положим и окончательно получим;
Соответственно изменится знак у нечётного коэффициента