离散沃尔什变换及其快速算法

合集下载

快速傅里叶变换(FFT)详解

快速傅里叶变换(FFT)详解

⽂中内容均为个⼈理解,如有错误请指出,不胜感激前⾔先解释⼏个⽐较容易混淆的缩写吧FMT 快速莫⽐乌斯变化—>感谢stump提供多项式复数在介绍复数之前,⾸先介绍⼀些可能会⽤到的东西(好像画的不是很标准。

)定义设a ,b 为实数,i 2=−1,形如a +bi 的数叫复数,其中i 被称为虚数单位,复数域是⽬前已知最⼤的域在复平⾯中,x 代表实数,y 轴(除原点外的点)代表虚数,从原点(0,0)到(a ,b )的向量表⽰复数a +bi模长:从原点(0,0)到点(a ,b )的距离,即√a 2+b 2幅⾓:假设以逆时针为正⽅向,从x 轴正半轴到已知向量的转⾓的有向⾓叫做幅⾓运算法则加法:因为在复平⾯中,复数可以被表⽰为向量,因此复数的加法与向量的加法相同,都满⾜平⾏四边形定则(就是上⾯那个)乘法:⼏何定义:复数相乘,模长相乘,幅⾓相加代数定义:(a +bi )∗(c +di )=ac +adi +bci +bdi 2=ac +adi +bci −bd=(ac −bd )+(bc +ad )i单位根下⽂中,默认n 为2的正整数次幂在复平⾯上,以原点为圆⼼,1为半径作圆,所得的圆叫单位圆。

以圆点为起点,圆的n 等分点为终点,做n 个向量,设幅⾓为正且最⼩的向量对应的复数为ωn ,称为n 次单位根。

根据复数乘法的运算法则,其余n −1个复数为ω2n ,ω3n ,…,ωn n 注意ω0n =ωn n =1(对应复平⾯上以x 轴为正⽅向的向量)那么如何计算它们的值呢?这个问题可以由欧拉公式解决ωk n =cos k ∗2πn +i sin k ∗2πn例如图中向量AB 表⽰的复数为8次单位根单位根的幅⾓为周⾓的1n在代数中,若z n =1,我们把z 称为n 次单位根单位根的性质ωk n =cos k2πn +i sin k 2πn (即上⾯的公式)ω2k 2n =ωk n证明:ω2k 2n =cos2k ∗2π2n +i sin2k ∗2π2n =ωk nωk +n2n =−ωk n ωn2n =cos n 2∗2πn +i sin n 2∗2πn =cos π+i sin π=−1ω0n =ωn n =1讲了这么多,貌似跟我们的正题没啥关系啊。

正交变换2第二组

正交变换2第二组
• g(i)是i的格雷码,g(i)k 是此格雷码的 第K位数字,m为正整数。
(2)按佩利排列的沃尔什函数
• 按佩利排列的沃尔什函数也可由拉德梅克函 数构成,定义是如下:
m1
Walp (i,t)
[R(k 1,t)]ik
k 0
• ik是将函数序号写成自然二进制码的第K位数
字, ik 0,1 即 (i) (in i1 n2...i2i1i0 )B 。
(3)按哈达玛排列的沃尔什函数
• 按哈达玛排列的沃尔什函数也可由拉德梅克函 数构成,解析式如下:
m1
WalH (i,t) [R(k 1,t)]ik k 0
• 式中 ik 是把i 的自然二进码反写后的第k位数 字,并且 ik {0,1} 也就是 (i) (in1in2...i2i1i0 )二进 反写后: i (i0i1i2...in2in1)
u0
沃尔什变换矩阵式

W (0)
f (0)
W (1)
1
Wal
(N
)
f
(1)
...
N
...
W (N 1)
f
(N
1)
f (0)
W (0)
f
(1)
Wal
(N
)W
(1)
...
...
f
(
N
1)
W (N 1)
• 式中,Wal(N) 代表N阶沃尔什矩阵。W 0,W 1,W 2,...W N 1T
ysvs
WALp(i, t)
二进码写,格雷码 读
比特倒置 比特倒置
格雷码写,二进码读
WALw(i, t)
二进码写, 倒置,格雷码读
格雷码写, 倒置,二进码读 图1-1 沃尔什函数关系图

第3章 图象变换技术

第3章  图象变换技术

第3章 图象变换技术3.1 傅里叶变换为了有效地和快速地对图象进行处理和分析,常常需要将原定义在图象空间的图象以某种形式转换到另外一些空间(正变换),并利用在这些空间的特有性质方便地进行一定的加工,最后再转换回图象空间以得到所需的效果(反变换或逆变换)。

1. 1-D 傅里叶变换先考虑1-D 傅里叶变换。

对1个连续函数f (x )等间隔采样可得到1个离散序列。

设共采了N 个样,则这个离散序列可表示为{f (0),f (1),f (2),…,f (N – 1)}。

借助这种表达,并令x 为离散实变量,u 为离散频率变量,可将离散傅里叶变换对定义为: {}1, ,1 ,0]/j2exp[)(1)()(10-=π-==∑-=N u N ux x f Nu F x f N x F{}1, ,1 ,0]/j2exp[)()()(11-=π==∑-=-N x N ux u F x f u F N u F上式中的指数项可借助欧拉公式写为:[]ux ux ux π-π=π-2sin j 2cos j2 exp 每个u 值都确定所对应的正弦和余弦对的频率,所以称为频率变量。

2. 2-D 傅里叶变换 图象的2-D 傅里叶变换为:∑∑-=-=-=+π-=10101, ,1 ,0,]/)(j2exp[),( 1),(N x N y N v u N vy ux y x f Nv u F∑∑-=-=-=+π=10101, ,1 ,0,]/)(j2exp[),( 1),(N u N v N y x N vy ux v u F Ny x f例 图象函数和傅里叶频谱的显示 下图(a)给出一个简单2-D 图象函数的透视图,这里有Z = f (x , y )。

这个函数在以原点为中心的一个正方形内为正值常数,而在其它地方为零。

图(b)是它的灰度图(这里是二值图)显示。

图(c)给出这个2-D 图象函数傅里叶频谱幅度的灰度图显示。

(a)(c)例实际图象的傅里叶频谱下图给出两幅实际图象和他们的傅里叶频谱图。

快速哈达玛变换

快速哈达玛变换

快速哈达玛变换基本理论2.1 沃尔什--哈达玛变换沃尔什--哈达玛变换因实现简单且性能比较好而得到广泛的应用;在数字水印中就有很好的应用,在数字水印技术中水印的生成基于m序列和快速沃尔什-哈达玛变换矩阵嵌入与检测时使用了一个私钥来产生伪随机序列作为原始水印,使得攻击者在没有密钥的情况下无法取得水印的信息,增强了保密性[6] 。

2.1.1 哈达玛变换哈达玛变换(FHT)是数字信号处理中的基本变换之一,在移动通信、多媒体编解码中得到了广泛的应用。

设x(n),n=0,1, ...,N-1,为一实序列,其离散哈达玛变换(DHT)定义为(2-1)将XH(k)分解为奇对称分量XHo(k)与偶对称分量XHe(k)之和,其次,可以把奇偶对称分量表示出来:(2-2)由DHT定义把XH(k)代入(2-2)式,可得到奇偶对称分量表示如下:(2-3)仿照快速DFT的分解方法,可通过时域抽取或频域抽取的方式实现快速DHT。

x(n)的N=2M点DHT如下式:(2-4)2.1.2 沃尔什--哈达玛变换沃尔什函数是二值正交函数,它仅有可能的取值是+1和-1(或0和1),适合于数字信号的处理,可作为码分多址通信系统的地址码使用。

沃尔什函数记作Wal(n,t),其中n称一般序数,t是时间变数。

按由小到大排列的前八个沃尔什函数分别是:Wal(0,t)、Wal(1,t)、Wal(2,t)、Wal(3,t)、Wal(4,t)、Wal(5,t)、Wal(6,t)、Wal(7,t)。

可用一个8×8阶矩阵表示如下:(2-6)一般沃尔什函数矩阵记为W,它是一个N×N阶实数方阵。

沃尔什函数也可用哈达玛矩阵H表示,H是一个正交方阵,它的每一行代表着一个沃尔什函数。

二阶哈达玛矩阵为:或(2-7)四阶、八阶哈达玛矩阵分别为:与(2-8)从而可得(2-9)可见哈达玛矩阵H容易利用递推关系来构造,H中行的序数称为哈达玛序数,记作。

它不同于一般序数n,而与所取矩阵的行数有关系。

课07(2.3-2.4 DWT与DHT)

课07(2.3-2.4 DWT与DHT)


统一符号
k=i z=x
bk (z )
k =n–1– i z=u
k = n–1– i = (n–1),(n–2), ,1,0
(1)
bi ( x ) b (u ) n 1i
设 z 为二进制数 , 则 bk (z) 表示 z 中第 k 位的值(0或1)。
的值(–1, 1),由指
上页
数 bi ( x)bn 1i (u ) 的值(0, 1)决定。
i 0
bi ( x ) bn 1 i (u )
1 N
(1)
i 0
n 1
bi ( y ) bn 1 i ( v )

因此,2D-DWT可通过两次1D-DWT实现。
2D-DWT的矩阵形式: 设G为N N 阶变换矩阵,则
正变换
W 1 N
上页
2.4.1
[验算]
哈达玛(Hadamand)矩阵
取 hN(3,2) = -1,该元素在Hadamand矩阵中的位置:x = 3, u = 2。 定义式中两个参数:二进制位数 n=log2 N = 3 ;序号 i = 0,1,2 数制转换: ( x )十进制 = 3 ( x )二进制 = 0 1 1 b2 b1 b0 ( u )十进制 = 2 ( u )二进制 = 0 1 0 b2 b1 b 0 列表如下,结果正确。

i 0 n 1
x 0,1,2, , N 1
其中,反变换核
h( x, u ) Wal( x, u )
(1)
bi ( x )bn 1 i (u )
上页
2.3.2
g ( x, u ) 1 h ( x , u ) N
一维DWT

浅谈算法——FWT(快速沃尔什变换)

浅谈算法——FWT(快速沃尔什变换)

浅谈算法——FWT(快速沃尔什变换)其实FWT我啥都不会,反正就是记⼀波结论,记住就好……具体证明的话,推荐博客:现有⼀些卷积,形如C_k=\sum\limits_{i\lor j=k}A_i*B_jC_k=\sum\limits_{i\land j=k}A_i*B_jC_k=\sum\limits_{i\oplus j=k}A_i*B_j然后普通的FFT肯定应付不了这玩意,于是就有了FWT(快速沃尔什变换),然后我就直接写结论好了……FWT——Or卷积我们把多项式A(2^n项)拆成两部分A_0,A_1,则有FWT(A)=\begin{cases}(FWT(A_0),FWT(A_0+A_1))&,n>0\\A&,n=0\end{cases}然后上⾯的部分是指两部分合到⼀块⼉然后再给个性质FWT(A)_i=\sum\limits_{j\lor i=i}A_j所以说统计⼦集和啥的就直接FWT⼀下就好了,还有个叫FMT(快速莫⽐乌斯变换)的,其实就是这玩意FWT——And卷积同样将多项式A拆开,有FWT(A)=\begin{cases}(FWT(A_0+A_1),FWT(A_1))&,n>0\\A&,n=0\end{cases}其实你发现和Or卷积差不多,咋记呢?你看A_0,A_1的差别就在最⾼位,然后Or(\lor)肯定是答案贡献到1上去了,所以是后⾯加,然后And(\land)就反过来,然后就这么记吧……同样的,这个卷积也有个性质FWT(A)_i=\sum\limits_{j\land i=i}A_j这就相当于统计超集和了……FWT——Xor卷积这个东西还是要记⼀下的……FWT(A)=\begin{cases}(FWT(A_0)+FWT(A_1),FWT(A_0)-FWT(A_1))&,n>0\\A&,n=0\end{cases}然后这个貌似没有那啥奇怪性质……FWT讲完了,但是你不变换回来没啥⽤的啊……所以显然也要有IFWT然后IFWT也⽐较简单\lor :IFWT(A)=(IFWT(A_0),IFWT(A_1)-IFWT(A_0))\land :IFWT(A)=(IFWT(A_0)-IFWT(A_1),IFWT(A_1))\oplus :IFWT(A)=(\dfrac{IFWT(A_0)+IFWT(A_1)}{2},\dfrac{IFWT(A_0)-IFWT(A_1)}{2})然后贴个板⼦好了……void div(int &x){x=1ll*x*inv%p;}void FWT_xor(int *a,int n,int type){for (int i=2;i<=n;i<<=1){for (int j=0;j<n;j+=i){for (int k=0;k<i>>1;k++){int x=a[j+k],y=a[j+k+(i>>1)];a[j+k]=(x+y)%p,a[j+k+(i>>1)]=(x-y+p)%p;if (!~type) div(a[j+k]),div(a[j+k+(i>>1)]);}}}}void FWT_and(int *a,int n,int type){for (int i=2;i<=n;i<<=1){for (int j=0;j<n;j+=i){for (int k=0;k<i>>1;k++){(a[j+k]+=type*a[j+k+(i>>1)])%=p;if (a[j+k]<0) a[j+k]+=p;}}}}void FWT_or(int *a,int n,int type){for (int i=2;i<=n;i<<=1){for (int j=0;j<n;j+=i){for (int k=0;k<i>>1;k++){(a[j+k+(i>>1)]+=type*a[j+k])%=p;if (a[j+k+(i>>1)]<0) a[j+k+(i>>1)]+=p;}}}}Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js。

数字图像处理中的常用变换

数字图像处理中的常用变换

一、离散傅里叶变换1.离散傅里叶变换的特点离散傅里叶变换(DFT),是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。

在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。

即使对无限长的离散信号作DFT,也应当将其看作经过周期延拓成为周期信号再作变换。

在实际应用中通常采用快速傅里叶变换以高效计算DFT。

DFT将空域变换到频域,很容易了解到图像的各空间频域的成分。

DFT的应用十分广泛,如:图像的特征提取、空间频率域滤波、图像恢复和纹理分析等。

2.离散傅里叶变换的性质1)线性性质2)比例性质3)可分离性4)平移性质5)图像中心化6)周期性7)共轭对称性8)旋转不变性9)卷积定理10)平均值二、离散余弦变换1.离散余弦变换简介为了快速有效地对图像进行处理和分析,常通过正交变换将图像变换到频域,利用频域的特有性质进行处理。

传统的正交变换多是复变换,运算量大,不易实时处理。

随着数字图像处理技术的发展,出现了以离散余弦变换(DCT)为代表的一大类正弦型实变换,均具有快速算法。

目前DCT变换在数据压缩,图像分析,信号的稀疏表示等方面有着广泛的应用。

由于其变换矩阵的基向量很近似于托普利兹(Toeplitz )矩阵的特征向量,而托普利兹矩阵又体现了人类语言及图像信号的相关特性,因此常被认为是对语音和图像信号的最佳变换。

对给定长度为N 的输入序列f(x),它的DCT 变换定义为:⎪⎭⎫ ⎝⎛+⨯=∑-=102)12(cos )()(2)(N x N x x f u C N u F μπ式中:1,,1,0u -=N ,式中的)(u C 的满足:⎪⎩⎪⎨⎧==其它1021)(u u C在数字图像处理中,通常使用二维DCT 变换,正变换为:⎪⎪⎭⎫ ⎝⎛++⨯=∑∑-=-=10102)12(cos 2)12(cos ),()()(2),(N x N y N v y N u x y x f v C u C N v u F ππ 其逆变换IDCT 为:⎪⎭⎫ ⎝⎛++⨯=∑∑-=-=10102)12(cos 2)12(cos ),()()(2),(N u N v N v y N u x v u F v C u C N y x f ππ 式中:1,,1,0u -=N ,1,,1,0v -=N 。

离散数学沃舍尔算法

离散数学沃舍尔算法

离散数学沃舍尔算法沃舍尔算法(Warshall's Algorithm)是一种经典的离散数学算法,用于寻找有向图的传递闭包。

它通过对图的邻接矩阵进行逐步的更新操作,最终得到传递闭包的结果。

在这篇文章中,我们将详细介绍沃舍尔算法的原理及应用。

首先,让我们先来了解一下什么是有向图的传递闭包。

对于一个有向图G=(V,E),如果存在一个顶点vi到vj的路径,则称vj是vi的后继节点。

如果对于任意的vi,vj∈V,都存在一条从vi到vj的路径,则这个有向图被称为是传递闭的。

换句话说,传递闭包包含原图中所有可能的路径。

沃舍尔算法的基本思想是通过一系列的传递操作,将图中的传递闭包逐步构建出来。

算法的核心是一个二维的邻接矩阵,用来表示有向图的边。

假设邻接矩阵为A,A[i][j]=1表示存在从vi到vj的边,A[i][j]=0表示不存在。

算法的步骤如下:1. 初始化邻接矩阵A,将A[i][j]赋值为1当且仅当存在从vi到vj的边。

2. 对于每一个节点vk∈V,遍历所有的节点vi,vj∈V,如果发现存在路径vi→vk并且vk→vj,则将A[i][j]置为13.重复步骤2,直到没有新的节点对需要更新为止。

通过这样的传递操作,最终邻接矩阵A将表示有向图的传递闭包。

算法的时间复杂度为O(n^3),其中n是图中节点的数量。

下面我们通过一个具体的例子来演示沃舍尔算法的运行过程。

考虑以下有向图:```V1→V4↓↑V2←V3```初始的邻接矩阵A为:```0011101001010001```按照算法的步骤,我们进行传递操作:```A[1][3]=A[1][3]OR(A[1][2]ANDA[2][3])=1A[2][1]=A[2][1]OR(A[2][3]ANDA[3][1])=1A[3][4]=A[3][4]OR(A[3][1]ANDA[1][4])=1A[4][1]=A[4][1]OR(A[4][3]ANDA[3][1])=1A[4][3]=A[4][3]OR(A[4][3]ANDA[3][3])=1```更新后的邻接矩阵A为:```0011101011011011```经过多次传递操作之后,邻接矩阵A表示的就是原图的传递闭包。

数字图像处理 03图像变换(沃尔什变换)

数字图像处理  03图像变换(沃尔什变换)

6
数字图像处理讲义,2006,陈军波©中南民族大学
3.2.2 Walsh函数
WW (0,t) = 1 WW (1, t ) = R (1, t ) WW (2, t ) = R (2, t ) ⋅ R (1, t ) WW (3, t) = R (2, t)
W W ( 0 , t ) +1
-1 W W (1, t ) +1
t 1
WaWlsWh(序7,的t ) W= Ral(s3h,函t ) 数的特点: R(数1(1)的,是t )是完+-11偶备函的数正,交序函号数为,奇序数号1的为t是偶
WW (4,t) WW (5, t)
t 1 1t
R奇( 2函, t )数+1;可用于正交变换。 t
-1
1
WW (6,t)
1t
R(2(3),一t ) 个+1周期内,过零点数与序号
WW (0, t ) = R (3, t ) 0 ⋅ R ( 2, t ) 0 ⋅ R (1, t ) 0 = 1
5 101 111
WW (1, t ) = R (3, t ) 0 ⋅ R ( 2, t ) 0 ⋅ R (1, t )1 = R (1, t )
6 110 101 7 111 100
WW ( 2, t ) = R (3, t ) 0 ⋅ R ( 2, t )1 ⋅ R (1, t )1 = R ( 2, t ) ⋅ R (1, t )
WW (0,t) =1 WW (1,t) = R(1,t) WW (2,t) = R(2,t)⋅ R(1,t) WW (3,t) = R(2,t) WW (4,t) = R(3,t)⋅ R(2,t) WW (5,t) = R(3,t)⋅ R(2,t)⋅ R(1,t) WW (6,t) = R(3,t)⋅ R(1,t) WW (7,t) = R(3,t)

沃尔什数据离散化方法及在油藏描述中的应用

沃尔什数据离散化方法及在油藏描述中的应用
概念 分层 _ 。对 于 离散化 问题 , 4 ] 以往 的研究 者 提 出 了很 多方 法口 , 等 距 离划 分 、 频 率划 分 和 适 应 ]如 等 离散 法等 。但 是 , 这些方 法 需要人 为 地规 定划 分 维 数, 或者需 要 预先 给定一 个参 数 。沃 尔什 数据 变换 方法 , 不需 要 给定 划 分 维数 , 使 其 在地 震 波 阻抗 这
摘要 : 油藏描述 中必须对具有 时序 特征 的连续型测井数据 进行数 据离散化 , 在 以往 的一些 离散方法 需要人 为地 规定划分维数 , 者需要预先给定一个参数 。针对 此 , 出了一种 在沃尔什变换基础上的连续数据 离散化方法 。 或 提
该方法不需要给定划分维数 , 将连续数据 经过沃尔什低通 滤波后划 分成离散 区 间, 再用 整数和 符号标 示 。在应 用沃尔什变换实现测井数据 的地 层分层及离散化数 据中 , 分层 的精细度 可以通过 调整截止序率 以及截止 值来控 制 。实际应用结果证实 , 该方法简单 , 易于实现 , 算效率高 。 计 关键词 : 沃尔什 变换 ; 离散化 ; 数据挖掘 ; 油藏描述 ; 测井曲线
设 (一0 1 2 … ,, ) , , , 』 一1 代表 厂 £的采样 \ ( ) 值, 则离散的沃尔什正变换为
 ̄_1


∑ ・ l(, 一 [ ( w a ・门 1 w ) l )
z O —
式 中:一0 12… , , ,, N一1 为序率域 的离散值 ; ;
沃 尔 什 数 据 离 散 化 方 法 及 在 油 藏 描(. 国石油大 学 石油天 然 气成 藏机 理教 育部 重 点实验 室 , 京 12 4 ;. 1中 北 O2 9 2 中国石 油 大 学( 京 ) 北 资源 与信 息 学院 , 京 12 4 ;. 北 0 29 3 中国石 油大港 油 田集 团有 限公 司测 井公 司 , 津 30 8) 天 02 0

离散傅立叶变换以及其它离散正交变换

离散傅立叶变换以及其它离散正交变换

02
03
共轭对称性
对于实数输入信号,DFT的结果X[k]具 有共轭对称性,即X[k] = X[N-k],其 中X[N+k] = X[k]。
DFT的应用
频谱分析
DFT是信号频谱分析的基础,通过计算信号的DFT可 以得到信号的频谱。
滤波器设计
利用DFT可以设计数字滤波器,实现信号的滤波处理。
图像处理
DFT在图像处理中也有广泛应用,如图像压缩、图像 增强等。
Python编程实现WHT
总结词
沃尔什-哈达玛变换(WHT)是一种离散 正交变换,可用于信号处理和图像压缩等 领域。Python也提供了多种库和工具来实 现WHT。
VS
详细描述
Python中的SciPy库提供了WHT函数, 可以方便地计算WHT。在Python中实现 WHT的基本步骤包括定义输入信号、应 用WHT算法、计算沃尔什-哈达玛变换系 数和反变换回时域。
离散傅立叶变换以及其 它离散正交变换
目录 CONTENT
• 离散傅立叶变换(DFT) • 快速傅立叶变换(FFT) • 其它离散正交变换 • 离散正交变换的应用 • 离散正交变换的编程实现
01
离散傅立叶变换(DFT)
DFT的定义
定义
离散傅立叶变换(DFT)是将离散时间信号序列通过数学变换转换为频域表示的复数序列。
Python编程实现FFT
总结词
快速傅立叶变换(FFT)是一种高效的算法,用于计算离散傅立叶变换(DFT)。Python也提供了多种库 和工具来实现FFT。
详细描述
Python中的NumPy库提供了FFT函数,可以快速计算DFT。FFT算法通过减少计算量来加速DFT的计 算过程,从而提高了计算效率。在Python中实现FFT的基本步骤包括定义输入信号、应用FFT算法、 计算频谱和反变换回时域。

离散沃尔什变换(DWT

离散沃尔什变换(DWT

这里假定了 M = 2m , N = 2n
● 变换核具有可分离性质
从①式可知:
g(x, u, y, v) = h(x, u, y, v) = g1 (x, u)g 2 ( y, v) = h1 (x, u)h2 ( y, v)
=
1
m −1
∑ [bi ( x)bm−1−i (u )] (−1) i=1
3
● WT 具有能量集中性质 例、对于均匀分布的二维图像信号
第二章 图像变换
⎡1 1 1 1⎤
f
= ⎢⎢1 ⎢1
1 1
1 1⎥⎥ 1 1⎥
⎢⎣1 1
1
1
⎥ ⎦
作 Walsh Transform, 可得
⎡1 0 W = ⎢⎢0 0
⎢0 0 ⎢⎣0 0
0 0⎤
0 0⎥⎥
0 0⎥
0
0
⎥ ⎦
这说明,假如输入的原始图像均匀分布,那么 Walsh 变换后的数据会 集中于矩阵的边角上,可见此变换可以用于图像信息压缩。
● 快速 WT 运算
可采用与快速傅里叶变换类似的计算,将
FFT
中的 exp⎢⎣⎡−
j
2π N
ux⎥⎦⎤ 变
成 1 即可。快速 Walsh 变换简写为 FWT。
关于 N = 8 的 WT 的快速算法的蝶形图构成举例和算法,可参见本
章参考文献 1(容观澳书)pp.89-90。
关于 WT,在本章参考文献 3(阮秋琦书)pp.85-112 中,有较深
ibz例如n2n8时的变换核和反变换核用矩阵形式表示为1第二章图像变换81111111111111111111u01234567x01111111111111111118121111113g???????????????????1??4511111111111111111111176?????????????????????????????????例g中元素1

第七章 两种正交变换---沃尔什变换和离散余弦变换_01

第七章 两种正交变换---沃尔什变换和离散余弦变换_01

第七章 两种正交变换--- 沃尔什变换与离散余弦变换信号作为信号空间的一个向量,可以用一组正交基来表示。

任何正交而完备的函数族可以用作这样的正交基。

正弦、余弦函数各自都是正交函数。

但它们都是不完备的。

偶对称信号可以用余弦函数族表出;而奇对称信号只包含正弦分量。

一般信号可以分解为偶对称和奇对称分量。

所以,必须同时用余弦、正弦函数族才能完整地表示一般信号。

复指数函数族通常被用作正交基来表示、分析信号的频谱,因为复指数函数既包含余弦分量,又包含正弦分量。

换句话说,复指数函数族是正交的,完备的。

它所张成的空间便是我们通常所说的频域。

在实践中,除了付里叶变换大家族外,还有许多完备正交函数系可以代替复指数函数族来表示信号。

在这领域,人们不断地进行探索。

将无限维空间的时域信号用所选定的正交基来表示,这是一种正交变换。

本章介绍付里叶变换之外的两种最常见的正交变换,即沃尔什变换和离散余弦变换,说明它们的特点和快速算法。

7.1 沃尔什变换7.1.1 概述基于复指数函数系(正弦-余弦函数系)的付里叶变换方法是目前信号与系统分析中的主要工具,其原因之一是这类信号易于获得,易于变换,便于检测,也容易理解。

在电信技术发展史上,正弦-余弦信号以及付里叶变换方法首先得到广泛应用。

但非正弦信号的研究与应用也一直受到重视。

20世纪60年代末至70年代初,数字技术与计算机科学迅速发展,利用开关元件产生和处理数字信号十分简便易行。

大规模集成电路的迅猛发展提供了体积小、重量轻、可靠性很高的数字硬件。

在这种背景下,人们对非正弦信号的研究和应用又再度重视起来。

事实上,正弦-余弦函数系仅仅是完备正交函数系的一种。

它作为变换核,在付里叶变换过程中要进行复数乘法、加法运算,其量化误差是累积的。

因此,寻找其它更好的完备正交函数系一直是人们的追求。

在这种探索中,应该记住● 1910年,匈牙利数学家哈尔(A.Haar )提出哈尔函数,这是一组完备的正交函数。

快速沃尔什变换(FWT)快速莫比乌斯变换(FMT)

快速沃尔什变换(FWT)快速莫比乌斯变换(FMT)

快速沃尔什变换(FWT)快速莫⽐乌斯变换(FMT)虽然⼀点不懂,但是看着代码短得感⼈,背过就好了吧。

或FWT(A)=(FWT(A0),FWT(A1+A0))IFWT(A)=(IFWT(A0),IFWT(A1−A0))与FWT(A)=(FWT(A0+A1),FWT(A1))IFWT(A)=(IFWT(A0−A1),IFWT(A1))异或FWT(A)=(FWT(A0+A1),FWT(A0−A1))FWT(A)=(FWT(A0+A12),FWT(A0−A12))代码实现记忆有些东西不⽤全靠硬背,可以有技巧地背或进⾏或运算,通常数会往⼤⾥⾛,所以较⾼位的数要加上较低位的数(雾)与与与或相反,通常数会往⼩⾥⾛,于是是较低位的数加上较⾼位的数(⼤雾)异或有点特殊?有点像 FFT?那就记成 FFT 的形式就好了吧...IFWTIFWT 就是把 FWT 给还原⼀下就好了吧。

之前某位置加上了⼀个数,⽽现在那个数还没变(⼤雾),那么就把那个数减掉就好了吧。

(对于异或)找不到之前那个数?没关系,可以列个⽅程解出来(⼤雾)注意!!FWT不⽤倍长,不⽤蝴蝶变换FWT⾥⾯还是尽量⽤<=⽐较安全,只要空间⾜够就没啥问题。

特别注意⼀点:选取limit时要while (limi <= n)!!这时候⼀定要⼩于等于,否则不全!!其余各项同补充说明:对于或卷积:(FWT:f[]−>f′[])f′[i]=∑j|i=i f[j]发现f′[i] 为i的⼦集的权值和,因此可以做⼀些⼦集问题,如:⼦集卷积给定a,b数组,令:c k=∑i and j=0,i or j=k a i∗b j即在k中找到两个互不相交的⼦集i,j,计算a i∗b j的总和如果不要求互不相交,那么就是个 FWT_OR 的板⼦题了。

如果要求互不相交,那么只需加上限制|i|+|j|=|k|。

于是,我们可以枚举|i|,|j|,|k|,然后将所有⼤⼩为|i|,|j|的|a i|,|b j|的总和乘⼀块加给c k,然后再将c数组卷回去,即为答案。

fwt 算法原理

fwt 算法原理

fwt 算法原理FWT算法原理什么是FWT算法FWT(Fast Walsh-Hadamard Transform)算法是一种高效的快速变换算法,它用于在时间复杂度为O(nlogn)的情况下计算布尔函数的离散Walsh-Hadamard变换。

起源FWT算法起源于快速傅立叶变换(FFT)以及快速沃尔什变换(FWT)。

它基于二分法思想,并利用了分治递归的思路,通过将问题划分成更小的子问题进行计算。

FWT算法原理1.问题拆解:将n维的向量a拆分为两个n/2维的子向量a0和a1;2.递归计算:分别对a0和a1应用FWT算法,得到b0和b1;3.合并处理:根据函数的特性,将b0和b1的结果合并得到长度为n的结果向量b。

二进制形式将FWT算法应用于二进制形式的布尔函数是最常见的。

实际上,FWT算法可以看作是对二进制的异或操作进行了加速。

异或操作是一种布尔运算符,表示两个操作数对应位的布尔值不相同时为真,相同时为假。

可以表示为:0 ^ 0 = 0,0 ^ 1 = 1,1 ^ 0 = 1,1 ^ 1 = 0。

FWT算法步骤对于长度为n的二进制数列a,FWT算法的步骤如下:1.如果n = 1,返回a本身作为结果;2.将a分为两个长度为n/2的子数列a0和a1;3.分别对a0和a1递归应用FWT算法,得到b0和b1;4.创建一个长度为n的结果数列b,并计算b[i] = b0[i] + b1[i]和 b[i] = b0[i] - b1[i];5.返回b作为结果。

算法特点FWT算法具有以下特点:1.时间复杂度为O(nlogn),高效快速;2.可用于求解二元组合计数问题,如计算多个二进制数的按位与、按位或以及按位异或;3.可用于多项式的乘法运算;4.可以通过逆向操作恢复原始数列。

FWT算法在许多领域都有广泛应用,包括图像处理、信号处理、卷积计算、乘法运算、快速傅立叶变换等。

总结FWT算法是一种高效的快速变换算法,用于计算布尔函数的离散Walsh-Hadamard变换。

离散的沃尔什变换和哈达玛变换之间的异同

离散的沃尔什变换和哈达玛变换之间的异同

离散的沃尔什变换和哈达玛变换之间的异同离散的沃尔什变换和哈达玛变换,这俩名字听上去就像是数学界的两位大腕儿,似乎总在争风头。

沃尔什变换,大家可以想象成一位穿着休闲服的朋友,给你传递的是一种简单直接的感觉。

这家伙的核心就是使用沃尔什函数,简直就像是用一些特别的“方块”来替代那些复杂的信号,让一切变得清晰明了,像是给你的信息装上了透视镜,让你一眼就能看到它的真面目。

说到这里,想必大家心里已经在打鼓,怎么一个变换就能让信息变得这么清晰呢?这里的关键在于沃尔什函数的特点。

它们是一组正交函数,彼此之间就像兄弟姐妹一样,互不干扰。

正因如此,沃尔什变换能够把复杂的信号拆分成多个简单的部分,轻松得就像在剥洋葱一样,层层剥开,直到你看到最核心的部分。

再说说哈达玛变换,这位朋友就更有意思了。

他用的也是正交的“方块”,不过他的风格更为高大上,像是在为一场奢华的派对做准备。

他的核心就是哈达玛矩阵,这个矩阵可不是普通的矩阵,它就像是一个精心设计的迷宫,能把输入的信号“翻转”和“扭曲”,以一种独特的方式来处理数据。

很多时候,哈达玛变换和沃尔什变换可以说是“斗智斗勇”,互相竞争,试图在信号处理领域占据一席之地。

这俩家伙的相同之处就在于都能把信号从时域转换到频域,简直是信号处理界的双子星。

不过,嘿,别以为这俩变换就没有区别。

沃尔什变换是离散的,而哈达玛变换则可以说是离散和连续之间的“桥梁”。

它的灵活性和适应性让它在很多情况下都能施展拳脚。

就好比你在选择饮料时,沃尔什就像是经典的可乐,简单明了,而哈达玛则像是各种口味的鸡尾酒,随你调配,想喝什么就喝什么。

哈达玛变换在应用方面也相当广泛,无论是图像处理、信号传输,还是量子计算,它都能找到自己的位置。

不得不说,哈达玛这个家伙的多才多艺,真是让人刮目相看。

再来说说计算上的差异,沃尔什变换的计算相对简单,像是在家做蛋糕,几个步骤就搞定。

而哈达玛变换,虽然也不是特别复杂,但在大数据的情况下,可能就像是在厨房里搞一场大派对,稍不留神就容易翻车。

第3章3.2 Walsh变换

第3章3.2 Walsh变换

WW (0, t) 1 1 1 1 1 1 1 1
WW
(1,
t
)
1
1
1
1 1 1 1 1
W 8
WW WW WW
(2, t)
(3,
t)
(4, t)
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
WW (5, t) 1 1 1 1 1 1 1 1
WW (6, t)
3.3.2 Walsh函数
2. 离散Walsh函数的定义 (2)Hadamard序的离散Walsh函数
p 1
定义: WH (n, t) (1)bi ti i0
例: N=8, i=0,1,,7 , t= 0,1,,7 计算WH(4, t)
WH (4,t) 1 1 1 1 1 1 1 1
这个序列可看成从连续的Hadamard序的Walsh函数 WH(4, t)在等间距的N个点上的抽样而得到。
WW (6,t) R(3,t) R(1,t)
WW (7,t) R(3,t)R(2,t)R(1,t)
WW (7,t) R(3,t)
3.3.2 Walsh函数
2. 离散Walsh函数的定义
(1)Walsh序的离散Walsh函数
p 1
p 1
定义: WW (n, t)
(1) bp1i (ti1ti )
WH(4,t)
t
3.3.2 Walsh函数
2. 离散Walsh函数的定义
(2)Hadamard序的离散Walsh函数
Hadamard序的Walsh矩阵
WH (0, t) 1 1 1 1 1 1 1 1

第3章3.2 Walsh变换

第3章3.2  Walsh变换

3.2.1 引言
sin( 2 n π t )
+1, 当f(x) 0 >
n=2
+1 -1
n=1 n=0
1 t
R(0, t )
+1 -1
n=3
1 t
R ( n , t ) = sign sin( 2 π t )
n
[
]
R (1, t )
+1 t -1 1 t 1
拉德梅克函数的特点: (1)是正交函数族:
R(2, t ) +1
-1 m = n) R(3, t ) R(n, t ) ⋅ R(m, t ) dt = 0 (m ≠ n)
]
t
(2)是一个不完备的函数,只有奇函数,不能用于变换。
3.2 沃尔什 沃尔什(Walsh)变换 变换
3.2.2 Walsh函数 函数 1. 连续Walsh函数的定义 (1)Walsh序的Walsh函数 定义:
WW (n, t ) = ∏ [R(i + 1, t )]
i =0
p −1
bi +1 ⊕bi
拉德梅克函数
= ∏ [R(i + 1, t )]
i =0
p −1
gi
其中: n为序号:n = 0,1, ⋯ , N − 1
p = log 2 N , 即p为N的比特数
bi 是 n 的二进制码的第 i 位
g i = b i + 1 ⊕ b i , 格雷码
2. 离散Walsh函数的定义 (1)Walsh序的离散Walsh函数 定义:
p −1
3.2.2 Walsh函数 函数
WW ( n, t ) = ∏ ( −1)

快速沃尔什变换 算法题

快速沃尔什变换 算法题

快速沃尔什变换算法题以下是一个简单的快速沃尔什变换(Fast Walsh Transform)的算法题示例:题目:给定一个长度为n的二进制序列x,计算其快速沃尔什变换。

算法步骤:1. 初始化一个长度为n的二进制序列x,表示要变换的序列。

2. 初始化一个长度为n的沃尔什变换矩阵W,其中W[i][j]表示第i行第j列的元素。

3. 对于i从0到n-1,执行以下步骤:a. 对于j从0到n-1,计算W[i][j] = x[j] AND x[i XOR j]。

4. 返回沃尔什变换矩阵W。

示例:假设输入序列x为[1 0 1 0 1],则可以按照以下步骤计算其快速沃尔什变换:1. 初始化沃尔什变换矩阵W为:1 0 1 0 10 1 0 1 01 0 1 0 10 1 0 1 02. 计算第0行的元素:W[0][0] = x[0] AND x[0 XOR 0] = 1 AND 1 = 1 W[0][1] = x[1] AND x[0 XOR 1] = 0 AND 1 = 0 W[0][2] = x[2] AND x[0 XOR 2] = 1 AND 1 = 1 W[0][3] = x[3] AND x[0 XOR 3] = 0 AND 1 = 0 W[0][4] = x[4] AND x[0 XOR 4] = 1 AND 1 = 1 3. 计算第1行的元素:W[1][0] = x[0] AND x[1 XOR 0] = 1 AND 0 = 0 W[1][1] = x[1] AND x[1 XOR 1] = 0 AND 0 = 0 W[1][2] = x[2] AND x[1 XOR 2] = 1 AND 1 = 1 W[1][3] = x[3] AND x[1 XOR 3] = 0 AND 1 = 0 W[1][4] = x[4] AND x[1 XOR 4] = 1 AND 1 = 14. ...(此处省略其他行的计算)5. 最后得到的沃尔什变换矩阵为:0 0 1 0 11 0 0 1 00 1 0 1 01 1 1 1 1。

FastWalsh-HadamardTransform——快速沃尔什变换(二)

FastWalsh-HadamardTransform——快速沃尔什变换(二)

FastWalsh-HadamardTransform——快速沃尔什变换(⼆)有点模糊的说...我把思路和算法实现说⼀说吧...思路关于快速沃尔什变换,为了⽅便起见,我们采⽤线性变换(⾮线性变换不会搞)。

那么,就会有⼀个变化前各数值在变换后各处的系数,即前⼀篇博⽂中的f(i,j),表⽰线性变换中第i项到第j项的系数。

即DWT(A)i=n−1∑j=0A j∗f(i,j)那么,我们既然要求⊕卷积在变换后等价于乘积,就有DWT(A)i∗DWT(B)i=DWT(C)i其中C是A,B的⊕卷积。

那么,将线性变换式及卷积定义代⼊,并令对应项系数相等,就可得到结论:f(i,j)∗f(i,k)=f(i,j⊕k)那么,通过构造合适的f(i,j),就可得出变换。

f函数的构造我们以异或为例(因为这时最⿇烦的)。

既然是位运算,那么我们就从位运算⼊⼿。

考虑位运算,我们只需要考虑⼀位的情况,对于多位运算需要将每位的结果相乘(注意是相乘,这很重要!)。

通过定义,我们得到f(i,0)∗f(i,j)=f(i,0⊕j)=f(i,j)f(i,1)∗f(i,1)=f(i,0)⼜由于我们不能使所有系数都相同,那么只能取f(i,0)=1f(0,j)=1f(1,1)=−1那么此时DWT(a0,a1)=(a0+a1,a0−a1)可以验证其满⾜规则。

算法实现:要实现FWT,我们仿照快速傅⾥叶变换,⾸先将A分成两半A0,A1(按⼆进制最⾼位,即直接取前⼀半和后⼀半)递归调⽤FWT,然后,合并时,根据下⾯的式⼦(i0,i1分别表⽰i的最⾼位和剩余位):DWT(A)i=n−1∑j=0f(i,j)A j=n/2−1∑j=0f(i,j)A j+n−1∑j=n/2f(i,j)A j=n/2−1∑j=0f(i0,j0)f(i1,j1)A j+n−1∑j=n/2f(i0,j0)f(i1,j1)A j=n/2−1∑j=0f(i0,0)f(i1,j1)A j+n−1∑j=n/2f(i0,1)f(i1,j1)A j=f(i0,0)n/2−1∑j=0f(i1,j1)A j+f(i1)n−1∑j=n/2f(i0,1)f(i1,j1)A j=f(i0,0)∗DWT(A0)i1+f(i0,1)∗DWT(A1)i1其中由第2⾏到第3⾏是因为我们对多位的f直接定义为各位的f相乘,即f(i,j)=f(i0,j0)∗f(i1,j1)那么,算法实现就简单多了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

k,n = 0,1,2, " ,7
(11.18)
分解 8 阶阿达玛矩阵 [H 8 ]
-5-
离散正交变换导论
H 4 ⎤ ⎡H4 04 ⎤ ⎡I 4 I 4 ⎤ ⎡H [H8 ] = [H 2 ] ⊗ [H 4 ] = ⎢ 4 ⎥=⎢ ⎥⎢ ⎥ ⎣H 4 − H4 ⎦ ⎣ 04 H4 ⎦ ⎣I 4 − I 4 ⎦ I2 ⎤ ⎤ ⎡I ⎡H2 02 ⎤ ⎡H2 H2 04 04 ⎥ ⎢ 2 04 ⎥ ⎢ ⎥ I ⎢H − H 2 2 ⎥ ⎡I 4 I 4 ⎤ ⎥ ⎢I 2 − I 2 ⎥ ⎡ 4 I 4 ⎤ = ⎢ 02 H 2 =⎢ ⎥ ⎢ ⎥ ⎢ H 2 H 2 ⎥ ⎣I 4 − I 4 ⎦ ⎢ H 2 02 ⎥ ⎢ I 2 I 2 ⎥⎢ ⎣I 4 − I 4 ⎦ 0 0 0 ⎥ ⎥⎢ ⎢ ⎥ ⎢ 4 4 4 H2 − H2 ⎦ 02 H 2 ⎦ ⎣ I2 − I2 ⎦ ⎣ ⎣ = [G 0 ][G1 ][G 2 ] (11.19)
(11.11a)
(11.11b)
以(10.28)式代入(11.9)式可以得到(DWT)W 的指数形式
∑ n p−m ⋅ g ( k ) m−1 1 N -1 ∑ n p−m ⋅( k m ⊕ k m−1 ) 1 N -1 Wx (k ) = ⋅ ∑ x(n)(−1) m=1 = ⋅ ∑ x(n)(−1) m=1 N n =0 N n =0 x(n) = ∑Wx (k )(−1) m=1
-2-
离散正交变换导论
Wx ( k ) =
1 N-1 ⋅ ∑ x(n)WalW (k , n) N n =0
k = 0,1, " , N − 1
(11.9a)
x(n) = ∑ Wx (k )WalW (k , n)
k =0
N −1
n = 0,1, " , N − 1
(11.9b)
(11.9a)和(11.9b)两式构成一对沃尔什正、反变换。 说明:离散沃尔什变换 DWT 与离散傅里叶变换 DFT 非常相似,其区别在于用列率域代
x(n) = ∑ Bx (k )WalH (k , n)
k =0
N −1
n = 0,1, ", N − 1
(11.13b)
同样,以阿达玛矩阵 [WalH ( p)] = [H N ] = [H ( p)] , N = 2 p ,p 为正整数,代替(11.11)式中 的 [WalW ( p)] ,可以得到(DWT)H 的矩阵形式定义式
沃尔什排列的快速沃尔什变换是从阿达玛排列的快速沃尔什变换修改而来的,所以首 先介绍阿达玛排列的快速沃尔什变换。 阿达玛排列的快速沃尔什变换以符号(FWT)H 表示。 我们从(11.14a)式导出 (FWT)H 的两种算法流图。
一、第一种算法
取 N=8 为例,则根据(11.14a)式 1 [ Bx (k )] = [H 8 ][ x(n)] 8
x(θ ) = ∑ d kWalW (k , θ )
k =0

(11.1)
k = 0,1,2, "
d k = ∫ x(θ )WalW (k , θ )dθ
0
1
(11.2)
使用沃尔什排列的 WalW (k , θ ) ,有下列关系
WalW (k , θ ) = Sal (i, θ ) WalW (k , θ ) = Cal (i, θ ) ⎫ ⎬ k = 2i − 1⎭ k = 2i
0 1
k = 0,1, " , N − 1
(11.7)
由(11.4)式
x(θ ) = ∑ Wx (k )WalW (k , θ )
k =0
N −1
(11.8)
上两式中的最高列率为 N/2。根据列率域的取样定理,把 θ 的定义区间 [0,1) N 等分,每一 等份的时隙为 Δθ = 1 N ,且令 x (n ) = x (n ⋅ Δθ ) = x (θ j )
⎧a0 = d 0 k = 0 ⎪ ⎨ai = d k k = 2i ⎪b = d k = 2i − 1 k ⎩ i
有限项级数展开式:
-1-
离散正交变换导论
x(θ ) = ∑ d kWalW (k , θ )
i =0
N −1
(11.4)
x(θ ) = d 0Cal (0, θ ) +
N 2−1 i =1
0 ∞
x(t ) = ∑ a(n)ϕ (n, t )
n=0

a(n) = ∫ x(t )ϕ (n, t )dt
ta
tb
即广义傅里叶级数,其中 {ϕ (n, t )} 为任意正交函数系。 因为沃尔什函数也是完备的正交函数系, 那么满足条件的连续函数 x(t)也能展开成沃尔什 级数。为了方便,我们把 x(t)定义在归一化的半开区间 [0,1) 上,以 x(θ ) 表示,则
k =0 N −1
p
(11.14a)
(11.14b)
k = 0,1,", N − 1
(11.15a)
∑ nm−1⋅km−1
p
n = 0,1,", N − 1
(11.15b)
式中, N = 2 p ,p 为正整数, nm−1、km−1是序号k、n的p位二进制表示式的第 m − 1位 Bx (k ) 实质上是离散沃尔什级数前 N 项的系数,常称为变换系数。 Bx (k ) 所对应的沃尔什分量的列率简称 Bx (k ) 的列率, 以符号 iB 表示。 下面从 WalH (k , θ ) 与 WalW (k ,θ ) 的关系来说明 iB。由(10.9)式 若 < k H >= g (kW ) ,则 WalH (k H ,θ ) = WalW (kW ,θ ) 其中,< k H > 是序号 k H 的 p 位二进制表示式的码位倒置后的表示式, g (kW ) 是序号 kW 的 p 位 格雷码,其中 N = 2 p ,p 为正整数。
∑ [a Cal (i,θ ) + b Sal (i,θ )] + b
i i
N 2
Sal ( N 2 , θ )
(11.5)
若 x(θ ) 在 [0,1) 内连续,则(11.1)和(11.3)式一致收敛于 x(θ ) 的值,即
lim d k = 0
k →∞
(11.6)
因此,对给定的任意小的 ε > 0 ,都能找到一个 N,使 k>N 时, d k < ε 。也就是 N 以后的各 项可以忽略,即(11.4)和(11.5)式是足够准确的。
离散正交变换导论
第十一章
离散沃尔什变换及其快速算法
第一节 沃尔什级数表示
全体沃尔什函数 {Wal (k , θ )}, k = 0,1,2, " 以及它的子集 {Wal (k , θ )}, k = 0,1,2, " ,2 p − 1 都形 成群,并且是可交换群。这说明它们满足封闭性的条件。它们还满足完备性条件。 一个绝对可积信号 x(t),即 ∫ x(t ) dt < ∞ 可以展开成完备的正交函数系的级数:
k =0 N −1
p p
k = 0,1,", N − 1
(11.12a)
∑ n p −m ⋅ g ( k ) m−1
p
= ∑Wx (k )(−1) m=1
k =0
Hale Waihona Puke N −1∑ n p−m ⋅( k m ⊕ k m−1 )
p
n = 0,1,", N − 1
(11.12b)
式中, N = 2 p ,p 为正整数
n p −m是序号n的p位二进制表示式的第(m − 1)位 ,见(10.26)式;
g ( k ) m−1 是序号k的p位格雷码的第 m − 1位
k m、k m−1是序号k的p位二进制表示式的第 m、m − 1位。当m = p时,k p = 0
二、按阿达玛排列的离散沃尔什变换(DWT)H
由于按阿达玛排列的沃尔什函数 WalH (k , n) 实际上是阿达玛矩阵从上而下按行编号(k)所 得,而阿达玛矩阵有简单的递推关系,即从低阶阿达玛矩阵很容易得到高阶阿达玛,因此按 阿达玛排列的沃尔什变换应用得更广泛一些。
kn ;(2)以变换系数 Wx (k ) 代替了 X(k);(3)因子 1/N 替了频域:(1)以权函数 Wal (k , n) 代替了 WN
的位置不同,前者在逆变换中,后者在正变换中。
Wx (k ) 实质上是离散沃尔什级数前 N 项的系数。以 [WalW ( p )] 表示 N = 2 p 阶矩阵,其中 p
b(<k>) 000 111 011 100 001 110 010 101
b(<k>)十 0 7 3 4 1 6 2 5
iB 0 4 2 2 1 3 1 3
Bx (0) Bx (1) B x ( 2) Bx (3) B x ( 4) Bx (5) Bx (6) Bx (7 )
第三节
阿达玛排列的快速沃尔什变换
表 11.1 (DWT)H 的变换系数 Bx ( k ) 的列率 i (DWT)H 系数
(11.16)
(11.17)
k 0 1 2 3 4 5 6 7
k2 k1 k0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
<k> 000 100 010 110 001 101 011 111
⎡ Bx (0) ⎤ ⎡ x(0) ⎤ ⎢ B (1) ⎥ ⎥ ⎢ x ⎥ = 1 [H ] ⋅ ⎢ x(1) ⎥ ⎢ ⎥ N N ⎢ # ⎢ ⎥ # ⎥ ⎢ ⎥ ⎢ ⎣ x( N − 1)⎦ ⎣ Bx ( N − 1)⎦ ⎡ Bx (0) ⎤ ⎡ x(0) ⎤ ⎥ ⎢ ⎢ x(1) ⎥ ⎥ = [H N ] ⋅ ⎢ Bx (1) ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ # # ⎥ ⎢ ⎥ ⎢ ⎣ x( N − 1)⎦ ⎣ Bx ( N − 1)⎦ 以(10.30)式代入(11.13)式可以得到(DWT)H 的指数形式定义式 ∑ nm−1⋅km−1 1 N-1 Bx (k ) = ⋅ ∑ x(n)(−1) m=1 N n =0 x(n) = ∑ Bx (k )(−1) m=1
相关文档
最新文档