9.11 傅里叶变换家族介绍

文章目录

傅里叶变换家族The FT Family

为什么傅里叶变换要单独出本教材,仔细看看傅里叶变换家族就知道了。
Dirichlet插值 采样 Sinc插值 傅里叶变换 矩形窗口 离散傅里叶变换 离散时域傅里叶变换 时间模拟信号 采样信号 角频率信号(连续频谱) 离散频谱 频域信号(连续频谱)

傅里叶变换FT

频率信号的自变量是频率 F F F,频域信号就是:
X a ( F ) = ∫ − ∞ ∞ x a ( t ) e − j 2 π F t d t X_a(F)=\int_{-\infty}^{\infty}x_a(t)e^{-j2\pi Ft}\mathrm{d} t Xa(F)=∫−∞∞xa(t)e−j2πFtdt

时间模拟信号自变量就是时间:
x a ( t ) = ∫ − ∞ ∞ X F ( t ) e j 2 π F t d F x_a(t)=\int_{-\infty}^{\infty}X_F(t)e^{j2\pi Ft}\mathrm{d} F xa(t)=∫−∞∞XF(t)ej2πFtdF

傅里叶变换就是这两个函数相互转换。举个例子,时域信号为:
x a ( t ) = s i n ( t ) x_a(t)=sin(t) xa(t)=sin(t)

将其转为频率信号就是:
X a ( F ) = 1 2 j [ δ  ⁣ ( F − 1 2 π ) − δ  ⁣ ( F + 1 2 π ) ] X_a(F)=\frac{1}{2j}\Bigl[\delta\!\Bigl(F-\frac{1}{2\pi}\Bigr)-\delta\!\Bigl(F+\frac{1}{2\pi}\Bigr)\Bigr] Xa(F)=2j1[δ(F−2π1)−δ(F+2π1)]

当然,对于这种周期函数,频率在大多数取值下都是0,所以其频域函数图像就是若干个点,这些点叫做冲激。

Sinc插值

从图中可以看到Sinc插值就是将采样信息还原为时间序列函数,举个例子,某采样数据周期为 π \pi π,具体数据为:
( 0 , 1 ) , ( π 4 , 1.5 ) , ( π 2 , 2 ) , ( 3 π 4 , 1.5 ) , ( π , 1 ) , ⋯ (0,1),(\frac\pi4,1.5),(\frac\pi2,2),(\frac{3\pi}{4},1.5),(\pi,1),\cdots (0,1),(4π,1.5),(2π,2),(43π,1.5),(π,1),⋯

Sinc插值后还原的函数为:
x a ( t ) = ∑ k = − ∞ ∞ x k    sin ⁡  ⁣ (   2 t − π k   )   2 t − π k   x_a(t)=\sum_{k=-\infty}^{\infty} x_k\; \frac{\sin\!\bigl(\,2t-\pi k\,\bigr)} {\,2t-\pi k\,} xa(t)=k=−∞∑∞xk2t−πksin(2t−πk)

公式里的 k k k是采样点的序号.所以这个公式要迭代所有采样点。Sinc函数就是大学微积分第一课里的经典函数:
s i n c ( x ) = sin ⁡ x x \mathrm{sinc}(x)=\frac{\sin x}x sinc(x)=xsinx

所以上面的式子也可以写成:
x a ( t ) = ∑ k = − ∞ ∞ x k    s i n c (   2 t − π k   ) x_a(t)=\sum_{k=-\infty}^{\infty} x_k\; \mathrm{sinc} (\,2t-\pi k\,) xa(t)=k=−∞∑∞xksinc(2t−πk)

离散时域傅里叶变换DTFT

用上面的例子,某采样数据周期为 π \pi π,具体数据为:
( 0 , 1 ) , ( π 4 , 1.5 ) , ( π 2 , 2 ) , ( 3 π 4 , 1.5 ) , ( π , 1 ) , ⋯ (0,1),(\frac\pi4,1.5),(\frac\pi2,2),(\frac{3\pi}{4},1.5),(\pi,1),\cdots (0,1),(4π,1.5),(2π,2),(43π,1.5),(π,1),⋯

离散时域傅立叶变换将其变成角频率为自变量的函数,也就是角频率信号。结果如下:
χ ( ω ) = 2 π ∑ k = 0 3 X [ k ]   ∑ m = − ∞ ∞ δ  ⁣ ( ω − 2 π 4 k − 2 π m ) \chi(\omega)=2\pi\sum_{k=0}^{3}X[k]\, \sum_{m=-\infty}^{\infty}\delta\!\Bigl(\omega-\frac{2\pi}{4}k-2\pi m\Bigr) χ(ω)=2πk=0∑3X[k]m=−∞∑∞δ(ω−42πk−2πm)

角频率 ω \omega ω其实就是为了看得舒服,它和频率的关系如下:
ω = 2 π f \omega=2\pi f ω=2πf

离散傅里叶变换

依旧用上面的例子,某采样数据周期为 π \pi π,具体数据为:
( 0 , 1 ) , ( π 4 , 1.5 ) , ( π 2 , 2 ) , ( 3 π 4 , 1.5 ) , ( π , 1 ) , ⋯ (0,1),(\frac\pi4,1.5),(\frac\pi2,2),(\frac{3\pi}{4},1.5),(\pi,1),\cdots (0,1),(4π,1.5),(2π,2),(43π,1.5),(π,1),⋯

离散傅立叶变换将其变成离散频谱。结果如下:
X [ k ] = ∑ n = 0 N − 1 x [ n ]    e − j 2 π N k n , k = 0 , 1 , ... , N − 1. X[k]=\sum_{n=0}^{N-1}x[n]\;e^{-j\frac{2\pi}{N}kn}, \qquad k=0,1,\dots ,N-1 . X[k]=n=0∑N−1x[n]e−jN2πkn,k=0,1,...,N−1.

代入采样点就是:
X [ 0 ] = 1 + 1.5 + 2 + 1.5 = 6 , X [ 1 ] = 1 + 1.5 e − j π / 2 + 2 e − j π + 1.5 e − j 3 π / 2 = − 1 , X [ 2 ] = 1 + 1.5 e − j π + 2 e − j 2 π + 1.5 e − j 3 π = 0 , X [ 3 ] = 1 + 1.5 e − j 3 π / 2 + 2 e − j 3 π + 1.5 e − j 9 π / 2 = − 1. \begin{aligned} X[0]&=1+1.5+2+1.5=6,\\ X[1]&=1+1.5e^{-j\pi/2}+2e^{-j\pi}+1.5e^{-j3\pi/2} =-1,\\ X[2]&=1+1.5e^{-j\pi}+2e^{-j2\pi}+1.5e^{-j3\pi}=0,\\ X[3]&=1+1.5e^{-j3\pi/2}+2e^{-j3\pi}+1.5e^{-j9\pi/2} =-1. \end{aligned} X[0]X[1]X[2]X[3]=1+1.5+2+1.5=6,=1+1.5e−jπ/2+2e−jπ+1.5e−j3π/2=−1,=1+1.5e−jπ+2e−j2π+1.5e−j3π=0,=1+1.5e−j3π/2+2e−j3π+1.5e−j9π/2=−1.

Dirichlet插值

Dirichlet插值就是讲离散频率转为角频率信号,拿上面离散傅里叶变换后的数据来说,周期为 π \pi π:
( 0 , 6 ) , ( π 4 , − 1 ) , ( π 2 , 0 ) , ( 3 π 4 , − 1 ) , ( π , 6 ) , ⋯ (0,6),(\frac\pi4,-1),(\frac\pi2,0),(\frac{3\pi}{4},-1),(\pi,6),\cdots (0,6),(4π,−1),(2π,0),(43π,−1),(π,6),⋯

Dirichlet插值后的结果为:
χ ( ω ) = 6   sin ⁡ ( 2 ω ) sin ⁡ ( ω / 2 ) − sin ⁡  ⁣ ( 2 ( ω − π / 2 ) ) sin ⁡  ⁣ ( ( ω − π / 2 ) / 2 ) − sin ⁡  ⁣ ( 2 ( ω − 3 π / 2 ) ) sin ⁡  ⁣ ( ( ω − 3 π / 2 ) / 2 ) \chi(\omega)=6\,\frac{\sin(2\omega)}{\sin(\omega/2)} -\frac{\sin\!\bigl(2(\omega-\pi/2)\bigr)}{\sin\!\bigl((\omega-\pi/2)/2\bigr)} -\frac{\sin\!\bigl(2(\omega-3\pi/2)\bigr)}{\sin\!\bigl((\omega-3\pi/2)/2\bigr)} χ(ω)=6sin(ω/2)sin(2ω)−sin((ω−π/2)/2)sin(2(ω−π/2))−sin((ω−3π/2)/2)sin(2(ω−3π/2))

相关推荐
大闲在人20 小时前
7. 供应链与制造过程术语:“周期时间”
算法·供应链管理·智能制造·工业工程
小熳芋20 小时前
443. 压缩字符串-python-双指针
算法
Charlie_lll21 小时前
力扣解题-移动零
后端·算法·leetcode
chaser&upper21 小时前
矩阵革命:在 AtomGit 解码 CANN ops-nn 如何构建 AIGC 的“线性基石”
程序人生·算法
weixin_4997715521 小时前
C++中的组合模式
开发语言·c++·算法
iAkuya21 小时前
(leetcode)力扣100 62N皇后问题 (普通回溯(使用set存储),位运算回溯)
算法·leetcode·职场和发展
近津薪荼21 小时前
dfs专题5——(二叉搜索树中第 K 小的元素)
c++·学习·算法·深度优先
xiaoye-duck21 小时前
吃透 C++ STL list:从基础使用到特性对比,解锁链表容器高效用法
c++·算法·stl
松☆21 小时前
CANN与大模型推理:在边缘端高效运行7B参数语言模型的实践指南
人工智能·算法·语言模型
java干货1 天前
为什么 “File 10“ 排在 “File 2“ 前面?解决文件名排序的终极算法:自然排序
开发语言·python·算法