реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> IIR direct form I загрузка коэффициентов
korhal
сообщение Aug 24 2016, 15:53
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 29-01-09
Пользователь №: 44 144



Всем привет!

Есть функция, реализующая фильтр IIR direct form I.
На вход подаются коэффициенты A и B:
float A[2*N];
float B[2*N+1];
где N = число биквадратных стадий

Не пойму, почему так мало коэффициентов B ?
Ведь на каждую стадию приходится 3 коэффициента B (B0,B1,B2) и 2 коэффициента А (A1,A2)
Как правильно передать B коэффициенты, если их 3 на стадию ?
Go to the top of the page
 
+Quote Post
andyp
сообщение Aug 24 2016, 16:58
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(korhal @ Aug 24 2016, 18:53) *
Всем привет!

Есть функция, реализующая фильтр IIR direct form I.
На вход подаются коэффициенты A и B:
float A[2*N];
float B[2*N+1];
где N = число биквадратных стадий

Не пойму, почему так мало коэффициентов B ?
Ведь на каждую стадию приходится 3 коэффициента B (B0,B1,B2) и 2 коэффициента А (A1,A2)
Как правильно передать B коэффициенты, если их 3 на стадию ?


B0 можно приравнять к 1, поделив все коэф-ты B на него и введя усиление секции. Тогда будем иметь дело с 2 A, 2 B на секцию и общим усилением всех секций. Отсюда 2*N+1.
Go to the top of the page
 
+Quote Post
korhal
сообщение Aug 25 2016, 11:12
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 29-01-09
Пользователь №: 44 144



Цитата(andyp @ Aug 24 2016, 20:58) *
B0 можно приравнять к 1, поделив все коэф-ты B на него и введя усиление секции. Тогда будем иметь дело с 2 A, 2 B на секцию и общим усилением всех секций. Отсюда 2*N+1.


Все оказалось проще. Надо перемножить передаточные функции всех секций! Получается 2*N+1 кэфов A и 2*N+1 кэфов B. Отбрасываем кэф A0, он всегда = 1. Остается 2*N кэфов A.
Go to the top of the page
 
+Quote Post
andyp
сообщение Aug 25 2016, 15:44
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(korhal @ Aug 25 2016, 14:12) *
Все оказалось проще. Надо перемножить передаточные функции всех секций! Получается 2*N+1 кэфов A и 2*N+1 кэфов B. Отбрасываем кэф A0, он всегда = 1. Остается 2*N кэфов A.


Ух, такая простота хуже воровства. Не зря ж фильтры на биквады бьют - там группируют определенные нули с определенными полюсами чтобы снизить шумы и ошибки представления коэффициентов.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 18:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01707 секунд с 7
ELECTRONIX ©2004-2016