A basic examples of the Fourier transform of a rectangular function.
For more Fourier analysis figures, please see the “fourier analysis” tag. These figures are used in Ben Kilminster’s lecture notes for PHY111.
Edit and compile if you like:
% Author: Izaak Neutelings (January 2021)
% http://pgfplots.net/tikz/examples/fourier-transform/
% https://tex.stackexchange.com/questions/127375/replicate-the-fourier-transform-time-frequency-domains-correspondence-illustrati
% https://www.dspguide.com/ch13/4.htm
\documentclass[border=3pt,tikz]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{physics}
\usepackage[outline]{contour} % glow around text
\usepackage{xcolor}
\usetikzlibrary{intersections}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{angles,quotes} % for pic
\usetikzlibrary{calc}
\usetikzlibrary{3d}
\contourlength{1.3pt}
\tikzset{>=latex} % for LaTeX arrow head
\colorlet{myred}{red!85!black}
\colorlet{myblue}{blue!80!black}
\colorlet{mycyan}{cyan!80!black}
\colorlet{mygreen}{green!70!black}
\colorlet{myorange}{orange!90!black!80}
\colorlet{mypurple}{red!50!blue!90!black!80}
\colorlet{mydarkred}{myred!80!black}
\colorlet{mydarkblue}{myblue!80!black}
\tikzstyle{xline}=[myblue,thick]
\def\tick#1#2{\draw[thick] (#1) ++ (#2:0.1) --++ (#2-180:0.2)}
\tikzstyle{myarr}=[myblue!50,-{Latex[length=3,width=2]}]
\def\N{80}
\begin{document}
% RECTANGULAR FUNCTION
\def\xmin{-0.7*\T} % min x axis
\def\xmax{3.0} % max x axis
\def\ymin{-0.4} % min y axis
\def\ymax{1.7} % max y axis
\def\A{0.67*\ymax} % amplitude
\def\T{0.31*\xmax} % period
\begin{tikzpicture}
\message{^^JRectangular function}
\draw[->,thick] (0,\ymin) -- (0,\ymax) node[left] {$y$};
\draw[->,thick] (-\xmax,0) -- (\xmax+0.1,0) node[below=1,right=1] {$t$ [s]};
\draw[xline,very thick,line cap=round]
({-\T},{\A}) -- ({\T},{\A}) node[black,right=0,scale=0.9] {$A$}
({-\T},0) -- ({-0.9*\xmax},0)
({ \T},0) -- ({0.9*\xmax},0);
\draw[xline,dashed,thin,line cap=round]
({-\T},0) --++ (0,{\A})
({ \T},0) --++ (0,{\A});
\tick{{ -\T},0}{90} node[right=1,below=-1,scale=1] {$-T$};
\tick{{ \T},0}{90} node[right=1,below=-1,scale=1] {$T$};
%\tick{0,{ \A}}{ 0} node[left=-1,scale=0.9] {$A$};
\end{tikzpicture}
% RECTANGULAR FUNCTION - frequency domain
\begin{tikzpicture}
\message{^^JRectangular function - frequency domain}
\def\T{0.30*\xmax} % period
\def\A{0.70*\ymax} % amplitude
\draw[->,thick] (0,\ymin) -- (0,\ymax) node[left] {$g$};
\draw[->,thick] (-\xmax,0) -- (\xmax+0.1,0) node[below=1,right=1] {$\omega$ [rad/s]};
\draw[xline,samples=\N,smooth,variable=\t,domain=-0.94*\xmax:0.94*\xmax]
plot(\t,{\A*sin(360/(\T)*\t)/(2*pi)*(\T)/\t});
\tick{{-3*\T},0}{90} node[left= 5,below=-2,scale=0.85] {\strut$-\dfrac{3\pi}{T}$};
\tick{{-2*\T},0}{90} node[left= 5,below=-2,scale=0.85] {\strut$-\dfrac{2\pi}{T}$};
\tick{{ -\T},0}{90} node[left= 4,below= 0,scale=0.85] {\strut$-\dfrac{\pi}{T}$};
\tick{{ \T},0}{90} node[right= 0,below= 0,scale=0.85] {\strut$ \dfrac{\pi}{T}$};
\tick{{ 2*\T},0}{90} node[right=-1,below=-2,scale=0.85] {\strut$ \dfrac{2\pi}{T}$};
\tick{{ 3*\T},0}{90} node[right=-1,below=-2,scale=0.85] {\strut$ \dfrac{3\pi}{T}$};
\tick{0,{\A}}{0} node[left=-1,scale=0.8] {$2TA$};
\node[mydarkblue,right,scale=0.9] at (0.2*\xmax,\A)
{$2A\dfrac{\sin(T\omega)}{\omega}$}; %g(\omega) =
\end{tikzpicture}
%% SYNTHESIS 3D
%\begin{tikzpicture}[x=(-20:0.9), y=(90:0.9), z=(42:1.1)]
% \message{^^JSynthesis 3D}
% \def\xmax{6.5} % max x axis
% \def\ymin{-1.2} % min y axis
% \def\ymax{1.6} % max y axis
% \def\zmax{5.8} % max z axis
% \def\xf{1.17*\xmax} % x position frequency axis
% \def\A{(0.60*\ymax)} % amplitude
% \def\T{(0.335*\xmax)} % period
% \def\w{\zmax/11.2} % spacing components
%
% % COMPONENTS
% \foreach \i/\col [evaluate={\z=\w*\i;}] in {
% 11/mycyan,9/mypurple,7/myorange,5/myred,3/mygreen,1/myblue}{
% \draw[black!30] ({\T},0.1,\z) --++ (0,-0.2,0);
% \draw[black!30] ({2*\T},0.1,\z) --++ (0,-0.2,0);
% \draw[->,black!30] (0,0,\z) --++ (0.93*\xmax,0,0);
% \draw[xline,\col,opacity=0.8,thick,
% samples=\i*\N,smooth,variable=\t,domain=-0.05*\T:0.87*\xmax]
% plot(\t,{\f{\i}},\z);
% }
%
% % TIME DOMAIN
% \begin{scope}[shift={(0,0,-0.17*\zmax)}]
% \draw[black,fill=white,opacity=0.3,canvas is xy plane at z=0]
% (-0.1*\xmax,-1.25*\ymax) rectangle (1.13*\xmax,1.25*\ymax);
% \draw[->,thick] (-0.05*\xmax,0,0) -- (\xmax,0,0)
% node[below right=-3,canvas is xy plane at z=0] {$t$ [s]};
% \draw[->,thick] (0,\ymin,0) -- (0,\ymax,0)
% node[left,canvas is xy plane at z=0] {$y$};
% \draw[xline,blue!90!black,very thick,
% samples=9*\N,smooth,variable=\t,domain=-0.05*\T:0.9*\xmax]
% plot(\t,{\f{1}+\f{3}+\f{5}+\f{7}+\f{9}+\f{11}},0); %node[above] {$f$};
% \tick{{\T},0,0}{90}
% node[below=-1,scale=0.9,canvas is xy plane at z=0] {\contour{white}{$T$}};
% \tick{{2*\T},0,0}{90}
% node[below=-1,scale=0.9,canvas is xy plane at z=0] {\contour{white}{$2T$}};
% \node[scale=1,canvas is xy plane at z=0] at (0.4*\xmax,-\ymax,0) {Time domain};
% \end{scope}
%
% % FREQUENCY DOMAIN
% \begin{scope}[shift={(\xf,0,0)}]
% \draw[black,fill=white,opacity=0.3,canvas is zy plane at x=0]
% (-0.13*\zmax,-1.25*\ymax) rectangle (1.26*\zmax,1.25*\ymax);
% %\draw[->,thick] (0,0,0) -- (0,0,\zmax) node[above left=-1] {$z$};
% %\draw[->,thick] (\xmax,0,0) --++ (0,0,\zmax);
% \draw[->,thick] (0,0.8*\ymin,0) -- (0,\ymax,0)
% node[pos=1,left=0,canvas is zy plane at x=0] {$A_n$};
% %node[pos=0.84,left=2,fill=white,inner sep=0] {$A_n$};
% \draw[->,thick] (0,0,-0.05*\zmax) --++ (0,0,1.13*\zmax)
% node[below right=-1,canvas is zy plane at x=0] {$f$ $\left[\frac{1}{\mathrm{s}}\right]$};
% \node[scale=1,canvas is zy plane at x=0] at (0,-\ymax,0.65*\zmax) {Frequency domain};
% \draw[myblue!30,dashed,samples=3*\N,smooth,variable=\t,domain=0.074*\zmax:1.02*\zmax]
% plot(0,{\A*4/pi/\t*\w},\t); %node[right=2,above=0,scale=0.7] {$\dfrac{4A}{\pi n}$};
% \foreach \i/\col [evaluate={\z=\w*\i;}] in {
% 11/mycyan,9/mypurple,7/myorange,5/myred,3/mygreen,1/myblue}{
% \draw[\col,dash pattern=on 2 off 2]
% (0,0,\z) --++ (0,{\A*4/pi/\i},0);
% \fill[\col,canvas is zy plane at x=0]
% %(\xf,{\A*4/pi/\i},\z) circle(0.08);
% (\z,{\A*4/pi/\i}) circle(0.07);
% \tick{0,0,\z}{90}
% node[below=-1,scale=0.85,canvas is zy plane at x=0]
% {$\dfrac{\i}{T}$}; %f_\i=\ifnum\i=1 \else \i \fi T
% }
% \foreach \i [evaluate={\z=\w*\i;}] in {2,4,...,10}{
% \fill[myblue!60!black,canvas is zy plane at x=0] (\z,0) circle(0.07);
% }
% \end{scope}
%
%\end{tikzpicture}
\end{document}Click to download: fourier_transform.tex • fourier_transform.pdf
Open in Overleaf: fourier_transform.tex

