当前位置: 首页 > web >正文

Wavelib 库的核心属性、方法

1. 核心属性(小波基类型)

小波名称描述常用场景
"haar"Haar小波(最简单)快速计算、边缘检测
"db1"~"db20"Daubechies小波通用信号/图像处理
"sym2"~"sym20"Symlets小波(近似对称)需要对称性的重构任务
"coif1"~"coif5"Coiflets小波高精度分析

2.主要结构体(类)

1). wave_object (小波对象)

属性

  • char *wname:小波名称(如"db4", "sym5"等)

  • int filtlength:小波滤波器长度

  • double *lpd:低通分解滤波器系数

  • double *hpd:高通分解滤波器系数

  • double *lpr:低通重构滤波器系数

  • double *hpr:高通重构滤波器系数

2). wt_object (小波变换对象)

属性

  • wave_object wave:使用的小波对象

  • char *method:变换方法("dwt","swt","modwt"等)

  • char *ext:边界延拓方式("sym","per","zpd"等)

  • int siglength:输入信号长度

  • int outlength:输出长度

  • int J:分解层数

  • double *output:变换结果数组

  • int *length:各层系数长度数组

3). threshold_object (阈值对象)

属性

  • char *thresh:阈值类型("hard","soft")

  • char *dmethod:阈值计算方法("universal","sure","hybrid")

  • double *dout:去噪后系数

  • int N:信号长度

  • int J:分解层数

3. 主要方法

初始化方法
wave_object wave_init(const char *wname);  // 初始化小波对象
wt_object wt_init(wave_object wave, const char *method, int siglength, int J);  // 初始化小波变换对象
threshold_object threshold_init(int N, int J);  // 初始化阈值对象
常用小波基

Wavelib支持多种小波基,可通过wave_init函数指定:

  • Daubechies小波:"db1"到"db20"

  • Symlets小波:"sym2"到"sym20"

  • Coiflets小波:"coif1"到"coif5"

  • Biorthogonal小波:"bior1.1"到"bior6.8"

  • Reverse biorthogonal小波:"rbio1.1"到"rbio6.8"

小波变换方法 
(1) dwt() 方法 - 离散小波变换

函数原型:

void dwt(wt_object wt, const double *inp);

参数说明:

参数类型说明
wtwt_object已初始化的小波变换对象,包含小波类型、分解层数等配置
inpconst double*输入信号数组(一维),长度必须与 wt->siglength 一致

功能说明:

  1. 执行多级离散小波分解(Mallat算法)

  2. 结果存储在 wt->output 中,结构为:
    [A_J, D_J, D_{J-1}, ..., D_1]
    (J级近似系数 + 各级细节系数,从高层到低层)

  3. 各层系数长度存储在 wt->l

http://www.xdnf.cn/news/10500.html

相关文章:

  • Sa-Token 同端登录冲突检测实战
  • 箱式不确定集
  • Baklib加速企业AI数据治理实践
  • AtCoder Beginner Contest 399题目翻译
  • 前端面经 响应式布局
  • 2023ICPC杭州题解
  • 文档核心结构优化(程序C++...)
  • TensorFlow深度学习实战(19)——受限玻尔兹曼机
  • seq2seq 视频截图
  • 深度学习篇---人脸识别中的face-recognition库和深度学习
  • 【Canvas与色彩】八彩大风车
  • springboot-响应接收与ioc容器控制反转、Di依赖注入
  • nt!MiDispatchFault函数里面的nt!IoPageRead函数分析和nt!MiWaitForInPageComplete函数分析
  • URLDNS利用链剖析
  • latex figure Missing number, treated as zero. <to be read again>
  • mybatis01
  • 3、禁止树莓派屏幕休眠,设置树莓派屏幕常亮
  • VisionPro —— 不规则胶路检测
  • Codeforces Round 1028 (Div. 2) C. Gellyfish and Flaming Peony
  • java synchronized关键字用法
  • STM32Cubemx-H7-17-麦克纳姆轮驱动
  • 关于神经网络中的梯度和神经网络的反向传播以及梯度与损失的关系
  • 用Python打开不同联类型的文件
  • 【xmb】】内部文档148344599
  • 大数据学习(126)-窗口函数范围
  • 通过WiFi无线连接小米手机摄像头到电脑的方法
  • AI炼丹日志-27 - Anubis 通过 PoW工作量证明的反爬虫组件 上手指南 原理解析
  • Java数值处理常见错误解析
  • java多线程与JUC
  • nt!MiDispatchFault函数分析之nt!MiCompleteProtoPteFault函数的作用