沃尔什变换

沃尔什变换是由+1或-1的基本函数的级数展开而成的,满足完备正交特性,属于方波型正交变换。由于沃尔什函数是二值正交函数,与数字逻辑中的两个状态相对应,因此它更适用于计算机技术、数字信号处理

一维沃尔什变换

沃尔什变换要求空域矩阵阶数NNN满足N=2nN=2^nN=2n,若满足,则有:F(μ)=∑x=0N−1f(x)g(x,μ)F(\mu)=\sum_{x=0}^{N-1}f(x)g(x,\mu)F(μ)=x=0∑N−1​f(x)g(x,μ)g(x,μ)=1N∏i=0n−1(−1)∑i=0n−1bi(x)bn−1(μ)g(x,\mu)=\frac{1}{N}\prod_{i=0}^{n-1}(-1)^{\sum_{i=0}^{n-1}b_i(x)b_{n-1}(\mu)}g(x,μ)=N1​i=0∏n−1​(−1)∑i=0n−1​bi​(x)bn−1​(μ)一维沃尔什反变换:f(x)=∑x=0N−1F(μ)h(x,μ)f(x)=\sum_{x=0}^{N-1}F(\mu)h(x,\mu)f(x)=x=0∑N−1​F(μ)h(x,μ)h(x,μ)=∏i=0n−1(−1)∑i=0n−1bi(x)bn−1(μ)h(x,\mu)=\prod_{i=0}^{n-1}(-1)^{\sum_{i=0}^{n-1}b_i(x)b_{n-1}(\mu)}h(x,μ)=i=0∏n−1​(−1)∑i=0n−1​bi​(x)bn−1​(μ)其中,bi(x)b_i(x)bi​(x)是xxx的二进制表达式中第iii位的意思
例如N=2nN=2^nN=2n,n=3n=3n=3,x=6x=6x=6,则有x=6=(110)2x=6=(110)_2x=6=(110)2​,可得b0(x)=0b_0(x)=0b0​(x)=0、b1(x)=1b_1(x)=1b1​(x)=1、b2(x)=1b_2(x)=1b2​(x)=1

与傅立叶变换不同,沃尔什变换的变换核是由+1或-1构成的二值对称矩阵

例如:求N=22N=2^2N=22的沃尔什变换F(0)=14∑x=03[f(x)∏i=01(−1)bi(x)+b1−i(0)]=14[f(0)+f(1)+f(2)+f(3)]F(0)=\frac{1}{4}\sum_{x=0}^{3}[f(x)\prod_{i=0}^{1}(-1)^{b_i(x)+b_{1-i}(0)}]=\frac{1}{4}[f(0)+f(1)+f(2)+f(3)]F(0)=41​x=0∑3​[f(x)i=0∏1​(−1)bi​(x)+b1−i​(0)]=41​[f(0)+f(1)+f(2)+f(3)]F(1)=14∑x=03[f(x)∏i=01(−1)bi(x)+b1−i(1)]=14[f(0)+f(1)−f(2)−f(3)]F(1)=\frac{1}{4}\sum_{x=0}^{3}[f(x)\prod_{i=0}^{1}(-1)^{b_i(x)+b_{1-i}(1)}]=\frac{1}{4}[f(0)+f(1)-f(2)-f(3)]F(1)=41​x=0∑3​[f(x)i=0∏1​(−1)bi​(x)+b1−i​(1)]=41​[f(0)+f(1)−f(2)−f(3)]F(2)=14∑x=03[f(x)∏i=01(−1)bi(x)+b1−i(2)]=14[f(0)−f(1)+f(2)−f(3)]F(2)=\frac{1}{4}\sum_{x=0}^{3}[f(x)\prod_{i=0}^{1}(-1)^{b_i(x)+b_{1-i}(2)}]=\frac{1}{4}[f(0)-f(1)+f(2)-f(3)]F(2)=41​x=0∑3​[f(x)i=0∏1​(−1)bi​(x)+b1−i​(2)]=41​[f(0)−f(1)+f(2)−f(3)]F(3)=14∑x=03[f(x)∏i=01(−1)bi(x)+b1−i(3)]=14[f(0)−f(1)−f(2)+f(3)]F(3)=\frac{1}{4}\sum_{x=0}^{3}[f(x)\prod_{i=0}^{1}(-1)^{b_i(x)+b_{1-i}(3)}]=\frac{1}{4}[f(0)-f(1)-f(2)+f(3)]F(3)=41​x=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(x)f(x)中各项值的符号按规律改变进行加减运算

二维沃尔什变换

F(μ,ν)=1N∑x=0N−1∑x=0N−1f(x,y)g(x,y,μ,ν)F(\mu,\nu)=\frac{1}{N}\sum_{x=0}^{N-1}\sum_{x=0}^{N-1}f(x,y)g(x,y,\mu,\nu)F(μ,ν)=N1​x=0∑N−1​x=0∑N−1​f(x,y)g(x,y,μ,ν)f(x,y)=1N∑μ=0N−1∑ν=0N−1F(μ,ν)g(x,y,μ,ν)f(x,y)=\frac{1}{N}\sum_{\mu=0}^{N-1}\sum_{\nu=0}^{N-1}F(\mu,\nu)g(x,y,\mu,\nu)f(x,y)=N1​μ=0∑N−1​ν=0∑N−1​F(μ,ν)g(x,y,μ,ν)g(x,y,μ,ν)=G=1N∏i=0n−1(−1)∑i=0n−1[bi(x)bn−1−i(μ)+bi(y)bn−1−i(ν)]g(x,y,\mu,\nu)=G=\frac{1}{N}\prod_{i=0}^{n-1}(-1)^{\sum_{i=0}^{n-1}[b_i(x)b_{n-1-i}(\mu)+b_i(y)b_{n-1-i}(\nu)]}g(x,y,μ,ν)=G=N1​i=0∏n−1​(−1)∑i=0n−1​[bi​(x)bn−1−i​(μ)+bi​(y)bn−1−i​(ν)]表达为矩阵形式为F=1N2GfGF=\frac{1}{N^2}GfGF=N21​GfGf=GFGf=GFGf=GFG

与傅立叶变换一样,二维沃尔什变换是可分离的,可以通过两个一维沃尔什变换完成计算g(x,y,μ,ν)=g1(x,μ)g2(y,ν)g(x,y,\mu,\nu)=g_1(x,\mu)g_2(y,\nu)g(x,y,μ,ν)=g1​(x,μ)g2​(y,ν)

实例:求离散沃尔什变换
f=[1331133113311331]f=\begin{bmatrix} 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ \end{bmatrix}f=⎣⎢⎢⎡​1111​3333​3333​1111​⎦⎥⎥⎤​可知N=4N=4N=4,其变换核为G=[111111−1−11−11−11−1−11]G=\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & 1 & -1 \\ 1 & -1 & -1 & 1 \\ \end{bmatrix}G=⎣⎢⎢⎡​1111​11−1−1​1−11−1​1−1−11​⎦⎥⎥⎤​则有F=1N2GfG=142[111111−1−11−11−11−1−11][1331133113311331][111111−1−11−11−11−1−11]=[200−1000000000000]F=\frac{1}{N^2}GfG=\frac{1}{4^2}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & 1 & -1 \\ 1 & -1 & -1 & 1 \\ \end{bmatrix}\begin{bmatrix} 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ \end{bmatrix}\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & 1 & -1 \\ 1 & -1 & -1 & 1 \\ \end{bmatrix}=\begin{bmatrix} 2 & 0 & 0 & -1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ \end{bmatrix}F=N21​GfG=421​⎣⎢⎢⎡​1111​11−1−1​1−11−1​1−1−11​⎦⎥⎥⎤​⎣⎢⎢⎡​1111​3333​3333​1111​⎦⎥⎥⎤​⎣⎢⎢⎡​1111​11−1−1​1−11−1​1−1−11​⎦⎥⎥⎤​=⎣⎢⎢⎡​2000​0000​0000​−1000​⎦⎥⎥⎤​可以看出,沃尔什变换具有信息集中的作用,原始数据中数字越是均匀分布,变换后的数据越是集中于边角区域

哈达玛变换

与沃尔什变换类似,由哈达玛变换核组成的矩阵是一个正交对称矩阵,属于方波型正交变换,不同之处在于其行、列次序不一样。

一维哈达玛变换

哈达玛变换要求空域矩阵阶数NNN满足N=2nN=2^nN=2n,若满足,则有:F(μ)=∑x=0N−1f(x)g(x,μ)F(\mu)=\sum_{x=0}^{N-1}f(x)g(x,\mu)F(μ)=x=0∑N−1​f(x)g(x,μ)g(x,μ)=1N(−1)∑i=0n−1bi(x)bi(μ)g(x,\mu)=\frac{1}{N}(-1)^{\sum_{i=0}^{n-1}b_i(x)b_{i}(\mu)}g(x,μ)=N1​(−1)∑i=0n−1​bi​(x)bi​(μ)一维哈达玛反变换:f(x)=∑x=0N−1F(μ)h(x,μ)f(x)=\sum_{x=0}^{N-1}F(\mu)h(x,\mu)f(x)=x=0∑N−1​F(μ)h(x,μ)h(x,μ)=(−1)∑i=0n−1bi(x)bi(μ)h(x,\mu)=(-1)^{\sum_{i=0}^{n-1}b_i(x)b_{i}(\mu)}h(x,μ)=(−1)∑i=0n−1​bi​(x)bi​(μ)bi(x)b_i(x)bi​(x)是xxx的二进制表达式中第iii位的意思

二维哈达玛变换

F(μ,ν)=1N∑x=0N−1∑x=0N−1f(x,y)g(x,y,μ,ν)F(\mu,\nu)=\frac{1}{N}\sum_{x=0}^{N-1}\sum_{x=0}^{N-1}f(x,y)g(x,y,\mu,\nu)F(μ,ν)=N1​x=0∑N−1​x=0∑N−1​f(x,y)g(x,y,μ,ν)f(x,y)=1N∑μ=0N−1∑ν=0N−1F(μ,ν)g(x,y,μ,ν)f(x,y)=\frac{1}{N}\sum_{\mu=0}^{N-1}\sum_{\nu=0}^{N-1}F(\mu,\nu)g(x,y,\mu,\nu)f(x,y)=N1​μ=0∑N−1​ν=0∑N−1​F(μ,ν)g(x,y,μ,ν)g(x,y,μ,ν)=G=1N(−1)∑i=0n−1[bi(x)bi(μ)+bi(y)bi(ν)]g(x,y,\mu,\nu)=G=\frac{1}{N}(-1)^{\sum_{i=0}^{n-1}[b_i(x)b_{i}(\mu)+b_i(y)b_{i}(\nu)]}g(x,y,μ,ν)=G=N1​(−1)∑i=0n−1​[bi​(x)bi​(μ)+bi​(y)bi​(ν)]二维哈达玛变换是可分离的,可变换为两个一维哈达玛变换来进行计算。

列率
在哈达玛矩阵中,沿列方向上符号改变的次数称为列率,类似傅立叶变换中频率的概念。

例如有矩阵H=[11111−11−111−1−11−1−11]H=\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1\\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1\\ \end{bmatrix}H=⎣⎢⎢⎡​1111​1−11−1​11−1−1​1−1−11​⎦⎥⎥⎤​
其第一列元素符号无变化,于是第一列的列率为0;
第二列a12a_{12}a12​到a22a_{22}a22​符号由正变负、a22a_{22}a22​到a32a_{32}a32​符号由负变正、a32a_{32}a32​到a42a_{42}a42​符号由正变负,共改变3次,因此第二列的列率为3;以此类推,第三列的列率为1,第四列的列率为2

哈达玛变换在列率上是随机的,不利于实现逐次倍加法的快速运算,但是能导出一个简单的递推关系,构造其变换矩阵,而后进行哈达玛正向和反向变换

哈达玛变换核矩阵
在满足N=2nN=2^nN=2n的情况下
有最低阶N=2N=2N=2时的哈达玛变换矩阵H2H_2H2​为:H2=[111−1]H_2=\begin{bmatrix} 1 & 1 \\ 1 & -1 \\ \end{bmatrix}H2​=[11​1−1​]有任意阶N=2NN=2NN=2N时的哈达玛矩阵为:H2N=[HNHNHN−HN]H_{2N}=\begin{bmatrix} H_N & H_N \\ H_N & -H_N \\ \end{bmatrix}H2N​=[HN​HN​​HN​−HN​​]由此可推得:H4=[H2H2H2−H2],H8=[H4H4H4−H4],...H_{4}=\begin{bmatrix} H_2 & H_2 \\ H_2 & -H_2 \\ \end{bmatrix},H_{8}=\begin{bmatrix} H_4 & H_4 \\ H_4 & -H_4 \\ \end{bmatrix},...H4​=[H2​H2​​H2​−H2​​],H8​=[H4​H4​​H4​−H4​​],...
将哈达玛矩阵按照列率顺序排列,得到定序的哈达玛变换对为:F(μ,ν)=1N∑x=0N−1∑x=0N−1f(x,y)g(x,y,μ,ν)F(\mu,\nu)=\frac{1}{N}\sum_{x=0}^{N-1}\sum_{x=0}^{N-1}f(x,y)g(x,y,\mu,\nu)F(μ,ν)=N1​x=0∑N−1​x=0∑N−1​f(x,y)g(x,y,μ,ν)f(x,y)=1N∑μ=0N−1∑ν=0N−1F(μ,ν)g(x,y,μ,ν)f(x,y)=\frac{1}{N}\sum_{\mu=0}^{N-1}\sum_{\nu=0}^{N-1}F(\mu,\nu)g(x,y,\mu,\nu)f(x,y)=N1​μ=0∑N−1​ν=0∑N−1​F(μ,ν)g(x,y,μ,ν)g(x,y,μ,ν)=G=1N(−1)∑i=0n−1[bi(x)pi(μ)+bi(y)pi(ν)]g(x,y,\mu,\nu)=G=\frac{1}{N}(-1)^{\sum_{i=0}^{n-1}[b_i(x)p_{i}(\mu)+b_i(y)p_{i}(\nu)]}g(x,y,μ,ν)=G=N1​(−1)∑i=0n−1​[bi​(x)pi​(μ)+bi​(y)pi​(ν)]其中p0(μ)=bn−1(μ)pi(μ)=bn−i(μ)+bn−1−i(μ)\begin{aligned} p_0(\mu) & = b_{n-1}(\mu) \\ p_i(\mu) & = b_{n-i}(\mu)+b_{n-1-i}(\mu) \\ \end{aligned}p0​(μ)pi​(μ)​=bn−1​(μ)=bn−i​(μ)+bn−1−i​(μ)​表达为矩阵形式为F=1N2HfHF=\frac{1}{N^2}HfHF=N21​HfHf=HFHf=HFHf=HFH

实例:求离散哈达玛变换f=[1331133113311331]f=\begin{bmatrix} 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ 1 & 3 & 3 & 1 \\ \end{bmatrix}f=⎣⎢⎢⎡​1111​3333​3333​1111​⎦⎥⎥⎤​易知N=4N=4N=4,其哈达玛变换核矩阵为:H4=[H2H2H2−H2]=[11111−11−111−1−11−1−11]H_{4}=\begin{bmatrix} H_2 & H_2 \\ H_2 & -H_2 \\ \end{bmatrix}=\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1\\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1\\ \end{bmatrix}H4​=[H2​H2​​H2​−H2​​]=⎣⎢⎢⎡​1111​1−11−1​11−1−1​1−1−11​⎦⎥⎥⎤​H4H_4H4​按列率排序后得到H4=[111111−1−11−1−111−11−1]H_4=\begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & 1 & -1 & -1\\ 1 & -1 & -1 & 1 \\ 1 & -1 & 1 & -1\\ \end{bmatrix}H4​=⎣⎢⎢⎡​1111​11−1−1​1−1−11​1−11−1​⎦⎥⎥⎤​由此按照哈达玛变换的计算公式可得F=1N2H4fH4=[20−10000000000000]F=\frac{1}{N^2}H_4fH_4=\begin{bmatrix} 2 & 0 & -1 & 0 \\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0\\ \end{bmatrix}F=N21​H4​fH4​=⎣⎢⎢⎡​2000​0000​−1000​0000​⎦⎥⎥⎤​

将沃尔什变换与哈达玛变换进行对比可以发现,两个变换的结果之间只是矩阵列的顺序不同,不会影响两者应用于压缩时的效率

频域滤波—方波变换中的沃尔什变换与哈达玛变换相关推荐

  1. 哈达玛变换及其在图像/视频编码中的应用:计算SATD

    沃尔什-哈达玛变换(Walsh-Hadmard Transform,WHT),是一种典型的非正弦函数变换,采用正交直角函数作为基函数,具有与傅里叶函数类似的性质,图像数据越是均匀分布,经过沃尔什-哈达 ...

  2. 沃尔什哈达玛变换Matlab,哈达玛变换矩阵-数字图像处理.ppt

    哈达玛变换矩阵-数字图像处理 3.1 二维离散傅里叶变换(DFT) 3.1.1 二维连续傅里叶变换 二维连续函数 f (x, y)的傅里叶变换定义如下: 设 是独立变量 的函数,且在 上绝对可积,则定 ...

  3. 数字图像处理报告:实验3 同态滤波、频域滤波、傅里叶变换性质、DCT变换性质

    实验3 同态滤波.频域滤波.傅里叶变换性质.DCT变换性质 一.实验主题: 学习同态滤波.频域滤波.傅里叶变换性质.DCT变换性质,掌握其原理,并学会编程,实现这些方法与性质. 二.实验目的: 1.掌 ...

  4. c# 傅里叶变换 频域_傅里叶变换在MATLAB中的应用(频域滤波)

    点击上方蓝字  关注我们 本文主要讲述如何在MATLAB中实现频域滤波,那么,怎么实现呢,我们这里讲的所有的滤波都是通过傅里叶变换在频域中实现的,所有这部分和傅里叶变换渊源很深,至于傅里叶变换本身,我 ...

  5. matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。

    目录 一.原理简介 二.现有方法 三.代码实现 四.测试结果图 一.原理简介 主要思路为:通过傅里叶变换,将图像显示在频率域中,通过观察频谱图,如果了解频谱图与原图之间的关联,可以较为容易地发现噪声在 ...

  6. 频域滤波—离散余弦变换

    离散余弦变换DCT 傅里叶变换的参数是复数,在数据的描述上相当于实数的两倍,若仅用实函数对称延拓成一个实偶函数,则其傅里叶变换也为实偶函数且仅包含余弦项,连续函数和离散函数的余弦变换都是基于这个原理. ...

  7. 基于skimage的数字图像处理——频域滤波(傅里叶变换)

    注意:文章代码基于notebook实现,也可修改后用于pycharm等编译器. 文章目录 前言 一.频域滤波与傅里叶变换 二.skimage代码实现 1.简单的傅里叶变换: 2.不同种类的正弦波及其傅 ...

  8. 如何保持空域与频域滤波结果的一致性

    我们知道,给定一个空(时)间滤波器,既可以在空(时)域直接完成数字信号的滤波,也可以在频域完成.空域滤波的数学运算为卷积/相关,对应频域则为点乘/频域数据的共轭(G*)与滤波器(H)的乘积. 简单起见 ...

  9. 数字图像处理与Python实现笔记之频域滤波

    数字图像处理与Python实现笔记 摘要 绪论 1 数字图像处理基础知识 2 彩色图像处理初步 3 空间滤波 4 频域滤波 4.1 傅里叶变换 4.1.1 一维傅里叶变换 4.1.2 二维傅里叶变换 ...

  10. matlab实现频域率滤波,基于Matlab的图像的频域滤波实现及研究.doc

    摘要:图像的频域滤波是图像增强的一种方法.图像增强是图像处理的方法之一,有频率域法和空间域法.频率域法把图像看成一种二维信号,对其进行二维傅里叶变换的信号增强,采用低通滤波法可以去掉图像的噪声:采用高 ...

最新文章

  1. 如何创建.gitignore文件,忽略git不必要提交的文件
  2. 我的四年建站故事(X)
  3. DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测
  4. kafka专题:kafka的总控制器Controller、消费者重分配策略等核心设计原理详解
  5. VSCode如何进入到终端中
  6. MATLAB 绘图基础
  7. 外壳防护等级/IP防护等级说明
  8. 技术研发团队管理计划方案书
  9. 英语流利说19秋招笔试总结
  10. 怎么录制电脑桌面视频 具体的操作方法
  11. 使用webots的MPC的移动机器人轨迹跟踪控制
  12. [BJOI2019]勘破神机(第一类斯特林数,斐波那契数列)
  13. 娄底职业技术学院计算机老师,2019年娄底职业技术学院公开招聘教师员工拟聘人员公示...
  14. Linux Shell字符串变量头尾去除空格
  15. C语言atoi函数详解
  16. 【ORACLE】详解oracle数据库UTL_RAW包各个函数的模拟算法
  17. MySQL数据库入门超级详细教程
  18. java公众号上传素材及发送图文消息实现
  19. 1092 习题6-4 有序插入
  20. Python 列表、元素、字典

热门文章

  1. 如何给客户做产品培训
  2. 基于信息熵的新词发现算法
  3. qtablewidget 添加一行
  4. VC++将位图中保存的图像灰化(附源码)
  5. ubuntu20.04下搜狗输入法不能输中文问题解决
  6. 优学院大学计算机基础课程答案,标准答案2020优学院形势与政策(全国版)2019-2020学年第一学期...
  7. Semantic Parsing on Freebase from Question-Answer Pairs【论文笔记】
  8. 发现孔子家谱很有意思事情,南宗,北宗是怎么回事?
  9. 韩信点兵问题的神解法
  10. html中collapse代码怎么写,如何使用CSS中的border-collapse属性