如何使用Matplotlib Pyplot绘制信号的多个周期?
实现周期重复的t²信号绘制
要让t²变成周期重复的信号,核心是对输入时间t做周期延拓处理——把任意时刻的t映射到基础周期[-π, π]内的等效值,再计算平方。以下是修改后的完整代码:
import numpy as np import matplotlib.pyplot as plt def periodic_function(t, T): # 将t映射到[-T/2, T/2)区间,实现周期延拓 t_mod = t - T * np.floor((t + T/2) / T) return t_mod ** 2 # 基础周期 T = 2 * np.pi # 定义多周期的时间范围,比如从-3π到3π(覆盖3个完整周期) inferior_limit, superior_limit = -3 * np.pi, 3 * np.pi time_values = np.linspace(inferior_limit, superior_limit, 3000) # 绘制多周期信号 plt.style.use('bmh') plt.plot(time_values, periodic_function(time_values, T), color='k') # 添加周期分隔虚线辅助观察重复规律 for x in np.arange(inferior_limit, superior_limit + T, T): plt.axvline(x=x, color='gray', linestyle='--', alpha=0.5) plt.xlabel('Time') plt.ylabel('Amplitude') plt.title('Periodic $t^2$ Signal (T=2π)') plt.show()
关键修改说明:
- 重写了函数
periodic_function,新增周期参数T,通过np.floor计算每个t需要偏移的周期数,将t归一到基础周期区间内,再计算平方值。 - 扩展时间范围到
-3π到3π,直观展示多周期重复效果。 - 添加灰色虚线作为周期分隔线,更清晰地观察信号的周期规律。
数学原理补充:
原始的t²是无界非周期函数,周期延拓的本质是把函数在基础周期内的形状复制到相邻区间,构造出周期为T的新信号。通过t_mod = t - n*T(n为整数)确保t_mod始终落在基础周期内,从而让函数值周期性重复。
内容的提问来源于stack exchange,提问作者Lipe
相关产品推荐
相关产品推荐

