%\title{Demodulador QAM}
\documentclass[convert, transparent, 12pt]{standalone}
\usepackage{circuitikz, verbatim, fontspec} 
\usepackage[utf8]{inputenc}
\setmainfont{Ubuntu-R.ttf}[Ligatures=TeX] 
\begin{comment}
No se usa el paquete babel ya que entra en conflicto con circuitikz. Se usa el símbolo ° generado con el comando ^\circ dentro del modo matemático. Solo así pueden usarse las flechas dentro de los dipolos [phaseshifter], [lowpass] y [adc]. 
En los bloques FASE1 y PS1 las anclas de conexión no son norte (north) y sur (south), sino east (east) y oeste (west).
\end{comment}
\usetikzlibrary{backgrounds}
\begin{document}
% Diagrama de bloques de un demodulador QAM
\begin{circuitikz}[
	thick,
    show background rectangle, 
    background rectangle/.style={fill=yellow!20},
    box/.style={draw, font=\itshape}
]
\draw
	% Nodos que representan al oscilador local y dos mezcladores
	(2,3) node[mixer](m1){}% Detector de producto 1
	(2,-3) node[mixer,yscale=-1](m2){}% Detector de producto 2
	(5,0) node[oscillator](o1){}% Oscilador local sincronizado
	(4.5,0.5) node[above]{$f_{C}$} % Frecuencia del oscilador local
	(2, -0.7) to[phaseshifter,>,n=FASE1]++(0,-1) % Desfasador
	% Conexiones del oscilador local al desfasador y los detectores de producto
	(o1.east) -| (m1.in2)
 	(o1.east) -| (FASE1.west)
	(FASE1.east) -- (m2.in2)
	(5,-1.2) node[left]{\large $\varphi=90 ^\circ$}
	% Nodos de entrada
	node[left,align=center, font=\bf] at(-3,0){Señal\\recibida}
	(-3,0) to[short] ++(1,0)
	to[twoport,t=DIV,>,n=DIV1]++(1,0)
	(DIV1.east) to[short,-*] (0.25,0) 
	(m1.in1) -| (0.25,0) |- (m2.in1)
	node[inputarrow] at(m1.in1){}
	node[inputarrow] at(m2.in1){}
	% Convertidor Paralelo a Serial (P/S)
	(9,0.5) to[twoport,t=P/S,>,n=PS1]++(0,-1)
	% Dipolos de la rama superior
	(m1.out) to[lowpass,>] ++(4,0) % Filtro Pasabajo 1
	to[adc,>] ++(1,0) -| (PS1.west)
	% Dipolos de la rama inferior
	(m2.out) to[lowpass,>] ++(4,0) % Filtro Pasabajo 2
	to[adc,>] ++(1,0) -| (PS1.east)
	% Colocación de nodos de flecha
	node[inputarrow,rotate=-90] at(PS1.west){}
	node[inputarrow,rotate=90] at(PS1.east){}
	node[inputarrow,rotate=90] at(m1.in2){}
	node[inputarrow,rotate=-90] at(m2.in2){}
	% Etapa de salida
	(PS1.north) -- ++(1,0) node[inputarrow]{}
	node[right,align=center, font=\bf] {Flujo\\digital}
;
\end{circuitikz}
\end{document}