2018.09.29 Saturday
フーリエ級数で矩形波
なんてことはない、矩形をフーリエ級数展開してみた。
周期dの関数をフーリエ展開する。
0/1の矩形波は
となる。N=±5までの範囲とN=±50までの範囲で比べてみた。
#include <iostream>
#include <vector>
#include <cmath>
#include <complex>
const double PI = 3.14159265358979323846;
using namespace std;
int main(void) {
double d = 1;
auto a = [&](int n)
{
if (n == 0) return 0.5;
else return 1. / PI / (double)n * sin(n*PI / 2.);
};
for (double x = -2; x<2; x += 0.01)
{
complex<double> val = 0;
for (int n = -10; n<=10; n++)
{
val += a(n) * exp(2 * PI*n*x / d*complex<double>(0, 1));
}
std::cout << x << " " << val.real() << std::endl;
}
}