VMD分解代码,用于一维信号的分解

VMD分解代码,用于一维信号的分解

VMD分解用于信号分解,分解出不同的组合。

VMD分解用于信号分解,分解出不同的组合。

#. Time Domain 0 to T 时域0到T
T = 200000
fs = 1/T
t = np.arange(1,T+1)/T
freqs = 2*np.pi*(t-0.5-fs)/(fs)

#. center frequencies of components 组件的中心频率

#. Time Domain 0 to T 时域0到T
T = 200000
fs = 1/T
t = np.arange(1,T+1)/T
freqs = 2*np.pi*(t-0.5-fs)/(fs)

#. center frequencies of components 组件的中心频率

f_1 = 2
f_2 = 24
f_3 = 288

#. modes 模式

v_1 = (np.cos(2*np.pi*f_1*t))
v_2 = 1/4*(np.cos(2*np.pi*f_2*t))
v_3 = 1/16*(np.cos(2*np.pi*f_3*t))

# f = v_1 + v_2 + v_3 + 0.1*np.random.randn(v_1.size)
f=np.loadtxt('C:\\Users\\Administrator\\Desktop\\数据文件\\20201008009.txt')
#. some sample parameters for VMD VMD 的一些示例参数

alpha = 2000       # moderate bandwidth constraint 适度的带宽限制
tau = 0.            # noise-tolerance (no strict fidelity enforcement) 噪声容限(没有严格的保真执行)
K = 6              # 3 modes 3种模式
DC = 0             # no DC part imposed 没有施加直流部分
init = 1           # initialize omegas uniformly 统一初始化 omegas
tol = 1e-7


#. Run VMD 运行 VMD
u, u_hat, omega = VMD(f, alpha, tau, K, DC, init, tol)

#. Visualize decomposed modes  可视化分解的模式
plt.figure(1)
plt.subplot()
plt.plot(f)
plt.title('Original signal')
plt.xlabel('time (s)')
plt.figure(2)
plt.subplot()
plt.plot(u.T)
plt.title('Decomposed modes')
plt.xlabel('time (s)')
plt.legend(['Mode %d'%m_i for m_i in range(u.shape[0])])
plt.tight_layout()
plt.show()

VMD分解代码,用于一维信号的分解_第1张图片

 VMD分解代码,用于一维信号的分解_第2张图片

 

你可能感兴趣的:(python,大数据,经验分享)