dft2.cpp
来自「Digital filter designer s handbook C++ c」· C++ 代码 · 共 44 行
CPP
44 行
#include <stdlib.h>
#include <math.h>
#include "d_cmplx.h"
#include "xforms.h"
const double TWO_PI = 6.283185308;
void dft2( double_complex *x_in,
double_complex *y_out,
int num_samps)
{
int n, m;
int k;
double *cos_val, *sin_val;
double w_factor;
double sum_real, sum_imag;
cos_val = new double[num_samps];
sin_val = new double[num_samps];
w_factor = TWO_PI/num_samps;
for( k=0; k<num_samps; k++)
{
cos_val[k] = (double)cos(w_factor * k);
sin_val[k] = (double)sin(w_factor * k);
}
for( m =0; m<num_samps; m++)
{
sum_real = 0.0;
sum_imag = 0.0;
for( n =0; n<num_samps; n++)
{
k = (m*n) % num_samps;
sum_real += (real(x_in[n]) * cos_val[k] + imag(x_in[n]) * sin_val[k]);
sum_imag += (imag(x_in[n]) * cos_val[k] - real(x_in[n]) * sin_val[k]);
}
y_out[m] = double_complex(sum_real, sum_imag);
}
delete [] cos_val;
delete [] sin_val;
return;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?