线性代数笔记25--复数矩阵、快速傅里叶变换

2024-03-30 10:04

本文主要是介绍线性代数笔记25--复数矩阵、快速傅里叶变换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 复数矩阵

复向量

Z = [ z 1 z 2 z 3 z 4 ⋯ ] Z=\begin{bmatrix} z_1\\z_2\\z_3\\z_4\\ \cdots \end{bmatrix} Z= z1z2z3z4
复向量的模长
∣ z ∣ = z ‾ ⊤ z = [ z ‾ 1 z ‾ 2 z ‾ 3 ] [ z 1 z 2 z 3 ] \lvert z\rvert=\overline z^{\top}z= \begin{bmatrix} \overline z_1\overline z_2\overline z_3 \end{bmatrix} \begin{bmatrix} z_1\\z_2\\z_3 \end{bmatrix} z=zz=[z1z2z3] z1z2z3

内积
y ⊤ x = [ y ‾ 1 y ‾ 2 y ‾ 3 ] [ x 1 x 2 x 3 ] y^{\top}x= \begin{bmatrix} \overline y_1\overline y_2\overline y_3 \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix} yx=[y1y2y3] x1x2x3
实对称矩阵
A = A ⊤ A=A^{\top} A=A
复对称矩阵
A = A ‾ ⊤ A=\overline A^{\top} A=A


[ 2 3 − i 3 + i 5 ] \begin{bmatrix} 2 & 3 - i \\3 + i & 5 \end{bmatrix} [23+i3i5]
垂直
q 1 q 2 q 3 ⋯ q n q ‾ i ⊤ q j = { 0 i ≠ j 1 i = j q_1\ q_2\ q_3\ \cdots q_n\\ \overline q_i^{\top}q_j= \begin{cases} 0 \quad i \ne j \\1\quad i = j \end{cases} q1 q2 q3 qnqiqj={0i=j1i=j

复正交矩阵
Q ‾ ⊤ Q = I \overline Q^{\top}Q=I QQ=I

2. 快速傅里叶变换

F n = [ 1 1 1 ⋯ 1 1 ω ω 2 ⋯ ω n − 1 ⋮ ⋯ 1 ω n − 1 ω 2 ( n − 1 ) ⋯ ω ( n − 1 ) ( n − 1 ) ] F_n= \begin{bmatrix} 1 &1 & 1 & \cdots &1\\ 1 & \omega & \omega^2 & \cdots &\omega^{n-1}\\ \vdots &\cdots\\ 1 & \omega^{n-1} & \omega^{2(n-1) } & \cdots & \omega^{(n-1)(n-1)} \end{bmatrix} Fn= 1111ωωn11ω2ω2(n1)1ωn1ω(n1)(n1)

F n ( i , j ) = w i j , ω n = 1 ω = e i 2 π n = cos ⁡ 2 π n + i sin ⁡ 2 π n F_n(i,j)=w^{ij},\omega^{n}=1\\ \omega=e^{i\frac{2 \pi}{n}}=\cos \frac{2\pi}{n}+i\sin \frac{2\pi}{n} Fn(i,j)=wij,ωn=1ω=ein2π=cosn2π+isinn2π

F 4 = [ 1 1 1 1 1 i i 2 i 3 1 i 2 i 4 i 6 1 i 3 i 6 i 9 ] = 2 2 [ 1 1 1 1 1 i − 1 − i 1 − 1 1 − 1 1 − i 1 i ] F_4= \begin{bmatrix} 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{bmatrix}= \frac{\sqrt[]{2}}{2} \begin{bmatrix} 1 & 1 & 1 & 1\\ 1 & i & -1 & -i\\ 1 & -1 & 1 & -1\\ 1 & -i & 1 & i \end{bmatrix} F4= 11111ii2i31i2i4i61i3i6i9 =22 11111i1i11111i1i
矩阵各列正交。

ω n = e i × 2 π n \omega^{n}=e^{\frac{i \times2\pi }{ n}} ωn=eni×2π

w n ∗ w n = w 2 n w^{n}*w^{n}=w^{2n} wnwn=w2n

对于 n = 64 n=64 n=64,可以化为

[ F 64 ] = [ I D I − D ] [ F 32 0 0 F 32 ] [ 1 0 0 0 1 0 ⋯ ] [F_{64}]= \begin{bmatrix} I & D\\I & -D \end{bmatrix} \begin{bmatrix} F_{32} & 0 \\ 0 & F_{32} \end{bmatrix} \begin{bmatrix} 1 & 0 &0\\ 0 & 1 & 0\\ \cdots \end{bmatrix} [F64]=[IIDD][F3200F32] 100100

D D D是一个对角矩阵
D = [ 1 w w n − 1 ] D=\begin{bmatrix} 1 & & \\ &w & \\ & & w^{n-1} \end{bmatrix} D= 1wwn1

对于 F 32 F_{32} F32可以继续做这样的分解,直到分解成 F 1 F_1 F1


F n = D M P F_{n}=DMP Fn=DMP
M M M为分解矩阵,分解成两个小规模的矩阵。
M = [ F n / 2 0 0 F n / 2 ] M=\begin{bmatrix} F_{n/2} & 0\\ 0 & F_{n/2} \end{bmatrix} M=[Fn/200Fn/2]

矩阵 P P P为奇偶位次置换矩阵。

t o d o todo todo

这篇关于线性代数笔记25--复数矩阵、快速傅里叶变换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/861188

相关文章

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

C/C++中OpenCV 矩阵运算的实现

《C/C++中OpenCV矩阵运算的实现》本文主要介绍了C/C++中OpenCV矩阵运算的实现,包括基本算术运算(标量与矩阵)、矩阵乘法、转置、逆矩阵、行列式、迹、范数等操作,感兴趣的可以了解一下... 目录矩阵的创建与初始化创建矩阵访问矩阵元素基本的算术运算 ➕➖✖️➗矩阵与标量运算矩阵与矩阵运算 (逐元

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

一文教你Java如何快速构建项目骨架

《一文教你Java如何快速构建项目骨架》在Java项目开发过程中,构建项目骨架是一项繁琐但又基础重要的工作,Java领域有许多代码生成工具可以帮助我们快速完成这一任务,下面就跟随小编一起来了解下... 目录一、代码生成工具概述常用 Java 代码生成工具简介代码生成工具的优势二、使用 MyBATis Gen

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完