从傅里叶到小波变换
小波,一个神奇的波,可长可短可胖可瘦(伸缩平移),当去学习小波的时候,第一个首先要做的就是回顾傅立叶变换,因为他们都是频率变换的方法,而傅立叶变换是最基础的,也是最先了解的。
通过傅立叶变换,了解缺点,改进,慢慢的就成了小波变换。主要的关键方向是 傅立叶变换、短时傅立叶变换,小波变换等,第二代小波的什么的就不说了,太多了没有意义。当然,其中会看到很多的名词,例如,内积,基,归一化正交,投影,Hilbert空间,多分辨率,父小波,母小波 ,这些不同的名词也是学习小波路上的标志牌,所以在刚学习小波变换的时候,沿着三个方向和标志牌,可以顺利的走下去。
基
傅立叶变换和小波变换,都会听到分解和重构,其中这个就是根本,因为它们的变化都是将信号看成由若干个东西组成的,而且这些东西能够处理还原成比原来更好的信号。那怎么分解呢?那就需要一个分解的量,也就是常说的基,基的了解可以类比向量,向量空间的一个向量可以分解在 x x x, y y y方向,同时在各个方向定义单位向量 e 1 e_1 e1、 e 2 e_2 e2,这样任意一个向量都可以表示为 a = x e 1 + y e 2 a=xe_1+ye_2 a=xe1+ye2,这个是二维空间的基。
而对于傅立叶变换的基是不同频率的正弦曲线,所以傅立叶变换是把信号波分解成不同频率的正弦波的叠加和,而对于小波变换就是把一个信号分解成一系列的小波,这时,也许就会问,小波是什么啊,因为这个小波实在是太多,一个是种类多,还有就是同一种小波还可以尺度变换,但是小波在整个时间范围的幅度平均值是0,具有有限的持续时间和突变的频率和振幅,可以是不规则,也可以是不对称,很明显正弦波就不是小波,什么是呢,看下面几个图就是:
当有了基,以后有什么用呢?下面看一个傅立叶变换的实例:对于一个信号的表达式为
x
=
sin
(
2
∗
π
∗
t
)
+
0.5
∗
sin
(
2
∗
π
∗
5
∗
t
)
x=\sin(2*\pi*t)+0.5*\sin(2*\pi*5*t)
x=sin(2∗π∗t)+0.5∗sin(2∗π∗5∗t)
这里可以看到是它的基就是
sin
\sin
sin 函数,频率是 1 和 5 ,下面看看图形的表示,是不是感受了到了频域变换给人的一目了然。
t = 0:1/50:6-1/50;
x=sin(2*pi*t)+0.5*sin(2*pi*5*t);
subplot(211);
plot(t,x);
title('sin Magnitude');
y = fft(x);
f = (0:length(y)-1)*50/length(y);
subplot(212);
plot(f,abs(y));
axis([0 25,-10,150]);
title('fft Magnitude');
基具有极大无关性,但若去掉其中任何一个,则不成为基,这一点也叫完备性;基的表示有唯一性,即给定一族基对一个函数的表达是唯一的。
一般情况下基是非正交的,也称为 exact frame(Resize basis),这个时候要表示信号可以将基正交化成唯一的正交基;也可以求其对偶框架(dual frame)。信号可以依框架分解,然后用对偶框架重构。若在基集里添加一些新的向量,并随意调整空间位置,则有可能成为框架。
把函数与基(或框架)作内积,也可以说成是一种函数空间到系数空间的变换。若某种变换后的能量(内积的平方和度量)仍然有一个大于0的上下界,才可以成为框架,由于框架的冗余性,所以系数的表达也不具有唯一性。若上下界相等,则为紧框架,且界表示冗余度。可能你会问我们用基来表示信号就行了啊,为什么还要框架呢?其实很多信号表示方法不能构成基,却能构成框架,如短时傅立叶变换中若是要求窗函数满足基条件,则可推出该函数有很差的时频局部化性质(事实上退化为了傅立叶变换)。
内积
距离就是一个抽象的概念,定义了距离后,再加上线性结构(如向量的加法、数乘),使其满足交换律、结合律等八点要求,从而形成一个线性空间,这个线性空间就是向量空间。在向量空间中,我们定义了范数的概念,表示某点到空间零点的距离,是一个强化了的距离概念。
赋予范数或者距离的集合分别称为:赋范空间 和 度量空间
若在其上再加上线性结构称为:线性赋范空间 和 线性度量空间
赋范空间有向量的模长(范数)。但还缺乏一个很重要的概念:两个向量的夹角,为了克服这一缺陷,我们引入内积,这是线性赋范空间上继续扩展的结果。
距离 ⟶ \longrightarrow ⟶范数 ⟶ \longrightarrow ⟶内积
线性赋范空间+内积运算 ⟶ \longrightarrow ⟶内积空间
这时的内积空间已经有了距离、长度、角度等,有限维的内积空间也就是欧氏空间。继续在内积空间上扩展,使得内积空间满足完备性,形成希尔伯特空间如下:
赋范空间+线性结构 ⟶ \longrightarrow ⟶线性赋范空间 ⟹ \Longrightarrow ⟹线性赋范空间+内积运算 ⟶ \longrightarrow ⟶内积空间
欧氏空间 ⟶ \longrightarrow ⟶内积空间+完备性 ⟶ \longrightarrow ⟶希尔伯特空间
其中完备性的意思就是空间中的极限运算不能跑出该空间。希尔伯特空间是欧几里德空间的一个推广,不再局限于有限维的情形。在 Hilbert 空间里,用来刻画两个向量的夹角,当内积为 0 时,两个向量正交,若 $g $ 为 Hilbert 空间里的正交基的时候,内积
⟨
f
(
t
)
,
g
(
t
)
⟩
\langle f(t),g(t)\rangle
⟨f(t),g(t)⟩ 为 $f $ 在基上的正交投影。
⟨
f
(
x
)
,
g
(
x
)
⟩
=
∫
0
2
π
f
(
x
)
⋅
g
(
x
)
d
x
=
0
\langle f(x), g(x) \rangle = \int_{0}^{2\pi} f(x) \cdot g(x) dx=0
⟨f(x),g(x)⟩=∫02πf(x)⋅g(x)dx=0
若
x
(
t
)
,
y
(
t
)
x(t),y(t)
x(t),y(t) 分别是向量
t
t
t 的函数,则两者之间的内积定义为:
⟨
x
(
t
)
,
y
(
t
)
⟩
=
∫
a
b
x
H
(
t
)
⋅
y
(
t
)
d
t
=
∥
x
(
t
)
∥
⋅
∥
y
(
t
)
∥
cos
θ
\langle x(t),y(t)\rangle=\int_a^bx^H(t) \cdot y(t)dt=\Vert x(t)\Vert \cdot \Vert y(t)\Vert \cos \theta
⟨x(t),y(t)⟩=∫abxH(t)⋅y(t)dt=∥x(t)∥⋅∥y(t)∥cosθ
∥
x
(
t
)
∥
=
∫
a
b
x
H
(
t
)
⋅
x
(
t
)
d
t
\Vert x(t)\Vert = \sqrt{\int_a^bx^H(t) \cdot x(t)dt}
∥x(t)∥=∫abxH(t)⋅x(t)dt
正交基
假设在
R
n
\mathbb{R}^n
Rn 空间中,有
n
n
n 个正交向量
v
1
,
v
2
,
⋯
,
v
n
v_1,v_2,⋯,v_n
v1,v2,⋯,vn,那么任意向量
x
x
x 可表示为:
x
=
c
1
v
1
+
c
2
v
2
+
⋯
+
c
n
v
n
x = c_1v_1 + c_2v_2 + \cdots + c_nv_n
x=c1v1+c2v2+⋯+cnvn
由于是正交基,计算系数
c
i
ci
ci 可以非常简单,上面等式两边同时乘以
v
i
vi
vi,
v
i
T
x
=
c
i
v
i
T
v
i
⇒
c
i
=
v
i
T
x
v
i
T
v
i
v_i^Tx = c_iv_i^Tv_i \Rightarrow c_i = \frac{v_i^Tx }{v_i^Tv_i}
viTx=civiTvi⇒ci=viTviviTx
通用正交三角函数如下:
sin
a
x
与
sin
b
x
正
交
cos
a
x
与
cos
b
x
正
交
sin
a
x
与
cos
b
x
正
交
\sin ax与\sin bx正交 \\ \cos ax与\cos bx正交 \\ \sin ax与\cos bx正交
sinax与sinbx正交cosax与cosbx正交sinax与cosbx正交
傅里叶级数
傅里叶级数的核心思想是:任何周期函数都可以展开为三角级数。根据基于向量的类似方法,在
[
0
,
2
π
]
[0,2 \pi]
[0,2π] 之间的可积(不一定连续)函数
f
(
x
)
f(x)
f(x),可以展开为如下形式
f
(
x
)
=
a
0
+
a
1
cos
x
+
b
1
sin
x
+
a
2
cos
2
x
+
b
2
sin
2
x
+
⋯
f(x) = a_0 + a_1 \cos x + b_1\sin x + a_2 \cos 2x + b_2 \sin 2x + \cdots
f(x)=a0+a1cosx+b1sinx+a2cos2x+b2sin2x+⋯
系数计算:
∫
0
2
π
f
(
x
)
cos
(
n
x
)
d
x
=
∫
0
2
π
a
n
cos
2
(
n
x
)
d
x
=
a
n
π
⟹
a
n
=
1
π
∫
0
2
π
f
(
x
)
cos
(
n
x
)
d
x
\int_{0}^{2\pi} f(x)\cos(nx) dx= \int_{0}^{2\pi} a_n \cos^2(nx)dx=a_n\pi \\ \Longrightarrow a_n = \frac{1}{\pi}\int_{0}^{2\pi} f(x)\cos(nx) dx
∫02πf(x)cos(nx)dx=∫02πancos2(nx)dx=anπ⟹an=π1∫02πf(x)cos(nx)dx
∫ 0 2 π f ( x ) sin ( n x ) d x = ∫ 0 2 π a n sin 2 ( n x ) d x = b n π ⟹ b n = 1 π ∫ 0 2 π f ( x ) sin ( n x ) d x \int_{0}^{2\pi} f(x)\sin(nx)dx= \int_{0}^{2\pi} a_n \sin^2(nx) dx=b_n\pi \\ \Longrightarrow b_n = \frac{1}{\pi}\int_{0}^{2\pi} f(x)\sin(nx) dx ∫02πf(x)sin(nx)dx=∫02πansin2(nx)dx=bnπ⟹bn=π1∫02πf(x)sin(nx)dx
sin a x 与 cos b x 在 周 期 内 的 积 分 = 0 ⟹ ∫ 0 2 π a 0 d x = ∫ 0 2 π f ( x ) d x ⟹ a 0 = 1 2 π ∫ 0 2 π f ( x ) d x \sin ax 与 \cos bx 在周期内的积分 =0 \Longrightarrow \int_{0}^{2\pi} a_0 dx= \int_{0}^{2\pi}f(x)dx \\ \Longrightarrow a_0=\frac{1}{2\pi} \int_{0}^{2\pi}f(x)dx sinax与cosbx在周期内的积分=0⟹∫02πa0dx=∫02πf(x)dx⟹a0=2π1∫02πf(x)dx
傅立叶级数的指数形式
f ( t ) = a 0 + a 1 cos t + a 2 sin t + a 3 cos 2 t + a 4 sin 2 t + … f(t) = a_0 + a_1 \cos t + a_2 \sin t + a_3 \cos 2t + a_4 \sin 2t+ \ldots f(t)=a0+a1cost+a2sint+a3cos2t+a4sin2t+…
傅里叶级数表达式是时域表达式,并没有涉及到频域概念,仔细想想,我们只是将时间轴上的周期函数分解为时间轴上的一系列不同频率的在时域上的正余弦函数的叠加,仅此而已。如果不扯上时间的概念,就是傅里叶级数展开前后的所有函数自变量都是**横坐标 ** t t t,没有变化。
这里有正弦波,也有余弦波,画频域图也不方便。首先摆脱繁琐的正弦表达方式,欧拉公式 登场。函数周期不是
2
π
2 \pi
2π的时候,表达式稍有变化:
sin
2
π
n
T
t
=
sin
(
2
π
n
f
0
t
)
\text{sin} \frac{2 \pi n}{T} t = \text{sin} (2 \pi n{f_0}t)
sinT2πnt=sin(2πnf0t)。
f
(
t
)
=
∑
k
=
0
∞
(
a
k
cos
2
π
f
0
k
t
+
b
k
sin
2
π
f
0
k
t
)
=
∑
k
=
0
∞
(
a
k
e
j
2
π
f
0
k
t
+
e
−
j
2
π
f
0
k
t
2
+
b
k
e
j
2
π
f
0
k
t
−
e
−
j
2
π
f
0
k
t
2
j
)
=
∑
k
=
0
∞
(
a
k
−
j
b
k
2
e
j
2
π
f
0
k
t
+
a
k
+
j
b
k
2
e
−
j
2
π
f
0
k
t
)
=
∑
k
=
0
∞
(
A
k
e
j
2
π
f
0
k
t
+
B
k
e
−
j
2
π
f
0
k
t
)
f(t)=\sum_{k=0}^{\infty}{(a_k \cos2\pi f_0kt+b_k \sin2\pi f_0kt)}\\ =\sum_{k=0}^{\infty}{(a_k\frac{e^{j2\pi f_0kt}+e^{-j2\pi f_0kt}}{2}+b_k\frac{e^{j2\pi f_0kt}-e^{-j2\pi f_0kt}}{2j})}\\ =\sum_{k=0}^{\infty}{(\frac{a_k-jb_k}{2}e^{j2\pi f_0kt}+\frac{a_k+jb_k}{2}e^{-j2\pi f_0kt})}\\ =\sum_{k=0}^{\infty}{(A_ke^{j2\pi f_0kt}+B_ke^{-j2\pi f_0kt})}
f(t)=k=0∑∞(akcos2πf0kt+bksin2πf0kt)=k=0∑∞(ak2ej2πf0kt+e−j2πf0kt+bk2jej2πf0kt−e−j2πf0kt)=k=0∑∞(2ak−jbkej2πf0kt+2ak+jbke−j2πf0kt)=k=0∑∞(Akej2πf0kt+Bke−j2πf0kt)
令 C k = { A k k ≥ 0 B k k < 0 ⟹ f ( t ) = ∑ k = − ∞ ∞ C k e j 2 π f 0 k t 令 C_k =\begin{cases}A_k & k \geq 0\\B_k & k < 0\end{cases} \Longrightarrow \boxed{f(t)=\sum_{k=-\infty}^{\infty}{C_ke^{j2\pi f_0kt}}} 令Ck={AkBkk≥0k<0⟹f(t)=k=−∞∑∞Ckej2πf0kt
可能细心的你发现了,指数展开式中的频率有了负数,因为 k k k 的范围扩展到了负数无穷大。但它不是负频率,它代表的仅仅是频率的序号值。此外,频谱扩展到所有的整数倍,所以有别于仅有正整数的单边谱,我们称其为双边谱。
求解系数的思路如下:
f ( t ) = ⋯ + C m e 2 π i m t + ⋯ f(t)=\cdots +C_{m}e^{2\pi imt}+\cdots f(t)=⋯+Cme2πimt+⋯
C m e 2 π i m t = f ( t ) − ∑ k ≠ m C k e 2 π i k t C_{m}e^{2\pi imt}=f(t)-\sum_{k\neq m}C_{k}e^{2\pi ikt} Cme2πimt=f(t)−∑k̸=mCke2πikt
C m = e − 2 π i m t ∗ f ( t ) − ∑ k ≠ m ( C k e − 2 π i m t e 2 π i k t ) C_{m}=e^{-2\pi imt}*f(t)-\sum_{k\neq m}(C_{k}e^{-2\pi imt}e^{2\pi ikt}) Cm=e−2πimt∗f(t)−∑k̸=m(Cke−2πimte2πikt)
∫ 0 1 C m d t = C m = ∫ 0 1 e − 2 π i m t ∗ f ( t ) d t − ∑ k ≠ m C k ∫ 0 1 e 2 π i ( k − m ) t d t \int_{0}^{1}C_{m}dt=C_{m}=\int_{0}^{1}e^{-2\pi imt}*f(t)dt-\sum_{k\neq m}C_{k}\int_{0}^{1}e^{2\pi i(k-m)t}dt ∫01Cmdt=Cm=∫01e−2πimt∗f(t)dt−∑k̸=mCk∫01e2πi(k−m)tdt
∫ 0 1 e 2 π i ( k − m ) t d t = [ 1 2 π ( k − m ) e 2 π i ( k − m ) t ] 1 0 \int_{0}^{1}e^{2\pi i(k-m)t}dt=[\frac{1}{2\pi (k-m)}e^{2\pi i(k-m)t}]\begin{matrix}1\\0\end{matrix} ∫01e2πi(k−m)tdt=[2π(k−m)1e2πi(k−m)t]10
∫ 0 1 e 2 π i ( n − m ) t d t = { 1 if m = n 0 if m ≠ n \int_{0}^{1}e^{2\pi i(n-m)t}dt=\begin{cases}1&\text{ if } m=n \\0&\text{ if } m\neq n\end{cases} ∫01e2πi(n−m)tdt={10 if m=n if m̸=n
C m = ∫ 0 1 e − 2 π i m t f ( t ) d t ⟹ C n = 1 T ∫ 0 T f ( t ) e − j 2 π n f 0 t d t C_{m}=\int_{0}^{1}e^{-2\pi imt}f(t)dt \Longrightarrow \boxed{C_{n}=\frac{1}{T} \int_{0}^{T} f(t) e^{-j2\pi n{f_0}t}dt} Cm=∫01e−2πimtf(t)dt⟹Cn=T1∫0Tf(t)e−j2πnf0tdt
如果信号不是周期信号怎么办? 非周期函数可以写出傅立叶级数吗?
傅里叶变换
观察下傅里叶级数对应的频域图,对于周期为
T
T
T 的函数
f
(
t
)
f(t)
f(t),可以表示为类似于向量的方式,其基为:
{
1
,
sin
(
x
)
,
cos
(
x
)
,
sin
(
2
x
)
,
cos
(
2
x
)
…
}
\{1, \text{sin}(x), \text{cos}(x), \text{sin}(2x), \text{cos}(2x) …\}
{1,sin(x),cos(x),sin(2x),cos(2x)…}
基对应的各个坐标为:
{
1
,
4
π
,
0
,
4
3
π
,
0
…
}
\{1, \frac{4}{\pi}, 0, \frac{4}{3 \pi}, 0 …\}
{1,π4,0,3π4,0…}(注:这是一个多维的图,难以画出坐标图,只能用频域图表示)。
结论:周期函数的傅里叶变换(傅里叶级数)对应非周期离散的函数。
f ( t ) = ∑ k = − ∞ ∞ C k ⎵ 基 坐 标 e j 2 π f 0 k t ⎵ 正 交 基 f(t)=\sum_{k=-\infty}^{\infty}\ \ {\underbrace{C_k}_{基坐标} \ \ \ \underbrace{e^{j2\pi f_0kt}}_{正交基}} f(t)=k=−∞∑∞ 基坐标 Ck 正交基 ej2πf0kt
C k C_k Ck 是复数。非周期可以当作 T = ∞ T=\infty T=∞ 处理(即 f 0 = 0 f_0 = 0 f0=0)。
C n = 1 T ∫ − T 2 T 2 f ( t ) e − j 2 π n f 0 t d t ⟹ C n f 0 = ∫ − T 2 T 2 f ( t ) e − j 2 π n f 0 t d t \boxed{C_{n}=\frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f(t) e^{-j2\pi n{f_0}t}dt \Longrightarrow \frac{C_{n}}{f_0}= \int_{-\frac{T}{2}}^{\frac{T}{2}} f(t) e^{-j2\pi n{f_0}t}dt } Cn=T1∫−2T2Tf(t)e−j2πnf0tdt⟹f0Cn=∫−2T2Tf(t)e−j2πnf0tdt
傅里叶变换,通过相互正交的三角函数信号和原信号在无穷上进行积分,积分越大表明信号越相似,包含该频率的三角信号也就越多。
最后,每一个
f
f
f 值对应了一个积分值,获得了频率图。
lim
T
→
∞
f
0
=
1
T
→
d
f
∑
n
=
−
∞
∞
→
∫
−
∞
∞
n
f
0
=
f
\boxed{\lim_{T \to \infty} f_0 = \frac{1}{T} \rightarrow df} \\ \boxed{\sum_{n = -\infty}^{\infty} \rightarrow \int_{-\infty}^{\infty} }\\ \boxed{nf_0 = f}
T→∞limf0=T1→dfn=−∞∑∞→∫−∞∞nf0=f
于是有:
lim
T
→
∞
f
T
(
t
)
=
f
(
t
)
=
lim
T
→
∞
∑
n
=
−
∞
∞
(
1
T
∫
−
∞
∞
f
(
t
)
e
−
j
2
π
f
t
d
t
)
e
j
2
π
n
t
/
T
=
∫
−
∞
∞
[
∫
−
∞
∞
f
(
t
)
e
−
j
2
π
f
t
d
t
‾
]
e
j
2
π
f
t
d
f
\lim_{T\rightarrow\infty}f_{T}(t) = f(t)\\ =\lim_{T\rightarrow\infty} {\sum_{n = -\infty}^{\infty}(\frac{1}{T}\int_{-\infty}^\infty f(t)e^{-j2\pi {f}t}dt)e^{j2\pi nt/T}}\\ = \int_{-\infty}^{\infty} {[\underline{\int_{-\infty}^\infty f(t)e^{-j2\pi {f}t}dt}]e^{j2\pi {f}t}df}\\
T→∞limfT(t)=f(t)=T→∞limn=−∞∑∞(T1∫−∞∞f(t)e−j2πftdt)ej2πnt/T=∫−∞∞[∫−∞∞f(t)e−j2πftdt]ej2πftdf
lim
f
0
→
0
C
n
f
0
=
lim
T
→
∞
∫
−
T
2
T
2
f
(
t
)
e
−
j
2
π
n
f
0
t
d
t
⟹
lim
f
0
→
0
C
n
f
0
=
F
(
f
)
⟹
F
(
f
)
=
∫
−
∞
∞
f
(
t
)
e
−
j
2
π
f
t
d
t
\boxed{ \lim_{f_0 \to 0} \frac{C_{n}}{f_0}=\lim_{T \to \infty} \int_{-\frac{T}{2}}^{\frac{T}{2}} f(t) e^{-j2\pi n{f_0}t}dt \Longrightarrow \lim_{f_0 \to 0} \frac{C_{n}}{f_0}=F(f) \Longrightarrow F(f) = \int_{-\infty}^{\infty} f(t) e^{-j2\pi {f}t}dt}
f0→0limf0Cn=T→∞lim∫−2T2Tf(t)e−j2πnf0tdt⟹f0→0limf0Cn=F(f)⟹F(f)=∫−∞∞f(t)e−j2πftdt
可以深刻认识到, f ( t ) f(t) f(t) 的傅里叶变换 F ( f ) F(f) F(f) 就是频谱密度。周期无穷大后,因为频率样本越来越密集,从而形成连续积分。
傅里叶变换的缺陷
信号分为确定信号和随机信号,随机信号有平稳信号和非平稳信号之分。严格平稳(或狭义平稳)信号是指随机信号的分布对时间移位是不变的。广义平稳信号是指均值和方差不依赖于时间,但其自相关函数仅依赖于时间差。非平稳信号又称时变信号,频率随着时间变化的信号。
对非平稳过程,傅里叶变换有局限性。该链接的图示说明:傅里叶变换只能获取一段信号包含哪些频率,但是对各成分出现的时刻一无所知。因此就会出现时域相差很大的两个信号,可能频谱图一样的情况。那么,我们怎样把这些时间信息加到频率图中去呢?
傅立叶变换有什么缺点?它不适用于非平稳信号。让我们想一下这个问题:我们能不能假定部分非平稳信号是稳定的呢?
短时傅里叶变换
如果我们假定信号为稳定的这个时间段很短,那么我们可以从窄窗中来观察信号,窗口要窄到我们从窗里看到的信号确实是平稳的。研究者们最终确定的这个数学逼近,作为傅立叶变换的一个修改版本,叫做短时傅立叶变换。
基于这个原因,就需要一个窗函数。窗的宽度必须和信号片段的宽度相等,这样它的平稳性才有效。
短时傅里叶变换(Short-time Fourier Transform, STFT)的定义:把整个时域过程分解成无数个等长的小过程,每个小过程近似平稳,再傅里叶变换,就知道在哪个时间点上出现了什么频率了。
新的问题又出现了:窗太窄,窗内的信号太短,会导致频率分析不够精准,频率分辨率差。窗太宽,时域上又不够精细,时间分辨率低。短时傅立叶变换的问题是它的解又会归结到海森堡测不准原理上。这个原理最初是应用在移动粒子的动量和位置的测量上,也可以被用在信号的时频分析上。简单的说,这个原理揭示了我们不能获取信号绝对精确的时频表示。举例来说,我们不知道在某个瞬间哪个频率分量存在。我们知道的是在一个时间段内某个频带的分量存在,这是一个有关分辨率的问题。
所以窄窗口时间分辨率高、频率分辨率低,宽窗口时间分辨率低、频率分辨率高。
如链接第三节所示,对于时变的非稳态信号,高频适合小窗口,低频适合大窗口。然而STFT的窗口是固定的,在一次STFT中宽度不会变化,所以STFT还是无法满足非稳态信号变化的频率的需求。
小波变换
对于加窗傅立叶变换让人头疼的就是窗口的大小问题,如果我们让窗口的大小可以改变就方便了,小波就是基于这个思路,但是不同的是:STFT是给信号加窗,分段做FFT;而小波变换没有采用窗的思想,更没有做傅里叶变换。小波直接把傅里叶变换的基给换了——将无限长的三角函数基换成了有限长的会衰减的小波基。这样不仅能够获取频率,还可以定位到时间。
小波是定义在有限间隔而且其平均值为零的一种函数。小波具有有限的持续时间和突变的频率和振幅,波形可以是不规则的,也可以是不对称的,在整个时间范围里的幅度平均值为零。小波分析是把一个信号分解成将母小波经过平移和缩放之后的一系列小波,因此小波同样可以用作表示一些函数的基函数。
小波变换的原理类似傅里叶变换,只是把三角函数基换成了小波基。与傅里叶变换不同,小波变换有两个变量:
- scale 尺度 a a a:scale 控制小波函数的收缩,其导数即为频率。
- translation 平移量 τ \tau τ:translation 控制小标函数的平移,平移量对应时间。
当伸缩、平移到这么一种重合情况时,积分也会得到一个极大值,这时候和傅里叶变换不同的是,这不仅可以知道信号有这样频率的成分,而且知道它在时域上存在的具体位置。
具体的我们还要学习子空间、多分辨率,母小波的变换,如何去构造想要的小波函数,然后还有离散小波变换,正交小波变换,二维小波变换,小波包的应用。还有很多要学习的。
这里先深入一下,父小波,母小波,多分辨率分析,了解一下伸缩和平移。
任何小波变换的基函数,其实就是对母小波和父小波缩放和平移的集合。
每个小波变换都会有一个mother wavelet,我们称之为母小波,同时还有一个father wavelet,就是scaling function。而该小波的basis函数其实就是对这个母小波和父小波缩放和平移形成的。缩放倍数都是2的级数,平移的大小和当前其缩放的程度有关。
小波系统有很多种,不同的母小波,衍生的小波基就完全不同。小波展开的近似形式如下所示:
连续小波变换
F ( a , b ) = ∫ f ( t ) w ( t − a b ) F(a,b) = \int f(t) w(\frac{t-a}{b}) F(a,b)=∫f(t)w(bt−a)
离散小波变换
f ( t ) = ∑ j , k a j , k 2 j / 2 ψ ( 2 j t − k ) f ( t ) = ∑ j , k a j , k ψ j , k ( t ) f ( t ) = ∑ j , k < ψ j , k , f ( t ) > ψ j , k ( t ) f(t)=\sum_{j,k} a_{j,k} 2^{j/2}\psi(2^j t -k) \\ f(t)=\sum_{j,k} a_{j,k} \psi_{j,k}( t ) \\ f(t)=\sum_{j,k} \left<\ \psi_{j,k} ,f(t) \ \right> \psi_{j,k}( t ) f(t)=j,k∑aj,k2j/2ψ(2jt−k)f(t)=j,k∑aj,kψj,k(t)f(t)=j,k∑⟨ ψj,k,f(t) ⟩ψj,k(t)
和傅立叶级数有一点不同的是,小波级数通常是orthonormal basis,也就是说,它们不仅两两正交,还归一化了。我们还讲了一般小波变换的三个特点,就是小波级数是二维的,能定位时域和频域,计算很快。
在这一篇文章里,我们就来讨论一下这些特性背后的原理。
首先,我们一直都在讲小波展开的近似形式。那什么是完整形式呢?之前讲到,小波basis的形成,是基于基本的小波函数即母小波来做缩放和平移的。但是,母小波并非唯一的原始基。在构建小波基函数集合的时候,通常还要用到一个函数叫尺度函数,scaling function,人们通常都称其为父小波。它和母小波一样,也是归一化了,而且它还需要满足一个性质,就是它和对自己本身周期平移的函数两两正交。另外为了方便处理,父小波和母小波也需要是正交的。可以说,完整的小波展开就是由母小波
ψ
(
t
)
\psi(t)
ψ(t) 和父小波
φ
(
t
)
\varphi(t)
φ(t) 共同定义的。
f
(
t
)
=
∑
j
,
k
a
j
,
k
ψ
j
,
k
(
t
)
<
φ
(
t
)
,
φ
(
t
−
k
T
)
>
=
0
,
∀
k
f
(
t
)
=
∑
k
=
−
∞
∞
c
k
φ
(
t
−
k
)
+
∑
k
=
−
∞
∞
∑
j
=
0
∞
d
j
,
k
ψ
(
2
j
t
−
k
)
f(t)=\sum_{j,k} a_{j,k} \psi_{j,k}(t) \\ \left<\ \varphi(t) ,\varphi(t-kT) \ \right> =0, \ \ \ \forall k \\ f(t) = \sum_{k=-\infty}^{\infty}c_k\varphi(t-k)+ \sum_{k=-\infty}^{\infty} \sum_{j=0}^{\infty}d_{j,k}\psi(2^j t-k)
f(t)=j,k∑aj,kψj,k(t)⟨ φ(t),φ(t−kT) ⟩=0, ∀kf(t)=k=−∞∑∞ckφ(t−k)+k=−∞∑∞j=0∑∞dj,kψ(2jt−k)
参考文献
- http://brunoliu.com/2018/01/03/数字信号处理之傅里叶级数和傅里叶变换-1/
- https://bugxch.github.io/2016/12/07/深入理解傅里叶变换(一)/
- http://www.luyuncheng.com/?p=335
- https://blog.csdn.net/qq_20823641/article/details/51829981
- https://www.zhihu.com/question/21665935/answer/358423678
- https://zhuanlan.zhihu.com/p/32341301
- https://bugxch.github.io/2016/12/11/深入理解傅里叶变换(二)/
- https://zhuanlan.zhihu.com/p/30749908
- 能不能通俗的讲解下傅立叶分析和小波分析之间的关系? - 咚懂咚懂咚的回答 - 知乎
https://www.zhihu.com/question/22864189/answer/40772083 - https://wenku.baidu.com/view/97b7efd1c1c708a1284a44d2.html
- http://blog.younggy.com/2016/06/28/浅谈小波分析/