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

 
 
 
Reply to this topicStart new topic
> Определение параметров фильтра, Определение параметров фильтра из формулы расчета его коэффициентов
strap89
сообщение Sep 17 2018, 07:22
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 7-09-18
Пользователь №: 107 318



Здравствуйте!
Помогите разобраться пожалуйста. Есть цифровой БИХ-фильтр 2-го порядка, режекторный.
Есть алгоритм расчета его коэффициентов. И есть пара коэффициентов, определяющих параметры фильтра (это мои предположения).
Не могли бы Вы подсказать мне, какой тип фильтра тут использован и что определяют его параметры. Сам алгоритм:
void makefiltr2coeff(filtr2& flt,double Tsam,double f0,double f1,double ksi0,double ksi1)
{
if(!f0||!f1||!Tsam||!ksi0||!ksi1)
return;
Tsam*=scaleTsam;
double om0=2.*M_PI*f0;
double om1=2.*M_PI*f1;
double tau0=.5/tan(Tsam*om0/2.);
double tau1=.5/tan(Tsam*om1/2.);
double d=1.+(4.*tau1*(tau1+ksi1));if(!d) return;
double b0=(1.+(4.*tau0*(tau0+ksi0)))/d;
double b1=2.*(1.-4.*tau0*tau0)/d;
double b2=(1.+(4.*tau0*(tau0-ksi0)))/d;
double a1=2.*(1.-4.*tau1*tau1)/d;
double a2=(1.+(4.*tau1*(tau1-ksi1)))/d;
a0=1;
Сама реализация фильтра есть, фильтр работает, но формулу расчета коэффициентов мне найти не удалось.
Как соответственно и информацию, что означают его параметры.
Go to the top of the page
 
+Quote Post
Самурай
сообщение Sep 17 2018, 20:34
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(strap89 @ Sep 17 2018, 11:22) *
Здравствуйте!
Помогите разобраться пожалуйста. Есть цифровой БИХ-фильтр 2-го порядка, режекторный.
Есть алгоритм расчета его коэффициентов. И есть пара коэффициентов, определяющих параметры фильтра (это мои предположения).
Не могли бы Вы подсказать мне, какой тип фильтра тут использован и что определяют его параметры. Сам алгоритм:
void makefiltr2coeff(filtr2& flt,double Tsam,double f0,double f1,double ksi0,double ksi1)
{
if(!f0||!f1||!Tsam||!ksi0||!ksi1)
return;
Tsam*=scaleTsam;
double om0=2.*M_PI*f0;
double om1=2.*M_PI*f1;
double tau0=.5/tan(Tsam*om0/2.);
double tau1=.5/tan(Tsam*om1/2.);
double d=1.+(4.*tau1*(tau1+ksi1));if(!d) return;
double b0=(1.+(4.*tau0*(tau0+ksi0)))/d;
double b1=2.*(1.-4.*tau0*tau0)/d;
double b2=(1.+(4.*tau0*(tau0-ksi0)))/d;
double a1=2.*(1.-4.*tau1*tau1)/d;
double a2=(1.+(4.*tau1*(tau1-ksi1)))/d;
a0=1;
Сама реализация фильтра есть, фильтр работает, но формулу расчета коэффициентов мне найти не удалось.
Как соответственно и информацию, что означают его параметры.



Ваш IIR 2-ого порядка получен через билинейное преобразование аналогового фильтра-прототипа общего вида:



т.е. через замену и

Выводить не буду, там все тривиально, но больно много писанины...

Для режекторного фильтра необходимо выполнение условий: f0 = f1 = частоте подавления, ksi0 < ksi1, оба эти коэффициента влияют на уровень затухания и ширину полосы подавления, если ksi0=0, подавление максимальное.

Go to the top of the page
 
+Quote Post
strap89
сообщение Sep 18 2018, 09:23
Сообщение #3





Группа: Новичок
Сообщений: 2
Регистрация: 7-09-18
Пользователь №: 107 318



Цитата(Самурай @ Sep 17 2018, 23:34) *
Ваш IIR 2-ого порядка получен через билинейное преобразование аналогового фильтра-прототипа общего вида:



т.е. через замену и

Выводить не буду, там все тривиально, но больно много писанины...

Для режекторного фильтра необходимо выполнение условий: f0 = f1 = частоте подавления, ksi0 < ksi1, оба эти коэффициента влияют на уровень затухания и ширину полосы подавления, если ksi0=0, подавление максимальное.

Спасибо за объяснение.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th April 2024 - 09:17
Рейтинг@Mail.ru


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