沃尔什转换

✍ dations ◷ 2025-10-26 09:28:47 #沃尔什转换

沃尔什转换(Walsh Transform)是在频谱分析上作为离散傅立叶变换的替代方案的一种方法。

在频谱分析上最常用的一种方法是使用离散傅立叶变换,然而,即使已经有许多快速的算法来实现离散傅立叶变换,仍然具有一些实现上的缺点,举例来说,在离散傅立叶变换中,资料向量必须乘上复数系数的矩阵加以处理,而且每个复数系数的实部和虚部是一个正弦及余弦函数,因此大部分的系数都是浮点数,也就是说在做离散傅立叶变换处理的时候,我们必须做复数而且是浮点数的运算,因此计算量会比较大,而且浮点数运算产生的误差会比较大。

而在沃尔什转换中,资料向量需要乘上的矩阵是一个实数的矩阵,而且这些矩阵的系数是1或是–1,因此所有的系数都是绝对值大小相同的整数,这使得我们不需要作浮点数的乘法运算,更进一步,只需要使用加法来实现沃尔什转换,这使的沃尔什转换在运算复杂度上远小于离散傅立叶变换。

使用离散傅立叶变换相当于把信号拆解成在不同频率的正弦函数与余弦函数的分量,而使用沃尔什转换相当于把信号拆解成在许多不同震荡频率的方波上,因此,除非所要分析的信号拥有类似方波组合的特性,使用沃尔什转换作频谱分析的效果会比使用离散傅立叶变换分析的效果要差,这是降低运算复杂度所要付出的代价。

沃尔什转换的转换式为

F = n = 0 N 1 f W {displaystyle F=sum _{n=0}^{N-1}fW}

其中 W {displaystyle W} 是沃尔什转换矩阵的第(m,n)个元素。举例来说,一个8点沃尔什转换的转换矩阵如下:

W 8 = ( 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ) {displaystyle W_{8}={begin{pmatrix}1&1&1&1&1&1&1&1\1&1&1&1&-1&-1&-1&-1\1&1&-1&-1&-1&-1&1&1\1&1&-1&-1&1&1&-1&-1\1&-1&-1&1&1&-1&-1&1\1&-1&-1&1&-1&1&1&-1\1&-1&1&-1&-1&1&-1&1\1&-1&1&-1&1&-1&1&-1\end{pmatrix}}}

后面会解释沃尔什转换矩阵是如何产生,而沃尔什转换的反转换式为

f = 1 N n = 0 N 1 F W {displaystyle f={frac {1}{N}}sum _{n=0}^{N-1}FW}

注意到正转换式与反转换式只差了一个常数,这是由于沃尔什转换矩阵的反矩阵就是自己的转置矩阵乘上一个常数的缘故。

2 k {displaystyle 2^{k}} 点的沃尔什矩阵可以用下面的递回方式产生:

起始值 k = 1 {displaystyle k=1} (2点沃尔什转换矩阵)

W 2 = ( 1 1 1 1 ) {displaystyle W_{2}={begin{pmatrix}1&1\1&-1\end{pmatrix}}}

假设我们已经有一个 2 k {displaystyle 2^{k}} 点的沃尔什转换矩阵 W 2 k {displaystyle W_{2^{k}}} 则我们可以借由下面的方法来产生 2 k + 1 {displaystyle 2^{k+1}} 点的沃尔什转换矩阵 W 2 k + 1 {displaystyle W_{2^{k+1}}}

Step 1 定义 V 2 k + 1 = ( W 2 k W 2 k W 2 k W 2 k ) {displaystyle V_{2^{k+1}}={begin{pmatrix}W_{2^{k}}&W_{2^{k}}\W_{2^{k}}&-W_{2^{k}}\end{pmatrix}}}

Step 2 根据变号次数把 V 2 k + 1 {displaystyle V_{2^{k+1}}} 的列(row)重新排列成为 W 2 k + 1 {displaystyle W_{2^{k+1}}}

以下举一个使用4点沃尔什转换矩阵产生8点沃尔什转换矩阵的例子:

W 4 = ( 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ) {displaystyle W_{4}={begin{pmatrix}1&1&1&1\1&-1&1&-1\1&1&-1&-1\1&-1&-1&1\end{pmatrix}}}

V 8 = ( W 4 W 4 W 4 W 4 ) = ( 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ) {displaystyle V_{8}={begin{pmatrix}W_{4}&W_{4}\W_{4}&-W_{4}\end{pmatrix}}={begin{pmatrix}1&1&1&1&1&1&1&1\1&-1&1&-1&1&-1&1&-1\1&1&-1&-1&1&1&-1&-1\1&-1&-1&1&1&-1&-1&1\1&1&1&1&-1&-1&-1&-1\1&-1&1&-1&-1&1&-1&1\1&1&-1&-1&-1&-1&1&1\1&-1&-1&1&-1&1&1&-1\end{pmatrix}}}

接着对 V 8 {displaystyle V_{8}} 的列做排序即可得上面的 W 8 {displaystyle W_{8}}

在不同的应用上,我们较常使用的沃尔什矩阵的列的排列顺序也不同,以下以一个表来区分:

若使用二进制来表示各种顺序的列的编号,则双积顺序的二进制编号是序数顺序的格雷码编码,而自然顺序的二进制编号是双积顺序的位元反转。

(1) 正交性质

沃尔什转换矩阵的每个列是互相正交的,即如果 m 0 m 1 {displaystyle m_{0}neq m_{1}} n = 0 N 1 W W = 0 {displaystyle sum _{n=0}^{N-1}WW=0}

(2) 零交(zero-crossing)性质

2 k {displaystyle 2^{k}} 点沃尔什转换矩阵的每个列的变号次数都不相同,分别为变号0次到变号 2 k 1 {displaystyle 2^{k}-1} ,这个性质是沃尔什转换可以用来做频谱分析的原因之一,不同的变号次数相当于不同的频率。

(3) 奇偶性质

沃尔什转换矩阵(沃尔什顺序)中,编号为偶数的列是偶对称,编号为奇数的列是奇对称。(有第0列)

(4) 线性性质

f F {displaystyle fRightarrow F} g G {displaystyle gRightarrow G} ,( {displaystyle Rightarrow } 表沃尔什转换)则有 a f + b g a F + b g {displaystyle af+bgRightarrow aF+bg}

(5) 加法性质

W W = W {displaystyle WW=W} {displaystyle oplus } 表示逻辑互斥或(exclusive or)

(6) 平移性质

f F {displaystyle fRightarrow F} f W F {displaystyle fRightarrow WF}

(7) 调变性质

f F {displaystyle fRightarrow F} W f F {displaystyle WfRightarrow F}

(8) 巴斯瓦定理(Parseval's Theorem)

f F {displaystyle fRightarrow F} n = 0 N 1 | f | 2 = 1 N n = 0 N 1 | F | 2 {displaystyle sum _{n=0}^{N-1}|f|^{2}={frac {1}{N}}sum _{n=0}^{N-1}|F|^{2}}

(9) 折积性质

f F {displaystyle fRightarrow F} g G {displaystyle gRightarrow G} ,则 l = 0 N 1 f g = l = 0 N 1 g f F G {displaystyle sum _{l=0}^{N-1}fg=sum _{l=0}^{N-1}gfRightarrow FG} ,在这里 l = 0 N 1 f g = l = 0 N 1 g f {displaystyle sum _{l=0}^{N-1}fg=sum _{l=0}^{N-1}gf} 代表逻辑折积(logical convolution)。

由于一个 2 k {displaystyle 2^{k}} 点沃尔什转换矩阵可以由 2 k 1 {displaystyle 2^{k-1}} 点的沃尔什转换矩阵堆叠后做变号与排序产生,因此一个 2 k {displaystyle 2^{k}} 沃尔什转换可以由做两次 2 k 1 {displaystyle 2^{k-1}} 的沃尔什转换及一些加减法和排序产生,可以得到一个类似快速傅立叶变换的蝴蝶结构。

沃尔什转换适合做频谱分析,但未必适合做折积

因此不适合分析线性非时变系统(LTI system)

证明:

n = 0 N 1 f g {displaystyle textstyle sum _{n=0}^{N-1}displaystyle fg}

n = 0 N 1 f g {displaystyle textstyle sum _{n=0}^{N-1}displaystyle fg}

但是在Walsh Transform中Convolution Property 代表着"logic convolution"

h = f g = n = 0 N 1 f g = n = 0 N 1 f g {displaystyle h=f*g=textstyle sum _{n=0}^{N-1}displaystyle fg=textstyle sum _{n=0}^{N-1}displaystyle fg}

* 代表 "Logic convolution"

{displaystyle oplus } 代表 "logic addition" (similar to XOR) ,for example 3 {displaystyle oplus } 7=4

3 011 7 111 {displaystyle {begin{array}{lcr}3&011\oplus 7&111end{array}}}

相关

  • 吞并奥地利德奥合并(德语:Anschluss ,意指联合或政治联盟,也称为Anschluss Österreichs;同样指德奥合并),是1938年3月11日纳粹德国与奥地利第一共和国统一,组成大德意志的事件。一个历史渊源
  • 杰安迪杰安迪(外文名:Andrew Jacobs ),美国人,《纽约时报》北京分社记者。新闻报道涉及中国敏感话题,在2015年底离开中国。杰安迪出生于新泽西州的纽瓦克,他的父亲马丁·雅各布斯是肾病医
  • 军港军港特指被用于军事目的之港口。军港作为军舰舰队和地面部队登陆的停泊据点,在军队建设和战略部署中占有很重要的地位。军港除了有一般的口岸功能,还可能会临时储存或内建一些
  • 蒂雷纳子爵蒂雷纳子爵——亨利·德·拉图尔·奥弗涅又译为杜伦尼(法语:Henri de La Tour d'Auvergne, Viscount of Turenne,1611年9月11日-1675年7月27日),是六大法国大元帅(Marshal General
  • 卡里湖坐标:58°18′N 26°25′E / 58.300°N 26.417°E / 58.300; 26.417卡里湖(爱沙尼亚语:Karijärv),是爱沙尼亚的湖泊,位于该国东南部塔尔图县,由孔古塔乡负责管辖,面积0.9平方公里,海
  • 阿韦扎诺阿韦扎诺(意大利语:Avezzano),是意大利阿奎拉省的一个市镇。总面积104.04平方公里,人口42491人,人口密度408.4人/平方公里(2015年)。ISTAT代码为066006。
  • 贝内德托·克罗齐贝内德托·克罗齐(意大利语:Benedetto Croce,1866年2月25日-1952年11月20日)是意大利著名文艺批评家、历史学家、哲学家,有时也被认为是政治家。他在哲学、历史学、历史学方法论、
  • 本因坊道的本因坊道的(1669年-1690年6月13日),生于日本伊势国松坂,本姓小川,法名日勇,日本江户时代围棋棋士,棋力上手(七段),本因坊家迹目,二十一岁英年早逝。父亲为小川草庵,道的自幼喜碁,拜于棋圣
  • 白线条乐团白线条乐团(英语:The White Stripes),美国另类摇滚双人乐团,1997年由作曲人杰克·怀特(主唱、吉他和键盘乐器)和鼓手梅格·怀特(鼓,偶尔演唱)成立于密歇根州底特律。白线条乐团在底特
  • 神魂颠倒《神魂颠倒》(英语:)是杰夫·富兰克林创作的美国电视情景喜剧,1997年8月26日至10月28日在联合派拉蒙电视网播出。节目主要演员包括彼得·道博森、米歇尔·维特菲尔德、伊芙·拉茹、帕特里克·布里斯托和辛迪·安布赫尔,剧情围绕佛罗里达州迈阿密海滩的同名婚姻介绍所展开,其中道博森和维特菲尔德分别饰演合伙开办婚介所的杰克·鲍德温与沃伦·鲍德温兄弟,另外几位演员扮演婚介所雇员。康妮·史蒂文斯原计划饰演鲍德温兄弟的母亲,但在试播集剧本重写后始终没有在剧中露面。安德鲁·戈特利布是电视剧制作人,张文斯和本·蒙塔尼奥是