Inverse Fourier transform

Definition
F(ω)=∫−∞∞f(t)exp(−jωt)dtF(\omega)=\int ^{\infty} _{-\infty}f(t)exp(-j\omega t)dtF(ω)=f(t)exp(jωt)dt
Inverse Fourier transform
f(t)=F−1(F(ω))=12π∫−∞∞f(ω)exp(jωt)dωf(t)=\mathcal F ^{-1}( F(\omega))=\frac {1}{2\pi}\int ^{\infty} _{-\infty}f(\omega)exp(j\omega t)d\omegaf(t)=F1(F(ω))=2π1f(ω)exp(jωt)dω
Proof
F(ω)=∫−∞∞f(t)exp(−jωt)dtF(\omega)=\int ^{\infty} _{-\infty}f(t)exp(-j\omega t)dtF(ω)=f(t)exp(jωt)dt
F(ω)=∫−∞∞12π∫−∞∞f(ω′)exp(jω′t)dω′exp(−jωt)dtF(\omega)=\int ^{\infty} _{-\infty}\frac {1}{2\pi}\int ^{\infty} _{-\infty}f(\omega ^{\prime})exp(j\omega ^{\prime} t) d\omega ^{\prime} exp(-j\omega t)dtF(ω)=2π1f(ω)exp(jωt)dωexp(jωt)dt
=12π∫−∞∞∫−∞∞f(ω′)exp(jω′t)dω′exp(−jωt)dt=\frac {1}{2\pi}\int ^{\infty} _{-\infty}\int ^{\infty} _{-\infty}f(\omega ^{\prime})exp(j\omega ^{\prime} t) d\omega ^{\prime} exp(-j\omega t)dt=2π1f(ω)exp(jωt)dωexp(jωt)dt
=12π∫−∞∞∫−∞∞f(ω′)exp(−j(ω′−ω)t)dω′dt=\frac {1}{2\pi}\int ^{\infty} _{-\infty}\int ^{\infty} _{-\infty}f(\omega ^{\prime}) exp(-j(\omega ^{\prime}-\omega) t) d\omega ^{\prime} dt=2π1f(ω)exp(j(ωω)t)dωdt
=12π∫−∞∞f(ω′)[∫−∞∞exp(−j(ω′−ω)t)dt]dω′=\frac {1}{2\pi}\int ^{\infty} _{-\infty} f(\omega ^{\prime}) \left[ \int ^{\infty} _{-\infty} exp(-j(\omega ^{\prime}-\omega) t) dt \right] d\omega ^{\prime}=2π1f(ω)[exp(j(ωω)t)dt]dω
Let
δ(ω−ω′)=12π∫−∞∞exp(−j(ω′−ω)t)dt\delta (\omega - \omega ^{\prime} )= \frac {1}{2\pi} \int ^{\infty} _{-\infty} exp(-j(\omega ^{\prime}-\omega) t) dt δ(ωω)=2π1exp(j(ωω)t)dt
F(ω)=∫−∞∞f(ω′)δ(ω−ω′)dω′F(\omega)=\int ^{\infty} _{-\infty} f(\omega ^{\prime}) \delta (\omega - \omega ^{\prime} ) d\omega ^{\prime}F(ω)=f(ω)δ(ωω)dω
For δ\deltaδ function
∫−∞∞δ(x)dx=1,δ(x)=0,forx≠0\int ^{\infty} _{-\infty}\delta (x)dx=1 , \delta (x)=0, \quad for \quad x \neq 0 δ(x)dx=1,δ(x)=0,forx=0
∫−∞∞f(x)δ(x−a)dx=f(a)\int ^{\infty} _{-\infty} f(x) \delta (x-a)dx=f(a)f(x)δ(xa)dx=f(a)
12π∫−∞∞e−jωxdx=δ(ω)\frac{1}{2\pi}\int ^{\infty} _{-\infty} e^{-j\omega x}dx=\delta (\omega)2π1ejωxdx=δ(ω)

Therefore,

∫−∞∞f(ω′)δ(ω−ω′)dω′=F(ω)\int ^{\infty} _{-\infty} f(\omega ^{\prime}) \delta (\omega - \omega ^{\prime} ) d\omega ^{\prime}=F(\omega)f(ω)δ(ωω)dω=F(ω)

def ifft(x, n=None, axis=-1, overwrite_x=False): """ Return discrete inverse Fourier transform of real or complex sequence. The returned complex array contains ``y(0), y(1),..., y(n-1)`` where ``y(j) = (x * exp(2*pi*sqrt(-1)*j*np.arange(n)/n)).mean()``. Parameters ---------- x : array_like Transformed data to invert. n : int, optional Length of the inverse Fourier transform. If ``n < x.shape[axis]``, `x` is truncated. If ``n > x.shape[axis]``, `x` is zero-padded. The default results in ``n = x.shape[axis]``. axis : int, optional Axis along which the ifft's are computed; the default is over the last axis (i.e., ``axis=-1``). overwrite_x : bool, optional If True, the contents of `x` can be destroyed; the default is False. Returns ------- ifft : ndarray of floats The inverse discrete Fourier transform. See Also -------- fft : Forward FFT Notes ----- Both single and double precision routines are implemented. Half precision inputs will be converted to single precision. Non floating-point inputs will be converted to double precision. Long-double precision inputs are not supported. This function is most efficient when `n` is a power of two, and least efficient when `n` is prime. If the data type of `x` is real, a "real IFFT" algorithm is automatically used, which roughly halves the computation time. Examples -------- >>> from scipy.fftpack import fft, ifft >>> import numpy as np >>> x = np.arange(5) >>> np.allclose(ifft(fft(x)), x, atol=1e-15) # within numerical accuracy. True """ return _pocketfft.ifft(x, n, axis, None, overwrite_x)
最新发布
09-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值