📜  使用 Matplotlib 在Python中绘制交叉光谱密度

📅  最后修改于: 2022-05-13 01:55:36.221000             🧑  作者: Mango

使用 Matplotlib 在Python中绘制交叉光谱密度

Matplotlib是一个综合库,由用于数据可视化的模块组成,就像 MATLAB 一样。 Pyplot 是另一个使函数和方法可执行的模块。

绘制交叉光谱密度

交叉谱密度比较两个信号,每个信号来自不同的源,同时考虑两个信号的幅度和相位差。在Python中,此函数是使用 Pyplot 模块的方法 matplotlib.pyplot.csd() 执行的
句法:

matplotlib.pyplot.csd(x, y)

这里,x 和 y 是一维数组或具有数据的序列。
让我们取两个信号并绘制它们的 CSD:

  1. 信号 1 的时间周期为 0 到 1 秒,相位角为 0.1 弧度,频率使用 sin()函数计算。
  2. 同样,信号 2 的时间周期为 5 到 10 秒,相位角为 0.25 弧度。
  3. 采用这两个信号,我们绘制了它们的交叉谱密度。

示例 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()


输出:

csd-python-1

示例 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()

输出:

csd-python2

示例 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()

输出:

交叉光谱密度-python-2