·上一文章:IP电话回声消除器的设计及其DSP实现
·下一文章:G.723.1编译码算法的DSP实现
VC下使用复数示例(建议使用“用法一”)
用法一
#include <math.h>
#include <complex>
using namesPACe std;
typedef complex<double> Complex;
int main(int argc, char* argv[])
{
Complex a,b,c;
a = Complex::complex(1.,.2); //赋初值
printf("%f,%fn",real(a),imag(a)); //real()取实部,imag()取虚部
b = Complex::complex(1.,.2); //赋初值
c = Complex::complex(1.,.2); //赋初值
a = b + c;
printf("%f,%fn",real(a),imag(a));
double k=2.0; //数乘的时候数的类型一定要和复数中
实部和虚部的类型相同,此处为double
a = k * a; //所有需要和复数运算的实数都要定义为和实部虚部类型相同
printf("%f,%fn",real(a),imag(a));
return 0;
}
******************************************************************
用法二
#include <math.h>
#include <complex>
int main(int argc, char* argv[])
{
std::complex<double> x,y,z;
x = std::complex<double> (1.,.02);
printf("x = %f,j%fn",std::real(x),std::imag(x));
y = std::complex<double> (1.,.02);
z = std::complex<double> (1.,.02);
x = y * z;
printf("x = %f,j%fn",std::real(x),std::imag(x));
return 0;
}
******************************************************************
用法三
#include <math.h>
int main(int argc, char* argv[])
{
_complex c_val1,c_val2,c_val3;
c_val1.x = 1.;
c_val1.y = .2;
c_val2.x = 1.;
c_val2.y = .2;
c_val3.x = c_val1.x + c_val2.x;
c_val3.y = c_val1.y + c_val2.y;
printf("sum = %f,j%fn",c_val3.x,c_val3.y);
return 0;
}