You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何两个正弦波的离散傅里叶变换在零频出现巨大尖峰?

FFT处理正弦波叠加信号时零频出现异常大尖峰问题

我对1Hz和10Hz的正弦波叠加信号执行傅里叶变换,依据采样时长与样本数计算采样频率后转换为频率-幅度图。预期仅在1Hz和10Hz处出现清晰峰值(不计对称性),但实际零频位置出现了无法解释的巨大尖峰。

生成叠加正弦波信号的代码

const INPUT_NUM_SAMPLES = 1 << 10
const INPUT_DURATION = 10
INPUT_FREQS := []float64{1, 10}

fftInput := make([]complex128, INPUT_NUM_SAMPLES)
for _, freq := range INPUT_FREQS {
    for i := range fftInput {
        inputPoint := float64(i) / float64(INPUT_NUM_SAMPLES) * INPUT_DURATION
        fftInput[i] += complex(inputPoint, math.Cos(inputPoint*freq*math.Pi*2))
    }
}

执行傅里叶变换的代码

fftOutput := fourier.NewCmplxFFT(INPUT_NUM_SAMPLES).Coefficients(make([]complex128, len(fftInput)), fftInput)

生成频率-幅度图的代码

R := float64(INPUT_NUM_SAMPLES) / float64(INPUT_DURATION)
fmt.Printf("Sampling frequency: %f\n", R)
freqMag := make([]complex128, len(fftOutput))
for index, value := range fftOutput {
    freqMag[index] = complex((float64(index)/INPUT_NUM_SAMPLES)*R, math.Sqrt(real(value)*real(value)+imag(value)*imag(value)))
}

图表信息

  • 频率-幅度图(省略对称另一半):零频位置存在巨大尖峰,1Hz和10Hz处有预期的清晰峰值
  • 信号波形图:展示了1Hz与10Hz正弦波叠加后的波形

已尝试的解决方法

  • 使用不同FFT库,问题依旧存在
  • 反转输入的实部与虚部,无任何变化

内容的提问来源于stack exchange,提问作者Michael Hermenault

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:09:57