\usetikzlibrary{arrows,matrix} % \usepackage{amssymb, amsmath, mathptmx} \begin{tikzpicture}[font=\scriptsize,node distance=1.5cm,scale=0.9] \tikzstyle{simpleBlock}=[centered, text centered] \tikzstyle{block}=[simpleBlock, draw, minimum size=1cm, minimum width=2.4cm, thick] \tikzstyle{arrow}=[draw,-latex,thick] \tikzstyle{point} = [draw, fill=black, circle,inner sep=1pt] \node[block] (PreProc) {Pre-processing}; \node[block,right=of PreProc] (Encoding) {Encoding}; \node[block,right=of Encoding, yshift=-1cm, text width=2cm] (Transmission) {Transmission or Storage}; \node[block,left=of Transmission, yshift=-1cm] (Decoding) {Decoding}; \node[block,left=of Decoding] (PostProc) {Post-processing}; \node[simpleBlock,left=of PreProc, text width=1.5cm] (Input) {\textbf{Input}}; \node[simpleBlock,left=of PostProc, text width=1.5cm] (Output) {\textbf{Output}}; \path[arrow] (Input) -- (PreProc); \path[arrow] (PreProc) -- (Encoding); \path[arrow] (Encoding) -| (Transmission); \path[arrow] (Transmission) |- (Decoding); \path[arrow] (Decoding) -- (PostProc); \path[arrow] (PostProc) -- (Output); \end{tikzpicture}