形象展示傅里叶变换

想象你的麦克风在录制一段由四个纯音同时播放的音频时,由于其只能捕捉强度——时间图像,因此最后的结果看起来相当复杂:

如果给定这样一段音频,该如何将其分解为不同纯音的叠加?

 

首先考虑只有一个频率的信号,将这个图像缠绕在一个圆上,即想象一个转动的向量,在任意时刻该向量的长度都等于这个时刻的图像高度。由于向量的转动速度可以人为选取,因此这里存在两个频率:信号的频率缠绕的频率,而缠绕频率可以决定缠绕图像的样子:

自然地,我们可以想到,当缠绕频率与信号频率相等时,会出现特殊情况。所有高处的点恰好落在圆右侧,而低处的点落在圆左侧:

如何利用这个特性进行定量的分析呢?一个好的方法是计算缠绕图像的质心,为了方便起见,我们仅计算质心的x坐标。对大部分的缠绕频率来说,图像的峰和谷会均匀的分布在圆上,导致质心在原点附近;当缠绕频率等于信号频率时,质心会极度偏向右半部分。如果画出质心的x坐标相对于缠绕频率的图像,则图像在缠绕频率和信号频率相等处会出现尖峰。我们将这一变换称为近傅里叶变换(Almost-Fourier transform)。

这一方法的真正威力在于它能分离包含多个频率的信号,下图是将一个2Hz + 3Hz的信号进行傅里叶变换的过程:

出现两个尖峰的原因是如果对两个信号分别进行近傅里叶变换之后累加,得到的结果与先将两个结果进行累加再进行近傅里叶变换一致。如果记对信号进行近傅里叶变换为F(x),则有:

F(x+y)=F(x)+F(y)

为了将质心的y坐标也考虑进来,我们引入复平面。则将一个函数g(t)以频率为f匀速绕原点顺时针缠绕的图像可写作g(t)e2πift,为了计算质心,需进行积分:1t2t1t1t2g(t)e2πiftdt

真正的傅里叶变换会考虑持续时间的影响,并在整个区间积分,于是上式变为:

g^(f)=+g(t)e2πiftdt

 

参考链接:

 

posted @   Rogn  阅读(877)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示