the automatic generation and testing of signal … · the automatic generation and testing of ......

129

Upload: lambao

Post on 03-May-2018

231 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink
Page 2: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

THE AUTOMATIC GENERATION AND TESTING OF

SIGNAL RECOGNITION ALGORITHMS

APPROVED BY SUPERVISING COMMITTEE:

________________________________________ Dr. Kay A. Robbins, Chair

________________________________________

Dr. Weining Zhang

________________________________________ Dr. Tom Bylander

________________________________________

Dr. Qi Tian

________________________________________ Dr. Denise Varner, Outside Member

Accepted: ________________________________________

Dean, Graduate School

Page 3: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

Copyright 2007

Kenneth Lynn Holladay

All Rights Reserved

Page 4: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

Dedication

This dissertation is dedicated to six most important people in my life. First, To my loving wife

Deborah for her selfless and unwavering support through thirty-one years of marriage and nine years of

graduate school. Second, to my three wonderful children, Aaron, Miriam, and Benjamin, who are a con-

stant source of joy and inspiration, and finally to my parents, Dot and Bill Holladay, who taught me that

this was possible.

Page 5: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

THE AUTOMATIC GENERATION AND TESTING OF

SIGNAL RECOGNITION ALGORITHMS

by

Kenneth Lynn Holladay, M.S.

DISSERTATION Presented to the Graduate Faculty of

The University of Texas at San Antonio In partial Fulfillment Of the Requirements

For the Degree of

DOCTOR OF PHILOSOPHY IN COMPUTER SCIENCE

THE UNIVERSITY OF TEXAS AT SAN ANTONIO College of Sciences

Department of Computer Science May 2007

Page 6: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

v

Acknowledgments

I owe great debts of gratitude to many people for helping me complete this degree. Spe-

cial thanks go to my advisor, Dr. Kay Robbins. In the spring semester of 1998, she was teaching

the Operating Systems class in which I was enrolled. That was my first semester after acceptance

into the Computer Science Masters Degree program at the University of Texas in San Antonio.

Dr. Robbins convinced me to transition into the PhD program, and has been extremely patient

with me over the past nine years. Special thanks also go to Dr. Jeffery von Ronne for his help

with the type rules.

Next, I am grateful to my employer, Southwest Research Institute (SwRI), for providing

funding in the form of Internal Research grants from the Advisory Committee for Research

(ACR) and for providing access to computers and radio equipment for this research. A number of

people at SwRI deserve special mention. My supervisor, Ron Reinhard, has been very supportive

through this whole process, and the Institute Scientists in the Signal Exploitation and Geoloca-

tion Division, especially Dr. Denise Varner, Dr. Jackie Hipp, and Rob Black, have all provided

valuable insight and guidance.

Finally, computational support was provided by NIH Research Centers in Minority Insti-

tutions grant 2G12RR1364-06A1 and by the UT System San Antonio Computational Biology

Initiative.

April 2007

Page 7: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

vi

THE AUTOMATIC GENERATION AND TESTING OF

SIGNAL RECOGNITION ALGORITHMS

Kenneth Lynn Holladay, Ph.D. The University of Texas at San Antonio, 2007

Supervising Professor: Dr. Kay A. Robbins

Signal recognition algorithms are representative of a large class of problems in which the

complexity of the algorithm and its operational domain make it impractical to derive valid opera-

tional characterization using only mathematical or analytical techniques. They are also

representative of algorithms whose practical application demands high sensitivity and high speci-

ficity. This dissertation explores the use of empirical testing techniques to characterize algorithm

behavior and the application of those techniques to the automatic creation of new algorithms for

signal recognition.

An essential first step in algorithm development is an accurate specification of the prob-

lem domain. This dissertation deals with signal recognition in High Frequency (HF) radio

communication bands. This problem domain is appropriate because it has important real-world

application, it can be specified accurately, and it can be represented by reasonably sized test sets.

A result of the domain specification work was the innovative Signal Exploitation Markup Lan-

guage (SIGEXML), an XML schema capable of expressing signal, environment, and receiver

parameters. Variants of the schema have been adopted for use in several government systems.

A second essential step in automated algorithm development is creating a framework ca-

pable of managing the large-scale data collection and analysis that is necessary to exercise an

algorithm within a statistically significant volume of its specified domain. The Algorithm

Evaluation Framework (ALEF) created for this dissertation was successfully used to demonstrate

three common development tasks: characterizing well-known symbol rate algorithms, improving

a recently published symbol rate algorithm, and facilitating development of new algorithms.

Our efforts to develop a new algorithm based on KL decomposition demonstrated the dif-

ficult nature of manual algorithm development, even when assisted by automated tools.

Addressing this difficulty led to the final phase of the dissertation: automated development of

signal recognition algorithms using genetic programming (GP). Unfortunately, no available GP

language supported intrinsic vector representation, which we strongly believed was necessary for

Page 8: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

vii

automation to succeed. Therefore, we designed and implemented a new GP language, FIFTH™,

along with a fully distributed genetic programming environment. Using FIFTH as the creative

component and ALEF for detailed analysis, we demonstrated, by creation of an effective new

algorithm for determining signal symbol rate, that automated development of vector algorithms

with human-competitive results is possible.

Page 9: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

viii

Table of Contents

Acknowledgments ......................................................................................................................... v

Abstract......................................................................................................................................... vi

List of Tables ................................................................................................................................ xi

List of Figures.............................................................................................................................. xii

Chapter 1 Introduction................................................................................................................. 1 1.1 Motivation....................................................................................................................... 1

1.2 Related work ................................................................................................................... 2

1.3 A different approach ....................................................................................................... 2

1.4 Dissertation overview ..................................................................................................... 3

Chapter 2 HF Signal Classification ............................................................................................. 5 2.1 Introduction to HF communications ............................................................................... 5

2.2 Describing HF signal characteristics .............................................................................. 6 2.2.1 International standards ............................................................................................ 8 2.2.2 Ad hoc amateur radio schemes ............................................................................... 8 2.2.3 Other schemes......................................................................................................... 9

2.3 Developing the XML schema ......................................................................................... 9 2.3.1 Single carrier signals............................................................................................. 10 2.3.2 Multiple carrier signals ......................................................................................... 11 2.3.3 Multiple carrier signals that vary in time.............................................................. 12 2.3.4 The Signal Exploitation Markup Language (SIGEXML) .................................... 13

2.4 Real world impact of SIGEXML.................................................................................. 14

Chapter 3 Algorithm Evaluation Framework (ALEF) ........................................................... 15 3.1 ALEF components ........................................................................................................ 16

3.1.1 Generating test signals .......................................................................................... 16 3.1.2 Executing tests ...................................................................................................... 18 3.1.3 Analyzing results .................................................................................................. 19

3.2 Comparing symbol rate algorithms............................................................................... 20 3.2.1 Phase 1 – test signal generation ............................................................................ 22 3.2.2 Phase 2 – test execution ........................................................................................ 24 3.2.3 Phase 3 – results analysis...................................................................................... 24

3.3 Improving a wavelet based symbol rate algorithm....................................................... 26 3.3.1 Overview of wavelets ........................................................................................... 26 3.3.2 Designing a wavelet based symbol rate algorithm ............................................... 27

Page 10: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

ix

3.3.3 Validating the original MCWT behavior.............................................................. 28 3.3.4 Selecting wavelets and scales ............................................................................... 29 3.3.5 Performance comparison with DPDT................................................................... 31 3.3.6 Developing a quality metric.................................................................................. 32 3.3.7 Summary ............................................................................................................... 34

3.4 Developing a new modulation classification algorithm................................................ 35 3.4.1 Selecting a signal feature vector ........................................................................... 36 3.4.2 Developing the basis vectors ................................................................................ 37 3.4.3 Resulting modulation classification algorithm ..................................................... 38 3.4.4 Algorithm accuracy using test data set ................................................................. 39 3.4.5 Algorithm shortcomings and future exploration................................................... 39

3.5 Real world impact of ALEF.......................................................................................... 41

Chapter 4 FIFTH™ - A Vector-based Language for Automatic Algorithm Development . 42

4.1 Genetic programming background ............................................................................... 43 4.1.1 Definition of terms................................................................................................ 43 4.1.2 The genetic programming algorithm .................................................................... 44 4.1.3 The genetic programming environment................................................................ 45 4.1.4 Current state of genetic programming research .................................................... 51

4.2 Motivation for FIFTH................................................................................................... 53

4.3 The FIFTH language..................................................................................................... 55 4.3.1 Parameter stack ..................................................................................................... 56 4.3.2 Core vocabulary .................................................................................................... 56 4.3.3 Validating program execution............................................................................... 57 4.3.4 Flow control and function definition .................................................................... 58 4.3.5 Formal typing........................................................................................................ 58 4.3.6 Function validation ............................................................................................... 61

4.4 The FIFTH genetic programming environment (GPE5) .............................................. 61 4.4.1 Random program generation................................................................................. 62 4.4.2 Fitness evaluation.................................................................................................. 62 4.4.3 Parent Pool Selection ............................................................................................ 64 4.4.4 Probability Ranking .............................................................................................. 64 4.4.5 Crossover and mutation ........................................................................................ 65 4.4.6 Implementation ..................................................................................................... 68

4.5 Using GPE5 to solve a problem.................................................................................... 68 4.5.1 Identify the terminal set ........................................................................................ 68 4.5.2 Identify the function set ........................................................................................ 69 4.5.3 Select the control parameters ................................................................................ 69

Page 11: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

x

4.6 Polynomial regression example problem...................................................................... 69

Chapter 5 Automatic Generation of Symbol Rate Algorithms .............................................. 72 5.1 Preparing the GP run..................................................................................................... 72

5.1.1 Problem formulation ............................................................................................. 72 5.1.2 Terminal set and function set................................................................................ 73 5.1.3 Fitness evaluation strategy.................................................................................... 74 5.1.4 Control parameters................................................................................................ 74

5.2 A successfully evolved algorithm................................................................................. 74 5.2.1 Baseline performance of DPDT............................................................................ 74 5.2.2 Evolution results ................................................................................................... 74 5.2.3 P1333 algorithm structure..................................................................................... 76 5.2.4 P1333 algorithm analysis...................................................................................... 77

5.3 The efficacy of genetic programming........................................................................... 79

Chapter 6 Discussion and Future Work ................................................................................... 80 6.1 SIGEXML: the Signal Exploitation Markup Language schema .................................. 80

6.2 ALEF: the automated Algorithm Evaluation Framework ............................................ 81

6.3 FIFTH: a new look at genetic programming................................................................. 82

6.4 The path forward........................................................................................................... 84

Appendix A Glossary and Acronyms........................................................................................ 86

Appendix B Typical Wideband Signal Surveillance System................................................... 88

Appendix C Signal Exploitation Markup Language Schemas ............................................... 90

Appendix D Index of ALEF Functions ..................................................................................... 93

D.1 Index for directory SigGen (test signal generator functions)........................................ 93

D.2 Index for directory SigGen\models (SigGen support functions) .................................. 94

D.3 Index for directory SAFramework (signal analysis framework) .................................. 95

D.4 Index for directory SymbolRate (symbol rate algorithm functions)............................. 96

D.5 Index of directory KLDecomp (KL decomposition functions) .................................... 96

Appendix E Analysis Report from DPDT Experiment ........................................................... 98

Appendix F Signal Histogram Viewer Samples ..................................................................... 103

Bibliography .............................................................................................................................. 108

Vita

Page 12: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

xi

List of Tables

Table 2.1: Common digital modulation techniques........................................................................ 7

Table 2.2: Typical HF digital signal properties .............................................................................. 8

Table 3.1: Peak search parameters for symbol rate experiments.................................................. 22

Table 3.2: HF signal property boundaries for symbol rate experiments....................................... 23

Table 3.3: Percent correct symbol rate estimation by algorithm and pulse shape........................ 25

Table 3.4: Wavelet algorithm parameters for symbol rate experiments....................................... 28

Table 3.5: Percent correct symbol rate estimation by wavelet type and scale.............................. 29

Table 3.6: Percent correct symbol rate estimation by wavelet and pulse shape ........................... 31

Table 3.7: Percent correct symbol rate estimation by algorithm and pulse shape........................ 32

Table 4.1: Example FORTH program execution trace ................................................................. 47

Table 4.2: Review of GP software................................................................................................ 52

Table 4.3: Summary of problems solved in GP books ................................................................. 52

Table 4.4: Intrinsic FIFTH words ................................................................................................. 57

Table 4.5: GPE5 fitness functions ................................................................................................ 63

Table 4.6: Word selection probabilities for the polynomial regression example ......................... 70

Table 5.1: Properties of the training set signals used for the symbol rate experiments................ 73

Table 5.2: Word selection probabilities for the symbol rate example .......................................... 73

Table 5.3: Percent correct performance by symbol rate value against the entire training set ...... 76

Table 5.4: Percent correct performance by symbol rate value against the test set ....................... 76

Table 5.5: Performance of variations on algorithm P1333 ........................................................... 77

Table C.1: Description of signal exploitation schema files .......................................................... 90

Page 13: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

xii

List of Figures

Figure 2.1: BPSK spectrogram ..................................................................................................... 11

Figure 2.2: VFT spectrogram........................................................................................................ 12

Figure 2.3: CODAN spectrogram................................................................................................. 13

Figure 3.1: Test framework block diagram................................................................................... 15

Figure 3.2: Simulink model for QAM and PSK signals with pulse shaping ................................ 17

Figure 3.3: Example receiver operating characteristic curves ...................................................... 19

Figure 3.4: Radar plot of percent correct symbol rate estimation for three wavelets................... 30

Figure 3.5: Wavelet function ψ for Haar (left) and db6 (right) ................................................... 30

Figure 3.6: Raised cosine symbol pulse........................................................................................ 30

Figure 3.7: Probability density for db6 wavelet using normalized mean ..................................... 33

Figure 3.8: Probability density for DPDT using normalized mean .............................................. 33

Figure 3.9: ROC curves using normalized mean of the FFT bins for MCWT and DPDT........... 34

Figure 3.10: Plot of transform clusters by modulation type using three KL vectors.................... 38

Figure 3.11: Signal separation capability of a single KL vector................................................... 39

Figure 4.1: Basic genetic programming algorithm ....................................................................... 44

Figure 4.2: Tree based representation of a LISP expression ........................................................ 46

Figure 4.3: Two programs before crossover ................................................................................. 50

Figure 4.4: Two programs after crossover.................................................................................... 50

Figure 4.5: FIFTH basic type rules ............................................................................................... 59

Figure 4.6: FIFTH control flow type rules.................................................................................... 59

Figure 4.7: FIFTH stack manipulation type rules......................................................................... 60

Figure 4.8: FIFTH type rules for selected operations ................................................................... 60

Figure 4.9: Type derivation of “/ SWAP /” .............................................................................. 61

Figure 4.10: Block diagram for the FIFTH genetic programming environment (GPE5)............. 62

Figure 4.11: Effect of bias constant c on exponential ranking ..................................................... 65

Figure 4.12: FIFTH crossover example showing legal structural change .................................... 67

Figure 4.13: Best fitness progression for a polynomial regression GP run .................................. 71

Figure 5.1: Best fitness progression for a symbol rate GP run ..................................................... 75

Figure 5.2: Feature vector and FFT vector for P1333 and DPDT, both correct ........................... 78

Figure 5.3: Feature vector and FFT vector for P1333 correct, DPDT incorrect........................... 78

Figure 5.4: Feature vector and FFT vector for P1333 and DPDT, both incorrect........................ 79

Page 14: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

xiii

Figure B.1: Simplified block diagram of a wideband signal surveillance system........................ 89

Figure C.1: Dependency hierarchy for signal exploitation schema files ...................................... 90

Figure C.2: Pictorial representation of XML schema type externalReportFSK........................... 91

Figure C.3: Pictorial representation of XML schema type SegmentReportType......................... 92

Figure F.1: Histograms for AM signal........................................................................................ 103

Figure F.2: Histograms for OOK, 35 WPM signal..................................................................... 104

Figure F.3: Histograms for PSK, 4 level, 50 baud, no pulse shape signal.................................. 105

Figure F.4: Histograms for PSK, 4 level, 50 baud, RRC pulse shape signal.............................. 106

Figure F.5: Histograms for FSK, 2 level, 50 baud, mod index 1 signal ..................................... 107

Page 15: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

1

Chapter 1 Introduction

1.1 Motivation

Non-cooperative, blind analysis and recognition of digital communication signals is im-

portant both in the communication industry for developing new receiver technology and in the

intelligence community for deciphering intercepted signals. In both domains, algorithm research

focuses on extracting signal characteristics, such as modulation type and symbol rate, even when

the received signal is distorted by noise and fading in the transmission channel.

While signal recognition has been an area of active research for many years, recent tech-

nology advances have accelerated interest in algorithm development, especially in the

Communication Intelligence (COMINT) community. First, new Software Defined Radio initia-

tives based on commercial microprocessor technology have made it easier to rapidly create new

digital communication waveforms. Examples range from formal programs, such as the US

Army’s Joint Tactical Radio System Program [74, 81], to amateur radios based on personal com-

puters [87]. Second, there is a renewed interest in the High Frequency (HF) radio band [33].

While reliable communication in this band has been historically difficult to achieve due to noise,

fading, and interference, HF has a distinct advantage in long-range communication since these

signals can bounce off of the ionosphere and travel around the world. Modern microprocessor

based radios have essentially overcome the reliability problems for cooperative HF communica-

tion, and with increased crowding and expense in satellite communication channels, HF has

become a viable, low-cost alternative for global communication.

The combination of rapid waveform changes and increased traffic in an environment that

is difficult to monitor has a direct impact on homeland security, compelling both commercial and

government organizations to devote additional resources to developing Digital Signal Processing

(DSP) algorithms that can detect, identify, and locate these signals. Many of the signal recogni-

tion software products in use today depend on multiple separate modules, each of which may

only distinguish a small number of distinct signal types. Adding new capability requires a time-

Page 16: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

2

consuming and labor-intensive development process comprised of the usual design, implementa-

tion, testing, and deployment stages.

This dissertation explores the concept of automating significant portions of the develop-

ment process, effectively bringing a signal recognition algorithm from concept to deployment

with minimal human interaction.

1.2 Related work

Several universities and research sponsors are working to improve the mechanism used to

express an algorithm during its design. Their emphasis has been on model-based tools that allow

a design engineer (who is typically not a software developer) to express an algorithm as a model

that can be deterministically reduced directly to running software for deployment. For example,

the Vanderbilt Institute for Software Integrated Systems has developed a Generic Modeling En-

vironment (GME) [80], while the University of California at Berkeley’s Center for Hybrid and

Embedded Software Systems has a similar modeling tool called Ptolemy [6]. Both of these or-

ganizations participated in a Defense Advanced Research Projects Agency (DARPA) project

called Model Based Integration of Embedded Software (MOBIES) [17], which included an ex-

periment in signal processing algorithm development. That work led to the development of a

configurable signal recognizer framework [26] that was successful in reducing the time required

to translate an algorithm developed by a signal processing expert into running software [39].

However, those efforts did not address the larger issue of determining the suitability of an

algorithm to perform its intended function. In fact, the analysis and characterization of a new al-

gorithm requires significantly more effort than simply translating the algorithm to running

software.

1.3 A different approach

Analyzing the performance of a DSP algorithm should yield insight into its expected be-

havior as a function of all of the factors that can vary in its deployment environment. These

factors may include algorithm tuning parameters (such as maximum likelihood thresholds), sig-

nal characteristics (such as symbol rate, modulation type, and pulse shaping), and transmission

channel propagation effects (such as additive white Gaussian noise or fading). For automated

Page 17: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

3

surveillance applications in non-cooperative environments, the list of applicable factors can be

very large.

Mathematical analysis of an algorithm that accounts for all relevant factors is unlikely to

yield a reasonable closed form solution, and the operational effect of any simplifying assump-

tions must be carefully considered. For this reason, most researchers include simulation testing in

their evaluation. However, the significant variations in the planning and execution of published

simulations render it difficult to make direct quantitative comparisons between algorithms.

A good simulation test starts by examining the intended operational domain to establish

quantitative bounds for all pertinent signal and transmission channel properties. Any property

that is not constant is potentially a factor that can affect the algorithm performance. The combi-

nation of these factors defines a multidimensional problem domain space. A comprehensive

analysis of the algorithm requires a body of test signals whose range of factor values comprise a

statistically significant population of this space [22]. These test signals can be either synthetic or

recorded, as long as all factor values are known for every test signal.

The complexity of the interacting algorithm, signal and channel factors suggests that

techniques pioneered in experimental algorithmics [53] could yield useful insight into perform-

ance. Experimental algorithmic methods emphasize several key concepts that include clearly

specifying the testing goal, articulating parameter variations and any hidden algorithmic factors,

carefully constructing large test sets that span the problem domain, and systematically evaluating

the performance results using statistical techniques.

1.4 Dissertation overview

The remainder of the dissertation is organized as follows. Chapter 2 is an introduction to

the HF signal domain and to the communication signal meta-data expression language developed

to describe HF signals using Extensible Markup Language (XML) schema. This work provides

an unambiguous characterization the High Frequency signal space for research purposes.

Chapter 3 describes the Algorithm Evaluation Framework (ALEF) created to facilitate

characterizing signal processing algorithm behavior. The framework provides functions to auto-

mate the evaluation process including creating large numbers of test files, running these files

through the algorithm under test, and analyzing the results. Automating this cycle allows rapid

testing and evaluation of algorithm enhancements, as well as identifying the significant factors

Page 18: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

4

that affect performance. The framework was implemented using a commercially available pro-

gramming and modeling environment (MATLAB® and Simulink® from The MathWorks, Inc.)

that includes a rich set of intrinsic digital communication functions. The last sections of Chapter

3 describe using the framework to perform several algorithm development tasks including com-

paring related algorithms, testing algorithm improvements, developing quality indicators, and

characterizing a new algorithm.

Chapter 4 introduces a new vector-based Genetic Programming (GP) language, FIFTH™,

designed to allow automatic discovery of human-competitive signal-processing algorithms. The

chapter reviews the current state of GP while highlighting the innovative features of FIFTH.

Chapter 5 describes using FIFTH and its programming environment to discover a new and highly

accurate symbol rate estimation algorithm.

Finally, Chapter 6 presents additional discussion of the impact of this work and plans for

its future continuation.

Page 19: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

5

Chapter 2 HF Signal Classification

2.1 Introduction to HF communications

An essential first step in automated algorithm development is an accurate specification of

the domain. This is analogous to defining requirements and establishing operational bounds be-

fore developing software. Without it, the algorithm developer cannot determine whether selected

test cases are either necessary or sufficient. This chapter chronicles the evolution of the data

specification and representation format for digital communication signal analysis in the High

Frequency (HF) communication band. The HF problem domain is well suited to algorithm explo-

ration because it has important real-world application, it can be specified accurately, and it can

be represented by reasonably sized test sets.

The HF band is defined as the frequency range from 3 to 30 MHz. In practice, most HF

radios use the spectrum from 1.6 to 30 MHz. In this range, the ever-present hazards of noise, fad-

ing, and interference make establishing and maintaining a viable HF communication link more

difficult than in the VHF (Very High Frequency, 30 – 300 MHz) or UHF (Ultra High Frequency,

300 MHz – 3 GHz) bands. However, HF signals (especially in the range of 4 to 18 MHz) have

the unique ability to bounce off of the ionosphere, enabling them to move information around the

world instead of being limited to line-of-sight [2]. Government regulations and international trea-

ties divide the band into sets of frequency ranges for specific communication purposes including

maritime, aviation, distress, standard time, amateur, broadcasting, and radio astronomy [3].

The development of satellite communications and the proliferation of VHF and UHF ra-

dio repeaters resulted in a declining interest in HF communication for many years. That trend is

now reversing. Satellite communication channels are crowded, and their cost is increasing. Also,

recent technology advances have overcome many of the former problems associated with HF

communication, thus renewing interest in HF as a viable and cost-effective long-range commu-

nication medium [33].

While analog signals (e.g., broadcast music and amateur radio) constitute a significant

percentage of the traffic in the HF band, most of the research and development activity is di-

Page 20: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

6

rected towards digital communication. Monitoring, analyzing, and classifying digital signals is

especially important in the intelligence community for deciphering intercepted communications.

Current emphasis is shifting from manual monitoring techniques that require a skilled operator to

computer controlled automated processes. Appendix A contains a glossary of terms and acro-

nyms used in the HF domain. Appendix B presents a brief overview of the components that

comprise an automated monitoring system.

Agreed-upon standards for information interchange facilitate the accurate and timely dis-

semination of data among interested parties. For automated computer processing, an information

exchange standard must also be syntactically rigorous, semantically unambiguous, and techni-

cally complete. Initial work directed at expressing the key features of this domain revealed that

there are few common standards for encoding test files, recording data, presenting metadata, or

expressing results. This made it difficult to compare the performance of algorithms from dispa-

rate sources.

After considering various database formats, binary file formats, and the few existing

standards, we decided to adopt the Extensible Markup Language (XML) and define representa-

tions using XML schema [83]. There are considerable advantages to this approach. In many

disciplines, XML is rapidly becoming the universal format for information exchange, primarily

due to its simple structure, published standards, platform independence, and ubiquitous support.

However, these attractive features conceal the practical challenges of developing a complete and

usable XML schema. Successful adoption within a technical discipline requires expert knowl-

edge of both the application domain and XML technology.

Appendix C gives an overview of the resulting Signal Exploitation schemas. The sche-

mas use a layered approach, first defining base types for communication signals. Subsequent

layers define a format for signal libraries, a documentation format for algorithm test records, and

an interchange format for signal processing tasking.

The remaining sections in this chapter present an overview of some existing techniques

for classifying HF signals and then describe the development of the Signal Exploitation schema.

2.2 Describing HF signal characteristics

The basic theory for digital communication is well established, and there are many good

books available such as Sklar [69] and Proakis [59]. Digital information is encoded in a transmit-

Page 21: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

7

ted signal by varying in time one or more of three fundamental characteristics: amplitude, phase,

and instantaneous frequency. Combinations of these characteristics produce a variety of signals

ranging from simple carrier amplitude modulation, such as Morse code, to intricate schemes,

such as Voice Frequency Telegraphy (VFT). Table 2.1 lists common abbreviations associated

with frequently encountered digital modulation techniques.

Table 2.1: Common digital modulation techniques

Abbreviation Description

CW Carrier Wave. This is the same as OOK (On Off Keying) or Morse code.

FSK Frequency Shift Keying. This is the same as PFM (Pulse Frequency Modulation), also known as PSM (Pulse Skipping Modulation)

MSK Minimum Shift Keying

PSK Phase Shift Keying. This is the same as PPM (Pulse Phase Modulation)

DPSK Differential Phase Shift Keying

OQPSK Offset Quadrature Phase Shift Keying

ASK Amplitude Shift Keying. This is the same as PAM (Pulse Amplitude Modulation)

QAM Quadrature Amplitude Modulation. This is the same as APSK (Amplitude and Phase Shift Keying)

CPFSK Continuous Phase Frequency Shift Keying

CPM Continuous Phase Modulation

GMSK Gaussian Minimum Shift Keying

The acronyms of Appendix A provide a general classification of signal types, but they do

not completely specify a signal. There are numerous other parameters associated with each

modulation technique, and some of these techniques can be combined in a single broadcast sig-

nal. Most modulation strategies can be described by analytical formulas. However, this form is

not suitable for a general signal library specification because real signals have noise and are dis-

torted by channel fading and other effects. A complete specification must include all of these

parameters in a flexible manner to accommodate broadcast signals recorded off the air as well as

synthetically generated signals. Even when incompletely specified, real signals are useful in gen-

erating test suites for exercising signal recognition algorithms. Table 2.2 lists some of the

common parameters associated with digitally modulated signals used in the HF bands and pro-

vides typical values for practical ranges.

Page 22: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

8

Table 2.2: Typical HF digital signal properties

Property Association Example HF Values

Modulation type Signal FSK, MSK, PSK, DPSK, OQPSK, ASK

Pulse shape Signal None, raised cosine (RC), root RC (RRC), Gaussian

Excess bandwidth (rolloff) Signal Limit: 0.00 to <1.00 (fraction of Nyquist bandwidth).Typical: 0.10 to 0.35

Symbol rate Signal Typical: 10 to 2400 symbols per second (baud)

Symbol states Signal 2, 4, 8, 16 states

Duration Signal Practical range: 0.1 to 5 seconds

Signal to noise ratio (SNR) Channel Practical range: 0 to 60 dB

Frequency offset from baseband Receiver Possible range: 0 to 500 Hz

Sampling rate Receiver Practical range: 8 – 32 kHz

2.2.1 International standards

The International Telecommunication Union (ITU) headquartered in Geneva, Switzer-

land, is an international organization within the United Nations system where governments and

the private sector coordinate global telecommunication networks and services. They publish a

Radio Regulations book that defines a detailed emissions classification system. The intent of this

system is to identify emission sources for regulatory and compliance monitoring.

The ITU format consists of a four-character expression specifying signal bandwidth fol-

lowed by a five-character encoded description of the emission. For example, 2K11H2BFN

represents a “selective calling signal using sequential single frequency code, single-sideband full

carrier with a bandwidth of 2.11 KHz” [1]. Selecting the appropriate letters and numbers is suffi-

ciently complicated that the International Amateur Radio Union has published a simplified guide

that reduces the 15-page standard down to a 2-page table that covers the most common signal

types [4]. The guide states that in ambiguous cases, anything else can be classified as “Un-

known.” The ITU standard serves its intended purpose and could be encoded in an XML schema,

but it does not contain sufficient detail to describe an arbitrary digital signal.

2.2.2 Ad hoc amateur radio schemes

Amateur Radio enthusiasts constitute another active group of people listening to signals

in the HF band. Companies such as Monteria [35] and Klingenfuss [38] publish lists of frequen-

cies, descriptions, and sample recordings of monitored signals. Until it shut down in 2006, the

Page 23: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

9

Worldwide Utility News organization published a widely distributed “Frequently Asked Ques-

tions” (FAQ) document that described and categorized many of the signals heard on HF

frequencies [64]. Since the target audience for this information consists of people who are listen-

ing to radios, the principal signal classes in this FAQ are distinguished by how the signals sound.

For example, “Synchronous Data Block” signals are described as having a “distinctive chirping

sound,” while “Synchronous Bit Stream” signals are “continuous and possess a trilling quality.”

Within each of the principal classes is amassed a significant quantity of additional techni-

cal information. However, the presentation of this information is not without problems. Some

terms are used inconsistently, while others can be ambiguous. For example, the word “tone” is

used to describe both a symbol value in simple FSK modulation and one of many sub-carriers in

more complicated modulation schemes. Once again, this description format is not well suited for

computer based analysis and information exchange.

2.2.3 Other schemes

L-3 Communications Analytic Corporation proposed a Waveform Description Language

[21] primarily for use with Software Defined Radios. The language, which was based on the

Unified Modeling Language (UML) from the Object Management Group (OMG) [55], relies

heavily on realizing the model in MATLAB and Simulink. It deals only with the signal charac-

teristics from a cooperative transmit/receive perspective and cannot express transmission channel

features. There is no public record of its further adoption.

Finally, several government organizations and commercial companies have designed and

built automated signal acquisition and analysis systems with varying degrees of capability. Many

of these systems use databases to store signal descriptions, but there are no published standards

for tables or field names.

2.3 Developing the XML schema

Clearly, signal analysts and researchers would benefit from a more rigorous signal de-

scription mechanism, like an XML schema, that addresses the shortcomings of current schemes.

Ideally, the XML schema should define domain specific data types and elements that can unam-

biguously describe almost any digitally encoded signal while retaining a structure that can

support typical automated operations such as cataloging, searching, and sorting.

Page 24: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

10

Designing an XML schema of this magnitude is not a trivial undertaking. There are many

critical decisions such as element names, attributes, and hierarchy levels. In most cases, there are

multiple ways to achieve the same objective, with no clear indication of which is best. We chose

to decompose the problem, beginning with simple signals then progressing to more complicated

signals. This section presents an abbreviated chronicle of that process. Figures 2.1 through 2.3

are representative signal spectrograms included to help visualize the problem. Spectrograms are

widely used to visualize the frequency components of a signal as a function of time. The bright-

ness in the plot area indicates the energy (amplitude) of the signal. In these spectrograms, white

represents the highest energy level, and black represents the lowest. Since these are baseband

signals, the frequency to which the receiver is tuned becomes the zero point on the y axis.

In XML, there are two ways to encode tags that identify information. The most common

is the “element,” the name found between the angle brackets. The second encoding technique is

called an “attribute” and is located after the element name but is still within the angle brackets.

For example, consider the following expression. <baud tolerance=”5”>100</baud>

The element name is “baud,” and “tolerance” is an attribute associated with “baud.” Attribute

data is separated from its identifier by an equal sign and surrounded with quotes. Element data is

enclosed between opening and closing tags, where a closing tag has a forward slash immediately

following the opening pointed bracket.

2.3.1 Single carrier signals

Figure 2.1 shows a spectrogram for a simple Binary Phase Shift Keying (PSK with 2

phase states) signal transmitting at 100 symbols per second (baud). The spectrogram shows a

clear, single energy band 1000 Hz above the tuning frequency. The information in this signal is

encoded in phase changes that are not visible on the image. Leaving out a few details, this signal

might be described with the following XML snippet. <carrier> <freqHz>1000</freqHz> <modulation>PSK</modulation> <baud>100</baud> <numStates>2</numStates> </carrier >

Page 25: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

11

Time (Seconds)

Freq

uenc

y (H

z)

Spectrogram of Psk31Bpsk.wav

0 0.5 1 1.5 2 2.5 3 3.5 40

1000

2000

3000

4000

5000

Figure 2.1: BPSK spectrogram

Examining signals that use other modulation schemes from Table 2.1 yields several addi-

tional necessary elements. For example, an FSK signal might be described as follows. <carrier> <freq_Hz>1000</freq_Hz> <modulation>FSK</modulation> <baud>100</baud> <numStates>2</numStates> <shiftHz>3</shiftHz> <phaseContinuity>discontinuous</phaseContinuity> </carrier>

This approach requires separate named fields for all possible parameters associated with all pos-

sible modulation types. Rather than continuing to add optional fields into a large flat structure,

we defined separate XML complex types for each modulation class.

2.3.2 Multiple carrier signals

Next, consider the class of signals comprised of more than one carrier. Figure 2.2 shows a

VFT spectrogram that has a single unmodulated carrier (the solid white line at about 200 Hz)

along with multiple other carriers that are independently modulated. There are two obvious

Page 26: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

12

choices for describing this signal: either introduce a new complex type to describe multiple carri-

ers or add a hierarchy level that allows for multiple signal segments. While the latter approach

adds a layer of complexity for simple signals, it has a significant benefit for later processing in

that all signal types have the same structure.

Time (Seconds)

Freq

uenc

y (H

z)

Spectrogram of br6028.wav

0 0.5 1 1.5 2 2.5 3 3.5 40

1000

2000

3000

4000

5000

Figure 2.2: VFT spectrogram

2.3.3 Multiple carrier signals that vary in time

Many real signals transmit data in bursts. Although the signal energy turns on and off as a

function of time, as long as the modulation characteristics do not change from one burst to the

next, the previous “segment” description provides an adequate definition. However, this does not

allow for the possibility that the signal will change its character midstream.

Figure 2.3 shows a CODAN signal from a smart modem that can monitor the effective-

ness of an HF transmission and adapt its modulation to achieve a high data throughput with a

minimal error rate. The modulation characteristics are different in the two areas of signal energy.

To describe this, the segment must capture the signal start and stop time, and an additional hier-

archy level is required to contain multiple segments.

Page 27: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

13

Time (Seconds)

Freq

uenc

y (H

z)

Spectrogram of CODAN.wav

0 0.5 1 1.5 2 2.5 3 3.5 40

500

1000

1500

2000

2500

3000

3500

4000

Figure 2.3: CODAN spectrogram

2.3.4 The Signal Exploitation Markup Language (SIGEXML)

This process of refining the descriptive elements was essential to creating a viable XML

schema for digital communication signals. Wherever practical, we defined enumerations and re-

stricted data types so that the XML validation process would support semantically correct use of

the types. In addition to the signal description, we defined types to describe the communication

channel (noise and fading) as well as types related to saving a signal in a file.

The previous XML snippets also illustrate an important design decision. Many elements

can be expressed using more than one unit of measure. Some published XML schemas provide a

“units” attribute to identify the specific unit associated with an element value. Rather than risk

the confusion associated with multiple possible units of measurement, the Signal Exploitation

schema defines a fixed unit for each element and embeds the unit as part of the element name.

This decision favors ease of automated search and comparison over ease of constructing user dis-

plays.

Another conscious decision was to prefer elements over attributes. We defined only two

optional attributes for general use: confidence and tolerance. These provide a straightforward

Page 28: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

14

way for an algorithm to report confidence levels for calculations and to associate tolerances with

specification values. There are two distinct uses for this type of information. One is to describe a

synthesized or captured signal (designated as a “report” type), and the other is to describe the

desired characteristics of a signal that might be of interest but for which precise parameter values

are not known (designated as a “template” type).

Appendix C briefly describes each of the files that comprise the Signal Exploitation

Markup Language (SIGEXML) schema. Also in that appendix, Figure C.2 shows a pictorial rep-

resentation of an FSK report, and Figure C.3 shows how the report types fit within a signal

segment. Due to the length of the SIGEXML documentation material (several hundred pages) it

is not included in this dissertation.

2.4 Real world impact of SIGEXML

The results of this work validate many of the XML claims. The data storage is well or-

ganized, and there are numerous available XML tools. Although the time and cost required to

develop the Signal Exploitation schema substantially exceeded initial estimates, the acceptance

of the schemas and resulting data exchange capabilities vindicated the effort. After initially pub-

lishing this work [29], two of the authors were invited to present the results to a government

agency. Derivatives of the schemas were subsequently adopted by Southwest Research Institute

and are now being used in operational systems worldwide.

Page 29: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

15

Chapter 3 Algorithm Evaluation Framework (ALEF)

A second essential step in automated algorithm development is creating a framework ca-

pable of managing the large-scale data collection and analysis that is necessary to exercise an

algorithm within a statistically significant volume of its specified domain. Our automated test

framework takes a three-phase functional approach (test generation, test execution, and analysis)

as illustrated in Figure 3.1. Each phase stores its output in a format that facilitates systematic

identification, retrieval, and manipulation by the next phase, including all relevant input factors

and generated results.

Figure 3.1: Test framework block diagram

The Test Generator uses a collection of fully specified domain factors to produce a full-

factored set of test files. It records the domain properties of the test set in an XML signal library

file, and it encodes the specific factor values associated with each signal in the individual file

names. The Test Executor automatically invokes the algorithm against each test signal for every

combination of the algorithm parameters. It collects all pertinent test input as well as the algo-

Page 30: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

16

rithm response for each test into a generalized, indexed structure that is saved in a single test re-

sults file. In the final analysis phase, a script applies ALEF analysis tools to the test results and

produces a report. The analysis tools include functions to produce summaries of general per-

formance, tables of results organized by test factors, and visualizations such as probability

density curves.

Section 3.1 describes the ALEF components. The remainder of the chapter applies ALEF

to the problem of determining the symbol rate of an HF signal. Section 3.2 uses ALEF to obtain

a quantitative comparison of three standard symbol rate algorithms over a realistic signal do-

main. Section 3.3 applies ALEF to tune an existing wavelet-based symbol rate algorithm, and

Section 3.4 illustrates how ALEF can be used to develop new algorithms. The design and some

preliminary results from using ALEF were reported in [27].

3.1 ALEF components

This section describes the three major components of the ALEF framework in more de-

tail. An index of ALEF functions can be found in Appendix D.

3.1.1 Generating test signals

The problem of obtaining standard test signal files for algorithm development has been

recognized for some time. Kremer and Shiels [46] stated, “There also appear to be no existing

databases of radio transmissions which could be used for our purpose.” In related areas of re-

search, such as speech recognition, significant effort has gone into establishing standard corpora

of test data files [5]. While there are a few communication signal resources available, such as

[19, 38, 48], these files usually have insufficient knowledge of one or more important signal at-

tributes to be useful for algorithm evaluation. Also, these repositories have no formal structure

and are unsuitable for automated selection of files that meet specific criteria. This is not surpris-

ing, however, because the number of files required to include every possible value of every

signal parameter would be enormous. As a result, most researchers are compelled to produce

their own body of simulated signals. Besides the tremendous duplication of effort, rarely are suf-

ficient details of the simulation process available to allow independent analysis of the test data

sets used to evaluate an algorithm.

Page 31: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

17

Since developing a signal generation tool was essential to an automated testing frame-

work but was not itself intended to be a research project, we selected MATLAB and Simulink

from MathWorks as the development environment. These products provide a rich set of signal

processing related functions from which we constructed signal generators that required minimal

validation.

Modulation Section.Symbols are read from a workspace variable.To produce impulses that will be pulse shaped,upsampling is performed after the modulator block.

Filter and Channel Section.The model uses up-sampling and down-sampling to allownon-integer relations between the sample rate and the symbol rate. This final section first applies a fi lter to performpulse shaping, then downsamples to the specifiedsignal sample rate before saving the signal to the workspace.

Zero Generation Section.This generates complex zero values at the same samplerate as the modulation section. This provides a data for generating just noise when the modulation sectionis switched out. The zeros also provide a clean transitionthrough the pulse shaping filter when the modulator isswitched out.

Timing Section.This switches the modulation section on and off to provideunmodulated white noise at the beginning and end of themodulated signal.

AND

and

Zero Generator

Switch

<=

Start <= clock

nSymbols

Signal symbols fromworkspace

structGenSignal

Signal ToWorkspace

-C-

SignalStop Time

-C-

SignalStart Time

Generate a Qadrature Amplitude Modulation (QAM) Signal WITH Pulse Shaping.Last updated: Thu Sep 29 21:04:48 2005

MakeDiscrete

|.|

Magnitude-Angleto Complex

GeneralQAM

General QAMModulatorBaseband

nDo

Downsample

DF FIR

Digital Filter<=

Clock lte stop

0

Clock

Figure 3.2: Simulink model for QAM and PSK signals with pulse shaping

After considering the capabilities, maintenance, ease of expansion and ease of use of five

different architectures, we decided to use a series of Simulink models to implement the signal

modulation and channel effects. The models are paired with one or more MATLAB functions to

set specific workspace variables that are conveyed to the models. The output from this first tier

(Simulink model and associated MATLAB function) is a single signal stored in a workspace

variable. A second tier of MATLAB functions accepts vectors of signal property values and uses

the first tier functions to produce a full factorial set of baseband signal files containing all com-

Page 32: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

18

binations of these values. If desired, the functions can also create several variations of each sig-

nal with different symbol sequences and signal to noise ratios. The output consists of simulated

analytic (complex valued) signals stored in a standard WAV file format with in-phase data in

channel 1 and phase-quadrature data in channel 2. The test framework manages variable signal

duration by generating a test signal file that exceeds the maximum length of interest and then ex-

tracting sections as needed. Figure 3.2 shows the Simulink model for generating a QAM or PSK

signal with pulse shaping. PSK is a subclass of QAM where the signal has only one amplitude

value.

3.1.2 Executing tests

In the Test Execution phase, a framework function processes the previously identified

body of test signals through the algorithm under test. The input to this phase must include all al-

gorithm specific parameters used to adjust performance. Incorporating these in the test process

requires iteratively executing the algorithm against each test signal using an appropriate range of

parameter values.

Note that the name of the function implementing the algorithm under test is supplied to

the framework as a string. The test executor uses a fixed calling convention of the form [kResult kAlgParam] = sAlgName(x, Fs, kAlgParam, kActual)

where x is the input signal, and Fs is the sample rate in Hz. This is generic enough that the test

executor requires no explicit knowledge of the contents of the structures that carry algorithm pa-

rameters (kAlgParam), actual signal information (kActual), or test results (kResult).

While each invocation of the test executor function may process thousands of tests, the

results are saved in a single file. A three-level hierarchical structure provides an organized for-

mat that is easy for the analysis functions to access and interpret. The field names are fixed only

at the second level. The first level is a single variable (kTest) that holds all aggregate data from

the single test executor invocation. This variable contains the second level required structure

names that are indexed by test number (kAlgParam, kActual, and kResult). The content of these

structures (the third level) consists of named fields, but by using MATLAB run-time field name

discovery, the framework does not impose any fixed names or data format for those fields.

Page 33: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

19

3.1.3 Analyzing results

Once the test results are collected, they can be analyzed using one or more of the frame-

work analysis tools. In addition to calculating standard error metrics, functions are available to

calculate N-Way Analysis of Variance (ANOVA) [8] and to develop Receiver Operating Charac-

teristic (ROC) curves [82].

ANOVA is a statistical model representing an output value as a linear combination of

factors. For this framework, the factors can be signal characteristics, transmission channel char-

acteristics, or algorithm parameters. Provided that the data is a reasonable fit to the model, it can

determine if the means in a set of data differ when grouped by multiple factors. If they do differ,

the ANOVA values can help determine which factors or combinations of factors are primarily

associated with (or cause) the difference.

0 0.2 0.4 0.6 0.8 10

0.2

0.4

0.6

0.8

1

False Positive

True

Pos

itive

Receiver Operating Characteristic

Figure 3.3: Example receiver operating characteristic curves

ROC curves were developed in the 1950s as a method for characterizing receiver dis-

crimination of radio signals contaminated by noise. They have since been generalized and are

used extensively in epidemiology and medical research. The x-axis on the graph indicates the

probability of failure (0 to 1), commonly called a false positive, where the algorithm or test indi-

cates a true value when it is not true. The y-axis indicates the probability of success (0 to 1),

commonly called a true positive, where the algorithm or test indicates a true value when it is

true. Figure 3.3 illustrates two theoretical ROC curves for an algorithm. The best possible algo-

Page 34: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

20

rithm would yield a graph that was a point in the upper left corner of the ROC space, i.e., 100%

sensitivity (all true positives) and 100% specificity (no false positives). This is rare, so desired

operating regions are usually specified by a maximum False Positive value and a minimum True

Positive value. Varying algorithm parameters will move the operating point along the curve.

Note that in Figure 3.3 the desired operating region (shown in gray) is intersected by the solid

curve but not by the dotted curve.

3.2 Comparing symbol rate algorithms

Estimation of the symbol rate of an unknown digital communication signal is an impor-

tant early analysis step for most automated surveillance applications. Since later analysis stages

often rely on the availability of an accurate symbol rate, a practical symbol rate analyzer should

provide a reliable estimate of accuracy as well as the symbol rate value. The performance of

symbol rate algorithms is heavily dependent on the method of signal encoding. Therefore, many

automated applications determine signal type upstream of symbol rate detection. As a first test of

ALEF, we assumed upstream signal type detection and focused on symbol rate estimation for

Phase Shift Key (PSK) signals.

Symbol rate estimation algorithms have been developed, analyzed, and published for

many years. For example, Reed [60] used a fourth-power signal envelope algorithm, Koh [40]

developed an algorithm based on the absolute value of the signal envelope, Sills [68] developed a

Euclidean algorithm based on sample histograms and probability, and textbooks (e.g., Sklar [69])

describe classic techniques using autocorrelation, derivative of the phase, and delay and multi-

ply. In practice, it is difficult to quantitatively compare the relative performance of these

algorithms based solely on the published information. Su and Kosinski [73] observed, “Robust-

ness studies of modulation recognition performance in regards to symbol rate error, symbol

timing error, symbol resampling error and channel distortion are not found in our studies.” An

author may concentrate on a specific aspect of an algorithm and, due to space limitations, omit

key implementation details required to independently reproduce the results. In some cases, sim-

plifying assumptions required to perform a closed form mathematical analysis may not reflect

realistic operating environments. In addition, few publications characterize the operation of an

algorithm with respect to all of the parameters that may affect its performance. Typical simula-

tions fix some parameters and omit boundary values for others. Symbol rate detection is

Page 35: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

21

representative of a large class of practical signal processing problems in which analytical evalua-

tion is an inadequate predictor of how these algorithms perform in practice.

Most symbol rate algorithms have a similar structure consisting of two computational

stages [84]. The first stage develops a feature space (a vector) by applying a transform to the

digitized signal. The goal of the transform is to locate and emphasize symbol transitions. The

second stage analyzes this feature vector to calculate a periodic value that is the estimate of the

symbol rate. To determine the applicable algorithm-specific parameters, we consider the two

stages independently.

Using the ALEF algorithm calling convention, we implemented three common first stage

transforms applied to PSK signals: the derivative of the phase angle (DPDT), the magnitude of

the signal squared (MAGSQ), and the average sum of the signal envelope (AVSE). In recent

years, there has been significant interest in using the wavelet transform, and several authors have

explored this potential [16, 24, 63]. The wavelet transform algorithm is explored in the next sec-

tion of this chapter.

The first stage of the DPDT algorithm transforms the input signal by taking the magni-

tude of the derivative (approximated using the first difference) of the signal’s unwrapped

instantaneous phase angle. As seen in the MATLAB expression below, there are no adjustable

parameters. In these statements, x is the analytical (complex) signal vector, and x1out is the first

stage output. xphase = unwrap(angle(x)); x1out = abs(diff(xphase));

The second stage is more challenging. Most published descriptions determine the perio-

dicity associated with the symbol rate by using a fast Fourier transform (FFT) of the first stage

output and selecting a peak. The process of selecting a peak varies from simply choosing the

value with the largest magnitude to sophisticated application of thresholds, filtering, and weight-

ing prior to value selection [47]. Parameters associated with this hidden peak search algorithm

are rarely disclosed, yet they affect practical performance and therefore must be characterized.

Rather than attempting to reproduce specific second stage implementations from sparse descrip-

tions, we developed a common second stage for all symbol rate algorithms.

Attempting to avoid the peak search ambiguities, our first implementation simply se-

lected the peak with the largest magnitude. Visualization of failed test cases revealed

Page 36: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

22

circumstances where the correct peak was obvious but was not the maximum. Many of the failed

cases were signals with low symbol rates and minimal to no pulse shaping, which resulted in

significant harmonic peaks appearing in the output of the Fourier transform. Since the harmonics

occurred at multiples of the symbol rate, we included harmonic detection code in the second

stage to improve performance.

Our final second stage design contained several adjustable parameters including the de-

sired baud resolution (which affects the size of the FFT), whether to use a Hamming window

prior to each FFT to reduce spectral leakage, and whether to use an overlap and addition of the

FFT results to enhance the desired peaks. This last option also requires a low pass filter on the

final FFT accumulation to remove any trend at the low frequencies, introducing another parame-

ter for the width of the moving average.

When we used the framework to characterize these second stage parameters, the results

indicated that the performance of the peak search behaved uniformly with respect to the different

first stage transforms. This was an important observation since it implied that the performance of

the second stage would not mask the performance of any of the first stage transforms. It also im-

plied that we could use the same fixed set of second stage parameters, and any variations in

performance would result solely from the interaction of the first stage transform with the varia-

tions in signal factors. Table 3.1 lists the final second stage peak search parameters selected for

the symbol rate experiments.

Table 3.1: Peak search parameters for symbol rate experiments

Parameter Stage Values used

Minimum cutoff 2 20 symbols per second (baud)

FFT Size 2 4096 points (~2 Hz resolution)

Overlap in FFT 2 50 %

Windowing 2 Hamming

Low pass filter 2 16 point moving average

Harmonic peak threshold 2 40 % of maximum peak value

3.2.1 Phase 1 – test signal generation

To reiterate, the signal domain for this set of experiments consisted of PSK modulated

signals in the High Frequency (HF) communication band, typically limited to channels with a

bandwidth of 5 kHz or less. Table 3.2 lists common signal properties that can affect the perform-

Page 37: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

23

ance of a blind symbol rate estimation algorithm. The values selected for these experiments cor-

respond to expected realistic ranges for a surveillance system. We also included complexities

that arise in practice but are seldom considered in published studies, such as pulse shaping and

symbol rates that are not integer divisors of the sample rate.

Table 3.2: HF signal property boundaries for symbol rate experiments

Property Example HF Values Values Used

Modulation type FSK, MSK, PSK, DPSK, OQPSK, ASK PSK

Pulse shape None, raised cosine (RC), root RC (RRC), Gaussian

None, RC, RRC

Excess bandwidth (rolloff) Limit: 0.00 to <1.00. Typical: 0.10 to 0.35

0.1, 0.2, 0.35

Symbol rate Typical: 10 to 2400 symbols per second 50, 100, 300, 1280, 2400

Symbol states 2, 4, 8, 16 2, 4, 8

Signal to noise ratio1 (SNR) Practical range: 0 to 60 dB 9, 12, 16, 20, 40

Frequency offset from baseband Possible range: 0 to 500 Hz 0, 50, 100

For each combination of the six multiple-valued test signal factors we generated 10 ran-

dom variations of noise and symbol content, yielding an ensemble of 15,750 test signals. The

framework manages frequency offset by heterodyning the baseband signal before calling the al-

gorithm. Generating the test files required a small MATLAB script to set up the parameters and

options before calling the framework functions. This excerpt from the script shows the general

format. sLibPath = ‘C:\SymRateLib’; kOptions.nVersions = 10; kChannelParam.arSNRdB = [9 12 16 20 40]; kSignalParam.anStates = [2 4 8]; genPSKfiles(kSignalParam, kChannelParam, kOptions, sLibPath);

Based on expected limitations and desired characteristics of actual real-time surveillance

systems that use these algorithms, we selected a fixed sampling rate of 8000 complex samples

per second and a maximum signal duration of approximately 2 seconds.

1 AWGN bandwidth measured at approximately the Nyquist sample rate.

Page 38: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

24

3.2.2 Phase 2 – test execution

The following is an excerpt from the MATLAB script used to process the test files

through the DPDT algorithm (function name ‘sr_dpdt’). sFiles = fw_listdir( sLibPath ); % Basic parameters rStartTimeSec = 0.6; rSampleRate = 8000; rDuration = 2* 2^13/rSampleRate; rOffsetHz = [0 50 100]; % Common algorithm parameters kAlgParam(1).sPeakOpt = ‘orh’; kAlgParam(1).rMinSymbolsPerSec = 20; kAlgParam(1).sSignalOpt = ‘c’; sAlg = ‘sr_dpdt’ fw_runtest(sFiles, rStartTimeSec, rDuration, rOffsetHz, sAlg, kAlgParam);

For this experiment, we programmed the symbol rate algorithms to return not only the es-

timated symbol rate but also several standard statistical measures of dispersion and central

tendency for the first and second stage outputs, including the mean and standard deviation. These

values were later used to develop unique quality metrics for the symbol rate estimation values.

3.2.3 Phase 3 – results analysis

After running the test execution scripts to generate the raw data, additional MATLAB

scripts directed the framework analysis functions. The analysis scripts often require field names

as part of their calling convention. The following excerpt was used to analyze a kTest structure

and produce a report summarizing test information and algorithm performance (percent correct

responses). This experiment deemed a symbol rate estimate correct when the error was less than

2% of the actual value. sField = ‘symbolsPerSec’; sType = ‘PctErr’; rPass = 2; [bPass, hfig, sReport] = fw_errsummary( kTest, sField, sType, rPass ); [rFactor, kInfo, sReport] = fw_factor( kTest );

The resulting bPass variable is an 1N × vector containing a 1 for each test that passed

and a 0 for each test that failed (where N is the number of tests). The variable rFactor is an

N M× matrix with a column for each of the M multiple valued factors, and kInfo is a structure

containing information about those factors.

Page 39: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

25

To understand the flexibility of this approach, consider that the error calculation function

requires only a field name string to calculate the error for any continuous (non-discrete) value

recorded by the test. The following statement produces an 1N × vector (rPctErr) containing the

symbol rate percent error for each test. rPctErr = (kTest.kActual(:).(sFieldName) - kTest.kResult(:).(sFieldName) ) / (kTest.kActual(:).(sFieldName) * 100;

Table 3.3 combines the result tables from analyzing the three algorithms with respect to

two of the most significant performance factors: actual symbol rate and symbol pulse shaping.

For the specified range of values, each of the algorithms demonstrated reasonably uniform per-

formance with respect to variations in offset frequency, number of symbol states, and noise.

Appendix E shows a sample of the report for DPDT generated by the analysis portion of the

framework.

Table 3.3: Percent correct symbol rate estimation by algorithm and pulse shape

Algorithm DPDT MAGSQ AVSE

Pulse shape None RC RRC None RC RRC None RC RRC

50 79.6 77.8 85.0 0.0 0.0 9.1 0.0 1.6 20.7

100 100.0 97.3 98.4 0.0 0.0 27.6 0.0 18.2 55.6

300 100.0 100.0 100.0 0.0 5.8 54.7 0.0 89.6 98.4

1280 100.0 100.0 100.0 2.0 44.2 89.1 1.3 100.0 100.0

Act

ual S

ymbo

l R

ate

2400 100.0 100.0 100.0 3.3 65.6 99.3 2.7 100.0 100.0

For the outlined conditions, the results are striking. While DPDT showed the best overall

performance, its accuracy degraded significantly below 100 baud. This is primarily due to the

lower number of symbol transitions in our fixed length test signal. Some publications hide that

shortcoming by using a fixed number of symbol transitions (varying the signal length). This

might work for cooperative communication, but for a blind recognition system, the rate is un-

known. Therefore it is more likely that the analysis will be performed over a fixed length signal

capture.

Page 40: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

26

3.3 Improving a wavelet based symbol rate algorithm

The failure of the common symbol rate algorithms in large parts of the practical signal

space motivated a search for more robust symbol rate algorithms. This section applies ALEF to

wavelet algorithms for symbol rate to illustrate how ALEF can be used to optimize the parame-

ters of algorithms to improve their performance.

3.3.1 Overview of wavelets

Wavelets are an alternative rather than a replacement for Fourier techniques. Instead of

the continuous sine and cosine functions employed by Fourier, wavelets are of limited duration.

A wavelet description typically starts at time 0t = and terminates at some time t N= . Outside

of that interval, the value of the wavelet is zero.

Essentially, wavelet transformations capture localized behavior better than classical Fou-

rier transforms. Fourier transforms of localized events lose their temporal relation, while a

wavelet transform of a localized event retains some connection to the time when it occurs. In-

stead of transforming a pure time description (the signal data) into a pure frequency description,

wavelets attempt to find a good compromise. Unfortunately, the Heisenberg uncertainty principle

still applies. Just as with short duration Fourier techniques, time resolution is lost as frequency

resolution increases.

An extreme example is an instantaneous impulse with all frequencies in equal amounts.

Its Fourier transform has a constant magnitude over the whole spectrum. By contrast, a wavelet

transform will involve only a small fraction of the wavelets, those that overlap the impulse. This

allows a wavelet transform to indicate large energy contributions at the time of the impulse.

All digital communication signals exhibit some form of localized behavior at the symbol

transitions. For example, FSK signals have constant amplitude but shift their carrier frequency

while PSK signals change phase at intervals that are a function of the data rate. Theoretically,

wavelet analysis should be ideally suited to extracting such details.

Wavelets are attractive computationally as well. Wavelet analysis often scales linearly,

O(n), with the size of the input data set. For large data sets, this is potentially faster than Fourier

analysis, which scales as O(n log n).

Page 41: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

27

3.3.2 Designing a wavelet based symbol rate algorithm

Chan et al. [16] present a detailed mathematical description of the wavelet algorithm.

Their paper also includes a brief description of the implementation used in their simulations,

which follows the two-stage format. The first stage applies the continuous wavelet transform us-

ing multiple scale values. The squared magnitudes of the resulting coefficients are summed

across the scales to produce a vector that remains time coherent. The following MATLAB code

snippet is a simplified rendition of their first stage algorithm. The variable x is the analytic (com-

plex) signal vector, coefs is a matrix containing the complex coefficients of the resulting

transform, and xfeature is the first stage output vector. coefs = cwt( x, nScale, sWavelet ); xfeature = coefs.*conj(coefs); xfeature = sum(xfeature);

Since this publication had insufficient details to reconstruct the second stage peak search, we

used the same second stage component developed for the previous experiments.

There are two algorithm-specific parameters in the first stage of the wavelet algorithm:

the selection of the wavelet and the choice of scales. Chan et al. specified a Haar wavelet with

scales of 4, 6, and 8. The Haar wavelet is a popular choice because its simple structure allows

closed form analysis of the wavelet transform across a symbol change, and Haar is computation-

ally efficient. However, since the intended test set includes signals with pulse-shaped symbols, it

was neither analytically nor intuitively obvious that the Haar wavelet sufficiently matched realis-

tic input to adequately emphasize the symbol transitions. Therefore, we conducted experiments

that included a large number of available mother wavelet families, as well as an expanded num-

ber and combination of scales.

The wavelet algorithm also has two hidden parameters in the first stage: the sampling rate

and the length of the signal vector. Many published studies assume a sampling rate that is an in-

tegral multiple of the symbol rate. More importantly, these studies often assume a fixed number

of symbols, or worse, a fixed number of symbol changes. For the wavelet experiments we used

the same sample rate (8000 samples per second) as the previous symbol rate experiments and

maximum signal duration of approximately 2 seconds. Table 3.4 lists the algorithm parameter

values used as part of the various wavelet experiments. The final wavelet algorithm is referred to

hereafter as the multi-scale continuous wavelet transform (MCWT).

Page 42: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

28

Table 3.4: Wavelet algorithm parameters for symbol rate experiments

Parameter Stage Values used

Wavelet 1 Haar, db6, sym6, coif3, bior1.3, bior5.5, mexh

Scales 1 2, 4, 6, 8, & combinations

Sample rate 1 8000 Hz

Signal duration 1 1 and 2 seconds

3.3.3 Validating the original MCWT behavior

The intent of the first wavelet experiment was to create a reasonable reproduction of the

original simulation conditions reported by Chan et al. to ensure that our implementation per-

formed comparably. However, since the published conditions included constraints that did not

correlate directly with our expected deployment environment, some changes and compromises

were required.

Limiting the test signal set satisfied two of the original constraints: no pulse shaped sym-

bols and a baseband carrier offset of zero. A third constraint, related to the sampling frequency,

was intentionally altered. Originally, the carrier frequency was fixed to be an integral multiple of

the symbol rate, and the sampling frequency was four times the carrier frequency. We used a

fixed sample rate of 8000 Hz and included multiple noise levels.

The final constraints imposed on the original test signals were that every symbol transi-

tion contained a phase change, and each test signal contained exactly 100 symbols. As already

indicated, we used fixed signal duration and randomly generated symbols to more realistically

simulate the target environment.

Theoretical analyses of symbol rate algorithms often rely on the symbols being independ-

ently and identically distributed (IID). For slow symbol rates, this assumption may be difficult to

satisfy in practice. By viewing the symbol distribution of a signal as a sampling problem (IID

relative to the number of symbol states), we can apply statistical methods to estimate the number

of symbols needed to ensure compliance with the assumed normal distribution. Equation 3.1 is

based on using a proportional sampling model [31].

( )( )2

21 2

1p pn z

rα−

−= (3.1)

Here n is the number of symbols, p is the reciprocal of the number of symbol states, r is the de-

sired accuracy, and z is the unit normal distribution with confidence factor α. For a binary (two

Page 43: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

29

symbol states) signal, we would need about 380 symbol samples to achieve 5% accuracy with a

95% confidence level. Satisfying this condition requires a reasonable 0.16 seconds at 2400 sym-

bols per second, but a lengthy 7.6 seconds at 50 symbols per second. Therefore, for the first

experiment, we limited the symbol rate to values above 300, and we fixed the input duration to

one second.

For the conditions outlined, the MCWT algorithm achieved 100% correct responses for

the 450 test signals with an average symbol rate error of 0.04%.

3.3.4 Selecting wavelets and scales

The goal of the second wavelet experiment was to determine how the wavelet type and

combination of scales might affect the algorithm performance against a broader range of signals.

We expanded the test set to include pulse shaped symbols, lowered the symbol rate range to 50

baud, and included only the highest signal to noise ratio (40 dB) to yield a test set of 1050 sig-

nals. These were run against 49 different wavelets with 9 scale combinations each.

Table 3.5 summarizes the overall performance of four of the better-performing wavelets

plus the original Haar wavelet. The shaded areas mark the highest percent correct for each scale.

Note that combining scales does not always improve performance, and in many cases, it de-

grades performance.

Table 3.5: Percent correct symbol rate estimation by wavelet type and scale

Scale Haar sym6 db6 bior5.5 mexh

[2] 61.2 58.4 55.8 52.5 72.6 [4] 63.7 65.2 66.6 66.4 51.0 [6] 61.7 69.3 70.5 65.8 40.7 [8] 52.0 57.2 56.0 57.4 42.3

[2 4] 63.6 66.6 69.2 67.2 62.3 [4 6] 63.0 73.1 72.6 71.3 44.4 [6 8] 57.6 64.6 62.9 64.1 42.5

[2 4 6] 62.9 73.0 72.7 69.0 50.6 [4 6 8] 59.9 69.0 67.8 68.9 40.6

Figure 3.4 displays some of the data from Table 3.5 in a radar plot. The radial position

indicates the performance (percent correct) for each of the scale factors in the nine angular posi-

tions. This clearly shows that the db6 wavelet had the best overall performance at all scales

except the smallest.

Page 44: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

30

0.0

20.0

40.0

60.0

80.0

100.0[2]

[4]

[6]

[8]

[2 4][4 6]

[6 8]

[2 4 6]

[4 6 8]

Haar mexh db6

Figure 3.4: Radar plot of percent correct symbol rate estimation for three wavelets

Figure 3.5: Wavelet function ψ for Haar (left) and db6 (right)

Figure 3.6: Raised cosine symbol pulse

Page 45: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

31

Like the Haar wavelet, db6 is a member of the Daubechies family. Figure 3.5 compares

the wavelet function for the Haar and db6 families. Notice that db6 more closely resembles the

raised cosine symbol pulse shown in Figure 3.6.

Space does not permit publishing the complete set of statistical analysis data. Table 3.6

summarizes the performance for db6 and Haar using the scale for each with the best overall per-

formance. It is readily apparent that while pulse shaping affects both wavelets, the db6 wavelet

outperformed Haar. Considering that both wavelets performed poorly with raised cosine (RC)

pulse shaping at low symbol rates, equation 3.1 indicates that increasing the signal length above

one second would likely improve performance.

Table 3.6: Percent correct symbol rate estimation by wavelet and pulse shape

Wavelet /Scale Haar [4] Db6 [2 4 6]

Pulse shape None RC RRC None RC RRC

50 100.0 0.0 24.4 100.0 1.1 45.6

100 100.0 12.2 42.2 100.0 1.1 100.0

300 100.0 37.8 78.9 100.0 41.1 100.0

1280 100.0 88.9 100.0 100.0 100.0 100.0 Sym

bol R

ate

2400 100.0 92.2 100.0 100.0 92.2 100.0

3.3.5 Performance comparison with DPDT

The final experiment applied both the original Haar wavelet and the db6 wavelet to the

full 15,750 test signals and extended the signal duration to two seconds. This test set also intro-

duced a carrier offset factor, which simulates the target system where the process of converting a

detected signal to baseband may not precisely center tune the signal. With these changes, the re-

sults can be compared directly with the DPDT results in section 3.2.3.

As seen in Table 3.7, both wavelets achieved 100% correct response for symbols with no

pulse shaping, demonstrating immunity to both noise and carrier offset. However, the perform-

ance against pulse shaped symbols deteriorated, especially at the lower symbol rates.

Page 46: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

32

Table 3.7: Percent correct symbol rate estimation by algorithm and pulse shape

Algorithm Haar [4] db6 [2 4 6] DPDT

Pulse shape None RC RRC None RC RRC None RC RRC

50 100.0 0.2 5.4 100.0 2.2 18.9 79.6 77.8 85.0

100 100.0 2.0 11.0 100.0 2.4 21.3 100.0 97.3 98.4

300 100.0 20.2 51.8 100.0 13.7 21.3 100.0 100.0 100.0

1280 100.0 95.8 100.0 100.0 99.8 100.0 100.0 100.0 100.0

Sym

bol R

ate

2400 100.0 99.3 100.0 100.0 98.9 100.0 100.0 100.0 100.0

3.3.6 Developing a quality metric

The performance achieved by MCWT in this experiment would not qualify this algorithm

for deployment, especially since DPDT performed better under a number of conditions. How-

ever, since DPDT was not 100% successful under all conditions, it would be beneficial if some

quality metric could be calculated that would indicate the probability that the estimated symbol

rate was correct.

The statistical data collected by ALEF provides the data necessary to search for such a

metric. Considering that the first stage transform emphasizes symbol transitions, statistical con-

ditions in the subsequent FFT vector might indicate the presence of a strong symbol rate peak.

Intuitively, the normalized dispersion (standard deviation) and central tendency (mean) of the bin

magnitude values should both be small. A low value for the mean of the FFT bin magnitudes

should imply that the FFT magnitude is small for most frequencies and that a peak associated

with the symbol rate would have good separation from the background. Similarly, a low value of

the standard deviation should imply a flat spectrum, again suggesting good peak separation.

For the db6 wavelet, Figure 3.7 shows the probability density curves produced by ALEF

of the normalized mean of the FFT magnitude bins for signals correctly analyzed (passed) and

incorrectly analyzed (failed). The y axis units are normalized magnitudes so that the area under

each curve is one. Note the small overlap area between the probability of the calculated symbol

rate being correct (solid line) and the probability of it being incorrect (dashed line). For the db6

wavelet, the normalized mean appears to be an excellent quality measure.

Page 47: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

33

0 0.01 0.02 0.03 0.04 0.05 0.060

50

100

150

200

250

300

350

Normalized Mean of the FFT bins

PassedFailed

Figure 3.7: Probability density for db6 wavelet using normalized mean

By contrast, Figure 3.8 shows the same probability density curves for the DPDT algo-

rithm. Note the large area of overlap indicating that this would be a poor quality measurement.

-0.02 0 0.02 0.04 0.06 0.08 0.1 0.120

50

100

150

200

250

300

Normalized Mean of the FFT bins

PassedFailed

Figure 3.8: Probability density for DPDT using normalized mean

Based on the probability density curves, ALEF can calculate an ROC curve by varying a

threshold value applied to the normalized mean of the FFT bins as an indicator of whether the

calculated symbol rate is correct. Figure 3.9 shows the resulting curves for both MCWT (with

Page 48: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

34

db6) and DPDT. This metric works well for MCWT but only marginally for DPDT. We explored

a number of statistical measures but were unable to find one that was a reasonable predictor of

performance for DPDT.

An example operating point might be a desired false positive rate below 1%. To achieve

this, we select a threshold value for the normalized mean of 0.016, resulting in a true positive

rate greater than 98%.

0 0.2 0.4 0.6 0.8 10

0.2

0.4

0.6

0.8

1

False Positive

True

Pos

itive

MCWTDPDT

Figure 3.9: ROC curves using normalized mean of the FFT bins for MCWT and DPDT

3.3.7 Summary

This section demonstrated the use of ALEF to evaluate the effectiveness of wavelets for

symbol rate estimation in PSK signals. For signal parameters typically reported in the literature,

the Haar wavelet performed with nearly a 100% success rate. However, when pulse shaping,

noise, and realistic constraints on sampling rate and signal length were imposed, the results

changed dramatically. The Haar wavelet performed consistently worse than other wavelets.

While there was some improvement when multiple wavelet scales were considered, the gain was

not enough to raise the success rate to an acceptable level.

Practical automated surveillance systems often use a combination of algorithms during

analysis. An algorithm that provides a high level of confidence in the predictions it classifies as

correct can be useful, even if it is unable to make a prediction for every signal. For example,

while both the Haar and db6 wavelet algorithms were able to correctly estimate the symbol rate

Page 49: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

35

for only 50% - 75% of the signals in the test set, they showed significant differences in quality.

We found a simple quality measurement that when used with the db6 wavelet designates correct

predictions with almost 100% accuracy. In contrast, no quality measurement was apparent for

accurately separating correct and incorrect predictions using the Haar wavelet or the phase de-

rivative algorithm.

3.4 Developing a new modulation classification algorithm

Another important category of signal recognition algorithms that continues to be an ac-

tive area of research is modulation classification. These algorithms process a narrowband signal

and attempt to determine the modulation technique used to encode information (see Table 2.1).

Two researchers, Azzouz and Nandi, began publishing collections of algorithms in the early

1990s [54]. Since then, many different methods have been used in these algorithms ranging from

statistical measures [18, 88] to neural networks [86]. While most published algorithms claim

very high accuracy, it is often at the expense of limiting the applicable domain to narrow regions

by excluding common signal characteristics. This often renders the algorithm ineffective for

blind recognition in a real operating environment.

Our third application of ALEF involved developing a modulation classification algorithm

for narrowband HF signals based on Karhunen-Loève (KL) decomposition. Our goal was to de-

velop a new technique and to characterize its performance without artificially restricting the

domain space.

KL decomposition, a principal component analysis technique, is one of several functions

classified as a unitary image transformation. Other transforms in this class include the discrete

Fourier transform (DFT) used to produce the spectrogram, the discrete cosine transform (DCT)

used in JPEG compression, and certain wavelet transforms such as the Haar. Unlike the other

transforms in this class, KL decomposition does not use a fixed set of basis vectors to accom-

plish the transformation. Instead, known data sets are analyzed to derive an optimized or minimal

set of basis vectors. While deriving the basis vectors is computationally intensive, using them to

transform new data is more efficient than most DFT implementations. The mathematical deriva-

tion of KL is well described in several textbooks (see chapter 3 of Kirby [36]).

The potential for data recognition and reduction is illustrated in [49] where KL decompo-

sition was used to analyze electrocardiogram (ECG) records. The data set consisted of a

Page 50: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

36

collection of 105 normal and abnormal ECG records of 15 minutes each. From these, the re-

searchers extracted over 97,000 data sets for training. The result of this analysis showed that

almost 90% of the data energy was retained using only 4 KL coefficients. This provided a sensi-

tivity of 81% and a positive predictability of 80% for many abnormal heart conditions.

Applications of KL decomposition in other fields include visualization of cortical activity [62],

fingerprint identification [58], and facial recognition [37].

In signal processing applications, KL and related techniques such as singular value de-

composition (SVD) have been successfully employed for noise reduction and compression [32].

Classification applications analyzing satellite data have also been successful, especially when a

posteriori knowledge of the signal can be applied [79]. Ho et al. [25] used orthogonal transforms

to identify radar signatures. However, their technique does not appear applicable to HF signals

since it relies exclusively on the phase of the incoming signal, and the article revealed insuffi-

cient detail about the construction of a key component, the signal library. Lu et al. [51] used KL

in one part of their signal classification scheme after first pre-processing the data using a wavelet

transform to remove noise.

A common theme in most of the classification algorithms that use KL is the identification

of a single specific signal (or fingerprint, or face) from a library of all known signals. This pro-

ject attempted a related but more general approach. We wanted to create a sample database of

signals using a range of signal parameter values characteristic of the HF domain, then match

other arbitrary signals to the closest match in the library to identify the modulation type, even if

the library did not contain a specific match for all signal parameters.

This section describes the development of a KL template-based method for signal modu-

lation classification using the ALEF. First, we describe the selection and construction of the

signal feature vector and the process of using these vectors to create a signal library. Next, we

demonstrate how the new algorithm used the library to identify the modulation type for a signal.

Finally, we discuss the algorithm’s shortcomings.

3.4.1 Selecting a signal feature vector

Azzouz and Nandi [10], in their classic textbook on automatic modulation recognition,

state that “there are generally two philosophies for approaching the modulation recognition prob-

lems in the available references, namely, 1) a decision-theoretic approach and 2) a statistical

pattern recognition approach.” They also identified the principal underlying data used by most

Page 51: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

37

techniques as either spectral processing (Fourier and time-frequency methods), statistical fea-

tures derived from one or more of the three principal signal attributes (amplitude, phase, and

instantaneous frequency), or histograms of one or more of the three principal signal attributes.

After a few attempts to derive basis vectors directly from the time series signal data, it

quickly became apparent that for any reasonable ensemble of signals there are an infinite number

of representations possible for any of the standard signal attributes. To achieve any alignment

and any signal similarity, we needed a temporally neutral representation. This led to using histo-

grams of amplitude, phase, and instantaneous frequency (IF) where IF was estimated as the

derivative of the phase. See Appendix F for screen captures of a MATLAB tool constructed to

explore these signal histograms.

After observing a wide range of signals, we selected 25 bins for amplitude, 33 bins for

phase, and 161 bins for IF. For amplitude, increased resolution did not yield additional useful

information. For phase, odd bin numbers allowed better balancing around zero, and 33 bins gave

approximately 11 degrees resolution. This provided 4 bins per state for our maximum expected 8

phase states in HF. Finally, IF resolution was selected to give approximately 1 bin separation for

a 50 baud signal with a modulation index of 1 (about 50 Hz resolution per bin). The final feature

vector for each signal consisted of the concatenation of the three histograms (normalized for

point count) in the order amplitude, phase, and IF, yielding a vector length of 219 points.

Later, in an attempt to improve performance, we constructed two-dimensional histograms

using phase and IF. While the representations were interesting, the added dimensionality reduced

performance. We speculate that the increase in available bins diluted the average count per bin

and reduced the effective difference between points in the resulting database.

3.4.2 Developing the basis vectors

To create the signal database, we generated a set of training signals using four modula-

tion types (AM, OOK, PSK, and FSK) and no noise. For AM, we used a standard set of voice

files from the Linguistics Data Consortium [5]. For OOK, we used a fixed sequence of characters

for all signals, varying only the keying rate. For PSK and FSK signals, we used a contrived sym-

bol sequence that ensured a symbol transition at every symbol interval.

The original vector set consisted of 369 training signals, each represented by a 219 point

vector. KL decomposition yielded 153 basis vectors. Since 99 percent of the training set energy

was captured in only 16 vectors, we used those to create a final algorithm database of 369 train-

Page 52: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

38

ing signals with 16 points per signal. Figure 3.10 shows the clustering results of using only the

top three KL basis vectors to transform the training set into a three dimensional space.

-1.5-1

-0.50

0.5

-0.5

0

0.5

1-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

KL v1KL v2

KL v

3

AMFSKOOKPSK

Figure 3.10: Plot of transform clusters by modulation type using three KL vectors

Another interesting way to view these KL basis vectors is to plot the separation capability

of each vector, where Percent Separation = (Area of no overlap) / (Total area). The area of no

overlap is where at least one factor (in this case, modulation) is completely missing. Figure 3.11

shows this plot for the largest energy KL vector derived from the training set. While there is no

clear separation of a single modulation type, this vector does distinguish the amplitude modu-

lated signals (AM and OOK) from the phase and frequency modulated signals (FSK and PSK).

3.4.3 Resulting modulation classification algorithm

A high level description of the modulation classification algorithm that uses the derived

basis vectors to achieve 100% correct recognition of the training set is as follows.

1. Create a histogram for the incoming signal,

2. Transform that histogram using the 16 basis vectors,

3. Find the nearest neighbor (Euclidean distance) in the database,

4. Declare the modulation type to be that of the nearest neighbor.

Page 53: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

39

5 10 15 20 25 300

0.05

0.1

0.15

0.2

0.25

0.3

0.35

bin number

fract

ion

of to

tal s

ampl

es

KLTRAIN16K_1dAmpPhIF Vector 1 PctSep= 1

AMFSKOOKPSK

Figure 3.11: Signal separation capability of a single KL vector

3.4.4 Algorithm accuracy using test data set

The next step was to use the algorithm against a completely different set of signals that

had been generated using random symbols, similar but different signal parameters, and a range of

signal to noise ratios (SNR) from 9 to 40 dB. Of the 8805 test signals, the overall performance

netted only 69% correct. However, at SNR of 40, the algorithm classified all modulation types

100% correctly, and at all noise levels, PSK was classified 100% correctly.

3.4.5 Algorithm shortcomings and future exploration

The results from these experiments show a strong dependence on signal noise. At low

SNR, the histograms became distorted and were no longer able to match against the database.

Prior to constructing the algorithm we also discovered a strong dependence on any phase

rotation in PSK signals. Examining the basis vectors produced by a training set that included

random initial phase conditions (essentially randomly rotated constellations) indicated that this

created significant problems in producing a set of basis vectors capable of reliably identifying

even the training set when using a reduced subset of the basis vectors. We briefly worked with

several algorithms to align peaks in the histograms to target points (such as balancing the weight

around the middle point, moving the maximum to a specific location, etc.). While these helped

significantly, we were only able to automatically resolve the critical locations to within plus or

minus one bin on the phase histogram. The resulting basis vectors included derivative vectors to

Page 54: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

40

account for this bin jitter, which severely degraded performance of this basis vector set against

any signals that were not in the training set.

Further research in the literature indicates that similar problems have been encountered

with other applications of KL. For example, Prabhakar and Jain [58] faced this problem with fin-

gerprint matching, noting that “Correlation-based techniques require the precise location of a

registration point and are affected by image translation and rotation.” Moghaddam and Pentland

[52] addressed this problem with facial recognition and determined that “most systems did not

address the problem of detection and used manual registration of the images.” Their own auto-

mated registration process took 15 times longer to process than the decomposition and matching

phase, indicating that it was a much more difficult problem to solve.

Based on our analysis of the data collected using ALEF, we identified several potential

avenues for improving the KL template matching algorithm. However, for each improvement

outlined below, significant additional work would be required.

• A low-pass filter would probably improve the SNR performance. Although it would

potentially distort the signal, the resulting histograms would not be as erratic.

• Instead of combining the amplitude, phase, and IF histograms into a single vector,

use them separately to derive different basis vectors for each attribute. This would

decouple the attribute relationships, but it would complicate signal library match-

ing.

• Due to the number of parameter variations applied to the PSK signals, there were

significantly more of them in the training set than the other modulation types. An

alternative approach would be to create a library for each modulation type and use a

nearest neighbor match against each separate library.

• The tight modulation specific clusters in the three dimensional vector visualizations

suggests that more advanced clustering formulas could be applied to delineate re-

gions of the reduced space that contain training vectors from only a single

modulation class. This would facilitate both smaller database representation and

faster lookup while also allowing an “unknown” response.

Page 55: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

41

3.5 Real world impact of ALEF

The Algorithm Evaluation Framework and accompanying symbol rate estimation work

have already had a significant impact. The Signal Exploitation Division at Southwest Research

Institute has adopted the signal generation capability for use on multiple projects, including a

training simulation environment for SIGINT operators. Portions of the framework have been

used on at least two other internal research projects.

Although the KL algorithm as currently implemented was not as accurate as existing al-

gorithms, its specificity for PSK is interesting and may be the subject for further research.

Finally, these algorithm experiments demonstrated that the process of designing, develop-

ing, testing, and optimizing signal processing algorithms is time consuming and difficult. Often,

simply finding the correct parameter settings for a given target environment requires significant

experimentation and tweaking. Without the framework, many of the exhaustive parameter

evaluations and searches for quality metrics would not have been feasible. In working on the KL

template matching algorithm, we realized that the number of potential changes in the feature ex-

traction was virtually infinite and that we could not possibly hope to manually optimize the

template features. Rather than trying to optimize our modulation algorithms, we decided to un-

dertake a significantly more challenging problem – that of automating the process for generating

feature extraction and detection algorithms. The final chapters of this thesis describe our efforts

in automatically generating signal processing algorithms.

Page 56: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

42

Chapter 4 FIFTH™ - A Vector-based Language for Automatic

Algorithm Development

Many problems in imaging processing, data mining, and digital signal processing (DSP)

have a feature extraction phase prior to the application of a classification or other processing al-

gorithm. In most cases it is not possible to optimize the selection of features, and most

researchers define features using ad hoc trial and error techniques. Unfortunately, the range of

possible features to be extracted is virtually infinite. Automation is needed, yet the obstacles for

automatically generating algorithms are significant. We realized that ALEF provided a unique

opportunity to overcome these obstacles in a problem domain of significant practical interest.

ALEF has a fully characterized problem domain, can generate an unlimited number of test sig-

nals with known answers, and has the infrastructure for performing large scale analysis of the

results.

This chapter describes the development of FIFTH™, a new stack-based genetic pro-

gramming language that efficiently expresses solutions to a large class of feature recognition

problems. This problem class includes mining time-series data, classification of multivariate

data, image segmentation, and digital signal processing. FIFTH is based on principles originally

developed for the FORTH programming language. Key new features of FIFTH are a single data

stack for all data types and support for vectors and matrices as single stack elements. We demon-

strate that the language characteristics allow simple and elegant representation of signal

processing algorithms while maintaining the rules necessary to automatically evolve stack cor-

rect and control flow correct programs. FIFTH supports all essential program architecture

constructs such as loops, branches, variable storage, and automatically defined functions. An

XML configuration file provides easy selection from a rich set of operators, including domain

specific functions such as the Fourier transform (FFT). The fully-distributed genetic program-

ming environment for FIFTH (GPE5) uses CORBA for its underlying process communication.

Page 57: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

43

4.1 Genetic programming background

4.1.1 Definition of terms

The general goal of creating computer systems that can solve problems without being

told precisely how to solve them has been articulated since the early days of modern computing.

Early references to this idea include the speculative essays of Alan Turing in the late 1940s and

the pioneering research work of R.M. Friedberg in the late 1950s [20].

Current literature uses several terms in relation to this general concept of computers auto-

matically learning to solve problems. While no officially sanctioned definitions exist, common

use suggests several delineations. Artificial intelligence (AI) is often used as an umbrella term to

encompass the broad goal of endowing computers with capabilities of human intelligence. As a

specific computer science discipline, AI research involves areas such as knowledge representa-

tion and neural networks. Another common name is machine learning, which is often classed as

a sub-field of artificial intelligence primarily concerned with learning from data using data min-

ing and statistical techniques.

In the 1960s, a number of researchers began using concepts from Darwin’s evolutionary

theories and applying them to AI problems [12]. This work is generally termed evolutionary

computing (EC) and is characterized by four basic operations: (1) working with large popula-

tions of potential solutions, (2) randomly modifying the population using genetically inspired

operations such as crossover (combining parts of two individuals in the population) and mutation

(randomly altering a single individual in the population), (3) determining the fitness of each in-

dividual as the population passes from one generation to the next, and (4) favoring the most fit

individuals to create each new generation.

There are two principal classes of EC techniques: genetic algorithms (GA) and genetic

programming (GP). Genetic algorithms are typically applied to search problems in a data space

using fixed length, syntax-free problem representation components called chromosomes [85].

Variable length chromosomes are occasionally employed, but the search remains in data space.

The resulting chromosome pattern is rarely directly executable. GP is characterized by using

techniques to search a function space to create directly executable programs. In many ways, ge-

netic programming is the research area that most closely approaches the initial artificial

intelligence goal of having a computer write its own software to solve a problem.

Page 58: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

44

4.1.2 The genetic programming algorithm

Figure 4.1 illustrates the four high-level operations that comprise the typical genetic pro-

gramming process. The first step is to randomly generate an initial population of programs

representing possible solutions to the problem. Second, each individual in the population is

evaluated to determine its fitness in solving the problem. Once all individuals in the population

have been evaluated, comparison of the results with the termination criteria (successful solution

or maximum iterations) determines whether the algorithm continues. Finally, if no adequate solu-

tion exists in the current program population, evolutionary processes are applied to the current

program population to create the next generation of programs. The algorithm loops back to the

fitness evaluation step until the termination criteria are met.

No

Generate InitialProgram Population

Evaluate Fitness ofEach Program

TerminationCriteria Met?

Evolve Next Generationof Programs

Yes

Finish

Start

Figure 4.1: Basic genetic programming algorithm

Each of these four steps hides a diverse landscape of theoretical considerations and im-

plementation decisions. In particular, the execution of this algorithm is in the context of a genetic

programming environment.

Page 59: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

45

4.1.3 The genetic programming environment

A genetic programming environment is itself a software program or set of programs that

implements the framework necessary to execute the GP algorithm. There are several required

features of the environment, some of which are problem domain independent, while others are

highly problem domain dependent.

The most important domain independent aspect of a GP environment is the selection of

the programming language used to express the evolved programs. We will refer to this as the ge-

netic programming language, or GPL. Subsequent decisions affected by this initial choice

include:

• Selecting a model for the GPL based on either using an existing language like LISP, or

creating a new language,

• Selecting the internal structure, such as a tree or a linear sequence, used to represent a

GPL program during application of evolutionary manipulations,

• Selecting the set of primitive functions included in the GPL, and

• Determining the execution and evolution rules associated with the GPL.

The key features that are necessarily domain dependent include:

• The input data (referred to in GP literature as the set of terminals),

• Any domain specific functions in the GPL, and

• The fitness evaluation function.

4.1.3.1 Selecting a GP language

Theoretically, any programming language can be used to represent programs in a GP en-

vironment. However, the complicated syntax of languages like C, C++, and Java does not lend

itself easily to genetic manipulation. Deciding on a GPL is often driven by the internal represen-

tation chosen for implementing the genetic manipulations. Currently, there are three popular

representation schemes: tree-based, graph-based, and linear (or stack-based).

Early work by Koza [42] popularized the tree-based representation and the use of LISP as

both the GP language and GP environment implementation language. The parenthetical grouping

of LISP sub-expressions lends itself well to a tree-based representation of the program. For ex-

ample, Figure 4.2 shows a rooted, point-labeled tree with ordered branches that represents the

Page 60: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

46

LISP expression (+ 2 (IF (> TIME 10) 3 4). Note that the parenthetical grouping of LISP sub-

expressions is well suited to finding branch points and nodes required to perform program evolu-

tion. However, handling control structures such as loops and recursion is problematic for this

form of program representation.

Figure 4.2: Tree based representation of a LISP expression

Graph-based representations have been explored primarily for evolving parallel programs

[57]. This representation is not as common in the literature and has several shortcomings related

to generating syntactically correct programs when using control structures such as loops and re-

cursion.

The advantages of a linear, stack-based representation over tree-based representations

were introduced by Perkis [56]. This approach was more fully developed by Spector [70], who

recently introduced a GP environment that uses the stack-based language PUSH3. Others, such

as Tchernev [76], made the observation that FORTH [13] is a well developed stack-based lan-

guage especially suited for genetic manipulation. Stack-based languages tend to use postfix

notation (also known as reverse Polish notation or RPN) where all function parameters are taken

from a stack, and all function results are left on a stack. Figure 4.2 can be expressed in FORTH

as follows. Time @ 10 > IF 3 ELSE 4 THEN 2 +

The execution trace for this statement is shown in Table 2.1 with the value of the variable

Time equal to 20. Every non-numeric entity in the expression that is separated by one or more

spaces is a program token, also known in FORTH as a word. The top of the stack is the right

most value in the Stack column. Note that since all parameters are stack-based, the following is

Page 61: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

47

functionally identical. The value 2 is simply pushed on the stack first and ends up under the 3

before the final + operation. 2 Time @ 10 > IF 3 ELSE 4 THEN +

Table 4.1: Example FORTH program execution trace

Program Stack (top ->) Comment Time (address) The address of the variable Time is pushed onto the stack. @ 20 The value of Time is fetched from memory and placed on the stack. 10 20 10 The number 10 is pushed onto the stack on top of the 20. > 1 The operator consumes two stack items and leaves a Boolean result. IF IF consumes the top stack item. Since it is non-zero, execution con-

tinues to the ELSE. 3 3 Push the number 3 on the stack.

ELSE 3 Unconditionally jump to the code following THEN. 2 3 2 Push the number 2 on the stack. + 5 Add the top two numbers on the stack and leave the results on the

stack.

4.1.3.2 Selecting the GPL function set

GPL primitive function sets usually include standard math, logic, and control flow opera-

tions that comprise the basic constructs used to express any program. Early work concentrated on

primitive math operations (PLUS, MINUS, TIMES, DIVIDE) and Boolean operations (AND,

OR, XOR). Researchers soon recognized that in order to evolve general programs capable of

solving large scale problems, the function set must include program control capabilities such as

memory, iteration, recursion, and branching [50]. Early attempts to evolve signal processing al-

gorithms using GP demonstrated the requirement for memory in order to store and access the

results of iterated calculations [67].

A major influence on the selection of the primitive function set is how the developer

chooses to represent different data types. Some GPLs use only floating point or only integer rep-

resentations, while others, such as PUSH3, use separate stacks for every data type including

Boolean, floating point, integer, and code execution. This requires significant repetition of intra-

stack manipulation primitives as well as inter-stack data movement primitives.

Deciding on the number and type of operators to include in the function set is non-trivial

for any reasonably complicated problem. The effective dimensionality of the search space in-

Page 62: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

48

creases exponentially as the number of available functions in the GPL increases. On the other

hand, the availability of higher-level, domain specific functions often reduces the number of

functions required to solve a problem and has been shown to be a large contributing factor in

whether a program solution evolves within reasonable time and computing constraints.

4.1.3.3 Defining the GPL execution and evolution rules

In addition to the GPL syntax, function set, and data representation, the GP environment

must define rules for how to evolve and evaluate programs. Some environments allow evolution

of syntactically incorrect programs but differ in how these programs are evaluated. For example,

Stoffel [72] employs a loose strategy that skips operations that would cause a stack underflow

and ignores any extra stack content when examining program output. Bruce [14] uses strict

evaluation rules and assigns a fitness of 0 to any program exhibiting either behavior, thus elimi-

nating it from the population. Tchernev [75] propounds using program generation constraints that

ensure stack correctness.

These decisions directly relate to reducing the search space. It is obvious that, no matter

what the programming language, the set of all syntactically incorrect programs is far greater than

the set of all syntactically correct programs. Therefore, early elimination of incorrect programs

from the search space is highly desirable.

4.1.3.4 Evaluating the fitness of each individual

GP environments use several different techniques for feeding data to evolved programs

and for examining program output to determine whether the program solved the problem. Some

environments are almost application domain independent. For example, Disciplus [7] employs a

simple ASCII file format from which the environment reads both the input data and the expected

output response. While simple and general, this approach imposes significant restrictions on the

types of problems that can be addressed. Other environments provide an application program-

ming interface (API). While this facilitates application to a wider range of problem domains, it

requires the researcher to write and test a significant amount of software.

Finally, some GP environments are very domain specific. For example, Koza [44] used

SPICE (a general-purpose circuit simulation program for nonlinear direct current, nonlinear tran-

Page 63: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

49

sient, and linear alternating current analyses) as a key element of a GP environment for evolving

analog circuits such as filters and amplifiers.

Whatever the implementation, the fitness function must be applied to every individual in

the population at each generation, and the result must be a graded value that can distinguish a

better solution from a good one. The GP environment must organize this information so that it

can be used during the evolution of the next generation of programs.

A few experiments using GP to produce esthetic outputs such as art or music relied heav-

ily on a human evaluation of fitness. This is impractical for most problems due to the large

number of candidate program solutions and the large number of generations typically required to

achieve reasonable results.

4.1.3.5 Determining the termination criteria

Termination criteria are defined as either a maximum number of generations or the emer-

gence of a program that meets or exceeds the fitness target. Generic GP environments tend to use

single valued decision points, often in the form of a maximum error calculated by comparing the

program output with the desired output. Domain specific GP environments may embody a more

sophisticated fitness evaluation function but often still rely on a single threshold value. For ex-

ample, some of Koza’s analog circuit design work expressed the termination criteria as the mean

squared error between the output of the SPICE evaluation of the genetically evolved circuit and

the desired output waveform [41].

4.1.3.6 Evolving the next generation

In an attempt to emulate natural genetic processes, all GP environments rely on two

classes of evolution operators: innovation operators and conservation operators. Innovation op-

erators attempt to introduce new characteristics into a single individual. The most common

innovation technique is mutation, where randomly selected constants, functions, or program sec-

tions are randomly altered. There are many variations depending on the expected behavior of the

mutation. For example, in a stack-based language, a randomly selected function should only be

replaced with a new function that matches the previous stack signature (number of values ex-

pected and left on the stack). Otherwise, the new program will not be operationally correct.

Page 64: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

50

Conservation operators consolidate parts from two or more individuals in an attempt to

bring together good components from each. The most common conservation technique is cross-

over. The GP environment selects two individuals from the population at random. Within each

individual, a compatible transfer position is selected, and program fragments are exchanged. For

example, Figure 4.3 shows two parent programs in tree representation form before crossover.

The arrows identify the selected crossover points. Figure 4.4 shows the resulting two child pro-

grams after crossover.

+

2 IF

> 3 4

Time 10

*

5 IF

< 1 0

Time 5

Figure 4.3: Two programs before crossover

+

2IF

> 3 4

Time 10

*

5IF

< 1 0

Time 5

Figure 4.4: Two programs after crossover

The GP environment’s selection of individuals in each generation for inclusion in the

evolutionary process must be both random and proportional to the fitness function. Typical set-

tings involve high rates of crossover and low rates of mutation. However, Banzhaf [11]

conducted experiments where a more equal balance led to better results on harder problems.

Page 65: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

51

4.1.3.7 Optional GP environment features

As with any experimental environment, there are auxiliary functions that while not essen-

tial often contribute to the usefulness of the tool. In GP environments, these include visualization

of the evolutionary process, analysis tools, ability to distribute the evaluation process among

multiple processors, optimization of program parameters, and analysis of the resulting evolved

program solutions.

For example, one of the difficulties encountered with GP evolved programs is “code

bloat” [30, 71]. This is a condition in which large sections of nonfunctional code (i.e., the code

does not contribute to the problem solution) grow within an evolving program. These useless

sections are often called introns as they seem to be homologous to biological introns, which are

sections of seemingly useless polynucleotide sequences in a nucleic acid that do not code infor-

mation for protein synthesis. Biological introns are removed before translation of messenger

RNA, and removing GP introns is an active area of research. The GP environment can either

monitor development of introns as part of the evolutionary process, or it may wait for the final

program solution before applying code simplification techniques.

4.1.4 Current state of genetic programming research

Since Koza’s early work in 1996, there have been many GP environments developed in

the academic community. Table 4.2 lists a selection of GP environments that are mentioned in

conference papers, textbooks, and websites. The table only includes packages that could be veri-

fied as available and whose description indicated at least some level of maturity necessary to

attempt real problems. It is obvious from this survey that GP is still in its infancy. Most of the

GPEs referenced in academic papers have become dated and are no longer supported. A small

number have transitioned into open-source development efforts, one is strictly proprietary, and

one has gone commercial. Based on this survey, it does not appear that any of these environ-

ments are particularly well suited to serve as a foundation for developing signal processing

algorithms.

Page 66: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

52

Table 4.2: Review of GP software

Software Last Update

Impl. Lang.

Reference Comments

EPROF Evolutionary Programming Forth

2005 FORTH Elko Tchernev [[email protected]]

Source not available.

BEAGLE 2004 C++ sourceforge.net/projects/beagle beagle.gel.ulaval.ca

Large flexible framework. Limited documentation.

PUSH3 2004 C++ hampshire.edu/lspector/ push.html

Stack syntax, but LISP like tree representation.

Evolutionary Compu-tation Framework

2004 C++ eodev.sourceforge.net Paradigm free, but not very complete.

Discipulus (RML Technologies)

2004 Unk. www.aimlearning.com/ products.htm

Commercial product. Source not available.

GPLab 2004 MATLAB sourceforge.net/projects/gplab Uses tree structure, limits MATLAB functions.

PMDGP Distributed Genetic Programming

2002 C++ sourceforge.net/projects/pmdgp Uses tree-structure.

GPPS 2.0 1999 C Koza, GPII. www.genetic-programming.com

Source not available.

lilgp 1998 Java garage.cse.msu.edu/software/ lil-gp/

Simplistic.

Genetic Programming Studio

1998 C++ www.uco.es/~i52canoa/www3/index_en.htm

Source not available.

GPData 1997 C++ ftp://cs.ucl.ac.uk/genetic/ gp-code/

Simplistic.

Table 4.3: Summary of problems solved in GP books

Book Year Problem Descriptions

I [42] 1992 Simple search problems such as 2D robotic arm movement, truck backup, moving boxes on a grid, and curve fitting.

II [43] 1994 Introduced Automatically Defined Functions (ADF). Applied these to elementary non-linear equations, basic biochemistry and molecular biology sequence prediction.

III [44] 1999 Electrical engineering problems using SPICE to evaluate evolved models. Successfully evolved high performance analog filters, crossover networks, and amplifiers.

IV [45] 2003 Claims 36 instances where GP has produced human-competitive results, including 23 instances where GP has duplicated the functionality of a previously patented invention. Example problems shown in the areas of controllers, circuits, and antenna design.

While the scarcity of mature GP environments capable of handling complex problems

clearly indicates that this discipline is in its infancy, significant progress has been achieved since

the first GP exercises in the 1960s. One measure of progress comes from the examples presented

Page 67: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

53

in four books written by GP pioneer John Koza. Table 4.3 lists the year each book was published

and gives a brief description of the types of problems addressed. The examples in book IV are

certainly more complex than those in book I, but the evolved programs still do not deal with the

advanced mathematics and vector manipulations necessary for digital signal processing.

4.2 Motivation for FIFTH

A fundamental difficulty in applying traditional GP environments to feature extraction

problems is the mismatch between the data handling capacity of the GPL and the requirements of

the applications. When examined from an abstract viewpoint, feature recognition algorithms can

usually be broken down into a series of transformations on vector spaces. Thus, the GP search

should explore functions on vector spaces. Unfortunately, common GP languages do not treat

vectors as single data elements. Even a simple vector operation such as multiplication of a vector

by a scalar requires a loop construct with branch and flow control. The probability that such con-

trol operations will be damaged during mutation and crossover is high. Even if the control

operations are maintained, it is unlikely that intrinsic sizes of vectors will be correctly preserved

as successive transformations are performed.

While there have been published applications of GP to vector related applications, the re-

curring theme has been to circumvent the native vector handling problem rather than to increase

the expressiveness of the language. For example, to automatically classify sound and image da-

tabases, Teller [78] designed a GP system that used special data access primitives with specific

bound constraints rather than using generalized vectors. In applying GP to signal processing al-

gorithms, Sharman [66] also avoided vector functions by introducing delay nodes and processing

time series data one point at a time. For pattern recognition, Rizki et al. [61] pre-processed the

data to reduce dimensionality (feature extraction) prior to applying GP to the problem.

The need to lift genetic program search to functions on vector spaces by supporting natu-

ral, control-free behavior for vector and matrix operations was a principal motivation for creating

a new genetic programming language. To ensure that the new language efficiently addressed a

large class of vector-based problems, including signal processing applications, we established

several essential design goals. First, the new language had to be capable of compactly expressing

sophisticated vector manipulation algorithms, naturally supporting mappings from n m→ or

in the case of complex values, n m→ . Second, although vector operations would not require

Page 68: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

54

control structures, the language still had to be Touring complete, supporting both branching and

looping operations. Finally, since the language is primarily for genetic programming use, its syn-

tax and structure needed to be tractable for automated manipulation. To accomplish these goals,

we chose to implement our new language using a linear, stack-based program representation with

syntax patterned closely after the FORTH language and early FORTH design considerations.

This parentage suggested the name for the new language: FIFTH™.

The following example serves to explain how FIFTH operates and to examine some of

the inherent difficulties that non-vector languages encounter in properly searching functions on

vector spaces. Consider again the feature development stage of the DPDT symbol rate algorithm

introduced in section 3.2 as written using MATLAB. xphase = unwrap(angle(x)); x1out = abs(diff(xphase));

MATLAB’s built-in functions for calculating the phase angle as well as numerous other

vector functions make the code far simpler than corresponding code written in a typical proce-

dural language such as C. For example, the function angle, which calculates the phase angle of

each element in the vector from its corresponding complex sample, could be implemented by the

equivalent C function: double[] angle(double *realXf, double *imagXf, int n){ int i; double[] result = malloc(n*sizeof(double)); for( i = 0; i < n; i++ ) result[i] = atan2(imagXf[i], realXf[i]); return result; }

This relatively simple C function illustrates two fundamental difficulties with trying to

evolve vector transforms in a non-vectorized language. First, simple transform operators require

control constructs (usually a loop) in a non-vectorized language. Second, since the elements of a

vector are not considered part of a single unit, the language cannot enforce consistent and correct

behavior. For example, the C version of angle assumes that the real and imaginary vectors are of

equal length n, a constraint that must be enforced outside this function. These two difficulties

indicate that the probability of such a program evolving in a way that preserves the correct be-

havior for standard algorithms is too low for practical consideration.

While it is possible to incorporate standard vector operations as primitives of the lan-

guage to eliminate some of these difficulties, there is no glue to preserve the integrity of data

Page 69: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

55

vectors as they are transformed by these functions. From this perspective, a complete implemen-

tation of DPDT in C is quite complex, even if the Fourier transform (FFT) and angle functions

are provided as primitives.

To overcome these difficulties, we designed FIFTH to treat complex vectors and matrices

as single data units so that standard operations behave as expected and do not require control.

This is similar to the data model found in MATLAB. One reason that MATLAB is popular with

signal processing analysts who are not programmers is that variables do not have to be statically

declared, and functions automatically determine argument data types at run-time. Also,

MATLAB’s rich function set, together with run-time typing, makes the expression of many DSP

algorithms both shorter and easier to understand than the same algorithm written in C or C++.

Since FIFTH syntax is simpler than MATLAB syntax, similar programs are even more compact.

The following code is the equivalent implementation of the DPDT first stage in FIFTH.

Since FIFTH is a stack-based language, no intermediate storage variables are necessary. x ANGLE UNWRAP DIFF MAGNITUDE

From a GP perspective, there are a number of relevant observations. While the MATLAB

code is somewhat easier for a human to read, the FIFTH code is syntactically more compact

since it does not require any parenthetical grouping. Also, the MATLAB code demonstrates the

tradeoff between performing multiple function calls on a single line, which would be harder to

evolve in a syntactically correct manner, and splitting functions onto multiple lines, which re-

quires intermediate variables and the proper subsequent use of those variables.

4.3 The FIFTH language

The FIFTH programming language is a FORTH-like interpreted language that supports

vectors and two-dimensional arrays. The syntax for FIFTH is simple. A FIFTH program consists

of an input stream of tokens separated by white space. Tokens can either be words or numbers.

The design philosophy behind FIFTH is that all operators (FIFTH words) are expected to “do the

right thing” with whatever container types they find on the stack. This includes reshaping vectors

when required to match lengths and preserve dimensionality. It also includes gracefully handling

normal mathematical errors such as division by zero, typically by setting the result to 0. This ap-

proach has several benefits for genetic programming. First, it simplifies the syntax for complex

vector operations and reduces the number of structural words needed in the language, effectively

Page 70: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

56

reducing the search space and simplifying genetic manipulation. Also, this approach increases

the viability of programs by reducing the number of run-time errors.

4.3.1 Parameter stack

All operators take their input data from a single stack and leave their results on this stack.

This is fundamentally different than FORTH or PUSH3, which use separate stacks for each data

type. The FIFTH parameter stack holds “containers” that have two principal attributes: type and

shape. Shape refers to the number of dimensions and the number of elements in each dimension

of the data in the container. Type refers to the data format and may be NUMERIC (with inherent

support for complex, real, and integer scalars and vectors), STRING (UTF-8), or ADDRESS (to sup-

port container stack addresses and word dictionary addresses). All functions assume row vectors

where vector elements progress in the x dimension.

Entry of vectors and matrices are supported by the “start vector” token represented by the

open curly brace. When the FIFTH interpreter encounters “start vector,” it creates an empty con-

tainer on the stack, then begins collecting numbers from the input stream and appending them to

this container until the “stop vector” token (the close curly brace) is encountered. Between the

“start vector” and “stop vector” tokens, the “next row” token (the vertical bar) can also appear. It

indicates the end of the previous vector and the beginning of the next vector. If necessary, vector

sizes are padded with zeros to achieve a uniform length. For example, the following line puts a

matrix on the stack consisting of two vectors with three complex elements each. The first vector

is automatically padded to match the length of the second vector. { 1+1i -2 | 4.0 5.1-2.2i 6 }

Similarly the “quote” operator, followed by whitespace, causes the FIFTH interpreter to

collect tokens from the input stream until it finds the next double quote followed by whitespace.

All characters up to that point are put into a string container on the top of the stack. For example,

the following line puts a file name on the stack that is consumed by the function READWAV. " filename.wav" READWAV

4.3.2 Core vocabulary

Table 4.4 provides a list of the words currently implemented in FIFTH. The FIFTH core

vocabulary includes stack, arithmetic and logical operations as well as domain-specific functions

and control. When interpreting a token, FIFTH first searches its dictionary. If it finds a match,

Page 71: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

57

the interpreter executes the word. Otherwise, the interpreter attempts to convert the token to a

number, place it in a container and push it onto the stack. If the token contains illegal characters

for numerical interpretation, the interpreter aborts with an error.

Table 4.4: Intrinsic FIFTH words

Category Word Set

Stack manipulation DEPTH DROP DUP OVER ROT SWAP

Container manipulation SHAPE HORZCAT VERTCAT

Basic math + - * / % ^

Basic logic GT GE LT LE NE 0EQ 0GT 0LT EQ AND OR NOT TRUE FALSE

Extended math SIN COS TAN ASIN ACOS ATAN EXP LN POW10 LOG10 SQRT CEILING FLOOR ROUND MAGNITUDE ANGLE DIFF REAL IMAGINARY PI

Statistics MEAN STDDEV VARIANCE

Vector manipulation ONES ZEROS RAMP VRAMP FLIP TRANSPOSE REVERSE LENGTH SETLENGTH NUMEL MIN MININDEX MAX MAXINDEX SUM PRODUCT UNFILLED { | } "

Branching IF ELSE THEN

Flow control BEGIN UNTIL

Memory CONSTANT VARIABLE @ ! +!

Compilation WORD ENDWORD EMPTY FORGET

Debug and Validation DATETIME EMPTY . .S .SS VER

File I/O LOAD READMAT READWAV WRITESTACK

Domain specific UNWRAP FFT FFTSHIFT IFFT FREQCOMP HILBERT MAGSQRD dBMAG WND_BMHARRIS WND_GAUSSIAN WND_HAMMING WND_HANNING

Run time control MAXALLOC SETMAXALLOC MAXEXEC SETMAXEXEC MAXSTACK SETMAXSTACK

4.3.3 Validating program execution

Each word in the dictionary has a stack signature that defines the number of containers

that the word requires on the data stack when it executes, as well as the change in the number of

items on the stack effected by the word. For example, MEAN has a stack signature that requires one

container on the stack before it can execute, and its stack delta is zero. That is, it consumes one

stack item but leaves one stack item so that the change in the number of items on the stack is

zero. The initial container on the stack may hold a single scalar (which is interpreted as a vector

of length one), a single vector, or multiple vectors. The resulting container will have a single sca-

lar value for each input vector representing the average of the values in that vector.

Page 72: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

58

4.3.4 Flow control and function definition

FIFTH uses a simple rule set to evaluate the contents of a container and derive a logical

true or false for branching or looping. If all values in the container are zero (this includes, for ex-

ample, an empty string) the check is considered false. If there are any non-zero or non-null

values, the container evaluates to true.

FIFTH supports a single basic loop structure (BEGIN … UNTIL) and a single branching con-

struct (IF … ELSE … THEN), both patterned after the same words in FORTH. The word UNTIL

consumes a single container on the stack. If it evaluates to false, execution continues at the word

following UNTIL. If it evaluates to true, then execution unconditionally branches back to the

matching BEGIN. Similarly, IF consumes a single container from the stack. If the container evalu-

ates to true, then execution continues with the word immediately following the IF and proceeds

until it encounters the ELSE, at which point it unconditionally branches to the THEN. If the con-

tainer evaluates to false, execution skips the words between the IF and ELSE, continuing at the

first word immediately following the ELSE.

FIFTH also supports function generation in a natural way with WORD and ENDWORD. When

the FIFTH interpreter encounters WORD, the next token in the input stream is taken as the name of

a new word. The FIFTH interpreter compiles all subsequent tokens into the dictionary until it

encounters ENDWORD, which tells the FIFTH interpreter to complete the definition and to resume

interpretation.

4.3.5 Formal typing

FIFTH is a type safe language with formal type rules [15, 28]. Although the implementa-

tion does not yet take full advantage of it, the type system can provide information to the random

program generator and genetic manipulation operations to facilitate more aggressive program

constructs while maintaining syntactically and operationally correct programs. Filtering out in-

correct programs reduces the search space and improves run-time performance [23].

A selection of important typing rules is shown in Figure 4.5 through Figure 4.8. By con-

vention, an arbitrary FIFTH word is represented W, and a sequence of words by P. The type of

an individual slot on the stack is expressed with τ, σ, or ρ (with the top of the stack to the right),

and sequences of slots are represented with φ. The types of FIFTH words are expressed as func-

Page 73: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

59

tions from initial stack typings to new stack typings. The type rules assume an environment of

mappings from declared words to their type; these are represented with Δ.

1 2 2 3

1 3

: : :

φ φ φ φφ φ

Δ → Δ →Δ →

W PW P

COMPOSE

1 2

1 2

: :

φ φθ φ θ φ

Δ →Δ ⋅ → ⋅

PP

STACK

1 2 1 1 2

1 2 2 3 4

1 2 3 4

, : :, : :

:

φ φ φ φφ φ φ φ

φ φ

Δ → →Δ → →

Δ →WORD ENDWORD

WW

W P PCOMPILE

PP

1 2 1 2 , : : φ φ φ φΔ → →W WTAUT

Figure 4.5: FIFTH basic type rules

Figure 4.5 shows the most important rules for producing coherent typings for entire pro-

grams. These include the COMPOSE, STACK, COMPILE, and TAUT rules. The COMPOSE rule

allows sequences of FIFTH words to be executed as long as each word's ending stack typing

matches the beginning stack typing of the next word. The STACK rule says that if a sequence has

a valid typing, additional slots can be added to the bottom of the stack as long as the top of the

stack matches the signature. The COMPILE rule allows new FIFTH words to be defined and

added to the dictionary. These new words can then be used in accordance with the TAUT rule.

1 2 1 2

1 2

: : : n

φ φ φ φφ φ

Δ → Δ →Δ ⋅ →IF ELSE THEN

1

1 2

PP P

IF 2 P

: :

nφ φφ φ

Δ → ⋅Δ →BEGIN UNTIL

P P

LOOP

Figure 4.6: FIFTH control flow type rules

The rules for control flow and stack manipulation are shown in Figure 4.6. The IF and

LOOP rules ensure that the stack is always in a consistent state at the end of these control con-

structs, regardless of the path that is taken through them.

Figure 4.7 shows the stack manipulation typing rules. These rules describe commonly

used stack manipulations that reorder, duplicate, or dispose of data. All of the stack manipulation

operators can be applied in any stack state in which there are enough elements on the stack, but

Page 74: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

60

the final stack state is defined in terms of the initial stack state. Figure 4.8 shows typing rules for

a few representative mathematical operations. These demonstrate the ability to designate opera-

tions on a specific data type (where n is numeric).

: nΔ ∅→DEPTH

: nΔ →∅DROP

: τ τ τΔ → ⋅DUP

: τ σ τ σ τΔ ⋅ → ⋅ ⋅OVER

: τ σ ρ σ ρ τΔ ⋅ ⋅ → ⋅ ⋅ROT

: τ σ σ τΔ ⋅ → ⋅SWAP

Figure 4.7: FIFTH stack manipulation type rules

: n n nΔ ⋅ →*

/ : n n nΔ ⋅ →

: n n nΔ ⋅ →GT

: n nΔ →FFT

: n n nΔ →VRAMP i

Figure 4.8: FIFTH type rules for selected operations

Figure 4.9 shows how the type rules can be used to derive the type n n n n→i i for the

FIFTH fragment “/ SWAP /” where “/” is the token for division. This means that if there are three

numeric values on the top of the stack when “/ SWAP /” begins to execute, then there will be

only one numeric value on the top of the stack when “/ SWAP /” finishes executing, and every-

thing on the stack below those values will remain unchanged. The rules for / and SWAP require no

prior assumptions and appear at the top of the derivation. The type variables σ and τ for SWAP are

instantiated as the real numeric type n. The COMPOSE rule is used twice, first to combine SWAP

with the last “/”, and again to combine the first “/” with the “SWAP /”. Before the second appli-

cation of the COMPOSE rule, the STACK rule had to be used to add an extra numeric value to the

signature of the left “/”, so that it matched the signature of “SWAP /”.

Page 75: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

61

/ : : / : / : / :

/ / :

n n n n n n n n n nn n n n n n n n

n n n n

⋅ → ⋅ → ⋅ ⋅ →⋅ ⋅ → ⋅ ⋅ →

⋅ ⋅ →

SWAPSWAP

SWAP

STACK COMPOSE

COMPOSE

Figure 4.9: Type derivation of “/ SWAP /”

A similar derivation can be written for any correctly typed FIFTH program allowing the

GP environment to automatically determine and validate stack usage. This extends to the defini-

tion of new words since they must be constructed of words that already exist in the dictionary.

The typing of individual fragments can also be used to determine if crossover or mutation candi-

dates have compatible stack signatures. For example, since the type n n n n→i i can also be

derived for “* *", then “* *” can be substituted for “/ SWAP /” in all contexts.

4.3.6 Function validation

For any new language, it is essential that the mathematical operation of all functions be

validated as performing correctly. To facilitate this, we included two file operators, READMAT and

WRITESTACK, which read and write MATLAB revision 4 binary data files. WRITESTACK non-

destructively saves all containers on the stack into variables in the file named S00, S01, etc.,

where S00 contains the data from the top container on the stack. READMAT reads the file contents

into variables as named in the file. We selected the MATLAB format since MATLAB also han-

dles vectors natively, and it is capable of reading and writing vectors using multiple data types

including integer, real, and complex representations. These features allow us to implement all or

parts of an algorithm in both languages and exchange data for automatic comparison.

4.4 The FIFTH genetic programming environment (GPE5)

The genetic programming environment for FIFTH (GPE5) consists of three major com-

ponents, as illustrated in Figure 4.10. The GP5 component provides random program generation,

genetic manipulation, program interpretation and parsing, as well as an interactive FIFTH termi-

nal. The DEC5 (Distributed Evaluation Controller) component manages the distributed

evaluation of programs for each generation. One or more DPI5 (Distributed Program Interpreter)

components are required to run the programs against the problem data sets. Each DPI5 is man-

aged by the DEC5 through CORBA interfaces.

Page 76: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

62

Problem ConfigurationGPE5Config.xml

ProblemData Sets

GP5Genetic Programmer in

Fifth

Programs

FIFTH ProgramFragments

DEC5Distributed Evaluation

Controller

DPI5Distributed Program

Interpreter

Individual ProgramResults

Gen####_Prog###.csv

Generation ResultsGen####_Results.xml

Figure 4.10: Block diagram for the FIFTH genetic programming environment (GPE5)

All of the configuration parameters for GPE5 are read from an XML file that conforms to

the GPE5 namespace schema defined in GPE5th.xsd. The expected name for the configuration

file is GPE5Config.xml.

4.4.1 Random program generation

The random program generator that is part of GP5 uses a two step approach to creating

syntactically correct programs with the desired output signature. After first generating a ran-

domly selected fraction of the maximum program size, it parses the new program fragment to

identify errors. The final output is the result of fixing all errors by inserting additional words and

terminals until all steps in the program have valid stack signatures, thus ensuring both syntactical

and operational correctness.

There are several important configuration parameters associated with random program

generation including the population size, minimum and maximum program sizes, and the desired

result stack signature. Also, program building blocks are specified by assigning probabilities of

selection to terminals, functions, and structures.

4.4.2 Fitness evaluation

Fitness evaluation for each generation is performed by the DPI5 components. Fitness is a

measure of how well a program has learned to predict the output(s) from the input(s). Generally,

continuous fitness functions are necessary to achieve good results with GP. While fitness can be

any continuous measure, GPE5 uses standardized forms where zero represents a perfect fit.

These include error, error squared, and relative error. Although relative error is not often encoun-

Page 77: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

63

tered in the GP literature, it works well for problems where the acceptable deviation from the

actual output is proportional to the output value. GPE5 includes two unique fitness functions that

are applicable when the number of data sets is large. There are classes of problems for which a

calculated answer is deemed to be correct if it is within a specified tolerance (τ) of the actual

output. While a correct/incorrect assessment for a program output against a single data set is not

a continuous function, if the number of data sets is large, then the percentage of incorrect an-

swers begins to approximate a continuous fitness function.

Table 4.5 shows the equations implemented in GPE5 for calculating the fitness of a pro-

gram (fp) from the program results calculated for a data set (pi) and the known desired output

from a data set (oi). Any program that fails to execute properly is automatically assigned a fit-

ness value of infinity. Execution failure examples include infinite loops and allocating too much

memory.

Table 4.5: GPE5 fitness functions

Error Type Equation

Error 1

1 n

p i ii

f p on =

= −∑

Error Squared ( )2

1

1 n

p i ii

f p on =

= −∑

Relative Error 1

1 ni i

pi i

p of

n o=

−= ∑

Percent Incorrect ( )1

100 n

p i ii

f p on

τ=

= − >∑

Relative Percent Incorrect 1

100 ni i

pi i

p of

n oτ

=

⎛ − ⎞= >⎜ ⎟

⎝ ⎠∑

To avoid overfitting during program evolution and to avoid premature convergence to a

local minima, GPE5 uses a different subset of the available data files for evaluating each genera-

tion. The number of files included in the subset is controlled by a configuration parameter. The

configuration also allows specific data files to be designated for required inclusion in the evalua-

tion set for each generation. These two options provide some of the attractive properties of the

bagging and boosting techniques in machine learning [22].

Page 78: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

64

4.4.3 Parent Pool Selection

After evaluating the fitness of each program in a generation, the GP5 component must se-

lect the individual programs from generation n that comprise the pool of parents for generation

n+1. This requires sorting the entire population of generation n (containing λ individuals) by fit-

ness and selecting the μ most fit individuals as the parent pool, whereμ λ≤ . For this operation,

GP5 excludes all programs in generation n whose fitness value is infinite. In early generations,

this often means that the parent pool will be less than the desired μ value. For the equations in the

next section, μ is the actual number of parents in the parent pool.

4.4.4 Probability Ranking

Before performing the genetic manipulation operations, each individual in the parent pool

is assigned a probability of selection (pi) based on either a linear or exponential ranking as speci-

fied in the configuration file. The parent pool then consists of a list of programs ordered by

fitness as follows.

[ ]1, : 1 (least fit), (most fit)i i iμ μ+∈Ζ = =

For linear ranking, the probability of selection for an individual parent is based on a lin-

ear relationship between the probability of the worst individual being selected ( 0P μ ), and the

probability of the best individual being selected ( 1P μ ). The individual probability of selection

associated with each parent is:

( )1 10 1 01i

ip P P Pμ μ⎡ ⎤−

= + −⎢ ⎥−⎣ ⎦ Constraint: 0 1 2P P+ =

For exponential ranking, the probability is computed using a bias constant (c). The intent

is to exponentially bias the ranking to favor more fit programs.

( )

*

*

1

1 for 1 1

i

i s

j s

j

cp cc

μ

=

−= ≠

−∑

1

for 1 i

j

ip cj

μ

=

= =

When c < 1, the probability curve bends downward, favoring a few parents with the best

fitness. When c > 1, the probability curve bends upward, producing a more uniform bias toward

a larger group of the most fit parents. To avoid the equation anomaly at c = 1, GPE5 uses a line-

arly increasing probability. Finally, to avoid extremely sharp bends in the curve introduced by

Page 79: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

65

large exponential values, GPE5 uses a scale value (s) so that s = 1 for μ < 50, and s = μ / 50 for μ

≥ 50. The effect of the bias constant on the curve shape is illustrated in Figure 4.11.

Figure 4.11: Effect of bias constant c on exponential ranking

4.4.5 Crossover and mutation

FIFTH supports crossover, mutation, and cloning as standard genetic manipulations. One

difficulty with mutation and crossover operations in genetic programming is the high probability

that the result will destroy the viability of the offspring because the program no longer executes

correctly after the operation. Tchernev [77] proposed that the destructive effects of crossover

could be mitigated in FORTH-like GP languages by requiring that the exchanged segments have

matching stack signatures. FIFTH follows this protocol by using a sophisticated stack signature

that includes depth tracing for stack manipulation, loops and branches. FIFTH mutation and

crossover operations allow a program fragment, which can vary in length from a single word to

Page 80: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

66

multiple consecutive words, to be replaced by a fragment with a matching stack signature. While

this choice limits the search space, it increases the probability that the result of evolution will not

be destructive.

Since GPE5 uses a linear representation instead of a tree representation, crossover is

similar in function but different in form than the crossover described in section 4.1.3.6. The

process begins with the selection of two parents. In the first parent, instead of selecting a single

tree node, GP5 selects a random starting location in the program and a random length for the

fragment to be removed from the first parent. GP5 then characterizes the input-output effect for

the selected fragment to determine its signature. In the second parent, GP5 first locates multiple

fragments that are compatible with that signature, and then randomly selects one as the exchange

candidate. Swapping the two compatible fragments completes the operation.

To demonstrate the important difference between linear crossover and tree crossover,

consider the following example taken from the genealogy of a successfully evolved symbol rate

algorithm presented in the next chapter. The linear program sequence is shown below with boxes

around the fragments that were selected in each parent. Both fragments have the same signature

requiring at least two items on the stack on entry and leaving the stack size unchanged on exit.

Parent: Gen0019_Prog2412.5th x SIN FFT DIFF -2.0 * CEILING DIFF FFT x / FLOOR x REAL -2.0 MAGSQRD ROUND MAGSQRD + WND_HAMMING + x x REAL * 10.0 DIFF WND_HAMMING SIN IMAGINARY + DIFF -1.0 ANGLE * IMAGINARY ANGLE IMAGINARY WND_HAMMING CEILING MAGSQRD SQRT ANGLE - ROUND CEILING -2.0 /

Parent: Gen0019_Prog3907.5th x SIN FFT DIFF ROUND DIFF FFT x / FLOOR x - 2.0 MAGSQRD MAGSQRD REAL VRAMP FLOOR REVERSE RAMP DIFF * FLOOR REAL /

Child: Gen0020_Prog2845.5th x SIN FFT DIFF ROUND DIFF FFT x / FLOOR x - 2.0 MAGSQRD MAGSQRD REAL VRAMP FLOOR WND_HAMMING + x * FLOOR REAL /

Figure 4.12 illustrates this crossover using a tree-like representation. For clarity, only the

principal parent and child are shown. While the directed acyclic graphs are similar to the parse

trees shown in Figure 4.3, they contain an unusual branch caused by the operator VRAMP, which

peeks at the top item on the stack and produces a compatible ramp vector as a new item on the

stack (signature n n n→ i ). Note that after the crossover the resulting graph has changed struc-

ture. There is no equivalent binary tree crossover that would yield this result.

Page 81: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

67

x

SIN

FFT

DIFF

ROUND

DIFF

-

FFT x

/

FLOOR x

2

MAGSQRD

MAGSQRD

REAL

VRAMP

FLOOR

WND_HAMMING

*

FLOOR

REAL

/

Child Gen0020_Prog2845

x

SIN

FFT

DIFF

ROUND

DIFF

-

FFT x

/

FLOOR x

2

MAGSQRD

MAGSQRD

REAL

VRAMP

FLOOR

REVERSE

RAMP

DIFF

*

FLOOR

REAL

/

Parent Gen0019_Prog3907

+ x

Figure 4.12: FIFTH crossover example showing legal structural change

Mutation requires only one parent. GP5 performs the same initial fragment selection and

signature characterization that it does for crossover. The selected fragment is then replaced by a

randomly generated fragment that matches the signature, thus introducing new genetic material.

Using the signature ensures that the resulting modified program remains both syntactically and

operationally correct. This implies that the same structural changes that are possible during

crossover are also possible during mutation.

The GPE5 configuration contains several parameters that control the genetic operations.

Probabilities may be set separately for clone, mutation, and crossover. There are four different

length selection algorithms that may be specified independently for mutation and crossover.

Page 82: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

68

4.4.6 Implementation

Our implementation of the FIFTH™ language and its associated genetic programming

environment is in C++ and is designed to be platform independent. Where operating system spe-

cific interaction is required, the ACE libraries provide an intermediate layer. CORBA

communication between the distributed components is based on the TAO libraries [65]. FIFTH

has been successfully compiled and run under Microsoft Windows XP, Linux, and Sun Solaris.

The design is object oriented and allows new base dictionary words to be implemented either in

FIFTH or as C++ functions. This feature is important for scientific applications where libraries

of optimized C++ code are available for matrix manipulation and domain specific algorithms that

are hard to debug and optimize. For example, we used the GNU Scientific Library [9] functions

for fast Fourier transform (FFT) and several other functions.

4.5 Using GPE5 to solve a problem

As with any GP environment, solving a problem using GPE5 requires a few preparatory

steps, most of which involve editing the XML configuration file from which all of the compo-

nents read their control information. The following descriptions are analogous to the preparatory

steps outlined by Koza [42].

4.5.1 Identify the terminal set

In GPE5, there are two categories of terminals: problem data inputs and ephemeral num-

bers. Problem data inputs may be scalars, vectors, or arrays. For each data set, the values are

stored as variables in MATLAB V4 .mat file format. The variable name(s) must be in the con-

figuration file for selection during random program generation. An inherent part of this

preparatory step is the identification and organization of the data set files. Each data set must be

in a separate .mat file. When read into the FIFTH program, each variable in the .mat file be-

comes a FIFTH CONSTANT.

The second category consists of numbers that may be selected during random program

generation. In the configuration file, groups of terminal tokens are assigned separate probabilities

of selection.

Page 83: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

69

4.5.2 Identify the function set

The function set for GPE5 is divided into three categories controlled by the configuration

file. Groups of tokens within each category can be assigned an independent probability of selec-

tion. The first category consists of the subset of FIFTH words that are appropriate for the

problem under consideration. These may be math operations, logical comparisons, and stack ma-

nipulations, as well as domain specific functions such as filters and transforms.

The second category of functions, unique to GPE5, consists of user-defined FIFTH pro-

gram fragments. Each fragment is a valid FIFTH program stored in a file. If a fragment is

selected when randomly generating a program, the fragment code is inserted into the program so

that it is indistinguishable from the purely random material. In subsequent generations, the frag-

ments are subject to genetic manipulation just like the random parts of the program.

The third category describes the architectural and structural components of a program.

These include branch and loop constructs (IF, ELSE, THEN; BEGIN, UNTIL), automatically de-

fined words (bracketed by WORD and ENDWORD), and intermediate storage (VARIABLE, CONSTANT).

4.5.3 Select the control parameters

In addition to the ranking, fitness function, and genetic manipulation parameters already

discussed, the GPE5Config.xml file provides a mechanism for experimenting with several other

control parameters. Some of these affect the termination of the GP algorithm, including mini-

mum and maximum number of generations and the fitness target. Others control the operation of

the DPI5 components to work within available memory as they execute evolved programs. These

parameters include maximum execution stack depth, maximum number of words to execute (to

avoid endless loops in a program), and the maximum allowed memory allocation for a single

container.

4.6 Polynomial regression example problem

We selected polynomial regression for initial testing of the GPE5 to demonstrate its abil-

ity to solve standard GP test problems. For this example run, we used the following quadratic

equation. y = 0.5x2 + x/3 – 2.2

Page 84: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

70

Pertinent configuration parameters were: population size = 1000, minimum program size = 15,

maximum program size = 150, parent pool size = 900, and exponential fitness ranking bias = 0.9.

The genetic operations included cloning, mutation, and crossover with respective probabilities of

0.05, 0.50 and 0.45. Both mutation and crossover used a uniform length selection of 1 to 4 pro-

gram tokens. Table 4.6 shows the terminal values and functions configured for use by the

random program generator.

Table 4.6: Word selection probabilities for the polynomial regression example

P(selection) Terminals and Functions in the set 0.20 x (data input)

0.30 1 2 3 4 5 -1 -2 -3 -4 -5

0.40 * + - /

0.10 DUP SWAP OVER ROT

The following FIFTH solution is a reasonable human-generated program using 17 tokens: 1.0 2.0 / x * x * x 3.0 / + 1.0 5.0 / 2.0 + -

Figure 4.13 shows the evolutionary progress of the example FIFTH run. The solid line

shows the best fitness at each generation. The dotted line shows the fitness of the best ancestor in

each generation for the solution program in generation 33 that met the fitness termination crite-

ria. This run was performed on three dual-core Pentium class machines with at least 1GB of

RAM running Windows XP. The machines were connected via a 100 Mbps LAN. Each machine

ran two instances of the DPI5, completing the run in just under four minutes.

The evolved solution is longer (43 tokens), but it is a correct general solution. x x * 1.0 + 1.0 x -2.0 1.0 / - 5.0 - -3.0 -3.0 / -3.0 + -4.0 - -5.0 / -5.0 + -3.0 / x + -3.0 / OVER - -4.0 / - - - 2.0 / -4.0 - -5.0 +

Multiple trial runs with a variety of polynomials confirmed that GPE5 worked as ex-

pected for this typical GP problem class. While an interesting problem, polynomial regression

does not take advantage of a principal new feature of FIFTH: vector handling. The next chapter

describes the application of FIFTH and GPE5 to the symbol rate problem, which clearly benefits

from FIFTH’s native vector handling.

Page 85: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

71

0 5 10 15 20 25 30 3510-15

10-10

10-5

100

105

Generation

Fitn

ess

BestAncestry of best

Figure 4.13: Best fitness progression for a polynomial regression GP run

Page 86: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

72

Chapter 5 Automatic Generation of Symbol Rate Algorithms

5.1 Preparing the GP run

5.1.1 Problem formulation

For this experiment, we evolved only the first stage (feature extraction) of the symbol

rate algorithm. As described in section 3.2, we needed a second stage to convert the feature vec-

tor into a symbol rate. Since the configuration file allowed us to define post processing code, we

used a FIFTH second stage as follows, where x is the input signal vector and Fs is the sample

rate in Hertz. FFT MAGNITUDE LENGTH 2.0 / SETLENGTH VRAMP Fs 2 / * 10.0 GT * MAXINDEX x LENGTH SWAP DROP Fs SWAP / *

The first line expects the feature vector on the data stack. It executes a Fourier transform

to develop the periodicity of the feature vector, preserves only the magnitude of the result, and

then deletes the redundant second half of the result. The second line finds the index of the high-

est spectral energy above 10 Hz, and the third line uses the sampling frequency to convert the

index into a symbol rate leaving a single number on the stack. For comparison, the following is

an equivalent MATLAB function where xf is the feature vector. The FIFTH lines are interleaved

as comments. function baud = pickpeak( xf, Fs ) % FFT MAGNITUDE LENGTH 2.0 / SETLENGTH XF = abs(fft(xf)); n = length(XF) / 2; XF = XF(1:n); % VRAMP Fs 2 / * 10.0 GT * MAXINDEX mask = [0:n-1]/(n-1) * (Fs/2); mask = mask > 10.0; XF = XF(:) .* mask(:); [c,idx] = max( XF ); % x LENGTH SWAP DROP Fs SWAP / * baud = idx * (Fs/(n*2));

Page 87: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

73

5.1.2 Terminal set and function set

With the signal property ranges outlined in Table 5.1, we used ALEF to generate a train-

ing set consisting of 3680 signal files including five random symbol variations for each

combination of signal properties, a fixed 8000 Hz sample rate, and a fixed signal length of 16384

samples. All FSK signals used continuous phase transitions between symbols.

Table 5.1: Properties of the training set signals used for the symbol rate experiments

Property Typical values in HF Values used Modulation FSK, MSK, PSK, DPSK, OQPSK, ASK FSK, PSK

Pulse shape None, raised cosine (RC), root RC (RRC), Gaussian

None, RC

Excess bandwidth (rolloff) Limit: 0.00 to <1.00 Typical: 0.10 to 0.35

0, 0.1, 0.2, 0.35

Mod Index 0.5 to 3 0.1

Symbol rate Typical: 10 to 2400 symbols per second 13 values in [50, 2400]

Symbol states 2, 4, 8 2, 4, 8

Signal to noise ratio (SNR) Practical range: 0 to 60 dB 9, 12, 16, Inf

As shown in Table 5.2, the terminal values included a few numerical constants in addition to the

signal vector (x). The table also shows the FIFTH functions that were available to the random

program generator. They include standard math, stack manipulation, and several vector based

operations. The probabilities of selection shown in the table resulted in the successful algorithm

presented in section 5.2.

Table 5.2: Word selection probabilities for the symbol rate example

P(selection) Terminals and functions

0.10 x (signal vector)

0.05 1.0 2.0 3.0 4.0 5.0 10.0 -1.0 -2.0

0.10 DUP SWAP ROT OVER

0.10 * + - /

0.65 REAL IMAGINARY ANGLE UNWRAP FFT MAGNITUDE DIFF SQRT RAMP VRAMP MAGSQRD COS SIN FLOOR ROUND WND_HAMMING REVERSE CEILING

Page 88: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

74

5.1.3 Fitness evaluation strategy

We set the evaluation configuration to use a subset strategy and to require several signal

files. Each generation was evaluated against 50 signals from the training set. Nine of these were

required files, and 41 were selected at random. The required files included four with PSK modu-

lation at symbol rates and rolloff values known to cause problems with the DPDT algorithm. The

other three were FSK modulated signals with a low, middle and high symbol rate. For this run,

we selected the relative error fitness function with a target of 0.5% error.

5.1.4 Control parameters

The control configuration parameters for this experiment were set to include 4000 pro-

grams per generation, minimum program size of 5 tokens, maximum program size of 75 tokens,

parent pool size of 3500 programs, and exponential fitness ranking with a 0.9 bias. The genetic

operations included probabilities 0.8 for mutation and 0.2 for crossover. Both genetic operations

used a linear probability length selection between 1 and 10 program tokens.

5.2 A successfully evolved algorithm

5.2.1 Baseline performance of DPDT

As a performance comparison baseline, we used a FIFTH implementation of the DPDT

first stage, shown below, and ran it against the training set. x ANGLE UNWRAP DIFF MAGNITUDE

Defining a correct answer as one with less than 1% error, this implementation of DPDT achieved

only 66.8% correct estimations. When the set was restricted to only PSK modulation (the domain

in which DPDT should work well) it achieved only 78% correct estimations.

5.2.2 Evolution results

This example was run on a Sun Fire E2900 with 96 GB RAM and 12 dual core 1.5 GHz

processors running Solaris 10. With twenty DPI5 processes, the run completed in just over 19

hours. Figure 5.1 shows the progression of the run by plotting the fitness of the best program in

each generation. Note that the fitness scale is logarithmic. In generation 24, program 1333

achieved a sufficiently low fitness, and because no better program appeared in the next 10 gen-

Page 89: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

75

erations, the run terminated. The dotted line in Figure 5.1 shows the ancestry of the best program

by plotting the best fitness of its direct ancestors.

0 5 10 15 20 25 30 3510-4

10-3

10-2

10-1

100

Generation

Fitn

ess

BestAncestry of best

Figure 5.1: Best fitness progression for a symbol rate GP run

The resulting best program (hereafter referred to as P1333) is very different from any

published algorithm encountered during the course of this research. x SIN FFT DIFF ROUND DIFF FFT x / FLOOR x - 2.0 MAGSQRD MAGSQRD REAL VRAMP WND_HAMMING + x * FLOOR REAL /

The second line produces the constant value seventeen, so the algorithm can be written as: x SIN FFT DIFF ROUND DIFF FFT x / FLOOR x - 17 x * FLOOR REAL /

When run against the entire training set, P1333 achieves an impressive 97.7% correct es-

timation. Table 5.3 compares the distribution of the correct answers by symbol rate (baud) and

modulation type for both DPDT and P1333.

To validate the performance of P1333, we ran it against a subset of the signal files used

with the wavelet symbol rate algorithm (see Table 3.2). Since these signals were not used during

the evolutionary process, they constituted a reasonable test set. The test set included two new

property values that were not present in the training set: root raised cosine (RRC) pulse shape

and phase discontinuous FSK symbol transitions. Using all five symbol rates available in that set,

and including all ten random symbol variations for each combination of property values, the se-

lected test set consisted of 6250 signal files.

Page 90: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

76

Table 5.3: Percent correct performance by symbol rate value against the entire training set

DPDT P1333

Baud FSK PSK FSK PSK

50 0.0 45.4 78.3 87.9

75 0.0 59.6 83.3 96.3

96 0.0 65.8 85.0 99.6

100 0.0 72.1 98.3 99.6

125 1.7 72.9 96.7 100.0

200 1.7 75.0 91.7 100.0

300 0.0 75.0 93.3 100.0

600 12.5 100.0 100.0 100.0

800 0.0 75.0 100.0 100.0

1280 0.0 75.0 100.0 100.0

1500 75.0 100.0 100.0 100.0

1800 5.0 100.0 100.0 100.0

2400 NA 100.0 NA 100.0

As seen in Table 5.4, the performance of both algorithms was similar for both the training

and test sets. When we expanded the FSK signal properties to include other modulation indexes,

neither DPDT nor P1333 performed well against the new FSK signals. We are planning addi-

tional experiments with an augmented training set to evolve an even more general algorithm.

Table 5.4: Percent correct performance by symbol rate value against the test set

DPDT P1333

Baud FSK PSK FSK PSK

50 0.3 68.0 74.7 92.8

100 0.0 82.2 99.0 100.0

300 0.0 85.7 89.7 100.0

1280 2.0 85.7 100.0 100.0

2400 NA 100.0 NA 100.0

5.2.3 P1333 algorithm structure

One of the known difficulties with GP is its tendency to produce obscure code that may

contain sequences that have little effect on the code’s overall performance. For example, the se-

quence in the original P1333 (2.0 MAGSQRD MAGSQRD REAL VRAMP WND_HAMMING +) is certainly an

unusual way to create the constant value 17. To determine how the performance of P1333 might

be affected by simple changes, we ran a series of six algorithm variations against the training set.

Page 91: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

77

A slight improvement occurred with the constant value set to 25. Otherwise, all other changes

were destructive.

Table 5.5: Performance of variations on algorithm P1333

Variant Stage One Code % Correct Original x SIN FFT DIFF ROUND DIFF FFT x / FLOOR x -

17 x * FLOOR REAL / 97.7

A x SIN FFT DIFF ROUND DIFF FFT x / FLOOR x - 10 x * FLOOR REAL / 95.0

B x SIN FFT DIFF ROUND DIFF FFT x / FLOOR x - 25 x * FLOOR REAL / 97.8

C x SIN FFT DIFF ROUND DIFF FFT x / FLOOR x - 100 x * FLOOR REAL / 94.9

D x FFT DIFF DIFF FFT x / FLOOR x - 100 x * FLOOR REAL / 62.9

E x SIN FFT DIFF DIFF FFT x / FLOOR x - 100 x * FLOOR REAL / 69.9

F x FFT DIFF ROUND DIFF FFT x / FLOOR x - 100 x * FLOOR REAL / 94.8

5.2.4 P1333 algorithm analysis

Insight into the operation of P1333 can be gained by comparing its intermediate results

with those of DPDT. The two intermediate points of interest are the stage one feature vector and

the stage two vector just after the Fourier transform.

Figure 5.2 shows the feature vectors and stage two vectors for a signal that both algo-

rithms estimated correctly. The signal is two level PSK modulated at 50 baud with raised cosine

pulse shape, rolloff of 0.1, and SNR of 16. In the feature plots on the left, the symbol transitions

are clearly seen as large spikes, but the spikes in P1333 are several orders of magnitude greater

than for DPDT. The plots to the right show the stage two vectors with the x-axis scaled to repre-

sent the symbol rate. While the largest peak for both algorithms is located at the correct 50

symbols per second, the P1333 peak is several orders of magnitude larger (4x107 versus 1x103).

Figure 5.3 shows the equivalent analysis for a signal with the same properties (but differ-

ent symbol sequence) in which DPDT was incorrect and P1333 was correct. DPDT again shows

strong peaks at each symbol transition, but the peaks do not line up as well with the P1333 peaks.

DPDT exhibits a harmonic peak at 100 baud that is larger than the 50 baud peak. Even though

the harmonic is present in P1333, it is lower in magnitude than the 50 baud dominant peak.

Page 92: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

78

0 0.5 10

1

2

3

4

Magnitude

DPDT Features

0 0.5 10

1

2

3

Magnitude x 10^5 P1333 Features

Seconds

0 50 100 150 2000

1

Magnitude x 10^3 DPDT

0 50 100 150 2000

1

2

3

4

5

Magnitude x 10^7 P1333

Baud

Figure 5.2: Feature vector and FFT vector for P1333 and DPDT, both correct

0 0.5 10

1

2

3

4

Magnitude

DPDT Features

0 0.5 10

1

Magnitude x 10^4 P1333 Features

Seconds

0 50 100 150 2000

1

Magnitude x 10^2 DPDT

0 50 100 150 2000

1

2

3

Magnitude x 10^6 P1333

Baud

Figure 5.3: Feature vector and FFT vector for P1333 correct, DPDT incorrect

Page 93: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

79

There were a few signals that both P1333 and DPDT missed. Figure 5.4 shows another

two level PSK modulated signal at 50 baud, but with no pulse shaping and a SNR of 12. The

DPDT maximum peak occurs at the harmonic 150 baud value, while the P1333 maximum peak

occurs at a non-harmonic value of 14 baud. This error could have been easily corrected by in-

creasing the minimum acceptable symbol rate to 15 baud, in which case the maximum peak for

P1333 would have occurred at the correct 50 baud value. After examining multiple signals in this

way, we conclude that P1333 produces fewer and smaller harmonic peaks than does DPDT.

0 0.5 10

1

2

3

4

Magnitude

DPDT Features

0 0.5 10

1

2

Magnitude x 10^4 P1333 Features

Seconds

0 50 100 150 2000

1

Magnitude x 10^2 DPDT

0 50 100 150 2000

1

2

3

4

Magnitude x 10^6 P1333

Baud

Figure 5.4: Feature vector and FFT vector for P1333 and DPDT, both incorrect

5.3 The efficacy of genetic programming

The results of this experiment clearly demonstrate that the genetically evolved P1333 al-

gorithm performs significantly better than the commonly used DPDT algorithm over the selected

range of signal properties. Based on this and other experiments, we conclude that our FIFTH ge-

netic programming environment is a viable technique for addressing real-world vector space

problems. The production of P1333 as a viable algorithm was not a fluke. Many of our explora-

tory runs produced potentially useful algorithms for the symbol rate problem.

Page 94: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

80

Chapter 6 Discussion and Future Work

During the course of this dissertation we have explored the creative process required to

develop signal processing algorithms. The material that we selected for inclusion thus far repre-

sents a coherent thread through a body of work that stretches back over five years. As with any

journey of this duration, there were a number of significant milestones along the way, and the

effort is far from over. In this chapter, we present additional discussion, lessons learned, and

real-world impact associated with three of the most significant milestones: the signal exploitation

markup language schema (SIGEXML), the algorithm evaluation framework (ALEF), and the

genetic programming environment for FIFTH (GPE5). While the specific context continues to be

communication signal recognition in the HF band, the principles apply to any discipline that

processes time series data, making these conclusions pertinent to a much wider audience.

6.1 SIGEXML: the Signal Exploitation Markup Language schema

Practitioners in the field of signal intelligence understand that fully characterizing an al-

gorithm for use in a real-world environment is a difficult task, but one that must be undertaken if

the deployed system is to be successful. The intent is not to require that an algorithm work under

all conditions, but rather that the specific conditions under which the algorithm does work are

well defined, detectable, and controllable. This is sadly ignored in many published algorithms,

making them look attractive on paper but resulting in little practical application.

A necessary supporting element in the signal analysis process is an expressive method for

organizing and conveying the answers to key questions: What are we looking for? What did we

find? Where was the emitter located? How was the data collected? What conditions were present

that might affect the data? The existing description techniques introduced in section 2.2 lacked

sufficient clarity in one or more of these areas, and their organization precluded reasonable ex-

pansion. We also reviewed an unpublished signal description schema under development by a

knowledgeable group. However, their work produces the schema as an automatically derived ar-

tifact from a Unified Modeling Language (UML) based model of the signal domain. In our

opinion, the resulting schema was overly complicated, insufficiently detailed, and not appropri-

Page 95: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

81

ately organized to accomplish our goal of a language that was tractable for both human and ma-

chine consumption. This was the primary impetus for developing SIGEXML.

Stating that we underestimated the complexity of this task does not begin to convey the

amount of work expended in this effort. After several hundred man-hours of meetings, discus-

sions, and reviews, the first revision of SIGEXML took form in a hierarchy of 10 files containing

over 4000 lines of XML schema code. The resulting work was subsequently adopted for use in a

number of large operational systems and has proven very effective. As with all first revisions, we

discovered a number of areas needing improvement, and SIGEXML recently underwent a sec-

ond round of design changes to address some of these issues.

While there are many factors that contributed to the success of SIGEXML, two deserve

particular attention. First, it represents a cooperative melding of the knowledge of several experts

in communication signal processing with the computer science related architectural and organ-

izational skills of the author. This combination of information content with functional

organization sets SIGEXML apart from similar descriptive systems. Second, although we elected

to develop directly in XML schema language instead of using a higher level form of expression

such as UML, this approach succeeded only because we presented the schema to the domain ex-

perts using the visualization format rendered by the product XMLSpy (e.g., see Figure C.2). This

allowed the domain experts to contribute effectively without having to learn all of the intricacies

of XML schema while the underlying language easily and fully supported the computer science

goals such as ensuring data integrity and providing for automated data validation.

6.2 ALEF: the automated Algorithm Evaluation Framework

As we progressed from characterizing the problem domain to working with algorithms

within the domain, it became obvious that tuning an algorithm to provide optimal performance

requires an understanding of all of the algorithm’s parameters, many of which may be hidden or

overlooked in typical publications. These hidden but important factors range from simple items

such as a sample rate to entire related algorithms such as peak search.

It is well understood that an automated testing environment can significantly contribute to

characterizing an algorithm, comparing competing algorithms, or developing a new algorithm.

However, selecting or constructing automation tools requires difficult compromises between the

competing goals of specificity and generality. A good framework provides a balanced approach.

Page 96: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

82

A framework is a set of libraries, software modules, or other tools that form a structure within

which a software project can be organized and developed. By selecting MATLAB to construct

our framework, we inherently gained the general capabilities of a powerful programming and

scripting language. By implementing a series of small functions that build from general opera-

tions to specific applications, we created complete tools that can be easily used for any signal

processing domain as well as functional components that can be easily modified for closely re-

lated domains. The resulting ALEF framework consists of over 8000 lines of MATLAB code in

over 150 files.

In this dissertation we demonstrated just a few of the capabilities of ALEF for character-

izing and developing algorithms. However, the automation only partly mitigates the complexity.

There are virtually unlimited ways to construct algorithms using a two stage approach of feature

extraction followed by classification. Realizing that manual exploration could never cover more

than a small fraction of this limitless landscape, we tackled the problem of automating the gen-

eration of the algorithms themselves.

6.3 FIFTH: a new look at genetic programming

To accomplish the automation, we designed a new genetic programming language,

FIFTH, with intrinsic vector handling capability, and we implemented a completely distributed

GP environment to support it. The source is comprised of over 100 C++ files containing almost

25,000 lines of code. The simple, object oriented design of the both the language implementation

and the GP environment have proven to be easily extensible and maintainable.

There are aspects of the language and environment that seemed advantageous during de-

sign but which we truly appreciate after working with FIFTH to solve real problems. FIFTH

programs appear in text format and require no parsing beyond string tokenization. Although the

language is interpreted, the execution speed is reasonable due to the efficient implementation of

the dictionary and interpreter. The FIFTH runtime system has a small footprint, as do FIFTH

programs themselves, resulting in a system that runs well even on networks of older hardware

with limited memory. Another unique feature among GP environments is the interactive console

interpreter, which provides a convenient exploration environment for FIFTH programs whether

written manually by a human or automatically by the GPE.

Page 97: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

83

The design philosophy underpinning FIFTH does not mirror the choices that have been

made for most genetic programming languages and environments. Banzhaf [12] and others ad-

vocate using function sets and data representation that closely resemble the structure of the

underlying CPU hardware. They reason that this provides a simple structure with significant exe-

cution speed advantages. We perceive as a disadvantage to this approach that the resulting

programs are almost incomprehensible to humans without significant additional effort.

In addition, for many applications in the feature recognition domain, the performance

bottleneck occurs in the execution of matrix manipulation operations such as finding eigenval-

ues, performing convolutions and filtering, or calculating FFTs. Optimized libraries are available

for these types of operations. It is highly unlikely that a genetic programming system would ever

evolve either optimized or unoptimized versions of such complicated operations. By starting

with primitives that reflect the best practices of the domain and using the genetic programming

environment as the glue, it seems reasonable that we are more likely to end up with a working

program. In other words instead of trying to evolve a horse from an amoeba, we try to breed a

better horse from a good bloodline. The former process is an example of general evolution, while

the latter is an example of special evolution [34].

The details of data handling and support are also critical. Recent publications using stack-

based representations have attempted to expand the basic data types available in a GPL by add-

ing separate stacks for each data type. This appears to be an extension of the direction taken by

early stack based languages such as FORTH. However, a separate stack design requires adding

not only a full set of data manipulation functions for each stack but also functions for data trans-

fer between stacks. As previously indicated, this choice adversely expands the dimensionality of

the program search space.

The key feature that clearly sets FIFTH apart from other GP languages is its ability to

natively handle a vector as an intrinsic unit of data. Not only does this facilitate the inclusion of

domain specific primitives (in this case, functions such as FFT and windowing) as indivisible

operators, it makes possible the expression of complicated serial transforms in a simple form that

is void of control operations based on vector lengths.

While our experiments have vindicated our approach and have demonstrated that the

automated development of human-competitive vector-based algorithms to solve real-world prob-

lems is possible, they have also highlighted the complexity associated with accomplishing this

Page 98: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

84

task. Consistent with other published GP environments, only a fraction of our runs produced vi-

able results. The effectiveness of the search depended on the inclusion and the selection

probabilities of the operators needed to solve the problem. We also found that the closure proper-

ties of all operators had to be carefully considered. For example, when two vectors of unequal

size (or a vector and a matrix) are added, what should the footprint of the result be? Decisions

about these details made a strong impact on the results that were generated.

Even with these difficulties, this work is highly significant. It compellingly demonstrates

the utility of the GP approach to produce vector algorithms for feature extraction, which is the

first stage in many problem domains where large volumes of data are naturally expressed as vec-

tors. Without native vectors, it is difficult to formulate these problems in a way that GP analysis

can directly process the raw data. FIFTH solves this problem with a simple and easily manipu-

lated syntax, making it an attractive vehicle for GP research.

6.4 The path forward

Although our experiments have produced some excellent results, we have barely touched

the potential of this new language and its genetic programming environment. Additional research

and development are likely to yield important advances. For example, we have already identified

several areas in both the FIFTH language and the GPE5 infrastructure that need work.

• The language support for automatically defined functions, variables, branching, and

flow control has been implemented in FIFTH. However, since we were able to dem-

onstrate the viability of automatic algorithm discovery without using these constructs,

the genetic manipulation of programs containing these elements has not been com-

pletely tested.

• There are a number of standard transforms and vector operations that could prove

useful if added to FIFTH, including inner and outer vector products, matrix determi-

nant and inversion, wavelets, and so forth.

• We ran a small number of trials to determine which of the four available length selec-

tion algorithms produced the best results for our symbolic regression problem.

Qualitatively, we believe that more viable solutions emerged when using the linear

probability technique than with the uniform, Gaussian, or tree emulation selection

techniques. While this appeared to apply to the symbol rate problem as well, we have

Page 99: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

85

yet to run the number of trials necessary to quantify the observation. Length selection

is just one of many GPE5 configuration parameters that affect the evolutionary proc-

ess but that have not been fully characterized.

• Qualitative observation of the elapsed time of an experiment as a function of the

number of DPI5 processes involved indicated an almost linear relationship. However,

due to available resource limitations, we have only tested GPE5 with up to 50 proces-

sors. We shortly expect to expand this to several hundred processors.

Furthermore, it is important that FIFTH be applied to a broader variety of vector-based

problems. In the domain of communication signals this would include signal modulation classifi-

cation, specific emitter recognition, signal detection and location in a wideband data stream, and

other classical problems. Beyond communication, there are countless disciplines that use time

series data where FIFTH might be able to provide creative insight into difficult problems.

To facilitate this expansion goal, we want to make ALEF and FIFTH available to other

researchers. We are preparing two packages that will be available from Southwest Research In-

stitute at no charge under an academic use license.

The ALEF package will include:

• The ALEF MATLAB files shown in Appendix D,

• Automatically generated documentation in HTML format,

• The pre-built library of signal files used for symbol rate algorithm comparison, and

• Example MATLAB scripts using the ALEF functions.

The GPE5 package will include:

• The complete C++ source for FIFTH and GPE5,

• MATLAB files for viewing runs and analyzing results,

• Automatically generated documentation in HTML form,

• The pre-built library of files for the example symbolic regression function,

• The pre-built library of signal files used for the symbol rate algorithm development,

• A pre-built set of binary files to run GPE5 on Windows XP.

Please email the author ([email protected]) for availability and licensing details.

Page 100: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

86

Appendix A

Glossary and Acronyms

ALE Automatic Link Establishment (Fed Std 1045) AM Amplitude Modulation - analog signal where the amplitude of the carrier wave is varied Baud Rate A measure of the modulation symbol rate, proportional to the message data rate BPSK Bi-Phase Shift Keying – a digital modulation technique BW Bandwidth - width of the frequency spectrum occupied by a signal measured in Hz CBNRC Communications Branch National Research Council CDF Canadian Defense Forces COMINT Communications Intelligence CW Carrier Wave or Continuous Wave refers to a continuous RF radio wave dB decibels – a logarithmic unit to measure the difference in power DF Direction Finding or Direction Finder DFSK Dual Frequency Shift Keying - digital modulation technique that uses four specific fre-

quencies to encode a signal DND Department of National Defense (Canada) DoS Department of State DSP Digital Signal Processing ELINT Electronic Intelligence (Radars) FDM Frequency Division Multiplex FDMA Frequency Division Multiple Access FFT Fast Fourier Transformer FM Frequency Modulation – analog signal that varies the frequency of the carrier wave FSK Frequency Shift Key(ing) – digital modulation method in which a signal is shifted be-

tween two or more discrete frequency levels at a defined rate. GPS Global Positioning System - a constellation of 24 satellites used to derive worldwide

position, time, and frequency information GSM Global Service Mobile – digital cellular communications (900 MHz ). HF High Frequency – radio spectrum ranging from 3 to 30 MHz Hz Hertz – Number of cycles in one second. IF Intermediate Frequency In-Phase Every sinusoid can be expressed as the sum of a sine function (phase zero) and a cosine

function (phase 2π ). The sine part is called the “In-Phase” component; the cosine part is called the “Phase-Quadrature” component. In general, “phase-quadrature” means 90 degrees out of phase.

ISB Independent Sideband kHz Frequency measurement in kilo Hertz - Cycles in thousands

Page 101: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

87

KL Karhunen-Loève decomposition - a type of Principal Component Analysis LQA Link Quality Assessment – a probe signal that provides communication network man-

agement functions. LSB Lower Sideband MF Medium Frequency range, pertaining to the 300 kHz to 3 MHz range. MFSK Multi-Frequency Shift Keyed - digital modulation that uses more than four separate

frequency levels to encode a signal MHz Megahertz – Frequency in millions of cycles per second MSK Minimal Shift Keying NB Narrowband - a small bandwidth usually occupied by a single signal. In HF, NB is usu-

ally 4 kHz or smaller, but may be as large as 20 kHz N-levels An arbitrary designator for any number of frequency levels (MFSK) or phase states

(QAM) referenced for descriptive purposes only. NSA National Security Agency OOK On-Off Key modulation used for Morse messages PM Phase Modulation - analog modulation where the phase of the carrier wave is varied in

accordance with the modulating signal PSK Phase Shift Key modulation - digital modulation where the phase of the carrier is

modulated in discrete steps to encode a signal QAM Quadrature Amplitude Modulation - both the amplitude and phases of a carrier wave

are varied in discrete steps to encode a signal QPSK Quadrature Phase Shift Keying – PSK that uses four phases Quadrature See In-Phase RF Radio Frequency SIGINT Signals Intelligence SNR Signal to Noise Ratio SOI Signal of interest SS Spread Spectrum SSB Single Sideband TACS Telephone Automated Communication System – a Cellular system. TDMA Time Division Multiple Access UHF Ultra-High Frequency – radio spectrum ranging from 300 to 3000 MHz USA US Army USAF US Air Force USB Upper Sideband USMC US Marine Corps USN US Navy VHF Very High Frequency – radio spectrum ranging from 300 to 3000 MHz WB Wideband – spectrum bandwidths that may contain more than one discrete signal.

Page 102: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

88

Appendix B

Typical Wideband Signal Surveillance System

In the recent past, Signal Intelligence work was characterized by rooms full of operators at radio

receivers. These skilled individuals tuned through various bands listening to their headphones and

watching spectrogram displays for telltale signs that indicated a signal of interest. Today, the volume

and complexity of signal traffic easily overwhelms this type of operation. Instead, large automated sys-

tems are being developed that can monitor large portions of a radio spectrum simultaneously and alert an

operator only when they find something interesting.

Figure B.1 shows a simplified block diagram for a wideband HF surveillance system. The dotted

lines represent high volume signal data flow, while the solid lines represent lower volume command and

control data flow. The system may consist of anywhere from a few to hundreds of interconnected com-

puters.

The general blind signal recognition problem can be divided into five distinct sub-problems.

• Detection (finding a signal of interest in the received signal data).

• Classification (determining the signal modulation type and associated parameters).

• Demodulation (extracting a binary or audio data stream from the signal).

• Identification (using the demodulated data and possibly direction finding data to identify the signal source).

• Analysis (using the recognition data to extract information about the signal content).

The entry point for data is one or more receivers that digitize wide chunks (2 to 5 MHz) of the

HF spectrum. This digital data is time tagged and stored in short-term volatile memory that provides

several seconds of delay. Since this wideband data usually contains multiple narrowband signals, one of

the first algorithmic tasks is to comb through the data looking for new energy emissions. When the New

Energy Detection block locates a potential signal, it creates a mission request that contains its best esti-

mate of the signals starting time, frequency, bandwidth, and duration. It then passes the mission request

to a Mission Queue. The Mission Queue’s responsibility is to coordinate the job of passing these mis-

sion requests to the hundreds of Mission Prosecutors (MP) in the system.

Page 103: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

89

DigitalReceiver(s)3-30 MHz

Delay Memoryand

Channelization

WidebandData

New EnergyDetection

ExternalMissionGateway

MissionQueue

MissionRequests

MissionProsecutor

NarrowbandData

SOIDefinitionsReports

Figure B.1: Simplified block diagram of a wideband signal surveillance system

The Mission Prosecutor is where the system must determine if a particular new energy detection

mission is actually a signal of interest (SOI). It begins by contacting the wideband memory component

and requesting a narrowband (usually 5 to 20 KHz) stream at the indicated frequency and time. It is the

mission prosecutor that executes the signal recognition algorithms against this narrowband data stream.

The symbol rate estimation and modulation classification algorithms discussed in this proposal are just a

few of the many algorithms that comprise the "recognition" process. If the results match any of the crite-

ria in the SOI database, the MP may record the data, notify operators, or post alerts to other surveillance

systems.

Page 104: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

90

Appendix C

Signal Exploitation Markup Language Schemas

Figure C.1 shows the include dependency hierarchy for the Signal Exploitation schema.

Files at the bottom of the diagram are the ones used to describe high-level entities such as librar-

ies and reports. The other files contain data types and common elements.

se1ActionPieces.xsd se1BaseTypes.xsd

se2GeolocationPieces.xsd se2SignalDescriptionPieces.xsd

se3Alerts.xsd se3CheckTarget.xsd se3Demod.xsdse3Mission.xsd se3SignalLibrary.xsdse3SignalProsecutionPlan.xsd

Figure C.1: Dependency hierarchy for signal exploitation schema files

Table C.1: Description of signal exploitation schema files

File Name Contents Description

se1ActionPieces.xsd Defines actions (e.g. recording data, alerting operators, or generating reports) a system might perform in response to successful recognition of a signal.

se1BaseTypes.xsd Defines fundamental data types used in signal processing. Examples include frequency ranges, time ranges, and unique identifiers.

se2GeolocationPieces.xsd Defines structures for reporting geographic locations (Latitude, Longitude, Altitude) and directions (Line of Bearing)

se2SignalDescriptionPieces.xsd Definitions for templates that describe desired signal characteristics and re-ports that describe recorded or calculated signal characteristics.

se3Alerts.xsd Defines a general format for communicating alerts. Specific content is driven by an XML dictionary to all for internationalization.

se3CheckTarget.xsd Defines both a list of signal targets to periodically check for direction finding accuracy, as well as a report structure for the results of the check.

se3Demod.xsd Defines interaction with an external signal demodulator.

se3Mission.xsd Defines a report for all information about the prosecution of a specific signal.

se3SignalLibrary.xsd Defines a storage mechanism for organizing libraries of signal files.

se3SignalProsecutionPlan.xsd Defines the work process for a signal interception system by describing signals of interest and where to expect those signals in frequency, time, and geo-graphic location.

Page 105: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

91

Figure C.2: Pictorial representation of XML schema type externalReportFSK

Page 106: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

92

Figure C.3: Pictorial representation of XML schema type SegmentReportType

Page 107: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

93

Appendix D

Index of ALEF Functions

D.1 Index for directory SigGen (test signal generator functions)

File Name Description addAWGN Impose Added White Gaussian Noise (AWGN) on a signal. blanksigdesc Creates a blank signal description structure.

genAM Generate an Amplitude Modulation (AM) signal with added white Gaussian noise (AWGN).

genAMfiles Generate multiple AM signal files, saved in normalized .wav format.

genCPFSK Generate a Continuous Phase Frequency Shift Key (CPFSK) signal with added white Gaussian noise (AWGN).

genCPFSKfiles Generate multiple CPFSK signal files, saved in normalized .wav format.

genCPM Generate a Continuous Phase Modulation (CPM) signal with added white Gaussian noise (AWGN).

genCPMfiles Generate multiple CPM signal files, saved in normalized .wav format.

genDPSK Generate a Differential Phase Shift Key (DPSK) signal with added white Gaussian noise (AWGN).

genDPSKfiles Generate multiple DPSK signal files, saved in normalized .wav format. genFM Generate a Frequency Modulated signal with added white Gaussian noise (AWGN). genFMfiles Generate multiple FM signal files, saved in normalized .wav format.

genFSK Generate a Frequency Shift Key (FSK) signal with added white Gaussian noise (AWGN).

genFSKfiles Generate multiple FSK signal files, saved in normalized .wav format.

genGMSK Generate a Gaussian Minimum Shift Key (GMSK) signal with added white Gaussian noise (AWGN).

genMPAM Generate a M-ary Pulse Amplitude Modulated (MPAM) signal with added white Gaussian noise (AWGN).

genMSK Generate a Minimum Shift Key (MSK) signal with added white Gaussian noise (AWGN).

genMSKfiles Generate multiple MSK signal files, saved in normalized .wav format.

genOOK Generate an On Off Key (OOK) signal (Morse code) with added white Gaussian noise (AWGN).

genOOKfiles Generate multiple OOK signal files, saved in normalized .wav format.

genOQPSK Generate an Offset Quadrature Phase Shift Key (OQPSK) signal with added white Gaussian noise (AWGN).

genOQPSKfiles Generate multiple OQPSK signal files, saved in normalized .wav format. genPSK Generate a Phase Shift Key (PSK) signal with added white Gaussian noise (AWGN). genPSKfiles Generate multiple PSK signal files, saved in normalized .wav format.

Page 108: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

94

File Name Description

genQAM Generate a Quadrature Amplitude Modulation (QAM) signal with added white Gaus-sian noise (AWGN).

genQAMfiles Generate multiple QAM signal files, saved in normalized .wav format. genSSB Generate a Single Sideband (SSB) signal with added white Gaussian noise (AWGN). genSSBfiles Generate multiple SSB signal files, saved in normalized .wav format. heterodyne Mixes an analytic signal up or down in frequency. hfchan Passes a signal through an HF channel simulator built in Simulink. hfchanwav Passes wav files through an HF channel simulator built in Simulink. impulsive Returns a vector that models impulsive noise that can be added to simulated signals. killwaitbox Removes orphan progress boxes. specgramgray Produces a spectrogram in inverse grayscale suitable for B/W publishing. testgenfiles Script to test all of the gen*files. testmdl Script to test the sim*.mdl files and the gen*.m files wav2signal Read a wav file and extract signal data wavname2sigdesc Parses a wave file name into a signal description structure wavname2title Creates a description string from a wav file naming convention wavwritescaled Write a normalized .wav file.

D.2 Index for directory SigGen\models (SigGen support functions)

File Name Description bldpstable Build a structure array with valid combinations of pulse shape parameters. chkchanstruct Check/Validate the structure of channel parameters and restructure it. mkCPFSKcarriernode Create an XML carrier node for FSK as defined in digicom.xsd mkCPMcarriernode Create an XML carrier node for CPM as defined in digicom.xsd mkDPSKcarriernode Create an XML carrier node for PSK or DPSK as defined in digicom.xsd mkFSKcarriernode Create an XML carrier node for FSK as defined in digicom.xsd mkMSKcarriernode Create an XML carrier node for PSK as defined in digicom.xsd mkOOKcarriernode Create an XML carrier node for OOK as defined in digicom.xsd mkOQPSKcarriernode Create an XML carrier node for OQPSK as defined in digicom.xsd mkQAMcarriernode Create an XML carrier node for PSK or QAM as defined in digicom.xsd mkfiledescnode Create am XML file description node mkfilenode Create the basic shell for a siglib.xsd signalFile node mksegnode Create an XML signal segment as defined in digicom.xsd mksigdescnode Create a signal description node opensiglib Open a signal library xml file for read/write qamconst Creates a QAM constellation of points in complex format samplefactors Calculate rational fraction numbers for integer baud rate and sampling. testsim This is a test script used to work with the simTest.mdl file.

Page 109: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

95

Other MATLAB-specific files in this directory (Simulink models):

hfchansim.mdl

simAM.mdl

simAWGN.mdl

simCPFSK.mdl

simCPM.mdl

simDPSK.mdl

simDPSKps.mdl

simFM.mdl

simFSK_cont.mdl

simFSK_discont.mdl

simGMSK.mdl

simLSB.mdl

simMPAM.mdl

simMSK.mdl

simOQPSK.mdl

simOQPSKps.mdl

simQAM.mdl

simQAMps.mdl

simTestNoPS.mdl

simTestPS.mdl

simUSB.mdl

D.3 Index for directory SAFramework (signal analysis framework)

File Name Description Readme Help summary for the Signal Analysis Framework functions. fmtcsv Format a vector or matrix into a comma delimited string. formatArgs Converts structure field names into variables in the callers workspace. formatOutput Converts variable names in the callers workspace into fields in a structure. fw_anova Performs analysis of variance of a metric against factor values fw_combinetests Combine the results from two separate tests fw_errsummary Produces a summary report for the test data fw_factor Extracts the multiple valued factors from a kTest structure

fw_factorconst Reformats a factor matrix so that it represents values for a single constant factor value

fw_factordel Removes a factor column fw_factorperf Produce a vector of % correct values for each value of a single factor fw_factorstats Produce table of %correct for every multiple valued factor fw_listbuild Build a list of file names that match the given criterion fw_listcommon Find common file names in two file lists fw_listdir Finds all .wav files in the given path fw_listfailed Produces a list of all files that consistently failed. fw_listprune Removes all signal files in a list except those matching the given criteria fw_listread Reads a saved list of file names into a cell array of strings fw_listwrite Writes a file list (cell array of strings) into a text file fw_metric Calculates a metric from one or more fields in kTest.kResult fw_plotcluster Plot pass/fail data and cluster to find centroids fw_plotdensity Plots a probability density function for a pass/fail discriminator fw_plotgroup Produce a group plot of multiple valued factors fw_plotperf Creates 2D plot of performance. White = 0%fail, Black = 100%fail. fw_plotroc Create a Receiver Operating Characteristic (ROC) curve fw_rocpoint Select a threshold from ROC data created by fw_plotroc

Page 110: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

96

File Name Description fw_runtest Run tests on an algorithm. Results are stored in a kTest var in a saved .mat file. fw_setfigdefaults Sets default font sizes for figures to enhance suitability for printing. htmClose Close an HTML report file htmImage Save a figure and insert a reference into an HTML report file htmOpen Open an HTML report file. htmPara Insert a preformatted string into an HTML report file htmSection Insert a section title into an HTML report file htmTable Insert a formatted table into an HTML report file

D.4 Index for directory SymbolRate (symbol rate algorithm functions)

File Name Description sr_acor Symbol rate using autocorrelation. sr_avse Symbol rate using absolute value of the signal envelope. sr_dpdt Symbol rate using phase derivative. sr_magsqrd Symbol rate using magnitude squared of the signal envelope. sr_wavelet Symbol rate using multi-scale wavelet transform. sra_visual Symbol Rate Visualization GUI. srh_featuredata Common symbol rate algorithm function to collect data on extracted features srh_peakdata Common symbol rate algorithm function to collect data on baud rate peaks srh_pickpeak Common symbol rate algorithm function to select symbol rate peak srh_spectral Common symbol rate algorithm function to develop the spectral lines srh_visualize Common symbol rate algorithm function to plot symbol rate information

D.5 Index of directory KLDecomp (KL decomposition functions)

File Name Description kl_basis2avi Create avi files of the KL basis vectors kl_calcbins Calculate bin values for a given range. kl_centerpeaks Find the amount to shift a vector to center its peaks. kl_checktraining Test a KL database to see if the reconstruction matches the training set kl_classify1d Modulation identification using vector match against KL derived database. kl_decomp KL decomposition of a matrix of vectors. kl_findpeakscirc Find peaks in a vector where the ends effectively wrap. kl_fixsignal Try to fix signal by removing carrier offset and centering phase peaks. kl_plotbyfactor 3D Scatter plot of data by constant factor value. kl_ploteigval Produces a summary report for the test data kl_plotrecon Test the decomposition and reconstruction of a signal kl_rptanalyzedb Produces a summary report of the eigen values associated with the KL xform

Page 111: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

97

File Name Description kl_rptareabyfactor Area plot and locate best separation vectors for histogram of a specific attribute

kl_rptfailedpairs Massage output from kl_checktraining to see if failed specific id at least matches factor.

kl_rptshow3 Produce a set of reports showing classifications using 3 KL vectors

kl_separation Calculate the minimum separation distance between tests with common factor values

kl_sig2hist1d Create a histogram vector that represents the given input signal. kl_sig2hist2d Create a matrix (2d) histogram that represents the given input signal. kl_train2avi Create avi files of the training set and resulting KL transform kl_vdtheta Calculate the distance and angle between a vector and one or more other vectors. kl_viewhist M-file for kl_viewhist.fig View 1d histograms of signal components. kl_viewhist2d M-file for kl_viewhist2d.fig. View 2d histograms of signal components. kl_wav2hist Create an ensemble (matrix) of histogram vectors from a list of signal files.

Page 112: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

98

Appendix E

Analysis Report from DPDT Experiment

Algorithm: sr_dpdt

Basic Test Information and Performance Metrics

-------------------------------------------------- Test Results Identification -------------------------------------------------- Algorithm: sr_dpdt Description: Derivative of the Phase Angle Test date: 30-Sep-2005 12:10:17 Analysis date: 30-Sep-2005 13:33:37 Error type: Pct Error Result field: symbolsPerSec Pass threshold: 2 -------------------------------------------------- Summary Statistics -------------------------------------------------- # Tests: 15750 # Right: 15099 # Wrong: 651 % Right: 95.8667 -------------------------------------------------- File: sr_dpdt_PSK_20050930T121017_01.fig

Page 113: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

99

Performance by factor

-------------------------------------------------- Single value factors -------------------------------------------------- sampleRateHz: [ 8000 ] durationSec: [ 2.048 ] startTimeSec: [ 0.6 ] modulation: { PSK } modIndex: [ 0 ] phaseContinuity: { Unknown } rayleighCondition: { None } ricianCondition: { None } impnseCondition: { None } rMinSymbolsPerSec: [ 20 ] sPeakOpt: { orh } bDropInitial: [ 0 ] -------------------------------------------------- Multiple value factors -------------------------------------------------- offsetFreqHz: [0 50 100] symbolsPerSec: [50 100 300 1280 2400] numStates: [2 4 8] pulseShape: { None Normal sqrt } rolloff: [0 0.1 0.2 0.35] SNRdB: [9 12 16 20 40]

Statistics for each factor value

Factor Value #Tests #Right %Right --------------- ---------- ---------- ---------- ---------- offsetFreqHz 0 5250 5087 96.90 offsetFreqHz 50 5250 5040 96.00 offsetFreqHz 100 5250 4972 94.70 symbolsPerSec 50 3150 2556 81.14 symbolsPerSec 100 3150 3093 98.19 symbolsPerSec 300 3150 3150 100.00 symbolsPerSec 1280 3150 3150 100.00 symbolsPerSec 2400 3150 3150 100.00 numStates 2 5250 5184 98.74 numStates 4 5250 4966 94.59 numStates 8 5250 4949 94.27 pulseShape None 2250 2158 95.91 pulseShape Normal 6750 6414 95.02 pulseShape sqrt 6750 6527 96.70 rolloff 0 2250 2158 95.91 rolloff 0.1 4500 4195 93.22 rolloff 0.2 4500 4322 96.04 rolloff 0.35 4500 4424 98.31 SNRdB 9 3150 2996 95.11 SNRdB 12 3150 3062 97.21 SNRdB 16 3150 3080 97.78 SNRdB 20 3150 3079 97.75 SNRdB 40 3150 2882 91.49

Page 114: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

100

Summary of Performance: Symbol Rate Vs. Offset Frequency

0 50 100

50 84.76 80.38 78.29

100 99.71 99.62 95.24

300 100.00 100.00 100.00

1280 100.00 100.00 100.00

2400 100.00 100.00 100.00

Summary of Performance: Symbol Rate Vs. Pulse Shape

None Normal sqrt

50 79.56 77.78 85.04

100 100.00 97.33 98.44

300 100.00 100.00 100.00

1280 100.00 100.00 100.00

2400 100.00 100.00 100.00

Page 115: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

101

Probability density and ROC plots

File: sr_dpdt_PSK_20050930T121017_06.fig

File: sr_dpdt_PSK_20050930T121017_07.fig

Example Operating point: FP= 0.01 TP= 0.55 Thresh=0.00330433

Page 116: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

102

File: sr_dpdt_PSK_20050930T121017_08.fig

Cluster plot File: sr_dpdt_PSK_20050930T121017_18.fig

Page 117: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

103

Appendix F

Signal Histogram Viewer Samples

The following figures are example screen captures of the one dimensional Signal Histo-

gram Viewer application (kl_viewhist.m). The five figures show examples for AM, OOK, PSK

without pulse shaping, PSK with pulse shaping, and FSK modulation types.

Figure F.1: Histograms for AM signal

Page 118: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

104

Figure F.2: Histograms for OOK, 35 WPM signal

Page 119: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

105

Figure F.3: Histograms for PSK, 4 level, 50 baud, no pulse shape signal

Page 120: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

106

Figure F.4: Histograms for PSK, 4 level, 50 baud, RRC pulse shape signal

Page 121: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

107

Figure F.5: Histograms for FSK, 2 level, 50 baud, mod index 1 signal

Page 122: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

108

Bibliography

[1] "Appendix 1-Classification of emissions and necessary bandwidths," in Radio Regula-tions: International Telecommunication Union, 1990.

[2] "Radio Communications in the Digital Age Volume 1: HF Technology," Harris Corpora-tion, http://www.rfcomm.harris.com/support/PDF/hfradio.pdf, 1996.

[3] "Manual of Regulations & Procedures for Federal Radio Frequency Management," Na-tional Telecommunications and Information Administration, http://www.ntia.doc.gov/osmhome/redbook/redbook.html, 2000.

[4] "Using The ITU Emission Classifications," International Amateur Radio Union, http://www.echelon.ca/iarumsr2/emisscode.html, 2002.

[5] University of Pennsylvania, "Linguistic Data Consortium," http://www.ldc.upenn.edu/.

[6] UC Berkeley, The Ptolemy Project, http://ptolemy.berkeley.edu/. 2004.

[7] Register Machine Learning Technologies, Discipulus, http://www.aimlearning.com/products.htm. 2005.

[8] Statistics Toolbox User's Guide. Natick, MA: The Mathworks, Inc., 2005.

[9] Free Software Foundation, "GNU Scientific Library," http://www.gnu.org/software/gsl/.

[10] E. Azzouz and A. K. Nandi, Automatic Modulation Recognition of Communication Sig-nals. Norwell, MA: Kluwer Academic Publishers, 1996.

[11] W. Banzhaf, F. D. Francone, and P. Nordin, "The Effect of Extensive Use of the Muta-tion Operator on Generalization in Genetic Programming Using Sparse Data Sets," presented at Parallel Problem Solving from Nature IV, Proceedings of the International Conference on Evolutionary Computation, Berlin, Germany, 1996.

[12] W. Banzhaf, P. Nordin, R. E. Keller, et al., Genetic Programming -- An Introduction; On the Automatic Evolution of Computer Programs and its Applications. San Francisco: Morgan Kaufmann, dpunkt.verlag, 1998.

[13] L. Brodie, Starting Forth, 2 ed. Englewood Cliffs: Prentice-Hall, 1987.

[14] W. S. Bruce, "The Lawnmower Problem Revisited: Stack-Based Genetic Programming and Automatically Defined Functions," presented at Genetic Programming 1997: Pro-ceedings of the Second Annual Conference, Stanford University, CA, USA, 1997.

[15] L. Cardelli, "Type Systems," in CRC Handbook of Computer Science and Engineering, A. B. Tucker, Ed. Boca Raton, FL: CRC Press, 2004.

[16] Y. T. Chan, J. W. Plews, and K. C. Ho, "Symbol rate estimation by the wavelet trans-form," presented at IEEE International Symposium on Circuits and Systems (ISCAS 97), 1997.

[17] DARPA, "Model Based Integration of Embedded Software (MoBIES)," http://dtsn.darpa.mil/ixo/programdetail.asp?progid=38, accessed September 2003.

Page 123: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

109

[18] K. L. Davidson, J. R. Goldschneider, L. Cazzanti, et al., "Feature-based modulation clas-sification using circular statistics," presented at Military Communications Conference, Monterey, CA, 2004.

[19] L. Dehio, "Monitoring Utility Stations," http://rover.vistecprivat.de/~signals/, accessed September 2002.

[20] R. M. Friedberg, "A Learning Machine: Part 1," IBM Journal of Research and Develop-ment, vol. 2, pp. 2-13, January 1958.

[21] M. Gudaitis, "A Waveform Description Language For Software Defined Radio," pre-sented at Software Defined Radio Technical Conference, San Diego, California, 2002.

[22] T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning: Data Mining, Inference, and Prediction. New York, NY: Springer-Verlag, 2001.

[23] T. D. Haynes, D. A. Schoenefeld, and R. L. Wainwright, "Type Inheritance in Strongly Typed Genetic Programming," in Advances in Genetic Programming 2, P. J. Angeline and nd K. E. Kinnear, Jr., Eds. Cambridge, MA, USA: MIT Press, 1996, pp. 359--376.

[24] K. C. Ho, W. Prokopiw, and Y. T. Chan, "Modulation identification of digital signals by the wavelet transform," presented at IEEE Radar, Sonar and Navigation, 2000.

[25] K. C. Ho, A. E. Scheidl, Y. T. Chan, et al., "Signal identification by orthogonal trans-forms," IEEE Proceedings on Radar, Sonar, and Navigation, vol. 145, pp. 145-152, June 1998.

[26] K. Holladay, A. Burmeister, R. Dollarhide, et al., "A configurable signal analyzer for embedded systems," presented at Military Communications (MILCOM), Boston, MA, 2003.

[27] K. Holladay and K. Robbins, "A framework for automatic large-scale testing and charac-terization of signal processing algorithms," presented at Military Communications (MILCOM), Monterey, CA, 2004.

[28] K. Holladay, K. Robbins, and J. v. Ronne, "FIFTH™: A stack based GP language for vector processing," presented at EuroGP 2007, Valencia, Spain, 2007.

[29] K. Holladay, K. Robbins, and D. Varner, "An XML schema for digital communication signal research," presented at XML 2002, Baltimore, MD, 2002.

[30] D. Jackson, "Dormant program nodes and the efficiency of genetic programming," pre-sented at GECCO 2005: Proceedings of the 2005 conference on Genetic and evolutionary computation, Washington DC, USA, 2005.

[31] R. Jain, "Determining Sample Size," in The Art of Computer Systems Performance Analysis. New York, NY: John Wiley & Sons, 1990, pp. 217.

[32] R. Kakarala and P. Ogunbona, "Signal Analysis Using a Multiresolution Form of the Singular Value Decomposition," IEEE Transactions on Image Processing, vol. 10, pp. 724-735, May 2001.

[33] J. Keller, "The Coming HF Radio Renaissance," Military & Aerospace Electronics, Sep-tember 2002.

[34] G. A. Kerkut, Implications of Evolution. New York: Pergamon Press Inc., 1960.

Page 124: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

110

[35] J. Kilgallen, Monteria LLC, "Global Communication Intelligence," http://www.monteriallc.com, accessed September 2002.

[36] M. Kirby, Geometric Data Analysis. New York, NY: John Wiley & Sons, 2001.

[37] M. Kirby and L. Sirovich, "Application of the Karhunen-Loeve procedure for the charac-terization of human faces," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 12, pp. 103-108, January 1990.

[38] Klingenfuss, Klingenfuss Publications, "Klingenfuss Radio Monitoring," http://www.klingenfuss.org, accessed September 2002.

[39] M. A. Koets, J. Porter, M. Moore, et al., "An analytical framework and implementation architecture for a reconfigurable signal classification system," presented at Military Communications Conference, 2004.

[40] B. S. Koh and H. S. Lee, "Detection of symbol rate of unknown digital communication signals," Electronics Letters, vol. 29, pp. 278-279, February 1993.

[41] J. Koza, F. H. Bennett III, D. Andre, et al., "The Design of Analog Circuits by Means of Genetic Programming," in Evolutionary Design by Computers, P. Bentley, Ed. San Fran-cisco, USA: Morgan Kaufmann, 1999, pp. 365--385.

[42] J. R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection. Cambridge: MIT Press, 1992.

[43] J. R. Koza, Genetic Programming II: Automatic Discovery of Reusable Programs. Cam-bridge: MIT Press, 1994.

[44] J. R. Koza, D. Andre, F. H. Bennett III, et al., Genetic Programming III: Darwinian In-vention and Problem Solving: Morgan Kaufman, 1999.

[45] J. R. Koza, M. A. Keane, M. J. Streeter, et al., Genetic Programming IV: Routine Hu-man-Competitive Machine Intelligence: Kluwer Academic Publishers, 2003.

[46] S. Kremer and J. Shiels, "A Testbed for Automatic Modulation Recognition Using Artifi-cial Neural Networks," presented at Canadian Conference on Electrical and Computer Engineering (CCECE), St. John's, Newfoundland, 1997.

[47] M. Kueckenwaitz, F. Quint, and J. Reichert, "A robust baud rate estimator for noncoop-erative demodulation," presented at Military Communications Conference (MILCOM 2000), 2000.

[48] R. Lacroix, "MilSpec Communication Canada," http://www.milspec.ca, accessed Sep-tember 2002.

[49] P. Laguna, G. Moody, J. Garcia, et al., "Analysis of the ST-T complex of the electrocar-diogram using the Karhunen-Loeve transform: adaptive monitoring and alternans detection," Medical & Biological Engineering & Computing, vol. 37, pp. 175–189, 1999.

[50] W. B. Langdon, Genetic Programming and Data Structures: Genetic Programming + Data Structures = Automatic Programming!, vol. 1. Boston: Kluwer, 1998.

[51] F.-S. Lu, C.-X. Yang, and P.-L. Lin, "An improved Wigner distribution based algorithm for signal identification," presented at International Symposium on Underwater Technol-ogy, Taipei, TW, 2004.

Page 125: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

111

[52] B. Moghaddam and A. Pentland, "An Automatic System for Model-Based Coding of Faces," presented at IEEE Data Compression Conference, Snowbird, Utah, 1995.

[53] B. M. Moret, "Towards a Discipline of Experimental Algorithmics," in Monographs in Discrete Mathematics and Theoretical Computer Science: American Mathematical Soci-ety, 2000.

[54] A. K. Nandi and E. E. Azzouz, "Algorithms for automatic modulation recognition of communication signals," IEEE Transactions on Communications, vol. 46, pp. 431 - 436 1998

[55] OMG, "Unified Modeling Language Specification," http://www.omg.org/, accessed 2005 September.

[56] T. Perkis, "Stack-Based Genetic Programming," presented at Proceedings of the 1994 IEEE World Congress on Computational Intelligence, Orlando, Florida, USA, 1994.

[57] R. Poli, "Parallel Distributed Genetic Programming," University of Birmingham School of Computer Science, Birmingham, UK September 1996.

[58] S. Prabhakar and A. Jain, "Fingerprint Identification," http://biometrics.cse.msu.edu/fingerprint.html, accessed September 2005.

[59] J. G. Proakis, Digital Communications. New York, NY: McGraw-Hill, 2000.

[60] D. E. Reed and M. A. Wickert, "Performance of a fourth-power envelope detector for symbol-rate tone generation," presented at International Conference on Communications (ICC), 1988.

[61] M. M. Rizki and L. A. Tamburino, "Evolutionary Computing Applied To Pattern Recog-nition," in Genetic Programming 1998: Proceedings of the Third Annual Conference, J. R. Koza, n. W. Banzhaf, et al., Eds. University of Wisconsin, Madison, Wisconsin, USA: Morgan Kaufmann San Francisco, CA, USA, 1998, pp. 777--785.

[62] K. Robbins and D. Senseman, "Visualizing Differences in Movies of Cortical Activity," presented at Visualization '98, 1998.

[63] R. Sawai, H. Harada, H. Shirai, et al., "General-purpose symbol rate and symbol timing estimation method by using multi-resolution analysis based on wavelet transform for multimode software radio," presented at IEEE 50th Vehicular Technology, 1999.

[64] S. Scalsky, "Digital Signals FAQ Version 5.0," Worldwide Utility News, http://www.wunclub.com/digfaq/signals.html, 1997.

[65] D. C. Schmidt, "Real-time CORBA with TAO," http://www.cs.wustl.edu/~schmidt/TAO.html.

[66] K. C. Sharman, A. I. Esparcia-Alcazar, and Y. Li, "Evolving Digital Signal Processing Algorithms by Genetic Programming," Glasgow G12 8QQ, Scotland, 1995.

[67] K. C. Sharman, A. I. Esparcia-Alcazar, and Y. Li, "Evolving Signal Processing Algo-rithms by Genetic Programming," presented at First International Conference on Genetic Algorithms in Engineering Systems: Innovations and Applications, GALESIA, Sheffield, UK, 1995.

Page 126: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

112

[68] J. A. Sills and J. F. Wood, "Application of the Euclidean algorithm to optimal baud-rate estimation," presented at Military Communications Conference (MILCOM), McLean, VA, 1996.

[69] B. Sklar, Digital Communications Fundamentals and Applications. Upper Saddle River, NJ: Prentice Hall, 2001.

[70] L. Spector and A. Robinson, "Genetic Programming and Autoconstructive Evolution with the Push Programming Language," presented at Genetic Programming and Evolvable Machines, 2002.

[71] J. Stevens, R. B. Heckendorn, and T. Soule, "Exploiting disruption aversion to control code bloat," presented at GECCO 2005: Proceedings of the 2005 conference on Genetic and evolutionary computation, Washington DC, USA, 2005.

[72] K. Stoffel and L. Spector, "High-Performance, Parallel, Stack-Based Genetic Program-ming," presented at Genetic Programming 1996: Proceedings of the First Annual Conference, Stanford University, CA, USA, 1996.

[73] W. Su and J. Kosinski, "A survey of digital modulation recognition methods," presented at International Signal Processing Conference, 2003.

[74] B. Tarver, E. Christensen, and A. Miller, "Software defined radios (SDR) platform and application programming interfaces (API)," presented at Military Communications Con-ference (MILCOM), 2001.

[75] E. Tchernev, "Forth Crossover Is Not a Macromutation?," presented at Genetic Pro-gramming 1998: Proceedings of the Third Annual Conference, University of Wisconsin, Madison, Wisconsin, USA, 1998.

[76] E. Tchernev, "Stack-Correct Crossover Methods in Genetic Programming," presented at Late Breaking Papers at the Genetic and Evolutionary Computation Conference (GECCO-2002), New York, NY, 2002.

[77] E. B. Tchernev and D. S. Phatak, "Control structures in linear and stack-based Genetic Programming," presented at Late Breaking Papers at the 2004 Genetic and Evolutionary Computation Conference, Seattle, Washington, USA, 2004.

[78] A. Teller and M. Veloso, "Program Evolution for Data Mining," The International Jour-nal of Expert Systems, vol. 8, pp. 216--236, 1995.

[79] T.-M. Tu, C.-H. Chen, and C.-I. Chang, "A Posteriori Least Squares Orghogonal Sub-space Projection Approach to Desired Signature Extraction and Detection," IEEE Transactions on Geoscience and Remote Sensing, vol. 35, pp. 127-139, January 1997.

[80] V. University, "The Generic Modeling Environment," http://www.isis.vanderbilt.edu/Projects/gme/, accessed September 2005.

[81] USArmy, "Joint Tactical Radio System (JTRS) Program," http://jtrs.army.mil/, accessed September 2005.

[82] H. L. Van Trees, Detection, Estimation, and Modulation Theory, Part I. New York, NY: John Wiley & Sons, 2001.

[83] P. Walmsley, Definitive XML Schema. Upper Saddle River, NJ: Prentice Hall, 2002.

Page 127: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

113

[84] A. W. Wegener, "Practical techniques for baud rate estimation," presented at Interna-tional Conference on Acoustics, Speech, and Signal Processing (ICASSP), 1992.

[85] M. Willis, H. Hiden, P. Marenbach, et al., "Genetic Programming: An Introduction and Survey of Applications," presented at Second International Conference on Genetic Algo-rithms in Engineering Systems: Innovations and Applications, GALESIA, University of Strathclyde, Glasgow, UK, 1997.

[86] Z. Yaqin, R. Guanghui, W. Xuexia, et al., "Automatic digital modulation recognition us-ing artificial neural networks," presented at International Conference on Neural Networks and Signal Processing Nanjing, China, 2003.

[87] G. Youngblood, "A Software-Defined Radio for the Masses, Part 1," QEX, pp. 13-21, July/August 2002.

[88] E. Zorlu, N. Y. Guler, and I. Olcer, "Statistical methods based modulation recognition algorithm," presented at Signal Processing and Communications Applications Confer-ence, 2004.

Page 128: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

Vita

Background

Kenneth Holladay was born in Jacksonville, Florida on February 1, 1956. He is the elder

child of Billy and Dorcie Holladay. He graduated as valedictorian from Colonial High School,

Orlando, Florida in 1973. In 1978 he graduated with high honors from the University of Florida

with a Bachelor of Science in Chemical Engineering. In 1990 Mr. Holladay became a registered

professional engineer in the state of Florida. He received his Master of Science in Computer Sci-

ence from the University of Texas at San Antonio in 2005 and will complete his Ph.D. degree in

Computer Science in May 2007. Kenneth married his wife Deborah in 1975. Together they have

three children, Aaron, Miriam, and Benjamin.

Work History

In 1996 Mr. Holladay joined the staff of Southwest Research Institute in San Antonio,

Texas where he is currently a Staff Analyst in the Signal Exploitation and Geolocation division.

His responsibilities encompass software engineering, software design and development, and dis-

tributed computing, primarily for signal processing systems.

Mr. Holladay began his professional career in 1978 at Milliken Research in Spartanburg,

South Carolina where he worked on rheological characterization of dye thickeners, flow control

of non-Newtonian dye mixtures, and dye filtration. In 1980 he went to work for CENTEC Cor-

poration in Fort Lauderdale, Florida where he spent the next five years working on energy and

environmental related projects in the food, agricultural chemical, and metal coating industries.

His work encompassed analysis and design for chemical processes and industrial control sys-

tems. During this period he began to work extensively with microcomputer hardware and

software.

In 1986 Mr. Holladay helped co-found Applied System Technologies in Fort Lauderdale,

Florida. He was the principal designer of the Cornerstone family of software products, which

manage communication and calibration of smart industrial instruments. He also served for ten

years as a member of the international HART Communication Foundation, a group responsible

for maintaining the standards for the Highway Addressable Remote Transducer (HART) indus-

trial communication protocol.

Page 129: The Automatic Generation and Testing of Signal … · the automatic generation and testing of ... the automatic generation and testing of signal recognition algorithms ... simulink

Patents

US 6,330,517 B1 Improved Interface for Managing Process Calibrators

Publications

Kenneth Holladay, Kay A. Robbins, and Jeffery von Ronne, “FIFTH: A stack based GP lan-guage for vector processing,” presented at EuroGP, Valencia, Spain, April 2007.

Kenneth Holladay, Kay A. Robbins, “A framework for automatic large-scale testing and charac-terization of signal processing algorithms,” presented at Military Communications (MILCOM), Monterey, CA, October, 2004.

Kenneth Holladay, Kay A. Robbins, “Experimental analysis of wavelet transforms for estimating PSK symbol rate,” presented at IASTED International Conference on Communication Systems and Applications, Banff, Canada, July 2004.

Kenneth Holladay, Michael Koets, Denise Varner, et al., “A configurable signal analyzer for embedded systems,” presented at Military Communications (MILCOM), Boston, MA, 2003.

Kenneth Holladay, Kay A. Robbins, Denise Varner, “An XML schema for digital communica-tion signal research,” presented at XML 2002, Baltimore, MD, December 2002.

Kenneth Holladay, Danny Lents, "Field calibration chaos ceases," InTech, November 1999.

Kenneth Holladay, "Measurement: wrestling the mother of all nonstandards," InTech, August 1998.

Kenneth Holladay, "Calibrating HART transmitters," InTech, May 1996.

Kenneth Holladay, "Using the HART protocol to manage for quality," ISA Proceedings, Paper #94-617, October 1994.

Kenneth Holladay, "Are you calibrating your smart transmitters properly?" Instrumentation and Control Systems, September 1993.

Kenneth Holladay "Results of energy audits conducted in citrus plants during 1979-1980," Transaction of the 1981 Citrus Engineering Conference, March, 1981.