图像处理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

相关推荐
IT_陈寒4 小时前
Vue这个坑我跳了两次,原来问题出在这
前端·人工智能·后端
新新技术迷5 小时前
Node给AI接口做SSE代理与鉴权
人工智能
redreamSo6 小时前
大模型是不是到顶了?瓶颈到底在哪
人工智能·openai
Oo9206 小时前
Tool Use 背后的技术逻辑
人工智能
姗姗来迟了6 小时前
Vue3封装AI流式对话组件踩坑实录
人工智能
码上天下6 小时前
用Pinia管理AI多会话状态
人工智能
用户054324329707 小时前
Next.js接大模型流式SSE实操踩坑
人工智能
Assby7 小时前
从 Function Calling 到 MCP:理解 Agent 工具调用的底层通信机制
人工智能·后端
小星AI7 小时前
Claude Code 从入门到精通,一步到位
人工智能
后端小肥肠8 小时前
Codex + Obsidian 做人生副本视频:输入主题文案,直通剪映草稿
人工智能·aigc·agent