Vitёk 0 3 февраля, 2005 Опубликовано 3 февраля, 2005 · Жалоба Есть небольшая проблемка: требуется на лету считать параметры САБЖа: при прочих неизменных параметрах меняется нормированная частота (отношение частоты среза к частоте дискретизации). Раньше я пользовался букварём Титце и Шенка "Полупроводниковая схемотехника", а сейчас доступ к нему сильно ограничен (кто-то упёр). :twak: Кто что посоветует? Буду благодарен за формулы, фрагменты исходников, или ссылки на них. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitёk 0 5 февраля, 2005 Опубликовано 5 февраля, 2005 · Жалоба Таки решид проблему сам. Привожу фрагменты исходника на случай, если кому понадобится. //--------------------------------- // описание структур typedef struct { double a, b; }ab_Val; typedef struct { double D[3], C[2]; }IIR2_par; //--------------------------------- // определение параметров int GetIir2Parameters(double Ff, ab_Val &abv, double K, IIR2_par *p) { if(Ff == 0) return 1; double L = 1.0 / tan(M_PI * Ff); double a = abv.a, b = abv.b; double det = 1.0 + a * L + b * L * L; if(det == 0) return 2; double *C = p->C, *D = p->D; D[0] = K / det; D[1] = 0; D[2] = 0; C[0] = (1.0 - a * L + b * L * L) / det; C[1] = -(2 * b * L * L) / det; return 0; } //--------------------------------- // параметры для разных типов фильтров // взято из книги П.Хоровиц, У.Хилл "Полупроводниковая схемотехника" static ab_Val abv[]= { {1.2872, 0.4142}, // ФКЗ {1.3617, 0.6180}, // Бесселя {1.4142, 1.0000}, // Баттерворта {1.3614, 1.3827}, // Чебышева 0.5 дБ {1.3022, 1.5515}, // Чебышева 1 дБ {1.1813, 1.7775}, // Чебышева 2 дБ {1.0650, 1.9305} // Чебышева 3 дБ }; //--------------------------------- // вызов функции расчёта параметров if(GetIir2Parameters(F_3db / f_sample, abv[i], 2.0, &iir2p)) goto __exit; Методику расчёта взял из обозначенной книги. Несмотря на то, что всё это работает, у меня возник вопрос: на самом ли деле D[1] и D[2] должны быть равны 0? Если следовать примеру - то да, если выводить по формулам, то нет. :( Я сделал, как в примере... Редактирую, добавляю картинку со структурой этого фильтра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться