LabVIEW小波分解与重构

        一、小波分解

        LabVIEW中有db4小波变换子VI,关于这个VI没有详细摸索过,先不发言,对于常用的小波分解功能,我们知道MATLAB中提供了很好用的wavedec函数,那么能不能在LabVIEW中也实现这个功能呢。

       从小波分解的知识可以知道,小波变换实质上是线性空间的内积操作,小波变换的快速算法实际上就是使用小波分解滤波器对原始信号滤波,然后进行隔点采样,那么,滤波操作在时域上就是卷积,因此如果知道小波滤波器系数,使用卷积操作后隔一个点取一个点即可。

        下面的程序完成小波分解:

         

        主要部分就是卷积和隔点采样。

       注:可以使用常见小波或者自己构造的小波滤波器,输入为:分解层数、小波分解低通滤波器,小波分解高通滤波器,需分解的信号。程序中参考了我师兄的小波去基线程序。

         二、小波重构

        小波重构原理和分解类似,其快速算法仍然是使用小波滤波器与各层系数卷积,只是在卷积之前需要对各层系数隔点插零。

   类似于分解的程序,对近似部分隔点插零,然后与小波重构低通滤波器卷积,细节部分隔点插零与高通滤波器卷积,然后相加,获得N-1层重构信号循环往复即可重构至原来信号。

       下面为小波重构的程序:


        三、示例

        仿照MATLAB的命名,给他们命名为wavedec和waverec。

        下面验证其分解和重构的有效性。

        读取一段心电信号,对其使用db4小波8层分解再重构,如下:

      (关于db4小波的各类滤波器,可以使用MATLAB wfilter函数获得)


结果如下:白色为原始信号,红色为重构信号,一般情况下,使用小波分解去除基线等,可以将多层分解的{zh1}一层近似系数取零,或者为了还原原始信号幅度,取为均值,然后进行重构,则去除基线;或者估计噪声频率分解相应层数,去掉细节部分,重构,则为简单的小波去噪功能。


原创,转载请注明出处,谢谢。



郑重声明:资讯 【LabVIEW小波分解与重构】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——