9.1方波绘制。在信号处理理论中,方波可近似表示为多个正弦波的叠加实上,任意一个方波信号都可以使用傅里叶变换为多个正弦波表示。利用 numj matplotlib 在坐标系中绘制方波的无穷级数表示。请尝试调节正弦波的个数、幅及周期,尽可能使方波边缘平滑
时间: 2024-03-10 14:43:50 浏览: 244
基于方波傅里叶级数的正弦信号提取
以下是使用Python和NumPy、Matplotlib库绘制方波的无穷级数表示的代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义方波函数
def square_wave(x, n):
s = 0
for i in range(1, n+1):
s += np.sin((2*i-1)*x) / (2*i-1)
return 4/np.pi * s
# 定义x轴范围和采样点数
x = np.linspace(-np.pi, np.pi, 1000)
# 绘制不同正弦波个数下的方波图像
plt.figure(figsize=(8, 6))
for n in range(1, 10, 2):
y = square_wave(x, n)
plt.plot(x, y, label='n={}'.format(n))
# 设置图像标题和标签
plt.title('Square Wave')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
# 显示图像
plt.show()
```
运行代码可以得到方波的无穷级数表示图像,可以通过调节正弦波的个数、幅及周期来尽可能使方波边缘平滑。例如,可以将for循环中range函数的步长调整为2,即绘制正弦波个数为1、3、5、7、9时的方波图像。可以通过修改函数square_wave中sin函数中的系数和分母来调整正弦波的幅和周期。
阅读全文