You are on page 1of 65

CHAPTER 1

OVERVIEW

1
1.1 Introduction
The basic purpose of radar is to detect the presence of an object of interest and provide
information concerning the object’s location, motion, size and other parameters. The first task is
called the problem of target detection and second one is referred as parameter estimation.

For good detection radar needs a large peak signal power to average noise power ratio
(S0/N0) at the time of target’s return signal. Thus, for good detection many radars seek to transmit
long duration pulses to achieve high energy since transmitters are typically operated near their
peak power limitation. On the other hand, for good range resolution, radar needs short pulse.
These divergent needs of long pulses for detection and short pulses for range accuracy in
measurement prevented early radars from simultaneously performing both functions well.

As radar development progressed and emphasis changed from merely getting things to
work, to getting things work in an optimum or near optimum manner, new concepts came into
being that laid foundations of waveform design as an integral part of the radar system
development. During World War II, Woodward indicated that the transmitted pulse could be
designed to be as wide as necessary to meet the energy requirements of the system and that after
the detect ability requirement had been satisfied the range resolution conditions could be met by
coding the transmitted signal with the wide band modulation information. This technique is
referred to as pulse compression.

Both the analog and digital pulse compression techniques have been successfully
exploited for achieving best results. This is done at the cost of introducing side lobes at the
output of matched filter. To overcome this problem we use Costas arrays or Costas Codes as they
produce well controlled side lobes.

1.2 Aim of the project


The main objective of this project is to find the Costas arrays for higher values of ‘N’.
These have good autocorrelation properties which are useful in radars, sonar, seismic,
communications and other signaling applications.

2
1.3 Significance and applications
The significance of the project comes from the fact that the Costas arrays have near ideal
“thumbtack ambiguity” function. They have well-controlled side lobe level and sharp main lobe
i.e., the side lobe level is 1/N times of the main lobe level, where, ‘N’ is the length of the
sequence. Thus, as the value of ‘N’ increases, the side lobe level decreases resulting in good
autocorrelation function.

Thus, there is a need to find Costas arrays for higher values of ‘N’. For a particular value
of N, there are N! possible sequences of length N. From these N! combinations, only a few
satisfy the Costas property. Till now all possible Costas arrays up to length, N = 26 have been
found. We need to find the Costas arrays for N>26.

These Costas arrays are used not only for sonar applications but also for radar
applications. These are mainly used for pulse compression in radar applications.

1.4 Organization of the work


This project is mainly organized into five chapters.
Chapter 1 deals with the introduction of the project presenting the aim and significance
of the project. The applications are also cited in the same chapter.

Chapter 2 introduces the concepts related to radar and existing pulse compression
techniques. It also discusses the limitations of these techniques.

Chapter 3 deals with the introduction to Costas arrays and their properties. The different
construction methods used for obtaining Costas arrays along with few examples are also
presented in this chapter.

Chapter 4 presents results obtained through various construction methods for length,
N>26. Scope for the future work is also proposed.

3
CHAPTER 2
FUNDAMENTALS OF RADAR AND PULSE
COMPRESSION TECHNIQUES

4
2.1 Introduction
RADAR (Radio Detection And Ranging) is an electromagnetic system for the detection
and location of reflecting objects such as aircraft, ships, spacecraft, vehicles, people and the
natural environment. It operates by radiating energy into space and detecting the echo signal
reflected from an object or target. The reflected energy that is returned to the radar not only
indicates the presence of a target but by comparing the received echo signal with the signal that
was transmitted, its location can be determined along with other target-related information.
Radar can perform its function at long or short distances and under conditions impervious to
optical and infrared sensors. It can operate in darkness, haze, fog, rain and snow. Its ability to
measure distance with high accuracy and in all weather conditions is one of its most important
attributes.
The basic principle of radar is illustrated in Figure 2.1

Figure 2.1 Basic Radar

A transmitter generates an electromagnetic signal that is radiated into space by an


antenna. A portion of the transmitted energy is intercepted by the target and reradiated in many
directions. The reradiating energy directed back towards the radar is collected by the radar
antenna, which delivers it to the receiver. There, it is processed to detect the presence of target
and determine its parameters.

5
Thus there are two tasks performed by the radar.
(i)Target detection: It is accomplished by transmitting an electromagnetic signal and detecting
the presence of target by analyzing the reflected wave.
(ii)Parameter estimation: If the reflected signal is of adequate strength then it is further
analyzed to determine target distance, velocity, shape of target, number of targets and so on. This
analysis is referred to as parameter estimation.

Target detection and parameter estimation are difficult practical problems if the target is
small and at a large distance. The real test of radar capability comes when detection and
parameter estimation must be performed for several targets simultaneously. This problem is
called target resolution. Target detection refers to the task of recognizing a return signal in the
system noise. Similarly, measurement precision concerns the effect of noise and it describes the
uncertainty that the interfering noise causes in the value of the parameter. In contrast, resolution
depends on the interference from other targets.

2.2 Resolution
Resolution is the ability to separately detect multiple targets. Targets are resolved in
four dimensions although not necessarily by all radars: Range, Azimuth, Elevation and Doppler
shift.
2.2.1 Types of resolution
a) Range Resolution
It is the ability to separate multiple targets at the same angular positions but at different
ranges. Range resolution is the function of radar’s radio frequency signal bandwidth with wide
bandwidths allowing targets closely spaced in range being resolved. To be resolved in range, the
basic criteria are that the targets must be separated by at least the range equivalent of width of the
processed echo pulse.
∆ R = cτ / 2
Where ∆ R = range resolution (in meters)
c = velocity of propagation (in meters/sec)
τ = processed target’s pulse width (in sec)

6
Without pulse compression, the processed pulse width is approximately equal to that of
the transmitted pulse. With pulse compression, the processed pulse is narrower than that of the
transmitted pulse. The effective bandwidth of any pulse is approximately the reciprocal of the
processed pulse width. Thus range resolution can also be described in bandwidth terms.
The transmitted matched bandwidth (B) = 1/τ
Hence, ∆ R = c/ (2B) (in meters)
The degree of range resolution depends upon certain parameters like
a) Width of transmitted pulse.
b) Types and sizes of targets.
c) Efficiency of target and indicator.
For small range resolution, we require large bandwidth or shorter pulse width.

b) Angular and cross range resolution


Cross-range is the linear dimension perpendicular to the axis of the antenna specified as
azimuth (horizontal) or elevation (vertical cross-range). Cross-range resolution gives the radar
ability to separate multiple targets at same range.

Resolution in cross range is determined by the antenna’s effective beam width i.e., the
narrow beam antennas resolve more closely spaced targets. The criterion for cross-range
resolution is that the targets at the same range separated by more than the antenna beam width
are resolved and those separated by less than the antenna beam width are not resolved.
Cross-range resolution ∆ X ≈ Rθ (in meters)
Where ∆ X = cross-range resolution (in meters)
R = target range (in meters)
θ = antenna beam width (in radians)
The following relation relates the beam width of the antenna to its length and the wavelength of
the electromagnetic wave.
θ = λ / De
Where λ = signal’s wavelength
De = effective length of the antenna in the direction in which beam

7
width is being calculated. (Azimuth/elevation)
The effective size of the antenna is about 0.7times its actual size.

c) Enhanced cross-range resolution


This depends upon sequentially viewing targets from several different locations with the
antenna. This concept is applied in Synthetic Aperture Radar (SAR) and Inverse Synthetic
Aperture Radar (ISAR). SAR techniques are well suited for situation where the radar moves
rapidly and the target is stationary such as air-borne radar viewing the target on the ground.
ISAR technique is applied where the radar is stationary and the targets move rapidly fast. ISAR
is sometimes used to analyze formation of aircraft from the ground-based or shipboard radars to
determine how many aircrafts are in the formation.

d) Doppler Resolution
Doppler resolution is ability to separate targets at the same range, azimuth and elevation
but moving at different radial velocities. It is particularly useful in identifying the targets by
separating the net target motion from the spectral components caused by rotating pieces of the
targets.

The criterion for Doppler resolution is that the Doppler frequencies must differ by at least
one cycle over the time of observation. Doppler resolution thus is the function of time over
which the signal is gathered for processing.

2.2.2 Range resolution with short pulse radar


High range resolution (∆ R small) might be obtained with the short pulse radar and is
important for many radar applications that are listed below.
a) Range resolution: It is easier to separate or resolve multiple targets in range than in angle.
b) Range accuracy: If radar has good range resolution then it has good range accuracy.
c) Clutter reduction: Increased target-to-clutter ratio is obtained by reducing the amount of
distributed clutter with which the target echo signal must compete.

8
d) Inter-clutter visibility: With some types of patchy land and sea clutter, high-resolution radar
can detect moving targets even in the areas of clutter patches.
e) Glint reduction: Angle and range tracking errors introduced by a complex target with multiple
scatterers are reduced when high range resolution radar is employed to isolate or resolve the
individual scatterers that make up the targets.
f)Multi-path resolution: Range resolution permits the separation of the desired target echo from
the echoes that arrive at the radar via scattering from longer propagation paths or multi-paths.
g) Multi-path height finding: When multi-path due to scattering of radar energy from earth’s
surface can be separated from the direct path signal by high range resolution radar, target
height can be determined without a direct measurement of elevation angle.
h) Doppler tolerance: With a short pulse waveform, the Doppler-frequency shift from a moving
target will be small compared to the receiver bandwidth. Hence only a single matched filter is
needed for detection rather than a bank of matched filters tuned to different Doppler shifts.
i) ECCM: Short pulse radar can negate the effects of certain electronic counter measures such as
range-gate stealers, repeater jammers etc. The wide bandwidth of the short pulse radar can, in
principle, provide some reduction in the effects of broadband noise jamming and reduce the
effectiveness of some electronic warfare receivers and their associated signal processing.

2.2.3 Limitations of the short pulse radar


a) Since the spectral bandwidth of a pulse is inversely proportional to its width, the bandwidth of
a short pulse is large. Large bandwidth can increase system complexity, make greater demands
on the signal processing and increase the likelihood of interference to and from the users of the
electromagnetic system.
b) A serious limitation to achieving long ranges with short duration pulses is that a high peak
power is required for large pulse energy. The transmission line of high peak power radar can be
subject to voltage breakdown or discharge especially at higher frequencies where wave-guide
dimensions are small. If peak power is limited by breakdown, the pulse might not have
sufficient energy.

9
2.3 Pulse compression
Pulse compression can be defined as a technique that allows radar to utilize a long pulse
to achieve large radiated energy but simultaneously obtaining range resolution of short pulse.
Theoretically, in pulse compression, a wideband modulated pulse is transmitted and at the time
of reception, the received pulse is compressed to achieve a short pulse which results in high
range resolution.

It is the method of breaking the unwanted constraint between range and resolution. Pulse
compression radar transmits a modulated pulse, which is both long having good range
characteristics and wideband having good range resolution criterion. The pulse compression
becomes attractive when peak power required by short pulse radar can’t be achieved with
practical transmitter. Since the spectral bandwidth of a pulse is inversely proportional to its
width, the bandwidth of a short pulse is large.

A long pulse can have the same spectral characteristics as a short pulse if the long pulse
is modulated in frequency or phase. The received echo signal is processed in a matched filter that
compresses long pulse to a width of 1/B where ‘B’ is the spectral bandwidth. Thus we achieve a
long pulse with large bandwidth. This process is called pulse compression.

2.3.1 Necessity
For border or field area surveillance, a portable radar system with reasonable range is
required. These characteristics are achieved only by employing pulse compression technique
because in pulse compression, we need low power for transmission, which reduces the size of the
equipment (e.g.: BFSR used by Indian Army).

2.3.2 Advantage
a) More efficient use of average power available at the radar transmitter and in some cases,
avoidance of peak power problems in the high power section of the radar transmitter.
b) Transmission of long pulse using average power capability of the system.
c) The average power may be increased without increasing PRF. Hence it decreases range

10
ambiguity.
d) Reduction of vulnerability to certain types of interfering signals that don’t have same
properties as that of the coded waveform.
e) Increased system resolving capability both in range and velocity. In case of range resolution,
the generation of extremely fast rise time and high peak power signals is bypassed using pulse
compression techniques.
f)Good range accuracy.

2.3.3 Limitation
The pulse compression has the range side lobes that might be mistaken as true signal and
also can miss the weak echo signal from target.

2.4 Types of pulse compression techniques


Chart 2.1 shows the classification of pulse compression techniques.

Pulse Compression Techniques

Analog Techniques Digital Techniques

Linear FM Non-Linear FM Phase Coding Discrete


Frequency Coding

Bi-phase Costas
Codes

Poly-phase Stepped
Frequency
pulses

Chart 2.1 Classification of pulse compression techniques

11
2.5 FM Techniques
If a long duration pulse is frequency modulated, its spectrum can have a wider bandwidth
than if no FM were present. Since increasing bandwidth corresponds to waveforms with
decreasing effective duration, the potential exists for a long duration, large bandwidth and pulse
to be converted to a short duration “effective” pulse. In effect, we seek to “squeeze” the long
pulse into a short pulse. If energy can be conserved, we can even expect the shorter
“compressed” pulse to increase in peak amplitude compared to its amplitude as a long pulse.

These effects can all be achieved by a signal processing technique called pulse
compression. The actual signal processor consists of a matched filter that is often followed by a
second filter that minimizes certain undesired responses from the matched filter.

To visualize the process of pulse compression, imagine that a long pulse of duration T
has a linearly varying instantaneous angular frequency ω i(t) with time as shown in figure 2.5a.
At the start of the pulse, the carrier cycles at a rate ω o-(∆ ω /2). In the pulse center, the
frequency is ω o (nominal carrier’s angular frequency). At the pulse end, frequency increases to
ω o+(∆ ω /2). The total frequency deviation over time T is given by ∆ ω (rad/s). This pulse is
applied to a pulse compression filter that has a constant modulus transfer function but a phase
that corresponds to a linearly decreasing envelope delay as shown in figure 2.5b.

We may visualize the low frequencies that enter the filter first as being delayed more than
those that enter later. If the slope (T seconds of delay change over an angular frequency span of
∆ ω ) is a match to the input signal’s FM, all the frequencies can be thought of as emerging at
the same time and “piling up” in the output. The response can be larger in amplitude as shown in
figure 2.5c. However, because the input’s bandwidth is large, these frequencies can “pile up” for
only a short time and the output quickly decreases from the peak in relation to the reciprocal of
bandwidth. The duration of the main response is smaller than T by the factor 1/∆ fT, where ∆ f =
∆ ω /(2Π ) and ∆ƒ Τ is called the time-bandwidth product or the pulse compression ratio of
s(t). Similarly, peak power is larger by a factor ∆ƒ Τ .

12
Outside the region of main response, undesired response occurs for a time duration T on
each side of the main response.

Figure 2.5 FM pulse compression technique


a) A long duration pulse with linear FM
b) The compression filter and its linear delay characteristics
c) The output pulse
Side lobes are unwanted by-products of the pulse compression process. Their form and
amplitudes depend greatly on the type of FM used and whether the modulated pulses s(t)
contains any shaping (tapering of amplitude) across the pulse.

2.5.1 Two principle methods for reduction of side lobes of LFM signals:
a) Method 1: In this method, the output of the pulse compression filter is passed through
compensation or amplitude weighting filter specifically designed to reduce the side lobes at the

13
expense of some loss in signal-to-noise ratio. These filters are sometimes called mismatch
filters because they don’t preserve the performance of the matched filter. The fundamental idea
in side lobe reduction is to choose a mismatch filter transfer function such that the final output
signal spectrum has a taper that leads to a waveform with low side lobes.
b) Method 2: In this method, non-linear frequency modulation is used which offers the advantage
over linear FM of producing low time side lobes using a constant amplitude waveform and a
theoretically loss less matched filter. It doesn’t experience the loss in the signal-to-noise ratio
associated with matched filter used to reduce side lobes in a linear FM pulse compression
system. Constant amplitude envelope allows efficient generation of high power. Non-linear FM
waveforms result in more system complexity than in linear FM.

The pulse compression technique which is categorized as digital pulse compression


technique is mainly divided into phase coding technique and discrete frequency coding
technique.

2.6 Phase coded pulse compression


Changes in phase can also be used to increase the signal bandwidth of long pulse for the
purpose of pulse compression. A long pulse of duration T is divided into N sub pulses each of
width τ . An increase in bandwidth is achieved by changing the phase of each sub pulse since
the rate of change of phase with time is frequency.

In multiple target environments it may be significant that the distribution of the time side
lobes of phase coded words is different from that of linear FM pulse compression. The time side
lobes of linear FM are maximum immediately adjacent to the main lobe and decrease with the
distance from the main peak unless some unusual form of tapering is used. This is not generally
true for phase codes. Depending on the class of phase code considered, the side lobes may be
fairly uniform or they may actually exhibit a tendency to be relatively low near the main lobe. A
common form of phase change is binary phase coding.

14
2.6.1 Binary phase coding
In binary phase coding, the phase of each sub pulse is selected to be either 0 or π
radians according to some specified criterion. If the selection of the 0 or π phases is made at
random, the waveform approximates a noise-modulated signal and has a “thumbtack” like
ambiguity function. The output of matched filter will be a compressed pulse of width τ and will
have peak N times greater than that of a long pulse. The pulse compression ratio equals the
number of sub pulses i.e. N = T/τ ≈ Β Τ , where, the bandwidth B ≈ 1/τ .

The matched filter output extends for a time T on either side of peak response. The
unwanted but unavoidable portions of the output waveform other than the compressed pulse are
known as time side lobes.

2.6.2 Types of binary phase codes


a) Barker Codes
Barker codes are originally developed for radar applications. This code is a subset of
pseudorandom code with a length of up to 13. They are widely used in radar system because of
its following properties.
i) Low power and relatively high energy.
ii) Sharp autocorrelation function.
iii) Relatively low side lobes.
The property that makes them popular for application in radars is known as the one shot
correlation. Barker codes are the perfect codes because all the side lobes in these codes are either
0 or ± 1. Hence, we can conclude that here all the side lobes are very low. Therefore, a high
discrimination can be obtained.
The Barker code of length N = 13 is as shown in figure 2.6(a)

Figure 2.6(a) Barker code of length 13


The (+) indicates 0 phase and (-) indicates π radian phase. Its autocorrelation function,

15
which is the output of matched filter, is as shown below in figure 2.6(b).

Figure 2.6(b) Autocorrelation function for Barker code

There are 6 equal time side lobes to either side of the peak, each at a level 22.3dB below
the peak. The side lobe level of the Barker codes is 1/N2 that of the peak signal.

Figure 2.6(c) Tapped delay line filter

In figure 2.6(c), a schematic of tapped delay line, which generates Barker code of length
13 when the input is from left, is shown. The same tapped delay line filter can be used as the
receiver matched filter if the received signal is applied from the right. The Barker codes are
listed in Table (1) below.

16
S.No. Code length Code elements Side lobe level in dB
1 2 +-,++ -6.0
2 3 ++- -9.5
3 4 ++-+,+++- -12.0
4 5 +++-+ -14.0
5 7 +++--+- -16.9
6 11 +++---+--+- -20.8
13 +++++--++-+- -22.3
7
+

Table (1) Barker Codes

There are none greater than length 13. Hence, the greatest pulse compression ratio for a
Barker code is 13. This is a relatively low value for pulse compression applications.

b) Linear recursive Sequences (or) Shift Register Codes


When a pulse compression ratio larger than 13 is required, some other criterion for
selecting the 0 or π phases is needed. One method for obtaining a set of random like phase
codes is to employ a shift register with feedback and modulo-2 addition that generates a
pseudorandom sequence of zeros and ones of length 2n-1 where, n is the number of stages in the
shift register. An n-stage shift register consists of ‘n’ consecutive two state memory units
controlled by a single clock. The two states considered here are 0 and 1. At each clock pulse, the
state of each stage is shifted to the next stage in one line. Figure 2.7 shows a seven-stage shift
register used to generate a pseudorandom sequence of zeros and ones of length 127. In this
particular case, feedback is obtained by combining the output of the 6th and 7th stages in a

17
modulo-2 adder.

Figure 2.6(d) Modulo-2 adder

An n-stage binary device has a total of 2n different possible states. The shift register
cannot however employ the state in which all stages are zero since it would produce all zeros
thereafter. Thus an n-stage shift register can generate a binary sequence of length no greater than
2n-1 before repeating. The actual sequence obtained depends on both the feedback connection
and the initial loading of the shift register.

When the output sequence of an n-stage shift register is of period 2n-1, it is called a
maximal length sequence or m-sequence. This type of waveform is also known as linear
recursive sequence (LRS), pseudorandom sequence, pseudo noise (PN) sequence or binary shift
register sequence. They are linear since they obey the superposition theorem.

When applied to phase coded pulse compression, the zeros correspond to zero phase of
the sub pulse and the ones correspond to π radians phase. There can be more than one maximal
length sequence depending on the feedback connection. With the proper code, the highest
(power) side lobe can be about 1/2N that of the maximum compressed pulse power. A 24 dB side
lobe can be available with a sequence of length 127. Not all maximal length codes however have
these low values of peak side lobe.

It is generally said that the more usual maximum side lobe of a “typical” maximal length
shift register sequence is approximately 1/N that of the peak response. As mentioned above, a
completely random selection of the phases results in a side lobe approximately 2/N below the
peak. The typical maximal length shift register sequence might have a side lobe of 1/N and the
best of the maximal length sequences might approach 1/2N. By comparison, the Barker codes

18
have a peak side lobe 1/N2 below the peak.

The shift register codes fit several of the tests for randomness. They are called
pseudorandom since they may appear to be random but they are actually deterministic once the
shift register’s length and feedback connections are known.

c) Code concatenation
The different approach to achieve longer codes with higher compression ratio is the
process of code concatenation or combination. In this approach, one utilizes whatever codes are
available and then codes the transmit pulse at two or more levels so that each segment of code is
again coded with another phase code. This has been called Barker squad code or combined
barker coding when utilizes with Barker codes.

Hollis calculated the properties of such codes. He combined a Barker code of length 4
with a code of length 13 in two ways where each bit of 13-bit word was coded into 4 bits. Then
the zero Doppler autocorrelation function of the waveform yielded 4 side peaks of amplitude 13
located at range offsets of ± 1, ± 3 segments and 12 peaks of amplitude 4. When each bit of the
4-bit code was coded into 13 bits, the same number of side peaks of amplitude greater than unity
appeared but the location of the side peaks of amplitude 13 occurred at offsets ± 13 and ± 39
sequences.

The main peak of the autocorrelation function in both the cases was 52. The first
combination may be useful if the expected interference is considerably separated in range from
target.

d) Other well-known binary sequences


Computer search has shown that the longest code with side lobe level of 2 is of length 28,
the longest code with side lobe level 3 is 51 and the longest codes for levels 4 and 5 are 69 and
88 respectively. The side lobe levels are almost 25 dB for code lengths varying from 51 to 88.

19
These side lobe levels are better than the 1/2N values of the best maximal length sequences.

2.7 Non-binary pulse compression codes


a) Ternary codes
Ternary code is another type of code that can be used to represent information and data.
However, ternary code uses 3 digits for representation of data. Therefore, ternary code may also
be called as three-alphabet code. This code consists of 1, 0 and –1.
b) Quin-quenary codes
This code can also be used to represent data. It uses five arguments to represent
information. Therefore, this code can also be called as five-alphabet code. It generally uses ± 2,
± 1 and 0.

c) Multi-level code
This code is unrestricted code i.e., the alphabets are not only restricted to integers but also
non-integers.
Example: 1, 1.2, 0, 7.8, -4, 1, -9.8

d) Huffman codes
So far, every pulse compression waveform discussed is of constant amplitude across the
uncompressed pulse. The signal bandwidth is increased by phase or frequency modulation rather
than by amplitude modulation. The Huffman codes on the other hand consist of elements that
vary in amplitude as well as in phase. When the Doppler shift is zero, they produce
autocorrelation function with no side lobes on time axis except for a single unavoidable side lobe
at both ends of the compressed waveform. The level of these two end side lobes is a design trade
off.

In one example, a Huffman code of length 64 with no Doppler shift has a side lobe at
each end that is 56 dB below the peak. As with other methods for obtaining zero or low side
lobes, the volume under the ambiguity diagram must remain constant which means that higher
side lobes will appear elsewhere in the Doppler domain. The side lobes also degrade if the

20
tolerance in the amplitude and phase are not maintained sufficiently high.

e) Complementary codes
It is possible to find pairs of equal length phase coded pulse in which the side lobe of the
autocorrelation function of one is the negative of the other. If the autocorrelation functions from
the output of the matched filters are added, the algebraic sum of the side lobes will be zero and
main response will be (2N) where, N is the number of elements in each of the two codes.

These are called complementary codes or Golay codes after the person who first reported
their existence and described how to construct them. Theoretically, there are no side lobes on the
time axis when complementary codes are employed. Complementary codes can also be obtained
with either binary or poly phase sequences.

There are two problems in using complementary codes. They are listed below:
1) The two codes have to be transmitted on two separate pulses, detected separately and then
subtracted. Any delay occurring during this time between two pulses can result in
incomplete correlation of the side lobes transmitting the two codes simultaneously at two
different frequencies. Due to this, the target response can vary with frequency.
2) The side lobes are not all zero after cancellation when there is a Doppler frequency shift
and thus the ambiguity diagram will constrain other regions with high side lobes. Due to
this, there might be serious practical difficulties.

f) Poly phase codes


The phases of the sub pulses in phase coded pulse compression need not be restricted to
the two levels of 0 and π . When other than the binary phases of 0 or π are used, the coded
pulses are called poly phase codes. They produce lower side lobe levels than the binary phase
codes and are tolerant to large Doppler frequency shifts but appear to be suitable for detection of
large targets with aircraft velocity. An example is the Frank poly phase code.

B.Lewis and F.Kretschmer proposed the variants of Frank poly phase codes that are

21
called as P-codes. They devised four P-codes that they claimed to be more tolerant than the
Frank code.
A Frank code can be defined by an M x M matrix as shown below:

The numbers in the matrix are each multiplied by a phase equal to 2π / M radians (or
360/M degrees). The poly phase code starts at the upper left hand corner of the matrix and a
sequence of length M2 is obtained. The pulse compression ratio is M2 = L, the total number of
sub pulses.

Frank conjectured that for large L, the highest side lobe of a poly phase code relative to
the peak of the compressed pulse is π 2L ≈ 10 * pulse compression ratio. In the above example
with L = 25, the peak side lobe is 23.9 dB. Since the rate of change of phase is a frequency,
examining the matrix indicates that the frequencies of the Frank code change linearly with time
in a discrete fashion. The Frank codes can be thought of as approximating a stepped linear FM
waveform.

2.8 Conclusion
With the advent of pulse compression technology, the radar system and their application
in military and non-military field have undergone a sea change. The trade off between signal
transmitted and range resolution was solved and that too without encountering excessively high
peak powers which could cause electrical breakdowns. Both, the analog and digital technologies
have been successfully exploited to achieve best results.

Range resolution with low probability of intercept can be achieved by employing digital
phase codes of greater length having good autocorrelation and cross correlation properties,

22
synthesis of which is a non linear multivariable optimization problem. The good auto correlation
can also be achieved by selecting the appropriate order of frequency coding which is explained
in the next chapter.

CHAPTER 3
INTRODUCTION TO COSTAS ARRAYS AND
THEIR CONSTRUCTION METHODS

23
3.1 Introduction
In the development of radar, multiple target resolution has turned out to be one of the
most difficult problems to be solved. Pulse compression has solved the problem of resolving the
closely spaced target of approximately some cross-section at the cost of introducing side-lobes at
the output of matched filter. As far as radar pulse compression is concerned, the optimal codes
for the radar signals are the ones whose peak side-lobes of the autocorrelation function are
minimum for a given code-length. Therefore, huge attention is only paid to the autocorrelation
function for designing codes.

Contributions of J.P.Costas in the design of frequency hop codes known as Costas codes
or Costas arrays or Costas sequence is appreciable. These produce well-controlled side-lobes in
delay-Doppler plane and have near ideal “thumbtack ambiguity function”.

These Costas codes come under the discrete frequency codes. The other type of discrete
frequency codes are Stepped frequency codes. They are as shown in the below figures.

Figure 3.1 Discrete frequency codes for N = 10

24
(a) Stepped LFM
(b) Costas code

The Costas arrays are also a type of Stepped frequency codes but the only difference is
that in Costas arrays, the frequencies are placed in random fashion. A Costas array is an N x N
array of dots and blanks with exactly one dot in each row and column and with distinct vector
differences between all pairs of dots. J.P.Costas used the difference triangle method to find
whether a given sequence is a Costas sequence or not. The procedure to check for Costas array
using difference triangle method is discussed below.

Order the complete set of integers from 1 to N such that the difference triangle formed
from the ordered sequence shall have no repeated terms in any row. Form the first row by taking
differences between adjacent numbers. All differences in this row must be unique. Form the
second row by taking differences between next adjacent terms. This row must also be free of
repeated values and so forth. A simple example of this process is shown in Table (2) for N = 10.

Table (2) Difference triangle for N = 10

3.2 Properties of Costas arrays


1) These produce well-controlled side-lobes. The side lobe level is inversely proportional to 1/N

25
i.e., as the value of N (length of the sequence) increases, the side-lobe level decreases.
2) The pulse compression ratio is N2. Thus, as the value of ‘N’ increases, the pulse width
decreases resulting in good range resolution.
3) It has near ideal “thumbtack ambiguity” function as shown in figure 3.2.

Figure 3.2 Ambiguity function

4) An important property of Costas arrays is that they come in sets of four or eight. This is
apparent when one considers that a set of eight Costas arrays can be constructed from a single
Costas array:
i) Reversing the order of the rows of a Costas array produces another Costas array,
ii) Reversing the order of the columns of a Costas array produces another Costas array,
iii) Reversing the orders of both the rows and columns of a Costas array produces another Costas
array and
iv) Transposing a Costas array provides a basis for another four Costas arrays.

If a Costas array is symmetrical about the main diagonal or anti diagonal then the
transpose will be a duplicate of one of the other cases, and this Costas array will be part of a set
of four, not eight.

26
3.3 History of Costas arrays
Costas arrays were mainly developed for sonar applications but now-a-days they are also
used in radar applications. Radar and sonar signals are used to determine both the distance (also
called range) of a target from the observer and the velocity (also called range rate) at which the
target is either approaching or receding from the observer. The time difference between emission
and reception provides the distance of the target from the device while the frequency difference
between the two gives an indication of the speed of the target. The range is proportional to the
round-trip delay time (or time shift) of the signal and the velocity is proportional to the Doppler
(or frequency shift) of the signal.[6]

In a frequency-hopping radar or sonar system, the signal consists of one or more


frequencies being chosen from a set {f1, f2… fm} of available frequencies for transmission at each
of a set {t1, t2… tn} of consecutive time intervals. For modeling purposes, it is reasonable to
consider the situation in which m = n and where a different one of n equally spaced frequencies
{f1, f2… fn} is transmitted during each of the n equal duration time intervals {t1, t2… tn}. Such a
signal is conveniently represented by an n X n permutation matrix ‘A’ where the n rows
correspond to the n frequencies, the n columns correspond to the n time intervals and the entry
aij equals 1 if and only frequency fi is transmitted in time interval tj otherwise aij = 0 and thus
resulting in a frequency-hop pattern of Costas arrays.

When this signal is reflected from the target and received back by the observer, it is
shifted in both time and frequency and from the amounts of these shifts, both range and velocity
are determined. The observer determines the amounts of these shifts by comparing all shifts (in
both time and frequency) of a replica of the transmitted signal with the actual received signal and
noting for which combination of time shift and frequency shift the coincidence is greatest. This
may be thought of as counting the number of coincidences between 1s in the matrix A = (aij) with
1s in a shifted version A* of A, in which all entries have been shifted r units to the right ( r is
negative if there is a shift to the left), and s units upward (s is negative if the shift is downward).

27
The number of such coincidences, C(r, s), is the (un normalized) autocorrelation between A and
A*, and clearly satisfies the following conditions.
C (0, 0) = n
C(r, s) = 0, if │r │≥ n or if │s│ ≥ n.
0 ≤ C(r, s) < n except when r = s = 0.
This conforms to the assumption that the signal is zero outside the intervals f1 ≤ f ≤ fn and
t1 ≤ t ≤ tn .If the sequence of frequencies is to be repeated periodically in time, a singly periodic
correlation function can be defined accordingly. In this context, periodicity in frequency does not
appear to be a useful notion. In the real world, the returning signal is always noisy. The two-
dimensional autocorrelation function C(r, s), called the ambiguity function in the radar and sonar
literature and should be thought of as the total “coincidence” between the actual returning noisy
signal and the shift of the ideal transmitted signal by r units in time and s units in frequency. It is
useful to think of the signal matrix A = (aij) as a two-dimensional template of n2 cells, which is
opaque at the n2 - n cells where aij = 0, and transparent at the n cells where aij = 1. The total signal
energy behind these windows is summed (via a double integral in time and frequency) to give the
value of C(r, s) when the template is shifted r units on the time axis and s units on the frequency
axis.[6]

Among the 2n2 matrices of 0s and 1s of order n, there are only n! Permutation matrices
and some of these are better than others as signal patterns for radar and sonar. For example, the
n X n identity matrix In can be shifted one unit up and one unit left, and will then produce n-1
coincidences with the original matrix. For large values of n and a noisy environment, the signal
pattern In would be almost guaranteed to produce spurious targets, shifted an equal number of
units in both time and frequency from the real target. At a minimum, there is a shift of A = (aij)
which will make any of the ‘n’ 1s land on any of the ‘n – 1’ remaining 1s, so we know that
min all “codes” max (r,s)≠ (0,0) C( r, s) ≥1.
Where C(r, s) is the ideal ambiguity function of the permutation matrix itself. This led J.P.Costas
to look for those n X n permutation matrices for which
max (r,s)≠ (0,0) C( r, s) =1.

28
as the best possible case. All permutation matrices which satisfy the above condition have been
called either constellations or “Costas arrays”. It is conjectured that these arrays exist for all
positive integers n.

3.4 Difficulty in finding Costas arrays


The definition of a Costas array as a permutation matrix with special restrictions does not
lead to a simple method of finding them because the Costas condition is not easily posed in a
clearly simple way such as a simple set of constraint equations. The only known way to obtain
all Costas arrays for a given order is an exhaustive search. The number of permutations of order
N is N! , while the number of Costas arrays of order N increases to a maximum of 21,104 for
N = 16 after which the number drops rapidly. Exhaustive search, such as sequential generation
of all N! permutation matrices and examining the check matrix to determine which have the
Costas property, is prohibitively slow for large N.

Using the difference triangle method, all possible Costas arrays up to length, N = 12 have
been successfully found. As ‘N’ increases, the complexity increases. Thus, different construction
algorithms like Welch, Lempel, Taylor and Golomb were proposed to find Costas arrays for
greater values of ‘N’. These algorithms are discussed in the next section.

3.5 Construction methods of Costas arrays


3.5.1 Systematic methods of construction
The finite field with q elements denoted by GF(q) exists when and only when q is a
power of a prime. Detailed proofs (in order of increasing complexity) that the Welch, Lempel
and Golomb construction methods produce Costas arrays are contained in next topics. These
proofs depend on the arithmetic of finite fields and particularly on two properties of all primitive
elements in finite fields. The element α in GF(q) is called primitive if the successive powers of
α (i.e.,α1, α2,……,αq-1 = 1) run through all the nonzero elements of GF(q).

29
For primitive α, the two essential facts are as follows:
1) For every nonzero element x in GF(q) there is an integer i such that α i = x.
2) α i = α k in GF(q) if and only if i ≡ k(mod q - 1).

3.5.2 The Welch construction


For every prime p > 2, the Welch construction yields an N x N Costas array W 1 with N =
p - 1 and a Costas array W2 with N = p - 2. For certain primes, it also yields a Costas array W3
with N = p - 3.
W₁: N = p-1
i(row) = 1,2,3,……p-1
j(column) = 0,1,2,3,……p-2
The N x N matrix contains a dot at position (i,j) if and only i = αj(mod p).
W₂: N = p-2
It is obtained by deleting a dot at (1,0) from W₁ along with top row and left column.
W3: N = p-3
This works only when 2 is primitive in GF(p). Using α = 2, W₁ has dots at both (1,0) and
(2,l). W3 is the result of deleting these two dots along with the two top rows and the two left
columns.

3.5.2(a) Matlab Code for Welch1


function out = welch1(p,a,c) % welch1(p,a,c) generates all W1 Welch array
sequences. Generates all W1 Welch Costas array
sequences from a prime p, with optional primitive
elements a (1 = all), optional circular shift c. If c is
not specified then all circular shifts are generated.
if p= =2 % if p is 2 output 1
arrays=1;
elseif ~isprime(p)

30
error('not a prime number'); % error if 'p' entered is not a prime
else
if (nargin > 1)&&(all(a~=1))
pes = primelem(p);
if IsNotPrimitive(a,pes) % error if a's entered not primitive
error([num2str(a) ' not all primitive in GF(' num2str(p) '). Pick a from ' num2str(pes) '.']);
end
end
if (nargin = = 2)
c = 0; % assume circular shift c = 0 if not entered
elseif (nargin == 1)
a = primelem(p); % take all primitive elements if not specified
c = 0; % c must take value 0 in this case
end
if a= =1
a = primelem(p); % if a=1 include
end % all primitives
arrays=GenerateFromPrimitives(a,p);
if c~=0 % circular shift arrays as required
arrays=CircularShiftArrays(c,arrays);
end
end
if nargin < 3
arrays=minimal(circshifts(dsyms(arrays))); % generate all possible circular shifts
end
out=costas(arrays); % output sorted Costas arrays
function out=IsNotPrimitive(a,pes) % check if a is primitive
out=~all(ismember(a,pes));
function arrays=GenerateFromPrimitives(a,p) % generate the W1 arrays from the primitive
elements

31
arrays=zeros(length(a), p-1); % allocate space for the arrays
arrays(:,1)=1; % all arrays begin with a 1
for j=1:length(a) % loop through for each primitive element
pe=a(j); % set current primitive element
for i=1:p-2 % determine each element from the last
arrays(j,i+1)=mod(pe*arrays(j,i),p);
end
end
function arrays=CircularShiftArrays(c,arrays) % circular shift the arrays by c elements
for k=1:c
arrays=[arrays(:,2:end) arrays(:,1)];
end
An example of Costas array using W₁ with N = 42 is shown in figure 3.5.2.

32
Figure 3.5.2 W1 with p = 43, N = 42
3.5.3 The Lempel construction
L2: N = p-2
i(row) = 1,2,3,……p-2
j(column) = 1,2,3,……p-2
The N x N matrix contains a dot at position (i,j) if and only (αi + αj ) mod p = 1.
L3: N = p-3

33
This works only when 2 is primitive in GF(p) where p is an odd prime. Using α = 2-1 = ½ will
mean that α1 + α1 = 1 and hence that dot at (1,1) can be deleted from L2 along with the top row
and the left column.
An example of Costas array using L2 with N = 25 is shown in figure 3.5.3.

Figure 3.5.3 L2 with p = 27, N = 25


3.5.4 The Golomb construction
G2: N = p-2
i(row) = 1,2,3,…….p-2
j(column) = 1,2,3,…..p-2
A dot is placed at the position (i,j) if and only if (αi + βj ) mod p =1.
G3: N = p-3

34
If α + β = 1, then there is a dot at position (1,1) which can be deleted from G2 along with
the top row and left column.
G4: N = p-4
This works only when p = 2k and α + β = 1 in the field GF(p). Here, the basic arithmetic is
modulo 2 so that α + β = 1 implies α2 + β2 = 1. Then the dots at (1,l) and (2,2) can both be
deleted from G2 along with the two top rows and the two left columns.
An example of Costas array using G3 with N = 24 is shown in figure 3.5.4.

Figure 3.5.4 G3 with p = 27, N = 24

3.5.4(a) Golomb variant


G*4: N = p-4
This works only when the primitive elements satisfy α + β =1 and α2 + β-1 = 1 in GF(p).
Since -1 = p-2 in the arithmetic of logarithms, there will be deletable dot at (2,p-2) after
deleting the dot at (1,1) from G2.
G*5: N = p-5

35
This construction always follows from G*4. When α + β =1 and α2 + β-1 = 1 then necessarily
also α-1 + β2 = 1 in GF(p). Thus, after (1,1) and (2,-1) are deleted along with their respective rows
and columns, there will be another deletable dot at (-1,2).

3.5.5 The Taylor construction


3.5.5(a) Taylor variant to Lempel
T4: N = p-4
This works only when the primitive, α in GF(p) satisfies α2 + α1 = 1. Then the dots at (1,2)
and (2,1) can both be deleted simultaneously from L2 along with the two top rows and the
two left columns.

3.5.5(b) Taylor variant to Golomb


T1: N = p-1
Add a corner dot at one of (0,0) or (0,p-1) or (p-1,0) or (p-1,p-1). This is possible only when
p ≠ 2k and the conditions at one of the corners do not prevent it.
T0: N = p
Add two corner dots at (0,0) and (p-1,p-1) or (0,p-1) and (p-1,0). This is possible only when
p ≡ -1(mod 6) and when not prevented by the condition on the two corners.

3.6 Costas arrays with special properties


3.6.1 Periodic constructions
Repeating the 2 X 2 Costas array in both directions over the entire plane gives a doubly
periodic checkerboard pattern with a Costas array in every 2 X 2 window. For any n > 2,
however, there does not exist a doubly periodic pattern with a Costas array in every n X n
window. The nearest approximation to such a pattern is given by the extended Welch
construction, as follows.

Let p be an odd prime, with primitive root ‘α’. Put a dot in position ( i , j ) iff i = αj(mod
p). The resulting infinite integer matrix of dots and blanks has the property that in every p X p
window there are p dots with no repeated vector difference. (Each p X p window fails to be a

36
Costas array by having one empty row and one row with two dots.) Singly periodic patterns, (p -
1) X ∞, exist which have a Costas array in every (p - 1) X (p - 1) window, where the windows
are only left-right shifted. The only known examples are those arising from the extended Welch
construction, but the possibility of other examples has not been entirely ruled out.

3.6.2. Non-attacking queens


For n > 1 we have found no example of a Costas array consisting of non-attacking
Queens. It would even be interesting to find a Costas array for n > 10 having only one
occurrence of a Queen attack. (Another sort of near miss is shown in Fig.3.6.2 (a))

Figure 3.6.2(a) Nine non attacking queens on 10x10 board


If an application could be satisfied with “semi-Queens,” then we already have an infinite
supply from the Lempel construction. A “semi-Queen” would attack its row and column but only
the diagonal parallel to the main diagonal. Symmetry prohibits two dots in any line parallel to
but off of the main diagonal, because reflection would repeat their difference vector. In the
Lempel construction with 9 any power of odd prime, there is exactly one solution to αx +αx =1, for
each primitive α, and hence exactly one dot on the main diagonal.

With q a power of two, there will be no solution to αx +αx =1 and hence no dot on the main
diagonal. It may be useful to note that we can describe exactly which Queen attacks do occur in
the Lempel construction. Each dot at (i, j) attacks the dot at (j, i), and no others. This is illustrated
in Fig.3.6.2(b) with GF (33).

37
Figure 3.6.2(b)Queen attack in Lempel Construction

3.7 Radar applications of Costas arrays


With emerging technologies for exhaustive search as presented here, sufficient palettes of
moderate order Costas arrays are available to produce effectively ideal autocorrelation
performance with cross-correlation performance similar to that of BPSK codes. These
waveforms are particularly useful in applications where the target Doppler is a significant
portion of the radar bandwidth, such as radars designed to track extra atmospheric objects,
particularly in highly eccentric orbits such as those with ballistic objects such as launch vehicles.
Other radar types that can use FSK waveforms based on Costas arrays include CW or quasi-CW
bistatic radars and high duty cycle radars with broadband chips that are transmitted in an FSK
pattern based on Costas arrays.

3.8 Conclusion
The Table (3) below gives an idea of the applicable methods for constructing a Costas
array for particular value of length, N.

38
Table (3) Table of applicable construction methods up to N = 83

Using the above table, all possible Costas arrays for different values of ‘N’ up to 26 are
found. The number of available Costas arrays for different values up to N = 26 is being listed in
Table (4) as shown below.

39
Table (4) Number of Costas arrays up to N = 26

From the above table, it is clear that all possible Costas arrays up to N = 26 have been
found. The exact number of Costas arrays for N >26 is not known. As the aim of the project is
constructing Costas arrays for N > 26, all the obtained results are presented in the next chapter.

40
CHAPTER 4
RESULTS AND CONCLUSIONS

4.1 Results
Various Costas sequences for N = 27 using different construction methods have been
obtained. They are listed below:

41
 1 3 7 15 2 5 11 23 18 8 17 6 13 27 26 24 20 12 25 22 16 4 9 19 10 21
14
 1 3 19 12 23 5 25 20 10 16 13 27 11 15 2 9 14 8 21 22 18 17 26 6 4
7 24
 1 5 2 22 6 12 3 10 23 25 7 18 13 27 4 21 11 9 24 17 26 20 8 16 19
15 14
 1 8 22 18 16 5 23 17 14 19 12 20 26 25 7 10 11 27 3 15 2 21 13 24 9
4 6
 1 15 2 25 6 24 26 18 16 9 13 4 11 17 14 10 22 21 3 8 19 20 5 27 7
23 12
 1 21 19 26 6 27 15 2 25 16 17 11 23 9 20 5 8 4 10 12 22 3 7 24 14
13 18
 1 25 19 5 4 12 10 16 26 7 18 6 23 27 24 8 21 11 3 22 17 20 13 15 2
9 14
 2 3 14 12 21 5 18 20 26 16 4 27 24 15 1 9 19 8 23 22 25 17 10 6 13
7 11
 2 8 26 22 10 3 11 6 20 4 14 15 18 27 25 19 1 5 17 24 16 21 7 23 13
12 9
 2 17 14 12 7 19 18 20 26 16 4 13 24 1 15 23 5 8 9 22 11 3 10 6 27
21 25
 2 20 3 8 23 7 10 5 1 9 13 22 21 27 18 16 4 25 14 15 17 11 24 6 26
12 19
 2 20 17 8 9 21 10 19 15 23 27 22 7 13 18 16 4 11 14 1 3 25 24 6 26
12 5
 2 24 16 4 14 7 5 13 12 1 6 18 27 3 22 8 19 9 15 11 26 23 25 10 17
20 21
 2 24 16 4 14 21 19 27 12 15 6 18 13 17 22 8 5 23 1 25 26 9 11 10 3
20 7
 2 25 8 13 3 23 12 5 19 20 18 22 14 1 27 4 21 16 26 6 17 24 10 9 11
7 15

42
 3 7 1 22 18 25 17 6 19 20 23 5 13 27 4 15 24 12 2 8 10 9 21 16 14
11 26
 3 9 1 8 13 15 19 4 2 20 11 25 5 17 6 27 14 24 7 10 26 23 22 18 12
21 16
 3 15 6 10 18 8 9 2 13 19 21 26 11 25 12 7 5 27 16 23 22 4 24 20 1
17 14
 3 17 6 19 18 16 22 26 20 27 11 12 5 23 14 2 10 7 9 24 1 4 15 25 21
13 8
 3 19 1 15 12 8 2 20 22 21 26 18 13 25 16 24 7 5 9 10 23 4 11 17 6
27 14
 3 20 27 6 11 25 12 22 21 24 15 13 19 1 26 9 2 23 18 4 17 7 8 5 14
16 10
 3 24 10 26 20 15 13 23 14 1 8 4 22 19 21 2 5 25 9 17 6 7 11 16 27
12 18
 4 3 7 23 25 16 11 12 15 21 26 22 14 1 27 20 9 17 24 6 18 8 2 13 10
19 5
 4 7 24 22 2 25 10 6 21 20 14 5 26 27 3 15 1 12 18 8 17 9 19 16 23
11 13
 4 17 21 9 11 16 25 12 1 7 26 22 14 15 13 20 23 3 24 6 18 8 2 27 10
5 19
 4 21 24 22 2 11 10 6 7 20 14 19 26 13 17 1 15 12 18 8 3 23 5 16 9
25 27
 5 12 26 6 24 25 3 1 14 11 4 16 18 13 7 22 27 23 15 19 10 21 9 8 17
20
 5 13 11 25 20 4 22 24 18 7 6 2 3 23 8 12 21 27 15 26 1 16 9 19 10
17 14
 5 15 11 4 3 25 13 16 22 24 9 23 27 19 10 17 14 12 21 26 6 1 18 2 20
7 8
 5 19 10 13 2 8 18 6 24 17 9 20 27 1 14 22 26 21 15 12 11 16 25 23 7
3 4

43
 5 21 11 18 2 23 19 10 13 24 1 27 3 17 16 25 12 20 22 4 26 15 7 8 14
9 6
 5 25 10 26 2 4 15 22 3 13 7 6 9 23 20 21 27 17 8 1 18 16 12 24 11
19 14
 6 4 9 24 13 21 2 15 3 27 11 10 7 25 26 20 12 19 14 17 23 5 16 18 22
8 1
 6 4 23 24 27 7 2 1 17 13 25 10 21 11 26 20 12 5 14 3 9 19 16 18 22
8 15
 6 9 14 8 7 15 26 4 22 20 12 25 16 17 3 27 1 24 13 10 19 23 2 18 11
21 5
 6 10 23 13 16 1 11 20 15 2 7 26 4 27 9 5 19 25 17 8 24 22 3 21 18
12 14
 6 16 20 12 14 7 1 25 8 17 18 26 11 23 10 24 15 13 3 19 22 27 5 2 9
4 21
 6 16 20 12 14 21 15 11 8 3 18 26 25 9 10 24 1 27 17 5 22 13 19 2 23
4 7
 6 23 14 8 21 1 26 4 22 20 12 11 16 3 17 13 15 24 27 10 5 9 2 18 25
7 19
 6 23 14 8 21 1 26 4 22 20 12 11 16 3 17 13 15 24 27 10 5 9 2 18 25
7 19
 7 4 23 2 19 13 22 5 17 27 1 24 10 9 25 26 18 3 8 11 15 21 14 12 20
16 6
 7 5 18 6 26 12 16 19 14 3 2 23 17 27 20 22 9 21 1 15 11 8 13 24 25
4 10
 7 8 11 18 3 5 2 17 13 19 9 20 6 25 1 10 22 27 16 15 23 21 14 24 12
4 26
 7 12 27 6 15 25 10 1 9 11 17 16 2 13 5 22 26 23 24 19 3 21 14 8 4
20 18
 7 16 15 22 27 17 18 13 5 3 25 12 26 1 9 6 2 19 4 23 11 21 14 20 24
8 10

44
 7 20 3 10 11 9 26 25 1 23 5 8 22 17 13 18 6 15 12 27 19 21 14 4 16
24 2
 7 24 19 26 23 1 6 9 25 15 13 4 18 5 17 2 10 11 20 3 27 21 14 16 8
12 22
 8 7 20 2 18 1 6 26 21 12 14 17 10 19 27 23 9 24 22 16 13 25 3 4 11
15 5
 8 13 21 25 15 4 1 24 9 7 10 2 14 23 5 12 11 27 20 26 22 16 18 19 6
17 3
 8 21 20 2 18 15 6 26 7 12 14 3 10 5 13 9 23 24 22 16 27 11 17 4 25
1 19
 8 23 19 22 27 16 17 9 15 25 3 5 18 1 21 6 10 7 2 13 12 20 14 4 26
24 11
 8 27 7 11 1 4 15 24 23 21 10 2 14 9 19 12 25 13 20 26 22 16 18 5 6
3 17
 9 1 3 17 8 24 6 4 10 7 22 26 11 19 20 16 21 15 27 2 13 12 5 23 18
25 14
 9 12 13 23 7 21 16 24 17 5 1 19 25 27 18 15 14 4 20 6 11 3 10 22 26
8 2
 9 16 2 22 4 17 11 13 14 3 24 12 10 1 7 6 15 19 27 23 18 21 5 20 25
8 26
 9 17 18 2 26 24 27 6 11 1 7 22 5 19 8 21 15 25 20 13 10 12 16 4 3
23 14
 9 21 3 10 26 19 23 18 1 4 13 15 11 25 12 17 16 8 6 24 2 27 7 20 14
5 22
 9 23 18 1 26 20 10 22 4 25 5 8 15 13 14 6 2 21 27 16 3 12 17 19 7
11 24
 9 27 3 24 11 17 1 12 6 4 5 19 15 23 18 25 14 16 21 2 22 13 10 26 8
7 20
 10 1 14 4 7 11 6 16 18 24 20 9 8 5 19 3 25 12 17 26 27 15 22 2 23
21 13

45
 10 4 25 24 13 8 11 15 1 21 9 22 20 27 17 23 2 3 14 19 16 12 26 6 18
5 7
 10 8 24 20 14 7 25 9 4 5 2 6 23 15 26 12 11 17 19 27 18 3 13 22 1
16 21
 10 8 24 20 14 21 11 23 4 19 2 6 9 1 26 12 25 3 5 13 18 17 27 22 15
16 7
 10 15 14 4 21 25 6 16 18 24 20 23 8 19 5 17 11 12 3 26 13 1 22 2 9
7 27
 10 16 1 12 17 21 22 11 19 3 23 26 7 9 6 24 20 27 14 5 15 13 8 2 18
4 25
 10 16 14 5 8 7 17 4 18 23 2 9 26 1 19 13 15 24 21 22 12 25 11 6 27
20 3
 10 16 15 12 3 7 22 25 5 17 9 26 21 23 6 24 20 13 14 19 1 27 8 2 18
4 11
 11 4 18 2 8 27 1 19 14 13 20 24 6 23 21 26 9 17 5 25 22 7 3 12 15
16 10
 11 5 13 20 1 27 23 24 26 8 3 17 9 25 22 15 14 4 7 18 2 19 6 10 16
21 12
 11 7 13 6 10 17 25 22 23 8 19 9 1 15 24 27 4 16 26 20 18 5 21 12 14
3 2
 11 10 4 24 7 23 3 18 21 9 26 16 5 1 15 27 2 25 17 22 19 6 8 12 20
13 14
 11 23 13 27 16 20 26 8 6 21 2 10 1 17 12 4 7 9 5 18 19 24 3 25 22
15 14
 11 24 26 4 14 20 12 13 2 7 10 6 21 1 18 5 3 25 15 9 17 16 27 22 19
23 8
 11 25 22 23 10 12 6 2 8 15 3 16 9 19 14 26 18 7 5 4 13 24 27 17 21
1 20
 11 27 22 18 10 20 5 26 1 23 21 2 3 17 16 7 9 15 12 19 6 24 4 8 13
25 14

46
 12 7 16 10 6 5 2 18 21 4 14 1 22 11 23 3 17 8 26 24 9 13 15 20 27
19 25
 12 9 21 13 19 20 5 8 17 7 22 10 14 3 25 4 27 23 16 18 26 24 6 11 2
1 15
 12 17 10 24 22 8 19 3 7 20 9 16 13 1 2 4 27 26 18 5 23 6 15 25 21
11 14
 12 21 16 10 6 19 2 18 7 4 14 15 22 25 9 17 3 8 26 24 23 27 1 20 13
5 11
 12 23 7 27 5 20 19 8 3 21 22 10 14 17 11 4 13 9 16 18 26 24 6 25 2
15 1
 13 9 26 6 22 16 11 18 19 17 7 10 1 15 24 21 3 5 4 25 2 8 20 12 23
27 14
 13 11 23 16 19 9 17 8 18 12 1 15 3 27 26 5 14 20 21 6 10 25 2 22 24
7 4
 13 17 23 9 24 16 18 12 2 7 10 22 19 15 4 20 21 3 11 6 25 8 1 27 26
5 14
 13 20 6 10 12 9 19 25 14 23 16 8 2 17 7 18 3 15 11 27 26 21 1 4 5
24 22
 13 21 17 19 18 4 11 22 2 12 7 24 1 27 14 6 10 8 9 23 16 5 25 15 20
3 26
 13 21 23 2 22 15 27 26 17 12 25 3 19 5 8 9 20 24 18 16 6 11 7 4 14
1 10
 13 27 26 17 22 4 2 10 12 5 1 24 3 25 14 18 6 21 11 20 23 8 9 15 7
19 16
 14 1 5 16 8 20 26 3 24 23 25 7 4 13 27 18 21 11 9 10 17 12 6 22 2
19 15
 14 1 22 11 17 24 5 18 19 23 21 4 12 3 15 10 2 7 6 8 26 20 16 13 27
9 25
 14 3 10 5 23 16 15 26 1 13 7 12 8 9 17 2 6 21 18 24 22 4 20 11 25
27 19

47
 14 3 15 20 24 4 22 9 16 13 19 21 12 11 25 26 7 5 27 2 23 8 18 10 6
1 17
 14 5 25 24 12 16 18 15 8 3 13 7 20 9 23 6 21 27 17 22 1 4 2 26 10
11 19
 14 5 26 27 1 8 25 6 11 3 21 20 4 15 19 22 10 7 2 12 18 16 24 9 23
17 13
 14 7 18 9 19 24 12 6 3 16 8 4 2 1 15 22 11 20 10 5 17 23 26 13 21
25 27
 14 9 2 15 13 20 17 22 3 11 21 8 24 27 23 6 18 7 26 16 10 12 4 5 19
25 1
 14 9 17 4 16 12 10 27 20 11 1 7 8 5 19 22 21 15 25 6 13 24 26 2 18
3 23
 14 11 18 9 19 12 27 2 13 1 7 16 20 5 25 26 22 21 10 4 6 24 8 3 17
15 23
 14 11 21 25 15 6 23 5 18 26 27 4 2 1 13 16 9 20 7 3 19 8 22 24 10
17 12
 14 11 27 8 4 24 6 5 12 1 23 21 16 3 17 2 7 9 15 26 19 20 10 18 22
13 25
 14 12 18 21 3 22 24 8 17 25 19 5 9 27 4 26 7 2 15 20 11 1 16 13 23
10 6
 14 13 6 3 25 4 9 10 23 19 21 24 16 11 27 18 26 7 22 20 2 8 12 1 15
5 17
 14 13 9 12 20 8 2 11 4 19 17 7 24 1 15 10 21 3 5 18 25 16 22 6 26
23 27
 14 13 20 12 8 6 19 22 17 25 2 27 15 1 5 16 26 9 21 18 3 23 7 24 4
10 11
 14 15 8 16 20 22 9 6 11 3 26 1 13 27 23 12 2 19 7 10 25 5 21 4 24
18 17
 14 15 19 16 8 20 26 17 24 9 11 21 4 27 13 18 7 25 23 10 3 12 6 22 2
5 1

48
 14 15 22 25 3 24 19 18 5 9 7 4 12 17 1 10 2 21 6 8 26 20 16 27 13
23 11
 14 16 10 7 25 6 4 20 11 3 9 23 19 1 24 2 21 26 13 8 17 27 12 15 5
18 22
 14 17 1 20 24 4 22 23 16 27 5 7 12 25 11 26 21 19 13 2 9 8 18 10 6
15 3
 14 17 7 3 13 22 5 23 10 2 1 24 26 27 15 12 19 8 21 25 9 20 6 4 18
11 16
 14 17 10 19 9 16 1 26 15 27 21 12 8 23 3 2 6 7 18 24 22 4 20 25 11
13 5
 14 19 11 24 12 16 18 1 8 17 27 21 20 23 9 6 7 13 3 22 15 4 2 26 10
25 5
 14 19 26 13 15 8 11 6 25 17 7 20 4 1 5 22 10 21 2 12 18 16 24 23 9
3 27
 14 21 10 19 9 4 16 22 25 12 20 24 26 27 13 6 17 8 18 23 11 5 2 15 7
3 1
 14 23 2 1 27 20 3 22 17 25 7 8 24 13 9 6 18 21 26 16 10 12 4 19 5
11 15
 14 23 3 4 16 12 10 13 20 25 15 21 8 19 5 22 7 1 11 6 27 24 26 2 18
17 9
 14 25 13 8 4 24 6 19 12 15 9 7 16 17 3 2 21 23 1 26 5 20 10 18 22
27 11
 14 25 18 23 5 12 13 2 27 15 21 16 20 19 11 26 22 7 10 4 6 24 8 17 3
1 9
 14 27 6 17 11 4 23 10 9 5 7 24 16 25 13 18 26 21 22 20 2 8 12 15 1
19 3
 14 27 23 12 20 8 2 25 4 5 3 21 24 15 1 10 7 17 19 18 11 16 22 6 26
9 13
 15 1 2 11 6 24 26 18 16 23 27 4 25 3 14 10 22 7 17 8 5 20 19 13 21
9 12

49
 15 7 5 26 6 13 1 2 11 16 3 25 9 23 20 19 8 4 10 12 22 17 21 24 14
27 18
 15 7 11 9 10 24 17 6 26 16 21 4 27 1 14 22 18 20 19 5 12 23 3 13 8
25 2
 15 8 22 18 16 19 9 3 14 5 12 20 26 11 21 10 25 13 17 1 2 7 27 24 23
4 6
 15 11 5 19 4 12 10 16 26 21 18 6 9 13 24 8 7 25 17 22 3 20 27 1 2
23 14
 15 17 5 12 9 19 11 20 10 16 27 13 25 1 2 23 14 8 7 22 18 3 26 6 4
21 24
 15 19 2 22 6 12 17 10 9 11 21 18 27 13 4 7 25 23 24 3 26 20 8 16 5
1 14
 16 5 21 1 23 8 9 20 25 7 6 18 14 11 17 24 15 19 12 10 2 4 22 3 26
13 27
 16 7 12 18 22 9 26 10 21 24 14 13 6 3 19 11 25 20 2 4 5 1 27 8 15
23 17
 16 11 18 4 6 20 9 25 21 8 19 12 15 27 26 24 1 2 10 23 5 22 13 3 7
17 14
 16 19 7 15 9 8 23 20 11 21 6 18 14 25 3 24 1 5 12 10 2 4 22 17 26
27 13
 16 21 12 18 22 23 26 10 7 24 14 27 6 17 5 25 11 20 2 4 19 15 13 8 1
9 3
 17 1 6 10 18 8 23 2 27 5 7 26 25 11 12 21 19 13 16 9 22 4 24 20 15
3 14
 17 3 6 5 18 16 22 26 20 13 25 12 19 9 14 2 10 21 23 24 15 4 1 11 7
27 8
 17 4 2 24 14 8 16 15 26 21 18 22 7 27 10 23 25 3 13 19 11 12 1 6 9
5 20
 17 5 15 1 12 8 2 20 22 7 26 18 27 11 16 24 21 19 23 10 9 4 25 3 6
13 14

50
 17 18 24 4 21 5 25 10 7 19 2 12 23 27 13 1 26 3 11 6 9 22 20 16 8
15 14
 17 21 15 22 18 11 3 6 5 20 9 19 27 13 4 1 24 12 2 8 10 23 7 16 14
25 26
 17 23 15 8 27 1 5 4 2 20 25 11 19 3 6 13 14 24 21 10 26 9 22 18 12
7 16
 17 24 10 26 20 1 27 9 14 15 8 4 22 5 7 2 19 11 23 3 6 21 25 16 13
12 18
 18 12 13 16 25 21 6 3 23 11 19 2 7 5 22 4 8 15 14 9 27 1 20 26 10
24 17
 18 12 14 23 20 21 11 24 10 5 26 19 2 27 9 15 13 4 7 6 16 3 17 22 1
8 25
 18 12 27 16 11 7 6 17 9 25 5 2 21 19 22 4 8 1 14 23 13 15 20 26 10
24 3
 18 13 14 24 7 3 22 12 10 4 8 5 20 9 23 11 17 16 25 2 15 27 6 26 19
21 1
 18 20 4 8 14 7 17 5 24 9 26 22 19 27 2 16 3 25 23 15 10 11 1 6 13
12 21
 18 20 4 8 14 21 3 19 24 23 26 22 5 13 2 16 17 11 9 1 10 25 15 6 27
12 7
 18 24 3 4 15 20 17 13 27 7 19 6 8 1 11 5 26 25 14 9 12 16 2 22 10
23 21
 18 27 14 24 21 17 22 12 10 4 8 19 20 23 9 25 3 16 11 2 1 13 6 26 5
7 15
 19 1 25 4 17 11 27 16 22 24 23 9 13 5 10 3 14 12 7 26 6 15 18 2 20
21 8
 19 5 10 27 2 8 18 6 24 3 23 20 13 15 14 22 26 7 1 12 25 16 11 9 21
17 4
 19 7 25 18 2 9 5 10 27 24 15 13 17 3 16 11 12 20 22 4 26 1 21 8 14
23 6

51
 19 11 10 26 2 4 1 22 17 27 21 6 23 9 20 7 13 3 8 15 18 16 12 24 25
5 14
 19 12 26 6 24 11 17 15 14 25 4 16 18 27 21 22 13 9 1 5 10 7 23 8 3
20 2
 19 16 15 5 21 7 12 4 11 23 27 9 3 1 10 13 14 24 8 22 17 25 18 6 2
20 26
 19 27 25 11 20 4 22 24 18 21 6 2 17 9 8 12 7 13 1 26 15 16 23 5 10
3 14
 20 1 21 17 27 24 13 4 5 7 18 26 14 19 9 16 3 15 8 2 6 12 10 23 22
25 11
 20 5 9 6 1 12 11 19 13 3 25 23 10 27 7 22 18 21 26 15 16 8 14 24 2
4 17
 20 7 8 26 10 13 22 2 21 16 14 25 18 23 15 19 5 4 6 12 1 17 11 24 3
27 9
 20 15 7 3 13 24 27 4 19 21 18 26 14 5 23 16 17 1 8 2 6 12 10 9 22
11 25
 20 21 8 26 10 27 22 2 7 16 14 11 18 9 1 5 19 4 6 12 15 3 25 24 17
13 23
 21 4 9 2 5 27 22 19 3 13 15 24 10 23 11 26 18 17 8 25 1 7 14 12 20
16 6
 21 8 25 18 17 19 2 3 27 5 23 20 6 11 15 10 22 13 16 1 9 7 14 24 12
4 26
 21 12 13 6 1 11 10 15 23 25 3 16 2 27 19 22 26 9 24 5 17 7 14 8 4
20 18
 21 16 1 22 13 3 18 27 19 17 11 12 26 15 23 6 2 5 4 9 25 7 14 20 24
8 10
 21 20 17 10 25 23 26 11 15 9 19 8 22 3 27 18 6 1 12 13 5 7 14 4 16
24 2
 21 23 10 22 2 16 12 9 14 25 26 5 11 1 8 6 19 7 27 13 17 20 15 4 3
24 18

52
 21 24 5 26 9 15 6 23 11 1 27 4 18 19 3 2 10 25 20 17 13 7 14 16 8
12 22
 22 5 14 20 7 27 2 24 6 8 16 17 12 25 11 15 13 4 1 18 23 19 26 10 3
21 9
 22 12 8 16 14 7 13 17 20 25 10 2 3 19 18 4 27 1 11 23 6 15 9 26 5
24 21
 22 12 8 16 14 21 27 3 20 11 10 2 17 5 18 4 13 15 25 9 6 1 23 26 19
24 7
 22 18 5 15 12 27 17 8 13 26 21 2 24 1 19 23 9 3 11 20 4 6 25 7 10
16 14
 22 19 14 20 21 13 2 24 6 8 16 3 12 11 25 1 27 4 15 18 9 5 26 10 17
7 23
 22 24 5 4 1 21 26 27 11 15 3 18 7 17 2 8 16 23 14 25 19 9 12 10 6
20 13
 22 24 19 4 15 7 26 13 25 1 17 18 21 3 2 8 16 9 14 11 5 23 12 10 6
20 27
 23 3 18 2 26 24 13 6 25 15 21 22 19 5 8 7 1 11 20 27 10 12 16 4 17
9 14
 23 7 17 10 26 5 9 18 15 4 27 1 25 11 12 3 16 8 6 24 2 13 21 20 14
19 22
 23 9 18 15 26 20 10 22 4 11 19 8 1 27 14 6 2 7 13 16 17 12 3 5 21
25 24
 23 13 17 24 25 3 15 12 6 4 19 5 1 9 18 11 14 16 7 2 22 27 10 26 8
21 20
 23 15 17 3 8 24 6 4 10 21 22 26 25 5 20 16 7 1 13 2 27 12 19 9 18
11 14
 23 16 2 22 4 3 25 27 14 17 24 12 10 15 21 6 1 5 13 9 18 7 19 20 11
8 26
 24 7 4 6 26 17 18 22 21 8 14 9 2 15 11 27 13 16 10 20 25 5 23 12 19
3 1

53
 24 11 7 19 17 12 3 16 27 21 2 6 14 13 15 8 5 25 4 22 10 20 26 1 18
23 9
 24 21 4 6 26 3 18 22 7 8 14 23 2 1 25 13 27 16 10 20 11 19 9 12 5
17 15
 24 25 21 5 3 12 17 16 13 7 2 6 14 27 1 8 19 11 4 22 10 20 26 15 18
9 23
 25 4 18 2 8 13 15 5 14 27 20 24 6 9 7 26 23 3 19 11 22 21 17 12 1
16 10
 25 8 1 22 17 3 16 6 7 4 13 15 9 27 2 19 26 5 10 24 11 21 20 23 14
12 18
 25 9 27 13 16 20 26 8 6 7 2 10 15 3 12 4 21 23 19 18 5 24 17 11 22
1 14
 25 11 22 9 10 12 6 2 8 1 17 16 23 5 14 26 18 21 19 4 27 24 13 3 7
15 20
 25 13 22 18 10 20 19 26 15 9 7 2 17 3 16 21 23 1 12 5 6 24 4 8 27
11 14
 25 19 27 20 15 13 9 24 26 8 17 3 23 11 22 1 14 4 21 18 2 5 6 10 16
7 12
 25 21 27 6 10 3 11 22 9 8 5 23 15 1 24 13 4 16 26 20 18 19 7 12 14
17 2
 26 3 20 15 25 5 16 23 9 8 10 6 14 27 1 24 7 12 2 22 11 4 18 19 17
21 13
 26 4 12 24 14 7 9 1 16 13 22 10 15 11 6 20 23 5 27 3 2 19 17 18 25
8 21
 26 4 12 24 14 21 23 15 16 27 22 10 1 25 6 20 9 19 13 17 2 5 3 18 11
8 7
 26 8 11 20 19 7 18 9 13 5 1 6 21 15 10 12 24 17 14 27 25 3 4 22 2
16 23
 26 8 25 20 5 21 18 23 27 19 15 6 7 1 10 12 24 3 14 13 11 17 4 22 2
16 9

54
 26 11 14 16 21 9 10 8 2 12 24 15 4 27 13 5 23 20 19 6 17 25 18 22 1
7 3
 26 20 2 6 18 25 17 22 8 24 14 13 10 1 3 9 27 23 11 4 12 7 21 5 15
16 19
 26 25 14 16 7 23 10 8 2 12 24 1 4 13 27 19 9 20 5 6 3 11 18 22 15
21 17
 27 3 9 23 24 16 18 12 2 21 10 22 5 1 4 20 7 17 25 6 11 8 15 13 26
19 14
 27 7 9 2 22 1 13 26 3 12 11 17 5 19 8 23 20 24 18 16 6 25 21 4 14
15 10
 27 13 26 3 22 4 2 10 12 19 15 24 17 11 14 18 6 7 25 20 9 8 23 1 21
5 16
 27 20 6 10 12 23 5 11 14 9 16 8 2 3 21 18 17 1 25 13 26 7 15 4 19
24 22
 27 23 26 6 22 16 25 18 5 3 21 10 15 1 24 7 17 19 4 11 2 8 20 12 9
13 14
 27 25 9 16 5 23 3 8 18 12 15 1 17 13 26 19 14 20 7 6 10 11 2 22 24
21 4
 27 25 21 13 26 23 17 5 10 20 11 22 15 1 2 4 8 16 3 6 12 24 19 9 18
7 14

55
1 1 2 1 1 1 2 2 2 2 1 2 2 1 1 1 2 1
1 3 7 2 5 8 6 4 9
5 1 3 8 7 3 7 6 4 0 2 5 2 6 9 0 1 4
- - - - -
1 1 1 1 - 1
2 4 8 1 3 6 -5 1 9 1 7 -1 -2 -4 -8 -3 -6 1 5 7
2 4 3 0 9 1
3 0 1 2
- - - -
1 - 1 - 2 1 1 1
6 1 9 7 1 -1 -4 -3 -6 1 5 -9 1-7 1 2
2The
5 difference 8triangle for the first
2 sequence
1 3 in the above results 0
is as shown in the5 Table (5) 4
0 5 2 8
- - - -
1 - - 2 1 - 1 1 1 1 -
-4 -6 1 5 -7 1 1 2 4 2 1 3 6
4 1 2 1 3 3 0 6 1 2 5
2 4 1 3
- - -
1 1 1 - 1
1 2 4 8 3 6 1 -5 9 7 1 -1 -2 -4 1 -3 -6 5
6 9 8 8 7
7 5 6
- - -
1 1 - 1 1 - - 1
4 8 3 6 1 9 7 -2 -4 -8 1 -6 1 5
6 2 5 8 4 1 3 0
0 6 2
- - - -
1 2 1 1 1 1
-7 1 2 4 8 3 6 -5 1 2 1 7 1 -1 -2
6 0 1 5 6 2
0 0 1 5
- - - -
2 1 1 1 -
1 2 4 8 3 6 -5 1 9 1 2 1 -1 -4 -8
2 5 6 2 2
9 1 2 5
- - - -
1 1 1 2 1 1
5 -9 1 2 4 8 3 2 1 -5 1 9 1
7 0 1 2 5 6
3 7 0 1
- -
1 - 2 2 1 1 1 -
7 -2 -3 -6 5 1 -7 1 1 2
4 1 5 1 3 7 0 9
8 4
- -
1 1 2 1 1 -
3 6 9 1 7 -1 -2 -8 1 -3 -6
6 2 4 9 4 4
1 6
- - -
1 2 1 2 1
5 1 2 4 8 1 3 6 1 -5 1
0 0 1 2 5
3 7 0
-
1 2 1 1 1 - 1 -
9 7 -1 -2 -8 -6 1
2 4 9 8 4 4 3 3
2
- -
2 2 1 1 2 1
5 -7 1 1 2 4 8 1
6 3 7 0 0 1
4 3
-
2 2 1 2 1 1 1
-3 5 1 -9 -7 1
5 1 3 3 7 1 5
9
-
2 1 1 2 1 -
5 1 1 2 4 8
3 7 0 0 1 7
4
1 1 1 - - 1
9 7 -4 -8 -3
9 8 4 1 2 3
-
1 2 1
1 2 4 8 1 3 6
1 2 5
3
-
2 1 1 -
9 1 7 -2 -4
4 9 4 1
1
2 1 - 1 1
-6 5 -9
1 3 3 7 0
1 1
1 2 4 8 3
5 6
1 1
56
3 6 -5 9
2 9
1 1
8 3 6
6 2
1 1
Table (5) Difference triangle for N = 27

57
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
j 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
i
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2 58
6
2
7
Figure 4.1 Costas array for N = 27 using Welch construction

4.2 Conclusions
Thus, the obtained Costas arrays for length, N = 27 are listed in the results above. As said
earlier, the side lobe level for Costas array of length ‘N’ is given by 1/N, there is a need to find
Costas arrays for greater lengths. So, in future the Costas arrays for greater values are expected
to be found.

59
APPENDIX A
The different intermediate functions that are used in the matlab code for Welch1
construction are given below.
1) primelem.m
function out=primelem(p) %primelem(p) generates primitive elements for a p or q.
Generates the primitive elements for an input prime p, or
power of prime q. These can be used in Costas array
constructions such as Golomb & Welch. For prime
numbers the function outputs a vector of elements. For
prime powers the function outputs rows of polynomials,
which express decreasing powers of x.
if IsNotAPrimePower(p) % error if not prime or prime power
error('not a prime or power of a prime')
end
if isprime(p) % case for prime numbers
pe=FindFirstPrimitiveElement(p);
out=PrimitivesElementsForPrime(p,pe);
else % case for prime powers
n=length(factor(p)); % obtain n from value entered
p=unique(factor(p)); % obtain p from value entered
q=p^n; % rename original p to q for clarity
nm1=n-1; % set n-1 as it's used repeatedly
irr=fliplr(gfprimfd(n,'min',p)); % get irreducible polynomials
x=[zeros(1,n-2) 1 0]; % i.e. if n=2 x = [1 0]
ph=round((q-1)*prod(1-1./unique(factor(q-1)))); % Eulers totient (phi) function
pr=GenerateXTable(q,x,irr,nm1,p,n);

60
out=PrimitiveElementsForPrimePower(ph,n,x,q,pr);
end
function out=IsNotAPrimePower(p) % check if p is a prime power
out=length(unique(factor(p)))~=1;
function num=FindFirstPrimitiveElement(p) % find the first element which is primitive in
GF(p)
for num=2:p-1,
test=num; % set number to be tested
for i=1:((p-1)/2),
test=mod(num*test,p); % raise the number to successive powers
if test==1; % if it becomes 1 before a full cycle
break; % then it is not primitive
end % so break and test next number
end
if test~=1 % if test never takes value 1 then
break; % we have found the 1st primitive
end % element, so move on
end
function out=PrimitivesElementsForPrime(p,pe) % obtain all primitive elements from first
primitive element
c=zeros(1,p-1); % allocate space for the primitives
c(1)=pe; % first primitive is the one from above
for i = 2:p-1
c(i) = mod(pe*c(i-1),p); % take successive powers to get others
end % gcd finds index of primitives
out=unique(sort(c(gcd(1:p-2,p-1)==1)));
function pr=GenerateXTable(q,x,irr,nm1,p,n) % generate the table for x
pr=zeros(q-2,n); % allocate space for x table
pr(1,:)=x;
for i=2:q-2

61
[u v]=deconv(conv(pr(i-1,:),x),irr); % raise to next power and
vl=length(v); % express in wanted terms
v=v(vl-nm1:vl);
pr(i,:)=mod(v,p);
end
function prim=PrimitiveElementsForPrimePower(ph,n,x,q,pr) % find the primitive elements
prim=zeros(ph,n); % allocate space for the primitives
prim(1,:)=x; % x is always primitive
count=2; % counter for primitives
for i=2:q-2
if (gcd(i,q-1)==1) % check each row and add to
prim(count,:)=pr(i,:); % list if primitive
count=count+1; % update counter if 1 is found
end
end

2) minimal.m
function out=minimal(A) %minimal(A) replaces arrays with minimal flip or rotation.
Replaces input arrays with their flip or rotation which is
minimal, then returns sorted unique arrays. All input arrays
must be of the same length.
nrows=size(A,1);
for i=1:nrows
x=dsyms(A(i,:));
A(i,:)=x(1,:);
end
out=unique(A,'rows');

3) circshifts.m
function out=circshifts(A) %circshifts(A) generates circular shifts of arrays

62
Generates all unique circular shifts of input arrays.
[numarrays length]=size(A);
arrays=zeros(numarrays*length,length);
arrays(1:numarrays,:)=A;
for i=1:length-1
A=[A(:,2:end) A(:,1)];
arrays(numarrays*i+1:(numarrays*i)+numarrays,:)=A;
end
out=unique(arrays,'rows');

4) dsyms.m
function out = dsyms(A) %dsyms(A) generates all rotations and flips of arrays.
Generates the family of arrays in the dihedral symmetry
class for the sequences in the input matrix (i.e. all rotations
and flips).
[num,N]=size(A);
[junk,A1]=sort(A,2);
out=unique([A;fliplr(A);N-A+1;fliplr(N-A+1);A1;fliplr(A1);N-A1+1;fliplr(N-A1+1)],'rows');

5) iscostas.m
function out = iscostas(A) %iscostas(x) tests sequence to see if Costas condition is
satisfied. Tests sequence to see if it contains unique vectors
between pairs of dots (does not test to see if sequence is
permutation sequence). Also tests multiple rows of
sequences of the same length, returning a column of 1's and
0's.1 indicates condition is satisfied, 0 not satisfied.
[num,len]=size(A);
conv2check=(exist('conv2','builtin')= =5);
out = false(num,1);
for i = 1:num

63
if AllElementsAreUnique(A(i,:))
out(i)=true;
end
j=0;
runto = ceil(len/2)-1;
while out(i) && (j<runto)
if DtRowElementsAreUnique(A(i,:),j,len,conv2check)
out(i)=true;
else
out(i)=false;
end
j = j+1;
end
end
function out=AllElementsAreUnique(row_i) % check for repeated values
out=length(unique(row_i))==length(row_i);
function out=DtRowElementsAreUnique(row_i,j,len,conv2check) % check difference triangle
row for repeated values
if conv2check
dt_row = conv2(row_i,[1 zeros(1,j) -1],'valid');
out=length(unique(dt_row))==len-1-j;
else
dt_row = conv(row_i,[1 zeros(1,j) -1]);
out=length(unique(dt_row(2+j:end-1-j)))==len-1-j;
end

6) costas.m
function out = costas(A) %costas(A) outputs all Costas arrays from the set A. A function to
output the Costas arrays from a set of multiple arrays in
permutation form. All arrays must be of the same order.

64
out=A(iscostas(A),:);
if size(out,1)<1
out=[ ];
end
REFERENCES
1) Merrill I. Skolnik, “Introduction to Radar Systems”, Tata Mc Graw Hill publications,
Third edition, 2001.
2) Merrill I. Skolnik, “Introduction to Radar Systems”, Tata Mc Graw Hill publications,
second edition.
3) Peyton Z. Peebles, “Radar Principles”, John Wiley and sons Inc.,2000.
4) Rihcazek A.W., “Principles of High Resolution Radar” ,Mc Graw Hill publications,
1969.
5) Frank F.L, “Polyphase Codes with Good Non-periodic Correlation Properties”, IEEE
Transaction, January 1963, IT-9.
6) S. W. Golomb, “Algebraic constructions for Costas arrays,” J. Combinatorial Theory,
ser. A, vol. 37, no. 1, July 1984.
7) S. W. Golomb, “The T4 and G4 constructions for Costas arrays,” IEEE Trans. Inf. Theory,
vol. 38, no. 4, pp. 1404–1406, Jul. 1992.
8) J. P. Costas, “A study of a class of detection waveforms having nearly ideal range-
Doppler ambiguity properties,” Proc. IEEE, vol. 72, no. 8, pp. 996–1009, Aug. 1984.
9) K. Drakakis, “A review of Costas arrays,” J. Appl. Math., vol. 2006, pp. 1–32, 2006,
Article ID 26385.
10) J. K. Beard, J. C. Russo, K. Erickson, M. Monteleone, M. Wright.Combinatoric
Collaboration on Costas Arrays and Radar Applications" IEEE Radar Conference,
Philadelphia, PA, USA (2004).
11) www.costasarrays.org

65

You might also like