我正在尝试让FFTW在C中工作,它曾经在另一个项目中工作(在JNI中),我或多或少地复制了那个项目的代码,遗憾的是没有结果。
首先,我生成一个正弦信号,如下所示:
double* generateSignal() {
int fs=44100;
double fsd = 44100.0; // fs in double format
double f1=1000.0;
int i;
double PI = 3.141592653589793238462643;
double t[fs];
double value = 0.0;
在我的项目中,我有一些自定义类,其结构大致如下。
点,它表示二维int坐标。
struct Point {
int x;
int y;
}
线,表示两点之间画的一条线。
class Line {
Point start;
Point end;
}
多边形,它表示由点数定义的多边形。
class Polygon {
private:
std::vector<Point> _vertices;
}
我正在尝试为Polygon实现一个自定义迭代器,目标是一个语法,类似于:
Polygon aPolygon;
Point somePoint;
for(
我是一个EE,不是一个代码专家,所以请容忍我在这里。
我正在使用Embarcadero C++ Builder (XE3)。
我有一个FFT算法,它对复数进行相当数量的运算。我发现,如果我绕过Embarcadero的复杂数学库,用我自己的代码进行所有的计算,我的FFT运行速度将快4.5倍。这里显示的4个操作都需要大量的时间。
#include <dinkumware\complex>
#define ComplexD std::complex<double>
ComplexD X, Y, Z, FFTInput[1024];
double x, y;
Z = X * Y