You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel中高斯函数的傅里叶变换结果与解析傅里叶变换不匹配的问题求助

Excel中高斯函数的傅里叶变换结果与解析傅里叶变换不匹配的问题求助

我来帮你拆解这个问题,你遇到的Excel傅里叶变换(FT)和解析结果不匹配的情况,大概率是解析公式错误频率轴计算逻辑偏差,或者Excel自带DFT工具的归一化特性导致的,咱们一步步理清楚:

先梳理你的操作逻辑

  • 数据维度:共4096个采样点(A列04095),空间/时间轴B列是-20482047(步长Δx=1,总长度4096)
  • 生成高斯函数:C列公式 C1=(1/(200*SQRT(2*PI()))) * EXP(-0.5*(B1/200)^2)(标准差σ=200)
  • Excel FT处理:用傅里叶分析工具转换C列到G列,取模得到H列
  • 频率轴尝试:最初设F列为F1=A1/4096,解析解J列为J1=EXP(-0.5*(F1*200)^2),但两者不匹配;改成F1=A1/650反而匹配,但找不到理论依据

核心问题分析

1. 解析傅里叶变换公式写错了!

这是最关键的错误:你用的解析公式漏掉了的核心因子。

对于连续高斯函数 g(x) = (1/(σ√(2π))) exp(-x²/(2σ²)),它的傅里叶变换(以频率f为变量,即角频率ω=2πf)的正确结果是:

G(f) = exp(-(2πσf)²/2)

你写的J1=EXP(-0.5*(F1*200)^2)少了,这直接导致频率轴的缩放出现偏差——你之前凑出来的650≈2π*200/2(约628),本质是用错误的频率轴去适配错误的解析公式,刚好凑出了近似匹配的结果。

2. 频率轴的正确计算逻辑

Excel的傅里叶分析工具输出的是离散傅里叶变换(DFT),对应的频率轴公式应该是:

f_k = k * (1/(N*Δx))

其中:

  • N是采样点数(这里N=4096)
  • Δx是空间/时间轴的采样步长(这里B列步长为1,Δx=1)

所以你的F列公式F1=A1/4096是正确的,不需要改成650。注意:Excel DFT的输出顺序是「直流分量(k=0)→正频率(k=12047)→负频率(k=20484095)」,你只需要对比k=0~2047的正频率部分即可。

3. Excel DFT的归一化问题

Excel的傅里叶分析工具默认是未归一化的DFT,输出结果是:

G_k = Σ_{n=0}^{N-1} x_n * exp(-2πi k n / N)

而连续傅里叶变换的离散近似需要乘以采样步长Δx,所以你需要对H列做归一化处理,比如:

H1=IMABS(G1)*Δx/N = IMABS(G1)/4096

(因为Δx=1,所以简化为除以4096)

修正步骤建议

  1. 修正解析解公式:把J列改成:
    J1=EXP(-0.5*(2*PI()*200*F1)^2)
    
  2. 保留正确频率轴:F列保持F1=A1/4096不变
  3. 归一化FT结果:H列调整为H1=IMABS(G1)/4096

做完这三步,H列和J列的正频率部分应该就能完美匹配了。

备注:内容来源于stack exchange,提问作者Ray J

火山引擎 最新活动