dft.c
#include <stdio.h>
#include <math.h>
int main()
{
int N=4;
double xr[N], xi[N], yr[N], yi[N], f;
int n, k;
for(n=0; n<N; n++){
xr[n]=0.0;
xi[n]=0.0;
}
xi[0]=N;
for(k=0; k<N; k++){
yr[k]=yi[k]=0.0;
for(n=0; n<N; n++){
f=2*M_PI/N*n*k;
yr[k] += xr[n]*cos(f)+xi[n]*sin(f);
yi[k] += -xi[n]*sin(f)+xr[n]*cos(f);
}
}
for(k=0; k<N; k++) printf("Y[%d]=%f+j %f\n, k, yr[k], yi[k]);
}
#include <math.h>
int main()
{
int N=4;
double xr[N], xi[N], yr[N], yi[N], f;
int n, k;
for(n=0; n<N; n++){
xr[n]=0.0;
xi[n]=0.0;
}
xi[0]=N;
for(k=0; k<N; k++){
yr[k]=yi[k]=0.0;
for(n=0; n<N; n++){
f=2*M_PI/N*n*k;
yr[k] += xr[n]*cos(f)+xi[n]*sin(f);
yi[k] += -xi[n]*sin(f)+xr[n]*cos(f);
}
}
for(k=0; k<N; k++) printf("Y[%d]=%f+j %f\n, k, yr[k], yi[k]);
}
by Rhapsodie | 2008-05-29 05:59 | PCとか?