简介
本实验的目的是演示如何使用 Python 的 Matplotlib 库绘制互相关和自相关图。互相关和自相关是用于测量两个信号之间相似度的数学工具。互相关测量两个不同信号之间的相似度,而自相关测量一个信号与其自身的时延版本之间的相似度。这些工具常用于信号处理、图像分析和时间序列分析。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。
导入库
首先,我们需要导入必要的库。在本实验中,我们将使用 NumPy 和 Matplotlib。
import matplotlib.pyplot as plt
import numpy as np
生成随机数据
接下来,我们将使用 NumPy 生成两个随机数据数组。我们将使用这些数组来演示互相关和自相关。
np.random.seed(19680801)
x, y = np.random.randn(2, 100)
绘制互相关
现在我们将使用 Matplotlib 中的 xcorr 函数绘制这两个数组之间的互相关。
fig, ax = plt.subplots()
ax.xcorr(x, y, usevlines=True, maxlags=50, normed=True, lw=2)
ax.grid(True)
plt.show()
xcorr 函数接受以下参数:
x:第一个数据数组y:第二个数据数组usevlines:布尔值,是否绘制从 0 到相关值的垂直线maxlags:整数,计算相关性的最大滞后数normed:布尔值,是否对相关值进行归一化lw:整数,绘图的线宽
绘制自相关
现在我们将使用 Matplotlib 中的 acorr 函数绘制 x 数组的自相关。
fig, ax = plt.subplots()
ax.acorr(x, usevlines=True, normed=True, maxlags=50, lw=2)
ax.grid(True)
plt.show()
acorr 函数接受以下参数:
x:要计算自相关的数据数组usevlines:布尔值,是否绘制从 0 到相关值的垂直线normed:布尔值,是否对相关值进行归一化maxlags:整数,计算相关性的最大滞后数lw:整数,绘图的线宽
总结
在本实验中,我们学习了如何在 Python 的 Matplotlib 中使用互相关和自相关图。我们首先导入了必要的库,然后使用 NumPy 生成了随机数据。接着,我们使用 Matplotlib 中的 xcorr 和 acorr 函数绘制了数据的互相关和自相关。这些工具对于测量两个信号之间的相似性很有用,并且常用于信号处理、图像分析和时间序列分析。