傅里叶圆模拟器 返回
振动与波动

傅里叶圆(圆周转)模拟器

用鼠标绘制曲线,通过离散傅里叶变换(DFT)分解并用旋转圆重现。改变圆的数量,实时体验近似精度的变化。

傅里叶圆模拟器

将绘制的曲线通过 DFT 分解成旋转圆

模式
圆周转数量
圆的数量 N

改变数值观察近似精度的变化

动画速度
速度
×
预设
计算结果
0
采样点数
0
使用圆数
0%
绘制进度
1.0×
播放速度
近似误差
主图

✏️ 请绘制曲线

用鼠标拖动或触摸屏
绘制任意形状,自动进行 DFT 分解

理论·主要公式

$$f(t) = \sum_{n=-\infty}^{\infty} c_n e^{i 2\pi n t/T}$$

傅里叶级数:将周期为 $T$ 的函数表示为复指数函数(旋转向量)的叠加。

$$c_n = \frac{1}{T}\int_0^T f(t) e^{-i 2\pi n t/T} dt$$

傅里叶系数:第 $n$ 次谐波分量的复振幅。本工具从绘制路径通过 DFT 计算。

$$|c_n| = A_n, \quad \arg(c_n) = \phi_n$$

振幅 $A_n$ 和相位 $\phi_n$:对应每个圆周转(周转圆)的半径和初始角度。

什么是傅里叶圆(圆周转)

🙋
在这个模拟器中,用鼠标绘制的复杂形状真的可以用旋转圆再现吗?这是什么原理?
🎓
真的可以。简单地说,我们用离散傅里叶变换(DFT)这个计算方法,将绘制的曲线分解成"旋转圆"的部分。比如,星形、四边形,原理上都可以用圆的组合来描绘。你可以试试上面的"圆的数量 N"滑块,看看使用的圆数如何改变近似的精度。
🙋
哦,是这样啊!分解出的圆之间有什么不同吗?看起来都是一样的圆在旋转?
🎓
区别很大。每个圆的半径(大小)、旋转速度、起始方向(相位)都完全不同。DFT 的计算结果就是每个圆的"设计图"。你可以试试在模拟器中改变"速度",就能清楚地看到圆的旋转速度有多大的差异。
🙋
我明白了!但如果增加太多圆,计算不会很复杂吗?在实际工作中怎么处理?
🎓
很好的问题。理论上用所有的圆可以完美再现,但数据量会很大。实际工作中,我们通常会找出"哪些圆最重要",只使用少数圆,舍弃较小的圆(高频成分)来压缩数据。比如,JPEG 图像压缩就是这个原理的应用。在这个工具中减小 N 值,你会看到这种"近似"的效果,很有趣。

常见问题

增加圆的数量可以提高近似精度。但是,最多只能用原始曲线的点数(N)。另外,仔细慢速绘制曲线可以减少噪音,提高 DFT 的精度。
绘制曲线的点数 N 是可以使用的最大圆数。当圆的数量接近 N 时,与原始曲线完全一致。使用较少圆时,只能再现大致的形状。
有很大帮助。通过改变圆的数量,可以直观地理解低频成分表示大致形状,高频成分表示细节的原理。这是傅里叶级数展开的最佳视觉入门。
DFT 是以闭合曲线为前提的,所以起点和终点不一致时会产生不连续性,再现时会出现扭曲和振动。为了光滑地再现,请尽量绘制闭合的曲线。

现实世界的应用

音频和通信信号处理:将音频数据进行傅里叶变换,分解为频率成分,去除不必要的噪音(如高频成分),或增强特定频率带,这是均衡器的原理。MP3 等音频压缩也基于这个原理。

图像压缩(JPEG):将图像分成块,对每个块的颜色变化进行频率分解(对应本模拟器的圆)。人眼不敏感的高频成分被大幅删除,从而大幅压缩文件大小。

振动和故障诊断:对旋转机器(电动机、轴承)的振动数据进行傅里叶变换,监视特定频率成分的大小。异常发生时会出现特征频率,有助于早期发现故障。

数字滤波器设计:在设计只通过必要的频率带、阻断其他频率的滤波器时,傅里叶变换是基础理论。例如,智能手机中清晰辨别对方声音的技术也采用了这种方法。

常见误解和注意事项

在开始使用这个模拟器时,很多人会遇到同样的疑问和错误。先掌握 3 个要点:

1. "将圆数 N 设置为最大就完美了?"
理论上是的,用与点数相同的圆可以完美再现。但在模拟器上,"点数"本身是有限的,鼠标绘制的光滑曲线也被离散化为有限的点的集合。所以最多就是"通过离散点"的再现。实际工作中,关键是找到"达到所需精度的最少 N"。例如,在 MP3 压缩中切掉人耳听不到的 20kHz 以上的声音。

2. "圆的旋转速度可以自由选择?"
虽然有"速度"滑块,但第 k 个圆的相对旋转速度比是固定的。k 次圆的角速度为 $\omega_k = \frac{2\pi k}{T}$,是基本速度的整数倍。工具中改变的是这个基本速度的总体快慢,即"播放速度"。若要在实际设计中改变频率,需要改变采样点数和间隔本身。

3. "相位(初始方向)是装饰?"
虽然不如半径和速度那样显眼,但相位对确定形状非常重要。比如,两个半径相同的圆,相位相差 90 度,笔尖的轨迹就会描出完全不同的椭圆。在实际傅里叶系数恢复信号时,相位信息错误会导致波形产生严重变形。在本模拟器中也能看到,每个圆的臂(连杆)从一开始就朝向各不相同的方向。

使用指南

  1. 在"绘制"模式下用鼠标或手指在画布上画一条闭合曲线(或选择预设:"星形""心形""方波")。曲线会自动重采样为 256 个点,并通过 DFT(离散傅里叶变换)分解为旋转圆
  2. 用"圆的数量 N"滑块(1~200,默认 20)调整用于再现的旋转圆个数,实时观察近似精度的变化
  3. 用"速度"滑块(1~50×)改变圆周转的旋转速度,观察多个圆如何合成并描绘出笔尖的轨迹
  4. 切换到"播放"模式运行动画,通过"绘制进度"和"近似误差"(未使用成分占总振幅的比例)查看数值

具体计算案例

载入"心形"预设后,其 256 点的轮廓会被 DFT 分解,旋转圆按振幅从大到小排列。将"圆的数量 N"设为 5 时只有大致轮廓,20 时呈现平滑的心形,50 以上时几乎完全吻合原曲线。"近似误差"按 1 −(已用圆的振幅之和)÷(全部圆的振幅之和) 计算,圆越多误差单调减小。像星形这种带尖角的形状含有较多高频成分(小圆),因此比平滑形状需要更多的圆。

实务中的注意事项