图像处理01 小波变换

一.为什么需要离散小波变换

连续小波分解,通过改变分析窗口大小,在时域上移动窗口和基信号相乘,最后在全时域上整合。通过离散化连续小波分解可以得到伪离散小波分解, 这种离散化带有大量冗余信息且计算成本较高。

小波变换的公式如下:

​ ​​


​​

复制代码
通过下面步骤即可得到不同尺度下的小波变换。

二.离散小波变换

复制代码
我们将小波的尺度和平移参数以2的指数幂的形式进行变换,我们可以得到一串不同的小波。这些子小波的尺度参数以2的j次方的形式增长。当使用这一系列的子小波,对一个连续函数进行离散分析时,我们所获得的是一组小波分析的系数,这个分析过程称为**小波系列分解**。

而高尺度小波代表着低频信息,小尺度的小波代表着高频信息。

因此如下图所示,不同尺度的小波来实现频率上的覆盖。

​

​

复制代码
因此我们可以理解,为什么离散小波变换可以等效为通过一个高通和低通滤波器。

更直观的可以用下面的图片来表示。

​

​

‍

三.直观意义

当我们懂了上面的内容,再来看看小波变换的过程,是否能有了以下体会。

小波分解的多尺度可以类比为我们使用不同的"放大镜"去观察一个物体。想象一下你手里有一张非常复杂的画,画面上有大的物体,如山脉、树木,但也有非常细小的细节,如叶子上的纹理或昆虫的触角。
粗尺度(低分辨率) :当你使用低倍的放大镜(或者站得很远)去看这幅画时,你可以看到大的物体,如山脉和树木,但可能看不到细小的纹理或昆虫。在小波分解中,这就像我们查看信号的低频部分,捕获其主要的、宽泛的特征。
细尺度(高分辨率) :现在,如果你换一个高倍的放大镜(或者走近一些)去看同一幅画,你可能会失去对整体的感知,但可以清晰地看到叶子上的纹理或昆虫的触角等细节。在小波分解中,这就像我们查看信号的高频部分,捕获其细节和快速的变化。

小波分解的美妙之处在于,它同时提供了多个尺度的视角,让我们既可以看到信号的整体特征,又可以看到其细节。这就像我们可以同时拥有多个不同倍率的放大镜,让我们在需要的时候选择合适的一个来观察画面。

‍

四.小波变换实现分解和重构。

如图a是带有噪声的信号,经过4层小波变换得到的变换后的先后如下。

​

代码如下所示:

复制代码
%% 1.生成仿真信号
Fs = 1000; % 采样频率
t = 0:1/Fs:1-1/Fs; % 时间向量
% 创建一个合成信号:包含不同频率的正弦波、趋势和噪声
signal = cos(2*pi*10*t) + 0.5*sin(2*pi*50*t) + t + 0.5*randn(size(t));
figure('color','white')
subplot(3,2,1)
%%  2.绘制DWT分解图
subplot(6,1,1);
plot(signal)
ylabel(['a']);
[C,L] = wavedec(signal,4,waveletType);
for i=1:4
    a = wrcoef('a',C,L,waveletType,5-i);
    subplot(6,1,i+1);
    plot(a);
    ylabel(['a',num2str(5-i)]);
end

‍

相关推荐
方方洛3 分钟前
ai-agent教程-18-附录E-推荐阅读与资源
人工智能·llm·agent
const_qiu5 分钟前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
石狮松松14 分钟前
第 05 章 你的第一行"AI"代码:拟合一条直线
人工智能
用户3600555790014 分钟前
Kestrel_VLLM - 14 · router 两个方向判否,与 decode 的真瓶颈
人工智能
狒狒AI17 分钟前
Remotion / GSAP+Three / HyperFrames / Skia 四栈实测:代码渲染知识视频的选栈方法(附开源技能)
前端·人工智能·aigc
自养Agent22 分钟前
Agent Harness 从用到会造:报错的那层,往往不是坏掉的那层
人工智能
RockChinQ22 分钟前
一个 Telegram 群,三条事件路由:欢迎、群规问答与群管理各归一个 Agent
人工智能
果霸大叔25 分钟前
从根上吃透AI Agent:Agent拆解系列之DeerFlow2.0深度拆解
人工智能
2025的限定小孙25 分钟前
AI自己写的SQL自己跑?把执行权从模型手里拿走的三层闸
人工智能
用户4270192301226 分钟前
排障实录 :OpenClaw 升级失败三次,我是怎么把系统救回来的
人工智能