📜  使用 Matplotlib、Numpy 和 Scipy 绘制方波(1)

📅  最后修改于: 2023-12-03 15:36:32.058000             🧑  作者: Mango

使用 Matplotlib、Numpy 和 Scipy 绘制方波

介绍

方波是一种重要的信号,常见于电子工程、通信工程和计算机工程等领域。在 Python 中使用 Matplotlib、Numpy 和 Scipy 可以轻松地绘制出方波。本文将介绍使用这三个库绘制方波的具体步骤和相关知识点。

步骤
1. 导入库

首先需要导入 Matplotlib、Numpy 和 Scipy 库。

import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
2. 定义方波函数

使用 Scipy 的 signal 模块可以轻松地生成方波函数。

def square_wave(x, duty=0.5):
    return signal.square(2 * np.pi * x, duty=duty)

其中,x 表示时间序列,duty 表示方波的占空比(即方波周期内正半区时间占比)。

3. 生成时间序列

由于方波是时域信号,因此需要生成一个时间序列。

t = np.linspace(0, 1, 500, endpoint=False)

其中,np.linspace 表示在 0 到 1 之间均匀分布 500 个数。endpoint=False 表示最后一个值不包含在内。

4. 绘制方波

使用 Matplotlib 绘制出方波。

plt.plot(t, square_wave(t))
plt.ylim((-2, 2))
plt.show()

其中,plt.ylim 表示设置画布的 y 轴上下限。

相关知识点
方波

方波是一种周期性、对称的方形脉冲信号。它是一种基础信号,可以通过 Fourier 级数展开表示。在电子工程、通信工程和计算机工程等领域中广泛应用。

占空比

占空比(Duty Cycle)是指周期性信号中有效占用时间所占的比例。在方波中,占空比就是正半区时间占方波周期时间的比例,通常用百分数表示。占空比越大,方波的上升时间和下降时间就越短。

Fourier 级数展开

Fourier 级数展开是一种将周期性信号分解为一系列单频正弦函数和余弦函数之和的方法。它可以将一个复杂的周期性信号分解为一系列简单的正弦和余弦波形,从而方便信号的处理和分析。