\documentclass[tikz]{standalone}
%
\usetikzlibrary{arrows.meta}
\usetikzlibrary{automata} % FSM
\usetikzlibrary{backgrounds}
\usetikzlibrary{calc}
\usetikzlibrary{chains}
\usetikzlibrary{intersections}
% \usetikzlibrary{mindmap}
\usetikzlibrary{positioning}
\usetikzlibrary{shadows}
\usetikzlibrary{shapes,
  shapes.arrows,
  shapes.gates.logic.US,
  shapes.gates.logic.IEC,
  shapes.geometric,
  shapes.symbols,
  shapes.multipart,
  shapes.misc}%
%
\begin{document}
  %
  \tikzstyle{block} = [draw, fill=white, rectangle, minimum height=2.3em, minimum width=3.3em] %, font=\footnotesize
  \tikzstyle{adda} = [draw, fill=white, rectangle, minimum height=1.5em] % , font=\footnotesize
  \tikzstyle{sum} = [draw, fill=white, circle]
  \tikzstyle{pin} = [fill, circle, inner sep=1.2pt]
  \tikzstyle{arrow} = [->, {-Triangle[angle=60:1.5mm]}]
  %
  \begin{tikzpicture}
    \def\SCALE{1.2}
    %%%%%%%%%%%%%%%%%% BLOCKS %%%%%%%%%%%%%%%%%%
    \node [block] (filter) {$W(z)$};
    \node [block, below= \SCALE * 1.3cm of filter] (lms) {LMS};
    \node [pin, right=\SCALE * 0.4cm of filter] (pin3) {};
    \node (dac) [adda, right=\SCALE * 0.3cm of pin3]  {DAC};
    \node [block, right=\SCALE * 0.3cm of dac] (secondary) {$S(z)$};
    \node [block, below=\SCALE * 0.5cm of secondary] (sdach2) {$\widehat{S}(z)$};
    \node [sum, right=\SCALE * 0.8cm of secondary] (mic) {+};
    \node [sum, right=\SCALE * 0.8cm of sdach2] (fb) {+};
    \node [block, left=\SCALE * 0.85cm of lms] (sdach1) {$\widehat{S}(z)$};
    \node [above=\SCALE * 0.7cm of mic] (disturbance) {$d(n)$};
    \node [pin, right=\SCALE * 0.6cm of fb] (pin1) {};
    \node [pin, left=\SCALE * 0.3cm of sdach1] (pin2) {};
    \node (help) at ($(mic)!0.5!(fb)$) {};
    \node [adda] (adc) at (pin1|-help) {ADC};

    %%%%%%%%%%%%%%%%%% DECORATION %%%%%%%%%%%%%%%%%%
    % Digital
    \def\BORDER{0.5}
    \definecolor{mygrey}{rgb}{0.9, 0.9, 0.9}
    \node (p1) at ($(pin3)!0.5!(secondary.west)$) {};
    \node (p2) at ($(secondary.south)!0.5!(sdach2.north)$) {};
    \begin{scope}[on background layer]
      \fill [mygrey] ($(pin2|-fb) + (-\BORDER, \SCALE * -2 -\BORDER)$) -- ($(pin2|-filter.north) + (-\BORDER, \BORDER + 0.3)$) -- ($(dac|-filter.north) + (0, +\BORDER + 0.3)$) -- (dac|-adc) -- ($(adc.east) + (\BORDER, 0)$) |- ($(pin2|-fb) + (-\BORDER, \SCALE * -1.5 -\BORDER)$);
    \end{scope}
    \node[below right] at ($(pin2|-filter.north) + (-\BORDER, \BORDER + 0.3)$) {Digital Domain};

    %%%%%%%%%%%%%%%%%% WIRING %%%%%%%%%%%%%%%%%%
    \begin{scope}[on background layer]
      \draw [arrow] (lms) |- ($(filter.south west) + (0.25, -0.3)$) -- ($(filter.north east) + (-0.25, 0.3)$);
    \end{scope}
    \draw [arrow] (filter.east) node[above right] {$y(n)$} -- (dac) -- (secondary);
    \draw [arrow] (sdach1.east) node[above right] {$x'(n)$} -- (lms);

    \draw [arrow] (disturbance) -- (mic);
    \draw [arrow] (secondary) -- (mic);
    \draw [arrow] (sdach2.east) node[above right] {$y'(n)$} -- (fb.west) node[below left] {-};
    \draw [arrow] (mic.east) node[above right] {$e(n)$} -| (adc) -- (adc) -- (pin1) -- (fb);
    \draw [arrow] (pin1) |- (lms);
    \draw [arrow] (fb) node[below right = \SCALE * 1cm and 0cm] {$x(n)$} |- +(-1, \SCALE * -1.5) -| (pin2) -- (sdach1);
    \draw [arrow] (pin2) |- (filter);
    \draw [arrow] (pin3) |- (sdach2);
  \end{tikzpicture}
\end{document}
