使用 Matplotlib 在Python中绘制交叉光谱密度
Matplotlib是一个综合库,由用于数据可视化的模块组成,就像 MATLAB 一样。 Pyplot 是另一个使函数和方法可执行的模块。
绘制交叉光谱密度
交叉谱密度比较两个信号,每个信号来自不同的源,同时考虑两个信号的幅度和相位差。在Python中,此函数是使用 Pyplot 模块的方法 matplotlib.pyplot.csd() 执行的
句法:
matplotlib.pyplot.csd(x, y)
这里,x 和 y 是一维数组或具有数据的序列。
让我们取两个信号并绘制它们的 CSD:
- 信号 1 的时间周期为 0 到 1 秒,相位角为 0.1 弧度,频率使用 sin()函数计算。
- 同样,信号 2 的时间周期为 5 到 10 秒,相位角为 0.25 弧度。
- 采用这两个信号,我们绘制了它们的交叉谱密度。
示例 1:绘制信号 1
python3
import numpy as np
import matplotlib.pyplot as plt
time = np.arange(0, 1, 0.1)
amp = np.sin(time)
plt.plot(time, amp)
plt.title("Signal 1")
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(5, 10, 0.25)
ampl = np.sin(t)
plt.plot(t, ampl)
plt.title("Signal 2")
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
# Signal 1
time = np.arange(0, 1, 0.1)
amp = np.sin(time)
# Signal 2
t = np.arange(5, 10, 0.25)
ampl = np.sin(t)
# Cross-spectral density
plt.csd(amp, ampl)
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(5)
b = np.arange(10, 30)
plt.csd(a, b)
plt.show()
输出:
示例 2:绘制信号 2
Python3
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(5, 10, 0.25)
ampl = np.sin(t)
plt.plot(t, ampl)
plt.title("Signal 2")
plt.show()
输出:
示例 3:绘制交叉谱密度
Python3
import numpy as np
import matplotlib.pyplot as plt
# Signal 1
time = np.arange(0, 1, 0.1)
amp = np.sin(time)
# Signal 2
t = np.arange(5, 10, 0.25)
ampl = np.sin(t)
# Cross-spectral density
plt.csd(amp, ampl)
plt.show()
输出:
示例 4:使用离散列表或数组
Python3
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(5)
b = np.arange(10, 30)
plt.csd(a, b)
plt.show()
输出: