Desenhando formato de sinal aleatório no tikz?

Desenhando formato de sinal aleatório no tikz?

É possível no tikz - de uma forma simples desenhar um sinal...

Estou interessado em desenhar algo assiminsira a descrição da imagem aqui

A forma do sinal não importa... Só preciso desenhar as setas e o texto entre elas.

Em relação à meta postagem:

Minha intenção com este post nunca foi que alguém me desse a solução completa. Eu estava interessado apenas nas maneiras possíveis de criar um sinal aleatório, que era dado pela solução senoidal ... Vi agora que o título/pergunta pode ter sido enganoso. Desculpe pelos problemas que isso possa ter causado a você.

Responder1

Solução TikZ pura:

insira a descrição da imagem aqui

\documentclass[tikz,
               border=3mm,
               ]{standalone}
\usetikzlibrary{arrows.meta,
                quotes
                }
\begin{document}
    \begin{tikzpicture}[x=16mm,
       every edge/.style = {draw, Straight Barb-Straight Barb},
every edge quotes/.style = {fill=white,font=\footnotesize}
                    ]
\draw[very thick,red, smooth,domain=9:101] plot (\x/10,rand);

\foreach \x in {1, 3, 4, 5, 7, 6, 8, 9, 10}
    \draw[dashed]  (\x,-1.1) -- ++ (0,2.2);

\draw   (3.0,-1.3) edge ["Frame step"] ++ (2,0)
        (5.0,-1.3) edge ["Overlap"] ++ (1,0)
        (1.0,-1.6) edge ["Frame 1"] ++ (3,0)
        (5.0,-1.6) edge ["Frame 3"] ++ (3,0)
        (3.0,-1.9) edge ["Frame 2"] ++ (3,0)
        (7.0,-1.9) edge ["Frame 4"] ++ (3,0);
    \end{tikzpicture}
\end{document}

Responder2

Estou entediado, então aqui vai uma sugestão com a ajuda de pgfplots.

insira a descrição da imagem aqui

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14} 

\begin{document}
\begin{tikzpicture}[
  doublearrow/.style={
    <->, 
    >=latex,
   every node/.style={fill=white,font=\scriptsize}}]
\begin{axis}[
  axis lines=none,
  clip=false,
  width=12cm,
  height=3cm
]
\pgfmathsetseed{1} % to get same output every time
\addplot[black,smooth,domain=0:10] {rnd};
\pgfplotsinvokeforeach{1,3,3.5,5,7,7.5,9}{% draw vertical dotted line at these x-positions
  \draw [densely dotted] (#1,0) -- (#1,1.5);
}

% draw arrows with text
\draw [doublearrow] (1,-0.2) -- node{Frame 1} (3.5,-0.2);
\draw [doublearrow] (3,-0.4) -- node{Frame 2} (5,-0.4);
\end{axis}
\end{tikzpicture}
\end{document} 

E porque eu estava trabalhando nisso enquanto outras respostas eram postadas, apenas com o TikZ. Eu fiz algumas macros que mantêm a largura do quadro, passo, etc., para que você possa modificar facilmente, se necessário. Altere uma macro e todas as setas também se moverão. (Presumo que a largura e o passo do quadro sejam constantes aqui.)

insira a descrição da imagem aqui

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
  doublearrow/.style={
    <->, 
    >=latex,
   every node/.style={fill=white,font=\scriptsize}}]

\pgfmathsetseed{42}
\draw plot[smooth,domain=0:12,samples=25] (\x,rnd);

\pgfmathsetmacro\FrameStart{1}
\pgfmathsetmacro\FrameW{3}
\pgfmathsetmacro\FrameOverlap{0.5}
\pgfmathsetmacro\FrameStep{\FrameW-\FrameOverlap}

\foreach[
  evaluate=\i as \y using {ifthenelse(mod(\i,2)==0,-0.4,-0.8)},
  evaluate=\i as \X using \i*\FrameStep+\FrameStart,
  count=\j
] \i in {0,...,3} {
  \draw [densely dotted] (\X,0) -- (\X,1.5);
  \draw [densely dotted] (\X+\FrameW,0) -- (\X+\FrameW,1.5);
  \draw [doublearrow] (\X,\y) -- node{Frame \j} (\X+\FrameW,\y);
}
\draw [doublearrow] (\FrameStart+\FrameStep,1.3) -- node{Frame step} +(\FrameStep,0);
\draw [doublearrow] (\FrameStart+3*\FrameStep,1) -- node[above=2pt,font=\tiny]{Overlap} +(\FrameOverlap,0);

\end{tikzpicture}
\end{document} 

Responder3

Fiz esta solução com base na sugestão do @Dr.ManuelKuehner:

\begin{figure}[H]
    \centering
    \begin{tikzpicture}
        % Frame length: 3
        % Overlap length:0.6
        % Frame start sections: 0 - 1.4 - 2.8 - 4.2
        % Frame end sections: 2 - 3.4 - 4.8 - 4.2

        \draw[->]   (-1,0) -- ++ (12,0) node[right] {Time}; %X-axis line
        \draw[thick, blue] plot[domain=0:11.7*pi, samples=60]  (\x/pi,{sin(0.9*\x r) + sin(0.42*\x r)}); %sine wave

        \draw[densely dashed]   (0,-1.5) -- + (0,3.0)      (3,-1.5) -- + (0,3.6);% frame 1 
        \draw[<->]      (0,-1.3) -- node[below] {Frame 1} + (3,0);

        \draw[densely dashed]   (2.4,-1.1) -- + (0,3.3)      (5.4,-1.1) -- + (0,4.1);
        \draw[<->]      (2.4,2.1) -- node[above] {Overlap} + (0.6,0);
        \draw[<->]      (2.4,-2.1) -- node[below] {Frame 2} + (3,0);


        \draw[densely dashed]   (4.8,-1.5) -- + (0,4.4)      (7.8,-1.5) -- + (0,3.6);
        \draw[<->]      (4.8,2.9) -- node[above] {Overlap} + (0.6,0);
        \draw[<->]      (4.8,-1.3) -- node[below] {Frame 3} + (3,0);


        \draw[densely dashed]   (7.2,-1.1) -- + (0,3.3)      (10.2,-1.1) -- + (0,3.3);
        \draw[<->]      (7.2,2.1) -- node[above] {Overlap} + (0.6,0);
        \draw[<->]      (7.2,-2.1) -- node[below] {Frame 4} + (3,0);

    \end{tikzpicture}  
\end{figure}

informação relacionada