计算格拉姆矩阵_线性代数29——复矩阵\酉矩阵和快速傅立叶变换

本文探讨复矩阵的性质,包括复向量的模长与点积,厄米特矩阵和酉矩阵的概念。接着深入傅立叶矩阵及其在快速傅立叶变换(FFT)中的应用,阐述如何利用FFT简化大规模计算。
摘要由CSDN通过智能技术生成

ba575128180f65e930dea8b9ce0ef1d0.png

实矩阵也可能碰到复特征值,因此无可避免地在矩阵运算中碰到复数矩阵当然也有可能包含复数,最重要的复矩阵是傅立叶矩阵,它用于傅立叶变换。一种特殊的傅立叶变换是快速傅立叶变换(fast Fourier transform),简称FFT,在计算机中很常用,特别是涉及到大数据时,FFT将把傅立叶变换中的n阶方正阵乘法的运算次数从

降低到
,这是一个巨大的进步。

本文相关前置知识

复数和复平面、复平面上的旋转

傅立叶矩阵中w的形式是什么
正交向量和正交矩阵 (格拉姆-施密特正交化)
对称矩阵的特征值

1 复向量

先给出一个复向量,即向量的分量中至少有一个是复数:

a508eec6a2f7a10713ba0b6b365b07c3.png

虽然这个向量在表达上和普通的实向量没什么区别,但这个向量不再属于实空间

,而是属于复空间
,即
维复空间。

1.1 模长

关于复向量的第一个问题是模长怎么计算?

由于向量中有复数分量,再用过

的方式是无法计算出模长的,比如下面的

46b4f512881d1b34031c9a27f4388070.png

但很明显,

在复平面上的模长不是0:

0e967f2d17d460269f3b69f17057d9e6.png

我们知道一个复数的模长的平方等于这个复数与它的共轭复数的乘积,因此可以通过下面的方式计算复向量的模长:

e1faadf837a0968199999b76eaa2da40.png

通常用

(H来自Hermite)表示共轭向量的转置:

216005f52129af7ab84cc1db0d0af927.png

1.2 点积

与模长类似,如果有两个复向量pq,它们的点积也不能简单地定义成

,而是

ca83cca8252be7abd38ec7a4c557955d.png

复平面上有两个向量

,二者的点积是:

e62e8c79cf8f721914dd2d19e46a4c04.png

二者的点积是0,因此可以判断两个复向量互相垂直:

568086e39fb59edfe57d139e4c5252c4.png

2 复矩阵

我们曾讲过,对于一个矩阵A来说,如果

,那么
A是对称矩阵,实际上这个结论仅对实矩阵有效,对复矩阵可不管用。

2.1 厄米特矩阵

如果一个复矩阵是对称矩阵,那么:

f404e9435f23d141d9f3ca8074824b70.png

通常写作另一种方式:

458279d5877f1b59077a589afa73d5ef.png

这种对称复矩阵称为厄米特矩阵(或埃米特矩阵,Hermitian matrix),比如下面这个:

1fe70476d72072d2d3f07652f9c2c291.png

2.2 酉矩阵

上一章讲到,一个复对称矩阵的特征值仍然是实数,且可以找到互相垂直的特征向量,其对角元素都是实数。 假设有一个由n个标准正交向量组成的复矩阵

,这里的正交意味:

be0c09c42c2d962c9bfa1d6602d1584a.png

这个复空间的正交矩阵Q称为酉矩阵(unitary matrix)。

3 傅立叶矩阵和傅立叶快速变化

傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。许多波形可作为信号的成分,比如正弦波、方波、锯齿波等,傅立叶变换用正弦波作为信号的成分。

在电子工程或计算机中,n×n矩阵的行和列都是从0开始的,到n-1结束,由于傅立叶变换经常用在计算机上,所以我们在讨论傅立叶矩阵的时候遵从这种下标规则。

3.1 傅立叶矩阵

形如

的复矩阵是傅立叶矩阵:

685f519c65cb5cad222236c93c2fbd23.png

矩阵中的每个元素都不为0,是个全矩阵。w是个特殊的值:

89da3113f02bd6e04da6ebc420958cf4.png

在计算w的乘方的时候,我们需要考虑用极坐标表示复平面。在极坐标下,w表示模长为1的向量从(1,0)开始,绕原点逆时针旋转了

,如此一来,我们就可以知道n等于任意值时w的位置,并且也同样知道w的乘方的位置。对于w来说,
的模长仍然等于1,只是旋转的角度有所不同。比如n=6时,

ef81debd1ccf0739dac734b9b0973c1b.png

同理,n=4时,

,正好落在
虚轴上,
。我们写出4阶傅立叶矩阵
v:

499f84ce0bdee7fa671d816e7b32c91f.png

傅立叶矩阵可以得到一个四点(离散的)傅立叶变换,它的逆矩阵可以得到傅立叶逆变换。此外,傅立叶矩阵的列向量是正交的,所以很容易求得逆矩阵。实际上傅立叶矩阵可以分解成一系列稀疏矩阵,这些矩阵有大量的0元素,所以相应的乘法和求逆都很简单。

的列向量正交,这意味着任意两个列向量的点积为0,但如果你还是用过去的点积计算方法就会发现它并不是0(当然有时候会凑巧等于0),比如第2列和第4列:

3d669b855891411933079c03923785d1.png

上一章介绍过,复向量的点积不是这么算的,正确算法应该是取共轭的转置:

4f4210a7550961570a99aeeb338fd65b.png

的列向量的模长是2,为了使矩阵更完美,可以把它除以2,于是矩阵的各列就变成了标准正交向量:

248926801438892876b5953b98e36b64.png

对于标准正交的实矩阵来说,矩阵的逆等于矩阵的转置,傅立叶矩阵可化简为标准正交的复矩阵,具有同样的性质,

的逆矩阵就是它共轭的转置:

f63bfcd410211c16c9def201f818d831.png

由于

的逆矩阵就是
共轭的转置,所以
的逆矩阵和
具有同样的性质。

3.2 快速傅立叶变换

什么是快速傅立叶变换呢?举个例子,

之间存在着某种奇妙的联系,
也一样,我们可以把这种联系描述出来。

为例,
是一个64阶方阵,
;同理对于
来说,

52547d739738fb240d7ecf37b9af002d.png

的模长相等,
的幅角是
的2倍:

014a73e86a17ca6f7a75c12916107b17.png

既然如此,

也应该存在某种联系。实际上
与由两个
和两个零矩阵构成的方阵有关:

f86c6f13cc31ed4e03ec745c17f0106a.png

这种分解称为快速傅立叶变换。其中P是一个

的置换矩阵,D是由w的幂构成的对角矩阵:

d370410025ace4ebfb899d405aa4070d.png

P的效果是使得所乘行向量x中序号为奇数的分量

提到前面,偶数序号的分量
放到后面。例如:

da2f9ffb4c9655f2cdcaf355d4a35157.png

可以看到,快速傅立叶变换实际上使用的是分治算法。计算64阶傅立叶变换的计算量是

,而经过一次变换后,计算量变成了
(2个32阶的傅立叶矩阵)再加上一些修正项,而修正项主要来自于和对角矩阵D的乘法,共32次。继续对
进行分解……知道矩阵尺度为1。对于n阶矩阵,可将
次计算降至(n/2) log2n。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值