dft.cpp

来自「Digital filter designer s handbook C++ c」· C++ 代码 · 共 33 行

CPP
33
字号
#include <stdlib.h> 
#include <math.h>
#include "d_cmplx.h"
#include "xforms.h"	
const double TWO_PI = 6.283185308;

void dft( double_complex *x_in,
          double_complex *y_out,
          int num_samps)
{
 int n, m;
 int k;
 double phi;
 double sum_real, sum_imag;
 
   
 for( m =0; m<num_samps; m++)
   {
    sum_real = 0.0;
    sum_imag = 0.0;
    
    for( n =0; n<num_samps; n++)
      {
       phi = TWO_PI * m * n /num_samps;
       sum_real += (real(x_in[n]) * cos(phi) - imag(x_in[k]) * sin(phi));
       sum_imag += (imag(x_in[n]) * cos(phi) + real(x_in[k]) * sin(phi)); 
      }     
    y_out[m] = double_complex(sum_real, sum_imag);
   } 
 return;
}

⌨️ 快捷键说明

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