마지막 항(Nyquist term)은
FFT를 이용한 영상의 미분
주어진 함수
kipl.tistory.com
// [x=0:1]
// Fourier coefficient (re[], im[]);
double FourierInterp(double x, std::vector<double>& re, std::vector<double>& im) {
const int N = re.size();
double fval = re[0];
for (int k = N >> 1; k-->1;) {
double ang = TWOPI * k * x;
double cc = cos(ang);
double ss = sin(ang);
fval += re[k] * cc - im[k] * ss; // 입력데이터가 실수인 경우:
fval += re[N-k] * cc + im[N-k] * ss; // Y[N-k] = (Y[k])*
}
if (!(N&1)) //k = N/2 for even N;
fval += re[N>>1] * cos(PI * N * x);
return fval;
}
double f(double x) {
return sin(x) * sin(x) * cos(x);
}
void Finterpolate() {
const int nsamples = 30;
std::vector<double> sample(nsamples);
const double L = 3 * PI, dx = L / nsamples;
for (int k = 0; k < nsamples; k++) sample[k] = f(k * dx);
std::vector<double> re(sample.size(), 0), im(sample.size(), 0);
// perform DFT;
DFT(sample, re, im);
FILE *fp = fopen("finp.txt", "w");
const double N = 200;
const double dy = dx * sample.size() / N;
for (int k = 0; k < N; k++) {
double x = k * dy;
fprintf(fp, "%f %f\n", x, FourierInterp(x / L, re, im));
}
fclose(fp);
}

728x90
'Mathematics' 카테고리의 다른 글
삼각형 내부에 외접원의 중심이 포함될 확률은? (1) | 2024.06.03 |
---|---|
The Double Bubble Theorem (0) | 2024.05.27 |
Generalized eigenvalues problem (0) | 2024.03.02 |
수치적으로 보다 정밀한 이차방정식의 해 (0) | 2024.02.23 |
열방정식의 Green function (0) | 2024.02.12 |