summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-06-19 21:44:32 +0000
committerKarl Berry <karl@freefriends.org>2010-06-19 21:44:32 +0000
commit20a9dc1fd2b5ab0e49fa366ab9865a5b2b11d76f (patch)
treeae6bfeb58b8621212058da48cb0d25e2fec02d4c /Master/texmf-dist/doc
parent09e4efe52bc2ae36e52a5cc724348286b16292a4 (diff)
pst-sigsys 1.3 (19jun10)
git-svn-id: svn://tug.org/texlive/trunk@19063 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/generic/pst-sigsys/Changes40
-rw-r--r--Master/texmf-dist/doc/generic/pst-sigsys/README12
-rw-r--r--Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.pdfbin280754 -> 355486 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-sigsys/pst-sigsys-doc.tex872
4 files changed, 612 insertions, 312 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-sigsys/Changes b/Master/texmf-dist/doc/generic/pst-sigsys/Changes
index c8a04804ec7..8d9c004ffb4 100644
--- a/Master/texmf-dist/doc/generic/pst-sigsys/Changes
+++ b/Master/texmf-dist/doc/generic/pst-sigsys/Changes
@@ -1,15 +1,29 @@
-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.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,
+ not half of it.
+ 3. The new key killzero is added to the \psstem macro.
+ 4. In the \psldots and \ldotsnode macros, the angle of dots is
+ either directly specified by the user or set by the angle key
+ when unspecified.
+ 5. Two new macros \psadaptive and \psknob are added.
+ 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.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 106afc320d4..c7da720fdfd 100644
--- a/Master/texmf-dist/doc/generic/pst-sigsys/README
+++ b/Master/texmf-dist/doc/generic/pst-sigsys/README
@@ -1,11 +1,13 @@
-pst-sigsys package 2010/01/15 v1.2
-----------------------------------
+pst-sigsys package 2010/06/18 v1.3
+-----------------------------------
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
system, shading the region of convergence, creating an adder or a multiplier node, placing
a framed node at a given coordinate, creating an up-sampler or a down-sampler node,
-sequentially connecting a list of nodes, and connecting a list of nodes to one node using
-any node-connecting macro.
+drawing the block diagram of a system, drawing adaptive systems, sequentially connecting
+a list of nodes, and connecting a list of nodes to one node using any node-connecting
+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>
@@ -28,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. \ No newline at end of file
+ version 2005/12/01 or later.
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
index be0f8ff5a54..ba397f10152 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
Binary files differ
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 484b42aff24..205b52698c6 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
@@ -1,23 +1,26 @@
%%====================================
%% This is pst-sigsys documentation.
%% Farshid Delgosha
-%% 01/15/2010
+%% fdelgosha@gmail.com
+%% 06/18/2010
%%====================================
-\documentclass[11pt]{article}
+\documentclass[11pt,makeidx]{article}
+\usepackage{etex}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[cmex10]{amsmath}
\usepackage{amssymb}
\usepackage{array}
\usepackage{fancyhdr}
-\usepackage[bf,labelsep=period]{caption}
+\usepackage{caption}
\usepackage[margin=1in,dvips]{geometry}
\usepackage{xspace}
\usepackage{subfig}
\usepackage{enumitem}
\usepackage{url}
+\usepackage{makeidx}
\usepackage[table]{xcolor}
\usepackage{multido}
\usepackage{xkeyval}
@@ -30,13 +33,26 @@
%%=== showexpl ======================================================
\usepackage{showexpl}
+\lstdefinelanguage{PSTSigSys}{%
+ morekeywords={psaxeslabels,pstick,pssignal,psstem,pszero,pspole,pscircleop,psframeop,%
+ psring,psdisk,psdiskc,psldots,ldotsnode,psblock,psfblock,psadaptive,psknob,%
+ psusampler,psdsampler,nclist,ncstar,psBraceUp,psBraceDown,psBraceLeft,psBraceRight},
+ morekeywords={dotnode},
+ sensitive=false
+}
\lstset{%
- explpreset={numbers=left,numberstyle=\tiny,numbersep=.5em},%
+ explpreset={numbers=left,numberstyle=\tiny,numbersep=5pt},%
basicstyle=\ttfamily\small,%
rframe=,%
frame=single,%
- backgroundcolor=\color{yellow!10},%
- keywordstyle=\color{blue}%
+ frameround=tttt,%
+ aboveskip=\baselineskip,%
+ belowskip=\baselineskip,%
+ backgroundcolor=\color{Tangerine!10},%
+ language=PSTricks,%
+ alsolanguage=PSTSigSys,%
+ keywordstyle=\color{ForestGreen},%
+ commentstyle=\color{DarkBrown}%
}
%%=== end showexpl ==================================================
@@ -60,16 +76,19 @@
\makeatletter
%%=== some settings =================================================
+\makeindex
\setlength{\parskip}{.5\baselineskip}
\def\tableofcontents{\@starttoc{toc}}
\renewcommand\l@subsection{\@dottedtocline{2}{1.5em}{3.15em}}
\psset{gridcolor=gray,gridlabelcolor=gray}
+\captionsetup{labelfont=bf,labelsep=period}
+\captionsetup[subfloat]{labelfont=footnotesize}
%%=== end some settings =============================================
%%=== headers =======================================================
\fancyhf{}
-\rhead{{\sffamily\bfseries\thepage}}
+\rhead{{\sffamily\thepage}}
\lhead{\nouppercase{\leftmark}}
\renewcommand{\headrule}{\psline[linewidth=.4pt,linecolor=Tangerine](\textwidth,0)}
\pagestyle{fancy}
@@ -80,8 +99,9 @@
\definecolor{Salmon}{RGB}{178,51,51}
\definecolor{BrickRed}{RGB}{233,49,16}
\definecolor{TealBlue}{RGB}{16,83,165}
-\definecolor{ForestGreen}{RGB}{0,153,0}
+\definecolor{ForestGreen}{RGB}{10,112,43}
\definecolor{Tangerine}{RGB}{244,176,108}
+\definecolor{DarkBrown}{RGB}{130,65,0}
%%=== end colors ====================================================
@@ -104,13 +124,22 @@
%%=== new macros ====================================================
\def\PSTSigSys{\texttt{pst-sigsys}\xspace}
-\def\CMD#1{{\ttfamily\textbackslash #1}}
+\def\CMDn#1{\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\KWDm#1{\mathtt{#1}}
+\def\KWD#1{\KWDn{#1}\index{#1@\texttt{#1}}}
+\def\PKGn#1{\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}
\def\Angle{\colorbox{TealBlue!20}{\{\rmit{angle}\}}\kern1pt}
\def\Coor{\@ifstar{(\rmit{coor})\xspace}{(\rmit{coor})}}
\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\Stuff{\@ifstar{\rmit{stuff}\xspace}{\{\rmit{stuff}\}}}
\def\List{\@ifstar{\rmit{list}\xspace}{\{\rmit{list}\}}}
%
@@ -202,7 +231,7 @@
\fi%
\rput(#2,#3){\psline[arrows=|<-](0,.5)}%
\rput(#2,#4){\psline[arrows=|<-](0,-.5)}%
-\rput(#2,#3){\rput[l]{90}(0,.65){\textcolor{#6}{\texttt{#7}}}}%
+\rput(#2,#3){\rput[l]{90}(0,.65){\textcolor{#6}{\KWD{#7}}}}%
}\ignorespaces}
%%--- end xdashline -------------
%
@@ -228,7 +257,7 @@
\fi%
\rput(#2,#4){\psline[arrows=|<-](-.5,0)}%
\rput(#3,#4){\psline[arrows=|<-](0,0)(.5,0)}%
-\rput(#3,#4){\rput[l](.65,0){\textcolor{#6}{\texttt{#7}}}}%
+\rput(#3,#4){\rput[l](.65,0){\textcolor{#6}{\KWD{#7}}}}%
}\ignorespaces}
%%--- end ydashline -------------
%
@@ -240,7 +269,7 @@
\ifx\@empty#1\@empty%
\noindent\textbf{Example \the\example@cnt.}\hspace{.5em}%
\else%
-\noindent\textbf{Example \the\example@cnt.}{{\normalfont\footnotesize(#1)}}\hspace{.5em}%
+\noindent\textbf{Example \the\example@cnt.}{{\normalfont\footnotesize\space(#1)}}\hspace{.5em}%
\fi}
%%--- end Example ---------------
%%===================================================================
@@ -251,7 +280,7 @@
\title{The \PSTSigSys Package}
\author{Farshid Delgosha}
\email{fdelgosha@gmail.com}
-\date{January 15, 2010}
+\date{June 18, 2010}
\thispagestyle{plain}
@@ -262,7 +291,7 @@
\begin{abstract}
-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 system, shading the region of convergence, creating an adder or a multiplier node, placing a framed node at a given coordinate, creating an up-sampler or a down-sampler node, sequentially connecting a list of nodes, and connecting a list of nodes to one node using any node-connecting macro. The author welcomes all comments for further improvements of this package and suggestions for adding new macros or features.
+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 system, shading the region of convergence, creating an adder or a multiplier node, placing a framed node at a given coordinate, creating an up-sampler or a down-sampler node, drawing the block diagram of a system, drawing adaptive systems, sequentially connecting a list of nodes, and connecting a list of nodes to one node using any node-connecting macro. The author welcomes all comments for further improvements of this package and suggestions for adding new macros or features.
\end{abstract}
@@ -274,7 +303,11 @@ This package is a collection of useful macros for disciplines related to signal
\section{Introduction}
-To use the \PSTSigSys package, add the command \CMD{usepackage\{pst-sigsys\}} to the preamble of the document. This package loads \texttt{pstricks} \cite{pstricks}, \texttt{pst-node} \cite{pst-node}, and \texttt{pst-xkey} \cite{pst-xkey} packages. Moreover, it activates polar coordinates through the \CMD{SpecialCoor} macro defined by the \texttt{pstricks} package. Hence, all macros support polar coordinates.
+To use the \PSTSigSys package, add the command
+
+\CMDn{usepackage\{pst-sigsys\}}
+
+\noindent to the preamble of the document. This package loads \PKG{pstricks} \cite{pstricks}, \PKG{pst-node} \cite{pst-node}, and \PKG{pst-xkey} \cite{pst-xkey} packages. Moreover, it activates polar coordinates through the \CMDn{SpecialCoor} macro defined by the \PKG{pstricks} package. Hence, all macros support polar coordinates. Simultaneously loading the \PSTSigSys package along with some other packages in regular {\TeX} might be impossible due to memory restrictions. If {\TeX} runs out of memory, load the \PKG{etex} package.
Section~\ref{sec:change log} keeps a change log from previous versions of the package. All macros defined by the \PSTSigSys package are introduced in Section~\ref{sec:macros}. The extra functionalities of the package are introduced in Section~\ref{sec:extras}. Many practical examples are provided in Section~\ref{sec:examples} that illustrate the applications of the introduced macros.
@@ -285,11 +318,13 @@ 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.2 (01/15/2010):} Five new macros \CMD{pstick}, \CMD{psTick}, \CMD{pssignal}, \CMD{ldotsnode}, and \CMD{ncstar} are added. The macros \CMD{pshtick}, \CMD{psvtick}, \CMD{pshTick}, and \CMD{psvTick} are not available any longer since their functionalities are carried out by the newly defined macros \CMD{pstick} and \CMD{psTick}. Codes for the macros \CMD{pscircleop}, \CMD{psframeop}, \CMD{psldots}, and \CMD{nclist} are updated. Four new keys \texttt{gratioWh}, \texttt{gratioWv}, \texttt{gratioHh}, and \texttt{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 \texttt{notelegant} is not available any longer. Instead, the new style \texttt{RoundCorners} is introduced. The styles \texttt{BraceUp}, \texttt{BraceDown}, \texttt{BraceLeft}, and \texttt{BraceRight} are not avaiable any longer. Instead, the macros \CMD{psBraceUp}, \CMD{psBraceDown}, \CMD{psBraceLeft}, and \CMD{psBraceRight} are defined. The option \texttt{pstadd} is not available any longer. If the package \texttt{pstricks-add} is loaded, the relevant styles are automatically defined. The macros \CMD{RE}, \CMD{IM}, \CMD{sRE}, and \CMD{sIM} are not available any longer because of their irrelevance to the objectives of the package.
+\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.1 (04/01/2009):} Four new macros \CMD{pshtick}, \CMD{psvtick}, \CMD{pshTick}, and \CMD{psvTick} are added. The codes of macros \CMD{psusampler} and \CMD{psdsampler} are updated. However, there is no change in their user interface.
-
-\item \textbf{version 1.0 (01/15/2009):} The fist version of the package.
+\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.
+
+\item \textbf{Version 1.1 (04/01/2009):} Four new macros \CMDn{pshtick}, \CMDn{psvtick}, \CMDn{pshTick}, and \CMDn{psvTick} are added. The codes of macros \CMDn{psusampler} and \CMDn{psdsampler} are updated. However, there is no change in their user interface.
+
+\item \textbf{Version 1.0 (01/15/2009):} The fist version of the package.
\end{itemize}
@@ -299,17 +334,17 @@ Section~\ref{sec:change log} keeps a change log from previous versions of the pa
\section{Macros}
\label{sec:macros}
-In this section, we introduce all the macros defined by the \PSTSigSys package. Every macro has some optional keys that can be assigned either directly inside brackets right after the macro name or through the \CMD{psset} macro provided by the \texttt{pstricks} package. In the syntax of every macro, the optional portions are identified by the shaded background. Unless directly stated, all coordinates specified by \Coor* could be either in the cartesian format $(x, y)$ or the polar format $(\rho; \theta)$\footnote{Recall that \PSTSigSys activates the polar coordinates on loading. Hence, there is no need to use the \CMD{SpecialCoor} macro.}. After the introduction of every macro, some examples are provided to illustrate the usage of that macro.
+In this section, we introduce all the macros defined by the \PSTSigSys package. Every macro has some optional keys that can be assigned either directly inside brackets right after the macro name or through the \CMDn{psset} macro provided by the \PKG{pstricks} package. In the syntax of every macro, the optional portions are identified by the shaded background. Unless directly stated, all coordinates specified by \Coor* could be either in the cartesian format $(x, y)$ or the polar format $(\rho; \theta)$\footnote{Recall that \PSTSigSys activates the polar coordinates on loading. Hence, there is no need to use the \CMDn{SpecialCoor} macro.}. After the introduction of every macro, some examples are provided to illustrate the usage of that macro.
-\subsection{psaxeslabels}
+\subsection{\CMDn{psaxeslabels}}
\begin{syntax}
\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 \CMD{psaxes} macro defined by the \texttt{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 \CMD{psaxes} macro, the use of \rmit{arrows} is optional. The keys specific to the \CMD{psaxeslabels} are summarized in Table~\ref{tab:psaxeslabels}.
+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}.
%%=======================================================================
\begin{figure}[ht!]
@@ -362,23 +397,23 @@ ylpos & {\normalfont\ttfamily l | r} & \texttt{r} & Position of the $y$-l
-\subsection{pstick}
+\subsection{\CMDn{pstick}}
\begin{syntax}
\CMD{pstick}\Keys\Angle\Coor\{\rmit{ticklength}\}
\end{syntax}
-As depicted in Figure~\ref{fig:pstick}, the \CMD{pstick} macro draws a straight line with length $2\rmit{ticklength}$ centered at \Coor* and angled \rmit{angle} with respect to the horizontal axis. If the optional parameter \rmit{angle} is absent, then it is assumed zero, i.e., the line becomes horizontal. This macro could be used for adding tick lines to coordinate axes in addition to many other usages.
+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)
%
-\pstick[style=Dash,linecolor=gray](0,0){2}
-\pstick{30}(0,0){2}
+\pstick[style=Dash,linecolor=gray](0,0){4}
+\pstick{30}(0,0){4}
%
-\dotnode[linecolor=red](0,0){org}
+\pnode(0,0){org}
\pssignal(0,-1){coor}{\textcolor{red}{\Coor}}
\ncline[linecolor=red]{->}{coor}{org}
%
@@ -386,37 +421,45 @@ As depicted in Figure~\ref{fig:pstick}, the \CMD{pstick} macro draws a straight
\rput[l](1.15;15){{\footnotesize\ttfamily\color{gray}angle}}
%
\psBraceUp*[linecolor=TealBlue]%
-(2;30)(0,0){{\ttfamily\footnotesize\color{TealBlue}ticklength}}
-%
-\psBraceUp*[linecolor=TealBlue]%
-(0,0)(-2;30){{\ttfamily\footnotesize\color{TealBlue}ticklength}}
+(2;30)(-2;30){{\ttfamily\footnotesize\color{TealBlue}ticklength}}
%
\end{pspicture}
\caption{\CMD{pstick} macro}
\label{fig:pstick}
\end{figure}
%%=======================================================================
+\begin{table}[ht!]
+\centering
+\caption{\CMD{pstick} keys}
+\label{tab:pstick}
+\begin{keytable}{.85in}
+angle & num & 0 & Tick angle \\
+\end{keytable}
+\end{table}
+%%=======================================================================
\begin{LTXexample}[width=7.5cm]
\begin{pspicture}[showgrid=true](-2,-1)(3,2)
\psaxeslabels(0,0)(-2,-1)(3,2){$x$}{$y$}
\pstick[linecolor=red](0,1){.2}
- \pstick[linecolor=blue]{90}(1,0){.2}
- \pstick[linecolor=green]{45}(2,0){.3}
- \pstick[arrows=|-|]{90}(-1,0){.3}
+ \pstick[arrows=|-|]{90}(-1,0){.5}
+ \psset{angle=45}
+ \pstick[arrows=->](0,0){1}
+ \pstick[linecolor=blue](1,0){.5}
+ \pstick[linecolor=green]{135}(2,0){.5}
\end{pspicture}
\end{LTXexample}
-\subsection{psTick}
+\subsection{\CMDn{psTick}}
\begin{syntax}
\CMD{psTick}\Keys\Angle\Coor
\end{syntax}
-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 \texttt{ticklength} key (Table~\ref{tab:psTick}). This macro is useful when multiple ticks are drawn all with the same length.
+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.
%%=======================================================================
\begin{table}[ht!]
@@ -424,7 +467,8 @@ Similar to \CMD{pstick}, the \CMD{psTick} macro draws a straight line centered a
\caption{\CMD{psTick} keys}
\label{tab:psTick}
\begin{keytable}{.85in}
-ticklength & num[dimen] & 0.075 & Tick length \\
+ticklength & num[dimen] & 0.15 & Tick length \\
+angle & num & 0 & Tick angle \\
\end{keytable}
\end{table}
%%=======================================================================
@@ -432,11 +476,12 @@ ticklength & num[dimen] & 0.075 & Tick length \\
\begin{LTXexample}[width=7.5cm]
\begin{pspicture}[showgrid=true](-2,-1)(3,2)
\psaxeslabels(0,0)(-2,-1)(3,2){$x$}{$y$}
- \psset{ticklength=.15}
+ \psset{ticklength=.5}
\psTick[linecolor=red](0,1)
- \psTick[linecolor=blue]{90}(1,0)
- \psTick[linecolor=green]{45}(2,0)
\psTick[arrows=|-|]{90}(-1,0)
+ \psTick[linecolor=blue]{90}(1,0)
+ \psset{angle=45}
+ \psTick[linecolor=green](2,0)
\end{pspicture}
\end{LTXexample}
@@ -444,13 +489,13 @@ ticklength & num[dimen] & 0.075 & Tick length \\
-\subsection{pssignal}
+\subsection{\CMDn{pssignal}}
\begin{syntax}
\CMD{pssignal}\Keys\Coor\Node\Stuff
\end{syntax}
-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 \texttt{signalsep} (Table~\ref{tab:pssignal}).
+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!]
@@ -495,14 +540,14 @@ signalsep & num[dimen] & $5$pt & Frame separation \\
-\subsection{psstem}
+\subsection{\CMDn{psstem}}
\begin{syntax}
\CMD{psstem}\Keys($x_0, \Delta$)\List \\
\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.} In case their values are not explicitly given, they are assumed $x_0 = 0$ and $\Delta = 1$. 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 place 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 \texttt{labelsep} key. The keys specific to the \CMD{psstem} macro are summarized in Table~\ref{tab:psstem}.
+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}.
%%=======================================================================
\begin{figure}[ht!]
@@ -511,7 +556,7 @@ The \CMD{psstem} macro plots the sequence defined by \List* that is a comma-sepa
% Sample
%-------------------------------------------------------
\subfloat[Sample sequence]{\label{subfig:psstem:sample}
-\begin{pspicture}[showgrid=flase](-1,-1)(4.5,3)
+\begin{pspicture}[showgrid=false](-1,-1)(4.5,3)
%
\psgrid[griddots=10,subgriddiv=1,gridlabels=0pt](4,2)
%
@@ -563,15 +608,16 @@ The \CMD{psstem} macro plots the sequence defined by \List* that is a comma-sepa
\caption{\CMD{psstem} macro}
\label{fig:psstem}
\end{figure}
-%%=======================================================================
+%=======================================================================
\begin{table}[ht!]
\centering
\caption{\CMD{psstem} keys}
\label{tab:psstem}
\begin{keytable}{2.75in}
-stemhead & style & * & Stem head. Possible choices are \texttt{*}, \texttt{o}, \texttt{>}, \texttt{<}, \texttt{>\kern.5pt>}, \texttt{<\kern.5pt<}, \texttt{|}, \texttt{)}, \texttt{(}, \texttt{>|}, and \texttt{<|}. \\
-stemtag & Boolean & \texttt{false} & Tagging the stems \\
-stemtagformat & format & \CMD{scriptstyle} & Tag format \\
+stemhead & style & * & Stem head. Possible choices are \texttt{*}, \texttt{o}, \texttt{>}, \texttt{<}, \texttt{>\kern.5pt>}, \texttt{<\kern.5pt<}, \texttt{|}, \texttt{)}, \texttt{(}, \texttt{>|}, and \texttt{<|}. \\
+stemtag & Boolean & \texttt{false} & Tagging the stems \\
+stemtagformat & format & \CMDn{scriptstyle} & Tag format \\
+killzero & Boolean & \texttt{false} & Removing zero-height stems \\
\end{keytable}
\end{table}
%%=======================================================================
@@ -602,6 +648,23 @@ stemtagformat & format & \CMD{scriptstyle} & Tag format \\
\begin{LTXexample}[width=7.75cm]
+\begin{pspicture}[showgrid=true](5,1)
+ \psset{stemhead=>}
+ \psstem{1,0,1}
+ \psset{linecolor=red,killzero}
+ \psstem(3,1){1,0,1}
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=7.75cm]
+\begin{pspicture}[showgrid=true](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)
\psstem[stemhead=*](0,1){1}
\psstem[stemhead=o](1,1){1}
@@ -624,13 +687,13 @@ stemtagformat & format & \CMD{scriptstyle} & Tag format \\
-\subsection{pszero}
+\subsection{\CMDn{pszero}}
\begin{syntax}
\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 \texttt{zeroradius} and it is incremented by \texttt{zeroradiusinc} for high order zeros. The line-width of all circles is determined by the \texttt{zerowidth} key. The key \texttt{order} determines the order of the zero. The key \texttt{scale} can be used to scale up or down the radius of the innermost circle (\texttt{zeroradius}), the radius increment (\texttt{zeroradiusinc}), and the line-width of all circles (\texttt{zerowidth}). Table~\ref{tab:pszero} summarizes keys corresponding to \CMD{pszero} and their default values.
+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.
%%=======================================================================
\begin{figure}[ht!]
@@ -688,13 +751,13 @@ scale & num & $1$ & Scale factor \\
-\subsection{pspole}
+\subsection{\CMDn{pspole}}
\begin{syntax}
\CMD{pspole}\Keys\Coor\Node
\end{syntax}
-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 key \texttt{scale} can be used to scale up or down the pole line-width (\texttt{polewidth}) and the pole length (\texttt{polelength}). The keys corresponding to the \CMD{pspole} macro are summarized in Table~\ref{tab:pspole}.
+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}.
%%=======================================================================
\begin{figure}[ht!]
@@ -705,9 +768,9 @@ This macro is used to generate a cross node, as shown in Figure~\ref{fig:pspole}
\pssignal(0,-1){coor}{\textcolor{red}{\Coor}}
\ncline[linecolor=red]{->}{coor}{org}
%
-\pstick[style=Dash,linecolor=gray](0,0){2}
-\psarc[linecolor=gray](0,0){1}{0}{45}
-\rput[l](1.15;22.5){\textcolor{gray}{$45^\circ$}}
+\pstick[style=Dash,linecolor=gray](0,0){3}
+\psarc[linecolor=gray](0,0){.75}{0}{45}
+\rput[l](.9;22.5){\textcolor{gray}{$45^\circ$}}
%
\pspole[polelength=2,linewidth=1pt](0,0){p}
%
@@ -724,8 +787,8 @@ This macro is used to generate a cross node, as shown in Figure~\ref{fig:pspole}
\caption{\CMD{pspole} keys}
\label{tab:pspole}
\begin{keytable}{1.125in}
-polewidth & num[dimen] & $0.7$pt & Cross line-width \\
polelength & num[dimen] & $0.12$ & Cross length \\
+polewidth & num[dimen] & $0.7$pt & Cross line-width \\
scale & num & $1$ & Scale factor \\
\end{keytable}
\end{table}
@@ -745,13 +808,13 @@ scale & num & $1$ & Scale factor \\
-\subsection{pscircleop}
+\subsection{\CMDn{pscircleop}}
\begin{syntax}
\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 \texttt{oplength} and \texttt{opwidth} keys, respectively. The line-width of the enclosing circle is separately controlled by the \texttt{linewidth} key. The distance between the circle and the cross is determined by the key \texttt{opsep}. The type of operation (whether plus or times) is controlled by the key \texttt{operation}. Another way of determining the operation inside the circle is through the key \texttt{angle} that determines the angle of the cross. The key \texttt{scale} can be used to scale up or down the cross line-width (\texttt{opwidth}), the cross length (\texttt{oplength}), the separation between the cross and the circle (\texttt{opsep}), and the circle line-width (\texttt{linewidth}). The keys corresponding to the \CMD{pscircleop} macro are summarized in Table~\ref{tab:pscircleop and psframeop}.
+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}.
%%=======================================================================
\begin{figure}[ht!]
@@ -762,7 +825,7 @@ This macro draws a cross inside a circle that are both centered at \Coor*. Then,
\pssignal(1;-105){coor}{\textcolor{red}{\Coor}}
\ncline[linecolor=red]{->}{coor}{org}
%
-\pstick[style=Dash,linecolor=gray](0,0){1.5}
+\pstick[style=Dash,linecolor=gray](0,0){3}
\psarc[linecolor=orange](0,0){.9}{0}{30}
\rput[l](1.05;15){{\ttfamily\footnotesize\color{orange}angle}}
%
@@ -784,8 +847,8 @@ This macro draws a cross inside a circle that are both centered at \Coor*. Then,
\caption{\CMD{pscircleop} and \CMD{psframeop} keys}
\label{tab:pscircleop and psframeop}
\begin{keytable}{3.1in}
-opwidth & num[dimen] & $0.7$pt & Cross line-width \\
oplength & num[dimen] & $0.125$ & Cross length \\
+opwidth & num[dimen] & $0.7$pt & Cross line-width \\
opsep & num[dimen] & $0.1$ & Separation between the cross and the frame \\
operation & {\normalfont\ttfamily plus|times} & \texttt{plus} & Operation \\
angle & angle & $0$ & Cross angle \\
@@ -811,7 +874,7 @@ scale & num & $1$ & Scale fact
-\subsection{psframeop}
+\subsection{\CMDn{psframeop}}
\begin{syntax}
\CMD{psframeop}\Keys\Coor\Node
@@ -836,13 +899,13 @@ This macro is very similar to the \CMD{pscircleop} macro with the same keys as i
-\subsection{psdisk}
+\subsection{\CMDn{psdisk}}
\begin{syntax}
\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 \texttt{fillcolor} key. This macro is used to shade the region of convergence of a system in the $z$ plane.
+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.
%%=======================================================================
\begin{figure}[ht!]
@@ -874,13 +937,13 @@ This macro draws a solid disk centered at \Coor* with radius \rmit{radius} as de
-\subsection{psring}
+\subsection{\CMDn{psring}}
\begin{syntax}
\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 \texttt{fillcolor} key. This macro is used to shade the region of convergence of a system in the $z$ plane.
+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.
%%=======================================================================
\begin{figure}[ht!]
@@ -914,13 +977,13 @@ This macro draws a solid ring centered at \Coor* with inner radius \rmit{inner-r
-\subsection{psdiskc}
+\subsection{\CMDn{psdiskc}}
\begin{syntax}
\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 \texttt{fillcolor} key. This macro is used to shade the region of convergence of a system in the $z$ plane.
+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.
%%=======================================================================
\begin{figure}[ht!]
@@ -937,11 +1000,11 @@ As shown in Figure~\ref{fig:psdiskc}, this macro shades the area confined betwee
\dotnode(-2,-1.5){b} \nput{225}{b}{$(-x_0, -y_0)$}
%
\rput(0,2){%
-\pstick[arrows=|<->|](0,0){2}%
+\pstick[arrows=|<->|](0,0){4}%
\rput*(0,0){$2x_0$}}
%
\rput(-2.5,0){%
-\pstick[arrows=|<->|]{90}(0,0){1.5}%
+\pstick[arrows=|<->|]{90}(0,0){3}%
\rput*{90}(0,0){$2y_0$}}
%
\end{pspicture}
@@ -960,13 +1023,13 @@ As shown in Figure~\ref{fig:psdiskc}, this macro shades the area confined betwee
-\subsection{psldots}
+\subsection{\CMDn{psldots}}
\begin{syntax}
-\CMD{psldots}\Keys\Coor
+\CMD{psldots}\Keys\Angle\Coor
\end{syntax}
-As depicted in Figure~\ref{fig:psldots}, this macro draws three dots each with diameter \texttt{ldotssize} on the same straight line, where the middle one is centered at \Coor*. Every two consecutive dots are separated by \texttt{ldotssep}. The angle of the line on which the dots lie with the horizontal axis is controlled by the key \texttt{angle}. The key \texttt{scale} can be used to scale up or down the dot diameter (\texttt{ldotssize}) and the dot separation (\texttt{ldotssep}). The keys corresponding to \CMD{pslodots} are summarized in Table~\ref{tab:psldots}.
+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}.
%%=======================================================================
\begin{figure}[ht!]
@@ -998,7 +1061,7 @@ As depicted in Figure~\ref{fig:psldots}, this macro draws three dots each with d
\psline[style=Dash](.5,0)(.5,1)
\MarkDistInner(0,1){.5}[a]{{\footnotesize\ttfamily\color{TealBlue}ldotssize}}
%
-\psldots[ldotssize=1,ldotssep=3,angle=15,linecolor=gray](0,0)
+\psldots[ldotssize=1,ldotssep=3,linecolor=gray]{15}(0,0)
%
\dotnode[linecolor=red](0,0){org}
\pssignal(-2.5,1){coor}{\textcolor{red}{\Coor}}
@@ -1026,11 +1089,11 @@ scale & num & $1$ & Scale factor \\
\begin{LTXexample}[width=8.5cm]
\begin{pspicture}[showgrid=true](6,2)
\psldots(1,1)
- \psldots[angle=45](2,1)
- \psldots[angle=90,ldotssize=.1](4,1)
- \psldots[angle=90,ldotssep=.5](3,1)
- \psset{linecolor=blue}
- \psldots[angle=90,scale=3](5,1)
+ \psldots{45}(2,1)
+ \psldots[ldotssize=.1]{120}(3,1)
+ \psset{linecolor=blue,angle=90}
+ \psldots[ldotssep=.5](4,1)
+ \psldots[scale=3](5,1)
\end{pspicture}
\end{LTXexample}
@@ -1038,13 +1101,13 @@ scale & num & $1$ & Scale factor \\
-\subsection{ldotsnode}
+\subsection{\CMDn{ldotsnode}}
\begin{syntax}
-\CMD{ldotsnode}\Keys\Coor\Node
+\CMD{ldotsnode}\Keys\Angle\Coor\Node
\end{syntax}
-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 \texttt{signalsep}.
+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}.
%%=======================================================================
\begin{figure}[ht!]
@@ -1057,7 +1120,7 @@ This macro is very similar to the \CMD{psldots} macro. The only difference is th
\psarc(0,0){4.5}{0}{15}
\rput[l](4.65;7.5){{\footnotesize\ttfamily\color{Salmon}angle}}
%
-\psldots[ldotssize=1,ldotssep=3,angle=15,linecolor=gray](0,0)
+\psldots[ldotssize=1,ldotssep=3,linecolor=gray]{15}(0,0)
%
\dotnode[linecolor=red](0,0){org}
\pssignal(0,-1.5){coor}{\textcolor{red}{\Coor}}
@@ -1083,7 +1146,8 @@ This macro is very similar to the \CMD{psldots} macro. The only difference is th
\pssignal(1.5;90){b}{$b$}
\pssignal(1.5;180){c}{$c$}
\pssignal(1.5;270){d}{$d$}
- \ldotsnode(0,0){dots}
+ \psset{signalsep=.25}
+ \ldotsnode{45}(0,0){dots}
%-----------------
\ncline{a}{dots}
\ncline{b}{dots}
@@ -1096,39 +1160,41 @@ This macro is very similar to the \CMD{psldots} macro. The only difference is th
-\subsection{psblock}
+\subsection{\CMDn{psblock}}
\begin{syntax}
\CMD{psblock}\Keys\Coor\Node\Stuff
\end{syntax}
-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 \texttt{framesep} key.
+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=9cm]
-\begin{pspicture}[showgrid=true](7,2)
+\begin{LTXexample}[width=7cm]
+\begin{pspicture}[showgrid=true](6,2)
\pssignal(0,1){x}{$x[n]$}
\psblock(2,1){a}{$z^{-1}$}
- \psblock(5,1){b}{$h[n], H(z)$}
- \pssignal(7,1){y}{$y[n]$}
+ \psblock(4,1){b}{$h[n], H(z)$}
+ \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}
-\subsection{psfblock}
+\subsection{\CMDn{psfblock}}
\begin{syntax}
\CMD{psfblock}\Keys\Coor\Node\Stuff
\end{syntax}
-This macro is very similar to the \CMD{psblock} macro except that the size of the frame is controlled by the key \texttt{framesize}. The frame size is specified as \texttt{framesize=\rmit{num1[dimen]} \rmit{num2[dimen]}} 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.
+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)
@@ -1138,17 +1204,144 @@ This macro is very similar to the \CMD{psblock} macro except that the size of th
\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}
+
+
+
+
+\subsection{\CMDn{psadaptive}}
+
+\begin{syntax}
+\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}).
+
+%%=======================================================================
+\begin{figure}[ht!]
+\centering
+\begin{pspicture}[showgrid=false](-4,-1.5)(1.5,1.5)
+%
+\psfblock[framesize=2 1](0,0){A}{{\large\color{gray}\NodeA*}}
+\dotnode[linecolor=red!50](0,0){CenterA}
+\pssignal(-2.75,0){LabelA}{{\footnotesize\color{red!50}center of \NodeA*}}
+\ncline[linecolor=red!50]{->}{LabelA}{CenterA}
+%
+\pnode(1.5;50){B}
+\pnode(-1.5;50){C}
+\nclist{ncline}{B,A,C}
+\nput{90}{B}{{\footnotesize\color{gray}\NodeB*}}
+\nput{-90}{C}{{\footnotesize\color{gray}\rmit{node C}}}
+%
+\end{pspicture}
+\caption{\CMD{psadaptive} macro}
+\label{fig:psadaptive}
+\end{figure}
+%%=======================================================================
+\begin{table}[ht!]
+\centering
+\caption{\CMD{psadaptive} keys}
+\label{tab:psadaptive}
+\begin{keytable}{1.25in}
+aoffset & num & $0$ & Horizontal offset \\
+\end{keytable}
+\end{table}
+%%=======================================================================
+
+
+\begin{LTXexample}[width=7.5cm]
+\begin{pspicture}[showgrid=true](-3,-1)(3,1)
+ \psblock(-1.5,0){H}{$H(z)$}
+ \psadaptive{->}{H}(-.5,-.75){Ha}
+ %-----------------
+ \psblock(1.5,0){H}{$H(z)$}
+ \psadaptive{-*}{H}(1;-45){Ha}
\end{pspicture}
\end{LTXexample}
+\begin{LTXexample}[width=7.5cm]
+\begin{pspicture}[showgrid=true](-3,-1)(3,1)
+ \psblock(-1.5,0){H}{$H(z)$}
+ \psadaptive[aoffset=-.5]{->}{H}(.5,-.75){Ha}
+ %-----------------
+ \psblock(1.5,0){H}{$H(z)$}
+ \psadaptive[aoffset=.5]{->}{H}(.5,.75){Ha}
+\end{pspicture}
+\end{LTXexample}
+
-\subsection{psusampler}
+
+\subsection{\CMDn{psknob}}
+
+\begin{syntax}
+\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}.
+
+%%=======================================================================
+\begin{figure}[ht!]
+\centering
+\begin{pspicture}[showgrid=false](-1.5,-2)(2.25,1.5)
+%
+\pnode(0,0){org}
+\pssignal(0,-1.75){coor}{\textcolor{red}{\Coor}}
+\ncline[linecolor=red]{->}{coor}{org}
+%
+\psknob[radius=1.15,knoblength=4](0,0){knob}
+%
+\pstick[style=Dash,linecolor=gray](0,0){3}
+\psBraceUp*[linecolor=TealBlue]%
+(2;45)(-2;45){{\ttfamily\footnotesize\color{TealBlue}knoblength}}
+%
+\psarc[linecolor=orange](0,0){.65}{0}{45}
+\rput[l](.7;22.5){{\ttfamily\footnotesize\color{orange}knobangle}}
+%
+\end{pspicture}
+\caption{\CMD{psknob} macro}
+\label{fig:psknob}
+\end{figure}
+%%=======================================================================
+\begin{table}[ht!]
+\centering
+\caption{\CMD{psknob} keys}
+\label{tab:psknob}
+\begin{keytable}{.95in}
+knobwidth & num[dimen] & $0.7$pt & Line width \\
+knoblength & num[dimen] & $1$ & Line length \\
+knobangle & num & $45$ & Line angle \\
+radius & num[dimen] & $0.25$cm & Circle radius \\
+scale & num & $1$ & Scale factor \\
+\end{keytable}
+\end{table}
+%%=======================================================================
+
+
+\begin{LTXexample}[width=7.5cm]
+\begin{pspicture}[showgrid=true](6,4)
+ \psknob(1,1){w1}
+ \nput{180}{w1}{$w_1$}
+ \psknob[knoblength=2](3,1){w2}
+ \nput{0}{w2}{$w_2$}
+ \psknob[knobangle=90](5,1){w3}
+ \psknob[knobwidth=1.5pt](1,3){w4}
+ \psknob[scale=2.5](3,3){w5}
+ \psset{radius=.5,knoblength=2}
+ \psknob[arrows=-*](5,3){w6}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
+
+\subsection{\CMDn{psusampler}}
\begin{syntax}
\CMD{psusampler}\Keys\Coor\Node\Stuff
@@ -1158,9 +1351,9 @@ This macro is similar to the \CMD{psfblock} except that \Stuff* is placed next t
\begin{LTXexample}[width=8cm]
\begin{pspicture}[showgrid=true](6,2)
- \pssignal(0,1){x}{$x[n]$}
+ \pssignal(.5,1){x}{$x[n]$}
\psusampler[framesize=1 .75](3,1){a}{2}
- \pssignal(6,1){y}{$y[n]$}
+ \pssignal(5.5,1){y}{$y[n]$}
%-----------------
\psset{arrows=->}
\ncline{x}{a}
@@ -1172,7 +1365,7 @@ This macro is similar to the \CMD{psfblock} except that \Stuff* is placed next t
-\subsection{psdsampler}
+\subsection{\CMDn{psdsampler}}
\begin{syntax}
\CMD{psdsampler}\Keys\Coor\Node\Stuff
@@ -1182,9 +1375,9 @@ This macro is similar to the \CMD{psfblock} except that \Stuff* is placed next t
\begin{LTXexample}[width=8cm]
\begin{pspicture}[showgrid=true](6,2)
- \pssignal(0,1){x}{$x[n]$}
+ \pssignal(.5,1){x}{$x[n]$}
\psdsampler[framesize=1 .75](3,1){a}{3}
- \pssignal(6,1){y}{$y[n]$}
+ \pssignal(5.5,1){y}{$y[n]$}
%-----------------
\psset{arrows=->}
\ncline{x}{a}
@@ -1195,7 +1388,7 @@ This macro is similar to the \CMD{psfblock} except that \Stuff* is placed next t
-\subsection{nclist}
+\subsection{\CMDn{nclist}}
\begin{syntax}
\CMD{nclist}\Keys\Arrows\{\rmit{nc-macro}\}\List \\
@@ -1212,9 +1405,9 @@ This macro is very useful when sequentially connecting several nodes using a sin
\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 \; \mathtt{ncl}_2 \; l_2, n_3 \; \mathtt{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 $\mathtt{ncl}_i$ for all $i = 2, 3, \dotsc$. If for some $i$, $\mathtt{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 $\mathtt{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 \; \mathtt{ncl}_i \; \{\{l_i\}\}$.
+ \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.
\end{enumerate}
\end{itemize}
@@ -1271,7 +1464,7 @@ This macro is very useful when sequentially connecting several nodes using a sin
-\subsection{ncstar}
+\subsection{\CMDn{ncstar}}
\begin{syntax}
\CMD{ncstar}\Keys\Arrows\{\rmit{nc-macro}\}\List\{\rmit{Node}\} \\
@@ -1284,7 +1477,7 @@ This macro is used to connect several nodes to a single node. It is also capable
\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 \; \mathtt{ncl}_1 \; l_1, n_2 \; \mathtt{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 $\mathtt{ncl}_i$ for all $i = 1, 2, \dotsc$. If for some $i$, $\mathtt{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 \; \mathtt{ncl}_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]
@@ -1328,19 +1521,19 @@ This macro is used to connect several nodes to a single node. It is also capable
\section{Extras}
\label{sec:extras}
-In addition to the macros introduced in Section~\ref{sec:macros}, the \PSTSigSys package defines some extra styles and brace macros introduced in this section. Usages of these styles and macros are shown in Section~\ref{sec:examples} with some examples.
+In addition to the macros introduced in Section~\ref{sec:macros}, the \PSTSigSys package defines some extra styles, brace macros, and new keys that are introduced in this section. Their usages are shown in Section~\ref{sec:examples} with some examples.
\subsection{New Styles}
-The \PSTSigSys package defines a few useful PSTricks styles for drawling arrows and dashed lines as shown in Figure~\ref{fig:styles}. Some of these styles, which are shown in Figure~\ref{subfig:pstricks-add styles}, can be used only with the \texttt{pstricks-add} package.
+The \PSTSigSys package defines a few useful PSTricks styles for drawling arrows and dashed lines as shown in Figure~\ref{fig:styles}. Some of these styles, which are shown in Figure~\ref{subfig:pstricks-add styles}, can be used only with the \PKG{pstricks-add} package.
%%=======================================================================
\begin{figure}[ht!]
\centering
%%----------------------------------
-\subfloat[\texttt{pstricks} styles\label{subfig:pstricks styles}]{%
+\subfloat[\PKGn{pstricks} styles\label{subfig:pstricks styles}]{%
\begin{pspicture}[showgrid=false](0,-.5)(5,5)
%
\rput[l](0,4.5){Default arrow}
@@ -1368,7 +1561,7 @@ The \PSTSigSys package defines a few useful PSTricks styles for drawling arrows
%%----------------------------------
\hspace{1cm}
%%----------------------------------
-\subfloat[\texttt{pstricks-add} styles\label{subfig:pstricks-add styles}]{%
+\subfloat[\PKGn{pstricks-add} styles\label{subfig:pstricks-add styles}]{%
\begin{pspicture}[showgrid=false](0,-.5)(5,5)
%
\rput[l](0,.75){ArrowIn}
@@ -1384,7 +1577,15 @@ The \PSTSigSys package defines a few useful PSTricks styles for drawling arrows
\end{figure}
%%=======================================================================
-In addition, the \PSTSigSys package defines the style \texttt{RoundCorners} that makes the following settings.
+\begin{LTXexample}[width=7.5cm]
+\begin{pspicture}[showgrid=true](-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.
\begin{verbatim}
framesep=0.125
framearc=0.25
@@ -1393,10 +1594,26 @@ In addition, the \PSTSigSys package defines the style \texttt{RoundCorners} that
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)
+ \psset{style=RoundCorners,style=Arrow}
+ \pssignal(-2.5,0){x}{$x[n]$}
+ \dotnode(-1.25,0){dot}
+ \psblock(0,0){H}{$H(z)$}
+ \pscircleop(1.5,0){oplus}
+ \pssignal(3,0){y}{$y[n]$}
+ \nclist{ncline}{x,H,oplus,y}
+ \ncbar[angle=-90,arm=.75]{dot}{oplus}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
\subsection{Brace Macros}
-The \PSTSigSys package defines four new macros \CMD{psBraceUp}, \CMD{psBraceDown}, \CMD{psBraceRight}, and \CMD{psBraceLeft} that are derived from the \CMD{psbrace} macro (using the \CMD{newpsobject} macro) defined by the \texttt{pstricks-add} package. Their syntaxes are exactly the same as that of the \CMD{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. Their syntaxes are exactly 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)
@@ -1426,25 +1643,25 @@ The \PSTSigSys package defines four new macros \CMD{psBraceUp}, \CMD{psBraceDown
\subsection{Golden Ratio}
-The \PSTSigSys package defines four keys \texttt{gratioWh}, \texttt{gratioWv}, \texttt{gratioHh}, and \texttt{gratioHv} for determining the frame size by the golden ratio $\varphi$ defined as
+The \PSTSigSys package defines four keys \KWD{gratioWh}, \KWD{gratioWv}, \KWD{gratioHh}, and \KWD{gratioHv} for determining the frame size by the golden ratio $\varphi$ defined as
\[
\varphi = \frac{1 + \sqrt{5}}{2} \approx 1.61803398875\enspace.
\]
-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 \texttt{gratio} keys, the capital letters \texttt{W} and \texttt{H} stand for the width and the height of the frame, respectively. The ending letters \texttt{h} and \texttt{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 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.
\begin{itemize}
-\item The key assignment $\mathtt{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 $\mathtt{gratioWv} = a$ sets the width of the frame to $a$ and the height to $a \varphi$ as in Figure~\ref{subfig:gratioWv}.
-\item The key assignment $\mathtt{gratioHh} = a$ sets the height of the frame to $a$ and the width to $a \varphi$ as in Figure~\ref{subfig:gratioHh}.
-\item The key assignment $\mathtt{gratioHv} = a$ sets the height of the frame to $a$ and the width to $a / \varphi$ as in Figure~\ref{subfig:gratioHv}.
+\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}.
+\item The key assignment $\KWDm{gratioHh} = a$ sets the height of the frame to $a$ and the width to $a \varphi$ as in Figure~\ref{subfig:gratioHh}.
+\item The key assignment $\KWDm{gratioHv} = a$ sets the height of the frame to $a$ and the width to $a / \varphi$ as in Figure~\ref{subfig:gratioHv}.
\end{itemize}
%%=======================================================================
\begin{figure}[ht!]
\centering
%%----------------------------------
-\subfloat[$\mathtt{gratioWh} = a$ \label{subfig:gratioWh}]{
+\subfloat[$\KWDm{gratioWh} = a$ \label{subfig:gratioWh}]{
\begin{pspicture}[showgrid=false](-1.5,-1.5)(1.5,1.5)
%
\fnode[gratioWh=2](0,0){a}
@@ -1463,7 +1680,7 @@ The four aforementioned keys set one of the edges of a frame as given by the use
%%----------------------------------
\hspace{.5cm}
%%----------------------------------
-\subfloat[$\mathtt{gratioWv} = a$ \label{subfig:gratioWv}]{
+\subfloat[$\KWDm{gratioWv} = a$ \label{subfig:gratioWv}]{
\begin{pspicture}[showgrid=false](-1.5,-1.5)(1.5,1.5)
%
\fnode[gratioWv=1.23607](0,0){a}
@@ -1482,7 +1699,7 @@ The four aforementioned keys set one of the edges of a frame as given by the use
%%----------------------------------
\hspace{.5cm}
%%----------------------------------
-\subfloat[$\mathtt{gratioHh} = a$ \label{subfig:gratioHh}]{
+\subfloat[$\KWDm{gratioHh} = a$ \label{subfig:gratioHh}]{
\begin{pspicture}[showgrid=false](-1.5,-1.5)(1.5,1.5)
%
\fnode[gratioHh=1.23607](0,0){a}
@@ -1501,7 +1718,7 @@ The four aforementioned keys set one of the edges of a frame as given by the use
%%----------------------------------
\hspace{.5cm}
%%----------------------------------
-\subfloat[$\mathtt{gratioHv} = a$ \label{subfig:gratioHv}]{
+\subfloat[$\KWDm{gratioHv} = a$ \label{subfig:gratioHv}]{
\begin{pspicture}[showgrid=false](-1.5,-1.5)(1.5,1.5)
%
\fnode[gratioHv=2](0,0){a}
@@ -1525,61 +1742,99 @@ 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)
+ \psfblock[gratioWh=1](.5,1){a}{a}
+ \psfblock[gratioWv=1](2,1){b}{b}
+ \psfblock[gratioHh=1](3.5,1){c}{c}
+ \psfblock[gratioHv=1](5,1){d}{d}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\subsection{Frame Width and Height}
+
+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)
+ \psset{framesize=1 .5}
+ \psfblock[framewidth=.5](1,1){a}{a}
+ \psfblock[frameheight=1](3,1){b}{b}
+ \psdsampler(5,1){c}{2}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\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.
+
+
+\begin{LTXexample}[width=7.5cm]
+\begin{pspicture}[showgrid=true](6,1)
+ \psset{fillstyle=crosshatch*}
+ \psframe[fillcolor=red](1,0)(2,1)
+ \psframe[FillColor=blue](3,0)(4,1)
+\end{pspicture}
+\end{LTXexample}
+
+
+
%%=======================================================================
%% Examples
%%=======================================================================
-\lstset{pos=t}
\section{Examples}
\label{sec:examples}
-In this section, we provide some examples to illustrate the benefits and usages of the macros and styles 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.
+
+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}
-\Example{use \texttt{pstricks-add}} Show the complex number $c = a + j b = \rho e^{j\theta}$ as a point in the complex plane.
+\Example{use \PKG{pstricks-add}} Show the complex number $c = a + j b = \rho e^{j\theta}$ as a point in the complex plane.
-\bigskip
-\begin{LTXexample}
+\begin{LTXexample}[width=5.5cm]
\begin{pspicture}[showgrid=true](-1,-1)(3,3)
%--- Drawing axes ---
\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}
- \ncline[style=Dash,linecolor=gray]{c}{a}
- \ncline[style=Dash,linecolor=gray]{c}{b}
+ \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}
\end{LTXexample}
-
+\lstset{pos=t}
\newpage
\subsection{Plotting}
-\Example{use \texttt{pst-plot}} Draw the sampled sequence $x[n] = x_c(\pi n/4)$, where
+\Example{use \PKG{pst-plot}} Draw the sampled sequence $x[n] = x_c(\pi n/4)$, where
\[
x_c(t) =
\begin{cases}
@@ -1600,14 +1855,14 @@ x_c(t) =
%--- x[n] ---
\psset{style=Stem,linecolor=teal,stemtagformat={\color{blue}\scriptstyle}}
- \psstem(-2,1){0,0,0}
+ \psstem(0,-1){0,0,0}
\psstem[stemtag](1,1){.707107,1,.707107,0,-.707107,-1,-.707107,0}
%--- Labeling the origin ---
\uput[-45](0,0){$\color{blue}\scriptstyle 0$}
%--- Horizontal ticks ----
- \psset{ticklength=.1,linecolor=gray}
+ \psset{linecolor=gray}
\psTick(0,1)
\psTick(0,-1)
\uput[180](0,1){$\scriptstyle 1$}
@@ -1622,7 +1877,7 @@ x_c(t) =
\subsection{Sampling}
-\Example{use \texttt{pst-plot} and \texttt{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 sequence 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$.
+\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)
@@ -1632,27 +1887,25 @@ x_c(t) =
\psaxeslabels(0,0)(-7,0)(7,0){$t$}{}
\rput[tl](-7,1){$x_c(t)$}
\psplot[style=Graph,linecolor=blue]{-6}{6}{x 90 mul sin .5 mul .5 add}
- \multirput(-6,0)(1,0){13}{\pstick[linecolor=gray]{90}(0,0){.075}}
+ \multirput(-6,0)(1,0){13}{\psTick[linecolor=gray]{90}(0,0)}
\multido{\nn=-6+1}{13}{\rput[t](\nn,-.25){$\scriptstyle\nn$}}
%--- s(t) ----
\rput(0,-1.5){\psaxeslabels(0,0)(-7,0)(7,0){$t$}{}
\rput[tl](-7,1){$s(t)$}
- \psset{style=Stem,style=Arrow,stemhead=>,linecolor=blue}
- \psstem(-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}
- \psset{style=Stem,style=Arrow,stemhead=>,linecolor=blue}
- \psstem(-6,1){.5} \psstem(-4,1){.5,1,.5}
- \psstem{.5,1,.5} \psstem(4,1){.5,1,.5}}
+ \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]$} \psset{style=Stem,style=Arrow,linecolor=blue}
- \psstem(-6,1){.5,0,.5,1,.5,0,.5,1,.5,0,.5,1,.5}}
+ \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}}
\end{pspicture}
\end{LTXexample}
@@ -1673,12 +1926,12 @@ H(z) = \frac{z^4 - 2z^3 + 2z^2}{z^2 - 4}
\psaxeslabels(0,0)(-3,-2)(3,2){$\Re$}{$\Im$}
\psset{linecolor=red}
- %--- Marking zeros ---
+ %--- Placing zeros ---
\pszero[order=2](0,0){z1}
\pszero(1,1){z2} \nput{90}{z2}{$1 + j$}
\pszero(1,-1){z3} \nput{-90}{z3}{$1 - j$}
- %--- Marking poles ---
+ %--- Placing poles ---
\pspole(2,0){p1} \nput{-90}{p1}{$2$}
\pspole(-2,0){p2} \nput{-90}{p2}{$-2$}
\end{pspicture}
@@ -1690,7 +1943,7 @@ H(z) = \frac{z^4 - 2z^3 + 2z^2}{z^2 - 4}
\subsection{Butterworth Filter}
-\Example{use \texttt{multido}} Draw the pole-zero diagram of a fifth-order Butterworth filter.
+\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)
@@ -1728,15 +1981,15 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$,
\bigskip
\begin{LTXexample}
-\begin{pspicture}[showgrid=true](-5,-4)(5,4)
+\begin{pspicture}[showgrid=true](-4,-3)(4,3)
%--- Shading ROCs ---
\psring[fillcolor=teal!30](0,0){.75}{2.25}
- \psdiskc[fillcolor=blue!30](0,0)(3.75,3){2.25}
+ \psdiskc[fillcolor=blue!30](0,0)(3,2.5){2.25}
%--- Drawing axes ---
- \psaxeslabels(0,0)(-4.25,-3.75)(4.75,4){$\Re$}{$\Im$}
+ \psaxeslabels(0,0)(-4,-3)(4,3){$\Re$}{$\Im$}
- %--- Marking poles ---
+ %--- Placing poles ---
\psset{linecolor=purple,labelsep=.05}
\pscircle(0,0){1.5}
\rput[b]{45}(1.68;135){{\scriptsize\color{purple}unit circle}}
@@ -1746,8 +1999,8 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$,
\pspole(-2.25,0){p2} \nput{225}{p2}{$\scriptstyle-\tfrac{3}{2}$}
%--- Labeling the stable and causal ROCs ---
- \rput*(1.5;45){{\scriptsize Stable}}
- \rput*(3.35;45){{\scriptsize Causal}}
+ \rput*(1.5;45){\scriptsize Stable}
+ \rput*(3;45){\scriptsize Causal}
\end{pspicture}
\end{LTXexample}
@@ -1762,44 +2015,42 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$,
\bigskip
\begin{LTXexample}
-%===========================
-% Parallel Combination
-%===========================
+%=== Parallel Combination ===
\begin{pspicture}[showgrid=true](-3,-1)(3,1)
- \psset{style=RoundCorners,gratioWh=1.25}
-
- %--- Defining blocks ---
- \pssignal(-3,0){x}{$x[n]$}
- \dotnode(-1.5,0){dot}
- \psfblock[fillstyle=solid,fillcolor=red!20](0,.75){H1}{$H_1(z)$}
- \psfblock[fillstyle=solid,fillcolor=blue!20](0,-.75){H2}{$H_2(z)$}
- \pscircleop(1.5,0){oplus}
- \pssignal(3,0){y}{$y[n]$}
-
- %--- Connecting blocks ---
- \psset{style=Arrow}
- \ncline{-}{x}{dot}
- \ncangle[angleA=90,angleB=180]{dot}{H1}
- \ncangle[angleA=-90,angleB=180]{dot}{H2}
- \ncangle[angleB=90]{H1}{oplus}
- \ncangle[angleB=-90]{H2}{oplus}
- \ncline{oplus}{y}
+ \psset{style=RoundCorners,gratioWh=1.25}
+
+ %--- Defining blocks ---
+ \pssignal(-3,0){x}{$x[n]$}
+ \dotnode(-1.5,0){dot}
+ \psfblock[FillColor=red!20](0,.75){H1}{$H_1(z)$}
+ \psfblock[FillColor=blue!20](0,-.75){H2}{$H_2(z)$}
+ \pscircleop(1.5,0){oplus}
+ \pssignal(3,0){y}{$y[n]$}
+
+ %--- Connecting blocks ---
+ \psset{style=Arrow}
+ \ncline{-}{x}{dot}
+ \ncangle[angleA=90,angleB=180]{dot}{H1}
+ \ncangle[angleA=-90,angleB=180]{dot}{H2}
+ \ncangle[angleB=90]{H1}{oplus}
+ \ncangle[angleB=-90]{H2}{oplus}
+ \ncline{oplus}{y}
\end{pspicture}
+%
\hspace{1cm}
-%========================
-% Series Combination
-%========================
-\begin{pspicture}[showgrid=true](-3,-1)(3,1)
- \psset{style=RoundCorners,gratioWh=1.25}
+%
+%=== Series Combination ===
+\begin{pspicture}[showgrid=true](-4,-1)(4,1)
+ \psset{style=RoundCorners,gratioWh=1.25}
- %--- Defining blocks ---
- \pssignal(-3,0){x}{$x[n]$}
- \psfblock[fillstyle=solid,fillcolor=red!20](-1.25,0){H1}{$H_1(z)$}
- \psfblock[fillstyle=solid,fillcolor=blue!20](1.25,0){H2}{$H_2(z)$}
- \pssignal(3,0){y}{$y[n]$}
+ %--- Defining blocks ---
+ \pssignal(-3.5,0){x}{$x[n]$}
+ \psfblock[FillColor=red!20](-1.25,0){H1}{$H_1(z)$}
+ \psfblock[FillColor=blue!20](1.25,0){H2}{$H_2(z)$}
+ \pssignal(3.5,0){y}{$y[n]$}
- %--- Connecting blocks ---
- \nclist[style=Arrow]{ncline}[naput]{x,H1,H2 $v[n]$,y}
+ %--- Connecting blocks ---
+ \nclist[style=Arrow]{ncline}[naput]{x,H1,H2 $v[n]$,y}
\end{pspicture}
\end{LTXexample}
@@ -1815,24 +2066,24 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$,
\begin{LTXexample}
\begin{pspicture}[showgrid=true](-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[fillstyle=solid,fillcolor=purple!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]$}
-
- %--- Connecting blocks ---
- \psset{style=Arrow}
- \nclist{ncline}[naput]{xc,otimes,conv $x_s(t)$,x}
- \ncline{s}{otimes}
-
- %--- Drawing the dashed frame ---
- \fnode[style=Dash,linecolor=purple,framesize=6 3.25](2.25,0){box}
- \nput{90}{box}{\textcolor{purple}{C/D Converter}}
+ \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}%
+ {\centering Conversion from impulse train to discrete-time sequence}}
+ \pssignal(6.5,0){x}{$x[n]$}
+
+ %--- Connecting blocks ---
+ \psset{style=Arrow}
+ \nclist{ncline}[naput]{xc,otimes,conv $x_s(t)$,x}
+ \ncline{s}{otimes}
+
+ %--- Drawing the dashed frame ---
+ \fnode[style=Dash,linecolor=purple,framesize=6 3.25](2.25,0){box}
+ \nput{90}{box}{\textcolor{purple}{C/D Converter}}
\end{pspicture}
\end{LTXexample}
@@ -1842,7 +2093,7 @@ Since the poles of the system are at $z = \tfrac{1}{2}$ and $z = -\tfrac{3}{2}$,
\subsection{Direct Form II}
-\Example{use \texttt{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}}
\]
@@ -1850,29 +2101,28 @@ 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](-5,-6)(5,1)
- \psset{style=RoundCorners,style=Arrow}
-
- %--- Defining blocks ---
- \dotnode(0,0){dot1}
- \multido{\nA=1+1,\nB=2+1,\ryA=-.9+-1.8,\ryB=-1.8+-1.8}{3}{%
- \psblock(0,\ryA){D\nA}{$z^{-1}$}
- \dotnode(0,\ryB){dot\nB}}
- \multido{\nn=1+1,\ry=0+-1.8}{3}{\pscircleop(-2,\ry){oplusL\nn}}
- \multido{\nn=1+1,\ry=0+-1.8}{3}{\pscircleop(2,\ry){oplusR\nn}}
- \pssignal(-4,0){x}{$x[n]$}
- \pssignal(4,0){y}{$y[n]$}
-
- %--- Connecting blocks ---
- \psset{style=Arrow}
- \nclist{ncline}{x,oplusL1,oplusR1,y}
- \nclist{ncline}{dot1,D1,D2,D3}
- \ncline{-}{D3}{dot4}
- \nclist{ncline}{oplusL3,oplusL2,oplusL1}
- \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$}
+ \psset{style=RoundCorners,style=Arrow}
+
+ %--- Defining blocks ---
+ \dotnode(0,0){dot1}
+ \multido{\nA=1+1,\nB=2+1,\ryA=-.9+-1.8,\ryB=-1.8+-1.8}{3}{%
+ \psblock(0,\ryA){D\nA}{$z^{-1}$} \dotnode(0,\ryB){dot\nB}}
+ \multido{\nn=1+1,\ry=0+-1.8}{3}{\pscircleop(-2,\ry){oplusL\nn}}
+ \multido{\nn=1+1,\ry=0+-1.8}{3}{\pscircleop(2,\ry){oplusR\nn}}
+ \pssignal(-4,0){x}{$x[n]$}
+ \pssignal(4,0){y}{$y[n]$}
+
+ %--- Connecting blocks ---
+ \psset{style=Arrow}
+ \nclist{ncline}{x,oplusL1,oplusR1,y}
+ \nclist{ncline}{dot1,D1,D2,D3}
+ \ncline{-}{D3}{dot4}
+ \nclist{ncline}{oplusL3,oplusL2,oplusL1}
+ \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$}
\end{pspicture}
\end{LTXexample}
@@ -1882,46 +2132,79 @@ H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{-
\subsection{Filter Bank}
-\Example{use \texttt{pstricks-add}} Draw the block diagram of an $M$-channel filter bank.
+\Example{} Draw the block diagram of an $M$-channel maximally-decimated filter bank.
\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}
- \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}}
-
- %--- 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}}
-
- %--- 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]$}
-
- %--- Connecting blocks ---
- \nclist{ncline}{x,h1,ds1,us1,g1,oplus1,y}
- \nclist{ncline}{dot2,h2,ds2,us2,g2,oplus2}
- \ncline{dot1}{dots1}
- \ncangle[angleA=-90,angleB=180]{dots1}{hM}
- \nclist{ncline}{hM,dsM,usM,gM}
- \ncangle[angleB=-90]{gM}{dots6}
- \nclist{ncline}{dots6,oplus2,oplus1}
+ \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}
+ \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}}
+
+ %--- 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}}
+
+ %--- 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]$}
+
+ %--- Connecting blocks ---
+ \nclist{ncline}{x,h1,ds1,us1,g1,oplus1,y}
+ \nclist{ncline}{dot2,h2,ds2,us2,g2,oplus2}
+ \ncline{dot1}{dots1}
+ \ncangle[angleA=-90,angleB=180]{dots1}{hM}
+ \nclist{ncline}{hM,dsM,usM,gM}
+ \ncangle[angleB=-90]{gM}{dots6}
+ \nclist{ncline}{dots6,oplus2,oplus1}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\newpage
+
+\subsection{System Identification}
+
+\Example{} Draw the block diagram of an adaptive system used for system identification.
+
+\begin{LTXexample}
+\begin{pspicture}[showgrid=true](-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}
+ \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}}
+
+ %--- Connecting blocks ---
+ \psset{style=Arrow}
+ \ncline{-}{x}{dot}
+ \ncangle[angleA=-90,angleB=180]{dot}{AdapSys}
+ \ncangle[angleA=90,angleB=180]{dot}{UnSys}
+ \ncangle[angleB=90]{UnSys}{oplus} \naput[npos=1.5]{$d_k$}
+ \ncline{AdapSys}{oplus}
+ \naput{$y_k$}
+ \ncangle[angleA=-90]{-}{oplus}{AdapSysA}
+ \naput[npos=.5]{$e_k$}
\end{pspicture}
\end{LTXexample}
@@ -1929,34 +2212,34 @@ H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{-
\newpage
-\subsection{Linear Combiner}
+\subsection{Adaptive Linear Combiner}
-\Example{use \texttt{multido}} Draw the block diagram of a linear combiner.
+\Example{use \PKG{multido}} Draw the block diagram of an adaptive linear combiner.
\begin{LTXexample}
\begin{pspicture}[showgrid=true](-4,-6)(4,.5)
- \psset{style=RoundCorners,gratioWh=1,radius=.25}
-
- %--- Signals ---
- \pssignal(-3.25,0){x1}{$x_1[n]$}
- \pssignal(-1.25,0){x2}{$x_2[n]$}
- \pssignal(1.25,0){x3}{$x_{k-1}[n]$}
- \pssignal(3.25,0){x4}{$x_k[n]$}
- \pssignal(0,-5){y}{$y[n]$}
-
- %--- Gains, dots, and the adder ---
- \Cnode(-3.25,-1.75){a1} \nput{180}{a1}{$a_1$}
- \Cnode(-1.25,-1.75){a2} \nput{180}{a2}{$a_2$}
- \Cnode(1.25,-1.75){a3} \nput{0}{a3}{$a_{k-1}$}
- \Cnode(3.25,-1.75){a4} \nput{0}{a4}{$a_k$}
- \psldots(0,0) \psldots(0,-1.75)
- \pscircleop(0,-3.5){oplus}
-
- %--- Connections ---
- \psset{style=Arrow}
- \multido{\nn=1+1}{4}{\ncline{x\nn}{a\nn}}
- \ncstar{ncline}{a1,a2,a3,a4}{oplus}
- \ncline{oplus}{y}
+ \psset{style=RoundCorners,gratioWh=1,radius=.25}
+
+ %--- Signals ---
+ \pssignal(-3.25,0){x1}{$x_1[n]$}
+ \pssignal(-1.25,0){x2}{$x_2[n]$}
+ \pssignal(1.25,0){x3}{$x_{k-1}[n]$}
+ \pssignal(3.25,0){x4}{$x_k[n]$}
+ \pssignal(0,-5){y}{$y[n]$}
+
+ %--- Gains, dots, and the adder ---
+ \psknob(-3.25,-1.75){w1} \nput{180}{w1}{$w_1$}
+ \psknob(-1.25,-1.75){w2} \nput{180}{w2}{$w_2$}
+ \psknob(1.25,-1.75){w3} \nput{0}{w3}{$w_{k-1}$}
+ \psknob(3.25,-1.75){w4} \nput{0}{w4}{$w_k$}
+ \psldots(0,0) \psldots(0,-1.75)
+ \pscircleop(0,-3.5){oplus}
+
+ %--- Connections ---
+ \psset{style=Arrow}
+ \multido{\nn=1+1}{4}{\ncline{x\nn}{w\nn}}
+ \ncstar[armA=.75,angleA=-90]{ncdiagg}{w1,w2,w3,w4}{oplus}
+ \ncline{oplus}{y}
\end{pspicture}
\end{LTXexample}
@@ -1966,5 +2249,6 @@ H(z) = \frac{1 - z^{-1} + 2z^{-2} + 3z^{-3}}{1 + z^{-1} - 0.5 z^{-2} + 0.75 z^{-
\bibliographystyle{plain}
\bibliography{pst-sigsys-doc}
+\printindex
\end{document} \ No newline at end of file