傅里叶(Fourier)展开
傅里叶级数的定义如下:
设函数
f
(
x
)
f(x)
f(x)在区间
[
0
,
2
π
]
[0,2\pi]
[0,2π]上绝对可积,令
{
a
n
=
1
π
∫
0
2
π
f
(
x
)
cos
n
x
d
x
(
n
=
0
,
1
,
2
,
⋯
)
b
n
=
1
π
∫
0
2
π
f
(
x
)
sin
n
x
d
x
(
n
=
1
,
2
,
⋯
)
\left\{\begin{array}{ll} a_{n}=\frac{1}{\pi} \int_{0}^{2 \pi} f(x) \cos n x \mathrm{~d} x & (n=0,1,2, \cdots) \\ b_{n}=\frac{1}{\pi} \int_{0}^{2 \pi} f(x) \sin n x \mathrm{~d} x & (n=1,2, \cdots) \end{array}\right.
{an=π1∫02πf(x)cosnx dxbn=π1∫02πf(x)sinnx dx(n=0,1,2,⋯)(n=1,2,⋯)
以
a
n
,
b
n
a_n,b_n
an,bn为系数作三角级数
a
0
2
+
∑
n
=
1
∞
(
a
n
c
o
s
n
x
+
b
n
s
i
n
n
x
)
\frac{a_0}{2}+\sum_{n=1}^{\infty}(a_ncosnx+b_nsinnx)
2a0+n=1∑∞(ancosnx+bnsinnx)
称为
f
(
x
)
f(x)
f(x)的傅里叶级数,
a
n
,
b
n
a_n,b_n
an,bn称为傅里叶系数。
具体的傅里叶级数推导过程可以参考下面这篇文章:
https://zhuanlan.zhihu.com/p/41455378
根据定义可以编写计算傅里叶系数的函数:
function [a0,an,bn] = Fourierzpi(f)
%本函数旨在计算[0,2pi]上的傅里叶系数
syms x n
a0 = int(f,0,2*pi)/pi;
an = int(f*cos(n*x),0,2*pi)/pi;
bn = int(f*sin(n*x),0,2*pi)/pi;
end
利用该函数计算 s i n x + e x x 2 \frac{sinx+e^x}{x^2} x2sinx+ex在[0,2pi]上的傅里叶系数
syms x
f = (sin(x)+exp(x))/x^2;
[a0,an,bn] = Fourierzpi(f)
a0 =
Inf
an =
int((cos(n*x)*(exp(x) + sin(x)))/x^2, x, 0, 2*pi)/pi
bn =
int((sin(n*x)*(exp(x) + sin(x)))/x^2, x, 0, 2*pi)/pi
如果想要计算不同区间的傅里叶变化,只需要改变函数中范围,这样就可以计算不同区间,不同函数的傅里叶系数。