Python中的 matplotlib.pyplot.magnitude_spectrum()
Matplotlib是Python中的一个库,它是 NumPy 库的数值数学扩展。 Pyplot是Matplotlib模块的基于状态的接口,它提供了一个类似 MATLAB 的接口。在 Pyplot 中可以使用各种图,包括线图、等高线图、直方图、散点图、3D 图等。
matplotlib.pyplot.magnitude_spectrum()函数:
matplotlib库的pyplot模块中的magnitude_spectrum()函数用于绘制幅度谱。通常,它计算序列的幅度谱并进行绘图。
Syntax: magnitude_spectrum(x, Fs=2, Fc=0, window=mlab.window_hanning, pad_to=None, sides=’default’, **kwargs)
Parameters: This method accept the following parameters that are described below:
- x: This parameter is a sequence of data.
- Fs : This parameter is a scalar. Its default value is 2.
- window: This parameter take a data segment as an argument and return the windowed version of the segment. Its default value is window_hanning()
- sides: This parameter specifies which sides of the spectrum to return. This can have following values : ‘default’, ‘onesided’ and ‘twosided’.
- pad_to : This parameter contains the integer value to which the data segment is padded.
- Fc: This parameter is also contains the integer value to offsets the x extents of the plot to reflect the frequency range. Its default value is 0
Returns: This returns the following:
- spectrum :This returns the angle spectrum in radians.
- freqs :This returns the frequencies corresponding to the elements in spectrum.
- line : This returns the line created by this function.
结果是(频谱,频率,线)
下面的示例说明了 matplotlib.pyplot 中的 matplotlib.pyplot.magnitude_spectrum()函数:
示例 #1:
# Implementation of matplotlib function
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(10**5)
dt = 0.0001
Fs = 1 / dt
geeks = np.array([24.40, 110.25, 20.05, 22.00, 61.90,
7.80, 15.00, 22.80, 34.90, 57.30])
nse = np.random.randn(len(geeks))
r = np.exp(-geeks / 0.05)
s = 0.1 * np.sin(2 * np.pi * geeks) + nse
# plot magnitude_spectrum
plt.magnitude_spectrum(s, Fs = Fs)
plt.title('matplotlib.pyplot.magnitude_spectrum() function Example',
fontweight ="bold")
plt.show()
输出:
示例 #2:
# Implementation of matplotlib function
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(0)
dt = 0.01
Fs = 1 / dt
t = np.arange(0, 10, dt)
nse = np.random.randn(len(t))
r = np.exp(-t / 0.05)
cnse = np.convolve(nse, r)*dt
cnse = cnse[:len(t)]
s = 0.1 * np.sin(2 * np.pi * t) + cnse
# plot simple spectrum
plt.subplot(2, 1, 1)
plt.plot(t, s)
plt.title('matplotlib.pyplot.magnitude_spectrum() function Example',
fontweight ="bold")
plt.subplot(2, 1, 2)
plt.magnitude_spectrum(s, Fs = Fs)
plt.show()
输出: