1.4.2.5 DSP_ComplexMult32 Function

Multiplies two complex numbers.

Description

void DSP_ComplexMult32(int32c *indata1, int32c *indata2, int32c *Output);

Multiplies two complex numbers, indata1 and indata2, and stores the complex result in Output. All numbers must be in the int32c complex data structure. All data is in Q31 fractional format. The function will saturate if maximum or minimum values are exceeded. Output(real) = (Input1.re * Input2.re) - (Input1.im * Input2.im); Output(img) = i (a + bi) x (c + di) => (a * c - b * d) + (a * d + b * c)i

Preconditions

Complex numbers must be in the int32c format.

Parameters

indata1 pointer to input complex number (int32c)

indata2 pointer to input complex number (int32c)

Returns

pointer to result complex numbers (int32c)

Remarks

None.

Example

int32c *res, result;

int32c *input1, *input2;

int32c test_complex_1 = {0x40000000,0x0CCCCCCC};

_// (0.5 + 0.1i)_

int32c test_complex_2 = {0x73333333,0xB3333334};

_// (0.9 - 0.6i)_

res=&result;

input1=&test_complex_1;

input2=&test_complex_2;

DSP_ComplexMult32(input1, input2, res);

_// result = {0x4147AE14, 0xE51EB8551} = (0.51 - 0.21i)_

C

void  DSP_ComplexMult32 (int32c * indata1 , int32c * indata2 , int32c * Output );