信号内的箭头(时序图)

信号内的箭头(时序图)

我想绘制曼彻斯特代码,并且需要箭头来更好地显示信号内的下降和上升标志,如下所示:

在 LaTeX 中,可以使用包timing。是否可以使用包在时序图中绘制箭头timing?如果不行,还有什么其他方法可以实现?

答案1

有一个tikz基于 的用于绘制时序图的包,称为tikz-timing。使用它,逻辑级别可以用字母表示,例如 H 表示高,L 表示低。对于您的情况,我建议将时钟字符 C 与库一起使用clockarrows。我知道您的信号不是时钟,但此包中的其他信号没有箭头。C 字母每次使用时都会改变其逻辑级别。小写时其长度只有宽度的一半。您的信号可以简单地写成cCCccCccCCc,除了我刚刚发现的一些起始位置问题。

\documentclass{article}

\usepackage{tikz-timing}
\usetikztiminglibrary{clockarrows}

\begin{document}

\begin{tikztimingtable}[scale=2,timing/.cd,
        c/dual arrows,c/arrow tip=latex,
        c/arrow pos=.7,
        metachar={v}{[timing/c/no arrows]c[timing/c/dual arrows]},
        slope=0]
    \shortstack[l]{Manchester-Codierung:\\(bi-phase)} 
      &h 0c0h0l 0c CCcvCcvCCc \\
 \extracode
   \begin{pgfonlayer}{background}
       \vertlines[help lines,brown]{}
       \foreach [count=\x] \b in {1,0,1,1,0,0,1,0} {
            \node [below,font=\sffamily\bfseries\tiny,inner ysep=2pt] at (\x-.5,0) {\b};
       }
   \end{pgfonlayer}
\end{tikztimingtable}

\end{document}

结果

答案2

你可以用 tikz 做你想做的事。我使用以下代码绘制了一张与示例中类似的粗略图片

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    %red vertical lines
    \foreach \x in {0,1,...,8} {
        \draw[color=red] (\x,0.5) -- +(0,3);  };

    %black lines with arrows
    \draw[very thick,->] (0,2.5) -- +(0.5,0) -- +(0.5,-0.5);
    \draw[very thick,->] (0.5,2) -- +(0,-0.5) -- +(1,-0.5) -- +(1,0);
    \draw[very thick,->] (1.5,2) -- +(0,0.5) -- +(1,0.5) -- +(1,0);
    \draw[very thick,->] (2.5,2) -- +(0,-0.5) -- +(0.5,-0.5) -- +(0.5,0.5) -- +(1,0.5) --+(1,0);
    \draw[very thick,->] (3.5,2) -- +(0,-0.5) -- +(1,-0.5) -- +(1,0);
    \draw[very thick,->] (4.5,2) -- +(0,0.5) -- +(0.5,0.5) -- +(0.5,-0.5) -- +(1,-0.5) -- +(1,0);
    \draw[very thick,->] (5.5,2) -- +(0,0.5) -- +(1,0.5) -- +(1,0);
    \draw[very thick,->] (6.5,2) -- +(0,-0.5) -- +(1,-0.5) -- +(1,0);
    \draw[very thick] (7.5,2) -- +(0,0.5) -- +(0.5,0.5);

    %numbers
    \path (0.5,1) node{1};
    \path (1.5,1) node{0};
    \path (2.5,1) node{1};
    \path (3.5,1) node{1};
    \path (4.5,1) node{0};
    \path (5.5,1) node{0};
    \path (6.5,1) node{1};
    \path (7.5,1) node{0};
\end{tikzpicture}
\end{document}

产生

在此处输入图片描述

当然,上面的代码效率不高,可以改进,但这会让你了解 TiKz 的工作原理,这样如果你无法找到具有时间解决方案,就可以用这个来解决问题。

相关内容