# How to design binary codes for radar systems?

#### Relevant publications

- M. Alaee-Kerahroodi, A. Aubry, A. De Maio, M. M. Naghsh and M. Modarres-Hashemi, “A Coordinate-Descent Framework to Design Low PSL/ISL Sequences,” in
*IEEE Transactions on Signal Processing*, vol. 65, no. 22, pp. 5942-5956, 15 Nov.15, 2017. - M. Alaee, A. Aubry, A. De Maio, M. M. Naghsh and M. Modarres-Hashemi, “Design of binary sequences with low PSL/ISL,”
*2017 25th European Signal Processing Conference (EUSIPCO)*, Kos, 2017, pp. 2211-2215.

To repeat the figures that are reported in the paper, please run “**FigTSP2017.m**“.

## Waveform design

In active sensing and radar systems, the sensitivity to detect targets improves as the energy increases, but lengthening the transmission pulse to increase the waveform’s energy degrades range resolution; which is the motivation for pulse compression waveforms. The process can be thought as the development of a waveform design and its appropriate matched filter, such that the output of the filter in the receiver focuses its energy in a small period of time, resulting in a good range resolution and letting the total energy be high. In modern systems, both intra- and inter-pulse modulations are employed.

To design sequences with very small PSL and ISL, we have proposed efficient methods in the above papers, which their Matlab codes can be found and downloaded above!

### A Coordinate-Descent Framework to Design Low PSL/ISL Sequences

The paper is focused on the design of phase sequences with good (aperiodic) autocorrelation properties in terms of Peak Sidelobe Level (PSL) and Integrated Sidelobe Level (ISL). The problem is formulated as a bi-objective Pareto optimization forcing either continuous or a discrete phase constraint at the design stage. An iterative procedure based on the coordinate descent method is introduced to deal with the resulting optimization problems which are non-convex and NPhard in general. Each iteration of the devised method requires the solution of a non-convex min-max problem. It is handled either through a novel bisection or an FFT-based method for the continuous and the discrete phase constraint, respectively. Additionally, a heuristic approach to initialize the procedures employing the lp-norm minimization technique is proposed. Simulation results illustrate that the proposed methodologies can outperform some counterparts providing sequences with good autocorrelation features especially in the discrete phase/binary case.

The main files (mfiles) that are designed for this paper are listed as below:

- cpm.m for designing constant modulus sequences
- lpCPM.m for continuous phase initialization in case of PSL minimization
- dpm.m for designing discrete phase (including binary) sequences
- lpDPM.m for discrete phase initialization in case of PSL minimization (including binary)

In the following, we show two examples of the algorithms proposed in this paper to regenerate the figures.

#### PSL Minimization

In this case, as describe in the paper, the proposed algorithm has two steps:

- Lp-Norm minimization for algorithm initialization.
- Setting [latex size=0 color=000000 background=ffffff]\theta = 1[/latex] in DPM algorithm for PSL minimization.

#### ISL Minimization

In case of ISL minimization, by setting [latex size=0 color=000000 background=ffffff]\theta = 0[/latex], the proposed DPM algorithm can be run directly on the initial sequence. An example is shown in the following where we regenerate Fig. 7 of the paper using the provided code above.

After downloading the zip file, by adjusting the alphabet size in part related to “Fig. 7. “, try to regenerate the following figures.

### Waveform design GUI **(download here!)**

MainSISO.m is a toolbox for designing pulse compression waveforms with good PSL/ISL. To run the toolbox after download, you should simply unzip it into a folder and run “MainSISO.m”.

This toolbox is based on Non-Convex optimization algorithms proposed in [J2]. Using this toolbox, it is possible to design unimodular and discrete phase (including binary) sequences with very small PSL/ISL values.

Let [latex size=0 color=000000 background=ffffff]{\mathbf {x}} = [x_1, x_2, \ldots, x_N]^T \in {\mathbb{C}}^N[/latex] be the radar transmitted fast-time (intra-pulse) radar code vector with [latex size=0 color=000000 background=ffffff]\displaystyle N[/latex] the number of coded sub-pulses (code length). The autocorrelation function associated with [latex size=0 color=000000 background=ffffff]{\mathbf {x}} [/latex] is defined as

[latex size=0 color=000000 background=ffffff]\displaystyle r_k = \sum_{i=1}^{N-k}{x_i^*x_{i+k}}, ~~~~ k = 0, \ldots , N-1,[/latex]

The PSL and ISL metrics are commonly used to design waveforms with *good* autocorrelation properties, and are formally defined as:

[latex size=0 color=000000 background=ffffff]\text{PSL} = \max\{|r_k|\}_{k=1}^{k=N-1},[/latex]

[latex size=0 color=000000 background=ffffff]\text{ISL} = \sum_{k=1}^{N-1}|r_k|^2[/latex].

In “MainSISO” the aim is to minimize [latex size=0 color=000000 background=ffffff]\displaystyle{\max_{k=1,\ldots, N-1}}\left[ \theta {|r_k|^2}+ ( 1- \theta ) \sum_{l=1}^{N-1}{|r_l|^2} \right][/latex] under the constraints [latex size=0 color=000000 background=ffffff]\Omega_{\infty} = \{{\mathbf{x}} \in {\mathbb{C}}^{N} | ~|x_i| = 1, i = 1, \ldots, N\}[/latex], or [latex size=0 color=000000 background=ffffff]\Omega_M = \{{\mathbf{x}} | x_i \in \Psi_M , i = 1, \ldots, N\}[/latex], where [latex size=0 color=000000 background=ffffff]\Psi_M = \{1, \bar{\omega}, \ldots, \bar{\omega}^{M-1}\}[/latex] , [latex size=0 color=000000 background=ffffff]\bar{\omega} = e^{\jmath \frac{2\pi}{M}}[/latex] and [latex size=0 color=000000 background=ffffff]M[/latex] is the size of discrete constellation alphabet. The parameter [latex size=0 color=000000 background=ffffff]\theta \in [0,1] [/latex] is weighting coefficient trade-offs between PSL and ISL minimization.

#### How to use MainSISO

In the following, there is quick help on how to use MainSISO. In Fig. 2., different parts of MainSISO GUI is depicted.

The GUI has 4 different parts:

Part 1: Settings; for adding an initial sequence, which is mandatory to run the algorithm.

Part 2: Settings; for the devised optimization algorithms, which affects on the performance of the designed waveforms.

Part 3: A table to store, load, or see the constellation of the designed waveform. It is possible to save the table and have access to the designed waveform.

Part 4: Display setting, to see the autocorrelation function, real/imaginary parts of signal as well as amplitude and phase.

#### Examples

In this part, we provide some examples to ease the use of MainSISO toolbox. To have a repeatable scenario, we select “All One” as the initial sequence in all cases, which basically means that all the phases of the initial sequence are equal to [latex size=0 color=000000 background=ffffff]\pi[/latex], i. e., [latex size=0 color=000000 background=ffffff]{\mathbf {x}} = [-1, -1, \ldots, -1]^T \in {\mathbb{C}}^N[/latex]. To find “All One” set the first popupmenu in part 1 on “Binary” and the second popupmenu on “All One”. We set length = 50 in the following examples. Then, we add the initial sequence in the table. You can see a triangle which is autocorrelation function the rectangle that was adopted as the initial sequence. In this toolbox, as to “Discrete Phase” algorithm we set always the alphabet size equal to the code length. This can be adjusted by the user in the “Algorithm” page, but in the toolbox that is fixed. In this toolbox, the algorithm that obtains the solution under [latex size=0 color=000000 background=ffffff]\Omega_{\infty} [/latex] is called “Continuous Phase” and the one which solves the optimization problem under [latex size=0 color=000000 background=ffffff]\Omega_{M} [/latex] is called “Discrete Phase”. Binary, is a special case of discrete phase when [latex size=0 color=000000 background=ffffff]M = 2[/latex].

##### Optimizing the ISL

Select the initial sequence in the table (part 4 of Fig. 2) and set [latex size=0 color=000000 background=ffffff]\theta = 0 [/latex] (in Part 2 of Fig. 2). The run the algorithms in two different cases; “Continuous Phase”, and “Discrete Phase”. The obtained results are depicted in the table of Fig. 3.

In the last column of the table in Fig. 3, the obtained ISLR(dB) values are reported (Note that by adjusting [latex size=0 color=000000 background=ffffff]\theta = 0 [/latex] in this case we performed ISL minimization). Around 26.7 dB in the ISLR(dB) value of the obtained continuous phase sequence, and about 25dB enhancement in the ISLR(dB) value of the obtained discrete phase sequence is observable.

##### Optimizing the PSL

Now, we clear all the data except the initial sequence from the table by selecting the associated rows and pushing the “delete” button. We set [latex size=0 color=000000 background=ffffff]\theta = 1 [/latex] an repeat the scenario to perform PSL minimization. The obtained results in this case are depicted in Fig. 4. The enhancement is on the PSLR(dB) values, which more than 20dB improvement is observable in this case.

However, the results in Fig. 4. can be further improved by performing the “Lp-Norm Initialization”. Delete the recent two waveforms obtained by PSL minimization and keep the initial sequence in the table. Check the checkbox “Lp-Norm Initialization” and perform again the “Continuous Phase” and “Discrete Phase” algorithms. The results are reported in Fig. 5.

In Fig. 5 the obtained sequence in continuous phase depicts around 29.7dB improvement in the PSLR(dB) values.

Also, the obtained sequence in discrete phase shows around 28dB improvements in the PSLR(dB) values.

Let us run an example using “MainSISO.m“ in different cases. Set the first popupmenu in up-left on “Polyphase” and in the second popupmenu find “Random”. Set “Length” equal to “16” and push the “Add initial sequence” button.

The “Continuous Phase” and “Discrete Phase” constraints that we used to obtain the optimized sequences means that the only degree of freedom is the waveform phase; this makes the optimization problem non-convex and non-linear resulting in a significantly more complex problem than the unconstrained version. However, the constant modulus waveform design assumes the possibility of defining phase to arbitrary precision which is not true in many applications given the feasibility to implement only certain phase stages in hardware. A subsequent quantization to the discrete phase maybe a solution, but bit truncation would distort the spectral shape and waveform envelope; this would further introduce amplitude fluctuations. Thus, a direct design of discrete phase sequences should be the considered optimization problem. However, a more practical question is how should we use the optimization algorithms to design binary phase sequences which is addressed in the next part.

##### Designing binary codes

In this part, we design sequences with Binary phase. In the popupmenu of part 2 in Fig. 2, select the Binary. Try designing sequences in three different cases:

- [latex size=0 color=000000 background=ffffff]\theta = 0 [/latex] without Lp-Norm Initialization.
- [latex size=0 color=000000 background=ffffff]\theta = 1 [/latex] without Lp-Norm Initialization.
- [latex size=0 color=000000 background=ffffff]\theta = 1 [/latex] with Lp-Norm Initialization.

The results are depicted in Fig. 7.

Look at the PSL and the ISL values in Fig. 7 and compare the obtained values to each other as well as comparing with values of the initial sequence (that is depicted in the previous tables). Try to figure out the relation between performing different algorithms and the obtained values.

##### Effect of Pareto coefficient [latex size=2 color=000000 background=ffffff]\theta [/latex]

Try to repeat the scenario with different values of theta. Also, push the “Sweep Theta” check box and assess the results. Notice that adjusting different values of [latex size=0 color=000000 background=ffffff]\theta [/latex] obtains different optimized sequences that can be used based on the application.

Dear Sir,

Your “A Coordinate-Descent Framework to Design Low PSL/ISL Sequences” article provides an excellent reduction in side-lobes.

I am also working on the pulse compression waveform designs to remove the undesired side-lobes in the matched filter response.

Thanks for sharing step by step approach of this article.

Dear Ankur,

Thank you for your interest in the paper and Matlab codes.

Feel free to contact me in case you need additional information.

Best regards,

Mohammad

Thx for shearing the MATLAB code.

The MainSISO.m toolbox looks interesting to play with

where can it be downloaded from ?