почему при установке 16 - ых данных (Sig Dig)
"С" код генерируется все равно для fload данных.
как провести соответсвие между коэфициентами в
окне Transfer Function
2AA3 *Z2 + AABA*Z + 2AA3
-------------------------------------
Z2+8017Z+3FE9
и программе ?
static float delay[3] = {0.0,0.0,0.0};
static float znum[3] = {
.9993,
-1.999,
.9993
};
static float zden[2] = {
.9986,
-1.999
};
там есть еще кнопка VEC по которой
показываются числа (коэфф-ты наверно)
2 2AA3 4000
1 AABA 8017
0 2AA3 3FE9
но почему то стоит число 4000 где должна быть 1
ведь в массиве zden[2] два значения.
сам алгоритм такой ( IIR 2 ФВЧ от 0.5 Гц)
............
sumden=0.0;
sumnum=0.0;
for (i=0;i<=1;i++){
delay[i] = delay[i+1];
sumden += delay[i]*zden[i];
sumnum += delay[i]*znum[i];
}
delay[2] = invar-sumden;
sumnum += delay[2]*znum[2];
return sumnum;
....................
инициализация такая
for (i=0;i<=2;i++) delay[i] = 1.001e+06*(invar-initval);
return initval;
Еще раз глобальная цель все флоаты заменить на int (16 бит).
....................................