信号分析~ 信号FFT 3D分析 之 二

要把一系列离散的 FFT 结果(切片)连接成连续、平滑的 3D 效果,核心在于“重叠(Overlap)”“插值(Interpolation)”。

如果只是简单地把每一帧 FFT 结果排在一起,你会得到一堆生硬的“横切面”,视觉上会有明显的断层。要实现平滑的 3D 效果,通常采用以下技术路径:


1. 时间维度的“滑动窗口”与重叠 (Overlap)

这是实现连续感最关键的一步。在做 STFT(短时傅里叶变换) 时,窗口不是“跳着走”的,而是“滑着走”的。

  • 操作方式: 每一帧信号与前一帧保留一定比例的重叠(通常是 50%, 75% 甚至 90%)。
  • 效果: 这样在频率轴上,相邻的两个 FFT 切片之间的数据具有高度的相关性。重叠率越高,在 3D 图中时间轴方向的渐变就越平滑。

2. 数学上的插值 (Interpolation)

当你拥有了高重叠率的数据,但在绘图软件(如 MATLAB, Python 的 Matplotlib 或 Origin)中渲染 3D 曲面时,依然需要对点与点之间的“空白”进行填充:

  • 双线性插值 (Bilinear Interpolation): 在频率轴和时间轴两个方向上进行线性拟合,让网格间的过渡变得自然。
  • 样条插值 (Spline Interpolation): 如果你追求极致的圆滑感,样条插值可以让峰值(Peak)看起来更像平滑的山峦而非锯齿。

3. 窗函数 (Windowing) 的平滑作用

为了防止每一帧的首尾信号突变导致频谱产生“毛刺”(频谱泄露),必须给每一帧加上窗函数(如 Hamming 或 Hann 窗)。

  • 这些窗函数会让每一帧信号在边缘平滑衰减到零。配合上文提到的重叠技术,这些平滑边缘会互相融合,使得 3D 模型在时间轴上不会出现“阶梯感”。

4. 常见的 3D 表现形态

在术语上,这种连续连接后的 3D 效果有几种常见的视觉呈现:

呈现形式 连接方式 视觉特点
3D 曲面图 (Surface Plot) 所有的 FFT 切片通过网格 (Mesh) 相互连接。 看起来像一个连续的起伏地形,最适合观察全局趋势。
瀑布图 (Waterfall) 每一条曲线独立,但密集成排。 侧重于展示每一个时间点频率分量的变化过程,有较强的透视感。
彩色等高线图 (Contour/Heatmap) 将 3D 俯拍成 2D,用颜色代表高度。 看起来虽然是平面的,但通过颜色渐变实现了数值上的连续感。

总结

要让 3D 图看起来连续,你的算法逻辑应该是:

  1. 设置高重叠率(如 75% Overlap)进行分帧。
  2. 施加窗函数以消除边缘噪声。
  3. 在绘图阶段开启曲面插值/着色(Shading)渲染。
posted @ 2026-05-29 12:12  长松入霄汉远望不盈尺  阅读(8)  评论(0)    收藏  举报