跳转到内容
新建笔记

傅里叶变换、DFT 与 FFT

名称输入输出作用
CTFT连续时间信号连续频率函数连续时间理论模型
DTFT离散时间序列连续且周期的频率函数分析离散系统
DFT有限长 NN 点序列NN 个离散频点计算机中的有限表示
FFT与 DFT 相同与 DFT 相同更快计算 DFT 的算法族

FFT 不产生一种新的频谱,也不会自动解决混叠、泄漏和缩放问题。

连续时间傅里叶变换:

X(f)=∫−∞∞x(t)e−j2πft dtX(f)=\int_{-\infty}^{\infty}x(t)e^{-j2\pi ft}\,dt

NN 点 DFT 及其逆变换:

X[k]=∑n=0N−1x[n]e−j2πkn/NX[k]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/N} x[n]=1N∑k=0N−1X[k]ej2πkn/Nx[n]=\frac{1}{N}\sum_{k=0}^{N-1}X[k]e^{j2\pi kn/N}

不同软件可能把 1/N1/N 放在正变换、逆变换或两边各放 1/N1/\sqrt{N}。比较结果前必须确认约定。

采样率为 fsf_s 时,第 kk 个 DFT 频点对应:

fk=kfsN,Δf=fsN=1Tf_k=\frac{k f_s}{N},\qquad \Delta f=\frac{f_s}{N}=\frac{1}{T}

T=N/fsT=N/f_s 是记录时长。若 fs=2048 Hzf_s=2048\ \text{Hz}、N=4096N=4096,则 T=2 sT=2\ \text{s}、频点间隔 Δf=0.5 Hz\Delta f=0.5\ \text{Hz}。

flowchart LR
A["采样率 fs<br/>决定无混叠频带"] --> B["样本数 N"]
B --> C["记录时长 T=N/fs"]
C --> D["频点间隔 Δf=1/T"]
B --> E["FFT 计算量"]

零填充增加绘图和峰值插值的频点密度,但不增加观测时长,因此不改善分辨两个相近分量的本质能力。

对有限数据做 DFT 等价于把无限信号乘以一个有限窗。频域中,这会把真实频谱与窗的频谱卷积。当周期分量没有恰好落在 DFT 频点上时,能量扩散到邻近频点,即频谱泄漏。

处理顺序:

  1. 用足够长的记录获得需要的 Δf\Delta f。
  2. 能同步采样时,让记录包含整数周期。
  3. 不能同步时,根据任务选择窗函数。
  4. 根据窗的相干增益或功率增益进行幅值、功率缩放。
  5. 实信号只看正频率时,按规则构造单边谱。
  • 频率峰值是否随记录时长变化而稳定?
  • 正弦的幅值是否在换窗后仍保持正确?
  • DC 和 Nyquist 频点是否被错误地乘了 2?
  • 输入是复信号时,是否错误地只保留正频率?
  • 图上单位是原单位、平方单位,还是每赫兹密度?