почему при установке 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 бит). ....................................
|