有人知道如何编写一个展示 NRZ 和 ASK 幅度的 Latex 文件,如上图所示?
我确实遇到过这样的代码:
\documentclass{standalone}
\usepackage{tikz-timing}
\begin{document}
\begin{tikztimingtable}[timing/slope=0, scale=2, timing/draw grid, timing/name/.append style={yshift=3.5}, timing/z/.style={black}]
01001110 & LHLLHHHL \\
NRZ & LHLLHHHL \\
RZ & 0.25Z lzh 2{zl} 3{zh} zl 0.25Z \\
\extracode
\makeatletter
\begin{pgfonlayer}{background}
\vertlines[help lines, blue]{}
\horlines[blue, yshift=3.5]{}
\foreach [count=\x] \b in {0,1,0,0,1,1,1,0} {
\node [below,font=\sffamily\bfseries\tiny,inner ysep=2pt] at (\x-.5,+.5) {\b};
}
\end{pgfonlayer}
\end{tikztimingtable}
\end{document}
这产生了我想要的结果,但我无法在蓝色方块内实现波形 ASK。
答案1
各种软件包都允许您绘制阶跃函数和正弦函数。以下是 Ti 的示例钾Z 和isodd
。
\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[stealth-stealth] (0,5) |- (9,0) node[below left]{$t$};
\draw[shift={(0,1.5)}] plot[domain=0:8.5,samples=301,smooth]
(\x,{0.5*isodd(int(\x/2))*sin(360*\x)});
\draw[shift={(0,3)}] plot[domain=0:8.5]
({int(\x+0.5)},{isodd(int(\x/2))});
\path foreach \x in {1,...,4} {foreach \y in {0.5,3.5}
{(2*\x-1,\y)
node{$\pgfmathparse{int(isodd(\x-1))}\pgfmathprintnumber\pgfmathresult$}}};
\end{tikzpicture}
\end{document}
很难说哪个包是最好的,但是使用 Ti钾Z 或 pgfplots 似乎是一个合适的选择。