хз что тут это не мой комп
This commit is contained in:
@@ -220,9 +220,10 @@ float FilterPoly_Process(FilterPoly_t* filter, float input) {
|
||||
* @param output_arr Массив выходных значений
|
||||
* @param size Размер таблицы
|
||||
* @param interpolation Флаг интерполяции (0 - ближайшее значение, 1 - линейная интерполяция)
|
||||
* @param offset Сдвиг input_arr для удобной коррекции
|
||||
* @return 0 - успех, -1 - ошибка
|
||||
*/
|
||||
int FilterLUT_Init(FilterLUT_t* filter, float* input_arr, float* output_arr, uint16_t size, uint8_t interpolation) {
|
||||
int FilterLUT_Init(FilterLUT_t* filter, float* input_arr, float* output_arr, uint16_t size, uint8_t interpolation, float offset) {
|
||||
check_init_filter(filter);
|
||||
if ((input_arr == NULL) || (output_arr == NULL)) return -1;
|
||||
|
||||
@@ -230,6 +231,7 @@ int FilterLUT_Init(FilterLUT_t* filter, float* input_arr, float* output_arr, uin
|
||||
filter->output_values = output_arr;
|
||||
filter->size = size;
|
||||
filter->interpolation = interpolation;
|
||||
filter->offset = offset;
|
||||
|
||||
filter->state = FILTER_READY;
|
||||
filter->reset = &FilterLUT_Init;
|
||||
@@ -253,6 +255,7 @@ float FilterLUT_Process(FilterLUT_t* filter, float input) {
|
||||
uint16_t left_index = 0;
|
||||
uint16_t right_index = filter->size - 1;
|
||||
|
||||
input -= filter->offset;
|
||||
// Если значение за пределами таблицы - возвращаем крайние значения
|
||||
if (input <= filter->input_values[0]) {
|
||||
return filter->output_values[0];
|
||||
|
||||
Reference in New Issue
Block a user