diff options
author | Karl Berry <karl@freefriends.org> | 2011-03-10 00:08:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-03-10 00:08:35 +0000 |
commit | e240dc11a49f89d14320be45ca0f3ff0f9fcd5f9 (patch) | |
tree | d21c0b2687d69e772013536cf5f6e969bec44c2b /Master/texmf-dist | |
parent | c29f8f7a40881911a631e1496c7b650634748d77 (diff) |
pst-sigsys (9mar11)
git-svn-id: svn://tug.org/texlive/trunk@21667 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-sigsys/Changes | 32 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-sigsys/README | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.pdf | bin | 86412 -> 494189 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.tex | 458 | ||||
-rw-r--r-- | Master/texmf-dist/source/generic/pst-sigsys/Makefile | 68 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex | 34 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty | 2 |
7 files changed, 303 insertions, 297 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-sigsys/Changes b/Master/texmf-dist/doc/generic/pst-sigsys/Changes index 17e83c097c8..c164b1c90f7 100644 --- a/Master/texmf-dist/doc/generic/pst-sigsys/Changes +++ b/Master/texmf-dist/doc/generic/pst-sigsys/Changes @@ -1,4 +1,6 @@ -v 1.31 2011-03-04 - \ifnodealign changed to \ifPST@NODEALIGN +v 1.4 2011-03-07: - 1. The codes for \pstaxeslabels and \pspole are updated. + 2. The new key afac is added to the \psadaptive macro. + v 1.3 2010-06-18 - 1. The tick angle is either directly specified by the user or set by the angle key when unspecified. 2. The ticklength key refers to the entire length of a tick, @@ -11,20 +13,20 @@ v 1.3 2010-06-18 - 1. The tick angle is either directly specified by the user o 6. The new keys framewidth, frameheight, and FillColor are introduced. -v 1.2 2010-01-15 - 1. Added macros \pstick, \psTick, \pssignal, \ldotsnode, \ncstar,
- \psBraceUp, \psBraceDown, \psBraceLeft, and \psBraceRight.
- 2. Added the keys gratioWh, gratioWv, gratioHh, and gratioHv.
- 3. Added the style RoundCorners.
- 4. Updated macros \pscircleop, \psframeop, \psldots, and \nclist.
- 5. Removed all package options (notelegant and pstadd).
- 6. Removed the global round-cornering settings.
- 7. Removed macros \pshtick, \psvtick, \pshTick, \psvTick,
- \RE, \IM, \sRE, and \sIM.
- 8. Removed the styles BraceUp, BraceDown, BraceLeft, and BraceRight.
+v 1.2 2010-01-15 - 1. Added macros \pstick, \psTick, \pssignal, \ldotsnode, \ncstar, + \psBraceUp, \psBraceDown, \psBraceLeft, and \psBraceRight. + 2. Added the keys gratioWh, gratioWv, gratioHh, and gratioHv. + 3. Added the style RoundCorners. + 4. Updated macros \pscircleop, \psframeop, \psldots, and \nclist. + 5. Removed all package options (notelegant and pstadd). + 6. Removed the global round-cornering settings. + 7. Removed macros \pshtick, \psvtick, \pshTick, \psvTick, + \RE, \IM, \sRE, and \sIM. + 8. Removed the styles BraceUp, BraceDown, BraceLeft, and BraceRight. + + +v 1.1 2009-04-01 - 1. Added macros \pshtick, \psvtick, \pshTick, and \psvTick. + 2. Updated macros \psusampler and \psdsampler. -
-v 1.1 2009-04-01 - 1. Added macros \pshtick, \psvtick, \pshTick, and \psvTick.
- 2. Updated macros \psusampler and \psdsampler.
-
v 1.0 2009-01-15 - The first version of the package.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-sigsys/README b/Master/texmf-dist/doc/generic/pst-sigsys/README index c7da720fdfd..563268ef4d9 100644 --- a/Master/texmf-dist/doc/generic/pst-sigsys/README +++ b/Master/texmf-dist/doc/generic/pst-sigsys/README @@ -1,4 +1,4 @@ -pst-sigsys package 2010/06/18 v1.3 +pst-sigsys package 2011/07/03 v1.4 ----------------------------------- This package is a collection of useful macros for disciplines related to signal processing. It defines macros for plotting a sequence of numbers, drawing the pole-zero diagram of a @@ -9,7 +9,7 @@ a list of nodes, and connecting a list of nodes to one node using any node-conne macro. The author welcomes all comments for further improvements of this package and suggestions for adding new macros or features. -Copyright (C) 2010, by Farshid Delgosha <fdelgosha@gmail.com> +Copyright (C) 2011, by Farshid Delgosha <fdelgosha@gmail.com> CTAN: graphics/pstricks/contrib/pst-sigsys @@ -30,4 +30,4 @@ License: license is in http://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX - version 2005/12/01 or later. + version 2005/12/01 or later.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.pdf b/Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.pdf Binary files differindex f7658e32aad..1c5d2014601 100644 --- a/Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.pdf +++ b/Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.tex b/Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.tex index 205b52698c6..79fcb9f8be4 100644 --- a/Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.tex +++ b/Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.tex @@ -2,7 +2,7 @@ %% This is pst-sigsys documentation. %% Farshid Delgosha %% fdelgosha@gmail.com -%% 06/18/2010 +%% 03/07/2011 %%==================================== \documentclass[11pt,makeidx]{article} @@ -11,10 +11,8 @@ \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[cmex10]{amsmath} -\usepackage{amssymb} -\usepackage{array} -\usepackage{fancyhdr} -\usepackage{caption} +\usepackage{amssymb,array} +\usepackage{fancyhdr,caption} \usepackage[margin=1in,dvips]{geometry} \usepackage{xspace} \usepackage{subfig} @@ -24,11 +22,8 @@ \usepackage[table]{xcolor} \usepackage{multido} \usepackage{xkeyval} -\usepackage{pst-sigsys} -\usepackage{pst-plot} -\usepackage{pstricks-add} +\usepackage{pst-sigsys,pst-plot,pstricks-add} \usepackage{multicol} -\usepackage{bera} %%=== showexpl ====================================================== @@ -124,14 +119,14 @@ %%=== new macros ==================================================== \def\PSTSigSys{\texttt{pst-sigsys}\xspace} -\def\CMDn#1{\texttt{\textbackslash #1}} +\def\CMDn#1{\mbox{\texttt{\textbackslash #1}}} \def\CMDidx#1{\index{#1@\CMDn{#1}}} \def\CMD#1{\CMDn{#1}\CMDidx{#1}} -\def\rmit#1{\textrm{\textit{#1}}} -\def\KWDn#1{\texttt{#1}} +\def\rmit#1{\mbox{\textrm{\textit{#1}}}} +\def\KWDn#1{\mbox{\texttt{#1}}} \def\KWDm#1{\mathtt{#1}} \def\KWD#1{\KWDn{#1}\index{#1@\texttt{#1}}} -\def\PKGn#1{\texttt{#1}} +\def\PKGn#1{\mbox{\texttt{#1}}} \def\PKG#1{\PKGn{#1}\index{Package!#1@\texttt{#1}}} \def\Keys{\colorbox{TealBlue!20}{[\rmit{keys}]}\kern1pt} \def\Arrows{\colorbox{TealBlue!20}{\{\rmit{arrows}\}}\kern1pt} @@ -140,6 +135,7 @@ \def\Node{\@ifstar{\rmit{node}\xspace}{\{\rmit{node}\}}} \def\NodeA{\@ifstar{\rmit{node A}\xspace}{\{\rmit{node A}\}}} \def\NodeB{\@ifstar{\rmit{node B}\xspace}{\{\rmit{node B}\}}} +\def\NodeC{\@ifstar{\rmit{node C}\xspace}{\{\rmit{node C}\}}} \def\Stuff{\@ifstar{\rmit{stuff}\xspace}{\{\rmit{stuff}\}}} \def\List{\@ifstar{\rmit{list}\xspace}{\{\rmit{list}\}}} % @@ -177,8 +173,8 @@ \def\MarkDistInner@i{\@ifnextchar({\MarkDistInner@ii{0}}{\MarkDistInner@ii}} \def\MarkDistInner@ii#1(#2)#3[#4]#5{{% \use@par% -\rput(#2){\pnode(-#3;#1){MD@A}}% -\rput(#2){\pnode(#3;#1){MD@B}}% +\nodexn{(#2)+(-#3;#1)}{MD@A}% +\nodexn{(#2)+(#3;#1)}{MD@B}% \ncline{|<*->|*}{MD@A}{MD@B}% \ifx#4a\relax% \naput[nrot=:U]{#5}% @@ -280,7 +276,7 @@ \title{The \PSTSigSys Package} \author{Farshid Delgosha} \email{fdelgosha@gmail.com} -\date{June 18, 2010} +\date{March $\text{7}^\text{th}$, 2011} \thispagestyle{plain} @@ -318,6 +314,8 @@ Section~\ref{sec:change log} keeps a change log from previous versions of the pa \label{sec:change log} \begin{itemize}[label=$\scriptscriptstyle\blacksquare$] +\item \textbf{Version 1.4 (03/07/2011):} The code for the \CMDn{psaxeslabels} macro is updated to accommodate for cases when one of the two axes lines has length zero. The code for \CMDn{pspole} is updated due to the new changes in the \PKG{pst-node} package. The new key \KWDn{afac} is added to the \CMDn{psadaptive} macro. + \item \textbf{Version 1.3 (06/18/2010):} In the \CMDn{pstick} and \CMDn{psTick} macros, the tick angle is either directly specified by the user or set by the \KWDn{angle} key when unspecified. The \KWDn{ticklength} key refers to the entire length of a tick, not half of it. The new key \KWDn{killzero} is added to the \CMDn{psstem} macro. In the \CMDn{psldots} and \CMDn{ldotsnode} macros, the angle of dots is either directly specified by the user or set by the \KWDn{angle} key when unspecified. Two new macros \CMDn{psadaptive} and \CMDn{psknob} are added. The new keys \KWDn{framewidth}, \KWDn{frameheight}, and \KWDn{FillColor} are introduced. \item \textbf{Version 1.2 (01/15/2010):} Five new macros \CMDn{pstick}, \CMDn{psTick}, \CMDn{pssignal}, \CMDn{ldotsnode}, and \CMDn{ncstar} are added. The macros \CMDn{pshtick}, \CMDn{psvtick}, \CMDn{pshTick}, and \CMDn{psvTick} are not available any longer since their functionalities are carried out by the newly defined macros \CMDn{pstick} and \CMDn{psTick}. Codes for the macros \CMDn{pscircleop}, \CMDn{psframeop}, \CMDn{psldots}, and \CMDn{nclist} are updated. Four new keys \KWDn{gratioWh}, \KWDn{gratioWv}, \KWDn{gratioHh}, and \KWDn{gratioHv} are added that allow frames with edges proportional by the golden ratio. The global round-cornering settings are removed because of their undesired effects in other packages. Hence, the option \KWDn{notelegant} is not available any longer. Instead, the new style \KWDn{RoundCorners} is introduced. The styles \KWDn{BraceUp}, \KWDn{BraceDown}, \KWDn{BraceLeft}, and \KWDn{BraceRight} are not available any longer. Instead, the macros \CMDn{psBraceUp}, \CMDn{psBraceDown}, \CMDn{psBraceLeft}, and \CMDn{psBraceRight} are defined. The option \KWDn{pstadd} is not available any longer. If the package \PKGn{pstricks-add} is loaded, the relevant styles are automatically defined. The macros \CMDn{RE}, \CMDn{IM}, \CMDn{sRE}, and \CMDn{sIM} are not available any longer because of their irrelevance to the objectives of the package. @@ -344,12 +342,12 @@ In this section, we introduce all the macros defined by the \PSTSigSys package. \CMD{psaxeslabels}\Keys\Arrows($x_0, y_0$)($x_1, y_1$)($x_2, y_2$)\{\rmit{x-label}\}\{\rmit{y-label}\} \end{syntax} -This macro is a simplified version of the \CMDn{psaxes} macro defined by the \PKG{pst-plot} package \cite{pst-plot}. As depicted in Figure~\ref{fig:psaxeslabels}, the \CMD{psaxeslabels} draws two straight lines, one vertical and one horizontal, that intersect at the point ($x_0, y_0$). These lines are enclosed by a virtual rectangular box with the lower left corner at ($x_1, y_1$) and the upper right corners at ($x_2, y_2$). The two lines are labeled by \rmit{x-label} and \rmit{y-label}, respectively. Similar to the \CMDn{psaxes} macro, the use of \rmit{arrows} is optional. The keys specific to the \CMD{psaxeslabels} are summarized in Table~\ref{tab:psaxeslabels}. - +\noindent +This macro is a simplified version of the \CMDn{psaxes} macro defined by the \PKG{pst-plot} package \cite{pst-plot}. As depicted in Figure~\ref{fig:psaxeslabels}, the \CMD{psaxeslabels} draws two straight lines, one vertical and one horizontal, that intersect at the point ($x_0, y_0$). These lines are enclosed by a virtual rectangular box with the lower left corner at ($x_1, y_1$) and the upper right corner at ($x_2, y_2$). The two lines are labeled \rmit{x-label} and \rmit{y-label}, respectively. Similar to the \CMDn{psaxes} macro, the use of \rmit{arrows} is optional. The keys specific to the \CMD{psaxeslabels} are summarized in Table~\ref{tab:psaxeslabels}. %%======================================================================= \begin{figure}[ht!] \centering -\begin{pspicture}[showgrid=false](-2,-1)(4,3) +\begin{pspicture}[showgrid=false](-2,-1)(3.5,3) % \psgrid[griddots=10,subgriddiv=1,gridlabels=0pt](0,0)(-2,-1)(3,2) \psaxeslabels(0,0)(-2,-1)(3,2){\rmit{x-label}}{\rmit{y-label}} @@ -380,19 +378,30 @@ ylpos & {\normalfont\ttfamily l | r} & \texttt{r} & Position of the $y$-l %%======================================================================= -\begin{LTXexample}[width=7cm] -\begin{pspicture}[showgrid=true](-2,-1)(2,1) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}[showgrid](-2,-1)(2,1) \psaxeslabels(0,0)(-2,-1)(2,1){$\Re$}{$\Im$} \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=7cm] -\begin{pspicture}[showgrid=true](-2,-1)(2,2) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}[showgrid](-2,-1)(2,2) \psset{linecolor=blue,xlpos=t,ylpos=l} \psaxeslabels{->}(-1,0)(-2,-1)(2,2){$x$}{$y$} \end{pspicture} \end{LTXexample} +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}[showgrid](-1,0)(3,2) + \psaxeslabels{->}(0,0)(0,0)(3,2){}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}[showgrid](-2,-1)(2,1) + \psaxeslabels{->}(0,0)(-2,0)(2,0){$x$}{} +\end{pspicture} +\end{LTXexample} @@ -403,12 +412,12 @@ ylpos & {\normalfont\ttfamily l | r} & \texttt{r} & Position of the $y$-l \CMD{pstick}\Keys\Angle\Coor\{\rmit{ticklength}\} \end{syntax} +\noindent As depicted in Figure~\ref{fig:pstick}, the \CMD{pstick} macro draws a straight line with length \rmit{ticklength} centered at \Coor* and angled \rmit{angle} with respect to the horizontal axis. If the optional parameter \rmit{angle} is absent, then the angle is determined using the \KWD{angle} key. This macro could be used for adding tick lines to coordinate axes in addition to many other usages. The keys specific to the \CMD{pstick} are summarized in Table~\ref{tab:pstick}.\\[\baselineskip] - %%======================================================================= \begin{figure}[ht!] \centering -\begin{pspicture}[showgrid=false](-2,-1)(2,1.5) +\begin{pspicture}[showgrid=false](-2.5,-1)(2.5,1.5) % \pstick[style=Dash,linecolor=gray](0,0){4} \pstick{30}(0,0){4} @@ -438,8 +447,8 @@ angle & num & 0 & Tick angle \\ \end{table} %%======================================================================= -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-2,-1)(3,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](-2,-1)(3,2) \psaxeslabels(0,0)(-2,-1)(3,2){$x$}{$y$} \pstick[linecolor=red](0,1){.2} \pstick[arrows=|-|]{90}(-1,0){.5} @@ -459,6 +468,7 @@ angle & num & 0 & Tick angle \\ \CMD{psTick}\Keys\Angle\Coor \end{syntax} +\noindent Similar to \CMD{pstick}, the \CMD{psTick} macro draws a straight line centered at \Coor* and angled \rmit{angle} with respect to the horizontal axis. The only difference is that the tick length is specified by the \KWD{ticklength} key (Table~\ref{tab:psTick}). This macro is useful when multiple ticks are to be drawn all with the same length. %%======================================================================= @@ -473,8 +483,8 @@ angle & num & 0 & Tick angle \\ \end{table} %%======================================================================= -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-2,-1)(3,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](-2,-1)(3,2) \psaxeslabels(0,0)(-2,-1)(3,2){$x$}{$y$} \psset{ticklength=.5} \psTick[linecolor=red](0,1) @@ -495,8 +505,8 @@ angle & num & 0 & Tick angle \\ \CMD{pssignal}\Keys\Coor\Node\Stuff \end{syntax} +\noindent This macro places \Stuff* inside an invisible frame centered at \Coor* and makes that a node labeled \Node* (Figure~\ref{fig:pssignal}). The separation of the frame and the \Stuff* is determined by the key \KWD{signalsep} (Table~\ref{tab:pssignal}). - %%======================================================================= \begin{figure}[ht!] \centering @@ -528,8 +538,8 @@ signalsep & num[dimen] & $5$pt & Frame separation \\ %%======================================================================= -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-2,-1)(2,1) +\begin{LTXexample}[width=6cm] +\begin{pspicture}[showgrid](-2,-1)(2,1) \pssignal(-1.5,.5){x}{$x[n]$} \pssignal[signalsep=.5](1.5,-.5){y}{$y[n]$} \ncline{x}{y} @@ -547,7 +557,8 @@ signalsep & num[dimen] & $5$pt & Frame separation \\ \CMD{psstem}\Keys\List \end{syntax} -The \CMD{psstem} macro plots the sequence defined by \List* that is a comma-separated list of numbers. As shown in Figure~\ref{subfig:psstem:sample}, if $\List* = n_1, n_2, n_3, \dotsc$, then \CMD{psstem} draws vertical lines (stems) at $x_0, x_0 + \Delta, x_0 + 2\Delta, \dotsc$ on the horizontal axis with heights $n_1, n_2, n_3, \dotsc$, respectively. \emph{It is important to remember that both $x_0$ and $\Delta$ must be integers.}\footnote{If you need to use non-integer values, then use the \KWD{xunit} key to arbitrarily choose any real value.} In case their values are not explicitly given, they are assumed $x_0 = 0$ and $\Delta = 1$. The stem ends are determined by the \KWD{stemhead} key. The \CMD{psstem} macro is also capable of numerically tagging the stems. As depicted in Figure~\ref{subfig:psstem:tag}, the tag of every stem is placed either below or above it depending on whether the corresponding number in the sequence is nonnegative (positive or zero) or negative, respectively. The distance of tags to stems is determined by the \KWD{labelsep} key. In some cases (e.g., when the stemhead is \texttt{>}), it is desirable to remove stems with zero heights. The key \KWD{killzero}, when used, removes such stems. The keys specific to the \CMD{psstem} macro are summarized in Table~\ref{tab:psstem}. +\noindent +The \CMD{psstem} macro plots the sequence defined by \List*, which is a comma-separated list of numbers. As shown in Figure~\ref{subfig:psstem:sample}, if $\List* = n_1, n_2, n_3, \dotsc$, then \CMD{psstem} draws vertical lines (stems) at $x_0, x_0 + \Delta, x_0 + 2\Delta, \dotsc$ on the horizontal axis with heights $n_1, n_2, n_3, \dotsc$, respectively. \emph{It is important to remember that both $x_0$ and $\Delta$ must be integers.}\footnote{If you must use non-integer values, utilize the \KWD{xunit} key to arbitrarily choose any real value.} In case their values are not explicitly given, they are assumed $x_0 = 0$ and $\Delta = 1$. The stem ends are determined by the \KWD{stemhead} key. The \CMD{psstem} macro is also capable of numerically tagging the stems. As depicted in Figure~\ref{subfig:psstem:tag}, the tag of every stem is placed either below or above it depending on whether the corresponding number in the sequence is nonnegative (positive or zero) or negative, respectively. The distance of tags to stems is determined by the \KWD{labelsep} key. In some cases (e.g., when the stemhead is \texttt{>}), it is desirable to remove zero-height stems. The key \KWD{killzero}, when used, removes such stems. The keys specific to the \CMD{psstem} macro are summarized in Table~\ref{tab:psstem}. %%======================================================================= \begin{figure}[ht!] @@ -623,22 +634,22 @@ killzero & Boolean & \texttt{false} & Removing zero-height stems %%======================================================================= -\begin{LTXexample}[width=7.75cm] -\begin{pspicture}[showgrid=true](0,-1)(6,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](0,-1)(6,2) \psstem[style=Stem]{0,.5,1,-1,2} \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=7.75cm] -\begin{pspicture}[showgrid=true](0,-1)(6,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](0,-1)(6,2) \psset{style=Stem,linecolor=blue,% stemtagformat=\color{red}\scriptstyle} \psstem[stemhead=>,stemtag](1,2){-1,1,2} \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=7.75cm] -\begin{pspicture}[showgrid=true](0,-1)(6,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](0,-1)(6,2) \psset{style=Stem,stemtag} \psstem[linecolor=red](0,2){1,-.75,1} \psset{stemhead=o} @@ -647,8 +658,8 @@ killzero & Boolean & \texttt{false} & Removing zero-height stems \end{LTXexample} -\begin{LTXexample}[width=7.75cm] -\begin{pspicture}[showgrid=true](5,1) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](5,1) \psset{stemhead=>} \psstem{1,0,1} \psset{linecolor=red,killzero} @@ -657,15 +668,15 @@ killzero & Boolean & \texttt{false} & Removing zero-height stems \end{LTXexample} -\begin{LTXexample}[width=7.75cm] -\begin{pspicture}[showgrid=true](5,1) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](5,1) \psstem[xunit=.5]{1,.5,1,.5,1,.5,1,.5,1} \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=7.75cm] -\begin{pspicture}[showgrid=true](5,3) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](5,3) \psstem[stemhead=*](0,1){1} \psstem[stemhead=o](1,1){1} \psstem[stemhead=>](2,1){1} @@ -693,7 +704,8 @@ killzero & Boolean & \texttt{false} & Removing zero-height stems \CMD{pszero}\Keys\Coor\Node \end{syntax} -This macro is used to generate a circle node centered at \Coor* and labeled \Node* that represents a zero of a system. It could also be used to generate several circles, all centered at \Coor*, representing high order zeros as shown in Figure~\ref{fig:pszero}. The radius of innermost circle is \KWD{zeroradius}, and it is incremented by \KWD{zeroradiusinc} for high order zeros. The line-width of all circles is determined by the \KWD{zerowidth} key. The key \KWD{order} determines the order of the zero. The key \KWD{scale} can be used to scale up or down the radius of the innermost circle, the radius increment, and the line-width of all circles. Table~\ref{tab:pszero} summarizes keys corresponding to \CMD{pszero} and their default values. +\noindent +This macro is used to generate a circle node centered at \Coor* and labeled \Node* that represents a zero of a system. It could also be used to generate several circles, all centered at \Coor*, representing high order zeros as shown in Figure~\ref{fig:pszero}. The radius of innermost circle is \KWD{zeroradius}, and it is incremented by \KWD{zeroradiusinc} for high order zeros. The line-width of all circles is determined by the \KWD{zerowidth} key. The key \KWD{order} determines the order of the zero, i.e., the number of circles. The key \KWD{scale} can be used to scale up or down the radius of the innermost circle, the radius increment, and the line-width of all circles. Table~\ref{tab:pszero} summarizes keys corresponding to \CMD{pszero} and their default values. %%======================================================================= \begin{figure}[ht!] @@ -733,19 +745,25 @@ scale & num & $1$ & Scale factor \\ \end{table} %%======================================================================= -\begin{LTXexample}[width=7cm] -\begin{pspicture}[showgrid=true](6,2) - \pszero(0,1){z1} \nput{-90}{z1}{$z_1$} - \pszero[linecolor=red](.75,1){z2} - \pszero[zerowidth=2pt](1.5,1){z3} - \pszero[zeroradius=.25](2.5,1){z4} - \pszero[order=3](3.5,1){z5} - \nput{-90}{z5}{$z_5$} - \pszero[zeroradiusinc=.15,order=2](4.5,1){z6} - \pszero[scale=3](5.5,1){z7} +\begin{LTXexample}[width=7.5cm] +\begin{pspicture}[showgrid](5,2) + \pszero(1,1){z1} + \nput{-90}{z1}{$z_1$} + \pszero[linecolor=red](2,1){z2} + \pszero[zerowidth=2pt](3,1){z3} + \pszero[zeroradius=.25](4,1){z4} \end{pspicture} \end{LTXexample} +\begin{LTXexample}[width=7.5cm] +\begin{pspicture}[showgrid](4,2) + \pszero[order=3](1,1){z5} + \nput{-90}{z5}{$z_5$} + \pszero[zeroradiusinc=.15,% + order=2](2,1){z6} + \pszero[scale=3](3,1){z7} +\end{pspicture} +\end{LTXexample} @@ -757,6 +775,7 @@ scale & num & $1$ & Scale factor \\ \CMD{pspole}\Keys\Coor\Node \end{syntax} +\noindent This macro is used to generate a cross node, as shown in Figure~\ref{fig:pspole}, centered at \Coor* and labeled \Node* that represents the pole of a system. The length and the line width of the cross are controlled by the \KWD{polelength} and \KWD{polewidth} keys, respectively. The key \KWD{scale} can be used to scale up or down the pole line-width and the pole length. The keys corresponding to the \CMD{pspole} macro are summarized in Table~\ref{tab:pspole}. %%======================================================================= @@ -795,8 +814,9 @@ scale & num & $1$ & Scale factor \\ %%======================================================================= \begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](6,2) - \pspole(1,1){p1} \nput{-90}{p1}{$p_1$} +\begin{pspicture}[showgrid](6,2) + \pspole(1,1){p1} + \nput{-90}{p1}{$p_1$} \pspole[linecolor=blue](2,1){p2} \pspole[polewidth=2pt](3,1){p3} \pspole[polelength=.5](4,1){p4} @@ -814,7 +834,8 @@ scale & num & $1$ & Scale factor \\ \CMD{pscircleop}\Keys\Coor\Node \end{syntax} -This macro draws a cross inside a circle that are both centered at \Coor*. Then, it turns the circle into a node labeled \Node* as shown in Figure~\ref{fig:pscircleop}. The length of the cross and its line-width are controlled by the \KWD{oplength} and \KWD{opwidth} keys, respectively. The line-width of the enclosing circle is separately controlled by the \KWD{linewidth} key. The distance between the circle and the cross is determined by the \KWD{opsep} key. The type of operation (whether plus or times) is controlled by the \KWD{operation} key. Another way of determining the operation inside the circle is through the key \KWD{angle} that determines the angle of the cross. The key \KWD{scale} can be used to scale up or down the cross line-width, the cross length, the separation between the cross and the circle, and the circle line-width. The keys corresponding to the \CMD{pscircleop} macro are summarized in Table~\ref{tab:pscircleop and psframeop}. +\noindent +This macro draws a cross inside a circle. Both the circle and the cross are centered at \Coor*. Then, it turns the circle into a node labeled \Node* as shown in Figure~\ref{fig:pscircleop}. The length of the cross and its line-width are controlled by the \KWD{oplength} and \KWD{opwidth} keys, respectively. The line-width of the enclosing circle is separately controlled by the \KWD{linewidth} key. The distance between the circle and the cross is determined by the \KWD{opsep} key. The type of operation (whether plus or times) is controlled by the \KWD{operation} key. Another way of determining the operation inside the circle is through the key \KWD{angle} that determines the angle of the cross. The key \KWD{scale} can be used to scale up or down the cross line-width, the cross length, the separation between the cross and the circle, and the circle line-width. The keys corresponding to the \CMD{pscircleop} macro are summarized in Table~\ref{tab:pscircleop and psframeop}. %%======================================================================= \begin{figure}[ht!] @@ -858,16 +879,21 @@ scale & num & $1$ & Scale fact %%======================================================================= -\begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](6,2) - \pscircleop(.5,1){op1} - \pscircleop[opwidth=2pt](1.25,1){op2} - \pscircleop[oplength=.25](2,1){op3} - \pscircleop[opsep=0](2.75,1){op4} - \pscircleop[operation=times](3.5,1){op5} - \pscircleop[angle=20](4.25,1){op6} +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](5,2) + \pscircleop(1,1){op1} + \pscircleop[opwidth=2pt](2,1){op2} + \pscircleop[oplength=.25](3,1){op3} + \pscircleop[opsep=0](4,1){op4} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](5,2) + \pscircleop[operation=times](1,1){op5} + \pscircleop[angle=20](2,1){op6} \psset{fillstyle=solid,fillcolor=gray!50} - \pscircleop[scale=2.5](5.5,1){op7} + \pscircleop[scale=2.5](4,1){op7} \end{pspicture} \end{LTXexample} @@ -880,22 +906,27 @@ scale & num & $1$ & Scale fact \CMD{psframeop}\Keys\Coor\Node \end{syntax} +\noindent This macro is very similar to the \CMD{pscircleop} macro with the same keys as in Table~\ref{tab:pscircleop and psframeop}. The only difference is that the operation is enclosed in a square frame rather than a circular one. -\begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](6,2) - \psframeop(.5,1){op1} - \psframeop[opwidth=2pt](1.25,1){op2} - \psframeop[oplength=.25](2,1){op3} - \psframeop[opsep=0](2.75,1){op4} - \psframeop[operation=times](3.5,1){op5} - \psframeop[angle=20](4.25,1){op6} - \psset{fillstyle=solid,fillcolor=blue!20} - \psframeop[scale=2.5](5.5,1){op7} +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](5,2) + \psframeop(1,1){op1} + \psframeop[opwidth=2pt](2,1){op2} + \psframeop[oplength=.25](3,1){op3} + \psframeop[opsep=0](4,1){op4} \end{pspicture} \end{LTXexample} +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](5,2) + \psframeop[operation=times](1,1){op5} + \psframeop[angle=20](2,1){op6} + \psset{fillstyle=solid,fillcolor=blue!20} + \psframeop[scale=2.5](4,1){op7} +\end{pspicture} +\end{LTXexample} @@ -905,7 +936,8 @@ This macro is very similar to the \CMD{pscircleop} macro with the same keys as i \CMD{psdisk}\Keys\Coor\{\rmit{radius}\} \end{syntax} -This macro draws a solid disk centered at \Coor* with radius \rmit{radius} as depicted in Figure~\ref{fig:psdisk}. The fill color is specified by the \KWD{fillcolor} key. This macro is used to shade the region of convergence of a system in the $z$ plane. +\noindent +This macro is used to shade the region of convergence of a system in the $z$ plane. It draws a solid disk centered at \Coor* with radius \rmit{radius} as depicted in Figure~\ref{fig:psdisk}. The fill color is specified by the \KWD{fillcolor} key. %%======================================================================= \begin{figure}[ht!] @@ -927,10 +959,10 @@ This macro draws a solid disk centered at \Coor* with radius \rmit{radius} as de %%======================================================================= -\begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](5,2) +\begin{LTXexample}[width=7cm] +\begin{pspicture}[showgrid](5,2) \psdisk[fillcolor=red](1,1){.5} - \psdisk[fillcolor=blue](3,1){1} + \psdisk[fillcolor=blue!50](3,1){1} \end{pspicture} \end{LTXexample} @@ -943,7 +975,8 @@ This macro draws a solid disk centered at \Coor* with radius \rmit{radius} as de \CMD{psring}\Keys\Coor\{\rmit{inner-radius}\}\{\rmit{outer-radius}\} \end{syntax} -This macro draws a solid ring centered at \Coor* with inner radius \rmit{inner-radius} and outer radius \rmit{outer-radius} as shown in Figure~\ref{fig:psring}. The fill color is specified by the \KWD{fillcolor} key. This macro is used to shade the region of convergence of a system in the $z$ plane. +\noindent +This macro is used to shade the region of convergence of a system in the $z$ plane. It draws a solid ring centered at \Coor* with inner radius \rmit{inner-radius} and outer radius \rmit{outer-radius} as shown in Figure~\ref{fig:psring}. The fill color is specified by the \KWD{fillcolor} key. %%======================================================================= \begin{figure}[ht!] @@ -967,8 +1000,8 @@ This macro draws a solid ring centered at \Coor* with inner radius \rmit{inner-r %%======================================================================= -\begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](5,2) +\begin{LTXexample}[width=7cm] +\begin{pspicture}[showgrid](5,2) \psring[fillcolor=red](1,1){.5}{1} \psring[fillcolor=green](3,1){.25}{.5} \end{pspicture} @@ -983,7 +1016,8 @@ This macro draws a solid ring centered at \Coor* with inner radius \rmit{inner-r \CMD{psdiskc}\Keys\Coor($x_0, y_0$)\{\rmit{radius}\} \end{syntax} -As shown in Figure~\ref{fig:psdiskc}, this macro shades the area confined between a circle centered at \Coor* with radius \rmit{radius} and a rectangle centered at \Coor* with width $2x_0$ and height $2y_0$. The fill color is specified by the \KWD{fillcolor} key. This macro is used to shade the region of convergence of a system in the $z$ plane. +\noindent +This macro is used to shade the region of convergence of a system in the $z$ plane. As shown in Figure~\ref{fig:psdiskc}, it shades the area confined between a circle centered at \Coor* with radius \rmit{radius} and a rectangle centered at \Coor* with width $2x_0$ and height $2y_0$. The fill color is specified by the \KWD{fillcolor} key. %%======================================================================= \begin{figure}[ht!] @@ -1013,8 +1047,8 @@ As shown in Figure~\ref{fig:psdiskc}, this macro shades the area confined betwee \end{figure} %%======================================================================= -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](6,2) \psdiskc[fillcolor=red](1.5,1)(1.5,1){.5} \psdiskc[fillcolor=blue](4.5,1)(.5,1){.15} \end{pspicture} @@ -1029,6 +1063,7 @@ As shown in Figure~\ref{fig:psdiskc}, this macro shades the area confined betwee \CMD{psldots}\Keys\Angle\Coor \end{syntax} +\noindent As depicted in Figure~\ref{fig:psldots}, this macro draws three dots each with diameter \KWD{ldotssize} on the same straight line, where the middle one is centered at \Coor*. Every two consecutive dots are separated by \KWD{ldotssep}. The angle of the line on which the dots lie with the horizontal axis is controlled by the optional parameter \rmit{angle}. In case it is absent, the angle is determined by the key \KWD{angle}. The key \KWD{scale} can be used to scale up or down the dot diameter and the dot separation. The keys corresponding to \CMD{psldots} are summarized in Table~\ref{tab:psldots}. %%======================================================================= @@ -1086,8 +1121,8 @@ scale & num & $1$ & Scale factor \\ %%======================================================================= -\begin{LTXexample}[width=8.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=8cm] +\begin{pspicture}[showgrid](6,2) \psldots(1,1) \psldots{45}(2,1) \psldots[ldotssize=.1]{120}(3,1) @@ -1107,6 +1142,7 @@ scale & num & $1$ & Scale factor \\ \CMD{ldotsnode}\Keys\Angle\Coor\Node \end{syntax} +\noindent This macro is very similar to the \CMD{psldots} macro. The only difference is that the \CMD{ldotsnode} places the dots inside an invisible frame and turns that frame into a node labeled \Node* as shown in Figure~\ref{fig:ldotsnode}. The frame is separated from the dots by half \KWD{signalsep}. %%======================================================================= @@ -1140,19 +1176,14 @@ This macro is very similar to the \CMD{psldots} macro. The only difference is th %%======================================================================= -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-2,-2)(2,2) +\begin{LTXexample}[width=6cm] +\begin{pspicture}[showgrid](-2,-1)(2,1) \pssignal(1.5;0){a}{$a$} - \pssignal(1.5;90){b}{$b$} - \pssignal(1.5;180){c}{$c$} - \pssignal(1.5;270){d}{$d$} - \psset{signalsep=.25} + \pssignal(1.5;180){b}{$b$} + \pssignal(1;270){c}{$c$} \ldotsnode{45}(0,0){dots} - %----------------- - \ncline{a}{dots} - \ncline{b}{dots} + \ncline{a}{dots} \ncline{b}{dots} \ncline{c}{dots} - \ncline{d}{dots} \end{pspicture} \end{LTXexample} @@ -1166,11 +1197,12 @@ This macro is very similar to the \CMD{psldots} macro. The only difference is th \CMD{psblock}\Keys\Coor\Node\Stuff \end{syntax} +\noindent This macro places \Stuff* at coordinate \Coor*, encloses it in a rectangular frame, and turns that frame into a node labeled \Node*. The separation between the \Stuff* and the frame is controlled by the \KWD{framesep} key. \begin{LTXexample}[width=7cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{pspicture}[showgrid](6,2) \pssignal(0,1){x}{$x[n]$} \psblock(2,1){a}{$z^{-1}$} \psblock(4,1){b}{$h[n], H(z)$} @@ -1190,21 +1222,23 @@ This macro places \Stuff* at coordinate \Coor*, encloses it in a rectangular fra \CMD{psfblock}\Keys\Coor\Node\Stuff \end{syntax} +\noindent This macro is very similar to the \CMD{psblock} macro except that the size of the frame is controlled by the key \KWD{framesize}. The frame size is specified as \KWDn{framesize=\rmit{num1[dimen]} \rmit{num2[dimen]}} \noindent in which \rmit{num1} and \rmit{num2} are separated by a space, not by a comma. If \rmit{num2} is absent, then a square frame is created. -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](6,2) \pssignal(0,1){x}{$x[n]$} \psfblock[framesize=.75 .5](2,1){a}{$H_1$} \psfblock[framesize=1.5 1](4,1){b}{$H_2$} \pssignal(6,1){y}{$y[n]$} %----------------- \psset{arrows=->} - \ncline{x}{a} \ncline{a}{b} \ncline{b}{y} + \ncline{x}{a} \ncline{a}{b} + \ncline{b}{y} \end{pspicture} \end{LTXexample} @@ -1217,7 +1251,8 @@ This macro is very similar to the \CMD{psblock} macro except that the size of th \CMD{psadaptive}\Keys\Arrows\NodeA\Coor\NodeB \end{syntax} -This macro is useful in drawing adaptive systems. It creates \NodeB* at coordinate \Coor* with respect to the center of \NodeA*. Then, it connects \NodeB* to \NodeA* and continues to \rmit{node C} that is the mirror image of \NodeB* with respect to the center of \NodeA* (Figure~\ref{fig:psadaptive}). A horizontal offset to the location of \NodeB* is achieved through the \KWD{aoffset} key (Table~\ref{tab:psadaptive}). +\noindent +This macro is useful in drawing adaptive systems. It creates \NodeB* at coordinate \Coor* with respect to the center of \NodeA*. Then, it connects \NodeB* to \NodeA* and continues to \NodeC* on the same line (Figure~\ref{fig:psadaptive}). The proportion of the distances of \NodeB* and \NodeC* from \NodeA* is determined by the key \KWD{afac}. A horizontal offset to the location of \NodeB* is achieved through the \KWD{aoffset} key (Table~\ref{tab:psadaptive}). %%======================================================================= \begin{figure}[ht!] @@ -1246,13 +1281,14 @@ This macro is useful in drawing adaptive systems. It creates \NodeB* at coordina \label{tab:psadaptive} \begin{keytable}{1.25in} aoffset & num & $0$ & Horizontal offset \\ +afac & num & $1$ & Length factor \\ \end{keytable} \end{table} %%======================================================================= \begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-3,-1)(3,1) +\begin{pspicture}[showgrid](-3,-1)(3,1) \psblock(-1.5,0){H}{$H(z)$} \psadaptive{->}{H}(-.5,-.75){Ha} %----------------- @@ -1261,18 +1297,25 @@ aoffset & num & $0$ & Horizontal offset \\ \end{pspicture} \end{LTXexample} - \begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-3,-1)(3,1) +\begin{pspicture}[showgrid](-3,-1)(3,1) \psblock(-1.5,0){H}{$H(z)$} - \psadaptive[aoffset=-.5]{->}{H}(.5,-.75){Ha} + \psadaptive[aoffset=-.5]{->}{H} + (.5,-.75){Ha} %----------------- \psblock(1.5,0){H}{$H(z)$} - \psadaptive[aoffset=.5]{->}{H}(.5,.75){Ha} + \psadaptive[aoffset=.5]{->}{H} + (.5,.75){Ha} \end{pspicture} \end{LTXexample} - +\begin{LTXexample}[width=7.5cm] +\begin{pspicture}[showgrid](-3,-1)(3,2) + \psblock(0,0){H}{$H(z)$} + \psadaptive[afac=2]{->}{H} + (1;-120){Ha} +\end{pspicture} +\end{LTXexample} @@ -1282,7 +1325,8 @@ aoffset & num & $0$ & Horizontal offset \\ \CMD{psknob}\Keys\Coor\Node \end{syntax} -This macro is useful in drawing adjustable weights in adaptive systems. It creates a circle node centered at \Coor* and labeled \Node*. The radius of this circle is determined by the \KWD{radius} key. Then, it draws a straight arrowed-line centered at \Coor* (Figure~\ref{fig:psknob}). The length and the angle of this line are controlled by the \KWD{knoblength} and the \KWD{knobangle} keys. The line width of both the circle and the line are controlled by the \KWD{knobwidth} key. The key \KWD{scale} can be used to control the length of the line and the line width of both the circle and the line. The keys specific to \CMD{psknob} are summarized in Table~\ref{tab:psknob}. +\noindent +This macro is useful in drawing adjustable weights in adaptive systems. It creates a circle node centered at \Coor* and labeled \Node*. The radius of this circle is determined by the \KWD{radius} key. Then, it draws a straight arrow centered at \Coor* (Figure~\ref{fig:psknob}). The length and the angle of this line are controlled by the \KWD{knoblength} and the \KWD{knobangle} keys. The line width of both the circle and the line are controlled by the \KWD{knobwidth} key. The key \KWD{scale} can be used to control the length of the line and the line width of both the circle and the line. The keys specific to \CMD{psknob} are summarized in Table~\ref{tab:psknob}. %%======================================================================= \begin{figure}[ht!] @@ -1323,7 +1367,7 @@ scale & num & $1$ & Scale factor \\ \begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](6,4) +\begin{pspicture}[showgrid](6,4) \psknob(1,1){w1} \nput{180}{w1}{$w_1$} \psknob[knoblength=2](3,1){w2} @@ -1347,10 +1391,11 @@ scale & num & $1$ & Scale factor \\ \CMD{psusampler}\Keys\Coor\Node\Stuff \end{syntax} +\noindent This macro is similar to the \CMD{psfblock} except that \Stuff* is placed next to an up-arrow in the math mode representing an up-sampler. \emph{It is important to remember that \Stuff* must be in the text mode, not in the math mode, i.e., do not put \$ around \Stuff*.} -\begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=7cm] +\begin{pspicture}[showgrid](6,2) \pssignal(.5,1){x}{$x[n]$} \psusampler[framesize=1 .75](3,1){a}{2} \pssignal(5.5,1){y}{$y[n]$} @@ -1371,10 +1416,11 @@ This macro is similar to the \CMD{psfblock} except that \Stuff* is placed next t \CMD{psdsampler}\Keys\Coor\Node\Stuff \end{syntax} +\noindent This macro is similar to the \CMD{psfblock} except that \Stuff* is placed next to a down-arrow in the math mode representing a down-sampler. \emph{It is important to remember that \Stuff* must be in the text mode, not in the math mode, i.e., do not put \$ around \Stuff*.} -\begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=7cm] +\begin{pspicture}[showgrid](6,2) \pssignal(.5,1){x}{$x[n]$} \psdsampler[framesize=1 .75](3,1){a}{3} \pssignal(5.5,1){y}{$y[n]$} @@ -1395,17 +1441,18 @@ This macro is similar to the \CMD{psfblock} except that \Stuff* is placed next t \CMD{nclist}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\List \end{syntax} +\noindent This macro is very useful when sequentially connecting several nodes using a single node-connecting macro. In addition, it is capable of labeling the node connections. The \List* must be a comma-separated list of items. Possible uses of the \CMD{nclist} are summarized below. \begin{itemize} \item \CMD{nclist}\Keys\Arrows\{\rmit{nc-macro}\}\{$n_1, n_2, n_3, \dotsc$\} connects the node $n_{i-1}$ to the node $n_i$, for all $i = 2, 3, \dotsc$, using the macro \rmit{nc-macro}. -\item \CMD{nclist}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\{$n_1, n_2 \; l_2, n_3 \; l_3, \dotsc$\} connects the node $n_{i-1}$ to the node $n_i$, for all $i = 2, 3, \dotsc$, using the macro \rmit{nc-macro}. Moreover, it puts the label $l_i$ on the connection $n_{i-1}$--$n_i$, for all $i = 2, 3, \dotsc$, using the macro \rmit{nc-label}. It is important to remember the following. +\item \CMD{nclist}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\{$n_1, n_2 \; l_2, n_3 \; l_3, \dotsc$\} connects the node $n_{i-1}$ to the node $n_i$, for all $i = 2, 3, \dotsc$, using the macro \rmit{nc-macro}. Moreover, it puts the label $l_i$ on the connection $n_{i-1}$--$n_i$, for all $i = 2, 3, \dotsc$, using the macro \rmit{nc-label}. It is important to remember the following: \begin{enumerate} \item In the list, the node $n_i$ and the label $l_i$ are separated by a space. If the label contains spaces, then it must be enclosed in double curly braces, i.e., $n_i \; \{\{l_i\}\}$. \item The first element of the list must be a single node ($n_1$); it should not have any labels. \end{enumerate} -\item \CMD{nclist}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\{$n_1, n_2 \; \KWDm{ncl}_2 \; l_2, n_3 \; \KWDm{ncl}_3 \; l_3, \dotsc$\} connects the node $n_{i-1}$ to the node $n_i$, for all $i = 2, 3, \dotsc$, using the macro \rmit{nc-macro}. Moreover, it puts the label $l_i$ on the connection $n_{i-1}$--$n_i$ using the macro $\KWDm{ncl}_i$ for all $i = 2, 3, \dotsc$. If for some $i$, $\KWDm{ncl}_i$ is empty, then the macro \rmit{nc-label} is used. In other words, the \rmit{nc-label} is the default macro for labeling connections when such macro is not explicitly present in the list. It is important to remember the following. +\item \CMD{nclist}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\{$n_1, n_2 \; \KWDm{ncl}_2 \; l_2, n_3 \; \KWDm{ncl}_3 \; l_3, \dotsc$\} connects the node $n_{i-1}$ to the node $n_i$, for all $i = 2, 3, \dotsc$, using the macro \rmit{nc-macro}. Moreover, it puts the label $l_i$ on the connection $n_{i-1}$--$n_i$ using the macro $\KWDm{ncl}_i$ for all $i = 2, 3, \dotsc$. If for some $i$, $\KWDm{ncl}_i$ is empty, then the macro \rmit{nc-label} is used. In other words, the \rmit{nc-label} is the default macro for labeling connections when such macro is not explicitly present in the list. It is important to remember the following: \begin{enumerate} \item In the list, the node $n_i$, the connection-labeling macro $\KWDm{ncl}_i$, and the label $l_i$ are separated by spaces. If the label contains spaces, then it must be enclosed in double curly braces, i.e., $n_i \; \KWDm{ncl}_i \; \{\{l_i\}\}$. \item The first element of the list must be a single node ($n_1$); it should not have any labels. @@ -1413,8 +1460,8 @@ This macro is very useful when sequentially connecting several nodes using a sin \end{itemize} -\begin{LTXexample}[width=8.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=7.5cm] +\begin{pspicture}[showgrid](6,2) \psblock(1,1){a}{A} \psblock(2.5,1){b}{B} \psblock(4,1){c}{C} @@ -1424,8 +1471,8 @@ This macro is very useful when sequentially connecting several nodes using a sin \end{LTXexample} -\begin{LTXexample}[width=8.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=7.5cm] +\begin{pspicture}[showgrid](6,2) \dotnode(0,1){a} \dotnode(1.5,1){b} \dotnode(3,1){c} @@ -1437,8 +1484,8 @@ This macro is very useful when sequentially connecting several nodes using a sin \end{LTXexample} -\begin{LTXexample}[width=8.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=7.5cm] +\begin{pspicture}[showgrid](6,2) \dotnode(.5,1){a} \dotnode(2,1){b} \dotnode(3.5,1){c} @@ -1449,8 +1496,8 @@ This macro is very useful when sequentially connecting several nodes using a sin \end{LTXexample} -\begin{LTXexample}[width=8.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{LTXexample}[width=7.5cm] +\begin{pspicture}[showgrid](6,2) \dotnode(.5,1){a} \dotnode(2,1){b} \dotnode(3.5,1){c} @@ -1471,17 +1518,18 @@ This macro is very useful when sequentially connecting several nodes using a sin \CMD{ncstar}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\List\{\rmit{Node}\} \end{syntax} +\noindent This macro is used to connect several nodes to a single node. It is also capable of labeling the node connections. The \List* must be a comma-separated list of items. Possible uses of the \CMD{ncstar} are summarized below. \begin{itemize} \item \CMD{ncstar}\Keys\Arrows\{\rmit{nc-macro}\}\{$n_1, n_2, \dotsc$\}\{$N$\} connects the node $n_i$ to the node $N$, for all $i = 1, 2, \dotsc$, using the macro \rmit{nc-macro}. -\item \CMD{ncstar}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\{$n_1 \; l_1, n_2 \; l_2, \dotsc$\} connects the node $n_i$ to node $N$, for all $i = 1, 2, \dotsc$, using the macro \rmit{nc-macro}. Moreover, it puts the label $l_i$ on the connection $n_i$--$N$, for all $i = 1, 2, \dotsc$, using the macro \rmit{nc-label}. It is important to remember that the node $n_i$ and the label $l_i$ are separated by a space in the list. If the label contains spaces, then it must be enclosed in double curly braces, i.e., $n_i \; \{\{l_i\}\}$. +\item \CMD{ncstar}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\{$n_1 \; l_1, n_2 \; l_2, \dotsc$\}\{$N$\} connects the node $n_i$ to node $N$, for all $i = 1, 2, \dotsc$, using the macro \rmit{nc-macro}. Moreover, it puts the label $l_i$ on the connection $n_i$--$N$, for all $i = 1, 2, \dotsc$, using the macro \rmit{nc-label}. It is important to remember that the node $n_i$ and the label $l_i$ are separated by a space in the list. If the label contains spaces, then it must be enclosed in double curly braces, i.e., $n_i \; \{\{l_i\}\}$. \item \CMD{ncstar}\Keys\Arrows\{\rmit{nc-macro}\}[\rmit{nc-label}]\{$n_1 \; \KWDm{ncl}_1 \; l_1, n_2 \; \KWDm{ncl}_2 \; l_2, \dotsc$\}\{$N$\} connects node $n_i$ to node $N$, for all $i = 1, 2, \dotsc$, using the macro \rmit{nc-macro}. Moreover, it puts the label $l_i$ on the connection $n_i$--$N$ using the macro $\KWDm{ncl}_i$ for all $i = 1, 2, \dotsc$. If for some $i$, $\KWDm{ncl}_i$ is empty, then the macro \rmit{nc-label} is used. In other words, the \rmit{nc-label} is the default macro for labeling connections when such macro is not explicitly present in the list. It is important to remember that the node $n_i$ and the label $l_i$ are separated by a space in the list. If the label contains spaces, then it must be enclosed in double curly braces, i.e., $n_i \; \KWDm{ncl}_i \; \{\{l_i\}\}$. \end{itemize} -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](0,-2)(3,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](0,-2)(3,2) \pssignal(1,1){x1}{$x_1$} \pssignal(1,0){x2}{$x_2$} \pssignal(1,-1){x3}{$x_3$} @@ -1490,8 +1538,8 @@ This macro is used to connect several nodes to a single node. It is also capable \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-2,-1)(2,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](-2,-1)(2,2) \pssignal(-1.5,0){a}{$a$} \pssignal(0,1.5){b}{$b$} \pssignal(1.5,0){c}{$c$} @@ -1501,8 +1549,8 @@ This macro is used to connect several nodes to a single node. It is also capable \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](0,-2)(5,2) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}[showgrid](0,-2)(5,2) \psblock(1,1){a}{$a$} \psblock(1,0){b}{$b$} \psblock(1,-1){c}{$c$} @@ -1543,7 +1591,7 @@ The \PSTSigSys package defines a few useful PSTricks styles for drawling arrows \rput[l](2.75,3.75){\psline[style=Arrow](2,0)} % \rput[l](0,3){Default dash} -\rput[l](2.75,3){\psline[style=Dash](2,0)} +\rput[l](2.75,3){\psline[linestyle=dashed](2,0)} % \rput[l](0,2.25){Dash} \rput[l](2.75,2.25){\psline[style=Dash](2,0)} @@ -1578,14 +1626,14 @@ The \PSTSigSys package defines a few useful PSTricks styles for drawling arrows %%======================================================================= \begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-1,-1)(5,2) +\begin{pspicture}[showgrid](-1,-1)(5,2) \psset{style=Stem,linecolor=blue} \psstem[stemtag]{2,1.5,1,.5,0} \end{pspicture} \end{LTXexample} -In addition, the \PSTSigSys package defines the style \KWD{RoundCorners} that makes the following settings. +In addition, the \PSTSigSys package defines the style \KWD{RoundCorners} that makes the following settings: \begin{verbatim} framesep=0.125 framearc=0.25 @@ -1594,8 +1642,8 @@ In addition, the \PSTSigSys package defines the style \KWD{RoundCorners} that ma The author believes that when drawing block diagrams, it is more elegant to have round corners. -\begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](-3,-2)(4,1) +\begin{LTXexample}[width=7.25cm] +\begin{pspicture}[showgrid](-3,-2)(4,1) \psset{style=RoundCorners,style=Arrow} \pssignal(-2.5,0){x}{$x[n]$} \dotnode(-1.25,0){dot} @@ -1613,10 +1661,10 @@ The author believes that when drawing block diagrams, it is more elegant to have \subsection{Brace Macros} -The \PSTSigSys package defines four new macros \CMD{psBraceUp}, \CMD{psBraceDown}, \CMD{psBraceRight}, and \CMD{psBraceLeft} that are derived from the \CMDn{psbrace} macro (using the \CMDn{newpsobject} macro) defined by the \PKG{pstricks-add} package. Their syntaxes are exactly the same as that of the \CMDn{psbrace} macro. The usage of these macros is shown by the following examples. +The \PSTSigSys package defines four new macros \CMD{psBraceUp}, \CMD{psBraceDown}, \CMD{psBraceRight}, and \CMD{psBraceLeft} that are derived from the \CMDn{psbrace} macro (using the \CMDn{newpsobject} macro) defined by the \PKG{pstricks-add} package. They all have the same syntax that is the same as that of the \CMDn{psbrace} macro. The usage of these macros is shown by the following examples: -\begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](5,3) +\begin{LTXexample}[width=7cm] +\begin{pspicture}[showgrid](5,3) \psframe(1,1)(4,2) \psset{linecolor=blue} \psBraceUp[nodesepB=-.5](4,2)(1,2){Up} @@ -1626,12 +1674,12 @@ The \PSTSigSys package defines four new macros \CMD{psBraceUp}, \CMD{psBraceDown \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=8cm] -\begin{pspicture}[showgrid=true](4,3) +\begin{LTXexample}[width=7cm] +\begin{pspicture}[showgrid](4,3) \psset{linecolor=red} \dotnode(1,1){a} \dotnode(3,2){b} - + %--------------------- \psset{linecolor=blue} \psBraceUp*(b)(a){up} \psBraceDown*(a)(b){down} @@ -1649,7 +1697,7 @@ The \PSTSigSys package defines four keys \KWD{gratioWh}, \KWD{gratioWv}, \KWD{gr \] The ancient Greeks thought a rectangle is the most pleasing to the eye if its edges $a$ and $b$ were in the proportion $a \colon b = \varphi$ \cite{Rotman:00}. In the \KWDn{gratio} keys, the capital letters \KWDn{W} and \KWDn{H} stand for the width and the height of the frame, respectively. The ending letters \KWDn{h} and \KWDn{v} imply whether the frame is horizontal or vertical, respectively. In a horizontal frame, the longest edge is horizontal while in a vertical one, the longest edge is vertical. -The four aforementioned keys set one of the edges of a frame as given by the user and determine the other one by the golden ratio $\varphi$ as follows. +The four aforementioned keys set one of the edges of a frame as specified by the user and determine the other one by the golden ratio $\varphi$ as follows: \begin{itemize} \item The key assignment $\KWDm{gratioWh} = a$ sets the width of the frame to $a$ and the height to $a / \varphi$ as in Figure~\ref{subfig:gratioWh}. \item The key assignment $\KWDm{gratioWv} = a$ sets the width of the frame to $a$ and the height to $a \varphi$ as in Figure~\ref{subfig:gratioWv}. @@ -1743,7 +1791,7 @@ The four aforementioned keys set one of the edges of a frame as given by the use \begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{pspicture}[showgrid](6,2) \psfblock[gratioWh=1](.5,1){a}{a} \psfblock[gratioWv=1](2,1){b}{b} \psfblock[gratioHh=1](3.5,1){c}{c} @@ -1759,7 +1807,7 @@ The four aforementioned keys set one of the edges of a frame as given by the use When drawing block diagrams, it is sometimes useful to change only the width or the height of a frame. This goal is achieved through the keys \KWD{framewidth} and \KWD{frameheight}. \begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](6,2) +\begin{pspicture}[showgrid](6,2) \psset{framesize=1 .5} \psfblock[framewidth=.5](1,1){a}{a} \psfblock[frameheight=1](3,1){b}{b} @@ -1772,11 +1820,11 @@ When drawing block diagrams, it is sometimes useful to change only the width or \subsection{Fill Color} -To emphasize the function of some blocks in a diagram, it is useful to color them. For this purpose, both the \KWD{fillstyle} and the \KWD{fillcolor} keys must be set. This could be cumbersome when many blocks are to be colored. Since almost always the fill style is solid, it makes sense to define a single key that automatically sets the fill style to solid. The key \KWD{FillColor} plays this role. +To emphasize the functions of some blocks in a diagram, it is useful to color them. For this purpose, both the \KWD{fillstyle} and the \KWD{fillcolor} keys must be set. This could be cumbersome when many blocks are to be colored. Since almost always the fill style is solid, it makes sense to define a single key that automatically sets the fill style to solid. The key \KWD{FillColor} plays this role. \begin{LTXexample}[width=7.5cm] -\begin{pspicture}[showgrid=true](6,1) +\begin{pspicture}[showgrid](6,1) \psset{fillstyle=crosshatch*} \psframe[fillcolor=red](1,0)(2,1) \psframe[FillColor=blue](3,0)(4,1) @@ -1797,6 +1845,8 @@ To emphasize the function of some blocks in a diagram, it is useful to color the In this section, we provide some examples to illustrate the benefits and usages of the macros, styles, and keys defined in Sections~\ref{sec:macros} and \ref{sec:extras}. Some of these examples require the use of additional packages. In that case, additional packages are mentioned next to the example number. +\newpage + \subsection{Complex Number} @@ -1804,24 +1854,29 @@ In this section, we provide some examples to illustrate the benefits and usages \begin{LTXexample}[width=5.5cm] -\begin{pspicture}[showgrid=true](-1,-1)(3,3) +\begin{pspicture}[showgrid](-1,-1)(3,3) %--- Drawing axes --- - \psaxeslabels[xlpos=t](0,0)(0,0)(3,3){$\Re$}{$\Im$} + \psaxeslabels[xlpos=t](0,0)(0,0)(3,3) + {$\Re$}{$\Im$} %--- Defining some useful nodes --- \dotnode[linecolor=purple](2,2){c} - \pnode(0,0){org} \pnode(2,0){a} \pnode(0,2){b} + \pnode(0,0){org} + \pnode(2,0){a} + \pnode(0,2){b} %--- Connecting nodes --- \ncline{org}{c} - \ncstar[style=Dash,linecolor=gray]{ncline}{a,b}{c} + \ncstar[style=Dash,linecolor=gray] + {ncline}{a,b}{c} %--- Labeling --- \color{blue} \psset{linecolor=blue,nrot=:U} \psBraceDown*(org)(a){$a$} \psBraceLeft*(b)(org){$b$} - \ncline[offset=.25]{|*-|*}{org}{c} \ncput*{$\rho$} + \ncline[offset=.25]{|*-|*}{org}{c} + \ncput*{$\rho$} \psarc[linecolor=gray](org){.75}{0}{45} \rput(1;22.5){$\theta$} \end{pspicture} @@ -1846,7 +1901,7 @@ x_c(t) = \bigskip \begin{LTXexample} -\begin{pspicture}[showgrid=true](-3,-2)(9,2) +\begin{pspicture}[showgrid](-3,-2)(9,2) %--- Drawing axes --- \psaxeslabels(0,0)(-3,-2)(9,2){$n$}{$x[n]$} @@ -1854,7 +1909,8 @@ x_c(t) = \psplot[style=Graph,style=Dash,linecolor=gray]{0}{8}{x 45 mul sin} %--- x[n] --- - \psset{style=Stem,linecolor=teal,stemtagformat={\color{blue}\scriptstyle}} + \psset{style=Stem,linecolor=teal, + stemtagformat={\color{blue}\scriptstyle}} \psstem(0,-1){0,0,0} \psstem[stemtag](1,1){.707107,1,.707107,0,-.707107,-1,-.707107,0} @@ -1880,9 +1936,8 @@ x_c(t) = \Example{use \PKG{pst-plot} and \PKG{multido}} Consider the process of sampling a continuous-time signal $x_c(t)$ with period $T$: (1) multiply $x_c(t)$ by the impulse train $s(t) = \sum_{n=-\infty}^\infty \delta(t - nT)$ to get $x_s(t) = x_c(t) s(t)$, and (2) convert every delta in $x_s(t)$ into a sample to get the sequence $x[n]$. Demonstrate this process for the continuous-time signal $x_c(t) = 0.5\sin(\pi t/2) + 0.5$ and $T = 1$. \begin{LTXexample} -\begin{pspicture}[showgrid=true](-7,-5)(7,1) +\begin{pspicture}[showgrid](-7,-5)(7,1) \psset{plotpoints=500,stemtag} - %--- x_c(t) --- \psaxeslabels(0,0)(-7,0)(7,0){$t$}{} \rput[tl](-7,1){$x_c(t)$} @@ -1893,19 +1948,22 @@ x_c(t) = %--- s(t) ---- \rput(0,-1.5){\psaxeslabels(0,0)(-7,0)(7,0){$t$}{} \rput[tl](-7,1){$s(t)$} - \psstem[style=Stem,stemhead=>,linecolor=blue](-6,1){1,1,1,1,1,1,1,1,1,1,1,1,1}} + \psstem[style=Stem,stemhead=>,linecolor=blue](-6,1) + {1,1,1,1,1,1,1,1,1,1,1,1,1}} %--- x_s(t) --- \rput(0,-3){\psaxeslabels(0,0)(-7,0)(7,0){$t$}{} \rput[tl](-7,1){$x_s(t)$} - \psplot[style=Graph,style=Dash,linecolor=gray]{-6}{6}{x 90 mul sin .5 mul .5 add} + \psplot[style=Graph,style=Dash,linecolor=gray]{-6}{6} + {x 90 mul sin .5 mul .5 add} \psset{style=Stem,stemhead=>,linecolor=blue} \psstem[killzero](-6,1){.5,0,.5,1,.5,0,.5,1,.5,0,.5,1,.5}} %--- x[n] ---- \rput(0,-4.5){\psaxeslabels(0,0)(-7,0)(7,0){$n$}{} \rput[tl](-7,1){$x[n]$} - \psstem[style=Stem,linecolor=blue](-6,1){.5,0,.5,1,.5,0,.5,1,.5,0,.5,1,.5}} + \psstem[style=Stem,linecolor=blue](-6,1) + {.5,0,.5,1,.5,0,.5,1,.5,0,.5,1,.5}} \end{pspicture} \end{LTXexample} @@ -1915,14 +1973,14 @@ x_c(t) = \subsection{Pole-Zero Diagram} -\Example{} Draw the pole-zero diagram of a system with the following system function. +\Example{} Draw the pole-zero diagram of a system with the following system function: \[ -H(z) = \frac{z^4 - 2z^3 + 2z^2}{z^2 - 4} +H(z) = \frac{z^4 - 2z^3 + 2z^2}{z^2 - 4}\enspace. \] \begin{LTXexample} -\begin{pspicture}[showgrid=true](-3,-2)(3,2) +\begin{pspicture}[showgrid](-3,-2)(3,2) \psaxeslabels(0,0)(-3,-2)(3,2){$\Re$}{$\Im$} \psset{linecolor=red} @@ -1946,7 +2004,7 @@ H(z) = \frac{z^4 - 2z^3 + 2z^2}{z^2 - 4} \Example{use \PKG{multido}} Draw the pole-zero diagram of a fifth-order Butterworth filter. \begin{LTXexample} -\begin{pspicture}[showgrid=true](-3,-3)(3,3) +\begin{pspicture}[showgrid](-3,-3)(3,3) %--- Drawing axes --- \psaxeslabels(0,0)(-3,-3)(3,3){$\Re$}{$\Im$} \pscircle[linecolor=gray](0,0){2} @@ -1976,12 +2034,12 @@ H(z) = \frac{z^4 - 2z^3 + 2z^2}{z^2 - 4} \[ H(z) = \frac{1}{z^2 + z - \tfrac{3}{4}} \] -Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$, the ROC of the system with the given assumptions is as follows. +Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$, the ROC of the system with the given assumptions is as follows: \bigskip \begin{LTXexample} -\begin{pspicture}[showgrid=true](-4,-3)(4,3) +\begin{pspicture}[showgrid](-4,-3)(4,3) %--- Shading ROCs --- \psring[fillcolor=teal!30](0,0){.75}{2.25} \psdiskc[fillcolor=blue!30](0,0)(3,2.5){2.25} @@ -2016,7 +2074,7 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$, \begin{LTXexample} %=== Parallel Combination === -\begin{pspicture}[showgrid=true](-3,-1)(3,1) +\begin{pspicture}[showgrid](-3,-1)(3,1) \psset{style=RoundCorners,gratioWh=1.25} %--- Defining blocks --- @@ -2040,7 +2098,7 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$, \hspace{1cm} % %=== Series Combination === -\begin{pspicture}[showgrid=true](-4,-1)(4,1) +\begin{pspicture}[showgrid](-4,-1)(4,1) \psset{style=RoundCorners,gratioWh=1.25} %--- Defining blocks --- @@ -2065,14 +2123,14 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$, \bigskip \begin{LTXexample} -\begin{pspicture}[showgrid=true](-2,-2)(7,2) +\begin{pspicture}[showgrid](-2,-2)(7,2) \psset{style=RoundCorners} %--- Defining blocks --- \pssignal(-1.75,0){xc}{$x_c(t)$} \pscircleop[operation=times](0,0){otimes} \pssignal(0,1.25){s}{$s(t)$} - \psblock[FillColor=purple!20](3.25,0){conv}{\parbox[c]{3\psunit}% + \psblock[FillColor=blue!20](3.25,0){conv}{\parbox[c]{3\psunit}% {\centering Conversion from impulse train to discrete-time sequence}} \pssignal(6.5,0){x}{$x[n]$} @@ -2093,14 +2151,14 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$, \subsection{Direct Form II} -\Example{use \PKG{multido}} Draw the direct-form II block diagram of a discrete-time LTI system with the following system function. +\Example{use \PKG{multido}} Draw the direct-form II block diagram of a discrete-time LTI system with the following system function: \[ -H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{-3}} +H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{-3}}\enspace. \] \begin{LTXexample} -\begin{pspicture}[showgrid=true](-5,-6)(5,1) +\begin{pspicture}[showgrid](-5,-6)(5,1) \psset{style=RoundCorners,style=Arrow} %--- Defining blocks --- @@ -2121,8 +2179,10 @@ H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{- \nclist{ncline}{oplusR3,oplusR2,oplusR1} \ncstar{<-}{ncline}[naput]{oplusL2 $-1$,oplusR2 nbput $-1$}{dot2} \ncstar{<-}{ncline}[naput]{oplusL3 $0.5$,oplusR3 nbput $2$}{dot3} - \ncangle[angleA=180,angleB=-90]{dot4}{oplusL3} \nbput[npos=.5]{$-0.75$} - \ncangle[angleB=-90]{dot4}{oplusR3} \naput[npos=.5]{$3$} + \ncangle[angleA=180,angleB=-90]{dot4}{oplusL3} + \nbput[npos=.5]{$-0.75$} + \ncangle[angleB=-90]{dot4}{oplusR3} + \naput[npos=.5]{$3$} \end{pspicture} \end{LTXexample} @@ -2136,31 +2196,31 @@ H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{- \begin{LTXexample} -\begin{pspicture}[showgrid=true](-6,-3.5)(6,.5) - \psset{style=RoundCorners,style=Arrow,gratioWh=1.2} - \pssignal(-6,0){x}{$x[n]$} \pssignal(6,0){y}{$y[n]$} - \dotnode(-4.5,0){dot1} \dotnode(-4.5,-1){dot2} +\begin{pspicture}[showgrid](-7,-3.5)(7,.5) + \psset{style=RoundCorners,style=Arrow,gratioWh=1.35} + \pssignal(-7,0){x}{$x[n]$} \pssignal(7,0){y}{$y[n]$} + \dotnode(-5.5,0){dot1} \dotnode(-5.5,-1.25){dot2} \newcount\cnt %--- First and second channels --- \cnt=0 - \psforeach{\ry}{0,-1}{\advance\cnt by 1\relax - \psfblock(-3,\ry){h\the\cnt}{$h_{\the\cnt}[n]$} - \psdsampler(-1,\ry){ds\the\cnt}{M} - \psusampler(1,\ry){us\the\cnt}{M} - \psfblock(3,\ry){g\the\cnt}{$g_{\the\cnt}[n]$} - \pscircleop(4.5,\ry){oplus\the\cnt}} + \psforeach{\ry}{0,-1.25}{\advance\cnt by 1\relax + \psfblock(-4,\ry){h\the\cnt}{$h_{\the\cnt}[n]$} + \psdsampler(-1.5,\ry){ds\the\cnt}{M} + \psusampler(1.5,\ry){us\the\cnt}{M} + \psfblock(4,\ry){g\the\cnt}{$g_{\the\cnt}[n]$} + \pscircleop(5.5,\ry){oplus\the\cnt}} %--- Placing dots --- \cnt=0 - \psforeach{\rx}{-4.5,-3,-1,1,3,4.5}{\advance\cnt by 1\relax - \ldotsnode[angle=90](\rx,-2){dots\the\cnt}} + \psforeach{\rx}{-5.5,-4,-1.5,1.5,4,5.5}{\advance\cnt by 1\relax + \ldotsnode[angle=90](\rx,-2.125){dots\the\cnt}} %--- M-th channel --- - \psfblock(-3,-3){hM}{$h_M[n]$} - \psdsampler(-1,-3){dsM}{M} - \psusampler(1,-3){usM}{M} - \psfblock(3,-3){gM}{$g_M[n]$} + \psfblock(-4,-3){hM}{$h_M[n]$} + \psdsampler(-1.5,-3){dsM}{M} + \psusampler(1.5,-3){usM}{M} + \psfblock(4,-3){gM}{$g_M[n]$} %--- Connecting blocks --- \nclist{ncline}{x,h1,ds1,us1,g1,oplus1,y} @@ -2182,18 +2242,20 @@ H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{- \Example{} Draw the block diagram of an adaptive system used for system identification. \begin{LTXexample} -\begin{pspicture}[showgrid=true](-5,-3)(4,2) +\begin{pspicture}[showgrid](-5,-3)(4,2) \psset{style=RoundCorners} %--- Placing the input signal and drawing blocks --- \pssignal(-4,0){x}{$x_k$} \dotnode(-2.5,0){dot} - \psblock(0,-1){AdapSys}{\parbox[c]{1.75\psunit}{\centering\small Adaptive System}} - \psadaptive[aoffset=1]{->}{AdapSys}(-1.5;50){AdapSysA} + \psblock(0,-1){AdapSys} + {\parbox[c]{1.75\psunit}{\centering\small Adaptive System}} + \psadaptive[aoffset=1,afac=.75]{->}{AdapSys}(-1.75;60){AdapSysA} \pscircleop(3,-1){oplus} \nput{150}{oplus}{$\scriptstyle -$} \nput{60}{oplus}{$\scriptstyle +$} - \psblock(0,1){UnSys}{\parbox[c]{1.75\psunit}{\centering\small Unknown System}} + \psblock(0,1){UnSys} + {\parbox[c]{1.75\psunit}{\centering\small Unknown System}} %--- Connecting blocks --- \psset{style=Arrow} @@ -2217,7 +2279,7 @@ H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{- \Example{use \PKG{multido}} Draw the block diagram of an adaptive linear combiner. \begin{LTXexample} -\begin{pspicture}[showgrid=true](-4,-6)(4,.5) +\begin{pspicture}[showgrid](-4,-6)(4,.5) \psset{style=RoundCorners,gratioWh=1,radius=.25} %--- Signals --- diff --git a/Master/texmf-dist/source/generic/pst-sigsys/Makefile b/Master/texmf-dist/source/generic/pst-sigsys/Makefile deleted file mode 100644 index d5ad6d9e83f..00000000000 --- a/Master/texmf-dist/source/generic/pst-sigsys/Makefile +++ /dev/null @@ -1,68 +0,0 @@ - -# `Makefile' for `pst-coil.pdf', hv, 2006/08/11 - -.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps - -PACKAGE = pst-sigsys - -MAIN = pst-sigsys-doc - -LATEX = latex - -ARCHNAME = $(MAIN)-$(shell date +%y%m%d) - -ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile - -TDS = ~/PSTricks/PSTricks-TDS - -all : doc clean tds -doc: $(MAIN).pdf - -$(MAIN).pdf : $(MAIN).ps - GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< - -$(MAIN).ps : $(MAIN).dvi - dvips $< - -$(MAIN).dvi : $(MAIN).tex - $(LATEX) $< - $(LATEX) $< - if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi - if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi - makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ - $(basename $<).glo - makeindex -t $(basename $<).ilg -o $(basename $<).ind \ - $(basename $<).idx - bibtex $(basename $<) - $(LATEX) $< - $(LATEX) $< - -clean : - $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .bbl .blg) - $(RM) $(addprefix $(MAIN), .dvi .ps) - -veryclean : clean - $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) - -arch : - zip $(ARCHNAME).zip $(ARCHFILES) - -tds: - cp -u Changes $(TDS)/doc/generic/$(PACKAGE)/ - cp -u README $(TDS)/doc/generic/$(PACKAGE)/ - cp -u $(MAIN).pdf $(TDS)/doc/generic/$(PACKAGE)/ -# - cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/ - cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/ -# - cp -u Changes $(TDS)/tex/generic/$(PACKAGE)/ - cp -u $(PACKAGE).tex $(TDS)/tex/generic/$(PACKAGE)/ -# - cp -u Changes $(TDS)/dvips/$(PACKAGE)/ - cp -u $(PACKAGE).pro $(TDS)/dvips/$(PACKAGE)/ -# - cp -u Changes $(TDS)/source/$(PACKAGE)/ - cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/ - cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/ - cp -u Makefile $(TDS)/source/$(PACKAGE)/ -# EOF diff --git a/Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex b/Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex index 5314ffa2afa..729bea69c6d 100644 --- a/Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex +++ b/Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex @@ -1,5 +1,5 @@ %% -%% This is file `pst-sigsys.tex' v 1.3. +%% This is file `pst-sigsys.tex' v 1.4. %% %% IMPORTANT NOTICE: %% @@ -10,7 +10,7 @@ %% v 1.1: 04/01/2009 %% v 1.2: 01/15/2010 %% v 1.3: 06/18/2010 -%% v 1.31: 03/04/2011 (hv) +%% v 1.4: 03/07/2011 %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN archives @@ -28,8 +28,8 @@ \ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi \ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi -\def\pstsigsysFV{1.31} -\def\pstsigsysFD{2011/03/03} +\def\pstsigsysFV{1.4} +\def\pstsigsysFD{2011/03/07} \message{`PST-SigSys' v\pstsigsysFV, \pstsigsysFD\space (fd)} @@ -143,6 +143,15 @@ % \newpsstyle{inv@frame}{fillstyle=none,linestyle=none,framearc=0} % +%%% ss@ifneqdim %%% +\newdimen\ss@if@dimA +\newdimen\ss@if@dimB +\def\ss@ifneqdim#1#2#3{% +\pssetlength{\ss@if@dimA}{#1}% +\pssetlength{\ss@if@dimB}{#2}% +\ifdim\ss@if@dimA=\ss@if@dimB\else% +#3\fi} +% %%% This is my parser. %%% \def\ss@parse@temp{} \def\ss@parseA{} @@ -215,6 +224,7 @@ \define@key[psset]{pst-sigsys}{gratioHh}{\pst@gratio@height{#1}{1.618033989}} \define@key[psset]{pst-sigsys}{gratioHv}{\pst@gratio@height{#1}{.6180339887}} \define@key[psset]{pst-sigsys}{aoffset}{\pssetlength{\ss@aoffset}{#1}} +\define@key[psset]{pst-sigsys}{afac}{\def\ss@afac{#1}} \define@key[psset]{pst-sigsys}{knoblength}{\pssetlength{\ss@knoblength}{#1}} \define@key[psset]{pst-sigsys}{knobwidth}{\pssetlength{\ss@knobwidth}{#1}} \define@key[psset]{pst-sigsys}{knobangle}{\def\ss@knobangle{#1}} @@ -235,7 +245,7 @@ \psset[pst-sigsys]{polewidth=.7pt,polelength=.12}% pspole \psset[pst-sigsys]{opwidth=.7pt,oplength=.125,opsep=.1,operation=plus}% pscircleop and psframeop \psset[pst-sigsys]{ldotssize=.05,ldotssep=.15}% psldots -\psset[pst-sigsys]{aoffset=0}% psadaptive +\psset[pst-sigsys]{aoffset=0,afac=1}% psadaptive \psset[pst-sigsys]{knobwidth=.7pt,knoblength=1,knobangle=45}% psknob %--- end default key values ------------------------------ @@ -247,8 +257,8 @@ \def\psaxeslabels@i{\pst@getarrows\psaxeslabels@ii} \def\psaxeslabels@ii(#1,#2)(#3,#4)(#5,#6)#7#8{{% \use@par% -\psline(#3,#2)(#5,#2)% -\psline(#1,#4)(#1,#6)% +\ss@ifneqdim{#3}{#5}{\psline(#3,#2)(#5,#2)}% +\ss@ifneqdim{#4}{#6}{\psline(#1,#4)(#1,#6)}% % \if\ss@xlpos t% \rput(#5,#2){\rput[rb](0,\pslabelsep){#7}}% @@ -404,7 +414,7 @@ \def\psdisk{\def\pst@par{}\pst@object{psdisk}} \def\psdisk@i(#1)#2{{% \use@par% -\pscircle*[linewidth=0pt,linecolor=\psfillcolor](#1){#2}% +\pscircle*[linestyle=none,linecolor=\psfillcolor](#1){#2}% }\ignorespaces} %--- end psdisk ------------------------------------------ @@ -432,7 +442,7 @@ \else% \pssetlength{\ss@temp@dimC}{1.5\ss@temp@dimB}% \fi% -\psclip{\rput(#1){\psframe[linewidth=0pt,linecolor=\psfillcolor](-#2,-#3)(#2,#3)}}% +\psclip{\rput(#1){\psframe[linestyle=none,linecolor=\psfillcolor](-#2,-#3)(#2,#3)}}% \psring@i(#1){#4}{\ss@temp@dimC}% \endpsclip% }\ignorespaces} @@ -494,9 +504,9 @@ \def\psadaptive@i{\check@arrow{\psadaptive@ii}} \def\psadaptive@ii#1(#2)#3{{% \use@par% -\rput(#1){\pnode(#2){ss@nodeA}}% -\rput(ss@nodeA){\pnode(\ss@aoffset,0){#3}}% -\psLNode(#1)(ss@nodeA){-1}{ss@nodeB}% +\nodexn{(#1)+(#2)}{ss@nodeA}% +\nodexn{(ss@nodeA)+(\ss@aoffset,0)}{#3}% +\psLNode(#1)(ss@nodeA){-\ss@afac}{ss@nodeB}% \ifdim\ss@aoffset>\z@% \ncdiagg[armA=\ss@aoffset,angleA=180]{-}{#3}{#1}% \else% diff --git a/Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty b/Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty index eebb6596d6f..f429c384166 100644 --- a/Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty +++ b/Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty @@ -1,5 +1,5 @@ \RequirePackage{pstricks} -\ProvidesPackage{pst-sigsys}[2010/06/18 package wrapper for pst-sigsys.tex (fd)] +\ProvidesPackage{pst-sigsys}[2011/03/07 package wrapper for pst-sigsys.tex (fd)] \input{pst-sigsys.tex} \ProvidesFile{pst-sigsys.tex}[\pstsigsysFD\space v\pstsigsysFV\space `PST-sigsys' (fd)] |