数字图像处理入门(10)-小波变换

一、前言

  数字图像处理第七章的小波和多分辨率处理学不走了,把小波变换基础学习一下。如果有人不小心查看到这篇文章,建议跳过这里,直接阅读:

https://blog.csdn.net/hellozex/article/details/78330923
https://blog.csdn.net/hellozex/article/details/78330923

二、基础概念

2.1 傅里叶变换基本原理

参考知乎:https://www.zhihu.com/question/22864189/answer/40772083

  • 傅里叶变换公式如下:

  • 原始信号如下:

  • 基函数如下:

  • 总结:说到底,这就是一个搞基的过程,通过对基的伸缩、平移。缩得窄,对应高频;伸得宽,对应低频。然后这个基函数不断和信号做相乘。某一个尺度(宽窄)下乘出来的结果,就可以理解成信号所包含的当前尺度对应频率成分有多少。于是,基函数会在某些尺度下,与信号相乘得到一个很大的值,因为此时二者有一种重合关系,那么我们就知道信号包含该频率的的成分有多少。

  • 缺点:由于基函数的能量范围是整个空间,对于一些平稳的信号可以很好的处理,比如周期函数。但是现实中大多数信号都是非平稳信号,能量范围是整个空间的基函数,傅里叶之后的频域就只有频率幅值,这样就会丢失时域信息。这里可能会有几个问题:

    • 傅里叶的本质是作甚?
      答:他想表达的是一种变化,低频表示变化慢的地方,高频表示变化快的地方。如果对方波进行高通滤波,出来的信号只剩下了方波信号翻转的地方,有点类似于周期冲击信号。

    • 傅里叶怎么就会丢失时域信息。
      答:这个问题我也没有想通,傅里叶并不会丢失时域信息,他有相位信息保留时域,但是他会非常不直观,无法直接从频域中看到。我们的终极目标是得到时域的哪些位置变化快慢以及这些位置的频域分量,而傅里叶无法准确直观的给出这个信息,所以才说他丢失了时域信息。

    • 有什么方法
      答:改变傅里叶的基,接下来的事情就是找一个好基,进行搞基。

2.2 小波变换基本原理

其实严格说来,傅里叶变换算小波变换的一种特殊情况

2.2.1 基础概念

  小波变换之于傅里叶变换的一大区别就是将傅里叶的正弦波(时域无穷)替换成了一种时域有限的波,具体波的形式可以自由设定。举例如下:

  这里我心里产生了一个问题:那出来的就不是真正的频谱了啊,还有意义吗?这里我想到一种可能,虽然小波变换后不是真正的频谱,但是他依旧可以表示信号变化的快慢,并且由于小波是一种带衰减的信号,变换过后可以保留时域信息。

2.2.2 公式定义
  • 公式:
  • 公式说明:相比于傅里叶变换自由一个变量$w$,这里拥有尺度a,和平移系数$tau$。其中尺度a对应着小波函数的伸缩,平移系数$tau​$对应于时间。

三、小波变换公式

3.1 公式推导

参考文章:
https://blog.csdn.net/zlcnup/article/details/50932563
https://blog.csdn.net/u014485485/article/details/78672184
https://blog.csdn.net/shenziheng1/article/details/52989253

3.1.1 小波变换理论

  如果$psi(t)∈L^2 (R)$,称$ϕ(t)$为一个基本的小波和母小波,其中$L^2 (R)$指均方可积空间。小波一定满足:$int_{- infty}^{ infty}psi(t)dt = 0$,这也是称之为”小波“的意义。将母函数进行伸缩和平移后,可以得到小波序列:$psi_{a,b}(t) = frac{1}{sqrt a}psi(frac{t-b}{a})~(a,b∈R,a≠0)$,其中a,b分别为伸缩因子和平移因子。

3.1.2 连续小波变换

  连续小波正变换变换的定义如下,这里面有两个变量a,b,它们分别控制小波的两个变换。

  • 其中应当满足:
    从定义可以看出:小波变换和傅立叶变换一样,$WT(a,tau)$也是一种变换,为小波变换系数,也可见其与傅立叶变换的区别。
  • 逆变换公式:这里需要做两条重要的说明:
    (1)必须满足“先要条件”,反变换才存在。
    (2)在实际应用中,对基本小波的要求往往不局限于满足容许条件,对$psi(t)$还要施加所谓“正则性条件”,使在频域上表现出较好的局域性能。为了在频域上有较好的局域性,要求 $psi(w)$随$a$的减小而迅速减小,所以这就要求$WT_f(a,tau)$的前$n$阶原点距为0,且$n$值越高越好。

  • 小波变换的性质:
    线性、时移共变性、时标定理、微分运算、能领守恒、冗余度
  • 连续小波变换的步骤
    (1)选择小波函数及其尺度$a​$值。
    (2)从信号的起始位置开始,将小波函数和信号进行比较,即计算小波系数。
    (3)沿时间轴移动小波函数,即改变参数$b​$,在新的位置计算小波系数,直至信号的终点。
    (4)改变尺度$a​$值,重复(2)、(3)步。
  • 设计原则:
    $a$为尺度;$Delta$为采样间隔;$F_c$为小波的中心频率;$F_a$为伪频率。
3.1.3 离散小波变换

连续是采集不到的,计算机都是对离散数据进行处理

  为了减小小波变换系数的冗余度,我们将小波基函数的$a、tau$限定在一些离散的点上取值。

  • 尺度的离散化。
    目前通行的做法是对尺度进行幂数级离散化,即令$a$取:

    则,小波函数为:

  • 位移离散化

      通常对$tau$进行均匀离散取值,以覆盖整个时间轴, $tau$满足Nyquist采样定理。在$a=2^j$时,沿$tau$轴的响应采样间隔是$2^jτ_0$,在$a_0=2$情况下,j增加1,则尺度$a$增加一倍,对应的频率减小一半。此时采样率可降低一半而不导致引起信息的丢失。

  • 此时,离散小波定义为:

    一般,取$a_0=2$,则$a=2^j,τ=2^jkτ_0$,则采样间隔为$τ=2^jτ_0$
    当$a=2^j$时,$τ$的采样间隔是$2^jτ_0$,此时,$psi_{a,t} (t)$变为:

    一般将$tau_0$归一化,即$tau_0 = 1$,于是有:

    此时,对应的$WT_f$为:

    3.2 Matlab测试效果

搞不懂,必须实践一下,和上述公式推导无关,纯粹为了检验小波变换效果。matlab使用cwt做小波变换

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
t=0 : 0.01 :12;
s = 1:0.3:10;
f = square(2*t,50) + 0.1*randn(1,length(t));

figure(1)
plot(t,f)
axis([0,12,-2,2]);
title('原图');
ylabel('幅度');
xlabel('时间');

figure(2)
coef = cwt(f,s,'db3');
surf(t,s,coef)
title('小波变换图');
ylabel('尺度');
xlabel('时间');

运行效果:


从图片中可以清晰看出,在信号突变的位置,频率分量比较大。

四、小波变换在图像处理上面的应用

猜你喜欢

转载自www.cnblogs.com/wangziqiang123/p/11690377.html