
Eu tenho uma onda senoidal totalmente retificada e estou tentando colocar uma forma de onda dente de serra em cima dela, como na imagem abaixo,
Originalmente, eu tinha uma solução confusa, mas não era muito boa, tenho uma onda senoidal tex que estou tentando colocá-la abaixo.
\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}
Responder1
Você pode usar 1 - 1/(3*180)*mod(x+90,180)
para traçar uma onda dente de serra. mod(x,180)
repete todas 180
as unidades, 1/(3*180)
dimensiona os valores ( 1/180
resultaria em uma onda dente de serra indo de 0
até 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}
Responder2
Esta é uma solução possível onde foreach
o loop é usado com uma aproximação de linha com forma de onda dente de serra.
se quisermos que a linha toque a curva sem penetrar na onda senoidal, remova a linha vertical e mude \arch
a definição para 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}