我是靠谱客的博主 土豪学姐,最近开发中收集的这篇文章主要介绍Gibbs现象,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

吉布斯现象是由亨利·威尔伯拉罕在1848年发现的,然后由j·威拉德·吉布斯在1899年重新发现的。
对于具有不连续的周期信号,如果通过加傅立叶级数来重构信号,则在边缘附近会出现超调。这些超调以远离边缘的阻尼振荡方式向外衰减。这被称为GIBBS现象,如下图所示。
在这里插入图片描述
因为,当 0 < x < π 0<x<pi 0<x<π f ( x ) = 1 f(x)=1 f(x)=1,当 π < x < 2 π pi<x<2pi π<x<2π f ( x ) = − 1 f(x)=−1 f(x)=1(在 ( 0 , 2 π ) (0,2pi) (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 π 2pi 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}{xsin(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()

运行结果:

在这里插入图片描述

最后

以上就是土豪学姐为你收集整理的Gibbs现象的全部内容,希望文章能够帮你解决Gibbs现象所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部