叠加的正弦波逼近一个矩形波

叠加的正弦波逼近一个矩形波

flyfish

依次绘制1个、2个、4个和10个正弦波的叠加效果。每个正弦波的频率是基频的奇数倍,且幅度逐渐减小。最终,这些叠加的正弦波将逼近一个矩形波。

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 定义基本正弦波函数
def sine_wave(t, freq, amplitude=1):
    return amplitude * np.sin(2 * np.pi * freq * t)

# 叠加正弦波
def sum_of_sines(t, num_waves):
    result = np.zeros_like(t)
    for n in range(1, num_waves * 2, 2):
        result += sine_wave(t, n) / n
    return result

# 时间范围
t = np.linspace(-2, 2, 1000)

# 创建图形
fig, axs = plt.subplots(2, 2, figsize=(12, 8))

# 单个正弦波
axs[0, 0].plot(t, sine_wave(t, 1))
axs[0, 0].set_title('1个正弦波')
axs[0, 0].grid(True)

# 2个正弦波的叠加
axs[0, 1].plot(t, sum_of_sines(t, 2))
axs[0, 1].set_title('2个正弦波的叠加')
axs[0, 1].grid(True)

# 4个正弦波的叠加
axs[1, 0].plot(t, sum_of_sines(t, 4))
axs[1, 0].set_title('4个正弦波的叠加')
axs[1, 0].grid(True)

# 10个正弦波的叠加
axs[1, 1].plot(t, sum_of_sines(t, 10))
axs[1, 1].set_title('10个正弦波的叠加')
axs[1, 1].grid(True)

# 调整布局
plt.tight_layout()
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西笑生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值