⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 complex_c.mht

📁 常用的DSP算法集锦
💻 MHT
字号:
From: <由 Microsoft Internet Explorer 5 保存>
Subject: 
Date: Wed, 27 Sep 2006 22:45:41 +0800
MIME-Version: 1.0
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.oxbad.com/DSP/maindoc/arithmetic_source/c/COMPLEX.C
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<META content=3D"MSHTML 6.00.2900.2963" name=3DGENERATOR></HEAD>
<BODY><PRE>/* complex.c - complex arithmetic functions */

#include &lt;math.h&gt;                         /* for MSC and TC/BC, it =
declares: */
                                          /* \ttt{struct complex} and =
\ttt{cabs()} */
/* struct complex {double x, y;}; */      /* uncomment if not MSC or =
TC/BC */

                                          /* uncomment if not MS or =
TC/BC */
/*  double cabs(z)
 *  complex z;
 *  {
 *      return sqrt(z.x * z.x + z.y * z.y);
 *  }
*/


typedef struct complex complex;

complex cmplx(x, y)                              /* z =3D cmplx(x,y) =3D =
x+jy */
double x, y;
{
       complex z;

       z.x =3D x;  z.y =3D y;

       return z;
}

complex conjg(z)                                 /* complex conjugate of =
z=3Dx+jy */
complex z;
{
       return cmplx(z.x, -z.y);                  /* returns z* =3D x-jy =
*/
}

complex cadd(a, b)                               /* complex addition */
complex a, b;
{
       return cmplx(a.x + b.x, a.y + b.y);
}

complex csub(a, b)                               /* complex subtraction =
*/
complex a, b;
{
       return cmplx(a.x - b.x, a.y - b.y);
}

complex cmul(a, b)                               /* complex =
multiplication */
complex a, b;
{
       return cmplx(a.x * b.x - a.y * b.y, a.x * b.y + a.y * b.x);
}

complex rmul(a, z)                               /* multiplication by =
real */
double a;
complex z;
{
       return cmplx(a * z.x, a * z.y);
}

complex cdiv(a, b)                               /* complex division */
complex a, b;
{
   double D =3D b.x * b.x + b.y * b.y;

   return cmplx((a.x * b.x + a.y * b.y) / D, (a.y * b.x - a.x * b.y) / =
D);
}

complex rdiv(z, a)                               /* division by real */
complex z;
double a;
{
       return cmplx(z.x / a, z.y / a);
}

double real(z)                                   /* real part Re(z) */
complex z;
{
       return z.x;
}

double aimag(z)                                  /* imaginary part Im(z) =
*/
complex z;
{
       return z.y;
}

complex cexp(z)                                  /* complex exponential =
*/
complex z;
{
       double R =3D exp(z.x);

       return cmplx(R * cos(z.y), R * sin(z.y));
}
</PRE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -