Fixed shadowed variables in assembly macros for Cortex-M convolution
Fixed type promotions in _f64 matrix and transform code
Co-authored-by: Timothy Fosdike <tfosdike@redarc.com.au>
Regular functions for use with tone detection and noise estimation.
Flat-top windows for estimation of tone amplitudes.
Parameters of the windows are given.
Kaiser window missing (Bessel function not available in the library).
No f16 implementation since it is not accurate enough. It is better
to compute a f32 window and convert to f16 after.
According to the C standard q15_t * and const q15_t * are not compatible
types which, among other things, imply that an object of type const
q15_t * can't be modified by writing to a q15_t ** or vice versa.
Programs doing this are undefined.
Because of this rule all programs using the functions read_q15x2_ia,
read_q15x2_da, read_q7x4_ia, or read_q7x4_da for reading data from an
array of constant elements will be undefined. To solve this it is not
enough to change the type of the function since this will give problems
when reading data from an array of non-const elements. To get a defined
solution I needed to switch from functions to macros to allow the
increment to be done in the original type of the pointer.
Added arm_(max|min)_no_idx_(q7|q15|q31|f16|f32|f64).c
Added arm_abs(max|min)_no_idx_(q7|q15|q31|f16|f32|f64).c
For both functions : Helium and scalar versions.
To avoid having to change the API in an incompatible way,
a arm_mat_mult_opt_q31 was introduced and is providing a faster implementation
to use with Helium (but requiring more storage for intermediate results).
Some improvements to tests for matrix functions added.
Cleaned out some non-standard C code, typeof() and using
"const" variables as constants.
Also added some initial IAR support.
Signed-off-by: TTornblom <thomas.tornblom@iar.com>
Cleaned out some non-standard C code, typeof() and using
"const" variables as constants.
Also added some initial IAR support.
Signed-off-by: TTornblom <thomas.tornblom@iar.com>
arm_cmplx_mag_q15 reworked to be more accurate but less efficient.
New function arm_cmplx_mag_fast_q15 introduced to retain previous
(less accurate) but faster behavior.
Improvement to Python wrapper to support the new functions.
This first version is not very accurate due to problems with the log.
A coming commit will improve the log accuracy.
Issues #1305 and #1304 also corrected as part of this commit.
MFCC F32 implementation
MFCC F32 tests
MFCC F32 in Python wrapper
Python wrapper structure updated to support submodule like
cmsisdsp.mfcc and cmsisdsp.fixedpoint
PythonWrapper tests updated to use the new fixedpoint
cmsisdsp.mfcc is used to generate the mel filter, dct and window coefficients.
Wrong initialization code for Neon version of biquad DF2T.
Initialization function was trying to modify a const array.
Added Neon function to Doxygen output and some correction because of Doxygen.