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);

参数说明:

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

功能说明:

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

byxdaz

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

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

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

打赏作者

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

抵扣说明:

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

余额充值