Notes on the Fourier Transform2 months agohttps://eli.thegreenplace.net/2026/notes-on-the-fourier-transform/傅里叶级数可以通过延拓周期来近似有限区间上的非周期函数,但对于真正不重复的函数,则使用傅里叶变换。傅里叶变换被推导为傅里叶级数系数在周期趋于无穷大时的极限,将离散频率变为连续频谱。傅里叶变换将时域函数转换为频域表示,而逆变换则将其转换回时域。傅里叶变换的关键性质包括线性性、伸缩性、时移性、导数变换以及卷积定理(时域卷积等于频域乘积)。傅里叶变换存在的一个充分条件是函数的绝对可积性。
Making Our Own Spectrogram2 months agohttps://fasterthanli.me/articles/making-our-own-spectrogram傅里叶变换在时域和频域之间转换信号,从而实现频谱图的生成。方波可以通过叠加余弦谐波来近似,这说明了傅里叶级数的工作原理。真实世界的音频(例如嘴部爆裂声)可以通过FFT使用有限数量的余弦分量进行重建。汉宁窗等窗函数通过在分块分析中逐渐减小信号边缘来防止频谱泄漏。使用汉宁窗的重叠相加重建可以产生正确的音频,但边界处需要填充。Gabor极限迫使时间和频率分辨率之间进行权衡;选择FFT大小和重叠会影响频谱图的清晰度。频率仓之间的插值提高了视觉平滑度,而禁用插值则会显示仓的边界。感知均匀的颜色映射(例如colorcet)比简单的黑白渐变更能提高频谱图的可读性。具有自定义插值的对数频率尺度能更好地表示人类音高感知。使用cpal库通过回调函数从系统设备(例如通过回环)捕获音频输入以进行实时处理。UI和音频线程通过通道进行通信;有界VecDeque可防止渲染停滞期间的内存溢出。egui中的纹理更新涉及分配句柄、绘制到ColorImage以及每帧上传到GPU。性能分析显示CPU热点:25%的周期用于克隆ColorImage,40%用于纹理上传,27%用于FFT计算。频谱图可视化各种音乐流派和声音(例如颤音、频率扫描、鸟鸣)以寓教于乐。