线性代数笔记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∣=z⊤z=[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} y⊤x=[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+i3−i5]
垂直
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 ⋯qnqi⊤qj={0i=j1i=j
复正交矩阵
Q ‾ ⊤ Q = I \overline Q^{\top}Q=I Q⊤Q=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= 11⋮11ω⋯ωn−11ω2ω2(n−1)⋯⋯⋯1ωn−1ω(n−1)(n−1)
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 11111i−1−i1−1111−i−1i
矩阵各列正交。
ω 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} wn∗wn=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]=[IID−D][F3200F32] 10⋯0100
D D D是一个对角矩阵
D = [ 1 w w n − 1 ] D=\begin{bmatrix} 1 & & \\ &w & \\ & & w^{n-1} \end{bmatrix} D= 1wwn−1
对于 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--复数矩阵、快速傅里叶变换
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…...
洛谷 P8783 [蓝桥杯 2022 省 B] 统计子矩阵
题目描述 给定一个 NM 的矩阵 A,请你统计有多少个子矩阵 (最小 1111, 最大 NM 满足子矩阵中所有数的和不超过给定的整数 K。 输入格式 第一行包含三个整数 N,M 和 K。 之后 N 行每行包含 M 个整数, 代表矩阵 A。 输出格式 一个整数代表答案。 输入输出样例 …...
Rust 实战练习 - 8. 内存,ASM,外挂 【重磅】
目标: C写一个Demo版本的游戏由浅入深,了解外挂原理Linux/Android下实现内存读取ptrace实现内存修改(依赖第三方库) 先准备一个C写的小游戏 #include <stdio.h> #include <string.h>struct Role {float pos_x; // …...

XUbuntu22.04之Typora快捷键Ctrl+5不生效问题(二百二十六)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...

GRE_MGRE综合实验
目录 1、R5为ISP,只能进行IP地址配置,其所有地址均配为公有IP地址。 IP配置 配置公网全网通 2、(1)R1和R5间使用PPP的PAP认证,R5为主认证方。 PAP认证 (2)R2与R5之间使用ppp的CHAP认证&am…...

把组合损失中的权重设置为可学习参数
目前的需求是:有一个模型,准备使用组合损失,其中有2个或者多个损失函数。准备对其进行加权并线性叠加。但想让这些权重进行自我学习,更新迭代成最优加权组合。 目录 1、构建组合损失类 2、调用组合损失类 3、为其构建优化器 …...
用Bat启动jar程序
前情提要:在使用冰蝎、哥斯拉等一些列工具时(PS:一系列需要利用Java环境并打开的jar),我就在想能不能写一段代码点一下,就能打开程序而不用去输入命令 echo off echo 程序启动中... start javaw -noverif…...

网站维护页404源码
网站维护页404源码,布局简洁,上传即可使用。 网站维护页404源码...

jmeter链路压测
比如登录后返回token,业务打印上传的操作需要用到token 线程组中添加登录请求,并执行 1、添加登录并执行,查看结果 2、结果树中下拉选择正则表达式,将token参数和值复制粘贴到下方,将token值改为(.*?)࿰…...

香港服务器怎么看是CN2 GT线路还是CN2 GIA线路?
不知道有没有小伙伴们注意过,很多人在租用香港服务器的时候都习惯性选择 CN2 线路?仿佛香港服务器是否采用 CN2 线路成为个人企业选择香港服务器的一个标准。其实,香港服务器有CN2、优化直连(163)、BGP多线(包含了国际和国内线路),…...

CrossOver软件2024免费 最新版本详细介绍 CrossOver软件好用吗 Mac电脑玩Windows游戏
CrossOver是一款由CodeWeavers公司开发的软件,它可以在Mac和Linux等操作系统上运行Windows软件,而无需在计算机上安装Windows操作系统。这款软件的核心技术是Wine,它是一种在Linux和macOS等操作系统上运行Windows应用程序的开源软件。 Cross…...

harbor api v2.0
harbor api v2.0 v2.0 v2.0 “harbor api v2.0”与原来区别较大,此处harbor也做了https。另外,通过接口拿到的数据也是只能默认1页10个,所以脚本根据实际情况一页页的抓取数据 脚本主要用于统计repo、image,以及所有镜像的tag数&…...
Vue 表单数据双向绑定 v-mode
每一个Vue项目,每一个系统,肯定涉及到表单的双向数据绑定问题,这一部分是 vue 的重中之重,不是因为知识点复杂,而是因为只要参与 vue 项目的开发,那么就必不可少。 单项绑定 :数据变࿰…...

tab切换组件,可横向自适应滑动
示例图: 注:需要引入Jquery <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.tabs-box {width: 100%;height: auto;}.tab-header-box {display: flex;overflow: hidden…...
设计模式---单例模式
目录 一、五种单例模式的实现方式 1.饿汉模式 2.饿汉枚举类型 3.懒汉式 4.双检锁懒汉式 5.内部类懒汉式 二、JDK 中单例的体现 一、五种单例模式的实现方式 1.饿汉模式 public class Singleton1 implements Serializable {private Singleton1() {if (INSTANCE ! null) {thro…...

HarmonyOS 应用开发之启动/停止本地PageAbility
启动本地PageAbility PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。 表1 featureAbility接口说明 接口名接口描述startAbility(parameter: StartAbilityParameter)启动Ability。startAbilityForRes…...

BaseDao封装增删改查
文章目录 什么是BaseDao操作代码增删改查询单个数据查询多个数据 总结 什么是BaseDao BaseDao是: 数据库里负责增加,删除,修改,查询 具体来说是一种接口代码,公共方法的接口类。 在dao层新建basedao,其他dao层接口继承basedao 相…...

Redis入门到实战-第十三弹
Redis入门到实战 Redis中JSON数据类型常见操作官网地址Redis概述JSON常见操作更新计划 Redis中JSON数据类型常见操作 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是…...

深度学习InputStreamReader类
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…...

2023年后端面试总结
备注:这篇文章是我在2023年年初在自己的网站上写的,最近在迁移技术文章,我感觉这个也是和咱程序员相关,所以今天就决定把它迁移过来。 .......................................................................分割线..........…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...