频率处理
字数: 0
Frequency Analysis
📶
音频信号通常以时域 (Time Domain) 形式表示(振幅随 变化),但为了方便分析频率成分,需要将其转换到频域 (Frequency Domain) 表示(振幅随 变化)

傅里叶变换

对于连续信号
  • :时域信号
  • :频域信号
  • :频率
  • :虚数单位

可以使用欧拉公式展开,改写:
  • 实部 (Real Part)
  • 虚部 (Imaginary Part)
相位 (Phase)
Phase Shift指的是一个波形相对于某一参考波形在时间轴上的水平位移。
当使用正弦波来描述一个周期信号时,标准形式通常是:
  • :角频率
对应的相移即
  • 幅度 (Amplitude)
⚠️
这个公式将连续的时间信号分解为无限多个连续频率的正弦波,只适用于理论分析,但在实际中无法直接使用,因为计算机只能处理离散数据。

离散傅里叶

Discrete Series Transformer, DFT
对于离散信号
  • :信号长度
  • :频率索引(
⚠️
对于每个频率点 ,需要计算  次乘法和加法。

快速傅里叶

Fourier Series Transformer, FFT
它的公式与 DFT 相同,但通过降低计算复杂度,加快变换的速度。
核心思想是将 DFT 的计算分解为更小的子问题(分治法)
  • 如果 (输入信号的样本点数量,例如 256、512、1024 等)是 2 的幂,则可以将 DFT 分解为两个长度为  的 DFT。
  • 分解可以递归进行,直到子问题的长度为 1。
⚠️
实现将计算复杂度从  降低到 

短时傅里叶

Short-Time Fourier Transform, STFT
用于分析「非平稳信号」(频率 随时间 变化的信号)。与传统的傅里叶变换不同,STFT 通过将信号分段并对每段分别进行傅里叶变换,从而同时提供时间和频率的信息。
  • :时域信号
  • :窗函数,用于截取信号在时间中心   附近的一个局部片段。

窗函数

STFT 的核心部分,实现将信号分割成一系列短时间片段。此外,为了保证信号的连续性并避免帧与帧之间的明显断裂,通常会让每个帧之间有一定的重叠 (Overlap)
频率分辨率,即每个频率分量之间的间隔。
假设使用 44100 Hz 的采样率和 1024 采样点的窗函数,则分辨率为:
  • 这意味着能够分辨出最小为 43.07 Hz 的频率差异。
  • 如果使用更大的窗口,分辨率会更细致,但每个频率点也会变得更模糊(频率成分 “扩展” 到更大区间)

矩形窗

Rectangular Window
定义为在窗口长度 内为 ,其他位置为 。其数学表达式为:
⚠️
它没有平滑的过渡,信号直接被截断。实现简单,计算效率高。
它的峰较窄,频谱泄漏 (Spectral Leakage) 严重,即音频帧的长度不是信号周期的整数倍,频率成分容易 “泄漏” 到其他频率上,导致原本集中在特定频率的能量分散到其他频率点。

汉宁窗

Hann Window
⚠️
它产生较宽的峰,具有平滑的边缘过渡,信号在窗口边界处逐渐减小到零,但代价是频率分辨率较低。

卷积操作

Convolution

时域卷积

输入信号 与系统的脉冲响应 之间的叠加。计算复杂度较高,特别对于长信号。

频域卷积

  • 将卷积运算转换为频域中的乘积:
  • 反之,频域中的卷积是时域中的乘积:

    例题

    notion image
    notion image

    波形图

    (时域图)
    notion image
    傅里叶级数 (Fourier Series) 指的是一个周期性函数 展开为一系列正弦和余弦函数后的叠加,用于描述周期性 (Periodic) 信号:
    • :常数项,信号的平均值

    可以进一步生成不同的波形图:

    方波

    周期为 ,并且其信号值只有两个状态
    notion image
    notion image
    波通常会出现一些 “抖动,这在信号处理中被称为「吉布斯现象(Gibbs phenomenon)。它是由傅里叶级数的「有限项逼近」所引起的,即仅取「有限个」正弦和余弦项,尤其在信号具有急剧变化(例如方波的上升和下降边缘)时明显。

    三角波

    notion image
    • 系数 衰减得比方波的系数 更快

    锯齿波

    notion image
    • :原信号振幅的2倍

    频谱图

    Spectrogram,或者称为「时频图
    • 横轴:信号的时间维度
    • 纵轴:信号的频率成分
    • 颜色:深浅表示该频率在该时刻的强度
    🖼️
    分帧 → 加窗
    → 傅里叶计算
    → 功率计算
    → 对数幅度谱计算 (更接近人类听觉感知)
    → 可视化显示
    notion image
    短窗口 → 良好的时间分辨率
    notion image
    长窗口 → 良好的频率分辨率

    零填充

    Zero Padding
    • 一种用于让傅里叶变换的图形幅度输出在外观上更加平滑的技术。
    • 通常用于将信号数据的长度调整为 的幂次方,以便加快处理速度。

    窗口跳跃

    Hopping
    不总是需要在每个时间点计算谱图,尤其是当信号的频谱内容在时间上变化不大时。
    • 相反,可以跳过一些时间点,而不会影响图的基本形状。
    • 这意味着滑动窗口每次移动的步长大于一个样本点,这个步长称为「跳跃大小(Hop size)
     
     
    2023 - 2026