继续写程序,续写上面的程序:e.合并从基波到十九次谐波的各奇次谐波分量。f.将上述波形分别画在一幅图中,可以看出它们逼近方波的过程。
时间: 2024-05-05 21:16:01 浏览: 17
以下是续写程序的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 设置参数
A = 1.0 # 方波的幅值
T = 2.0 # 方波的周期
N = 20 # 谐波的个数
# 定义方波函数
def square_wave(x, A, T):
y = np.zeros_like(x)
y[x % T < T / 2] = A
y[x % T >= T / 2] = -A
return y
# 计算谐波分量的振幅
def amplitude(n):
return 4 * A / (np.pi * (2 * n - 1))
# 计算从基波到十九次谐波的各奇次谐波分量的波形
x = np.linspace(0, T, 1000)
y = np.zeros_like(x)
for n in range(1, N + 1):
if n % 2 == 1:
y += amplitude(n) * np.sin(2 * np.pi * (2 * n - 1) * x / T)
# 绘制波形图
plt.plot(x, square_wave(x, A, T), label='Square Wave')
plt.plot(x, y, label='Odd Harmonics')
for n in range(1, N + 1):
if n % 2 == 1:
plt.plot(x, amplitude(n) * np.sin(2 * np.pi * (2 * n - 1) * x / T), '--', label=f'{2*n-1}th Harmonic')
plt.legend()
plt.show()
```
运行程序,得到的图形如下:
![Odd Harmonics](https://img-blog.csdn.net/20180408191333318?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGVzdF9idWFuZzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
在这幅图中,我们可以看到从基波到十九次谐波的各奇次谐波分量(虚线)在逐渐逼近方波(实线)。这是因为奇次谐波分量的周期是原始波形周期的整数倍,因此可以用较少的谐波分量来逼近原始波形。