导航:首页 > 源码编译 > 小波分解算法

小波分解算法

发布时间:2023-03-24 22:58:14

‘壹’ 小波算法

Function wavelet(s,wname,n,options);
Begin
{
功能:
一维序列小波消噪。
参数:
s:一维序列
wname:小波函数名
现有小波函数名(小波函数的选取依靠经验)
Daubechies:
'db1' , 'db2', ... ,'db45' 'db1' 就是haar 小波函数

Coiflets :
'coif1', ... , 'coif5'
Symlets :
'sym2' , ... , 'sym8'
Biorthogonal:
'bior1.1', 'bior1.3' , 'bior1.5'
'bior2.2', 'bior2.4' , 'bior2.6', 'bior2.8'
'bior3.1', 'bior3.3' , 'bior3.5', 'bior3.7'
'bior3.9', 'bior4.4' , 'bior5.5', 'bior6.8'.
Reverse Biorthogonal:
'rbio1.1', 'rbio1.3' , 'rbio1.5'
'rbio2.2', 'rbio2.4' , 'rbio2.6', 'rbio2.8'
'rbio3.1', 'rbio3.3' , 'rbio3.5', 'rbio3.7'
'rbio3.9', 'rbio4.4' , 'rbio5.5', 'rbio6.8'.

n :分解层数
options : 选项
选择字段说明
array('brief':1, // 默认为1 采用简单剔除高频谐波 达到消噪的目的
// 如果为 0 采用估计序列噪音标准差剔除噪音,
'sigma':0, // 为0 默认采用 序列的高阶谐波估计标准差;也可自己输入值
'which':1, // 以 某一层谐波作为噪音估计的数据,默认第一层
'alpha':2, // 阈值惩罚系数,默认为2
"thr":0, // 阈值大小,默认0 采用谐波估计,也可以直接给出
'sorh':'s', // 阈值方式设置,'s' 软阈值,'h'硬阈值 默认为's'
);

返回结果:
一维数字数组,消噪后的序列。
范例:
s := array(2484.82690429688,2479.05493164063,2482.34301757813,2437.794921875,
2447.7548828125,2512.962890625,2443.05688476563,2433.15893554688,
2393.18310546875,2415.05395507813,2392.06201171875,2365.34301757813,
2359.21997070313,2344.787109375,2348.51611328125,2420.00,2438.7900390625,
2431.375,2440.40209960938,2383.48510742188,2377.51196289063,2331.36596679688,
2317.27490234375,2370.3330078125,2409.67211914063,2427.47998046875,
2435.61401367188,2473.40991210938,2468.25,2470.01904296875,2504.10791015625,
2508.09008789063,2528.2939453125,2509.79907226563,2503.8359375,2524.9189453125,
2479.53588867188,2481.083984375,2528.71411132813,2529.76098632813,2466.958984375,
2463.0458984375,2416.56201171875,2415.1298828125,2412.625,2395.06494140625,
2397.55395507813,2380.22412109375,2383.03393554688,2412.39306640625,
2333.4140625,2386.86010742188,2360.6640625,2333.22900390625,2325.90502929688,
2332.72998046875,2329.82006835938,2315.27001953125,2291.544921875,2248.59008789063,
2228.52490234375,2180.89501953125,2224.84008789063,2218.23510742188,2215.92993164063,
2191.14794921875,2186.29711914063,2204.78393554688,2190.11010742188,2166.205078125,
2170.01293945313,2173.56103515625,2199.4169921875,2169.38989257813,2148.45190429688,
2163.39501953125,2225.88989257813,2285.74389648438,2276.0458984375,2275.01000976563,
2244.580078125,2206.19311523438,2298.3759765625,2266.38403320313,2296.07495117188,
2319.11791992188,2285.0380859375,2292.61010742188,2268.080078125,2312.55590820313,
2330.40502929688,2331.13598632813,2291.90209960938,2347.53002929688,2349.58911132813,
2351.98095703125,2351.85498046875,2344.77099609375,2366.70190429688,2356.86010742188,
2357.18090820313,2363.59692382813,2381.42993164063,2403.5869140625,2409.55395507813,
2439.6279296875,2447.05688476563,2451.85693359375,2428.48706054688,2426.11499023438,
2460.69311523438);
n := 2;
options := array('brief':1,'sigma':0,'which':1,'alpha':2,"thr":0,'sorh':'s');
return wavelet(s,wname,n,options) ;

天软数学组
20120627
}

if not ifarray(options) then options := array();
defaut := wavedefaut() union options;
cout := 4;
cl:=wavedec(s,n,wname); //小波分解
if defaut['brief']=1 then
ret :=wrcoef('a',cl[0],cl[1],wname,n);
else
begin
//***************小波消噪*************************************************
k := defaut['which']; //标准差估计选项 ,k 为 1 到 n的整数 默认为1;
if defaut['sigma']=0 then sigma := wnoisest(cl[0],cl[1],k);
else //通过小波第k层细节系数(谐波)估计 ,噪音标准差
sigma := defaut['segma'];
if defaut['alpha']=0 then alpha :=2; // alpha 惩罚因子 大于1 的数 一般为默认2;
else alpha := defaut['alpha'];
if defaut['thr']=0 then
thr := wbmpen(cl[0],cl[1],sigma,alpha); //噪音信号全局阈值
else thr := defaut['thr'];
sorh := defaut['sorh'];
ret:=wdencmp('gbl',cl[0],cl[1],wname,n,thr,sorh)[0]; //采用软阈值和近似信号进行消噪;
end //第一个参数为'gbl'为扩展接口备用,可以随意输入
return ret;
end;
function wavedefaut();
begin
return array('brief':1,'sigma':0,'which':1,'alpha':2,
"thr":0,'sorh':'s'
);

end

‘贰’ 小波算法是什么

王卫国 郭宝龙

(西安电子科技大学机电工程学院,西安 710071)

摘 要 随着互联网的普及和图象应用范围的不断扩大,对图象的编码提出了新的要求,即不仅要求具有高的压缩比,还要求有许多新的功能,如渐进编解码、从有损压缩到无损压缩等。嵌入式零树小波编码较好地实现了这一思想,因此奠定了它在图象编码中的地位。近年来,在嵌入式零树小波编码(EZW)算法的基础上出现了许多新的改进算法,如多级树集合分裂算法(SPIHT),集合分裂嵌入块编码(SPECK),可逆的嵌入小波压缩法(CREW)等.本文对这些算法从原理到性能进行了比较和讨论,说明了嵌入式图象编码的研究方向。

关 键 词 图象编码 嵌入式 零树 小波变换

On Embedded Zerotree Wavelets Coding and other Improved Algorithms
WANG Wei-guo, GUO Bao-long

(School of Mechano-Electronic Engineering,Xidian Univ.,Xi’an 710071)

Abstract With the extensive application of internet and image,some new requirements on image coding,such as high compression rate ,pregressive codec,and compression from lossy to lossless ,are to be satisfied.These functions can be performed well by EZW(Embedded Zerotree Wavelets) coding.On the bases of EZW,many newly improved algorithms have been developed in recent years.They can illustrated by algorithms like SPIHT(Set Partitioning in Hierarchical Trees),SPECK(Set Partitioned Embedded block coder),In this paper,the writer discusses the principles and performances of these algorithms,thus explains the research tendency in the area of embedded image coding.

Keywords Image coding,Embedded,Zerotree,Wavelet transform

0. 引言

在基于小波变换的图象压缩方案中,嵌入式零树小波 EZW(Embedded Zerotree Wavelets)[1]编码很好地利用小波系数的特性使得输出的码流具有嵌入特性。它的重要性排序和分级量化的思想被许多编码算法所采用。近年来,在对EZW改进的基础上,提出了许多新的性能更好的算法,如多级树集合分裂算法(SPIHT :Set Partitioning In Hierarchical Trees)[2],集合分裂嵌入块编码(SPECK:Set Partitioned Embedded bloCK coder),可逆嵌入小波压缩算法(CREW:Compression with Reversible Embedded Wavelets)[3] 。本文对这些算法进行了原理分析、性能比较,说明了嵌入式小波图象编码的研究方向。

‘叁’ 正交小波包分解算法及其频域表现

这里仍以V0分解成3层的空间分解及其数据A0的分解为例来说明小波包分解算法。下面将用U0表示V0,称A0是表现U0的数据。用正交小波分解中的算子H和G,按图6-34的方法形成小波包数据,图6-35则表示了与图6-34相对应的小波包子空间分解结构关系。饥腔图中的子空间标记,例如U1,2和U2,2,其迟山下标分别表示分解层次与子空间的顺序,则U0的第一层分解,有2个子空间,第2层分解有4个子空间,第3层分解共有8个子空间。

图6-34 小波包数据分解关系

图6-35 小波包数据分解结构

弄清图6-35中各子空间的相互关系是重要的。由于正交小波分解中算子H和G的作用,在第1层分解中,有

U0=U1,1⊕U1,2,U1,1⊥U1,2

类比可知第2层分解中,有

U1,1=U2,1⊕U2,2;U2,1⊥U2,2;U1,2=U2,3⊕U2,4,U2,3⊥U2,4

同样类比,可知在第3层分解中有

U3,j=U2,2j-1⊕U2,2j,U2,2j-1⊥U2,2j

j=1,2,3,4。

另外,在同一尺度上的所有子空间都是正交的,例如,U2,1、U2,2、U2,3、U2,4是相互正交的,U3,1…U3,8是相互正交的。还有一些子空间是相互不正交的,例如,U0、U1,1、U2,2和U3,4它们互相不正交,U0、U1,2、U2,3和U3,5之间也互相不正交。总之,把H和G在正交小波分解中的作用类比到小波包情形,是不难弄清各子空间之间的正交性的。

弄清小波包子空间所对应的频带也是很重要的。从子空间对应频带相互不重叠的表现也可以了解子空间之间的正交性质。图6-36仅表示了U1,2所对应频带的分解情形。

图6-36 关于图6-35小波子空间所对应的频带分析

总之,小波包可以从多个码肢中方面去理解。从数据结构关系来看,它是一种二分树结构;从数据分解关系来看,它是一种递推算法;从空间分解关系来看,它把正交小波分解的子空间做进一步细分;从频域划分来看,它将有限频带细分为若干更细频带的组合。

图6-37 小波包重构算法中的子空间组合及其所对应的时频窗

‘肆’ 小波分析原理

小波(Wavelet)这一术语,顾名思义,“小波”就是小的波形。所谓“小”是指它具有衰减性;而称之为“波”则是指它的波动性,其振幅正负相间的震荡形式。与Fourier变换相比,小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节,解决了Fourier变换的困难问题,成为继Fourier变换以来在科学方法上的重大突破。有人把小波变换称为“数学显微镜”。
小波函数源于多分辨分析,其基本思想是将扩中的函数f(t)表示为一系列逐次逼近表达式, 其中每一个都是f(t)动经过平滑后的形式,它们分别对应不同的分辨率。多分辨分析又称多尺度分析,是建立在函数空间概念基础上的理论,其思想的形成来源于工程。创建者Mallat .S是在研究图像处理问题时建立这套理论的。当时人们研究图像的一种很普遍的方法是将图像在不同尺度下分解,并将结果进行比较,以取得有用的信息。Meyer正交小波基的提出,使得Mallat想到是否用正交小波基的多尺度特性将图像展开,以得到图像不同尺度间的“ 信息增量” 。这种思想导致了多分辨分析理论的建立。MRA不仅为正交小波基的构造提供了一种简单的方法,而且为正交小波变换的快速算法提供了理论依据。其思想又同多采样率滤波器组不谋而合,使我们又可将小波变换同数学滤波器的理论结合起来。因此,多分辨分析在正交小波变换理论中具有非常重要的地位。
小波分析的应用是与小波分析的理论研究紧密地结合在一起地。它已经在科技信息产业领域取得了令人瞩目的成就。 电子信息技术是六大高新技术中重要的一个领域,它的重要方面是图像和信号处理。现今,信号处理已经成为当代科学技术工作的重要部分,信号处理的目的就是:准确的分析、诊断、编码压缩和量化、快速传递或存储、精确地重构(或恢复)。从数学地角度来看,信号与图像处理可以统一看作是信号处理(图像可以看作是二维信号),在小波分析地许多分析的许多应用中,都可以归结为信号处理问题。对于其性质随时间是稳定不变的信号,处理的理想工具仍然是傅立叶分析。但是在实际应用中的绝大多数信号是非稳定的,而特别适用于非稳定信号的工具就是小波分析。

阅读全文

与小波分解算法相关的资料

热点内容
儿童智能关怀app苹果为什么不能用 浏览:706
tcpdump抓包命令 浏览:792
各大主播在用什么app看电影 浏览:420
泰国恐怖片 和尚 浏览:219
宁夏品质压缩机市场 浏览:186
日立螺杆压缩机维修 浏览:427
识别英语单词哪个app比较好 浏览:188
夫人被家丁强奸的泰国电影? 浏览:256
书香门第小说txt下载 浏览:454
服输电影 浏览:814
女程序员手腕磨印子 浏览:864
5周岁看电影可以吗 浏览:901
男女亲热把房子弄倒的韩国电影 浏览:979
什么APP看台湾节目 浏览:350
csgo如何看服务器 浏览:894
有一部美国电影叫什么花? 浏览:138
命令行安装dmg 浏览:646
阿加莎无人生还电影免费观看 浏览:256
能看的那种网你知道几个 浏览:115
关闭命令在 浏览:660