Jurdens 0 18 октября, 2005 Опубликовано 18 октября, 2005 · Жалоба почему при установке 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 = delay[i+1]; sumden += delay*zden; sumnum += delay*znum; } delay[2] = invar-sumden; sumnum += delay[2]*znum[2]; return sumnum; .................... инициализация такая for (i=0;i<=2;i++) delay = 1.001e+06*(invar-initval); return initval; Еще раз глобальная цель все флоаты заменить на int (16 бит). .................................... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться