龙空技术网

压缩算法---小波分解法

XieHS 850

前言:

目前同学们对“小波分解概念图片”可能比较重视,同学们都想要剖析一些“小波分解概念图片”的相关资讯。那么小编在网上汇集了一些对于“小波分解概念图片””的相关资讯,希望我们能喜欢,咱们快快来了解一下吧!

了解过信号处理的应该对小波变换都不陌生,小波变换的应用领域较广。20世纪90年代,小波变换被广泛用于语音和图像等数据压缩,并取得较好的压缩效果,后续有研究者将小波变换应用于心电信号的数据压缩。今天我们来讨论小波变换应用于心电信号的压缩。

小波变换用于信号压缩的基本思路和小波分解滤波相似,小波分解法滤波是将信号分解为不同的分量,然后保留目标分量,抑制非目标分量,然后重构信号,即可得到滤波后的信号。具体实现过程如下图:

matlab中wavedec函数介绍中的图片

matlab中wavedec函数介绍中的图片

对于信号x或者s,将信号分别通过一个低通滤波器和高通滤波器,然后将通过低频滤波器的信号降采样,得到第一层的分量cA1,通过高频滤波器的信号降采样得到cD1,cA1为近似分量,也称低频系数,cD1为细节分量,也称高频系数。第一幅图片是往低频方向分解,也可以往高频方向分解,这个是要看你所需要的是细节分量还是近似分量。如果每个滤波器的长度等于2N,信号长度为n,则信号F和G的长度为n + 2N - 1,系数cA1和cD1的长度为floor((n-1)/2)+N,也就是信号长度减1除以2,下取整。

通过一层层的分解,最终得到不同层数的分量信息。再根据需要对分量信息做一定处理,然后重构信号,即可实现信号的滤波。而信号的压缩是将目标分量保存,非目标分量用较小的比特数存储下来。

实际分解过程中会发现,非目标分量的值往往近似等于0,看下图,目标分量的幅值基本处于-2~2mv之间,而非目标分量的值基本位于-0.01~0.01mv之间,这一部分的分量往往用处很小,甚至对目标信号没有用,该部分信号完全可以置为0。在存储这一部分分量时,完全可以计数表示,只需要存储0的个数,在重构的时候在前面或者后面添加多少个0即可。

举例:

一段采样率为360Hz,10s的心电信号,需要的有效信号频率在0~45Hz,经过db6小波分解为9层,保留2~9层细节分量和9层近似分量,其他为无效分量,这儿将无效分量置为0。

采样点共有3600个,也即信号长度n=3600,db6小波长度为12,则2N=12,N=6。调用matlab中的分解函数,得到C和L,分别存储分量和分量长度。

[C,L] = wavedec(sig,9,'db6');

L的值分别为:

只保留a9,d9~d2,d1的值1805这个数替换,在信号重构的时候,补充1805个0即可。

如此,原本需要保存3600个sample,现在只需要保存1892+1个值,压缩比接近于2。当然,也可以根据自己需要,删除更多不需要的分量,比如0~0.5hz的基线漂移,叫高频的其他分量等。总之,无效信息量越高,通过小波变换的压缩比就越高。

原始信号和重构信号如下图,几乎是无损失压缩,损失的也都是无效信息。

放在一起的效果:

温馨小贴士:

通过小波名字获取小波分解和重构的滤波器,即可获得滤波器长度。

[LO_D,HI_D,LO_R,HI_R] = Wfilters(‘wname’) %‘wname’:小波基的名字

%LO_D,分解低通滤波器;%HI_D,分解高通滤波器

%LO_R,重建低通滤波器;%HI_R,重建高通滤波器

标签: #小波分解概念图片 #小波分解概念图片素材