如何用FFT数值计算矩形函数的傅里叶变换?结果匹配问题求解
用FFT数值计算矩形函数的傅里叶变换问题
我希望对傅里叶变换进行数值计算,选择矩形函数作为示例,其定义如下:
function step(x) if abs(x) < a return 1 else return 0 end end
根据Lothar Papula的教材[1],该函数的傅里叶变换为:
function stepff(p) return 2*sin(a*p)/p end
我想直接使用fft算法完成这一计算。
已尝试的操作
使用Julia进行计算并绘图:
x = -5:dx:5 p = fftfreq(length(x),2pi/dx) scatter(p, real.(fft(step.(x)))) scatter!(p, imag.(fft(step.(x))))
计算结果的实部和虚部与预期完全不符,但绝对值仅存在一个常数偏差(见附图)。
已知的公式关联疑问
离散傅里叶变换公式:
$$
X_k=\sum_{n=0}^{N-1} x_n \cdot e^{-\frac{i 2 \pi}{N} k n}
$$
连续傅里叶变换公式:
$$
\hat{f}(\xi)=\int_{-\infty}^{\infty} f(x) e^{-i 2 \pi \xi x} d x
$$
我仅知道可用黎曼和近似积分:
$$
\int_{-\infty}^{\infty} f(x) , dx \approx \frac{1}{N}\sum_{N}f(x[N])
$$
但不确定离散与连续傅里叶变换的具体关联,查阅相关帖子后未得到有效解答。
[1] 注:不同教材的傅里叶变换惯例可能存在$2\pi$因子或$1/\sqrt{2\pi}$的归一化差异。
内容的提问来源于stack exchange,提问作者TheFibonacciEffect
相关产品推荐
相关产品推荐

