实现最佳小波包基搜索算 - Read.PDFVIP

  • 28
  • 0
  • 约2.01千字
  • 约 5页
  • 2017-08-14 发布于天津
  • 举报
实现最佳小波包基搜索算 - Read

10. 4编程实现有限长信号的小波包分解算法并选择一个信息代价函数,实现最佳 小波包基搜索算法。 程序设计 实验的程序采用C语言编写,自己实现小波包的分解和重构,选用了Haar,D4 等小波进行实验,分解算法采用递归的方法,沿树结构进行深度优先的分解,重 构的时候也采用类似的方法。实验数据采用的是 lena 图像的第一行进行,长度 为256。程序中可以选用几种代价函数进行最优基的选择(范数集中度,对数熵, 信息熵)。程序读如lena图像的第一行后,并将这行数据存入文件in.dat,进行 小波包分解,然后进行最优基的选取,在最优基下相应的系数存入文件out.dat。 函数说明: void readbmp(char * file,int n,double * c) //读入 lena.bmp 的第一行 void dwt(Node * root) //按深度优先进行完全小波包分解 void idwt(Node * root) //进行小波包重构 double entroy(double a) //计算每个节点的代价 double total_entroy(Node *root) //寻找最优小波基 void show(Node * root) //输出最优小波基下的系数 实验结果与分析 读如的一行数据 横坐标为图像横坐标(0-255),纵坐标为像素点的灰度值(0-255). 以下个图是在利用相应的小波和相应的代价函数选择出的最佳小波基对应的小 波分解系数 利用haar小波进行小波包分解 (1) 利用范数集中度为代价函数 横坐标表示256个小波分解系数,纵坐标表示每个小波分解系数的值 可见系数能量分布较均匀,说明代价函数不起作用 (2) 利用对数熵为代价函数 横坐标表示256个小波分解系数,纵坐标表示每个小波分解系数的值 可见能量集中在前 10 个系数上,大多数系数的绝对值较小,可以认为,基的选择 是合适的. (3)利用信息熵为代价函数 横坐标表示256个小波分解系数,纵坐标表示每个小波分解系数的值 可见选择的最优基对应系数的能量不如对数熵的集中. 利用D4小波进行小波包分解 (1) 利用范数集中度为代价函数 横坐标表示256个小波分解系数,纵坐标表示每个小波分解系数的值 与haar小波一样,效果很不好 (2) 利用对数熵为代价函数 横坐标表示256个小波分解系数,纵坐标表示每个小波分解系数的值 ] 能量分布集中,具有较好的效果,比用相同代价函数的 haar 小波具有更集中的能 量. (3) 利用信息熵为代价函数 横坐标表示256个小波分解系数,纵坐标表示每个小波分解系数的值 效果不错,但是不如用对数熵时能量更集中,比用相同代价函数的 haar 小波具有 更好的效果. 总结 小波包的分解和重构算法和前面所学的小波的分解和重构算法类似,最优基 的选择是更加困难一点,通过实验发现,代价函数的选择对最优基的选择有很大 影响,同时不同的小波在对最优基的选择也有影响,从实验中看出,用 D4 小波选 出的最优基具有更好的性质,利用对数熵为代价函数比信息熵为代价函数选出的 最

文档评论(0)

1亿VIP精品文档

相关文档