HPM SDK
HPMicro Software Development Kit
DSP Filtering Functions

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)
 

Detailed Description

Function Documentation

◆ hpm_dsp_bq_df1_32x64_q31()

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 
)
inlinestatic

◆ hpm_dsp_bq_df1_f32()

static void hpm_dsp_bq_df1_f32 ( const riscv_dsp_bq_df1_f32_t *  instance,
float32_t *  src,
float32_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_bq_df1_fast_q15()

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 
)
inlinestatic

◆ hpm_dsp_bq_df1_fast_q31()

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 
)
inlinestatic

◆ hpm_dsp_bq_df1_q15()

static void hpm_dsp_bq_df1_q15 ( const riscv_dsp_bq_df1_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_bq_df1_q31()

static void hpm_dsp_bq_df1_q31 ( const riscv_dsp_bq_df1_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_bq_df2T_f32()

static void hpm_dsp_bq_df2T_f32 ( const riscv_dsp_bq_df2T_f32_t *  instance,
float32_t *  src,
float32_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_bq_df2T_f64()

static void hpm_dsp_bq_df2T_f64 ( const riscv_dsp_bq_df2T_f64_t *  instance,
float64_t *  src,
float64_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_bq_stereo_df2T_f32()

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 
)
inlinestatic

◆ hpm_dsp_conv_f32()

static void hpm_dsp_conv_f32 ( float32_t *  src1,
uint32_t  len1,
float32_t *  src2,
uint32_t  len2,
float32_t *  dst 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution of the floating-point vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints to the output vector where the length is len1 + len2 - 1.

◆ hpm_dsp_conv_partial_f32()

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 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution Partial of the floating-point vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints to the output vector where the length is len1 + len2 - 1.
[in]startindexis the first output sample to start with.
[in]sizeis the number of output points to be computed.
Returns
Returns 0; success -1; fail, the input subset are not between 0 and len1+len2-2.

◆ hpm_dsp_conv_partial_q15()

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 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution Partial of the q15 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints to the output vector where the length is len1 + len2 - 1.
[in]startindexis the first output sample to start with.
[in]sizeis the number of output points to be computed.
Returns
Returns 0; success -1; fail, the input subset are not between 0 and len1+len2-2.

◆ hpm_dsp_conv_partial_q31()

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 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution Partial of the q31 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints to the output vector where the length is len1 + len2 - 1.
[in]startindexis the first output sample to start with.
[in]sizeis the number of output points to be computed.
Returns
Returns 0; success -1; fail, the input subset are not between 0 and len1+len2-2.

◆ hpm_dsp_conv_partial_q7()

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 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution Partial of the q7 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints to the output vector where the length is len1 + len2 - 1.
[in]startindexis the first output sample to start with.
[in]sizeis the number of output points to be computed.
Returns
Returns 0; success -1; fail, the input subset are not between 0 and len1+len2-2.

◆ hpm_dsp_conv_q15()

static void hpm_dsp_conv_q15 ( q15_t *  src1,
uint32_t  len1,
q15_t *  src2,
uint32_t  len2,
q15_t *  dst 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution of the q15 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints 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.

◆ hpm_dsp_conv_q31()

static void hpm_dsp_conv_q31 ( q31_t *  src1,
uint32_t  len1,
q31_t *  src2,
uint32_t  len2,
q31_t *  dst 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution of the q31 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints 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.

◆ hpm_dsp_conv_q7()

static void hpm_dsp_conv_q7 ( q7_t *  src1,
uint32_t  len1,
q7_t *  src2,
uint32_t  len2,
q7_t *  dst 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution of the q7 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints 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.

◆ hpm_dsp_corr_f32()

static void hpm_dsp_corr_f32 ( float32_t *  src1,
uint32_t  len1,
float32_t *  src2,
uint32_t  len2,
float32_t *  dst 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Correlation of the floating-point vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints to the output vector where the length is 2 * max(len1, len2) - 1.

◆ hpm_dsp_corr_q15()

static void hpm_dsp_corr_q15 ( q15_t *  src1,
uint32_t  len1,
q15_t *  src2,
uint32_t  len2,
q15_t *  dst 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Correlation of the q15 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints 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.

◆ hpm_dsp_corr_q31()

static void hpm_dsp_corr_q31 ( q31_t *  src1,
uint32_t  len1,
q31_t *  src2,
uint32_t  len2,
q31_t *  dst 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Convolution of the q31 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints 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.

◆ hpm_dsp_corr_q7()

static void hpm_dsp_corr_q7 ( q7_t *  src1,
uint32_t  len1,
q7_t *  src2,
uint32_t  len2,
q7_t *  dst 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Correlation of the q7 vectors.

Parameters
[in]*src1points to the first input vector.
[in]len1length of the first input vector.
[in]*src2points to the second input vector.
[in]len2length of the second input vector.
[out]*dstpoints 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.

◆ hpm_dsp_dcmfir_f32()

static void hpm_dsp_dcmfir_f32 ( const riscv_dsp_dcmfir_f32_t *  instance,
float32_t *  src,
float32_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_dcmfir_fast_q15()

static void hpm_dsp_dcmfir_fast_q15 ( const riscv_dsp_dcmfir_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_dcmfir_fast_q31()

static void hpm_dsp_dcmfir_fast_q31 ( const riscv_dsp_dcmfir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_dcmfir_q15()

static void hpm_dsp_dcmfir_q15 ( const riscv_dsp_dcmfir_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_dcmfir_q31()

static void hpm_dsp_dcmfir_q31 ( const riscv_dsp_dcmfir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_fir_f32()

static void hpm_dsp_fir_f32 ( const riscv_dsp_fir_f32_t *  instance,
float32_t *  src,
float32_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the floating-point FIR filter.

Parameters
[in]*instancepoints to an instance of the FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber of the blocksize.

◆ hpm_dsp_fir_fast_q15()

static void hpm_dsp_fir_fast_q15 ( const riscv_dsp_fir_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q15 FIR filter.

Parameters
[in]*instancepoints to an instance of the FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber 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.

◆ hpm_dsp_fir_fast_q31()

static void hpm_dsp_fir_fast_q31 ( const riscv_dsp_fir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q31 FIR filter.

Parameters
[in]*instancepoints to an instance of the FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber 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.

◆ hpm_dsp_fir_q15()

static void hpm_dsp_fir_q15 ( const riscv_dsp_fir_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q15 FIR filter.

Parameters
[in]*instancepoints to an instance of the FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber 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.

◆ hpm_dsp_fir_q31()

static void hpm_dsp_fir_q31 ( const riscv_dsp_fir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q31 FIR filter.

Parameters
[in]*instancepoints to an instance of the FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber 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.

◆ hpm_dsp_fir_q7()

static void hpm_dsp_fir_q7 ( const riscv_dsp_fir_q7_t *  instance,
q7_t *  src,
q7_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q7 FIR filter.

Parameters
[in]*instancepoints to an instance of the FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber 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.

◆ hpm_dsp_lfir_f32()

static void hpm_dsp_lfir_f32 ( const riscv_dsp_lfir_f32_t *  instance,
float32_t *  src,
float32_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the floating-point lattice FIR filter.

Parameters
[in]*instancepoints to an instance of the lattice FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber of the blocksize.

◆ hpm_dsp_lfir_q15()

static void hpm_dsp_lfir_q15 ( const riscv_dsp_lfir_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q15 lattice FIR filter.

Parameters
[in]*instancepoints to an instance of the lattice FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber of the blocksize.

◆ hpm_dsp_lfir_q31()

static void hpm_dsp_lfir_q31 ( const riscv_dsp_lfir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q31 lattice FIR filter.

Parameters
[in]*instancepoints to an instance of the lattice FIR structure.
[in]*srcpoints to the input block data.
[out]*dstpoints to the output block data.
[in]sizenumber of the blocksize.

Function notes: In order to avoid overflows the input signal must be scaled down by 2*log2(stage) bits.

◆ hpm_dsp_liir_f32()

static void hpm_dsp_liir_f32 ( const riscv_dsp_liir_f32_t *  instance,
float32_t *  src,
float32_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_liir_fast_q15()

static void hpm_dsp_liir_fast_q15 ( const riscv_dsp_liir_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_liir_fast_q31()

static void hpm_dsp_liir_fast_q31 ( const riscv_dsp_liir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_liir_q15()

static void hpm_dsp_liir_q15 ( const riscv_dsp_liir_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_liir_q31()

static void hpm_dsp_liir_q31 ( const riscv_dsp_liir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_lms_f32()

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 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Structure for the floatint-point standard LMS Filters.

Function for the floating-point LMS filter.

Parameters
[in]*instancepoints to an instance of the LMS structure.
[in]*srcpoints to the input block data.
[in]*refpoints to the reference data.
[out]*dstpoints to the output data.
[out]*errpoints to the error data.
[in]sizenumber of the blocksize.

◆ hpm_dsp_lms_q15()

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 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q15 LMS filter.

Parameters
[in]*instancepoints to an instance of the LMS structure.
[in]*srcpoints to the input block data.
[in]*refpoints to the reference data.
[out]*dstpoints to the output data.
[out]*errpoints to the error data.
[in]sizenumber 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.

◆ hpm_dsp_lms_q31()

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 
)
inlinestatic

#include </home/docs/checkouts/readthedocs.org/user_builds/hpm-sdk/checkouts/latest/middleware/hpm_math/hpm_math.h>

Function for the q31 LMS filter.

Parameters
[in]*instancepoints to an instance of the LMS structure.
[in]*srcpoints to the input block data.
[in]*refpoints to the reference data.
[out]*dstpoints to the output data.
[out]*errpoints to the error data.
[in]sizenumber 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.

◆ hpm_dsp_nlms_f32()

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 
)
inlinestatic

◆ hpm_dsp_nlms_q15()

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 
)
inlinestatic

◆ hpm_dsp_nlms_q31()

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 
)
inlinestatic

◆ hpm_dsp_spafir_f32()

static void hpm_dsp_spafir_f32 ( riscv_dsp_spafir_f32_t *  instance,
float32_t *  src,
float32_t *  dst,
float32_t *  buf,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_spafir_q15()

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 
)
inlinestatic

◆ hpm_dsp_spafir_q31()

static void hpm_dsp_spafir_q31 ( riscv_dsp_spafir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
q31_t *  buf,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_spafir_q7()

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 
)
inlinestatic

◆ hpm_dsp_upsplfir_f32()

static void hpm_dsp_upsplfir_f32 ( const riscv_dsp_upsplfir_f32_t *  instance,
float32_t *  src,
float32_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_upsplfir_q15()

static void hpm_dsp_upsplfir_q15 ( const riscv_dsp_upsplfir_q15_t *  instance,
q15_t *  src,
q15_t *  dst,
uint32_t  size 
)
inlinestatic

◆ hpm_dsp_upsplfir_q31()

static void hpm_dsp_upsplfir_q31 ( const riscv_dsp_upsplfir_q31_t *  instance,
q31_t *  src,
q31_t *  dst,
uint32_t  size 
)
inlinestatic