Atmel Software Framework

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DSPLIB - Operators

All the fixed point operators functions currently implemented in the DSP library.

Multiplication

These functions multiply two fixed-point numbers.

Relative functions:


Division

These functions divide two fixed-point numbers. Relative functions:


Sine

These functions compute the sine of the argument 'angle'.

Note
Angle is scaled to fit in the range [-1; 1], where -1 corresponds to -pi and 1 to pi.

Relative functions:


Cosine

These functions compute the cosine of the argument 'angle'. Angles are scale to fit in the range [-1; 1], where -1 corresponds to -pi and 1 to pi. Relative functions:


Arc sine

These functions compute the arc sine of the argument.

Note
The output is scaled to fit in the range [-0.5; 0.5], where -0.5 corresponds to -pi/2 and 0.5 to pi/2.

Relative functions:


Arc cosine

These functions compute the arc cosine of the argument.

Note
The output is scaled to fit in the range [0.; 1.], where 0. corresponds to 0. and 1. to pi.

Relative functions:


Absolute

These functions compute the absolute value of the argument. Relative functions:


Square root

These functions compute the square root of the argument. Relative functions:


Natural logarithm

These functions compute the natural logarithm of the argument. Relative functions:

Note
The output will be limit in the range of the fixed point format used.

Binary logarithm or base 2 logarithm

These functions compute the binary logarithm of the argument.

Note
The output will be limit in the range of the fixed point format used.

Relative functions:


Common logarithm or base 10 logarithm

These functions compute the common logarithm of the argument.

Note
The output will be limit in the range of the fixed point format used.

Relative functions:


Exponential

These functions compute the exponential of the argument.

Note
The output will be limit in the range of the fixed point format used.

Relative functions:


Power

These functions compute x^y.

Note
The output will be limit in the range of the fixed point format used.

Relative functions:


Random

These functions generate a pseudo-radomized number Relative functions:


Functions

static dsp16_t dsp16_op_abs (dsp16_t number)
 16-bit fixed point version of the absolute function. More...
 
static dsp16_t dsp16_op_acos (dsp16_t number)
 16-bit fixed point version of the arc cosine function. More...
 
dsp16_t dsp16_op_asin (dsp16_t number)
 16-bit fixed point version of the arc sine function. More...
 
static dsp16_t dsp16_op_cos (dsp16_t angle)
 16-bit fixed point version of the cosine function. More...
 
static dsp16_t dsp16_op_div (dsp16_t num, dsp16_t den)
 16-bit fixed point version of the division function. More...
 
dsp16_t dsp16_op_exp (dsp16_t number)
 16-bit fixed point version of the exponential function. More...
 
dsp16_t dsp16_op_ln (dsp16_t number)
 16-bit fixed point version of the natural logarithm function. More...
 
dsp16_t dsp16_op_log10 (dsp16_t number)
 16-bit fixed point version of the common logarithm function. More...
 
dsp16_t dsp16_op_log2 (dsp16_t number)
 16-bit fixed point version of the binary logarithm function. More...
 
static dsp16_t dsp16_op_mul (dsp16_t num1, dsp16_t num2)
 16-bit fixed point version of the multiplication function. More...
 
dsp16_t dsp16_op_pow (dsp16_t x, dsp16_t y)
 16-bit fixed point version of the power function. More...
 
dsp16_t dsp16_op_rand (void)
 16-bit fixed point version of the random operator. More...
 
dsp16_t dsp16_op_sin (dsp16_t angle)
 16-bit fixed point version of the sine function. More...
 
dsp16_t dsp16_op_sqrt (dsp16_t number)
 16-bit fixed point version of the square root function. More...
 
static dsp32_t dsp32_op_abs (dsp32_t number)
 32-bit fixed point version of the absolute function. More...
 
static dsp32_t dsp32_op_acos (dsp32_t number)
 32-bit fixed point version of the arc cosine function. More...
 
dsp32_t dsp32_op_asin (dsp32_t number)
 32-bit fixed point version of the arc sine function. More...
 
static dsp32_t dsp32_op_cos (dsp32_t angle)
 32-bit fixed point version of the cosine function. More...
 
static dsp32_t dsp32_op_div (dsp32_t num, dsp32_t den)
 32-bit fixed point version of the division function. More...
 
dsp32_t dsp32_op_exp (dsp32_t number)
 32-bit fixed point version of the exponential function. More...
 
dsp32_t dsp32_op_ln (dsp32_t number)
 32-bit fixed point version of the natural logarithm function. More...
 
dsp32_t dsp32_op_log10 (dsp32_t number)
 32-bit fixed point version of the common logarithm function. More...
 
dsp32_t dsp32_op_log2 (dsp32_t number)
 32-bit fixed point version of the binary logarithm function. More...
 
static dsp32_t dsp32_op_mul (dsp32_t num1, dsp32_t num2)
 32-bit fixed point version of the multiplication function. More...
 
dsp32_t dsp32_op_pow (dsp32_t x, dsp32_t y)
 32-bit fixed point version of the power function. More...
 
dsp32_t dsp32_op_rand (void)
 32-bit fixed point version of the random operator. More...
 
dsp32_t dsp32_op_sin (dsp32_t angle)
 32-bit fixed point version of the sine function. More...
 
dsp32_t dsp32_op_sqrt (dsp32_t number)
 32-bit fixed point version of the square root function. More...
 
void dsp_op_srand (int new_seed)
 Initialize the pseudo-random number generator. More...
 

static dsp16_t dsp16_op_abs ( dsp16_t  number)
inlinestatic

16-bit fixed point version of the absolute function.

Parameters
numberThe number to compute
Returns
The absolute value of the number.

Referenced by dsp16_op_asin(), dsp16_op_exp(), dsp16_op_pow(), dsp16_resampling_setup(), dsp16_win_gauss(), and main().

static dsp16_t dsp16_op_acos ( dsp16_t  number)
inlinestatic

16-bit fixed point version of the arc cosine function.

Parameters
numberThe number to compute
Returns
The arc cosine of 'number' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the 'number', the function will limit the output to the range [0.; 1.].

References dsp16_op_asin(), and DSP16_Q.

Referenced by main().

dsp16_t dsp16_op_asin ( dsp16_t  number)

16-bit fixed point version of the arc sine function.

Parameters
numberThe number to compute
Returns
The arc sine of 'number' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the 'number', the function will limit the output to the range [-0.5; 0.5].

References A, B, C, D, dsp16_op_abs(), dsp16_op_asin(), dsp16_op_sqrt(), DSP16_Q, DSP16_QB, and num.

Referenced by dsp16_op_acos(), dsp16_op_asin(), and main().

static dsp16_t dsp16_op_cos ( dsp16_t  angle)
inlinestatic

16-bit fixed point version of the cosine function.

Parameters
angleThe angle to compute
Returns
The cosine of 'angle' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the angle, the function will take the modulo 1 of this angle.

References dsp16_op_sin(), and DSP16_Q.

Referenced by dsp16_filt_lpfirdesign_windowed_sinc(), dsp16_gen_cos(), dsp16_win_black(), dsp16_win_hamm(), dsp16_win_hann(), and main().

static dsp16_t dsp16_op_div ( dsp16_t  num,
dsp16_t  den 
)
inlinestatic

16-bit fixed point version of the division function.

Parameters
numThe numerator of the division.
denThe denominator of the division.
Returns
The result of the division.

References den, and DSP16_QB.

dsp16_t dsp16_op_exp ( dsp16_t  number)

16-bit fixed point version of the exponential function.

Parameters
numberThe number to compute
Returns
The exponential of 'number' is returned.

References A, B, C, CST_INV_SQUARE_ROOT_2, CST_LN_2, CST_SQUARE_ROOT_2, DSP16_EXP_LIMIT_VAL, dsp16_op_abs(), DSP16_Q, DSP16_QA, DSP16_QB, DSP_Q, DSP_Q_MAX, and x.

Referenced by dsp16_op_kaiser_i0(), dsp16_op_pow(), dsp16_win_gauss(), and main().

dsp16_t dsp16_op_ln ( dsp16_t  number)

16-bit fixed point version of the natural logarithm function.

Parameters
numberThe number to compute
Returns
The natural logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP16_QA, DSP16_QB).

References dsp16_op_ln_raw(), DSP16_QA, DSP16_QB, DSP_Q_MIN, and num.

Referenced by main().

dsp16_t dsp16_op_log10 ( dsp16_t  number)

16-bit fixed point version of the common logarithm function.

Parameters
numberThe number to compute
Returns
The common logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP16_QA, DSP16_QB).

References CST_LN_10, dsp16_op_ln_raw(), DSP16_QA, DSP16_QB, DSP_Q, DSP_Q_MIN, and num.

Referenced by main().

dsp16_t dsp16_op_log2 ( dsp16_t  number)

16-bit fixed point version of the binary logarithm function.

Parameters
numberThe number to compute
Returns
The binary logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP16_QA, DSP16_QB).

References CST_LN_2, dsp16_op_ln_raw(), DSP16_QA, DSP16_QB, DSP_Q, DSP_Q_MIN, and num.

Referenced by main().

static dsp16_t dsp16_op_mul ( dsp16_t  num1,
dsp16_t  num2 
)
inlinestatic

16-bit fixed point version of the multiplication function.

Parameters
num1The first member of the multiplication.
num2The second member of the multiplication.
Returns
The result of the multiplication.

References DSP16_QB.

Referenced by dsp16_filt_lpfirdesign(), dsp16_filt_lpfirdesign_windowed_sinc(), dsp16_win_bart(), dsp16_win_black(), dsp16_win_gauss(), dsp16_win_hamm(), dsp16_win_hann(), dsp16_win_kaiser(), and dsp16_win_welch().

dsp16_t dsp16_op_pow ( dsp16_t  x,
dsp16_t  y 
)

16-bit fixed point version of the power function.

Parameters
xThe number from which the power has to be applied.
yThe power.
Returns
The x power y is returned.
DSP_Q_MIN if the argument x is negative: this would result in a complex number.

References CST_LN_2, dsp16_op_abs(), dsp16_op_exp(), dsp16_op_ln_raw(), DSP16_Q, DSP16_QA, DSP16_QB, DSP_Q, DSP_Q_MAX, DSP_Q_MIN, num, and temp.

Referenced by main().

dsp16_t dsp16_op_rand ( void  )

16-bit fixed point version of the random operator.

Returns
The cosine of 'angle' is returned.
Note
The number generated can be any 16-bit value in the range [-1; 1[.

References DSP16_QA, and seed.

Referenced by dsp16_gen_noise(), and main().

dsp16_t dsp16_op_sin ( dsp16_t  angle)

16-bit fixed point version of the sine function.

Parameters
angleThe angle to compute
Returns
The sine of 'angle' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the angle, the function will take the modulo 1 of this angle.

References DSP16_MODULO_1_MASK, dsp16_op_kernel_cosfix(), dsp16_op_kernel_sinfix(), DSP16_Q, DSP16_QB, and n.

Referenced by dsp16_filt_lpfirdesign_windowed_sinc(), dsp16_gen_sin(), dsp16_op_cos(), and main().

dsp16_t dsp16_op_sqrt ( dsp16_t  number)

16-bit fixed point version of the square root function.

Parameters
numberThe number to compute
Returns
The square root of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return 0.

References a(), CST_INV_SQUARE_ROOT_2, DSP16_Q, DSP16_QB, DSP16_SQRT_NEWTON_ITERATION, MREPEAT(), num, and x.

Referenced by dsp16_op_asin(), dsp16_op_kaiser_i0(), and main().

static dsp32_t dsp32_op_abs ( dsp32_t  number)
inlinestatic

32-bit fixed point version of the absolute function.

Parameters
numberThe number to compute
Returns
The absolute value of the number.

Referenced by dsp32_op_asin(), dsp32_op_exp(), dsp32_op_pow(), dsp32_win_gauss(), and main().

static dsp32_t dsp32_op_acos ( dsp32_t  number)
inlinestatic

32-bit fixed point version of the arc cosine function.

Parameters
numberThe number to compute
Returns
The arc cosine of 'number' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the 'number', the function will limit the output to the range [0.; 1.].

References dsp32_op_asin(), and DSP32_Q.

Referenced by main().

dsp32_t dsp32_op_asin ( dsp32_t  number)

32-bit fixed point version of the arc sine function.

Parameters
numberThe number to compute
Returns
The arc sine of 'number' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the 'number', the function will limit the output to the range [-0.5; 0.5].

References A, B, C, D, dsp32_op_abs(), dsp32_op_asin(), dsp32_op_sqrt(), DSP32_Q, DSP32_QB, E, F, and num.

Referenced by dsp32_op_acos(), dsp32_op_asin(), and main().

static dsp32_t dsp32_op_cos ( dsp32_t  angle)
inlinestatic

32-bit fixed point version of the cosine function.

Parameters
angleThe angle to compute
Returns
The cosine of 'angle' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the angle, the function will take the modulo 1 of this angle.

References dsp32_op_sin(), and DSP32_Q.

Referenced by dsp32_gen_cos(), dsp32_win_black(), dsp32_win_hamm(), dsp32_win_hann(), and main().

static dsp32_t dsp32_op_div ( dsp32_t  num,
dsp32_t  den 
)
inlinestatic

32-bit fixed point version of the division function.

Parameters
numThe numerator of the division.
denThe denominator of the division.
Returns
The result of the division.

References den, and DSP32_QB.

dsp32_t dsp32_op_exp ( dsp32_t  number)

32-bit fixed point version of the exponential function.

Parameters
numberThe number to compute
Returns
The exponential of 'number' is returned.

References A, B, C, CST_INV_SQUARE_ROOT_2, CST_LN_2, CST_SQUARE_ROOT_2, D, DSP32_EXP_LIMIT_VAL, dsp32_op_abs(), DSP32_Q, DSP32_QA, DSP32_QB, DSP_Q_MAX, E, and x.

Referenced by dsp32_op_kaiser_i0(), dsp32_op_pow(), dsp32_win_gauss(), and main().

dsp32_t dsp32_op_ln ( dsp32_t  number)

32-bit fixed point version of the natural logarithm function.

Parameters
numberThe number to compute
Returns
The natural logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP32_QA, DSP32_QB).

References dsp32_op_ln_raw(), DSP32_QA, DSP32_QB, DSP_Q_MIN, and num.

Referenced by main().

dsp32_t dsp32_op_log10 ( dsp32_t  number)

32-bit fixed point version of the common logarithm function.

Parameters
numberThe number to compute
Returns
The common logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP32_QA, DSP32_QB).

References CST_LN_10, dsp32_op_ln_raw(), DSP32_QA, DSP32_QB, DSP_Q_MIN, and num.

Referenced by main().

dsp32_t dsp32_op_log2 ( dsp32_t  number)

32-bit fixed point version of the binary logarithm function.

Parameters
numberThe number to compute
Returns
The binary logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP32_QA, DSP32_QB).

References CST_LN_2, dsp32_op_ln_raw(), DSP32_QA, DSP32_QB, DSP_Q_MIN, and num.

Referenced by main().

static dsp32_t dsp32_op_mul ( dsp32_t  num1,
dsp32_t  num2 
)
inlinestatic

32-bit fixed point version of the multiplication function.

Parameters
num1The first member of the multiplication.
num2The second member of the multiplication.
Returns
The result of the multiplication.

References DSP32_QB.

Referenced by dsp32_win_bart(), dsp32_win_black(), dsp32_win_gauss(), dsp32_win_hamm(), dsp32_win_hann(), dsp32_win_kaiser(), and dsp32_win_welch().

dsp32_t dsp32_op_pow ( dsp32_t  x,
dsp32_t  y 
)

32-bit fixed point version of the power function.

Parameters
xThe number from which the power has to be applied.
yThe power.
Returns
The x power y is returned.
DSP_Q_MIN if the argument x is negative: this would result in a complex number.

References CST_LN_2, dsp32_op_abs(), dsp32_op_exp(), dsp32_op_ln_raw(), DSP32_Q, DSP32_QA, DSP32_QB, DSP_Q_MAX, DSP_Q_MIN, num, and temp.

Referenced by main().

dsp32_t dsp32_op_rand ( void  )

32-bit fixed point version of the random operator.

Returns
The cosine of 'angle' is returned.
Note
The number generated can be any 32-bit value in the range [-1; 1[.

References DSP16_QA, DSP32_QA, and seed.

Referenced by dsp32_gen_noise(), and main().

dsp32_t dsp32_op_sin ( dsp32_t  angle)

32-bit fixed point version of the sine function.

Parameters
angleThe angle to compute
Returns
The sine of 'angle' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the angle, the function will take the modulo 1 of this angle.

References DSP32_MODULO_1_MASK, dsp32_op_kernel_cosfix(), dsp32_op_kernel_sinfix(), DSP32_Q, DSP32_QB, and n.

Referenced by dsp16_filt_lpfirdesign(), dsp32_gen_sin(), dsp32_op_cos(), and main().

dsp32_t dsp32_op_sqrt ( dsp32_t  number)

32-bit fixed point version of the square root function.

Parameters
numberThe number to compute
Returns
The square root of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return 0.

References a(), CST_INV_SQUARE_ROOT_2, DSP32_Q, DSP32_QB, DSP32_SQRT_NEWTON_ITERATION, MREPEAT(), num, and x.

Referenced by dsp16_win_kaiser(), dsp32_op_asin(), dsp32_op_kaiser_i0(), dsp32_win_kaiser(), and main().

void dsp_op_srand ( int  new_seed)

Initialize the pseudo-random number generator.

Parameters
new_seedAn integer value to be used as seed by the pseudo-random number generator algorithm.

References seed.

Referenced by main().