Добрый вечер!
Хочу реализовать ких-фильтр решетчатый на Си.
Алгоритм во вложении.
Написала код на Си:
х - значения входного вектора
r - значения выходного вектора
h - вектор коэффициентов фильтра
nx - размер входного вектора
nh - размер вектора коэффициентов
int firlat_my(DATA* x, DATA* h, DATA* r, DATA* pbuffer, int nx, int nh) {
int i, j;
DATA e_i_n, delay;
for (i = 0; i < nx; ++i) {
e_i_n = x[i];
for (j = 0; j < nh; ++j) {
delay = pbuffer[j];
e_i_n += (((LDATA)(h[j] * delay)) SHIFT15);
pbuffer[j] = (((LDATA)(e_i_n * h[j])) SHIFT15) + delay;
}
//pbuffer[0] = e_i_n;
r[i] = e_i_n;
}
Но в дебаге, если сравнивать значения полученные моей функцией и встроенной функцией firlat, первые отсчеты считаются хорошо, а дальше уже ошибки. Не могу понять в чем проблема, подскажите, пожалуйста