
Tengo una onda sinusoidal completamente rectificada sobre la que estoy tratando de colocar una forma de onda en forma de diente de sierra, como se muestra a continuación:
Originalmente tenía una solución complicada pero no era muy buena. Tengo una onda sinusoidal tex y estoy tratando de colocarla debajo.
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:1.5*360,
samples=4*360,
xtick=\empty,
width=10cm, height=4cm,
ymin=0,
enlarge x limits=false
]
\addplot [densely dashed] {abs(sin(x))};
\end{axis}
\end{tikzpicture}
\end{document}
Respuesta1
Puedes utilizarlo 1 - 1/(3*180)*mod(x+90,180)
para trazar una onda en dientes de sierra. mod(x,180)
repite cada 180
unidad, 1/(3*180)
escala los valores ( 1/180
daría como resultado una onda de diente de sierra que va de 0
a 1
).
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:1.5*360,
samples=4*360,
xtick=\empty,
width=10cm, height=4cm,
ymin=0,
enlarge x limits=false
]
\addplot [densely dashed] {abs(sin(x))};
\addplot [very thick] {1-1/(3*180)*mod(x+90,180)};
\end{axis}
\end{tikzpicture}
\end{document}
Respuesta2
Esta es una posible solución cuando foreach
se utiliza un bucle con una aproximación de línea con forma de onda de diente de sierra.
Si uno quiere que la línea toque la curva sin penetrar en la onda sinusoidal, entonces elimine la línea vertical y cambie \arch
la definición a 60.
Código
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\def\arch{90}
\begin{tikzpicture}
\begin{axis}[
domain=0:1.5*360,
samples=360,
xtick={0,90,180,270,360,450,540},
width=10cm, height=5cm,
ymin=0, ymax=1.5, xmin=0,
enlarge x limits=false
]
\addplot [densely dashed] {abs(sin(x))};
% draw the rectified line approximation via foreach skill
\foreach \i/\j in {-1/0,1/2,3/4}{
\addplot [thick,domain=\i*90:{\j*90+\arch}]
{1-0.001*(x-\i*90)};
\addplot[thick] coordinates{(\i*90,1)(\i*90,{1-0.001*(\j*90+\arch-\i*90)})}; % remove this line if the vertical line is undesired and change arch to 90
}
\node[coordinate, pin =above:{\parbox{2cm}{\tiny Voltage Simplified by Approximation}}] at (axis cs: 180,0.9) {};
\end{axis}
\end{tikzpicture}
\end{document}