oldexamplecode
Dependencies: mbed
complexmath.cpp
- Committer:
- rik
- Date:
- 2017-03-24
- Revision:
- 0:6863633bf8a4
File content as of revision 0:6863633bf8a4:
#include "complexmath.h" // Complex adition and multiplication complex_num complex_add(complex_num A, complex_num B){ A.imaginary += B.imaginary; A.real += B.real; return A; } complex_num complex_multiply(complex_num A, complex_num B){ complex_num C; C.real = A.real*B.real - A.imaginary*B.imaginary; C.imaginary = A.imaginary*B.real + A.real*B.imaginary; return C; } // Retrieve the phase and magnitude of a complex number (polar form) float complex_phase(complex_num A){ return(lut_cos(A.imaginary)/lut_sin(A.real)); } float complex_magnitude(complex_num A){ return sqrt(A.real*A.real + A.imaginary*A.imaginary); } // Transform polar form to a complex number complex_num complex_transform(float phase, float magnitude){ complex_num A; A.real = magnitude*lut_cos(phase); A.imaginary = magnitude*lut_sin(phase); return A; } // Complex conjugate complex_num complex_conjugate(complex_num A){ A.imaginary = -A.imaginary; return A; }