MIT_线性代数笔记:第 26 讲 复矩阵;快速傅里叶变换

news2024/11/19 22:50:29

目录

  • 复向量 Complex vectors
  • 复矩阵 Complex matrices
  • 傅里叶变换 Fourier transform
  • 快速傅里叶变换 Fast Fourier transform

实矩阵也可能有复特征值,因此无法避免在矩阵运算中碰到复数,本讲学习处理复数矩阵和复向量。

最重要的复矩阵是傅里叶矩阵,它用于傅里叶变换。而对于大数据处理快速傅里叶变换(FFT)显得更为重要,它将傅立叶变换的矩阵乘法中运算的次数从 n 2 n^2 n2次降至 n l o g 2 n nlog2^n nlog2n 次。

复向量 Complex vectors

对于给定的复向量 z = [ z 1 z 2 . . . z n ] ∈ C n z =\begin{bmatrix} z_1\\z_2\\...\\z_n \end{bmatrix}∈C^n z= z1z2...zn Cn ,其元素中有复数,因此 z T z z^Tz zTz 无法给出向量的长度。

例如 [ 1 i ] \begin{bmatrix} 1 & i \end{bmatrix} [1i] [ 1 i ] \begin{bmatrix} 1 \\ i \end{bmatrix} [1i] =0,则定义 ∣ z ∣ 2 = z ‾ T z = ∣ z 1 ∣ 2 \begin{vmatrix} z \end{vmatrix}^2 =\overline{z}^Tz =\begin{vmatrix} z_1 \end{vmatrix}^2 z 2=zTz= z1 2 + ∣ z 2 ∣ 2 \begin{vmatrix} z_2 \end{vmatrix}^2 z2 2+ . . . + ∣ z n ∣ 2 ...+\begin{vmatrix} z_n \end{vmatrix}^2 ...+ zn 2为向量长度。因此向量 [ 1 i ] \begin{bmatrix} 1 \\ i \end{bmatrix} [1i]的长度就是 [ 1 − i ] [ 1 i ] = 2 \begin{bmatrix} 1 & -i \end{bmatrix}\begin{bmatrix} 1 \\ i \end{bmatrix} =2 [1i][1i]=2,记 ∣ z ∣ 2 \begin{vmatrix} z \end{vmatrix}^2 z 2 = z ‾ T z \overline{z}^Tz zTz = z H z z^Hz zHz ,
H 来自于“Hermite”。 与之相似,内积的定义也变为 y H x = y ‾ T x y^Hx =\overline{y}^Tx yHx=yTx = y 1 ‾ x 1 \overline{y_1}x_1 y1x1 + y 2 ‾ x 2 \overline{y_2}x_2 y2x2 + . . . + y 1 ‾ x 1 ...+\overline{y_1}x_1 ...+y1x1

复矩阵 Complex matrices

上一讲中讲到了对于复矩阵 A,若有 A ‾ T = A \overline{A}^{_T}=A AT=A 则复矩阵 A 的特征值为实数。这种复矩阵被称为埃尔米特矩阵(Hermitian matrixes,又译作“厄米特矩阵”或者“厄米矩阵”)。转置共轭记作 A H = A ‾ T = A A^{_H}=\overline{A}^{_T}=A AH=AT=A

例如矩阵 [ 2 3 + i 3 − i 5 ] \begin{bmatrix} 2 & 3+i \\ 3-i & 5 \end{bmatrix} [23i3+i5]为埃尔米特矩阵。它具有实数特征值和正交的特征向量。由性质可知埃尔米特矩阵对角线均为实数。

此处向量标准正交的意思是
q j ‾ T q k = { 0 j ≠ k 1 j = k \overline{q_j}^{_T}q_k= \left\{ \begin{align*} &0 j≠k\\ &1 j=k \end{align*} \right. qjTqk={0j=k1j=k 用 n 个标准正交的复向量作为列向量可以构造一个矩阵 Q,则有 Q T Q = I = Q H Q Q^TQ=I=Q^HQ QTQ=I=QHQ。这个复空间的正交矩阵称为酉矩阵(unitary matrix)。

傅里叶变换 Fourier transform

傅里叶级数是将周期函数或者信号变换为不同频率的三角函数的和函数。
f ( x ) = a 0 + a 1 c o s x + b 1 s i n x + a 2 c o s 2 x + b 2 s i n 2 x + . . . f(x) = a_0 + a_1cosx + b_1sinx +a_2cos2x +b_2sin2x + ... f(x)=a0+a1cosx+b1sinx+a2cos2x+b2sin2x+...
在电子工程或者计算机科学中,n x n矩阵的行和列从第0行和第0列开始计数,最后到第 n-1 行和第 n-1 列。我们在讨论傅里叶矩阵的时候遵从这种习惯。

在这里插入图片描述
( F n ) j k = ω j k (F_n)_{jk}=ω^{jk} (Fn)jk=ωjk,傅里叶矩阵为对称矩阵 F n = F n T F_n=F_n^T Fn=FnT。矩阵中的 ω n = 1 , ω = e x p ( i 2 π / n ) ω^n=1,ω=exp(i2π/n) ωn=1,ω=exp(i2π/n)。矩阵的列向量正交。ω的方次分布在复平面的单位元上,只是幅角不同。当 n=4 时, ω 4 = 1 , ω = e x p ( i 2 π / 4 ) = i ω^4=1,ω=exp(i2π/4)=i ω4=1,ω=exp(i2π/4)=i
在这里插入图片描述
从矩阵可以得到一个四点(离散的)傅里叶变换,它的逆矩阵就是反傅里叶变换。因为傅里叶矩阵列向量正交,所以其逆矩阵很容易计算。实际上这个矩阵可以分解成一系列稀疏矩阵,并且它们的逆矩阵都很容易得到。
计算可知列向量的模不是 1,矩阵除以 2 之后,向量标准正交: 1 4 F 4 H F 4 = I \frac{1}{4}F_4^HF_4 = I 41F4HF4=I。它的逆矩阵就是共轭转置。

快速傅里叶变换 Fast Fourier transform

64 阶傅里叶矩阵 F 64 F_{64} F64中的 ω 64 ω_{64} ω64与 32 阶傅里叶矩阵 F 32 F_{32} F32的元素 ω 32 ω_{32} ω32相比,幅角是其一半, ( ω 64 ) 2 = ω 32 (ω_{64})^2=ω_{32} (ω64)2=ω32。可以从分块矩阵运算找到两者的联系:

在这里插入图片描述
P 的效果是使得所乘的向量 x 中序数为奇数的分量如 x 1 x_1 x1 x 3 x_3 x3 x 5 x_5 x5等提到前面,而偶数分量 x 2 x_2 x2 x 4 x_4 x4等放到后面。

计算 64 阶傅里叶变换(傅里叶矩阵乘以向量)的计算量是 6 4 2 64^2 642,而等式右侧的计算量是 2 × 3 2 2 2×32^2 2×322(两个 32 阶的傅里叶矩阵)再加上一些修正项,修正项主要来自于与对角矩阵 D 的乘法,大约为 32 次。继续对 F 32 F_{32} F32进行分解,计算的运算量再一次下降变为 2 × ( 2 × 1 6 2 + 16 ) + 32 2×(2×16^2+16)+32 2×(2×162+16)+32。连续进行拆分,傅里叶矩阵的尺寸变化依次为 64、32、16、8、4、2、1,经过 l o g 2 64 log_264 log264 次分解,最后仅剩修正项的运算, l o g 2 64 × 32 log_264×32 log264×32次。对于 n 阶矩阵,可将 n 2 n^2 n2次计算降至 ( n / 2 ) l o g 2 n (n/2)log_2n (n/2)log2n。例如对于 1024 阶矩阵,运算量从 1024×1024 降至 5×1024。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1385695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【备战蓝桥杯】——Day1

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-xKn7nmq36s9pgUXR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

9 - 数据分片概述|部署MyCat服务

数据分片概述|部署MyCat服务|测试配置 数据分片概述分库分表分割方式水平分割(横向切分)垂直分割(纵向切分) 提供分库分表存储服务软件(中间件)MyCAT软件分片服务器的工作过程 部署M…

基于电源完整性的一些PCB设计建议

基于电源完整性的一些PCB设计建议 1. 尽量减少电源和地通路之间的环路电感,在相邻的层上分配电源和接地面时,使用尽可能薄的电介质; 2. 通过在平面之间使用尽可能高的介电常数来获得平面之间的最低阻抗,与尽可能薄的介电常数设计…

基于springboot的流浪动物救助管理系统

🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅一 、设计说明 1.1研究背景 随着…

Netty-初探

引言 最近开始学习网络编程这一块,特此总结 直接内存为什么比堆内内存要快? JVM在发送堆内数据给远程时,首先会把这部分数据复制到堆外的一块内存空间(防止GC过程中文件引用地址发生变化带来的问题),然后…

陪诊小程序开发|陪诊软件定制|陪诊系统成品功能包含哪些?

陪诊小程序是一种便捷的工具,为用户提供一系列服务和功能,方便患者在就医过程中获得更好的体验和效果。接下来我们将介绍几个主要的陪诊小程序功能。 陪诊小程序开发功能: 一、预约挂号功能。陪诊小程序能够连接用户和医疗机构的系统&#x…

扩散模型微调方法/文献综述

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

SMD NTC Thermistor NTC热敏电阻产品基本参数定义

热敏电阻器(Thermistor)是一种电阻值对温度极为灵敏的半导体元件,温度系数可分为Positive Temperature Coefficient 正温度系数热敏电阻又称PTC热敏电阻和Negative Temperature Coefficient 负温度系数热敏电阻又称NTC热敏电阻. NTC热敏电…

基于YOLOv8深度学习的苹果叶片病害智能诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

外汇天眼:不仅骗钱还骗感情?小心这类骗子盯上你

什么是外汇“杀猪盘”骗局?通俗一点来说就是骗子利用社交平台或者网站,伪造虚假的人设和故事,然后诱导网友进入虚假的外汇平台进行投资交易。随着现代网络科技的发展,各种交友软件可以说是层出不穷,虽然给人们提供了更…

智慧公厕:引领城市卫生管理新时代

在智慧城市建设中,智慧公厕作为城市环境卫生信息化的重要组成部分,扮演着关键角色。它不仅可以提升城市管理水平,满足人民群众的需求,还能提高公厕使用体验和城市环境卫生水平。如广州中期科技有限公司自主研发的智慧公厕管理系统…

Type Script 安装 NPM 安装

使用终端命令 npm -v 这里需要使用到npm npm node.js安装包自带 去官网 Node.js — Download下载对应版本安装 1.npm config set registry https://registry.npmmirror.com 2.npm install -g typescript error: npm notice npm notice New minor version of npm availab…

SpringBoot+Vue实现对称加密和非对称加密

我们先来了解一下什么是对称加密和非对称加密,以及两者的优缺点 对称加密 使用同一个密钥对消息进行加密解密 优点:加密和解密的速度快,适合于数据量大的加解密 缺点:密钥在网络传输中可能被泄露,因此安全性相对较低…

arcgis javascript api4.x以basetilelayer方式加载天地图web墨卡托(wkid:3857)坐标系

需求: arcgis javascript api4.x以basetilelayer方式加载天地图web墨卡托(wkid:3857)坐标系 效果图: 代码: 提示: 2个文件放同一个文件夹下 MyCustomTileLayer.js define([exports, "…

手把手教你学会接口自动化系列十一-将用例写在json中,持久化管理起来下

上一篇我写了登录,我们发现json还是没有什么大问题,还蛮好用的,但是我们再写下一个,比如线索新建接口的时候,我们写着写着会发现问题: 我们写获取url的没有问题,代码如下: # !/usr…

uniapp中uview组件库丰富的ActionSheet 操作菜单使用方法

目录 #平台差异说明 #基本使用 #配置顶部的提示信息和底部取消按钮 #如何知道点了第几项 #API #Props #Event 本组件用于从底部弹出一个操作菜单,供用户选择并返回结果。 本组件功能类似于uni的uni.showActionSheetAPI,配置更加灵活,所…

vue:使用【3.0】:拖拽数据

1、参考链接&#xff1a;vue.draggable中文文档 - itxst.com 2、想要实现的效果图&#xff1a;红框内容可以拖拽 3、安装 yarn add vuedraggablenext npm i -S vuedraggablenext 4、代码 <template><draggable:list"columns"ghost-class"ghost&qu…

手把收来教大家win10电脑分辨率怎么调

win10系统操作界面和方式和win7系统有很大不同&#xff0c;有些用户想要设置屏幕的分辨率&#xff0c;但是却不知道应该怎么操作&#xff1f;屏幕分辨率会影响我们使用电脑的视觉效果&#xff0c;经常使用电脑的朋友通常都会设置一个合适的分辨率。下面小编来教大家win10电脑分…

webpack的性能优化(一)——分包优化

1.什么是分包&#xff1f;为什么要分包&#xff1f; 默认情况下&#xff0c;Webpack 会将所有代码构建成一个单独的包&#xff0c;这在小型项目通常不会有明显的性能问题&#xff0c;但伴随着项目的推进&#xff0c;包体积逐步增长可能会导致应用的响应耗时越来越长。归根结底这…

什么是google算法?

谷歌算法本身指的是谷歌针对搜索引擎做的规定 要想在别人的地盘玩&#xff0c;那肯定要了解这个地盘的规定&#xff0c;不然做了什么违反了规定&#xff0c;谷歌肯定不会让你继续玩下去 要想做谷歌&#xff0c;那肯定要了解谷歌的算法&#xff0c;然而谷歌的算法也不是一成不变…