VMDPy 开源项目教程

VMDPy 开源项目教程

vmdpy项目地址:https://gitcode.com/gh_mirrors/vm/vmdpy

1. 项目的目录结构及介绍

VMDPy 项目的目录结构如下:

vmdpy/
├── LICENSE
├── README.md
├── setup.py
├── vmdpy/
│   ├── __init__.py
│   ├── core.py
│   ├── utils.py
│   └── config.py
└── tests/
    ├── __init__.py
    └── test_core.py

目录结构介绍

  • LICENSE: 项目许可证文件。
  • README.md: 项目说明文档。
  • setup.py: 项目安装脚本。
  • vmdpy/: 项目主代码目录。
    • __init__.py: 初始化文件。
    • core.py: 核心功能模块。
    • utils.py: 工具函数模块。
    • config.py: 配置文件模块。
  • tests/: 测试代码目录。
    • __init__.py: 初始化文件。
    • test_core.py: 核心功能测试模块。

2. 项目的启动文件介绍

项目的启动文件是 vmdpy/core.py。这个文件包含了项目的主要功能和入口点。

启动文件内容概述

  • core.py 文件中定义了主要的类和函数,用于处理项目的核心逻辑。
  • 通过导入 core.py 中的类和函数,可以在其他模块中调用这些功能。

3. 项目的配置文件介绍

项目的配置文件是 vmdpy/config.py。这个文件用于存储项目的配置信息。

配置文件内容概述

  • config.py 文件中定义了配置类和常量,用于存储和管理项目的配置信息。
  • 通过导入 config.py 中的配置类和常量,可以在其他模块中使用这些配置信息。

以上是 VMDPy 开源项目的目录结构、启动文件和配置文件的介绍。希望这份教程能帮助你更好地理解和使用该项目。

vmdpy项目地址:https://gitcode.com/gh_mirrors/vm/vmdpy

import numpy as np from numba import jit @jit def VMD(signal, fs, T, alpha, tau, K, DC, init, tol): f_mirror = np.zeros((2*T)) for i in range(T//2): f_mirror[i] = signal[T//2-1-i] for k in range(T//2, 3*T//2): f_mirror[k] = signal[k - T // 2] for l in range(3*T//2, 2*T): f_mirror[l] = signal[5*T//2-l-1] f = f_mirror T = len(f) t = np.arange(1, T+1, 1)/T freqs = t - 0.5 - 1.0 / T freqs = freqs + 0.j N = 500 Alpha = alpha * np.ones((1, K)) Alpha = Alpha + 0.j f_hat = np.fft.fftshift(np.fft.fft(f)) f_hat_plus = f_hat for l in range(0, T//2): f_hat_plus[l] = 0 u_hat_plus = np.zeros((N, T, K)) u_hat_plus = u_hat_plus + 0.j omega_plus = np.zeros((N, K)) # 生成N行K列的数组,元素为0, 500*3 omega_plus = omega_plus + 0.j if init == 1: for i in range(0, K): omega_plus[0][i] = 0.5/K*i elif init == 2: omega_plus[0, :] = np.sort(np.exp(np.log(fs)) + (np.log(0.5)-np.log(fs))*np.random.rand(0, K)) else: omega_plus[0, :] = 0 if DC: omega_plus[0, 0] = 0 else: pass # 从空双变量开始 lambda_hat = np.zeros((N, T)) # lambda_hat = lambda_hat + 0.j # 其他参数初始化 uDiff = tol + 2.77555756e-17 # 更新步长 n = 1 # 循环计数 sum_uk = 0.j # 器材累加 while uDiff > tol and n < N : # 表示没有收敛或低于迭代次数,其中,n和K都从1开始 # 更新第一阶模态累加器 k = 0 sum_uk = u_hat_plus[n-1, :, K-1] + sum_uk - u_hat_plus[n-1, :, 0] # sum_uk此时还是一维数组 # print(sum_uk) # ------------------------ ----检验专用----------------------- # 通过残差维纳滤波器更新第一模态的频谱 u_hat_plus[n, :, k] = (f_hat_plus - sum_uk - lambda_hat[n - 1, :] / 2.0) / (1 + Alpha[0, k]*(freqs - omega_plus[n-1, k])**2) if ~DC: omega_plus[n, k] = np.dot(freqs[T//2: T], ((abs(u_hat_plus[n, T//2:T, k])).reshape(T//2, 1))**2) / sum((abs(u_hat_plus[n, T//2:T, k]))**2) for k in range(1, K):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任轶眉Tracy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值