ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 ноября
752091 Топик полностью
Nikolay_Po (25.04.2017 09:44 - 09:57, просмотров: 178) ответил fk0 на Он не думает. Можно посмотреть картинки и думать как закодить в 16-битах fixed point. Ещё раз рекомендую ссылку. В очередной раз.
Вот это: static float _fstepf_2(filter *fi, float x) { /* /usr/fisher/mipsbin/mkfilter -Bu -Bp -o 4 -a 0.03593750000 0.04531250000 -l */ float *v = fi -> v; v[0] = v[1]; v[1] = v[2]; v[2] = v[3]; v[3] = v[4]; v[4] = v[5]; v[5] = v[6]; v[6] = v[7]; v[7] = v[8]; v[8] = ( 6.9752013701e-07 * x) + ( -0.8573132535 * v[0]) + ( 6.7668969461 * v[1]) + (-23.5932085800 * v[2]) + ( 47.4460745570 * v[3]) + (-60.1843751000 * v[4]) + ( 49.3079205940 * v[5]) + (-25.4811693030 * v[6]) + ( 7.5951586426 * v[7]); return (v[0] + v[8]) - 4 * (v[2] + v[6]) + 6 * v[4]; } С 16-бит фиксированной точкой (с целыми числами - без разницы) не заработает. Слишком высок порядок фильтра и ошибка квантования получит большое усиление, до потери стабильности устойчивости.