Пока я не совсем понимаю как оно работает.
void arm_lms_norm_init_f32 ( arm_lms_norm_instance_f32 * S ,
uint16_t numTaps ,
float32_t * pCoeffs ,
float32_t * pState ,
float32_t му ,
uint32_t размер блока
)
Параметры
[в] S указывает на экземпляр структуры фильтра LMS с плавающей запятой
[в] numTaps количество коэффициентов фильтра
[в] pCoeffs указывает на буфер коэффициентов
[в] pState указывает на буфер состояния
[в] му размер шага, который управляет обновлениями коэффициентов фильтра
[в] размер блока количество образцов для обработки
Возврат
никто
Детали
pCoeffs указывает на массив коэффициентов фильтра, хранящихся в обратном во времени порядке:
{b [numTaps-1], b [numTaps-2], b [N-2], ..., b [1], b
Начальные коэффициенты фильтра служат отправной точкой для адаптивного фильтра. pStateуказывает на массив numTaps+blockSize-1выборок длины , где blockSize- количество входных выборок, обработанных каждым вызовом arm_lms_norm_f32().
void arm_lms_norm_f32 ( arm_lms_norm_instance_f32 * S ,
const float32_t * pSrc ,
float32_t * pRef ,
float32_t * pOut ,
float32_t * pErr ,
uint32_t размер блока
)
Параметры
[в] S указывает на экземпляр структуры нормализованного фильтра LMS с плавающей запятой
[в] pSrc указывает на блок входных данных
[в] pRef указывает на блок справочных данных
[вне] pOut указывает на блок выходных данных
[вне] pErr указывает на блок данных об ошибке
[в] размер блока количество образцов для обработки