Functions | |
| static void | hpm_dsp_fir_f32 (const riscv_dsp_fir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size) |
| Function for the floating-point FIR filter. More... | |
| static void | hpm_dsp_fir_q31 (const riscv_dsp_fir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| Function for the q31 FIR filter. More... | |
| static void | hpm_dsp_fir_fast_q31 (const riscv_dsp_fir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| Function for the q31 FIR filter. More... | |
| static void | hpm_dsp_fir_q15 (const riscv_dsp_fir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| Function for the q15 FIR filter. More... | |
| static void | hpm_dsp_fir_fast_q15 (const riscv_dsp_fir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| Function for the q15 FIR filter. More... | |
| static void | hpm_dsp_fir_q7 (const riscv_dsp_fir_q7_t *instance, q7_t *src, q7_t *dst, uint32_t size) |
| Function for the q7 FIR filter. More... | |
| static void | hpm_dsp_lfir_f32 (const riscv_dsp_lfir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size) |
| Function for the floating-point lattice FIR filter. More... | |
| static void | hpm_dsp_lfir_q15 (const riscv_dsp_lfir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| Function for the q15 lattice FIR filter. More... | |
| static void | hpm_dsp_lfir_q31 (const riscv_dsp_lfir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| Function for the q31 lattice FIR filter. More... | |
| static void | hpm_dsp_dcmfir_f32 (const riscv_dsp_dcmfir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size) |
| static void | hpm_dsp_dcmfir_q15 (const riscv_dsp_dcmfir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| static void | hpm_dsp_dcmfir_q31 (const riscv_dsp_dcmfir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| static void | hpm_dsp_dcmfir_fast_q31 (const riscv_dsp_dcmfir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| static void | hpm_dsp_dcmfir_fast_q15 (const riscv_dsp_dcmfir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| static void | hpm_dsp_upsplfir_f32 (const riscv_dsp_upsplfir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size) |
| static void | hpm_dsp_upsplfir_q15 (const riscv_dsp_upsplfir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| static void | hpm_dsp_upsplfir_q31 (const riscv_dsp_upsplfir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| static void | hpm_dsp_spafir_f32 (riscv_dsp_spafir_f32_t *instance, float32_t *src, float32_t *dst, float32_t *buf, uint32_t size) |
| static void | hpm_dsp_spafir_q15 (riscv_dsp_spafir_q15_t *instance, q15_t *src, q15_t *dst, q15_t *buf1, q31_t *buf2, uint32_t size) |
| static void | hpm_dsp_spafir_q31 (riscv_dsp_spafir_q31_t *instance, q31_t *src, q31_t *dst, q31_t *buf, uint32_t size) |
| static void | hpm_dsp_spafir_q7 (riscv_dsp_spafir_q7_t *instance, q7_t *src, q7_t *dst, q7_t *buf1, q31_t *buf2, uint32_t size) |
| static void | hpm_dsp_lms_f32 (const riscv_dsp_lms_f32_t *instance, float32_t *src, float32_t *ref, float32_t *dst, float32_t *err, uint32_t size) |
| Structure for the floatint-point standard LMS Filters. More... | |
| static void | hpm_dsp_lms_q31 (const riscv_dsp_lms_q31_t *instance, q31_t *src, q31_t *ref, q31_t *dst, q31_t *err, uint32_t size) |
| Function for the q31 LMS filter. More... | |
| static void | hpm_dsp_lms_q15 (const riscv_dsp_lms_q15_t *instance, q15_t *src, q15_t *ref, q15_t *dst, q15_t *err, uint32_t size) |
| Function for the q15 LMS filter. More... | |
| static void | hpm_dsp_nlms_f32 (riscv_dsp_nlms_f32_t *instance, float32_t *src, float32_t *ref, float32_t *dst, float32_t *err, uint32_t size) |
| Structure for the f32 normalized LMS filter. More... | |
| static void | hpm_dsp_nlms_q31 (riscv_dsp_nlms_q31_t *instance, q31_t *src, q31_t *ref, q31_t *dst, q31_t *err, uint32_t size) |
| Structure for the q31 normalized LMS filter. More... | |
| static void | hpm_dsp_nlms_q15 (riscv_dsp_nlms_q15_t *instance, q15_t *src, q15_t *ref, q15_t *dst, q15_t *err, uint32_t size) |
| static void | hpm_dsp_conv_f32 (float32_t *src1, uint32_t len1, float32_t *src2, uint32_t len2, float32_t *dst) |
| Convolution of the floating-point vectors. More... | |
| static void | hpm_dsp_conv_q15 (q15_t *src1, uint32_t len1, q15_t *src2, uint32_t len2, q15_t *dst) |
| Convolution of the q15 vectors. More... | |
| static void | hpm_dsp_conv_q31 (q31_t *src1, uint32_t len1, q31_t *src2, uint32_t len2, q31_t *dst) |
| Convolution of the q31 vectors. More... | |
| static void | hpm_dsp_conv_q7 (q7_t *src1, uint32_t len1, q7_t *src2, uint32_t len2, q7_t *dst) |
| Convolution of the q7 vectors. More... | |
| static int32_t | hpm_dsp_conv_partial_f32 (float32_t *src1, uint32_t len1, float32_t *src2, uint32_t len2, float32_t *dst, uint32_t startindex, uint32_t size) |
| Convolution Partial of the floating-point vectors. More... | |
| static int32_t | hpm_dsp_conv_partial_q15 (q15_t *src1, uint32_t len1, q15_t *src2, uint32_t len2, q15_t *dst, uint32_t startindex, uint32_t size) |
| Convolution Partial of the q15 vectors. More... | |
| static int32_t | hpm_dsp_conv_partial_q31 (q31_t *src1, uint32_t len1, q31_t *src2, uint32_t len2, q31_t *dst, uint32_t startindex, uint32_t size) |
| Convolution Partial of the q31 vectors. More... | |
| static int32_t | hpm_dsp_conv_partial_q7 (q7_t *src1, uint32_t len1, q7_t *src2, uint32_t len2, q7_t *dst, uint32_t startindex, uint32_t size) |
| Convolution Partial of the q7 vectors. More... | |
| static void | hpm_dsp_corr_f32 (float32_t *src1, uint32_t len1, float32_t *src2, uint32_t len2, float32_t *dst) |
| Correlation of the floating-point vectors. More... | |
| static void | hpm_dsp_corr_q15 (q15_t *src1, uint32_t len1, q15_t *src2, uint32_t len2, q15_t *dst) |
| Correlation of the q15 vectors. More... | |
| static void | hpm_dsp_corr_q31 (q31_t *src1, uint32_t len1, q31_t *src2, uint32_t len2, q31_t *dst) |
| Convolution of the q31 vectors. More... | |
| static void | hpm_dsp_corr_q7 (q7_t *src1, uint32_t len1, q7_t *src2, uint32_t len2, q7_t *dst) |
| Correlation of the q7 vectors. More... | |
| static void | hpm_dsp_bq_df1_f32 (const riscv_dsp_bq_df1_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size) |
| static void | hpm_dsp_bq_df1_q15 (const riscv_dsp_bq_df1_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| static void | hpm_dsp_bq_df1_fast_q15 (const riscv_dsp_bq_df1_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| static void | hpm_dsp_bq_df1_q31 (const riscv_dsp_bq_df1_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| static void | hpm_dsp_bq_df1_fast_q31 (const riscv_dsp_bq_df1_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| static void | hpm_dsp_bq_df1_32x64_q31 (const riscv_dsp_bq_df1_32x64_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| static void | hpm_dsp_bq_df2T_f32 (const riscv_dsp_bq_df2T_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size) |
| static void | hpm_dsp_bq_df2T_f64 (const riscv_dsp_bq_df2T_f64_t *instance, float64_t *src, float64_t *dst, uint32_t size) |
| static void | hpm_dsp_bq_stereo_df2T_f32 (const riscv_dsp_bq_stereo_df2T_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size) |
| static void | hpm_dsp_liir_f32 (const riscv_dsp_liir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size) |
| static void | hpm_dsp_liir_q31 (const riscv_dsp_liir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| static void | hpm_dsp_liir_fast_q31 (const riscv_dsp_liir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size) |
| static void | hpm_dsp_liir_q15 (const riscv_dsp_liir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
| static void | hpm_dsp_liir_fast_q15 (const riscv_dsp_liir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Convolution of the floating-point vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
|
inlinestatic |
Convolution Partial of the floating-point vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
| [in] | startindex | is the first output sample to start with. |
| [in] | size | is the number of output points to be computed. |
|
inlinestatic |
Convolution Partial of the q15 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
| [in] | startindex | is the first output sample to start with. |
| [in] | size | is the number of output points to be computed. |
|
inlinestatic |
Convolution Partial of the q31 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
| [in] | startindex | is the first output sample to start with. |
| [in] | size | is the number of output points to be computed. |
|
inlinestatic |
Convolution Partial of the q7 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
| [in] | startindex | is the first output sample to start with. |
| [in] | size | is the number of output points to be computed. |
|
inlinestatic |
Convolution of the q15 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
Function notes: Both inputs are in 1.15 format and multiplications yield a 2.30 result. The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format.
|
inlinestatic |
Convolution of the q31 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
Function notes: Both inputs are in 1.31 format and the 64-bit accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. The input signals should be scaled down to avoid intermediate overflows. Scale down the inputs by log2(min(srcALen, srcBLen)), The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 forma t to yield the final result.
|
inlinestatic |
Convolution of the q7 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
Function notes: Both inputs are in 1.7 format and multiplications yield a 2.14 result. The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and then saturated to 1.7 format.
|
inlinestatic |
Correlation of the floating-point vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is 2 * max(len1, len2) - 1. |
|
inlinestatic |
Correlation of the q15 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is 2 * max(len1, len2) - 1. |
Function notes: Both inputs are in 1.15 format and multiplications yield a 2.30 result. The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. The 34.30 result is then truncated to 34.15 format by discarding the low 15 bits and then saturated to 1.15 format.
|
inlinestatic |
Convolution of the q31 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is len1 + len2 - 1. |
Function notes: Both inputs are in 1.31 format and the 64-bit accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. The input signals should be scaled down to avoid intermediate overflows. Scale down one of the inputs by 1/min(srcALen, srcBLen) to avoid overflows since a maximum of min(srcALen, srcBLen) number of additions is carried internally. The 2.62 accumulator is right shifted by 31 bits and saturated to 1.31 forma t to yield the final result.
|
inlinestatic |
Correlation of the q7 vectors.
| [in] | *src1 | points to the first input vector. |
| [in] | len1 | length of the first input vector. |
| [in] | *src2 | points to the second input vector. |
| [in] | len2 | length of the second input vector. |
| [out] | *dst | points to the output vector where the length is 2 * max(len1, len2) - 1. |
Function notes: Both inputs are in 1.7 format and multiplications yield a 2.14 result. The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. The 18.14 result is then truncated to 18.7 format by discarding the low 7 bits and then saturated to 1.7 format.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Function for the floating-point FIR filter.
| [in] | *instance | points to an instance of the FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
|
inlinestatic |
Function for the q15 FIR filter.
| [in] | *instance | points to an instance of the FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
Function notes: Both coefficients and state variables are represented in Q15 format and multiplications yield a Q30 result. The results are accumulated in a 32-bit accumulator in Q2.30 format. Lastly, the outputs are saturated to yield a result in Q1.15 format.
|
inlinestatic |
Function for the q31 FIR filter.
| [in] | *instance | points to an instance of the FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
Function notes: Both coefficients and state variables are represented in 1.31 format. These intermediate multiplications results are added to a 2.30 accumulator. Finally, the accumulator is saturated and converted to a 1.31 result. In order to avoid overflows completely the input signal must be scaled down by log2(coeff_size) bits.
|
inlinestatic |
Function for the q15 FIR filter.
| [in] | *instance | points to an instance of the FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
Function notes: Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. The 2.30 results are accumulated in a 64-bit accumulator in 34.30 format and the results is truncated to 34.15 format by discarding low 15 bits. Lastly, the outputs is saturated to yield a result in 1.15 format.
|
inlinestatic |
Function for the q31 FIR filter.
| [in] | *instance | points to an instance of the FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
Function notes: Both coefficients and state variables are represented in 1.31 format and multiplications yield a 2.62 result. The 2.62 results are accumulated in a 64-bit accumulator and is right shifted by 31 bits and saturated to 1.31 formatthe to yield the final result. In order to avoid overflows completely the input signal must be scaled down by log2(coeff_size) bits.
|
inlinestatic |
Function for the q7 FIR filter.
| [in] | *instance | points to an instance of the FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
Function notes: Both inputs are in 1.7 format and multiplications yield a 2.14 result. The 2.14 intermediate results are accumulated in a 32-bit accumulator in 18.14 format. The 18.14 result is then converted to 18.7 format by discarding the low 7 bits and then saturated to 1.7 format.
|
inlinestatic |
Function for the floating-point lattice FIR filter.
| [in] | *instance | points to an instance of the lattice FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
|
inlinestatic |
Function for the q15 lattice FIR filter.
| [in] | *instance | points to an instance of the lattice FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
|
inlinestatic |
Function for the q31 lattice FIR filter.
| [in] | *instance | points to an instance of the lattice FIR structure. |
| [in] | *src | points to the input block data. |
| [out] | *dst | points to the output block data. |
| [in] | size | number of the blocksize. |
Function notes: In order to avoid overflows the input signal must be scaled down by 2*log2(stage) bits.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Structure for the floatint-point standard LMS Filters.
Function for the floating-point LMS filter.
| [in] | *instance | points to an instance of the LMS structure. |
| [in] | *src | points to the input block data. |
| [in] | *ref | points to the reference data. |
| [out] | *dst | points to the output data. |
| [out] | *err | points to the error data. |
| [in] | size | number of the blocksize. |
|
inlinestatic |
Function for the q15 LMS filter.
| [in] | *instance | points to an instance of the LMS structure. |
| [in] | *src | points to the input block data. |
| [in] | *ref | points to the reference data. |
| [out] | *dst | points to the output data. |
| [out] | *err | points to the error data. |
| [in] | size | number of the blocksize. |
Function notes: Both coefficients and state variables are represented in 1.15 format and multiplications yield a 2.30 result. The 2.30 results are accumulated in a 64-bit accumulator in 34.30 format and the results is truncated to 34.15 format by discarding low 15 bits. Lastly, the outputs is saturated to yield a result in 1.15 format.
|
inlinestatic |
Function for the q31 LMS filter.
| [in] | *instance | points to an instance of the LMS structure. |
| [in] | *src | points to the input block data. |
| [in] | *ref | points to the reference data. |
| [out] | *dst | points to the output data. |
| [out] | *err | points to the error data. |
| [in] | size | number of the blocksize. |
Function notes: Both coefficients and state variables are represented in 1.31 format and multiplications yield a 2.62 result. The 2.62 results are accumulated in a 64-bit accumulator and is right shifted by 31 bits and saturated to 1.31 formatthe to yield the final result. In order to avoid overflows completely the input signal must be scaled down by log2(coeff_size) bits.
|
inlinestatic |
Structure for the f32 normalized LMS filter.
|
inlinestatic |
|
inlinestatic |
Structure for the q31 normalized LMS filter.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |