
Description
About the Authors
How to Order
|
Simulation Techniques: Models of Communication Signals and Processes
TABLE OF CONTENTS
Preface
Nomenclature
1 Introduction
2 Representation of Analog Signals and Noise
3 Representation of Analog Filters
4 Representation of Analog Signal Processes
5 Digital Simulation of Analog Signals and Processes
6 Computer Modeling of Analog Filters
7 Generation of Data Signals
8 Overview of Reception Processes
9 Generation of Noise
10 Shifters and Interpolators
11 Synchronization
12 Symbol Detection and Demapping
13 Evaluation of Performance
14 Feedback Loops and Control Signals
15 Simulation of Digital Processes
16 Sample Rate Conversion
17 Entry and Builder Routines
18 Graphical Displays
19 Programming Issues
1 Introduction
- 1.1 Role of Simulation
- 1.1.1 Simulator Capabilities
- 1.1.2 User Background
- 1.1.3 Limits of Simulation
- 1.2 Transmission Links
- 1.2.1 Hierarchy
- 1.2.2 Link Elements
- 1.3 Pertinent Literature
- 1.4 Study Plan
2 Representation of Analog Signals and Noise
- 2.1 Baseband Signal Representations
- 2.1.1 Time-Limited Versus Bandlimited Pulses
- 2.1.2 Pulse Amplitude Modulation (PAM)
- 2.1.3 Nyquist Shaping
- 2.1.4 Other Pulse Formats
- 2.2 Passband Signal Representations
- 2.2.1 Basic Modulation Formats
- 2.2.2 Quadrature Amplitude Modulation (QAM)
- 2.2.3 Examples of Passband Signal Formats
- 2.3 Power, Energy, and Spectrum Relations
- 2.3.1 Baseband Signals
- 2.3.2 Passband Signals and Complex Envelopes
- 2.4 Noise
- 2.4.1 Additive Gaussian Noise
- 2.4.2 Counterexamples: Non-AWGN
- 2.5 Key Points
- 2.5.1 Baseband Signals
- 2.5.2 Passband Signals
- 2.5.3 Power, Energy, and Spectrum
- 2.5.4 Noise
3 Representation of Analog Filters
- 3.1 Categories of Filter Representation
- 3.1.1 Differential Equation Representation
- 3.1.2 Rational Transfer Functions
- 3.1.3 Nonrational Transfer Functions
- 3.1.4 Impulse Response
- 3.1.5 Summary of Categories
- 3.2 Filters for Complex Signals
- 3.2.1 Bandpass Filters
- 3.2.2 Signal Transmission Through a Bandpass Filter
- 3.2.3 Filter Structure
- 3.3 Conversion to Complex Filters
- 3.3.1 Frequency-Domain Conversion
- 3.3.2 Time-Domain Conversion
- 3.4 Key Points
- 3.4.1 Filter Categories
- 3.4.2 Complex Filters
- 3.4.3 Conversion to Complex Filters
- 3.4.4 STÆDT Processes
- Appendix 3A: Complex Conversion of Time-Domain Filters
4 Representation of Analog Signal Processes
- 4.1 Modulators
- 4.1.1 Complex Envelope
- 4.1.2 Angle Modulations
- 4.1.3 Analytic Signal
- 4.2 Demodulators
- 4.2.1 I-Q Demodulation
- 4.2.2 Demodulator Coherence
- 4.3 PAM Link Model; Matched Filters
- 4.3.1 PAM-QAM Link Model
- 4.3.2 Matched Filters
- 4.4 Symbol Detection
- 4.4.1 Symbol-by-Symbol Detection
- 4.4.2 Decision Rules
- 4.5 Nonlinear Processes
- 4.6 Key Points
- 4.6.1 Modulators
- 4.6.2 Demodulators
- 4.6.3 PAM Link Model; Matched Filters
- 4.6.4 Symbol Detection for PAM-QAM Coherent Reception
- 4.6.5 Nonlinear Processes
- 4.6.6 STÆDT Processes
5 Digital Simulation of Analog Signals and Processes
- 5.1 Digitization
- 5.1.1 Quantization
- 5.1.2 Sampling
- 5.1.3 Aliasing
- 5.1.4 Other Features
- 5.1.5 Digital Representation
- 5.2 Digitized Signals in the Frequency Domain
- 5.2.1 z-Transform
- 5.2.2 Discrete Fourier Transform (DFT)
- 5.2.3 Time/Frequency Relations
- 5.3 Structures and Nomenclature
- 5.3.1 Simulation Modules
- 5.3.2 Data Formats
- 5.3.3 Properties of the Data Formats
- 5.4 Energy and Power Relations
- 5.4.1 Energy Formulas
- 5.4.2 Energy of Analog Pulse Trains
- 5.4.3 Power
- 5.4.4 Rationale
- 5.5 Key Points
- 5.5.1 Digitization
- 5.5.2 Discrete Fourier Transform
- 5.5.3 Structures and Formats
- 5.5.4 Energy and Power
- 5.5.5 STÆDT Processes
- Appendix 5A: Aliasing Energy
- Appendix 5B: Upper Bound on Magnitude of Aliasing Error
- Appendix 5C: Analog/Digital Energy Relations
6 Computer Modeling of Analog Filters
- 6.1 Filter Algorithms
- 6.1.1 Frequency-Domain Filters
- 6.1.2 Time-Domain Convolution with Unit-Sample Response
- 6.1.3 Time-Domain Recursive Difference Equations
- 6.1.4 Complex Coefficients
- 6.1.5 Linear Blocks from Frequency-Domain Filters
- 6.2 Analog-to-Digital Filter Transformation
- 6.2.1 Frequency-Domain Transformations
- 6.2.2 Time-Domain Transformations of IIR Filters
- 6.2.3 Time-Domain Transformations of FIR Filters
- 6.3 Key Points
- 6.3.1 On-Line Filter Processes
- 6.3.2 Filter Preparation
- 6.3.3 STÆDT Processes
7 Generation of Data Signals
- 7.1 Message Source
- 7.1.1 Binary Shift-Register Sequences
- 7.1.2 Representative Sequences
- 7.2 Symbol Mapping
- 7.2.1 Mapping for Linear Modulations
- 7.2.2 Differential Encoding
- 7.2.3 Mapping for Nonlinear Modulations
- 7.3 Pulse Shaping
- 7.3.1 Generating Impulse Trains
- 7.3.2 Pulse-Shaping Filters
- 7.4 Modulators
- 7.4.1 Linear Modulation
- 7.4.2 Nonlinear Modulation
- 7.5 Amplifiers
- 7.5.1 Linear Amplifiers and Attenuators
- 7.5.2 Nonlinear Amplifiers
- 7.6 Key Points
- 7.6.1 Message Source
- 7.6.2 Symbol Mapping
- 7.6.3 Pulse Shaping
- 7.6.4 Modulators
- 7.6.5 Amplifiers
- 7.6.6 STÆDT Processes
- Appendix 7A: Differential Encoding Examples
8 Overview of Reception Processes
- 8.1 Simple Channels
- 8.1.1 Model of the Medium
- 8.1.2 Processes Required in Receiver
- 8.1.3 Performance Evaluation
- 8.2 More-Complicated Channels
- 8.2.1 Nonwhite, Non-Gaussian, and Nonadditive Disturbances
- 8.2.2 Frequency-Selective Channels
- 8.2.3 Time-Varying Channels
- 8.3 Spread-Spectrum Processes
- 8.4 Afterword
9 Generation of Noise
- 9.1 Uniformly Distributed Samples
- 9.2 Gaussian Noise Generation
- 9.2.1 Transformation Algorithm
- 9.2.2 Scaling
- 9.2.3 Colored Noise
- 9.2.4 Phase Noise
- 9.3 Non-Gaussian Variates
- 9.4 Key Points
- 9.4.1 Noise Generation
- 9.4.2 STÆDT Processes
- Appendix 9A: Complex Envelope of Bandpass Gaussian Noise
10 Shifters and Interpolators
- 10.1 Phase Shifters
- 10.1.1 Phase Shifting of Complex Signals
- 10.1.2 Phase Shifting of Real Signals
- 10.2 Frequency Shifters
- 10.2.1 Frequency Shifting of Time-Domain Complex Signals
- 10.2.2 Frequency Shifting of Frequency-Domain Signals
- 10.2.3 Frequency Shifting of Real Signals
- 10.3 Time Shifters
- 10.3.1 Discrete Time Shifts: Delays
- 10.3.2 Continuous Time Shifts via Transforms
- 10.4 Interpolation
- 10.4.1 Interpolator Model
- 10.4.2 Characteristics of Interpolating Filters
- 10.4.3 Simulation of Interpolation
- 10.4.4 Variable Delay by Interpolation
- 10.5 Key Points
- 10.5.1 Phase Shifters
- 10.5.2 Frequency Shifters
- 10.5.3 Time Shifters
- 10.5.4 Interpolation
- 10.5.5 STÆDT Processes
11 Synchronization
- 11.1 Synchronization by Calibration
- 11.1.1 Hardwire Synchronization
- 11.1.2 Calibration by Recovery Synchronizers
- 11.2 Recovery Synchronizers
- 11.2.1 Synchronizer Categories
- 11.2.2 Synchronizer Operations
- 11.3 Synchronizer Elements
- 11.3.1 Correctors
- 11.3.2 Timing Controllers (Feedback)
- 11.3.3 Carrier Regenerators
- 11.3.4 Clock Regenerators
- 11.3.5 Parameter Extractors
- 11.3.6 Error Detectors
- 11.4 Synchronizer Processes
- 11.5 Key Points
- 11.5.1 Recovery Configurations
- 11.5.2 Synchronizer Elements
- 11.5.3 STÆDT Processes
- Appendix 11A: Synchronization by Correlation
- Appendix 11B: Carrier Regenerators
- Appendix 11C: Locating Zero Crossings by Inverse Linear Interpolation
12 Symbol Detection and Demapping
- 12.1 PAM-QAM Decisions
- 12.1.1 Minimum-Distance Decisions
- 12.1.2 Quantizer Decisions
- 12.1.3 Differential Detection of MPSK
- 12.2 Multiple-Strobe Decisions
- 12.3 Key Points
- 12.3.1 Minimum-Distance Detection
- 12.3.2 Quantizer Detection
- 12.3.3 Differential Detection
- 12.3.4 Largest-of Detection
- 12.3.5 Demapping
- 12.3.6 STÆDT Processes
13 Evaluation of Performance
- 13.1 Monte Carlo Counting
- 13.1.1 Monte Carlo Configuration
- 13.1.2 Monte Carlo Statistics
- 13.1.3 Importance Sampling
- 13.2 Quasianalytic Method
- 13.2.1 Overview of QA Methods
- 13.2.2 QA Computation of Error Probability
- 13.2.3 Phantom Noise Calibration
- 13.2.4 Implications of Time Invariance
- 13.3 Key Points
- 13.3.1 Monte Carlo Method
- 13.3.2 QA Method
- 13.3.3 Alignment
- 13.3.4 Signal and Noise Calibration
- 13.3.5 STÆDT Processes
- Appendix 13A: Error Probabilities for Quasianalytical Evaluations
- Appendix 13B: Theoretical Error Performance
- Appendix 13C: Evaluation of Q(X)
- Appendix 13D: Delay and Phase Alignment for Performance Evaluations
- Appendix 13E: Phantom Noise Calibration
- Appendix 13F: Truncation of Infinite Impulse Responses
14 Feedback Loops and Control Signals
- 14.1 Simulation of Feedback
- 14.1.1 Single-Point Format
- 14.1.2 Opened-Loop Simulation
- 14.1.3 Multiple Loops
- 14.2 Control Signals
- 14.2.1 Configuration and Properties
- 14.2.2 Loop Filters for Control Signals
- 14.3 Key Points
- 14.3.1 Feedback Loops
- 14.3.2 Control Signals
- 14.3.3 STÆDT Processes
15 Simulation of Digital Processes
- 15.1 Quantization
- 15.1.1 Quantizer Laws
- 15.1.2 Simulation of Quantizers
- 15.1.3 Quantizer Applications
- 15.2 Other Digital Issues
- 15.2.1 Number Representation
- 15.2.2 Overflow and Underflow
- 15.2.3 Processing Delays
- 15.3 Key Points
- 15.3.1 Quantization
- 15.3.2 Other Digital Issues
- 15.3.3 STÆDT Processes
16 Sample Rate Conversion
- 16.1 Block-Mode Conversions
- 16.1.1 Resampling Definitions
- 16.1.2 Block-Mode Issues
- 16.1.3 Reblocking
- 16.1.4 Block-Mode Interpolation
- 16.2 Single-Point Conversions
- 16.2.1 Flag-Mediated Control
- 16.2.2 Internal Scheduling
- 16.2.3 Mixed Scheduling
- 16.3 Rate-Changing Processes
- 16.3.1 Downsampling Processes
- 16.3.2 Upsampling Processes
- 16.3.3 Block Alterations
- 16.4 Key Points
- 16.4.1 Sample Rate Conversion
- 16.4.2 Interpolation
- 16.4.3 Block Mode
- 16.4.4 Single-Point Mode
- 16.4.5 STÆDT Processes
17 Entry and Builder Routines
- 17.1 Overview
- 17.2 Entry Routines
- 17.2.1 File Formats
- 17.2.2 Entry Tools
- 17.3 Conditioning
- 17.3.1 Conditioning of Nonlinear Amplifiers
- 17.3.2 Frequency Response of Filters
- 17.3.3 Other Conditioning Tasks
- 17.4 Nonlinearity Builder Routines
- 17.4.1 Nonlinearity Overview
- 17.4.2 Function Fitting
- 17.4.3 Interpolation
- 17.5 Filter Builder Routines
- 17.5.1 Filter Builder Constituents
- 17.5.2 Standard Filters
- 17.5.3 Frequency-Domain Builder Routines
- 17.5.4 Time-Domain Builder Routines
- 17.5.5 Specimens of Frequency Rescaling
- 17.6 Key Points
- 17.6.1 Nonlinearity Builders
- 17.6.2 Filter Builders
- 17.6.3 STÆDT Processes
18 Graphical Displays
- 18.1 Types of Plots
- 18.1.1 Time-Domain Plots
- 18.1.2 Frequency-Domain Plots
- 18.1.3 Other Plots
- 18.2 Units and Scales
- 18.2.1 Abscissas
- 18.2.2 Ordinates
- 18.2.3 Plot Windows
- 18.3 Data Conditioning
- 18.3.1 Computation of Delay
- 18.3.2 Spectrum Conditioning
- 18.4 Key Points
- 18.4.1 Types of Plots
- 18.4.2 Units and Scales
- 18.4.3 Data Conditioning
- 18.4.4 STÆDT Processes
19 Programming Issues
- 19.1 Simulation Language
- 19.1.1 Evolution of Simulation Language
- 19.1.2 Relation to Programming Language
- 19.1.3 High Level Versus Low Level
- 19.2 Architecture and Rules
- 19.2.1 User's Interface
- 19.2.2 Parameter Entry
- 19.2.3 Order of Execution
- 19.2.4 Data Connectivity
- 19.2.5 Types
- 19.2.6 Composite Commands
- 19.3 Interpreters Versus Compilers
- 19.3.1 Interpreters
- 19.3.2 Compilers
- 19.4 Auxiliary Features
- 19.5 Key Points
REFERENCES
INDEX
|

Description
About the Authors
How to Order
Software Updates
System Requirements:
IBM-compatible PC, 640K RAM minimum, 3.5" high-density floppy drive, and hard drive.
STÆDT runs under DOS 3.3 or later or as a DOS application under Windows 3.1 or 95. Graphics support: CGA, EGA, VGA, Olivetti, AT&T, or Hercules Monochrome Graphics (Hercules requires driver not included with STÆDT).
Command Names used with STÆDT
|
Simulation Techniques: The STÆDT Program
TABLE OF CONTENTS OF THE REFERENCE MANUAL
1. Overview and Installation
- 1.1 System Requirements
- 1.2 Installation
- 1.2.1 Installation Procedures
- 1.2.2 Windows® Operation
- 1.2.3 Memory Configuration
- 1.3 Disk Contents
- 1.4 Hard Copy
- 1.5 Organization
- 1.6 Study Plan
2. Preparing and Running Simulations with STÆDTTM
- 2.1 What Is a Command List?
- 2.2 What Is a Module?
- 2.3 The Command Library
- 2.3.1 Signal Generation Processes
- 2.3.2 Filters
- 2.3.3 Signal Processes
- 2.3.4 Noise Generation and Calibration Processes
- 2.3.5 Signal Reception Processes
- 2.3.6 Performance-Evaluation Processes
- 2.3.7 Control Signal Processes
- 2.3.8 Data Conversion Processes
- 2.3.9 Single-Point Processes
- 2.3.10 Display Commands
- 2.3.11 Flow Control Commands
- 2.3.12 Housekeeping
- 2.3.13 Declaration and Assignments
- 2.3.14 Builder Routines
- 2.3.15 Composite Modules
- 2.3.16 LET and LETS
- 2.4 How a Simulation Is Conducted
- 2.4.1 System Block Diagram
- 2.4.2 System Capture to a Command List
- 2.4.3 Running a Simulation
- 2.4.4 Postsimulation User Activities
- 2.5 Key Points
3 Rules for Command Lists
- 3.1 Order of Execution of Commands
- 3.2 Data Connectivity
- 3.2.1 Naming Rules
- 3.2.2 Exceptions to Naming Rules
- 3.3 Mode Rules: Block or Single Point
- 3.3.1 Mode Switching
- 3.3.2 Block Storage
- 3.3.3 Single-Point Storage
- 3.3.4 Storage of Variables and Control Signals
- 3.3.5 Intermodal Connectivity
- 3.4 Feedback Loops
- 3.5 Initialization of State Information
- 3.5.1 Initialization Flags
- 3.5.2 Initial Values
- 3.6 Composite Modules
- 3.7 Sample-Rate Changing
- 3.7.1 Visible Tools
- 3.7.2 Hidden Tools
- 3.8 Builder Routines
- 3.9 Arrays
- 3.9.1 Array Allocations
- 3.9.2 Reallocation with DIM
- 3.10 Directories and Files
- 3.11 Documentation
- 3.11.1 Run-Time Documentation
- 3.11.2 Archival Documentation
- 3.12 Key Points
- 3.12.1 Fundamental Rules
- 3.12.2 Other Rules
4 Using the Menus Program
- 4.1 Starting the Menus Program
- 4.2 Exiting from the Menus Program
- 4.3 Making Menu Selections
- 4.3.1 Moving Between Menu Boxes
- 4.3.2 List Boxes
- 4.3.3 Input Boxes
- 4.3.4 Message Boxes
- 4.4 Leaving a Menu
- 4.5 Creating a New Command List
- 4.5.1 The EDIT Menu
- 4.5.2 The APPEND Submenu
- 4.5.3 Command Input Box
- 4.5.4 Name List Box
- 4.5.5 Deleting a Selected Command
- 4.5.6 Intermediate Save of Command List
- 4.5.7 Command List Length Limit
- 4.5.8 Leaving the APPEND Submenu
- 4.6 Specifying Process Parameters
- 4.6.1 Parameter Selection Menu
- 4.6.2 Navigating in the Parameter Tables
- 4.6.3 Allowable Entries for Parameter Values
- 4.7 The File Menu
- 4.7.1 The File Selection Menu
- 4.7.2 SAVE a Command List
- 4.7.3 LOAD a Command List
- 4.7.4 VIEW a Command List
- 4.7.5 PRINT a Command List
- 4.7.6 TRANSLATE a Command List
- 4.7.7 EXECUTE a Command List
- 4.7.8 RETURN to Main Menu
- 4.8 Editing an Existing Command List
- 4.8.1 ERASE ALL Existing Command List
- 4.8.2 APPEND after
- 4.8.3 INSERT before
- 4.8.4 Entering New Commands
- 4.8.5 DELETE LINE
- 4.8.6 CHANGE Parameter Values
- 4.8.7 MERGE Command Lists
- 4.8.8 Composite Special Procedure
- 4.8.9 RETURN to Main Menu
- 4.9 The Colors Menu
- 4.9.1 Color Options
- 4.9.2 UPDATE Color Selections
- 4.9.3 Return to Main Menu
- 4.10 DOS SHELL
5 Command Library Reference
- 5.1 Command Names
- 5.2 Signals and Variables
- 5.2.1 Data Signals
- 5.2.2 Variables and Control Signals
- 5.3 Parameters
- 5.3.1 Output- and Input-Name Parameters
- 5.3.2 Parameter Values
- 5.3.3 Parameters That Name Files
- 5.3.4 Parameters That Require Variables
- 5.3.5 Selection Parameters
- 5.3.6 Bypass Parameters
- 5.3.7 Initialization Parameters
- 5.4 Plot and Print Commands
- 5.4.1 Operating Procedures
- 5.4.2 Display Formats
- 5.5 Command Documentation (Reference material for each command, arranged in alphabetical order by abbreviated command name)
- STÆDTTM Commands
6 Applications of STÆDTTM
- 6.1 Preliminaries
- 6.1.1 System Checkout: SMRTCHK
- 6.1.2 Command List Features
- 6.1.3 Interpretation of Displays
- 6.2 Guide to the Exercises
- 6.3 Circular-Block Examples
- 6.3.1 QPSK Example: CIRQPSK
- 6.3.2 VSB Example: CIRVSB
- 6.4 Linear-Block Examples
- 6.4.1 p/4-QPSK Example: PI-4QPSK
- 6.4.2 p/4-QPSK with Nonlinear Transmitter: NLPI-4
- 6.5 Single-Point, Feedback Example
- 6.5.1 Digital Phase-Locked Loop: DPLL
- 6.6 Cross Reference of Commands in Examples
7 Creating Your Own Signal Process
- 7.1 Overview
- 7.2 What You Will Need
- 7.3 Software Architecture
- 7.3.1 Command Tasks
- 7.3.2 Using the Template XXX.BAS
- 7.3.3 Summary of Housekeeping Activities
- 7.3.4 Data Structure in COMMON
- 7.3.5 Data Signal I/O
- 7.3.6 Command List Variables and Control Signals
- 7.3.7 Functions
- 7.3.8 State Variables
- 7.3.9 Error Handling
- 7.4 Step 1: Write Source Code by Template and Example
- 7.4.1 Naming the New Command
- 7.4.2 The Function Declaration
- 7.4.3 $INCLUDE and $DYNAMIC Statement
- 7.4.4 Comment Lines
- 7.4.5 Function Definition
- 7.4.6 Declare Local Variables
- 7.4.7 Set Return Value
- 7.4.8 Finding a Command's Parameters
- 7.4.9 Finding Data-Signal Input
- 7.4.10 Bypass/No Input
- 7.4.11 Initializations
- 7.4.12 Retrieve Previous State Variables
- 7.4.13 Error Handling
- 7.4.14 Code for the Core Algorithm
- 7.4.15 Write Outputs from Your Command
- 7.4.16 Terminate Your Command
- 7.4.17 Save the Source Code
- 7.5 Steps 2-7: Incorporate the New Command into STÆDT
- 7.5.1 Step 2: Modify the Library Manager
- 7.5.2 Step 3: Compile the New Command
- 7.5.3 Step 4: Link the New Command
- 7.5.4 Step 5: Modify the Menus Program
- 7.5.5 Step 6: Test and Debug New Command
- 7.5.6 Step 7: Prepare Documentation
Appendix A: Menus Quick Reference
Appendix B: String Constants Used in Parameters
Appendix C: Command List Format
Appendix D: Error Messages
Appendix E: Procedures Available to New Commands
INDEX
|