版权声明:本文为原创文章,未经博主允许不得用于商业用途。
正弦型变换(DST)
离散正弦变换为离散变换的一种,其酉核矩阵元素基于正弦函数,建立在实数域上:
Ti,k=2N+1sin[π(i+1)(k+1)N+1] T_{i,k}=\sqrt{\frac{2}{N+1}}sin[\frac{\pi(i+1)(k+1)}{N+1}] Ti,k=N+12sin[N+1π(i+1)(k+1)]
哈特利变换(Hartley)
哈特利变换用一种最直接的方式将傅里叶变换映射到实数域中,其基函数为
cas(θ)=cos(θ)+sin(θ) cas(\theta)=cos(\theta)+sin(\theta)cas(θ)=cos(θ)+sin(θ)
方波型变换
方波型变换为离散正弦变换的一种,相比于三角函数使用有限方波的叠加作为基函数,因此计算更快。
沃尔什系列变换
沃尔什系列变换包括沃尔什变换(Walsh),哈达玛变换(Hadamard)和定序哈达玛变换。他们都选择最简单是数域{-1,1},并且要求输入矩阵N=2nN=2^{n}N=2n。这是因为2n2^{n}2n个±1刚好可以组成N个正交向量(任意两个基向量汉明距离为2n−12^{n-1}2n−1,在[1...2n][1...2^{n}][1...2n]的空间中可以取到log(2n)=n个log(2^{n})=n个log(2n)=n个)。
由于基向量的有限性,并且三种变换0频向量都为全1向量,因此实际上三种变换使用的是同一组基向量,只是变换了排列顺序。
沃尔什变换使用如下系数形成核矩阵:
Wx,u=∏i=0p−1−1bi(x)bp−1−i(u)W_{x,u}=\prod_{i=0}^{p-1}{-1}^{b_{i}(x)b_{p-1-i}(u)}Wx,u=i=0∏p−1−1bi(x)bp−1−i(u)
其中bi(x)b_{i}(x)bi(x)为x二进制表示中右数第i位是否为一的指示变量,这里其实可以看作x和u二进制数的反序串按位与后逐位作和。
比如要计算N=8N=8N=8时的W1,3W_{1,3}W1,3即可转化为001和110的与,结果为000再逐位相加,因此W1,3=0W_{1,3}=0W1,3=0
哈达玛变换使用如下方法构造核矩阵:
H2=[111−1]H_{2}=\begin{bmatrix}1&1\\1&-1\end{bmatrix}H2=[111−1]
HN=[HN/2HN/2HN/2−HN/2]H_{N}=\begin{bmatrix}H_{N/2}&H_{N/2}\\H_{N/2}&-H_{N/2}\end{bmatrix}HN=[HN/2HN/2HN/2−HN/2]
核矩阵即为1NHN\frac{1}{\sqrt{N}}H_{N}N1HN
定序哈达玛变换即将哈达玛核矩阵按照每一行的 列率(sequency) 从小到大重新排列,列率即一行中符号变化的次数。比如[1 -1 1 1]列率为2,[1 -1 -1 -1]列率为1。
斜变换
写变化的酉核矩阵可以从2维哈尔或哈达玛矩阵迭代生成。这里不做公式说明。
哈尔变换(Haar)
哈尔变换使用哈尔函数作为基函数,与傅里叶变换相比,哈尔函数在尺度(长宽)和位置(坐标)上都有不同,因此需要双重索引机制,即k=2p+q−1k=2^{p}+q-1k=2p+q−1为一个一一映射,k可以唯一决定p和q。
哈尔函数定义如下:
h0(x)=1Nh_{0}(x)=\frac{1}{\sqrt{N}}h0(x)=N1
hk(x)=1N{2p/2q−12p≤x≤q−1/22p−2p/2q−1/22p≤x≤q2p0其他h_{k}(x)=\frac{1}{\sqrt{N}}
\left\{\begin{aligned}
2^{p/2} & &\frac{q-1}{2^{p}}\leq x\leq \frac{q-1/2}{2^{p}} \\
-2^{p/2} & & \frac{q-1/2}{2^{p}}\leq x\leq \frac{q}{2^{p}} \\
0 & & 其他
\end{aligned}
\right.hk(x)=N1⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧2p/2−2p/202pq−1≤x≤2pq−1/22pq−1/2≤x≤2pq其他
其中p用来描述尺度,q描述位置(平移量)。由于哈尔变换同样为对称、可分离酉变换,因此二维哈尔变换可以通过HfHHfHHfH计算,逆变换即为哈尔变换本身。