numpy绘制方波及方波无穷级数的表示

2019/08/24 00:16
阅读数 529

绘制方波

方波可以近似表示为多个正弦波的叠加

任意一个方波信号都可以用无穷傅里叶级数来表示

  # 傅里叶级数是以正弦函数和余弦函数为基函数的无穷级数

 

Code

import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(-np.pi, np.pi, 201)
k = np.arange(1, 5)
k = 2 * k - 1
#k = 99
f = np.zeros_like(t)

for i in range(len(t)):
    f[i] = np.sum(np.sin(k * t[i])/k)

f = (4 / np.pi) * f
    
plt.plot(t, f)
plt.show()

 

方波的无穷级数表示

欧拉公式

第一步:

以上为省略余项的麦克劳林公式

第二步:

的展开式中把x换成±ix

 

第三步:

中将x = π, 得出

 

 傅里叶级数

泰勒展开是将函数展开成幂函数的形式

傅里叶展开是将函数展开成三角函数的形式, 即 y= 1 + sinx +cosx +sin2x + cos2x + …..

  # 频率是反映周期变化的快慢

  # 只有e^x 和sinx、cosx的二阶导数是它们自身

1. 傅里叶展开就是把周期函数拆开成 常数(直流分量)+一倍频分量+2倍频分量+…

  # 正弦函数和余弦函数的不同只是相位的不同

2.计算周期函数在各个倍频分量下的投影

一个函数和另一个函数的的投影, 就是一个函数和另一个函数的内积, 就是两个函数相乘, 然后在全区间上做积分

3. 根据投影计算各倍频分量下的内积

4. 将这些内积求和

 

数学定义:

 给定一个周期为T的函数x(t),那么它可以表示为无穷级数:

其中,

j为虚数单位

2π/T 表示该分量的频率

表示x(t)的各个分量

 

表示函数x(t)在各个分量上的投影

ak * fk(t) 表示周期函数x(t)在某个分量下的内积

 

 

 

这是一个方波我们可以看出来,它是由sinx,sin3x,sin5x,sin7x组成的。其中, 红色正弦函数的频率称为基频, 其他所有正弦函数的频率都是它的倍数.

傅里叶展开就是

1. 根据基频, 计算出各个分量

2. 计算周期函数在这些分量中的投影

3. 计算周期函数在各个分量下的内积, 并求和

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部