Matplotlib绘图-CSD演示
目录
前言
一、CSD是什么?
二、使用步骤
1.引入库
2.图形处理
总结
前言
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。本文通过绘制简单的两个信号互谱密度(CSD)的演示,来学习绘制简单的图形。非专业人员,知识比较浅显,内容主要偏向编程,简单介绍在python中matplotlib库的应用实例。
一、CSD是什么?
互谱密度(CSD)是用于比较信号的几种高级图形功能之一。具体来说,它可以随时显示频谱上一对信号的功率分布,该信息可用于确定信号相对于另一个信号的影响。
简而言之,CSD可用于在一对信号中找到互谐振频率。它显示了两个信号如何相互关联(“相关”,“统计连接”,“影响”)相对于另一个信号。
例如,在多轴系统中,一个轴上的振动回影响另一个轴上的振动。
二、使用步骤
接下来,我们将在python中使用Matplotlib库来绘制CSD图形。
1.引入库
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.rcParams['font.family'] = ['DengXian', 'sans-serif']#显示中文
2.图形处理
在子图之间留出一点额外的空间,subplots_adjust方法使得子图1的横轴标签不被子图2遮挡
fig, (ax1, ax2) = plt.subplots(2, 1)
fig.subplots_adjust(hspace=0.5)
固定随机状态以实现再现性
dt = 0.01
t = np.arange(0, 30, dt)
np.random.seed(19680801)
nse1 = np.random.rand(len(t)) # 白噪声1
nse2 = np.random.rand(len(t)) # 白噪声2
r = np.exp(-t / 0.05)
cnse1 = np.convolve(nse1, r, mode='same') * dt # 有色噪声
cnse2 = np.convolve(nse2, r, mode='same') * dt
两个信号,具有相干部分和随机部分
s1 = 0.01 * np.sin(2 * np.pi * 10 * t) + cnse1
s2 = 0.01 * np.sin(2 * np.pi * 10 * t) + cnse2
绘图显示结果:
ax1.plot(t, s1, t, s2)
ax1.set_xlim(0, 5)
ax1.set_xlabel('时间')
ax1.set_ylabel('S1 与 S2')
ax1.grid(True)
cxy, f = ax2.csd(s1, s2, 256, 1. / dt)
ax2.set_xlabel('CSD (db)')
plt.show()
运行结果

总结
本文通过简单的介绍csd的绘图过程展示了Matplotlib库的简便使用。在python中可以使用Matplotlib库来绘制各种图形,且使用简单方便。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
