アプリ版:「スタンプのみでお礼する」機能のリリースについて

逆フーリエ変換でもとの波形を作りたいです。
http://www.geocities.jp/supermisosan/fourier.html
を参考にしました。

///参考URLの逆フーリエ変換プログラム
#include <stdio.h>
#include <math.h>

#define max 10000 //Nの最大限度数
#define pi 3.1415926535 //円周率

int main()
{
int i,k,n,N;
double Ref,Imf;
double ReF[max+1],ImF[max+1];
FILE *fourier;
FILE *inversef;

//逆フーリエ変換したいデータをあらかじめfourier.dataに保存しておく
fourier=fopen("fourier.data","r");
inversef=fopen("inversef.data","w");

//データの読み込み。
for(N=0;N<max;N++) {
if(fscanf(fourier,"%d %lf %lf",&i,&ReF[N],&ImF[N]) == EOF) {
N--;
break;
}
}

//フーリエ逆変換
for(k=0;k<N;k++) {
Ref=Imf=0.0;
for(n=0;n<N;n++) {
Ref+=(ReF[n]*cos(2*pi*k*n/N)-ImF[n]*sin(2*pi*k*n/N))/N;
Imf+=(ReF[n]*sin(2*pi*k*n/N)+ReF[n]*sin(2*pi*k*n/N))/N;
}
fprintf(inversef,"%d %f %f\n",k,Ref,Imf);
}

fclose(fourier);
fclose(inversef);

return 0;
}
//////

Refが実数部分の値で、Imfが虚数部分の値になるのですが、
どうしたら元の波形データが得られるのかがわかりません。

教えて頂けたら幸いです。

A 回答 (1件)

「元の波形データ」をフーリエ変換したデータを与える.

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!