#include "jtest.h" #include "filtering_test_data.h" #include "arr_desc.h" #include "arm_math.h" /* FUTs */ #include "ref.h" /* Reference Functions */ #include "test_templates.h" #include "filtering_templates.h" #include "type_abbrev.h" static const float32_t mu_f32 = 0.00854f;//1.0f; static const float32_t mu2_f32 = 1.0f; static const q31_t mu_q31 = 0x7fffffff; static const q15_t mu_q15 = 0x7fff; #define LMS_DEFINE_TEST(suffix, config_suffix, output_type, mu) \ JTEST_DEFINE_TEST(arm_lms##config_suffix##_##suffix##_test, \ arm_lms##config_suffix##_##suffix) \ { \ arm_lms##config_suffix##_instance_##suffix lms_inst_fut = { 0 }; \ arm_lms##config_suffix##_instance_##suffix lms_inst_ref = { 0 }; \ arm_fir_instance_##suffix fir_inst = { 0 }; \ uint32_t i; \ \ TEMPLATE_DO_ARR_DESC( \ blocksize_idx, uint32_t, blockSize, lms_blocksizes \ , \ TEMPLATE_DO_ARR_DESC( \ numtaps_idx, uint16_t, numTaps, filtering_numtaps \ , \ /* Initialize the FIR Instances */ \ arm_fir_init_##suffix( \ &fir_inst, numTaps, \ (output_type*)filtering_coeffs_##suffix, \ (void *) filtering_pState, blockSize); \ \ ref_fir_##suffix( \ &fir_inst, \ (void *) filtering_##suffix##_inputs, \ (void *) filtering_input_lms, \ blockSize); \ \ for(i=0;i> 6; \ } \ \ /* Display test parameter values */ \ JTEST_DUMP_STRF("Block Size: %d\n" \ "Number of Taps: %d\n" \ "Post Shift: %d\n", \ (int)blockSize, \ (int)numTaps, \ (int)postShift); \ \ /* Initialize the LMS Instances */ \ arm_lms##config_suffix##_init_##suffix( \ &lms_inst_fut, numTaps, \ (output_type*)filtering_coeffs_lms, \ (void *) filtering_pState, mu_##suffix, blockSize, postShift); \ \ JTEST_COUNT_CYCLES( \ arm_lms##config_suffix##_##suffix( \ &lms_inst_fut, \ (void *) filtering_output_f32_fut, \ (void *) filtering_input_lms, \ (void *) filtering_output_fut, \ (void *) ((output_type*)filtering_output_fut+blockSize), \ blockSize)); \ \ for(i=0;i