哈达玛变换的概念
https://baike.baidu.com/item/哈达玛变换/14679032?fr=aladdin
哈达玛变换的matlab实现
https://blog.csdn.net/geekmanong/article/details/50038611
哈达玛变换的维基介绍
https://blog.csdn.net/jubincn/article/details/6925224?utm_source=app
“哈达玛变换”的百度百科中提到:哈达玛变换实际是将坐标轴旋转45°的正交变换,此说法有误,下面介绍角度旋转的矩阵表达计算过程。
坐标轴旋转45°(逆时针旋转为正)也可以理解为单位向量旋转-45°(顺时针旋转),推导过程如下所示:
假设任一单位向量为P( cosθ, sinθ ),旋转角度δ后变为P’( cos(θ+δ), sin(θ+δ) ) ,
令
x
=
c
o
s
θ
,
y
=
s
i
n
θ
,
x = cosθ,y = sinθ,
x=cosθ,y=sinθ,
x
′
=
c
o
s
(
θ
+
δ
)
=
c
o
s
θ
∗
c
o
s
δ
−
s
i
n
θ
∗
s
i
n
δ
=
x
∗
c
o
s
δ
−
y
∗
s
i
n
δ
,
x' = cos(θ+δ) = cosθ * cosδ - sinθ * sinδ = x * cosδ - y * sinδ,
x′=cos(θ+δ)=cosθ∗cosδ−sinθ∗sinδ=x∗cosδ−y∗sinδ,
y
′
=
s
i
n
(
θ
+
δ
)
=
s
i
n
θ
∗
c
o
s
δ
+
c
o
s
θ
∗
s
i
n
δ
=
y
∗
c
o
s
δ
+
x
∗
s
i
n
δ
,
y' = sin(θ+δ) = sinθ * cosδ + cosθ * sinδ = y * cosδ + x * sinδ,
y′=sin(θ+δ)=sinθ∗cosδ+cosθ∗sinδ=y∗cosδ+x∗sinδ,
用矩阵表示旋转过程为,
[
x
′
y
′
]
=
[
c
o
s
δ
−
s
i
n
δ
s
i
n
δ
c
o
s
δ
]
[
x
y
]
\left[ \begin{matrix} x' \\ y' \\ \end{matrix} \right]= \left[ \begin{matrix} cosδ & -sinδ\\ sinδ & cosδ\\ \end{matrix} \right] \left[ \begin{matrix} x\\ y\\ \end{matrix} \right]
[x′y′]=[cosδsinδ−sinδcosδ][xy]
已知δ为-45°,带入可得其矩阵表达式为
[
1
−
1
1
1
]
\left[ \begin{matrix} 1 & -1\\ 1 & 1\\ \end{matrix} \right]
[11−11]
而哈达玛变换的2x2矩阵为
[
1
1
1
−
1
]
\left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right]
[111−1]
二者并非一致,故该说法有误。
关于坐标轴旋转的变换矩阵还可以通过基向量的变换角度来推导。设原始坐标中的
i
‾
=
(
1
,
0
)
,
j
‾
=
(
0
,
1
)
\overline{i}=(1,0),\overline{j}=(0,1)
i=(1,0),j=(0,1), 坐标轴逆时针旋转45°后(为简便表达,仅考虑方向,不考虑长度)变为
i
′
‾
=
(
1
,
1
)
,
j
′
‾
=
(
−
1
,
1
)
\overline{i'}=(1,1),\overline{j'}=(-1,1)
i′=(1,1),j′=(−1,1),用矩阵可表达为
∣
i
′
‾
j
′
‾
1
−
1
1
1
∣
\left| \begin{matrix} \overline{i'} & \overline{j'}\\ 1&-1\\ 1& 1\\ \end{matrix} \right|
∣∣∣∣∣∣i′11j′−11∣∣∣∣∣∣
关于基变换的原理可参看视频《线性代数的本质-09-基变换》
https://b23.tv/av6500834