In this paper, modifications made to the general scheme of the pulse separation included PRI extraction and sequence search presented in [5, 6], which increases the efficiency of the pulse separation algorithm. This operation does this by describing the new variables for PRI matching among the TOAs and simultaneously examining and comparing the similarity in other parameters of each emitter pulse sequence. In this proposed algorithm, to extract the potential PRIs, the SDIF algorithm and the threshold function are used [5]. Then, by using the proposed sequence search algorithm, the pulse sequences of the emitters are separated. The input parameters of the algorithm are the PDWs of a time frame (\(T_{i}\) seconds) of the interleaved pulse sequences. These pulses are being received from all surrounding emitters located at a similar AOA and contain the N number of pulses. The histogram of the TOAs differences is formed in the SDIF algorithm. Then the threshold set on the histogram and each histogram value that exceeds the threshold is considered as the potential PRI. And after the harmonic testing, the potential PRI is used for the sequence search operation. The level of difference starts from one and is added to higher levels if necessary (C = 1). After extraction of the potential PRIs, the first change in the general separation process is that the potential PRIs divided into two categories, jittered and non-jittered PRI, depending on their characteristics. After dividing these potential PRIs, the procedure of the sequence search can be performed on them separately. The separation of potential PRIs will have a significant impact on improving the performance of the sequence search. Adjacent values crossing the threshold, considered as jittered potential PRIs. So, instead of jittered PRIs average, all the values crossing the threshold are used in the sequence search.
$$\frac{{{\text{PRI}}_{{{\text{Jitter}}}} (\tau + t_{{{\text{Bin}}}} )}}{{{\text{PRI}}_{{{\text{Jitter}}}} (\tau )}} = 1 + \varepsilon \quad \forall 0 < \tau < t_{{{\text{Bin}}}}$$
(3)
In the above formula, \(t_{{{\text{Bin}}}}\) is the time interval of a bin of the bar chart and ɛ is a small number. In both modes of the jittered and non-jittered potential PRIs, harmonics or coefficients PRI may observe, resulting from the missing pulses and or levels of difference [4]. For example, when a pulse is lost, it is possible that differences in the PRI coefficients created in the histogram, which may exceed the threshold if the number of such missed pulses is a lot. These harmonics must remove if observed. If a pulse sequence PRI possibly equal harmonic PRI of another pulse sequence, after the first pulse sequence is extracted (smaller PRI), the removed potential PRI appears again in another subtraction, then its pulse sequence is extracted. Therefore, the steps of the separation algorithm are shown as follows (Fig. 3).
-
1.
Receiving the input pulse train (number of N pulses) sorted by TOA, and the TOA differences calculated from the level difference C = 1.
-
2.
When the number of these pulses is greater than the initial value \(N_{0}\), the processing is performed on the input.
-
3.
The SDIF histogram with the level of difference C formed by applying the threshold and the histogram values that passed the threshold, selecting as the potential PRI.
-
4.
Harmonics or PRI coefficients [4] checked, then the missed pulses effect eliminated by removing the coefficients of potential PRI of two, three, etc.
-
5.
The potential PRIs are divided into two categories, jittered potential PRI and non-jittered potential PRI, and a sequence search is performed on each of the PRI categories.
-
6.
If the sequence search on the potential PRIs is successful, the difference level set C = 1, the separated pulse sequence is extracted from the input sequence as a pulse sequence of an emitter.
-
7.
If the sequence search fails, the level of difference value increases (C = C + 1) one unit, then for the new level of difference value, the process is repeated from the second step.
-
8.
Steps two to seven repeat until all the sequences extracted or the number of input pulses is less than \(N_{0}\) (\(N_{0}\) is a small number of pulses that remain in the original pulse sequence and are not extracted).
After extracting potential PRIs, the sequence search operation performs to separate the pulse trains of all emitters. The proposed sequence search algorithm uses the potential PRIs, carrier frequency and pulse width to separate all the pulse sequences. In this section, the two operations "classification in terms of carrier frequency and pulse width" and "matching the appropriate potential PRIs among the TOA of the pulses" are performed simultaneously. Each potential PRIs that crossed the threshold means that a large number of the pulses have such differences among theirs TOAs, but all of them do not indicate the TOAs differences among the members of the actual pulse sequence. Therefore, if the sequence search is based on only TOA-processing, there is a possibility that the actual pulse sequences broke into several subsequences, and the extracted pulse sequence represents a false emitter. Therefore, the sequence search based on only the TOA-processing maybe leads to an error in the sequence search. Therefore, using the TOA with the other parameters such as the angle of arrival, pulse width, or carrier frequency, the sequence search errors can be reduced, which associates with vital in mobile computing [34,35,36,37] in electronic warfare. For the Implementation of the pulse separation, the proposed algorithm performs in a two-step sequence search that executes in the form of a flowchart shown in Figs. 4 and 5. In the first stage of the sequence search, if the first three or four sentences of the sequence extracted by using potential PRIs, then the sequence search process is continued in the second stage. The success of sequence search in the first stage means the existence possibility of a sequence, and then following of the sequence search performs in the second stage according to the flowchart in Fig. 5. The difference of the second stage is considering the effect of missed pulses in the sequence search.
For the sequence search implementation procedure, the functions \(Z_{k} \left( {i,j} \right)\) and \(M_{k} \left( j \right)\) are defined. The function \(Z_{k} \left( {i,j} \right)\) is used in the sequence search algorithm to match the potential PRIs among the pulses TOAs. Also, the function \(M_{k} \left( j \right)\) used to compare the other parameter's similarity includes carrier frequency and pulse width of the extracting sequence. Among all the pulses with the most similarity to each other, the sequence search algorithm will find the next pulse of the sequence if the potential PRIs match among TOAs of the last extracted pulse and the next pulse. If \(N_{{\text{P}}}\) is the number of the potential PRIs (\({\text{PRI}}_{{\text{p}}}\)) exceeding the threshold, so:
$${\text{PRI}}_{{\text{p}}} = \left[ {{\text{PRI}}_{{\text{p}}} (1),{\text{PRI}}_{{\text{p}}} (2),{\text{PRI}}_{{\text{p}}} (3), \ldots ,{\text{PRI}}_{{\text{p}}} (N_{{\text{p}}} )} \right]^{T}$$
(4)
Now, if (j = k) is the last pulse extracted from the received pulse sequence, therefore, the sequence search will find the next pulse (j = k + 1) of the sequence by TOA and PRI matching as follows.
$${\text{TOA}}_{{{\text{diff}}}} (j,k) = \left[ {\left| {{\text{TOA}}_{j} - \left. {{\text{TOA}}_{k} } \right|} \right.} \right]_{{N_{{\text{p}}} \times 1}}$$
(5)
$$Z_{k} (i,j) = {\text{PRI}}_{{\text{p}}} (i) - {\text{TOA}}_{{{\text{diff}}}} (j,k)\quad 1 \le i \le N_{{\text{p}}} \quad k + 1 \le j \le N$$
(6)
The function \(M_{k} \left( j \right)\) is used to investigate the parametric similarity of the pulses of the sequence. This function is taken from the metric spatial distance. The parameters of carrier frequency and pulse width are used in this function [38]. In this function,\({\text{ RF}}_{0}\) and \({\text{PW}}_{0}\) are used to adjust the maximum acceptable radius of parameters in pulse-to-pulse variations in a sequence. Thus, the criterion function of matching the parameter similarity is obtained by using the following formula:
$$M_{k} (j) = \frac{{\left( {{\text{RF}}_{j} - {\text{RF}}_{k} } \right)^{2} }}{{{\text{RF}}_{0}^{2} }} + \frac{{\left( {{\text{PW}}_{j} - {\text{PW}}_{k} } \right)^{2} }}{{{\text{PW}}_{0}^{2} }}$$
(7)
Other functions such as Euclidean distance and internal multiplication can be used to measure the similarity of the pulse parameters with each other.
After performing calculations of \(Z_{k} \left( {i,j} \right)\) and \(M_{k} \left( j \right)\), the collections {I} and {J} are obtained as follows. These collections are applied to find the next pulse of the extracting sequence and matching the appropriate PRI.
$$M_{k} (J) < M_{0}$$
(9)
In the above formula, W is a maximum interval that the potential PRIs match among the TOAs of the last extracted pulse and the next pulse in the searching sequence, which is selected practically. And \(M_{0}\) adjust the maximum acceptable distance of the parameters of two pulses of an emitter in terms of pulse-by-pulse similarity.
Then, by searching in two collections {I} and {J} the next sentence of the searching sequence \(\left( {\hat{J}} \right)\) and the potential PRI that matching the time of arrival between the last extracted pulse and the next pulse of the searching sequence \(\left( {\hat{I}} \right)\) are determined as follows.
$$\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{J} ,\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{I} } \right) = \mathop {\min }\limits_{I,J} \mathop {(Z_{k} (I,J))}\limits_{{}}$$
(10)
If the next sentences are found, the sequence search will continue and the output PRI is calculated as follows:
$${\text{PRI}}_{{{\text{out}}}} = {\text{TOA}}(\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{J} ) - {\text{TOA}}(k)$$
(11)
Sometimes in the second step of the sequence search, the next pulse of the sequence is not found, and then this pulse is considered a missed pulse. Therefore, the sequence search will continue to find the next pulse after the missed pulse. So, the difference between the second and first stage of the sequence search is considering the effect of missing or undiscovered pulses by the ESM receiver. So, to prevent the breaking of the sequence search due to the missing pulses, changes are made to the sequence search operation. And in the mode of jittered sequence search, the PRI-TOA matching function is changed as follows.
$$Z_{k,M} (i,j) = M({\text{PRI}}_{{\text{p}}} (i) - {\text{TOA}}_{{{\text{diff}}}} (j,k)\quad 1 \le i \le N_{{\text{p}}} ,\;k + 1 \le j \le N$$
(12)
And in the mode non-jittered sequence search, the PRI matching function does not change (always M = 1), but the TOA of the last (k) extracted pulse of the sequence changes as follows.
$${\text{TOA}}_{{{\text{diff}}}} (j,k) = {\text{TOA}}_{{{\text{diff}}}} (j,k) - {\text{PRI}}_{{{\text{out}}}} (k - M)$$
(13)
Similar to the previous case, if the algorithm finds the next pulse successfully, the M value will remain fixed (M = 1). And if the algorithm does not find the next pulse in the sequence search, the M value is added one unit to find the next pulse of the sequence after the missed pulse, and the sequence search will continue. Therefore, the second step performs as the flowchart in Fig. 5.