`A Case study
`in User Interface Synthesis
`
`Gabriel Robins
`
`Computer Science Department
`University of California, Los Angeles
`Los Angeles, CA 90024, USA
`gabriel@vaxb.isi.edu
`
`Abstract
`
`Signal constellation design is a major subtask of constructing an efficient communication
`system; it essentially entails trading-off error frequency against information throughput, a chief
`occupation of modem designers. We propose and implement an interactive tool for designing and
`simulating arbitrary signal constellations. 'To construct the user interface we have utilized Interface
`Builder, a new interactive tool that greatly facilitates the synthesis of arbitrary user interfaces
`through an object-oriented methodology. Using the Interface Builder package and the Signal
`Constellation Design Tool as the target prototype, we show how an order-of-magnitude improvement
`can be achieved in the effort required to produce a complex user interface. Our secondary goal is to
`try to dispel some of the mystique surrounding user interface synthesis on state-of-the-art
`workstations by describing in detail the construction of an interactive tool for computer-assisted
`learning.
`
`Keywords: User interfaces, User interface tools, Human computer instruction, Man-machine
`interaction, Computer-assisted learning, Simulation tools, Object-oriented systems.
`
`1.
`
`Introduction
`
`Signal constellation design is a major part of constructing an efficient communication system.
`This task essentially entails trading off error frequency against information throughput, a chief
`occupation of modem designers. We propose and implement an interactive tool for designing and
`simulating arbitrary signal constellations. While the actual code that simulates signal constellations
`is rather trivial in itself, the user interface to this code is quite complex. To design and construct
`this user interface we have used Interface Builder, a new interactive tool that greatly facilitates the
`synthesis of user interfaces through an object-oriented methodology. Using the Interface Builder
`package and the Signal Constellation Design Tool as the target prototype, we show how an order-of-
`magnitude improvement can be achieved in the effort required to produce a complex user interface,
`and then draw some conclusions regarding the synthesis of user interfaces in general.
`
`Our secondary goal is to try to dispel some of the mystique surrounding user interface synthesis
`on state-of-the-art workstations. Many otherwise informed researchers have very little experience
`in user-interface design, and consequently view user interface design as some sort of a black art, best
`left to specialized hackers to dabble in. By user interface design I mean a collection of functionality
`(running on a bit-mapped display workstation with a mouse) that interacts with the user in a
`friendly manner via menus, scroll bars, control buttons, icons, mouse clicks, and key strokes.
`
`We intend to show that, quite to the contrary of these myths, given the proper tools and
`methodology, the synthesis of complex user interfaces could be rather trivial. As a case in point, the
`user interface described in this document was implemented on a Macintosh, requiring only several
`days of coding, including the time to read the manuals and learn how to use the software. As a by-
`product of our inquiry, we have synthesized an interactive tool for computer-assisted learning.
`
`1
`
`LGE 1016
`
`
`
`The first half of this document explains signal constellation design in general and how Interface
`Builder was used to synthesis the user interface; numerous examples and illustrations are given. The
`rest of this document describes and illustrates the functionality and usage of the resulting signal
`constellation design tool. The annotated Common LISP source code is available upon request both in
`hardcopy and on a Macintosh diskette.
`
`2.
`
`Signal Constellation Design
`
`In designing an efficient communication scheme for band-limited channels, invariably of chief
`concern are the effects of noise and other kind of interference on the system [Forney, Gallager, Lang,
`Longstaff, and Qureshi]. To combat such interference, and while still aiming to achieve high
`throughput, one must carefully design an appropriate signal constellation [Carlyle] [Schwartz]
`[Sklar].
`
`The task of signal constellation design essentially entails trading off error frequency against
`information throughput and is a chief occupation of modem designers. We propose and implement an
`interactive tool to alleviate the task of designing and simulating arbitrary signal constellations. We
`would like our tool to graphically display the signal constellation in two dimensions, allowing the user
`to visually observe the progressing simulation under interactive modifications to the interference
`parameters of the system.
`
`2.1. The Desired Functionality
`
`In this section we describe
`in more detail the functionality that we would like our Signal
`Constellation Design Tool to exhibit. Later we explain how this functionality was actually achieved in
`the implementation.
`
`First, we would like to allow the user to select any of a number of "canned" standard signal
`constellations. For example, the user may elect to simulate an N-in-a-circle signal constellation and
`observe its performance under various levels of noise and distortion. Such selections should be done
`via mouse and menu interaction. Next the user may wish to select a certain probability distribution
`that would control the generation of random signal points. For example, the user may wish to select a
`Gaussian distribution with a specified variance.
`
`Once the user has selected a particular constellation
`to simulate/observe, as well as a
`probability distribution, that constellation should be drawn on the screen and the simulation may
`proceed. During the simulation, the user may interactively modify a number of system parameters,
`such as the phase jitter and the additive white Gaussian noise level. This would be accomplished by
`dragging "scroll-bars"
`identified with the corresponding parameters, or by directly typing in the
`desired values.
`
`Using a random number generator, random signals are generated, according to the probability
`distribution function specified earlier, and are plotted on the signal constellation diagram. After a
`few minutes, a cumulative scatter-plot of the received signals will become apparent, giving the user
`an indication of how that signal constellation is performing under the distortion parameter values set
`previously. A cumulative running total of the number of errors encountered so far should be
`displayed, as is the empirically derived error-probability (the number of errors divided by the
`number of signals transmitted.)
`
`The various commands should be also be accessible via clicking appropriate buttons, and
`alternatively also via menus and keystrokes.
`In addition, we wish to provide the user with some on-
`line help and information.
`
`2
`
`
`
`2.2. The Main Panel
`
`To make the appearance of the user interface more concrete, we give an illustration of how the
`main panel might appear:
`
`F, El
`
`Sina
`
`Coselto
`
`Deig
`
`Too
`
`- by 6
`
`e Roin
`
`I
`
`S
`
`S
`
`S
`
`S
`
`S
`
`S
`
`S
`
`U
`
`Noise Leuel (AWGN)
`
`u
`
`•Phase
`
`Jitter
`
`SClearD
`
`Simulate)j
`
`Suspendi
`
`•
`
`IChange Constellation
`
`•
`
`IChange Distribution
`
`Signals Sent: 0
`
`Misses: 0
`% error: 0
`
`in this case the
`To the left we see the main drawing area where the signal constellation appears;
`signal constellation itself consists of 20 points uniformly distributed on 4 concentric circles. At the
`top right we note the interference parameters, as well as the scroll bars and click boxes used to
`modify them. Below that we observe several "buttons" each of which will invoke a command if the
`user clicks it with the mouse. To the lower right we have the running statistics and error-ratio as
`the simulation progresses.
`
`In
`The user may invoke several operations simply by clicking the corresponding buttons.
`addition, all of these commands are also available from the pull-down menus, as well as through
`keystrokes (i.e. single character keyboard inputs). We may also have at the top a pull-down menu
`bar, representing the various commands the user may invoke; the menu bar is not visible in this
`diagram.
`
`After a simulation has been underway for some time, the main panel might appear as follows:
`
`3
`
`
`
`[
`
`Sina
`
`Coselto
`
`Deig
`
`Too
`
`- by GabrielRobins
`_
`_1[li]i~i~i
`l
`Noise Level (fAWGN)
`I ".. *. 1 1. 1 !!!
`L l! *ii IzHHO-2
`Phase Jitter
`
`Clear
`
`Simulate
`
`Suspend]
`
`Change Constellation)
`
`( Change Distributionj
`
`Signals Sent: 6310
`
`Misses: 70
`% error: 1.109350
`
`The clouds around the signal points represent where the randomly generated signals fell around the
`actual signal constellation points.
`In this simulation, given the specified noise parameters, we are
`observing an error rate over over one percent, an undesirable situation.
`
`2.3. The Constellation Editor
`
`The panel that allows the user to select and edit a signal constellation is called the Constellation
`Editor and may appear as follows:
`
`4
`
`
`
`==E-D
`0 N on a circle
`0 N by M rectangle
`( N on M circles
`
`0 User Specified
`
`R Activate Grid
`0 rectangular
`® Polar
`
`Constellation Editor
`
`I
`
`N: I'
`M:I
`Jot Size:
`
`Circles:
`ays:
`
`Help---
`
`,
`
`OK
`
`(Redraw
`
`) "
`
`Cancel
`
`R
`[Recompute)
`
`Delete 1[
`
`Add
`
`At the top left the user may select one of several "canned" signal constellations, parametrized by
`the variables M and N; these parameters are also user-specified: to change them, the user simply
`clicks in the corresponding box and types in the new value. An optional editing grid is available, and
`may be either rectangular or polar; the purpose of this grid is to make placement of individual
`constellation points more precise. The resolution of the grid may be controlled by the user; in the
`case of the rectangular grid, the number horizontal and vertical lines may be specified, and in the
`case of the polar grid, the number of circles and rays may be specified.
`
`The user may add or delete constellation points, redraw the display, or obtain on-line help,
`In addition, all of these commands are also available
`simply by clicking the corresponding buttons.
`from the pull-down menus, as well as through keystrokes (i.e. single character keyboard inputs).
`Note that one of the points of the constellation is highlighted; this is accomplished when the mouse is
`clicked anywhere in the drawing area, whereupon the closest point to the click becomes highlighted. A
`"delete" command would subsequently remove the highlighted point, while an "add" command would
`wait for a new mouse click and a new point would be added to the constellation at the location of that
`click.
`
`"Ok"
`The on-line help consists of several screens of information and will be discussed later.
`saves the current signal constellation and uses it from now on in all future calculations, while
`"Cancel" reverts back to the signal constellation previously in effect. Had the user selected a
`rectangular grid instead on a polar grid, the display might have appeared as follows:
`
`5
`
`
`
`-E-D
`
`0 N on a circle
`(§ N by M rectangle
`0 N on M circles
`O User Specified
`
`Dot Si;
`I
`
`Constellation Editor
`"N:
`Me':
`
`*
`
`0
`
`[ Activate Grid
`* rectangular
`0 Polar
`
`EI"I
`
`Horiz:
`
`Uert:
`
`Helpu]
`draw
`Re
`ompute 1
`
`=Reci
`
`OK
`
`Cancel
`
`Delete
`
`] L
`
`Add
`
`2.4. The Distribution Editor
`
`The panel that allows the user to select and edit a signal constellation is called the Distribution
`Editor and may appear as follows:
`
`Distribution Editor
`Distribution Editor
`
`ED
`
`I0
`0
`
`Uniform Distibution
`Gaussian Distribution
`Interval: E100
`
`IPloti
`graph
`
`Suspend
`-Clear _
`
`Data points:
`
`1570
`
`H Average:
`
`Y Average:
`
`0.67834
`
`-1.3751
`
`
`
`• :. .,
`
`
`
`• :;=
`
`"
`
`,:.
`
`.
`
`-Z
`
`He I p
`
`OK
`
`Cancel
`
`The user may select from either a uniform distribution on a given interval, or a Gaussian
`distribution with a given variance. The "Plot" command starts generating and plotting random points
`
`6
`
`
`
`according to the distribution specified by the user. The "Graph" command draws a graph of the
`probability density function
`in the X/Y plane. The "Help" command provides some on-line
`help/information, while the "Clear" command clears all the old points from the display. The average
`X and Y coordinates for the points generated so far are displayed to the lower left. "Ok" saves the
`current probability distribution and uses it from now on in all future calculations, while "Cancel"
`reverts back to the probability distribution previously in effect.
`
`The following diagram illustrates a "Plot" of the Gaussian distribution:
`
`-0I-
`
`Distribution Editor
`
`0 Uniform Distibution
`® Gaussian Distribution
`Variance:
`
`Z Plot
`
`suspend
`
`graph
`
`F Clear _
`
`Data points:
`
`1990
`
`H Average:
`
`-0.1984
`
`Y Average:
`
`0.94623
`
`4.. (cid:127)-
`
`'ýA
`. W"t
`
`WH..
`
`-;A
`
`Help
`
`OK
`
`J ( Cancel
`
`By now the reader would agree that although simulating a given signal constellation may by
`itself indeed constitute a trivial programming task, the construction of a user interface that would
`behave as described above is by contrast quite a formidable programming task.
`In practical terms,
`the former could be easily accomplished
`in a couple of hours, while the later may take many weeks to
`construct. Using Interface Builder and an object-oriented programming methodology, all of these
`tasks were implemented on a Macintosh in only several days of coding, including the time to read the
`manuals and learn how to use the software.
`
`3.
`
`Using
`
`Interface Builder
`
`the user interface using Interface Builder simply entails
`The process of constructing
`specifying inside an interactive environment the various menus, dialogue-boxes, scroll-bars, and
`menu-buttons, as well as where they should appear on the screen, and what should happened when
`each is clicked, selected, or dragged. The latter is accomplished by providing the relevant LISP code
`associated with each object. Experlnterface Builder performs all of the user-specified functions at
`the right times by usurping the workstation's "main event loop" and substituting the user-specified
`functionality as the default.
`
`The result is an attractive user interface which is easy to build and modify. This tool was
`pioneered by ExperTelligence and recently has met with competition from Apple Inc., namely the
`HyperCard program [Goodman].
`The importance of such tools has only recently been fully
`appreciated, although it has been known for quite some time that most of the effort associated with
`constructing computer software is invariably spent in programming the user interface; moreover, in
`
`7
`
`
`
`many cases the user interface directly determines the utility of a piece of software [Kaczmarek]
`[Robins].
`
`3.1. The Methodology of Interface Builder
`
`Interface Builder uses an object-oriented paradigm to create a user interface. Objects are
`rather general entities and may include windows, bitmaps, icons, records, scroll bars, buttons, text
`strings, regions, points, lines, files, and mouse clicks, among others. Objects communicate by
`sending messages to one another, and each object has a set of messages that it knows how to respond to;
`for example, a "redraw" message sent to an icon may cause the icon to redraw itself on the display. In
`addition to various useful default messages (or methods), a user may specify additional customized
`methods to be associated with an object. Messages may contain zero or more arguments and are
`essentially equivalent to function calls.
`
`An Interface Builder editor is simply a panel consisting of a collection of objects, each with an
`In addition to methods, an object may also have some local variables that
`associated set of methods.
`may store arbitrary values, including other objects. When an object is defined it is specified as a
`child of some other object, and thus automatically inherits all the methods that apply to its parent; in
`addition, new methods may be added to the child, specializing it from its parent. An object may have
`multiple parents, in which case it inherits all of their methods. The astute reader will note that this
`schema necessitates a conflict-resolution or priority scheme when methods clash through
`inheritance, but we do not consider these details particularly relevant and therefore do not pursue
`them any further here.
`
`As a concrete example, let us consider the Distribution Editor described earlier, whose panel
`inside Interface Builder appears as follows:
`
`________
`
`ED
`
`il--](cid:127)
`
`Panel of CHOOSEDISTFIIBUTION
`Panel of CHOOSEDISTRIBUTION
`
`__________
`
`0 Uniform Distibution
`) Gaussian Distribution
`• ~ r a c:...................................
`O
`Lariance
`~
`
`Plot
`
`suspend
`
`graph
`
`Clear
`
`ý0
`Data points:
`...............
`........
`f ........................
`......... .
`......
`H Average:
`:Y fluerage:
`
`,
`
`......: :.............
`.. _ _...............
`
`Help 7
`
`OK
`
`) ( Cancel
`
`J
`
`Each visible item is an object to which we may send various messages, and with which there is
`associated functionality that is invoked whenever during execution it is clicked, dragged, resized, etc.
`The icons at the lower left side are Interface Builder commands and are used to create the various
`types of objects that they represent pictorially. Once such an object is created, it may be further
`
`8
`
`
`
`modified, resized, and redefined.
`
`For example, the "Click" method of the main drawing area to the right may be specified by
`double-clicking on the main drawing area and filling in the required fields in the resulting dialogue
`panel as follows:
`
`Click Method
`
`(editor '<method> item point when modifiers):
`
`Display Method (editor '<method> item):
`
`IREDRAW-MAIN-CANUAS
`
`Init Method (editor '<method> item):
`
`NOOP
`
`Free Method (editor '<method> item):
`NOaP
`
`@ Enabled
`® En(cid:2)ibIed
`OK
`
`0 Disabled
`0 Diso bled
`(CancelT
`
`is a piece of code that will clear out and redraw that area.
`The function REDRAW-MAIN-CANVAS
`Similarly a text item may be specified to have a certain "click" method by creating it, double-clicking
`it, and filling in the appropriate fields in the resulting dialogue panel, as follows:
`
`TeHt:I
`
`-
`
`Return Method (editor '<method> item):
`
`TYPE-PHASE-JITTER
`
`0IOK
`
`Cancel
`
`Arbitrary icons and bitmaps may also be included as part of the editor panel being constructed.
`This is done by a dialogue as in the following example, in which a previously created bitmap is
`designated as part of the display of the forth Distribution Editor help screen:
`
`9
`
`
`
`Click Method
`(editor '<method> item point when modifiers):
`
`'IN.
`
`28395
`27594
`
`N(cid:127)W IN
`ý N
`,Gd.4hi1 W.ft
`
`Ui I I
`
`pictID:
`
`124340
`
`M.
`
`® Enabled 0 Disabled
`l0 Original Size
`
`OK
`
`j
`
`( Cancel
`
`Scroll bars of arbitrary sizes may be similarly created and placed in arbi
`specifying the appropriate "click" method, as well as minimum and maximum va
`interval:
`
`ary locations by
`es for the scroll
`
`Click Method (editor '<method> scrollbar):
`
`PH
`
`RS-
`
`UTE
`
`IS RLL
`
`I
`Min:
`
`Val:
`IJ
`
`0
`
`Ma.:
`
`jjooJ
`
`Cancel]
`
`Page Increment:
`L OK
`
`Each editor panel has associated with it a pull-down menu bar containing several menus, each
`containing several menu items. A menu item is an entry in a menu that when selected causes some
`code to be executed. Menus are also constructed interactively in Interface Builder. For each named
`menu entry the user specifies a function to be called when that entry is selected.
`In addition the user
`may optionally specify a keystroke (denoted by a slash and a letter) that will execute the same
`functionality without having to go through the menu system. This is useful to experienced users who
`would find it easier to memorize a keystroke rather than waste a longer time pulling down and
`clicking a menu item. The following example illustrates the process of defining a menu, and is part of
`
`10
`
`
`
`the main panel of the Signal Constellation Design Tool:
`
`File
`Edit
`Help / Information
`
`MIoS
`Menus of SC-TOOL
`
`InsertBefore»
`
`I
`
`I nsertFlfter>>
`
`Delete>>
`
`Clear/L
`Simulate/S
`Suspend/Z
`
`Menu Title:
`Control
`Menu Name (optional):
`
`Method (editor '<method> indeH):
`I
`I
`
`Item Title:
`
`T
`
`Method (editor '<method>):
`SI MULATE
`
`The shape and characteristics of the panel window may itself be modified; a window may be optionally
`movable, scrollable, resizable, closable, have a title, etc. Here is an example of how these attributes
`are interactively specified via a dialogue with Interface Builder:
`
`Title: I Signal Constellation
`.1 __
`Left: K 1 r fl
`
`__
`
`I
`
`Tnn
`
`a
`
`I
`
`I
`
`l]
`
`Right:
`±519
`Bottom:f327
`
`1
`
`procID:
`
`v visible
`
`] goRway
`
`L_ OK 1
`
`Cancel]
`
`To make the placement of fields more precise, Interface Builder provides a facility for aligning fields
`and also making groups of fields the same size. Such alignment/resizing helps to make the resulting
`panel more uniform in appearance;
`the alignment command is invoked by clicking on the appropriate
`
`11
`
`
`
`icon in the following dialogue panel:
`
`Cancel
`
`Proceeding
`in this manner we then construct inside Interface Builder the panel for
`Constellation Editor, which appears as follows:
`
`the
`
`Panel of CHOOSECONSTELLATION
`
`* N on a circle
`o N by M rectangle
`o N on M circles
`o User Specified
`
`E-] Actiuate Grid
`* rectangular
`0 Polar
`
`ot
`
`ize: 1
`
`I
`
`Horiz::
`
`Vert:
`
`EL
`EL
`
`Help
`
`Redraw
`
`0nK
`
`cancel
`
`[-Reompute
`
`Delete---
`
`Add
`
`fL ED TD
`
`1+01+01+ 1
`1+ 1+(ý)1+01+Xt1+
`6ýi
`Te ED
`
`121
`
`Finally we construct inside Interface Builder the main panel for the Signal Constellation Design
`Tool, which appears as follows:
`
`12
`
`
`
`..
`
`...........(cid:127).
`
`iPhase Jitter
`
`[Clear]
`
`(Sim late
`
`Suspend)
`
`Change Constellation
`
`Change Distribution
`................
`...............................
`Misses 0
`e r
`...............................
`.M...... .................
`i.e rror": O
`
`After several editor panels have been constructed, we obtain the following Interface Builder
`display window, where every line corresponds to an editor panel. The icons on the left (in top to
`bottom order) correspond to control item editing, menu editing, keymap editing, and subeditor
`editing, respectively:
`
`=--[
`if
`
`SC-Tool.rsrc
`ABOUTD I STR IBUT IONED ITOR3
`ti CHOOSECONSTELLATION
`SABOUTCONSTELLAT I ONED ITOR3
`A BO0UT D ISTR I BUTIO0N ED I TOR 4
`SCHOOSEDISTRIBUTION
`
`'S
`
`ABOUTSCTOOL
`
`M
`
`}
`
`Control item and menu editing has been discussed previously. Keymap editing entails binding
`If a function F is bound to a keyboard key K, then during
`various functionality to keyboard keys.
`execution, whenever the key K is pressed, function F gets called. This provides an easy means to
`quickly invoke certain user-defined commands and functions. A common practice is to bind certain
`keys to important menu items in order to save experienced users the time to pull down a menu;
`instead, only a single key needs to be pressed. The dialogue panel in which such key bindings are
`specified in Interface Builder is given here:
`
`13
`
`
`
`K=IM KeyMap of SC-TOOL
`L REDRAW-MAIN-CANUAS
`c DOCHANGECONSTELLATIO1
`d DOCHANGEDISTRIBUTION
`h DOFIBOUTSCDESIGNI
`q DOCLOSE
`
`W
`
`I1
`
`E
`
`--
`
`L
`
`--
`
`s
`
`Key:
`Method (editor '<method>):
`
`SSIMULATE
`
`4.
`
`Correctness and Functional Orthogonality
`
`Since the underlying paradigm of Interface Builder is object-oriented in nature, a certain
`functional orthogonality exists in the finished software in the following sense. Messages sent to an
`object do not directly affect any other object, and moreover objects can only communicate by passing
`"messages" to one another (actually there is another way for objects to communicate, namely by
`assignment/reading of global variables, but this practice is not encouraged). This implies that flow
`of control is highly constrained and therefore the formation of side-effects, although possible, is
`nevertheless tightly controlled.
`
`If a set of objects has been created and debugged and is found to operate correctly, adding new
`objects is not likely to affect any of the old objects or the correctness of their behavior. Moreover,
`the functionality of any of the objects may be invoked at any point in time via an appropriate message
`from any other object. Although at first glance this would seem to give rise to a certain "non-
`determinism" in execution,
`in practice, the programmer will be very informed about what code
`should/would execute under various circumstances, and my experience has shown that if the
`programmer has adhered to the standard object-oriented programming conventions, the "right thing"
`usually happens under even the most pathological circumstances.
`
`The programmer's code does not have to worry about a "main-event-loop" and about dispatching
`certain pieces of code depending upon what event has transpired, because Interface Builder usurps the
`system's "main-event-loop" already and does all
`the necessary dispatching based on the
`programmer's specifications. This takes much of the complexity out of the application code,
`complexity that would otherwise have had to be duplicated from scratch in each application. Thus
`considerable programmer effort is saved by this scheme.
`
`5.
`
`The On-Line Help Screens
`
`As part of our user interface design, we provide a mechanism for presenting some interactive
`on-line help to the user. This help may be invoked via clicking a button, pulling a menu, or pressing
`a key. The help itself consists of one of more screens full of information, directions, and diagrams.
`The user may jump between these screens, or quit and return to the original mode before calling the
`help. Each screen (except the first) contains a "Previous" command button, that will expose and
`activate the screen that immediately precedes the current one in the logical continuation of the help.
`In addition, each screen (except the last) contains a "Next" command button, that will expose and
`activate the screen that immediately succeeds the current one in the logical continuation of the help
`sequence.
`
`14
`
`
`
`Having some on-line help is essential in many applications and often saves considerable (manual
`look-up) time for the user, especially if the help is also crossed referenced or indexed in some
`manner. A good example of useful on-line help facilities is contained in the MicroSoft Word 3.01 text
`processing program.
`
`5.1. On-Line Help Screens for Signal Constellation Design
`
`As an example of this discussion we depict here some of the help screens included in the user
`interface, beginning with the two on-line help screens for the "About signal constellation design"
`item:
`
`a
`
`Stunoi Lonsteulatton
`Dlesig~n
`
`a(cid:1)r"I
`
`Signal constellation design
`entails specifying a set of
`signal points
`in
`the plane .in
`such a way as to minimize the
`probability
`of
`error
`during
`signal transmission subject to
`given
`interference parameters
`such as additive white Gaussian
`noise and phase jitter.
`
`To the right is a typical signal
`constellation;
`this
`example
`consists of 8
`signal points
`uniformly spaced around a unit
`circle.
`
`--
`
`I-
`
`,
`
`-
`
`-
`
`_
`
`II
`
`I-I
`
`/
`
`/
`
`to
`
`N
`
`L Next
`
`Quit
`
`15
`
`
`
`Once the user has specified
`the signal constellation and set
`the values of the interference
`parameters,
`the simulation of
`this signal constellation begins:
`random signals are generated
`with added distortion produced
`in accordance with the proper
`probability distribution, and the
`resulting received signals are
`plotted against
`the original
`signals.
`
`is kept of the error
`A record
`rate observed. After a while,
`the picture for our example may
`appear as in the diagram on the
`right:
`
`I
`
`IPrevious
`
`Quit
`
`5.2. On-Line Help Screens for Additive White Gaussian Noise
`
`Here are the three on-line help screens for the "additive white Gaussian noise" item:
`
`Acditive white Gaussian noise (AWaN)
`
`The term noise refers to unwanted
`that are
`electrical signals
`superimposed on the transmitted signal and tend to obscure it; it limits
`the receivers ability to make correct symbol decisions, and thereby
`limits the rate of information transmission.
`
`Usually we model noise as being of the additive white Gaussian type;
`that is, as a random process whose value n(t) at time t is statistically
`characterized by the Gaussian density function p(n):
`
`p(n) = Qr
`
`exp ( __
`
`(9I2J
`
`where
`
`y2 is the variance and the mean is zero.
`
`A_ý Nt
`
`(
`
`Quith
`
`16
`
`
`
`The central limit theorem of statistics states that under very
`general conditions
`the probability distribution of
`a
`sum of
`k
`statistically independent
`random variables approaches
`the Gaussian
`distribution as k approaches infinity, no matter what the individual
`distribution functions may be.
`
`Therefore, even though individual noise mechanisms might have other
`than Gaussian distributions, the aggregate of many such mechanisms
`will tend toward the Gaussian distribution. We are therefore justified in
`modelling noise in our system using the Gaussian distribution.
`
`The term white in AWGN refers to the fact that the power spectral
`density of thermal noise is the same for all frequencies of interest in
`most communication systems; that is, a thermal noise source emanates
`an equal amount of noise power per unit bandwidth at all frequencies.
`
`cPrevious
`Next
`
`CZ Quit
`
`The term additive refers to the fact that the noise is added to, or
`superimposed on
`the
`signal during
`transmission;
`there are
`no
`multiplicative mechanisms at work. The noise affects each transmitted
`signal
`independently, and a communication channel of this nature is
`called a memory/ess channel.
`
`Diagrammatically, the situation appears as follows:
`
`Input Sigýnd
`
`S(t)
`
`Output
`y(t) = S(t) + N(t)
`
`AWGN N(t)
`
`(cid:127)Preuiaus
`
`!
`
`=
`
`Quit
`
`Note that such help screens may contain both text, equations, graphics, and active control
`objects such as buttons and scroll bars; the functionality of the latter is completely user-controlled,
`as is the general layout, placement, and appearance of these items.
`
`17
`
`
`
`5.3. On-Line Help Screens for Distribution Editor
`
`Here are the four on-line help screens for the Distribution Editor:
`
`0 Uniform Distibution
`® Gaussian Distribution
`I46
`
`Dariance:
`
`The Probbtbility Distribution Eittor
`
`The Distribution Editor allows the user to
`select and
`inspect a particular probability
`distribution, which will in turn determine the
`likelihood of certain points being selected for
`the various simulation parameters such as
`noise and phase jitter.
`
`® Uniform Distibution
`0 Gaussian Distribution
`Interu.a:
`
`i
`
`If a uniform distribution is selected, the
`user may specify the range from which values
`will be selected uniformly.
`If a Gaussian
`distribution is selected, the user may specify
`its variance.
`
`[1ý Nextit
`
`C Quit
`
`li-stribuition Editor Commands
`
`Plot will
`points in the
`distribution,
`plotting proce
`
`randomly select and
`plane according to the
`while Suspend will
`ss.
`
`display
`specified
`halt
`the
`
`Graph will produce a graph of the selected
`distribution.
`
`Clear will redraw the
`erase all points previously
`
`coordinate axis and
`plotted/graphed.
`
`Plot :
`
`suspend I
`
`graph J
`clear _
`
`Data points:
`
`H average:
`
`6170
`-1.0332
`
`V fluerage: 0.43128
`
`is kept of the number of
`A running total
`points plotted so far, as well as their average
`x and y coordinates.
`J Previous
`
`L
`
`3 Next
`
`Quit
`
`18
`
`
`
`The UniJorn Distribution
`
`A uniform distribution
`is
`simply a random selection with
`equal probability of a point from
`a given interval. Shown here to
`the right is a two dimensional
`uniform distribution.
`
`In such a distribution both the
`X and
`the Y components are
`chosen
`both
`uniformly
`and
`independently.
`
`SPrevious
`
`[4
`
`FNext
`
`[
`
`-Quit
`
`Lribution
`
`t_ t:'4
`T1w Gaussian Disi
`
`The Gaussian distr
`ibution is a
`ith a given
`normal distribution v
`e is a plot
`variance. Shown her
`al Gaussian
`for a two-dimension
`o the graph
`distribution, and alsw
`probability
`of
`the Gaussian
`distribution function.
`
`-
`
`.... ":
`"
`..
`
`• "". "4." (cid:127)
`
`"
`. ...
`
`(cid:127)
`
`.' .
`
`Z=.
`
`;1
`
`" ••
`
`°
`
`_
`
`" -
`.
`
`..
`
`.
`
`"(cid:127).
`
`Previous
`
`Quit
`
`5.4. On-Line Help Screens for Constellation Editor
`
`Here are the three on-line help screens for the Constellation Editor:
`
`19
`
`
`
`J
`
`I
`
`0 N on a circle
`0
`M rectangle
`N bu
`M circles
`N on
`o User Specified
`
`N:
`
`I
`
`°:
`Dot Size:
`
`fl
`
`The Constedation Editor
`
`Constellation
`The
`Editor
`allows the user to select one of
`several canned/standard signal
`constellations, or specify
`an
`arbitrary one.
`
`The parameters N and M are
`also user specified and allow
`considerable
`flexibility
`in
`parametrizing
`the
`standard
`signal constellations. The dot-
`size determines how large
`the
`dots (representing the signals)
`will be on the display.
`
`[KNext
`
`S Quit
`
`Constellation Editor Commands
`
`Redraw will clear and redraw the current signal constellation.
`
`Recompute will recompute and redraw the current signal constellation.
`
`Delete will remove the highlighted signal from the constellation