沃尔什变换
沃尔什变换是由+1或-1的基本函数的级数展开而成的,满足完备正交特性,属于方波型正交变换。由于沃尔什函数是二值正交函数,与数字逻辑中的两个状态相对应,因此它更适用于计算机技术、数字信号处理
一维沃尔什变换
沃尔什变换要求空域矩阵阶数
N满足
N=2n,若满足,则有:
F(μ)=x=0∑N−1f(x)g(x,μ)
g(x,μ)=N1i=0∏n−1(−1)∑i=0n−1bi(x)bn−1(μ)一维沃尔什反变换:
f(x)=x=0∑N−1F(μ)h(x,μ)
h(x,μ)=i=0∏n−1(−1)∑i=0n−1bi(x)bn−1(μ)其中,
bi(x)是
x的二进制表达式中第
i位的意思
例如
N=2n,
n=3,
x=6,则有
x=6=(110)2,可得
b0(x)=0、
b1(x)=1、
b2(x)=1
与傅立叶变换不同,沃尔什变换的变换核是由+1或-1构成的二值对称矩阵
例如:求
N=22的沃尔什变换
F(0)=41x=0∑3[f(x)i=0∏1(−1)bi(x)+b1−i(0)]=41[f(0)+f(1)+f(2)+f(3)]
F(1)=41x=0∑3[f(x)i=0∏1(−1)bi(x)+b1−i(1)]=41[f(0)+f(1)−f(2)−f(3)]
F(2)=41x=0∑3[f(x)i=0∏1(−1)bi(x)+b1−i(2)]=41[f(0)−f(1)+f(2)−f(3)]
F(3)=41x=0∑3[f(x)i=0∏1(−1)bi(x)+b1−i(3)]=41[f(0)−f(1)−f(2)+f(3)]其中方括号中各项的符号即位变换核的符号
可见沃尔什变换的本质是将离散序列
f(x)中各项值的符号按规律改变进行加减运算
二维沃尔什变换
F(μ,ν)=N1x=0∑N−1x=0∑N−1f(x,y)g(x,y,μ,ν)
f(x,y)=N1μ=0∑N−1ν=0∑N−1F(μ,ν)g(x,y,μ,ν)
g(x,y,μ,ν)=G=N1i=0∏n−1(−1)∑i=0n−1[bi(x)bn−1−i(μ)+bi(y)bn−1−i(ν)]表达为矩阵形式为
F=N21GfG
f=GFG
与傅立叶变换一样,二维沃尔什变换是可分离的,可以通过两个一维沃尔什变换完成计算
g(x,y,μ,ν)=g1(x,μ)g2(y,ν)
实例:求离散沃尔什变换
f=⎣⎢⎢⎡1111333333331111⎦⎥⎥⎤可知
N=4,其变换核为
G=⎣⎢⎢⎡111111−1−11−11−11−1−11⎦⎥⎥⎤则有
F=N21GfG=421⎣⎢⎢⎡111111−1−11−11−11−1−11⎦⎥⎥⎤⎣⎢⎢⎡1111333333331111⎦⎥⎥⎤⎣⎢⎢⎡111111−1−11−11−11−1−11⎦⎥⎥⎤=⎣⎢⎢⎡200000000000−1000⎦⎥⎥⎤可以看出,沃尔什变换具有信息集中的作用,原始数据中数字越是均匀分布,变换后的数据越是集中于边角区域
哈达玛变换
与沃尔什变换类似,由哈达玛变换核组成的矩阵是一个正交对称矩阵,属于方波型正交变换,不同之处在于其行、列次序不一样。
一维哈达玛变换
哈达玛变换要求空域矩阵阶数
N满足
N=2n,若满足,则有:
F(μ)=x=0∑N−1f(x)g(x,μ)
g(x,μ)=N1(−1)∑i=0n−1bi(x)bi(μ)一维哈达玛反变换:
f(x)=x=0∑N−1F(μ)h(x,μ)
h(x,μ)=(−1)∑i=0n−1bi(x)bi(μ)
bi(x)是
x的二进制表达式中第
i位的意思
二维哈达玛变换
F(μ,ν)=N1x=0∑N−1x=0∑N−1f(x,y)g(x,y,μ,ν)
f(x,y)=N1μ=0∑N−1ν=0∑N−1F(μ,ν)g(x,y,μ,ν)
g(x,y,μ,ν)=G=N1(−1)∑i=0n−1[bi(x)bi(μ)+bi(y)bi(ν)]二维哈达玛变换是可分离的,可变换为两个一维哈达玛变换来进行计算。
列率
在哈达玛矩阵中,沿列方向上符号改变的次数称为列率,类似傅立叶变换中频率的概念。
例如有矩阵
H=⎣⎢⎢⎡11111−11−111−1−11−1−11⎦⎥⎥⎤
其第一列元素符号无变化,于是第一列的列率为0;
第二列
a12到
a22符号由正变负、
a22到
a32符号由负变正、
a32到
a42符号由正变负,共改变3次,因此第二列的列率为3;以此类推,第三列的列率为1,第四列的列率为2
哈达玛变换在列率上是随机的,不利于实现逐次倍加法的快速运算,但是能导出一个简单的递推关系,构造其变换矩阵,而后进行哈达玛正向和反向变换
哈达玛变换核矩阵
在满足
N=2n的情况下
有最低阶
N=2时的哈达玛变换矩阵
H2为:
H2=[111−1]有任意阶
N=2N时的哈达玛矩阵为:
H2N=[HNHNHN−HN]由此可推得:
H4=[H2H2H2−H2],H8=[H4H4H4−H4],...
将哈达玛矩阵按照列率顺序排列,得到定序的哈达玛变换对为:
F(μ,ν)=N1x=0∑N−1x=0∑N−1f(x,y)g(x,y,μ,ν)
f(x,y)=N1μ=0∑N−1ν=0∑N−1F(μ,ν)g(x,y,μ,ν)
g(x,y,μ,ν)=G=N1(−1)∑i=0n−1[bi(x)pi(μ)+bi(y)pi(ν)]其中
p0(μ)pi(μ)=bn−1(μ)=bn−i(μ)+bn−1−i(μ)表达为矩阵形式为
F=N21HfH
f=HFH
实例:求离散哈达玛变换
f=⎣⎢⎢⎡1111333333331111⎦⎥⎥⎤易知
N=4,其哈达玛变换核矩阵为:
H4=[H2H2H2−H2]=⎣⎢⎢⎡11111−11−111−1−11−1−11⎦⎥⎥⎤
H4按列率排序后得到
H4=⎣⎢⎢⎡111111−1−11−1−111−11−1⎦⎥⎥⎤由此按照哈达玛变换的计算公式可得
F=N21H4fH4=⎣⎢⎢⎡20000000−10000000⎦⎥⎥⎤
将沃尔什变换与哈达玛变换进行对比可以发现,两个变换的结果之间只是矩阵列的顺序不同,不会影响两者应用于压缩时的效率