Skip to content

复平面旋转&DFT

约 5234 个字 93 张图片 预计阅读时间 26 分钟

离散傅里叶变换

动画讲解离散傅里叶变换

离散傅里叶变换公式:(幅角-模型形式)

image-20250325131234976

  • \(x_n\) 原始离散时间序列
  • \(\frac{2\pi}{N} \cdot k\) :每次旋转的角度 = \(k\)\(\frac{2\pi}{N}\)
  • \(n\):每个时间点(从前往后)都要旋转

复平面:

image-20250325131628175

演示,将 原始序列[4,3,2,1]进行离散傅里叶变换: $$ X_k= \sum_{n=0}^{N-1} x_n \cdot e^{-i\cdot(\frac{2\pi k}{N})n} $$

  • N=4 原始序列 4 个时间点,n 从 0 开始按时间点先后依次旋转
  • 每个时间点旋转 \(\frac{2\pi k}{N}\) 个角度,k=0,1,2,3
  • k=0时,每个时间点,对应时间序列对应的线段,不旋转
  • k=1时,旋转 90°
  • k=2时,旋转 180°
  • k=3时,旋转 270°
  • 1 个周期 = 时间序列长度
  • 2 个周期 = 时间序列长度
  • 3 个周期 = 时间序列长度
  • 4 个周期 = 时间序列长度 《===》一个周期一个点
  • 旋转:顺时针旋转

image-20250325132514444

顺时针旋转 90 度:

image-20250325132603860

相对于初始位置,顺时针旋转 180 度

image-20250325132629747

相对于初始位置,顺时针旋转 270 度

image-20250325132705792

得到傅里叶变换:

image-20250325132750773

image-20250325132807662

以上是 4 个点的例子,现在举一个 6 个点的例子

公式,依然是 DFT $$ X_k= \sum_{n=0}^{N-1} x_n \cdot e^{-i\cdot(\frac{2\pi k}{N})n} $$

  • 时间序列中有 6 个时间点
  • 每次旋转 \(\frac{2\pi k}{N}\) 个角度,其中,\(\frac{2\pi }{N} = \frac{ 360° }{60°}= 60°\)
  • k=0,表示,第一次遍历 时间序列中的所有时间点时,加和即可。不转。
  • k=1,第二次遍历时间序列中的时间点时,每个点依次,从前往后,顺时针旋转 \(60°\) \(《====》\) 周期长度=序列长度 \(《====》\) 因为 6 个点,每个点转 60 度,遍历完所有时间点,刚好转完一圈。
  • k=2,第三次遍历时间序列中的所有时间点时,每个点依次再次旋转 \(60 °\),相对于初始位置,旋转了 \(120°\) \(《===》\)🔴序列长度 = 3 个周期长度 \(《====》\) 6 个点,每个点转 120 度,遍历完所有时间点,🔴转完 3圈。
  • k=3,第四次遍历时间序列中的所有时间点时,每个点依次再次旋转 \(60 °\),相对于初始位置,旋转了 \(180°\) \(《===》\)🔴序列长度 = 2个周期长度 \(《====》\) 6 个点,每个点转 180 度,遍历完所有时间点,🔴转完 2 圈。
  • k=4,第五次遍历时间序列中的所有时间点时,每个点依次再次旋转 \(60 °\),相对于初始位置,旋转了 \(240°\) \(《===》\) 🔴序列长度 = 3个周期长度 \(《====》\) 6 个点,每个点转 180 度,遍历完所有时间点,🔴转完 2 圈。
  • k=5,第六次遍历时间序列中的所有时间点时,每个点依次再次旋转 \(60 °\),相对于初始位置,旋转了 \(300°\) \(《===》\) 🔴序列长度 = 3个周期长度 \(《====》\) 6 个点,每个点转 180 度,遍历完所有时间点,🔴转完 2 圈。
  • 也就是说,\(k\) 遍历在 \(2 \pi\) 上,\(n\) 遍历原始序列。\(k\) 只是每个时间点旋转的角度。表示所有时间点在该频率上==的相关性?(响应值?)==

k=0,DFT 的第 1 个值,直接对所有元素加和

k=1,每个点转 60 度:

image-20250325134709514

k=2,每个点顺时针旋转 120 度

image-20250325134741940

每个点顺时针旋转 180 度

image-20250325134805087

每个点旋转顺时针旋转 240 度

image-20250325134846093

每个点旋转300 度

image-20250325134930311

顺时针旋转 300 度,和旋转 60 度,十分相似,只是颠倒了,具体来说,实部是完全一样的,虚部是取反的。因为 \(e^x = cosx+isinx\) ;第 0 个值是原始时间点加和的。

image-20250325135238720

image-20250325134943324

借助工具计算 DFT

image-20250325135405627

  • k=0,原始序列元素加和
  • k=1,转 60 度,转一圈
  • k=2,转 120 度,6 个点,转 3 圈
  • k=3,转 180 度,在实数轴上移动,6 个点转2 圈
  • k=4,转 240 度,相对于 120 度旋转来说,实数轴不变,虚数轴互为相反数
  • k=5,转 300 度,相对于 60 度旋转来说,实数轴不变,虚部互为相反数

由,时域得到了频域 \(===》[4,3,2,1]→[10,2-2i,2,2+2i]\)

  • k=0,元素加和
  • k=1,转 90 度
  • k=2,实数轴上,180 度
  • k=3,转 270 度,相对于 k=1,实数部分不变,虚数部分互为相反数

那么,如果有频域,$[10,2-2i,2,2+2i] $ 怎么得到 时域? \([4,3,2,1]\)

  • DFT 顺时针旋转,逆离散傅里叶变换,那就逆时针旋转

image-20250325141249222

在复平面表示:

image-20250325141405184

  • 首先,第 0 个值,频域元素加和

image-20250325141459365

  • 顺时针旋转 90 度,依然是按照频域元素顺序,依次旋转

image-20250325141626295

  • 再次,每个点依次旋转 180 度

image-20250325141705533

顺时针,每个点,相对于初始位置,旋转 270 度,都是从初始位置开始旋转,一次旋转完角度

image-20250325141747865

问题,为什么,是 [16,12,8,4] 不是 [4,3,2,1] ?

image-20250325141907414

答案:除以 序列长度 ,这里是 4.

image-20250325141921986

傅里叶变换,顺时针旋转, \(\frac{2\pi}{N}\)

逆傅里叶变换,逆时针旋转,也是\(\frac{2\pi}{N}\),最后还要除以序列长度 \(N\)

image-20250325143415890

复平面与 \(e^x\) ,这一步的转换,其实是从 \((cos\theta,sin\theta)\) 直接用了 \(e^{i\theta}\) 表示

image-20250325143635619

类似的,复平面坐标点,全部用指数表示

image-20250325143832710 $$ e^{i\theta} = cos\theta + isin\theta $$ 具体来说:

  • \(1 = e^{i2\pi} = cos2\pi + isin2\pi = 1\)
  • \(i = e^{i\frac{\pi}{2}} = cos\frac{\pi}{2} + isin\frac{\pi}{2} = i\)
  • \(-1 = e^{i\pi} = cos\pi + isin \pi = -1\)
  • \(-i = e^{i\frac{3\pi}{2}} = cos\frac{3\pi}{2} + isin\frac{3\pi}{2} = -i\)

接下来,对 1 进行分解,具体来说:

  • \(x^2=1\)
  • \(x^3=1\)
  • \(x^4=1\)
  • \(x^5=1\)

因为讨论的是三角函数,所以用 \(\omega\)

这里其实,我觉得应该这么解释

  • \(\omega^2 = 1 ===>\) 转1个 \(\omega\) 转一圈 \(=1\)
  • \(\omega^3 = 1 ===>\) 转3个 \(\omega\) 转一圈 \(=1 ===>\) 得到对应的角,进行相应的复数表示,比如这里 \(\omega=120°\)\(x\) 轴正方向开始找点,120°标一个,再一个120°,再标一个。(模长=1,角度=120°)
  • \(\omega^4 = 1 ===>\) 转4个 \(\omega\) 转一圈 \(=1\)
  • \(\omega^5 = 1 ===>\) 转5个 \(\omega\) 转一圈 \(=1\)
  • \(\omega^6 = 1 ===>\) 转6个 \(\omega\) 转一圈 \(=1\)
  • ......
  • \(\omega^n = 1 ===>\) 转n个 \(\omega\) 转一圈 \(=1\)

单位根

image-20250325144423422

  • \(\omega = 120°\) 是角,也是复数表示,也是 指数
  • 复数: \(\omega = -\frac{1}{2} + i \sqrt{\frac{3}{2}}\)
  • ※ 指数:\(\omega = e^{i\frac{2\pi k}{N}}\) 这里划分成 3 个,也就是 3 个样本点,所以 \(N=3\),这是第一次旋转,所以,\(k=1\) 所以指数表示 \(\omega = e^{i \frac{2 \pi}{3}}\)

基于以上认识,重新看 DFT

image-20250325145741178

符号说明

  • DFT 的结果 \(X_k\)
  • \(x_n\) : 我们正在旋转的杆的长度
  • \(e^{-i(2\pi\frac{k}{N}n)}\) : 这个指数,就表示了旋转角度,表示的是单位根的旋转角度,因为乘以了 \(x_n\) 所以有长度
  • \(\sum_{n=0}^{N-1}\) : 求和表示 所有杆的串联

image-20250325145756117

\(e^{-i(2\pi\frac{k}{N}n)}\) 的更具体一点

  • \((2\pi\frac{k}{N}n)\) : 表示,旋转的角度。并且主要是 \(2\pi\frac{k}{N}\)\(n\) 的意思是,表示对所有杆旋转
  • 负号 表示 顺时针旋转

原始序列中的点,旋转 \(e^{-i(2\pi\frac{k}{N}n)}\) ,得到 \(X_k\) 的图形化过程:

对于遍历一次序列,所有时间点,旋转的角度是不变的。

image-20250325150426391

image-20250325150536967

离散傅里叶变化和离散傅里叶逆变换:

image-20250325150816524

\(e^{-i}\) 表示 顺时针旋转,\(e^i\) 表示逆时针旋转

旋转角度 \(\frac{2 \pi k}{N}\)

image-20250325150830085

最后,特别注意一下,逆傅里叶变换需要除以 序列长度 \(N\)

image-20250325151021337

当然了,也有表示 \(\frac{1}{\sqrt{N}}\)

image-20250325151154162

傅里叶变换的矩阵表示:

还是从 [4,3,2,1]开始:

image-20250325151256547

用单位根矩阵表示,DFT

image-20250325151400685

关于矩阵详细展开:

image-20250325165614646

  • 简化记忆\(\omega_{kn} x_n = X_k\)

$ \omega = e^{i\frac{ 2\pi}{N}} $

  • 行表示 \(\frac{2\pi k}{N}\) 频率,分别与 原始序列 \(x_0,x_1,x_2,......,x_{N-1}\) 的相关性

逆傅里叶变换的矩阵形式:

image-20250325165744787

离散傅里叶变换中的序列周期规律

离散傅里叶变换中的序列周期规律

首先,回忆\([4,3,2,1]\)离散傅里叶变换的过程

image-20250325170244141

在复平面中讨论,依次画出 4,3,2,1 的线段,标出第一个点,也就是 10

然后,顺时针,依次旋转 90 度,先转第一条线段 4 ,转动 4 的时候,会带着转 3,2,1,但是转的是 4 的右端点

image-20250325170521215

接着转,第二条边的右端点

image-20250325170611891

然后转第三条边的右端点,转动 90 度,最终转第四条边

image-20250325170715692

记录得到最终的位置。

离散傅里叶变换和逆离散傅里叶变换

image-20250325170844711


接下来,讨论周期序列:

image-20250325170935444

对这个序列进行离散傅里叶变换:

image-20250325170950707

仅观察 0 值和非 0 值

image-20250325171023198

image-20250325171056775

接下来的问题:

周期=4 的时间序列 重复 3 次

image-20250325171154696

首先观察第一个周期为 4 序列的离散傅里叶变换:

image-20250325171313341

  • 270°+90°=360°,所以转动270°时,与90°的实部相同,虚部互为相反数

那么此时3 个 周期为 4 的离散傅里叶变换呢?

image-20250325171510498

直观上说,是 上面得到的,一个周期为 4 的离散傅里叶变换,但其实不是的,而是×3,3 个时间序列的重复模式。而其他部分填充 0,得到重复 3 次的离散傅里叶变换

image-20250325171650445

再次看一下,这里有区别

image-20250325171801889

这里是重复 3 次,周期 为 4 的原始时间序列

得到的离散傅里叶变换是,分成 4 块,(每块内第一个元素不为 0,其余两个元素=0)

  • 每次旋转的角度变了:\(\frac{2 \pi k}{N}\)

分析为什么是这样的?

直观上说,是 上面得到的,一个周期为 4 的离散傅里叶变换,但其实不是的,而是×3,3 个时间序列的重复模式。而其他部分填充 0,得到重复 3 次的离散傅里叶变换

  • 原始时间序列,在对应频率上的分量,包含角度( \(e^{-i\frac{2 \pi k n}{N} }\) )和模长 \(x_n\)
  • \(e^{-i}\) 表示 顺时针旋转

  • 其实不是很懂这个 n的含义,第 0个,第 1 个,...,每个线段转角就是转角,乘 n 干啥。

我懂这个 n 了,首先,分析,这几条线段是依次旋转的。

具体来说,假如基本旋转单元是 60°,一共 6 条线段(一定要满足 \(\frac{2 \pi }{N}\) ),

现在复述原始时间序列在旋转 60 度时,每条线段的旋转情况。

第一条线段转 60 度,第一条线段转的时候,带着第二条、第三条、第四条...线段也转了 60 度

接下来转第二条线段,第二条线段在第一条线段的基础上转,开始转,第二条线段转 60 度,相对于起始位置转了 120 度,同时带动了第三条和第四条等其余几条线段转 60 度,接下来,第三条线段在第二条线段的基础上再转 60 度,相对于其实转了 180 度....

所以,对于特定频率 \(k\) 来说,每条线段都会转 \(\frac{2 \pi k}{N} n\)

具体地,\(x_0\)\(e^{-\frac{2 \pi k}{N} \cdot 0}\)

\(x_1\)\(e^{-\frac{2 \pi k}{N} \cdot 1}\) ,一个 \(\frac{2 \pi k}{N}\)

\(x_2\)\(e^{-\frac{2 \pi k}{N} \cdot 2}\) ,2 个 \(\frac{2 \pi k}{N}\)

\(x_3\)\(e^{-\frac{2 \pi k}{N} \cdot 3}\) ,3 个 \(\frac{2 \pi k}{N}\)

接下来,一个个计算,这个具有周期性质的时间序列的傅里叶变换:

image-20250325194120058

第一个元素:

同样在实数轴上画出线段,然后元素加和放到 DFT 的第一个位置

image-20250325194202551

接下来,讨论DFT 中的第二个元素,也就是每天线段旋转 \(\frac{2 \pi}{N}\)\(N=12\) ,也就是每条线段依次旋转 60 度。

image-20250325194351772

image-20250325194559360

image-20250325194620769

第三个周期同理,每条线段,时间点对应的长度依次转 60°,同时在第二次旋转的基础上,旋转,也就是相对于第一次旋转

  • 第一个周期旋转 30 度,4 个时间点,4 条线段,所以 4 条线段中的最后一条线段转了 \(30×4=120°\)
  • 第二个周期在第一个周期的基础上旋转,也就是把第一个周期的所有转过的,已经完成的形状,再转 120°,然后拼到第一个周期旋转的后面。
  • 同理,第三个周期也是,对于第二个周期旋转好的图形转 120 度,相对于第一个周期转好的形状,旋转 240 度。

得到:

image-20250325195013466

所以 DFT 的第二个数=0

第三个数,同理。第一条线段转 \(\frac{2 \pi}{N}k\),这里 \(k=2\),对应的每条线段,转 从编号 0 开始,转 \(\frac{2 \pi}{N}k n\) 记的是每条线段的累积旋转角度

image-20250325195315384

现在讨论下一个点为什么不是 0

image-20250325195444128

这里 \(k=3\), 也就是说 第一条线段 旋转 \(\frac{2 \pi k }{N} = 30°×3=90°\) ,所以下一个元素 \(\neq 0\)

image-20250325200024118

这里 \(\frac{2 \pi}{N}=30°\)

  • \(k=0\) 不转,所有元素相加
  • \(k=1\),转 \(\frac{2\pi k}{N}n = \frac{2\pi }{N}n\)
  • 第一条,转 \(\frac{2\pi }{N}\cdot 0\)
  • 第二条,转 \(\frac{2\pi }{N}\cdot 1 = 30°\)
  • 第三条,转 \(\frac{2\pi }{N}\cdot 2 = 60°\)
  • 第四条,转 \(\frac{2\pi }{N}\cdot 3 = 90°\)
  • 第五条,转 \(\frac{2\pi }{N}\cdot 4 = 120°\)
  • 第六条,转 \(\frac{2\pi }{N}\cdot 5 = 150°\)
  • \(k=2\),转 \(\frac{2\pi k}{N}n = 60° n\)
  • 第一条,转 \(\frac{2\pi }{N} \cdot (k=2)\cdot 0\)
  • 第二条,转 \(\frac{2\pi }{N} \cdot (k=2)\cdot 1 = 60°\)
  • 第三条,转 \(\frac{2\pi }{N} \cdot (k=2)\cdot 2 = 120°\)
  • 第四条,转 \(\frac{2\pi }{N} \cdot (k=2)\cdot 3 = 180°\)
  • 第五条,转 \(\frac{2\pi }{N} \cdot (k=2)\cdot 4 = 240°\)
  • 第六条,转 \(\frac{2\pi }{N} \cdot (k=2)\cdot 5 = 300°\)
  • \(k=3\),转 \(\frac{2\pi k}{N}n = 90° n\)

  • \(k=4\),转 \(\frac{2\pi k}{N}n = 120° n\)

  • \(k=5\),转 \(\frac{2\pi k}{N}n = 150° n\)

  • \(k=6\),转 \(\frac{2\pi k}{N}n = 180° n\)

  • \(k=7\),转 \(\frac{2\pi k}{N}n = 210° n\)

  • \(k=8\),转 \(\frac{2\pi k}{N}n = 240° n\)

  • \(k=9\),转 \(\frac{2\pi k}{N}n = 270° n\)

  • \(k=10\),转 \(\frac{2\pi k}{N}n = 300° n\)

  • \(k=11\),转 \(\frac{2\pi k}{N}n = 330° n\)

image-20250325201104583

对比结果:

image-20250325201331071

直方图表示:

image-20250325201414175

离散傅里叶变换&逆离散傅里叶变换:

k = 0,依然是原始序列加和

k=1,每个时间点上面标了,每个时间旋转的度数,旋转得到逆傅里叶变换的第二个值

逆傅里叶变换需要注意的点:

  • 除以序列长度 \(N\)
  • 旋转方向:逆时针

image-20250325201611332

k=2 时,每个旋转 2 个 30 度

image-20250325201929677

image-20250325202138793

快速傅里叶变换

手搓 DFT 例题

image-20250325221854260

数字信号处理13-1_离散傅里叶变换(DFT)

这里具体用的时候是共轭复数,表示顺时针旋转,上面写的没写成 \(e^{-j0\Omega n}\) 没加负号,表示的问题,加了是更严谨。

image-20250325221938116

※ 重点:

image-20250325222029671

复平面与指数,与 二维坐标 :

image-20250325222312087

  • 注意看,上面左图,逆时针旋转是 \(e^{j \phi}\) ,指数部分是正的。

这里计算复杂度,太高了,4 个点,进行了 16 次的计算,\(n^2\)的计算复杂度,所以后面有 FFT

继续看题目,这里进行了归一化:

image-20250325222856398

  • 上面的周期性,需要好好的理解。

这里,有 复指数与幅度谱、相位谱的关系。因为分解到频域,还是要进行频谱分析,要有实际意义来的。

image-20250325223029398

再来看:

image-20250325223318678

最终分解出来的频域表示:\(sin(\frac{\pi}{2}n)\)

验证:原始时间序列 4 个点。

\(n=0\) 时,\(sin(\frac{\pi}{2}n) = 0\)

\(n=1\) 时,\(sin(\frac{\pi}{2}1) = 1\)

\(n=2\) 时,\(sin(\frac{\pi}{2}2) = 0\)

\(n=3\) 时,\(sin(\frac{\pi}{2}3) = -1\)

刚好由频域还原为时域。\([0,1,0,-1]\)

  • 不懂,怎么由双边谱转换为单边谱
  • 不懂,太神奇了,为什么就由这个DFT 出来的东西,就还原为了原始时间序列
  • 神奇,属实神奇。\([0,1,0,-1]\) 就对应的三角函数是 \(sin(\frac{\pi}{2}n)\quad n=0,1,2,3\)

太神奇了。因为把,明明是原始时间序列与 \(e^{-j0\Omega n}、e^{-j1\Omega n}、e^{-j2\Omega n}、e^{-j3\Omega n}\) 进行投影运算。

image-20250325224106307

  • 最开始就是把长度为 \(N_0\) 的信号看成是周期为 \(N_0\) 的信号
  • 物理含义:把序列分解成一系列的单位圆上的复指数序列的线性组合

重新看这个题

image-20250325224931487

image-20250325143832710

image-20250325224941209

矩阵形式进行DFT:\(w_{kn}x_n=X_k,其中k,n=(0,1,2,...N-1)\)

$ \Omega = \frac{2\pi}{N}=\frac{2\pi}{4} = \frac{\pi}{2}$ (这东西叫啥?基频、基波,还是角频率,总之是\(T=N\))

也就是 \(\omega_0 = e^{-\frac{\pi}{2}i}\) 更进一步,\(\omega_0 = e^{-\frac{\pi}{2}i} = -i\) 物理含义:沿着单位圆反方向旋转 \(\frac{\pi}{2}\)

image-20250326173643745

复平面||复指数的周期性

复指数的周期性:

\(e^{ix}\) 周期 \(T=2\pi\)

复指数的一般形式 \(e^{i\Omega t}\) 周期 \(T=\frac{2\pi}{\Omega}\)


image-20250326103130718

  • 这里的 \(n= \pm 1、\pm 2、\pm 3,......\)

  • \(e^{i}\) 指数部分 \(>0\) :表示逆时针旋转,是正方向。

  • \(e^{ix} \& e^{-ix}\) :实部不变,虚部互为相反数

解释:

  • \(e^{ix} = \cos x + i \sin x\)
  • \(e^{-ix} = \cos x - i \sin x\)
  • (solved)还有一个问题 不清楚 \(T=N、T=\frac{N}{2}、T=\frac{N}{3}、T=\frac{N}{4}\) ?跟 \(\omega 、T\)
  • \(\omega = 2\pi f = \frac{2 \pi}{T}\)

把记号区分一下就好。

\(\Omega = \frac{2\pi}{N}\) 所以 这个叫基波的角频率,\(T=N\) 后面依次,\(N/2、N/3、......\)

这里变化的是 \(k\),想要讨论的是基波、谐波

\(\Omega = \frac{2\pi}{N}\)\(T=N\)

\(2\Omega = \frac{2\pi}{N/2}\)\(T=N/2\)

\(3\Omega = \frac{2\pi}{N/3}\)\(T=N/3\)

\(4\Omega = \frac{2\pi}{N/4}\)\(T=N/4\)

(1)\(X_k = \sum_{n=0}^{N-1} x_n e^{-i\frac{2 \pi k n}{N}}\)

(2) \(\quad = \sum_{n=0}^{N-1} x_n e^{-i \Omega kn}\)

(3)\(X_k = w^{kn}x_n\)\(kn=0 \sim N-1\)

image-20250325224931487

回答)借助上面的题目,重新规范一下符号表达与一些叫法,感觉理清楚了:

\(\omega = 2\pi f = \frac{2 \pi}{T}\)

给定一个时间序列 长度为N,进行 DFT

在进行 DFT 的时候,三角函数的分解是遵循一定规则的,周期是很规范的选取,具体来说就是 \(T=N、T=\frac{N}{2}、T=\frac{N}{3}、T=\frac{N}{4},...\)

  • 最后一个是 \(\frac{N}{N-1}\)? 还有 \(\frac{N}{N}\)? 还有序列元素加和是什么周期的

\(\Omega = \frac{2\pi}{N}\)

补充:这里变化的是 \(k\),想要讨论的是基波、谐波

\(\Omega = \frac{2\pi}{N}\)\(T=N\)

\(2\Omega = \frac{2\pi}{N/2}\)\(T=N/2\)

\(3\Omega = \frac{2\pi}{N/3}\)\(T=N/3\)

\(4\Omega = \frac{2\pi}{N/4}\)\(T=N/4\)

DFT : \(X_k = \sum_{n=0}^{N-1} x_n e^{-i\frac{2 \pi k n}{N}}\)

\(\quad = \sum_{n=0}^{N-1} x_n e^{-i \Omega kn}\)

正交基:\(1,e^{-i \Omega }、e^{-i 2\Omega }、e^{-i 3\Omega }、e^{-i 4\Omega }......\)

记为 \(\omega = e^{i \Omega } = e^{i\frac{2 \pi k }{N}}\) 也有记成 \(\omega_0\) 的,也就是说原始时间序列的长度,是周期最长的,以此为基础进行 正弦函数、余弦函数的展开。

矩阵形式的 DFT 简单记法:\(X_k = w^{kn}x_n\)\(kn=0 \sim N-1\)

image-20250325143832710

数学 & DFT

数字信号处理_引言

符号表示:

image-20250325231118304

采样定理:

image-20250325231532791

  • 这里的采样周期=0.01s,也就是说采样频率=100Hz
  • 对应的采样以后,200Hz 的采不到了,也就是说过滤掉了 200Hz 的噪声信号
  • 这里需要注意,假设要采到 500Hz 的信号,那么采样频率设置成多少?答:2 倍的 500Hz,也就是说需要设置为 1000Hz 的采样频率,也就是0.001s 采样一个点。

image-20250325231852948

  • 太神奇了
  • 利用matlab 自带的 fft 变换,发现 10Hz,40Hz 附近确实响应值比较高
  • 微弱信号是采样过程导致的频谱泄露问题
  • 那我们想要的是 10Hz,后面设计(低通)滤波器,去掉 40Hz 的即可

image-20250325232139329

  • 就是 MATLAB 演示低通滤波器

(续)例题

image-20250326191834877

DFT 没有遗漏了归一化过程

\(j \Omega k t\)

重点需要理解,FFT 分解出来的复数的结果是什么意思

image-20250326192227295

更实际的例子:

利用计算机计算 DFT,得到相位角和幅值

image-20250326192425964

  • (已解决:采样定理)为什么频率是 25Hz
  • \(\Omega kn\) 这里 \(k=5,k=10\) 有响应 ,\(\Omega = \frac{2\pi}{N}\) ,至于 图片中的 \(2 \pi\) 应该是进行了归一化。否则的话,应该是 \(1\Omega n、2 \Omega n、3 \Omega n、4 \Omega n,......\)
  • 50Hz的采样率表示什么?1s 采样 50 个样本点,根据采样定理,确实只能最大观察到的频率是 25Hz,别的都被过滤掉了。

采样定理:

image-20250325231532791

  • 这里的采样周期=0.01s,也就是说采样频率=100Hz
  • 对应的采样以后,200Hz 的采不到了,也就是说过滤掉了 200Hz 的噪声信号
  • 这里需要注意,假设要采到 500Hz 的信号,那么采样频率设置成多少?答:2 倍的 500Hz,也就是说需要设置为 1000Hz 的采样频率,也就是0.001s 采样一个点。

image-20250325231852948

DFT 的思想是,如果采集到的数据长度是 \(N_0\) 那么就认为数据的周期\(=N_0\) ,然后进行 DFT,看里面有多少个分量。

add_circle2025-03-25 08:42:00update2025-03-28 08:53:29