For any complex numbers
$h(x) = af(x) + bg(x)$
$\xleftrightarrow{\mathcal{F}~(\textrm{Fourier transform})}$ $\hat{h}(\xi) = a \cdot \hat{f}(\xi) + b \cdot \hat{g}(\xi)$
$ python demo_fourier_properties_1_linearity.py
For any real number
$h(x) = f(x-x_0)$ $\xleftrightarrow{\mathcal{F}~(\textrm{Fourier transform})}$ $\hat{h}(\xi) = e^{-2 \pi i x_0 \xi}\hat{f}(\xi)$
$ python demo_fourier_properties_2_shift_in_spatial_domain.py
For any real number
$h(x) = e^{2 \pi i x \xi_0}f(x)$ $\xleftrightarrow{\mathcal{F}~(\textrm{Fourier transform})}$ $\hat{h}(\xi) = \hat{f}(\xi - \xi_0)$
$ python demo_fourier_properties_3_shift_in_Fourier_domain.py
$h(x) = (f*g)(x) = \int_{-\infty}^{\infty}{f(y)g(x-y)dy}$ $\xleftrightarrow{\mathcal{F}~(\textrm{Fourier transform})}$ $\hat{h}(\xi) = \hat{f}(\xi) \cdot \hat{g}(\xi)$
where, * is convolution operator and
$ python demo_fourier_properties_4_1d_convolution_vs_multiplication.py
$ python demo_fourier_properties_5_2d_convolution_vs_multiplication.py