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

FFT变换后如何获取对应频率值以用于傅里叶空间高斯拟合

生成FFT移位后对应频率轴的方法
  • 首先明确前提参数:你需要先确定实空间数据的采样间隔dx,即相邻两个实空间数据点之间的物理步长,最终生成的频率轴单位会是1/[dx的单位]。
  • 直接使用numpy内置的fftfreq接口生成频率轴即可,该接口会自动处理点数奇偶性等边界问题,不需要手动计算,具体操作如下:
    1. 获取实空间数据的总点数:N = len(func)
    2. 生成原始未移位的频率数组:freq = np.fft.fftfreq(N, d=dx)
    3. 由于你已经对FFT变换结果执行了fftshift操作(将零频率移到了数组中心),需要对频率数组做相同的移位操作保证对齐:freq_shifted = np.fft.fftshift(freq)
  • 你得到的freq_shifted就是和func_fourier完全对齐的傅里叶空间频率轴,可直接用于绘图和后续的高斯模型拟合。

完整示例代码

import numpy as np
import matplotlib.pyplot as plt
from numpy.fft import fft as fourier

# 你的实空间数据
# func = 你的实空间数据集
# 实空间采样间隔,根据你的实际采样参数填写
dx = 0.1 

# 生成频率轴
N = len(func)
freq = np.fft.fftfreq(N, d=dx)
freq_shifted = np.fft.fftshift(freq)

# 你已有的FFT变换逻辑
func_fourier = np.fft.fftshift(fourier(func))

# 对齐绘图
plt.plot(freq_shifted, np.abs(func_fourier))
plt.xlabel("频率")
plt.ylabel("频谱幅值")
plt.show()

补充说明

如果你的数据是二维/更高维,可对每个维度分别执行上述fftfreq+fftshift的操作,再通过np.meshgrid生成网格坐标即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:15:01