吉布斯现象是由亨利·威尔伯拉罕在1848年发现的,然后由j·威拉德·吉布斯在1899年重新发现的。
对于具有不连续的周期信号,如果通过加傅立叶级数来重构信号,则在边缘附近会出现超调。这些超调以远离边缘的阻尼振荡方式向外衰减。这被称为GIBBS现象,如下图所示。
因为,当
0
<
x
<
π
0<x<\pi
0<x<π时
f
(
x
)
=
1
f(x)=1
f(x)=1,当
π
<
x
<
2
π
\pi<x<2\pi
π<x<2π时
f
(
x
)
=
−
1
f(x)=−1
f(x)=−1(在
(
0
,
2
π
)
(0,2\pi)
(0,2π)范围外重复)定义的方波具有傅立叶级数展开:
f
(
x
)
=
4
π
∑
n
=
1
,
3
,
5
,
⋯
1
n
sin
(
n
x
)
\begin{equation} f(x)=\dfrac{4}{\pi}\sum_{n=1,3,5,\cdots}{\dfrac{1}{n}\sin(n x)} \end{equation}
f(x)=π4n=1,3,5,⋯∑n1sin(nx)
更一般的,随着N增加,部分起伏就向不连续点压缩,但是对任何有限的N值,起伏的峰值大小保持不变,以函数
f
(
x
)
=
x
f(x)=x
f(x)=x为例,其周期为
2
π
2\pi
2π,某个定义区间为
[
−
π
,
π
]
[-\pi,\pi]
[−π,π],其图像为:
且它的傅里叶展开级数的系数为:
b
n
=
(
1
π
)
∫
−
π
π
x
sin
(
n
x
)
d
x
=
∑
n
=
1
∞
(
−
1
)
n
+
1
(
2
n
)
\begin{equation} \begin{aligned} b_n&=(\frac{1}{\pi})\int_{-\pi}^{\pi}{x\sin(nx)}\mathrm{d}x\\ &=\sum_{n=1}^{\infty}(-1)^{n+1}(\frac{2}{n}) \end{aligned} \end{equation}
bn=(π1)∫−ππxsin(nx)dx=n=1∑∞(−1)n+1(n2)则它的傅里叶级数近似结果如下:
其误差表示为:
从图中可以看出其误差最大值保持不变,约为跳变值的0.09倍。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,2*np.pi,5000)
square_wave = np.ones_like(x)
square_wave[int(x.size/2):]=-1
N = 30
fsq = np.zeros_like(x)
for i in range(N):
n = 2*i + 1
fsq += np.sin(n *x) / n
fsq *= 4 / np.pi
fig, ax = plt.subplots()
ax.plot(x, square_wave, lw=5, alpha=0.5)
ax.plot(x, fsq, 'r')
ax.set_ylim(-1.2,1.2)
plt.title('N='+str(N))
ax.set_xticks([0,1,2,3,4,5,6,7])
ax.set_xticks([0.5,1.5,2.5,3.5,4.5,5.5,6.5], minor=True)
ax.set_yticks([-1, 0, 1])
ax.set_yticks(np.arange(-1.2,1.2,0.2), minor=True)
ax.grid(b=True, c='k', lw=1, ls='--', which='major')
ax.grid(b=True, c='0.4', lw=0.5, ls=':', which='minor')
plt.show()
运行结果:文章来源:https://www.toymoban.com/news/detail-463002.html
文章来源地址https://www.toymoban.com/news/detail-463002.html
到了这里,关于Gibbs现象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!