deep a wavelet 深度自适应小波网络

深度自适应小波网络

1.  原理说明

1.1 the Lifting scheme

提升方案,也称为第二代小波[25],是定义与第一代小波[6]具有相同属性的小波的一种简单而强大的方法。

提升方案将信号x作为输入,

生成小波变换的近似分量C, 和细节分量d 这两类子带作为输出。

设计这样的提升方案由三个阶段[4]组成,如下所示。

  1. 信号分解, 将输入信号分解成,不重叠的两个部分:  最简单的做法,分为奇数分量与偶数分量

2.updater, 更新器, 这个阶段会考虑频域中的分离, 期待的效果是,找到一个近似分量C 使其与输入信号有相同的running average; 为了获得这样的效果, 近似分量C =  应该可以通过信号的偶数分量,+  奇数分量通过U 更新器。

通过偶数分量与奇数分量构建近似分量C;

在这里插入图片描述

3.预测器, 信号的分解通常相互关联的, 已经知道分解信号其中一个, 便可以通过构建一个预测器,预测出另外一个。

通过预测出来的偶数分量与原始的偶数分量,两者之间进行做差, 得到一个细节分量 d[n]:

在这里插入图片描述

note,这里有个思维误区,传统的方式是一个原始信号 x[n] = 近似分量 + 细节分量。而这篇文章中的表达的思想却是, 通过一个已经知道的近似分量C,  通过近似分量C 来模拟出一个偶数分量;

从而这里的细节分量代表的是, 细节分量 = 原始的偶数分量 -  模拟出来的偶数分量

1.2 L_p, L_u  的参数作用

Yi等人[29]提出将更新器和预测器替换为神经网络表示的非线性函数,以适应输入信号。为了训练它们,作者建议使用以下损失函数:

在这里插入图片描述

这里存在一个矛盾的地方, 按照公式4,  U= c[n] - x_e[n] , 而公式6中, 却让 U = x_o[n] - x_e[n] ;

这难道意思是让 近似分量 c[n] 与偶数分量 x_o[n] ,  这是明显存在的一个矛盾,或者是错误的逻辑;

Yi等人[29]认为 近似分量c 根据定义接近x_e[n] 偶数分量,这只使得更新器网络的损失函数有必要最小化c和xo之间的距离。请注意,在Yi等人[29]中,预测器和更新器是按顺序训练的。

1.3  本文的思想

将多分辨率 分析的思想集成到神经网络中, 并用于处理二维的图片数据, 从而实现分类。

通过反向传播可以实现一维(1D)信号的提升方案。DAWN 架构扩展了这个想法来解决分类任务,并将多分辨率分析集成到神经网络中。该模型以端到端的方式训练二维 (2D) 提升方案的参数,在分类网络的核心执行多分辨率分析。以前的基于小波的CNN方法在学习小波参数时都没有进行这种端到端训练。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oHYPHXGn-1690082593071)(/home/respecting-god/.config/Typora/typora-user-images/image-20230722185829513.png)]

2D自适应提升方案由水平提升步骤和两个独立的垂直提升步骤组成,生成小波变换的四个子带。这些子带分别表示为 LL、LH、HL 和 HH,其中 L 和 H 分别表示低频和高频信息,第一和第二位置分别表示水平和垂直方向。请注意,如图 1 (a) 所示的 2D 提升方案执行空间池化,因为输出空间大小相对于输入减少了一半。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 自适应小波滤波是一种信号处理技术,可以根据不同信号的特性进行滤波处理。在MATLAB中,可以使用MATLAB自带的小波函数进行自适应小波滤波。 首先,加载待滤波的信号数据,并选择适当的小波基函数。MATLAB中提供了多种小波基函数,如Haar小波、Daubechies小波等。根据信号的特性选择合适的小波基函数。 然后,使用WAVEDEC函数对信号进行小波分解,得到每一层的小波系数和近似系数。小波分解将信号分解成不同频率的子带。 接下来,通过设置合适的阈值来对小波系数进行滤波。常用的方法是使用软阈值方法或硬阈值方法。软阈值方法将小于阈值的系数置零,而硬阈值方法则保留大于阈值的系数。 最后,使用WAVEDEC函数对滤波后的小波系数和近似系数进行反变换,得到滤波后的信号。 在MATLAB中,可以使用以下代码实现自适应小波滤波: 1. 加载信号数据: data = load('signal_data.mat'); 2. 选择小波基函数: wavelet = 'db4'; 3. 进行小波分解: [C, L] = wavedec(data, n, wavelet); 4. 对小波系数进行滤波: threshold = 0.5; Cfilt = wthresh(C, 's', threshold); 5. 进行反变换: data_filt = waverec(Cfilt, L, wavelet); 这样就可以得到滤波后的信号data_filt。根据需要可以调整阈值大小来控制滤波效果,使得自适应小波滤波更加符合信号的特性。 ### 回答2: 自适应小波滤波是一种在MATLAB中使用小波分析和滤波技术的方法。该方法通过将信号分解成不同频率的小波系数,并根据信号特征进行自适应滤波。 在MATLAB中,可以使用Wavelet Toolbox来实现自适应小波滤波。首先,需要选择适当的小波基函数和滤波器来对信号进行分解与重构。常用的小波基函数有Haar、Daubechies等。 使用matlab自带的wavedec函数可以将信号分解成小波系数。例如,通过以下代码可以对信号x进行小波分解: [c,l] = wavedec(x,n,wname) 其中,x为输入信号,n为小波分解的层数,wname为小波基函数的名称。函数返回的c为小波系数,l为每个分解层的长度。 根据信号的特征,可以对小波系数进行自适应滤波。常用的自适应滤波方法包括阈值滤波、软阈值和硬阈值等。阈值的选取可以基于信号的统计特性或经验。 使用matlab中的wden函数可以对小波系数进行阈值滤波。例如,以下代码使用软阈值对小波系数进行滤波: cnew = wden(c,'rigrsure','s',sorh,'sln',lvl,wname) 其中,c为小波系数,'rigrsure'为阈值选择方法,'s'为软阈值类型,sorh为阈值类型(可选's'、'h'),lvl为阈值水平,wname为小波基函数名称。函数返回滤波后的小波系数cnew。 最后,可以使用waverec函数将滤波后的小波系数重构成滤波后的信号。例如,通过以下代码可以实现重构: y = waverec(cnew,l,wname) 其中,cnew为滤波后的小波系数,l为分解时每个层的长度,wname为小波基函数名称。函数返回滤波后的信号y。 通过以上步骤,可以实现自适应小波滤波的MATLAB代码实现。需要根据实际情况选择合适的小波基函数和滤波器,并进行自适应滤波参数的调整,以获得滤波效果。 ### 回答3: 自适应小波滤波是一种信号处理技术,常用于去除信号中的噪声。在Matlab中,可以利用信号处理工具箱中的函数来实现自适应小波滤波。 首先,需要将要处理的信号读取到Matlab中。可以使用`audioread`函数读取音频信号,或使用`load`函数读取其他类型的信号数据。 接下来,选择合适的小波基函数。Matlab中提供了一些常用的小波基函数,如Daubechies、Symlets、Coiflets等。可以使用`wfilters`函数获得这些小波基函数的详细信息。 然后,通过调用`wdenoise`函数来实现自适应小波滤波。该函数需要指定输入信号、小波基函数、滤波方法和滤波参数等参数。常见的滤波方法包括硬阈值和软阈值,选择合适的滤波方法需要根据具体的信号特点。 最后,通过绘图函数如`plot`、`specgram`等来展示滤波后的信号。可以比较滤波前后的差异,评估滤波效果。 需要注意的是,自适应小波滤波的效果可能与信号的特性有关,因此可能需要根据实际情况进行参数调整和优化,以达到最佳的滤波效果。 总而言之,使用Matlab实现自适应小波滤波可以通过选择合适的小波基函数、调整滤波方法和参数等步骤来实现。在实际应用中,可以根据实际需要来进行更详细的算法优化和参数调整,以满足不同信号处理的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值