我是靠谱客的博主 幸福小霸王,最近开发中收集的这篇文章主要介绍线性代数学习笔记8-1:复数矩阵与共轭转置、Hermite矩阵、酉矩阵、傅里叶矩阵和快速傅里叶变换FFT,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

即使是实矩阵,也可能有复特征值,因此矩阵运算中无法避免的会碰到复数

这里我们先特别关注复数矩阵的情况,并明确如何处理复矩阵,而在后续学习中一般只研究实矩阵,可以将其推广到复数情况

复向量的内积和共轭转置

对于复向量 x = [ x 1 x 2 ⋮ x n ] ∈ C n mathbf{x}=left[begin{array}{c}x_{1} \x_{2} \vdots \x_{mathrm{n}}end{array}right] in mathbf{C}^{n} x= x1x2xn Cn,其中每个分量都是复数

在实数情况下,我们学习过, x T x {mathbf{x}}^{T} mathbf{x} xTx表示 x mathbf{x} x与自己的内积/点积,结果是一个正实数(向量 x mathbf{x} x长度的平方)

  • 复向量的模长的平方:在 x mathbf{x} x为复数情的况下不能再使用 x T x {mathbf{x}}^{T} mathbf{x} xTx复向量模长的平方应推广为 x ‾ T x overline{mathbf{x}}^{T} mathbf{x} xTx,对于复向量,这是一个常见、很重要的运算
    具体带入可知, x ‾ T x overline{mathbf{x}}^{T} mathbf{x} xTx的结果必然为非负实数(仅当 x = 0 mathbf{x}=mathbf 0 x=0 x ‾ T x = 0 overline{mathbf{x}}^{T} mathbf{x}=0 xTx=0),这符合“模长平方”的数学意义: x ‾ T x = [ x ˉ 1 x ˉ 2 x ˉ 3 x ˉ 4 ] [ x 1 x 2 x 3 x 4 ] = ∣ x 1 ∣ 2 + ∣ x 2 ∣ 2 + ∣ x 3 ∣ 2 + ∣ x 4 ∣ 2 overline{mathbf{x}}^{T} mathbf{x}=left[begin{array}{llll}bar{x}_{1} & bar{x}_{2} & bar{x}_{3} & bar{x}_{4}end{array}right]left[begin{array}{l}x_{1} \ x_{2} \ x_{3} \ x_{4}end{array}right]=left|x_{1}right|^{2}+left|x_{2}right|^{2}+left|x_{3}right|^{2}+left|x_{4}right|^{2} xTx=[xˉ1xˉ2xˉ3xˉ4] x1x2x3x4 =x12+x22+x32+x42其中,对于复数 x i x_i xi x ˉ i x i = ∣ x i ∣ 2 bar{x}_{i}x_i=left|x_{i}right|^{2} xˉixi=xi2(由于 ( a + i b ) ( a − i b ) = a 2 + b 2 (a+ib)(a-ib)=a^2+b^2 (a+ib)(aib)=a2+b2),可见,结果的每一项都是非负实数

例如,我们认为复向量 [ 1 i ] left[begin{array}{c}1 \iend{array}right] [1i]模长的平方为2,因为 [ 1 − i ] [ 1 i ] = 2 left[begin{array}{ll}1 & -iend{array}right]left[begin{array}{c}1 \iend{array}right]=2 [1i][1i]=2

  • 一般的,复向量的内积运算为 y H x mathbf{y}^{H} mathbf{x} yHx y H x = y ‾ T x = y ˉ 1 x 1 + y ˉ 2 x 2 + ⋯ + y ˉ n x n mathbf{y}^{H} mathbf{x}=overline{mathbf{y}}^{T} mathbf{x}=bar{y}_{1} x_{1}+bar{y}_{2} x_{2}+cdots+bar{y}_{n} x_{n} yHx=yTx=yˉ1x1+yˉ2x2++yˉnxn
    y H x = 0 mathbf{y}^{H} mathbf{x}=0 yHx=0,说明两个复向量互相垂直/正交

可见,实数情况下的转置 x T mathbf{x}^{T} xT,在复数情况下推广为共轭转置 x ‾ T = x H overline{mathbf{x}}^{T}=mathbf{x}^{H} xT=xH,也称为Hermite转置

复数矩阵 与 共轭转置(Hermite转置)

由上,矩阵的转置运算 A T mathbf A^T AT,在复空间中推广为Hermite转置 A H mathbf A^H AH

  • Hermite矩阵: A H = A ˉ T mathbf A^H=mathbf{bar A}^T AH=AˉT

共轭转置(Hermite转置)的运算性质:

  1. ( A H ) H = A (mathbf A^H)^H=mathbf A (AH)H=A
  2. ( A + B ) H = A H + B H (mathbf A+mathbf B)^H=mathbf A^H+mathbf B^H (A+B)H=AH+BH
  3. ( A B ) H = B H A H (mathbf Amathbf B)^H=mathbf B^Hmathbf A^H (AB)H=BHAH
  4. ( A − 1 ) H = ( A H ) − 1 (mathbf A^{-1})^H=(mathbf A^H)^{-1} (A1)H=(AH)1
  5. ( k A ) H = k ˉ A H (kmathbf A)^H=bar{k}mathbf A^H (kA)H=kˉAH

一般而言,从n维实空间 R n mathbf{R}^{n} Rn,推广到n维复空间 C n mathbf{C}^{n} Cn将各个转置运算换为Hermite转置即可,如:

Hermitian矩阵

  • 对称矩阵,实数下为 A = A T mathbf A=mathbf A^T A=AT复数下为 A = A H mathbf A=mathbf A^H A=AH,称为Hermitian矩阵

酉矩阵

  • 正交矩阵,实数下为 Q T Q = I mathbf Q^Tmathbf Q=mathbf I QTQ=I复数下为 Q H Q = I mathbf Q^Hmathbf Q=mathbf I QHQ=I,称为酉矩阵(unitary matrix)
    酉矩阵的列向量都是复向量,且构成复空间中的标准正交向量组,满足 q ‾ j T q k = { 0 j ≠ k 1 j = k overline{mathbf{q}}_{j}^{T} mathbf{q}_{k}=left{begin{array}{ll} 0 & j neq k \1 & j=kend{array}right. qjTqk={01j=kj=k

傅里叶矩阵

使用傅里叶矩阵,可以实现离散傅里叶变换DFT

离散傅里叶变换DFT X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π N k n X[k]= sum_{n=0}^{N-1} x[n] mathrm{e}^{-mathrm{j} frac{2 pi}{N} k n} X[k]=n=0N1x[n]ejN2πkn
离散傅里叶逆变换IDFT x [ n ] = 1 N ∑ k = 0 N − 1 x [ n ] e j 2 π N k n x[n]=frac{1}{N}sum_{k=0}^{N-1} x[n] mathrm{e}^{mathrm{j} frac{2 pi}{N} k n} x[n]=N1k=0N1x[n]ejN2πkn

长度为 n n n的离散向量 x n boldsymbol x_n xn:

  • 做离散傅里叶变换DFT: F n x n boldsymbol{F}_{n}boldsymbol x_n Fnxn;(结果是 n × 1 ntimes 1 n×1的列向量,第 k k k行来自于 F n boldsymbol{F}_{n} Fn的第 k k k行与 x n boldsymbol x_n xn相乘)
  • 做离散傅里叶逆变换IDFT: F n − 1 x n boldsymbol{F}_{n}^{-1}boldsymbol x_n Fn1xn

根据DFT和IDFT定义式,提取基本元素 ω = e j 2 π / n omega=e^{j 2 pi / n} ω=ej2π/n,从而得到n阶傅里叶矩阵 F n boldsymbol{F}_{n} Fn
F n = [ 1 1 1 ⋯ 1 1 ω ω 2 ω ( n − 1 ) 1 ω 2 ω 4 ω 2 ( n − 1 ) ⋮ ⋱ 1 ω n − 1 ω 2 ( n − 1 ) ω ( n − 1 ) 2 ] boldsymbol{F}_{n}=left[begin{array}{rrrrr} 1 & 1 & 1 & cdots & 1 \ 1 & omega & omega^{2} & & omega^{(n-1)} \ 1 & omega^{2} & omega^{4} & & omega^{2(n-1)} \ vdots & & & ddots & \ 1 & omega^{n-1} & omega^{2(n-1)} & & omega^{(n-1)^{2}}end{array}right] Fn= 11111ωω2ωn11ω2ω4ω2(n1)1ω(n1)ω2(n1)ω(n1)2 其中,基本元素 ω = e j 2 π / n omega=e^{j 2 pi / n} ω=ej2π/n的特点在于:

  • ω = e j 2 π / n omega=e^{j 2 pi / n} ω=ej2π/n是复元素,但模长为1,因此其幂次方仅对应于单位圆上的旋转;
  • 并且 ω = e j 2 π / n omega=e^{j 2 pi / n} ω=ej2π/n的相角,就是将一整圈单位圆( 2 π 2pi 2π)划分为 n n n份得到的,从而 ω n = 1 omega^{n}=1 ωn=1

傅里叶矩阵的性质

注意,n阶傅里叶矩阵 F n boldsymbol{F}_{n} Fn满足:

  • 矩阵元素通项公式: ( F n ) i j = ω ( i − 1 ) ( j − 1 ) = ( e j 2 π / n ) ( i − 1 ) ( j − 1 ) left(boldsymbol{F}_{n}right)_{ij}=omega^{(i-1)(j-1)}=(e^{j 2 pi / n})^{(i-1)(j-1)} (Fn)ij=ω(i1)(j1)=(ej2π/n)(i1)(j1),即第 i i i行第 j j j列元素的指数,由 ( i − 1 ) ( j − 1 ) (i-1)(j-1) (i1)(j1)相乘得到( i , j ∈ [ 1 , n ] i,jin[1,n] i,j[1,n]
  • 有一定的对称性(满足 F n = F n T boldsymbol{F}_{n}=boldsymbol{F}_{n}^{T} Fn=FnT),但并不是Hermitian矩阵(复空间下不能算是对称矩阵,因为不满足 A = A H boldsymbol{A}=boldsymbol{A}^{H} A=AH
  • 傅里叶矩阵,各个列向量正交,但不是酉矩阵(列向量模长为 N sqrt{N} N (复空间下不是“列向量标准正交”的正交矩阵)
    好处:列向量正交,可以将傅里叶矩阵分解为一系列稀疏矩阵(含有大量零元素),从而可以轻易做乘法、求逆
  • 由上,各列向量正交但模长为 N sqrt{N} N ,整个矩阵除以 N sqrt{N} N 可以得到酉矩阵 1 N F n frac{1}{sqrt{N}}boldsymbol{F}_{n} N 1Fn(正交矩阵在复空间下的推广,列向量为复向量且标准正交)
  • 推论: F n − 1 = 1 N F n H F_n^{-1}=frac{1}{N} F_n^{H} Fn1=N1FnH,或者说 1 N F n H F n = I frac{1}{N} boldsymbol{F}_{n}{ }^{H} boldsymbol{F}_{n}=boldsymbol{I} N1FnHFn=I
    证明:根据上面, 1 N F n frac{1}{sqrt{N}}boldsymbol{F}_{n} N 1Fn为酉矩阵,其逆矩阵为 ( 1 N F n ) − 1 = ( 1 N F n ) H = 1 N F n H left(frac{1}{sqrt{N}} F_nright)^{-1}=left(frac{1}{sqrt{N}} F_nright)^{H}=frac{1}{sqrt{N}} F_n^{H} (N 1Fn)1=(N 1Fn)H=N 1FnH
    两步同乘以 1 N frac{1}{sqrt{N}} N 1,即可得到 F n − 1 = 1 N F n H F_n^{-1}=frac{1}{N} F_n^{H} Fn1=N1FnH,证毕
    (ps. 这就是为什么DFT有系数 1 N frac{1}{N} N1

例如,对于 F 4 = [ 1 1 1 1 1 e j ( π 2 ) e j ( π 2 ) 2 e j ( π 2 ) 3 1 e j ( π 2 ) 2 e j ( π 2 ) 2 ∗ 2 e j ( π 2 ) 2 ∗ 3 1 e j ( π 2 ) 3 e j ( π 2 ) 3 ∗ 2 e j ( π 2 ) 3 ∗ 3 ] = [ 1 1 1 1 1 i i 2 i 3 1 i 2 i 4 i 6 1 i 3 i 6 i 9 ] = [ 1 1 1 1 1 i − 1 − i 1 − 1 1 − 1 1 − i − 1 i ] boldsymbol{F}_{4}=left[begin{array}{cccc} 1 & 1 & 1 & 1 \ 1 & e^{jleft(frac{pi}{2}right)} & e^{jleft(frac{pi}{2}right) 2} & e^{jleft(frac{pi}{2}right) 3} \ 1 & e^{jleft(frac{pi}{2}right) 2} & e^{jleft(frac{pi}{2}right) 2 * 2} & e^{jleft(frac{pi}{2}right) 2 * 3} \ 1 & e^{jleft(frac{pi}{2}right) 3} & e^{jleft(frac{pi}{2}right) 3 * 2} & e^{jleft(frac{pi}{2}right) 3 * 3} end{array}right]=left[begin{array}{cccc} 1 & 1 & 1 & 1 \1 & i & i^{2} & i^{3} \1 & i^{2} & i^{4} & i^{6} \1 & i^{3} & i^{6} & i^{9}end{array}right] =left[begin{array}{rrrr}1 & 1 & 1 & 1 \1 & i & -1 & -i \1 & -1 & 1 & -1 \1 & -i & -1 & iend{array}right] F4= 11111ej(2π)ej(2π)2ej(2π)31ej(2π)2ej(2π)22ej(2π)321ej(2π)3ej(2π)23ej(2π)33 = 11111ii2i31i2i4i61i3i6i9 = 11111i1i11111i1i 各个列向量正交(内积 x i ˉ T x j = 0 bar{boldsymbol x_i}^Tboldsymbol x_j=0 xiˉTxj=0),但列向量的模长平方 x i ˉ T x i = 4 bar{boldsymbol x_i}^Tboldsymbol x_i=4 xiˉTxi=4
因此,可以修正得到一个酉矩阵: 1 2 F 4 = 1 2 [ 1 1 1 1 1 i − 1 − i 1 − 1 1 − 1 1 − i − 1 i ] frac{1}{2}boldsymbol{F}_{4}=frac{1}{2}left[begin{array}{rrrr}1 & 1 & 1 & 1 \1 & i & -1 & -i \1 & -1 & 1 & -1 \1 & -i & -1 & iend{array}right] 21F4=21 11111i1i11111i1i
酉矩阵 1 2 F 4 frac{1}{2}boldsymbol{F}_{4} 21F4(复数下的正交矩阵)的逆矩阵: 1 2 F 4 H frac{1}{2}boldsymbol{F}_{4}^H 21F4H(共轭转置即可)
满足 1 4 F 4 H F 4 = I frac{1}{4} boldsymbol{F}_{4}{ }^{H} boldsymbol{F}_{4}=boldsymbol{I} 41F4HF4=I

另外也可以验证 F 4 boldsymbol{F}_{4} F4的逆矩阵: F 4 − 1 = 1 4 F 4 H = 1 4 [ 1 1 1 1 1 e − j ( π 2 ) e − j ( π 2 ) 2 e − j ( π 2 ) 3 1 e − j ( π 2 ) 2 e − j ( π 2 ) 2 ∗ 2 e − j ( π 2 ) 2 ∗ 3 1 e − j ( π 2 ) 3 e − j ( π 2 ) 3 ∗ 2 e − j ( π 2 ) 3 ∗ 3 ] F_{4}^{-1}=frac{1}{4} {F}_{4}^H=frac{1}{4}left[begin{array}{cccc} 1 & 1 & 1 & 1 \ 1 & e^{-jleft(frac{pi}{2}right)} & e^{-jleft(frac{pi}{2}right) 2} & e^{-jleft(frac{pi}{2}right) 3} \ 1 & e^{-jleft(frac{pi}{2}right) 2} & e^{-jleft(frac{pi}{2}right) 2 * 2} & e^{-jleft(frac{pi}{2}right) 2 * 3} \ 1 & e^{-jleft(frac{pi}{2}right) 3} & e^{-jleft(frac{pi}{2}right) 3 * 2} & e^{-jleft(frac{pi}{2}right) 3 * 3} end{array}right] F41=41F4H=41 11111ej(2π)ej(2π)2ej(2π)31ej(2π)2ej(2π)22ej(2π)321ej(2π)3ej(2π)23ej(2π)33

快速傅里叶变换FFT

快速傅里叶变换FFT可以大大减少DFT的计算量,下面从矩阵角度看待这个问题

FFT中,将N=64的DFT拆为两个N=32的DFT
从矩阵角度:

  • 傅里叶矩阵 F 64 boldsymbol{F}_{64} F64 F 32 boldsymbol{F}_{32} F32的基本元素有如下关系: w 64 2 = w 32 w_{64}^2=w_{32} w642=w32,可见 F 64 boldsymbol{F}_{64} F64 F 32 boldsymbol{F}_{32} F32有一定关系
  • 具体而言, [ F 64 ] = [ I D I − D ] [ F 32 0 0 F 32 ] [ P ] left[boldsymbol{F}_{64}right]=left[begin{array}{rr} boldsymbol{I} & boldsymbol{D} \ boldsymbol{I} & -boldsymbol{D} end{array}right]left[begin{array}{rr} boldsymbol{F}_{32} & 0 \ 0 & boldsymbol{F}_{32} end{array}right][boldsymbol{P}] [F64]=[IIDD][F3200F32][P]
  • 其中,置换矩阵 P = [ 1 0 0 0 ⋯ ⋯ 0 0 0 0 1 0 0 0 ⋮ 0 0 0 0 ⋯ ⋯ 1 0 0 1 0 0 ⋯ ⋯ 0 0 0 0 0 1 ⋯ ⋯ 0 0 ⋮ 0 0 0 0 ⋯ ⋯ 0 1 ] boldsymbol{P}=left[begin{array}{cccccccc} 1 & 0 & 0 & 0 & cdots & cdots & 0 & 0 \ 0 & 0 & 1 & 0 & & & 0 & 0 \ & & & vdots & & & & \ 0 & 0 & 0 & 0 & cdots & cdots & 1 & 0 \ 0 & 1 & 0 & 0 & cdots & cdots & 0 & 0 \ 0 & 0 & 0 & 1 & cdots & cdots & 0 & 0 \ & & & vdots & & & & \ 0 & 0 & 0 & 0 & cdots & cdots & 0 & 1 end{array}right] P= 100000000100010000000010001000000001 ,功能是将奇数次项(1,3,5)提到前面,将偶数次项(2,4,6)放到后面
    对角阵 D = [ 1 ω ω 2 ⋱ ω 31 ] boldsymbol{D}=left[begin{array}{ccccc} 1 & & & & \ & omega & & & & \ & & omega^{2} & & \ & & & ddots & \ & & & & omega^{31} end{array}right] D= 1ωω2ω31
  • 计算量对比:
    原来对长度为 N N N的向量 x boldsymbol x x直接做DFT,则 F 64 x boldsymbol{F}_{64}boldsymbol x F64x的计算量是 N × N Ntimes N N×N
    改写为FFT后,计算量是两个 F 32 x boldsymbol{F}_{32}boldsymbol x F32x再加上一些修正项,修正项主要来自于与对角矩阵D的乘法,大约为32次;并且 F 32 boldsymbol{F}_{32} F32可进一步拆为两个 F 16 boldsymbol{F}_{16} F16、再拆为四个 F 8 boldsymbol{F}_{8} F8…最终,所有计算来自于修正项,FFT计算量为 ( N / 2 ) l o g 2 N (N/2)log_2N (N/2)log2N

最后

以上就是幸福小霸王为你收集整理的线性代数学习笔记8-1:复数矩阵与共轭转置、Hermite矩阵、酉矩阵、傅里叶矩阵和快速傅里叶变换FFT的全部内容,希望文章能够帮你解决线性代数学习笔记8-1:复数矩阵与共轭转置、Hermite矩阵、酉矩阵、傅里叶矩阵和快速傅里叶变换FFT所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部