<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Energy Res.</journal-id>
<journal-title>Frontiers in Energy Research</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Energy Res.</abbrev-journal-title>
<issn pub-type="epub">2296-598X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">807918</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2021.807918</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Energy Research</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Particle Filter Based Range Search Approach for Localization of Radioactive Materials</article-title>
<alt-title alt-title-type="left-running-head">Mahmoud and Abd el-Hamid</alt-title>
<alt-title alt-title-type="right-running-head">Particle Filter Approach Source Localization</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Mahmoud</surname>
<given-names>Imbaby I.</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1459507/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Abd el-Hamid</surname>
<given-names>Asmaa A.</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/1629762/overview"/>
</contrib>
</contrib-group>
<aff>
<institution>Egyptian Atomic Energy Authority</institution>, <addr-line>Cairo</addr-line>, <country>Egypt</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1310490/overview">Mingfei Yan</ext-link>, RIKEN, Japan</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1074104/overview">Zhiqiang Niu</ext-link>, Loughborough University, United Kingdom</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1561112/overview">Baolong Ma</ext-link>, Xi&#x2019;an Jiaotong University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Imbaby I. Mahmoud, <email>imbabyisma@yahoo.com</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Nuclear Energy, a section of the journal Frontiers in Energy Research</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>31</day>
<month>01</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2021</year>
</pub-date>
<volume>9</volume>
<elocation-id>807918</elocation-id>
<history>
<date date-type="received">
<day>02</day>
<month>11</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>31</day>
<month>12</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Mahmoud and Abd el-Hamid.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Mahmoud and Abd el-Hamid</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>Wireless Sensor Networks (WSNs) have recently become crucial in monitoring operations. The development of a Data Fusion Algorithm for radioactive source localization utilizing WSN based on the Particle Filter (PF) technique is presented. The localization of an unknown-intensity point radioactive source using sensor nodes measured intensities in Count per Minute (CPM) is considered. The surveillance area is covered by several sensors (radiation detectors) <italic>n</italic>. Instead of using four sensors, as described in previous research, two consecutive sensors are used in sequence (S1, S2), (S2, S3)&#x2026;&#x2026;, (Sn-1, Sn) till reaching the last sensor available Sn. Apollonius circle calculated range guides a particle filter for estimating the source location using actual measurements. Compared with other approaches such as the Iterative Pruning Clustering algorithm, more accurate estimates in terms of the error between the estimated source position and ground truth are obtained. The comparison is conducted using the same real measurements data. The Particle Filter based algorithm is implemented in a Xilinx FPGA chip. The architecture is a two sequential steps implementation, where particle generation, weight calculation, and normalization are carried out in parallel during the first step, followed by a sequential or parallelized resampling in the second step. This architecture targets a balance between hardware resources and speed of operation. The future work plan includes security-related studies and complete WSN implementation using &#x3bc;C/FPGA devices.</p>
</abstract>
<kwd-group>
<kwd>wireless sensor networks</kwd>
<kwd>localization</kwd>
<kwd>radiation sources</kwd>
<kwd>security</kwd>
<kwd>particle filter</kwd>
<kwd>FPGA</kwd>
<kwd>hardware</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Motivating this work is the rush of Mid-east countries towards peaceful uses of atomic energy, impacting the national environmental situation. Since radioactive material monitoring becomes very important especially in the emerging nuclear regions, it is necessary to build instruments and systems to deal with radioactive material detection and tracking. Wireless Sensor Networks (WSNs) and &#x3bc;C/FPGA are proposed to implement these systems.</p>
<p>The problem of monitoring and searching for threats that involve radioactive materials is highly challenging because of the high variance in background radiation, the presence of non-harmful sources, and the possible shielding of harmful sources. We study in this paper a collection of algorithms and analyses that center around the problem of radiation detection with a distributed sensor network. <xref ref-type="bibr" rid="B20">Liu (2010)</xref> investigated the essential characteristics of a radiation sensor network focused on the tradeoffs between false positive rate, valid positive rate, and time to detect one or more radiation sources in a large area. She carried out mathematical and simulation evaluations of crucial system factors like sensor nodes and sensor position. <xref ref-type="bibr" rid="B28">Zhang (2012)</xref> proposed a statistical method based on the likelihood ratio test (conditional test statistic), accessed by the likelihood ratio statistic. Other researchers have addressed the problem of radiation source localization using different approaches. The geometric difference triangulation method is presented in (<xref ref-type="bibr" rid="B26">Wu et al., 2014</xref>) to estimate source location by solving a system of nonlinear equations for three measurement sensors. The Ratio of Square Distance (ROSD) method introduced in (<xref ref-type="bibr" rid="B7">Chin et al., 2010</xref>), presents a closed-form solution that can solve the imaginary root problem when dealing with more than 3 sensors. Various methods based on maximum likelihood estimation (MLE) (<xref ref-type="bibr" rid="B15">Gunatilaka et al., 2007</xref>) have been proposed. Henry E. Baidoo-Williams (<xref ref-type="bibr" rid="B3">Baidoo-Williams, 2016</xref>) used a non-concave maximum likelihood-based profit function to ensure a unique global maximizer. <xref ref-type="bibr" rid="B9">Cordone (2019)</xref> used linear regression (LR) to estimate the source and background intensities and then used these estimates to initialize the intensity parameter search for MLE.</p>
<p>Nageswara S. V. Rao et al. (<xref ref-type="bibr" rid="B23">Rao et al., 2008</xref>) proposed two localization methods: A mean of estimators (MoE) method and a mean of measurements (MoM) method that computed the mean of the measurements and showed from simulation results that MoE outperforms MoM. Chase Qishi Wu et al. (<xref ref-type="bibr" rid="B27">Wu et al., 2019</xref>) presented three localization-based detection approaches, namely: Source-attractor Radiation Detection (SRD), Triangulation-based Radiation Source Detection (TriRSD), and Ratio of Square Distance-based Radiation Source Detection (ROSD-RSD). Bayesian algorithms that compute an a posteriori probability distribution based on a given prior distribution and likelihood values calculated from measurements are illustrated in (<xref ref-type="bibr" rid="B10">Dalal and Han, 2010</xref>; <xref ref-type="bibr" rid="B16">Jarman et al., 2011</xref>; <xref ref-type="bibr" rid="B19">Liu et al., 2011</xref>; <xref ref-type="bibr" rid="B24">Rao et al., 2015</xref>; <xref ref-type="bibr" rid="B25">Tandon et al., 2016</xref>). Mobile sensor networks, which study real-time challenges for moving sources are studied (<xref ref-type="bibr" rid="B24">Rao et al., 2015</xref>). N. Rao et al. (<xref ref-type="bibr" rid="B24">Rao et al., 2015</xref>) suggested a Particle Filter algorithm, where it has been used in a border monitoring scenario. A geostatistical interpolation method that uses the given measurements to estimate positions where data were not collected based on Poisson kriging is presented (<xref ref-type="bibr" rid="B29">Zhao et al., 2019</xref>). <xref ref-type="bibr" rid="B14">Fragkos et al. (2020)</xref> developed a fusion algorithm based on an analytical procedure for five sensors. This analytical method did not consider the geometrical form factors of the sensors and the radiation attenuation of the medium between the source and the sensors, which contributed to lower localization accuracy. The localization algorithms, which are based on machine learning techniques, such as Artificial Neural Networks (ANN) and Boosted Decision Trees (BDT) are also investigated (<xref ref-type="bibr" rid="B18">Kyriakis and Karafasoulis, 2020</xref>). J.-C. Y. Chin et al. (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>) claimed an accurate localization method under noise and measurement errors.</p>
<p>This paper develops a robust data fusion and parameter estimation method for radioactive source localization based on the Particle Filter algorithm. The presented Particle Filter based algorithm is implemented in a Xilinx FPGA chip. Sensor nodes, as well as base stations, can be implemented using &#x3bc;C/FPGA chips. The proposed approach is evaluated and compared with other techniques reported in (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>).</p>
<p>This paper is organized as follows. In <xref ref-type="sec" rid="s2">Section 2</xref>, a brief review of the most common fusion-based localization approaches is presented. Then, <xref ref-type="sec" rid="s3">Section 3</xref> demonstrates the proposed algorithm and its flow. Next, in <xref ref-type="sec" rid="s4">Section 4</xref>, the experimental setup and the obtained results are discussed. Finally, an FPGA implementation of the proposed localization algorithm to speed up the localization process is presented in <xref ref-type="sec" rid="s5">Section 5</xref>, followed by the conclusion.</p>
</sec>
<sec id="s2">
<title>2 Review of Approaches for Radioactive Source Localization</title>
<p>In (<xref ref-type="bibr" rid="B7">Chin et al., 2010</xref>; <xref ref-type="bibr" rid="B20">Liu, 2010</xref>), a summary, classification, and drawbacks of methods used for localization problems are reported. The following summarizes previous work in fusion of data collected from sensor network approaches for radioactive source localization.</p>
<sec id="s2-1">
<title>2.1 Data Fusion From Multiple Sensors</title>
<p>Data collected at more than one sensor can be combined or considered separately. The former is often referred to as the &#x201c;data fusion&#x201d; step. Algorithms without data fusion make decisions based on readings from a single detector only and thus require no sensor-to-sensor or sensor-to-server communication. On the other hand, algorithms that fuse sensor data require the data to be transferred to one or a few centralized servers (base stations) for processing, creating more complexity in system architecture and introducing higher costs. Therefore, it is essential to understand and quantify the benefits of sensor data fusion when designing a radiation sensor network. For example, if the independent analysis is almost as good as algorithms with data fusion, communication between sensors can be simplified.</p>
<p>Data fusion is undoubtedly advantageous for discovering and recognizing a source, but it is unclear how much if at all, it improves detection. While simply integrating data (e.g., summing all data without filtering) improves signal strength, it also introduces noise, lowering SNR. The combined SNR may be lower than considering SNR from each sensor individually. For example, view a grid of widely-spaced sensors and a weak static source near one detector. The detector closest to the source will have a high SNR, whereas the other sensors receive mostly noise. Combining the data blindly from all four sensors will always decrease the overall SNR. More quantifying the benefits from data fusion can be found in (<xref ref-type="bibr" rid="B7">Chin et al., 2010</xref>; <xref ref-type="bibr" rid="B20">Liu, 2010</xref>).</p>
</sec>
<sec id="s2-2">
<title>2.2 Localization Approaches</title>
<p>In a noise- and error-free situation, determining the location of a radioactive source problem can be solved in closed form employing four ideal sensors and the Apollonius circle (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>). When uncertainties and noise like background radiation are considered, more sensors are required to give correct results, especially for extremely low source intensities. In real-world scenarios, noise and measurement errors are unavoidable. Hence, the fusion of measurements from <italic>n</italic> sensors, <italic>n</italic> &#x3e; 3, is necessary to increase the solution&#x2019;s reliability.</p>
<sec id="s2-2-1">
<title>2.2.1 Maximum Likelihood Estimator Method</title>
<p>The Maximum Likelihood Estimator (MLE) method constructs a maximum likelihood estimator and solves it with optimization techniques. It considers a uniform background whose strength has been measured as a priory, and the remaining unknown variables to be estimated are the source strength &#xb5; and source position <italic>X</italic> &#x3d; (<italic>x</italic>, <italic>y</italic>). The discrete Poisson mass function is used as a radiation sensing model. MLE searches over a solution space of both the source strength and position, such that the difference between the predicted measurements according to the sensing model and the actual measurements by the n sensors is minimized. The method can converge on local minima, which leads to the detection of phantom sources.</p>
</sec>
<sec id="s2-2-2">
<title>2.2.2 Mean of Estimators Method</title>
<p>The mean of estimators (MoE) localization method (<xref ref-type="bibr" rid="B23">Rao et al., 2008</xref>) produces estimated results by linearly combining each subset of three sensors. The MoE method computes the fused estimate and the candidate estimates&#x2019; mean. The advantage of the MoE method is that it has linear time complexity and generally runs much faster than MLE. However, the fundamental flaw of MoE is that it isn&#x2019;t specifically designed to eliminate phantom estimations during the fusion process. Phantom estimations can harm localization accuracy, especially if they appear to be generated by robust (and thus presumably accurate) sensor readings. As a result, when a significant portion of the candidate estimates is phantom estimates, this approach can provide substantial localization errors.</p>
</sec>
<sec id="s2-2-3">
<title>2.2.3 Iterative Pruning (ITP) Clustering Algorithm</title>
<p>The approach is divided into two parts, Clustering, and fusion (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>). Clustering (Quality Threshold (QT) clustering) is used to find the smallest region in the surveillance area that contains a majority if not all, candidate estimates that are not phantom estimates. Fusion is used to compute a weighted centroid of the candidate estimates in the cluster found above as the fused estimate. After each iteration, the candidate estimates input into the technique are pruned iteratively until only the region with the most estimates remains. When the number of estimates left is less than <italic>N</italic> and the region&#x2019;s area is less than d &#xd7; d, the Algorithm stops. The <italic>N</italic> and <italic>d</italic> parameters limit the maximum number of estimates in the remaining region and the smallest region&#x2019;s maximum size (in terms of area). The fused estimation is calculated from the weighted center of the remaining estimations. As the number of sensors increases, the candidate estimates increase as O (<italic>n</italic>
<sup>3</sup>), where <italic>n</italic> is the number of sensors.</p>
</sec>
<sec id="s2-2-4">
<title>2.2.4 Bayesian Algorithms</title>
<p>Probabilistic representations account for uncertainty in the source location resulting from uncertainties in detector responses and the potential for non-unique solutions. A Bayesian approach improves previous likelihood methods for source localization by incorporating all available information to help constrain solutions. Bayesian algorithms generally give good results when the prior estimates of unknown parameters are accurate. However, they give wrong results when the preliminary estimates are poor and when the signal data is too small to overcome the poor prior forecast. A. Liu et al. (<xref ref-type="bibr" rid="B19">Liu et al., 2011</xref>) present a heuristic that combines classical parametric statistical algorithms (K-Sigma Algorithm) with Bayesian algorithms (Kalman filter) to deal with this problem. However, this heuristic could suffer from incorrect estimations from the parametric algorithm emphasized by the Bayes algorithm. Moreover, Bayes algorithm complexity increases exponentially with the number of sources.</p>
</sec>
<sec id="s2-2-5">
<title>2.2.5 AI Approach</title>
<p>G. Cordone (<xref ref-type="bibr" rid="B9">Cordone, 2019</xref>) presents a method to perform the MLE localization without prior knowledge of the background radiation intensity. It estimates the source and background intensities using linear regression (LR) and then uses these estimates to initialize the intensity parameter search for MLE. This method is tested using single-resolution, multi-resolution, and multi-resolution with grid expansion MLE algorithms, and performance is compared to MLE algorithms that don&#x2019;t use the LR initialization. It is reported that using the LR estimates to initialize the intensity parameter search caused a marginal increase in both localization error and computation time for the tested algorithms. The technique is only beneficial in the case of unknown background intensity. The localization algorithms, which are based on machine learning techniques, such as Multi-Layer Perceptron Artificial Neural Networks (MLP) and Boosted Decision Trees (BDT) (<xref ref-type="bibr" rid="B18">Kyriakis and Karafasoulis, 2020</xref>), are also investigated. Using Cs-137 source of 180 micro-Curie (&#x3bc;Ci), a localization accuracy of 15 and 10&#xa0;cm in horizontal and vertical source coordinates respectively within an area of 5&#xa0;m &#xd7; 2.8&#xa0;m covered by a sensor network consisting of five sensors has been achieved.</p>
<table-wrap id="alg1" position="float">
<label>ALGORITHM 1</label>
<caption>
<p>Algorithm Range Search PF Source Localizer.</p>
</caption>
<table>
<tbody>
<tr>
<td>
<inline-graphic xlink:href="fenrg-09-807918-fx1.tif"/>
</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
</sec>
<sec id="s3">
<title>3 Proposed Localization Approach</title>
<p>In this section, a data fusion method for radioactive source localization based on Particle Filter algorithm is developed. Apollonius circle calculated range of candidate source positions from every pair of two consecutive sensors of the n-sensor network is used to guide a Particle Filter for estimating the source location. The radius of the Apollonius circle is used in the particle filter likelihood function to converge to a source position estimate.</p>
<sec id="s3-1">
<title>3.1 Problem Formulation</title>
<p>The localization of a point radiation source of unknown strength <italic>A</italic>
<sub>
<italic>u</italic>
</sub> expressed in the unit of micro-Curie (&#x3bc;Ci) called the source rate will be considered. The source is located at an unknown location (<italic>x</italic>
<sub>
<italic>u,</italic>
</sub> <italic>y</italic>
<sub>
<italic>u</italic>
</sub>). The source gives a radiation intensity of<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>E</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2.22</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>(expressed in counts per minute or CPM) when measured by a sensor at point <italic>p</italic> &#x3d; (<italic>x, y</italic>), where <italic>E</italic> is an efficiency constant unique to the sensor. The radiation count induced by the source and observed at the sensor <italic>i</italic> per unit time is a Poisson random variable with parameter <italic>&#x3bb;</italic> &#x3d; <italic>I</italic>(<italic>x</italic>
<sub>
<italic>i</italic>
</sub>
<italic>, y</italic>
<sub>
<italic>i</italic>
</sub>), not accounting for the background radiation <italic>B</italic>(<italic>x</italic>, <italic>y</italic>) (<xref ref-type="bibr" rid="B23">Rao et al., 2008</xref>) denoting the background radiation strength at (<italic>x</italic>, <italic>y</italic>) expressed in CPM, called the background rate. The radiation count measurement (due to the background radiation) at a sensor <italic>i</italic> located at (<italic>x</italic>
<sub>
<italic>i</italic>
</sub>, <italic>y</italic>
<sub>
<italic>i</italic>
</sub>) is given by the Poisson random variable with parameter <italic>B</italic>(<italic>x</italic>
<sub>
<italic>i</italic>
</sub>, <italic>y</italic>
<sub>
<italic>i</italic>
</sub>). For comparison purposes, the radiation model, actual measurements, and calibration process (<xref ref-type="bibr" rid="B23">Rao et al., 2008</xref>) are followed.</p>
</sec>
<sec id="s3-2">
<title>3.2 Apollonius Circle</title>
<p>Apollonius Circle describes the locus of point <italic>p</italic>, which has a fixed distance from point A equal multiple of its distance from another fixed point B. If the m:n equals one, the locus is the perpendicular bisector of segment AB. If m &#x2260; n, then it is a circle (<xref ref-type="bibr" rid="B17">Kim, 2021</xref>).</p>
<p>In <xref ref-type="fig" rid="F1">Figure 1</xref>, AP:BP &#x3d; m:n. When the point P moves, keeping this ratio, the locus of <italic>p</italic> is a Circle, which is called the circle of Apollonius. This circle connects A and B&#x2019;s interior and exterior division points (the interior bisector PP1 and the exterior bisector PP2 in <xref ref-type="fig" rid="F2">Figure 2</xref>).</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Apollonius circle.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g001.tif"/>
</fig>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>The interior bisector PP1 and the exterior bisector is PP2.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g002.tif"/>
</fig>
</sec>
<sec id="s3-3">
<title>3.3 Particle Filter</title>
<p>Particle filter is a sequential Monte-Carlo approach used to estimate the dynamic state parameters of nonlinear and/or non-Gaussian systems (<xref ref-type="bibr" rid="B13">Fox et al., 1999</xref>; <xref ref-type="bibr" rid="B22">Marimon et al., 2007</xref>). The essential idea is to approximate the probability density functions (PDFs) of the state of a dynamic model by random samples (particles) with associated weights, then propagating them across iterations based on a probabilistic model of the state update and the measurements (<xref ref-type="bibr" rid="B2">Arulampalam et al., 2002</xref>).</p>
<p>J. Cook et al. (<xref ref-type="bibr" rid="B8">Cook et al., 2020</xref>) proved the theoretical convergence of the estimate to the state posterior probability density function of Particle Filter. So, weak convergence in radioactive source localization applications is not a problem.</p>
<p>A. Kyriakis and K. Karafasoulis (<xref ref-type="bibr" rid="B18">Kyriakis and Karafasoulis, 2020</xref>) pointed that Particle Filter algorithm complexity increases exponentially with the number of sources. Therefore, the next section of this paper presents a H/W implementation of the proposed Particle Filter to speed up the processing that can help deal with this situation and real-time scenarios.</p>
</sec>
<sec id="s3-4">
<title>3.4 Proposed Algorithm</title>
<p>The Particle Filter Range Search algorithm works as follows. Initially, the 1,000 particles are evenly distributed, i.e., the initial state of the source is entirely unknown. Then, it converges to a source position estimation after using the radius of the Apollonius circle in the particle filter likelihood function. <xref ref-type="fig" rid="F3">Figure 3</xref> illustrates the flow of the proposed Algorithm. First, two consecutive sensors (e.g., S1 and S2) readings are used to obtain a candidate position for the radioactive source. Next, two points (p<sub>1</sub>, p<sub>2</sub>) on an Apollonius circle are calculated. Then the radius of the circle r calculated according to <xref ref-type="disp-formula" rid="e2">Eq. 2</xref> is used in the likelihood function of the particle filter. Finally, a probability is assigned to each particle according to the standard Gaussian formula, and their weights are calculated as in <xref ref-type="disp-formula" rid="e3">Eq. 3</xref>.<disp-formula id="e2">
<mml:math id="m2">
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>Where xs and ys are positions of the sensors in the environment.<disp-formula id="e3">
<mml:math id="m3">
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac bevelled="true">
<mml:mi>q</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mo>&#xa0;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mo>&#x2227;</mml:mo>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>Where r<sub>m</sub> is the range measurement (Apollonius)</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>The flow of the Algorithm. <bold>(A)</bold> Iteration 1, S1 and S2 <bold>(B)</bold> Iteration 2, S2 and S3 <bold>(C)</bold> Iteration 3, S3 and S4 <bold>(D)</bold> Iteration 4, S4 and S5.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g003.tif"/>
</fig>
<p>q &#x3d; [x, y] is the state vector</p>
<p>r&#x5e; is the range estimate from the particle to the sensor</p>
<p>and &#x3c3;: is the standard deviation from the PDF for that range measurement.</p>
<p>A pool of candidate particle positions is calculated, and an estimated source position is plotted as shown in <xref ref-type="fig" rid="F3">Figure 3A</xref>. For the 2<sup>nd</sup> round, the next consecutive sensor (S3) reading with the previous sensor reading (S2) is used to form another Apollonius circle, as shown in <xref ref-type="fig" rid="F3">Figure 3B</xref>. Finally, the particles are resampled from the previous round&#x2019;s Apollonius circle perimeter particle pool. <xref ref-type="fig" rid="F3">Figures 3C,D</xref> show the following rounds, which will continue till utilizing all 18 sensors.</p>
<p>The pseudo-code of the proposed algorithm can be stated as follows.</p>
</sec>
</sec>
<sec sec-type="results|discussion" id="s4">
<title>4 Results and Discussion of the Proposed Algorithm S/W Implementation</title>
<p>As we stated above, real measurements data from (<xref ref-type="bibr" rid="B23">Rao et al., 2008</xref>) is used to derive our experiment. The surveillance area is 50 &#xd7; 50&#xa0;cm, and the number of sensors distributed over this region is 18. The position of these sensors is shown in <xref ref-type="table" rid="T1">Table 1</xref>. A Cs-137 radiation point source emits Gamma-ray of intensity <italic>Au</italic> &#x3d; 0.911&#xa0;&#x3bc;Ci and their position in the area (<italic>Xs</italic>,<italic>Ys</italic>) &#x3d; (19.09,19.09). We consider that the distance measurements are in centimeters (cm). Matlab experimental setup for sensor and radiation source placements is depicted in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Sensors Coordinates used in 0.911&#xa0;&#x3bc;Ci Cs-137 Source Experiments and Actual measurements.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Sensor no</th>
<th align="center">X</th>
<th align="center">Y</th>
<th align="center">Detector efficiency</th>
<th align="center">Actual</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1</td>
<td align="char" char=".">36.52</td>
<td align="char" char=".">29.89</td>
<td align="char" char=".">0.002414</td>
<td align="char" char=".">19.7025</td>
</tr>
<tr>
<td align="left">2</td>
<td align="char" char=".">27.45</td>
<td align="char" char=".">29.70</td>
<td align="char" char=".">0.002078</td>
<td align="char" char=".">37.0099</td>
</tr>
<tr>
<td align="left">3</td>
<td align="char" char=".">26.13</td>
<td align="char" char=".">40.46</td>
<td align="char" char=".">0.003103</td>
<td align="char" char=".">25.3450</td>
</tr>
<tr>
<td align="left">4</td>
<td align="char" char=".">18.53</td>
<td align="char" char=".">37.08</td>
<td align="char" char=".">0.002414</td>
<td align="char" char=".">21.0433</td>
</tr>
<tr>
<td align="left">5</td>
<td align="char" char=".">10.11</td>
<td align="char" char=".">41.57</td>
<td align="char" char=".">0.002078</td>
<td align="char" char=".">21.1236</td>
</tr>
<tr>
<td align="left">6</td>
<td align="char" char=".">32.00</td>
<td align="char" char=".">12.00</td>
<td align="char" char=".">0.003103</td>
<td align="char" char=".">38.3307</td>
</tr>
<tr>
<td align="left">7</td>
<td align="char" char=".">0.00</td>
<td align="char" char=".">0.00</td>
<td align="char" char=".">0.002414</td>
<td align="char" char=".">15.3083</td>
</tr>
<tr>
<td align="left">8</td>
<td align="char" char=".">5.24</td>
<td align="char" char=".">21.09</td>
<td align="char" char=".">0.002078</td>
<td align="char" char=".">32.3821</td>
</tr>
<tr>
<td align="left">9</td>
<td align="char" char=".">3.13</td>
<td align="char" char=".">15.77</td>
<td align="char" char=".">0.003103</td>
<td align="char" char=".">32.8900</td>
</tr>
<tr>
<td align="left">10</td>
<td align="char" char=".">38.19</td>
<td align="char" char=".">16.33</td>
<td align="char" char=".">0.002414</td>
<td align="char" char=".">19.5326</td>
</tr>
<tr>
<td align="left">11</td>
<td align="char" char=".">4.43</td>
<td align="char" char=".">0.47</td>
<td align="char" char=".">0.002078</td>
<td align="char" char=".">19.9144</td>
</tr>
<tr>
<td align="left">12</td>
<td align="char" char=".">14.65</td>
<td align="char" char=".">5.60</td>
<td align="char" char=".">0.003103</td>
<td align="char" char=".">40.3292</td>
</tr>
<tr>
<td align="left">13</td>
<td align="char" char=".">19.46</td>
<td align="char" char=".">7.10</td>
<td align="char" char=".">0.002414</td>
<td align="char" char=".">35.0893</td>
</tr>
<tr>
<td align="left">14</td>
<td align="char" char=".">4.64</td>
<td align="char" char=".">35.28</td>
<td align="char" char=".">0.002078</td>
<td align="char" char=".">22.1469</td>
</tr>
<tr>
<td align="left">15</td>
<td align="char" char=".">36.15</td>
<td align="char" char=".">0.00</td>
<td align="char" char=".">0.003103</td>
<td align="char" char=".">24.3019</td>
</tr>
<tr>
<td align="left">16</td>
<td align="char" char=".">23.65</td>
<td align="char" char=".">7.67</td>
<td align="char" char=".">0.002414</td>
<td align="char" char=".">34.5478</td>
</tr>
<tr>
<td align="left">17</td>
<td align="char" char=".">0.81</td>
<td align="char" char=".">7.77</td>
<td align="char" char=".">0.002078</td>
<td align="char" char=".">23.1495</td>
</tr>
<tr>
<td align="left">18</td>
<td align="char" char=".">42.68</td>
<td align="char" char=".">24.00</td>
<td align="char" char=".">0.003103</td>
<td align="char" char=".">25.8622</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Matlab Experiment Setup (Sensor and radiation source placements).</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g004.tif"/>
</fig>
<p>
<xref ref-type="table" rid="T2">Table 2</xref> shows the error in estimated position values from one run of the proposed algorithm implemented Matlab program. <xref ref-type="fig" rid="F5">Figure 5</xref> shows that the error decreases when we observe readings from more sensors. However, it is not smooth monotonically reducing due to the random nature of the particle filter. Compared with ref. (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>), superior results are achieved when the number of sensors is increased, as shown in <xref ref-type="table" rid="T3">Table 3</xref> and <xref ref-type="fig" rid="F6">Figure 6</xref>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Error in Estimated Position values with the number of sensors.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g005.tif"/>
</fig>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Error of one run (not averaged).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<italic>X</italic>
</th>
<th align="center">
<italic>Y</italic>
</th>
<th align="center">Error</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="char" char=".">17.08</td>
<td align="char" char=".">27.58</td>
<td align="char" char=".">8.7256</td>
</tr>
<tr>
<td align="char" char=".">19.06</td>
<td align="char" char=".">27.78</td>
<td align="char" char=".">8.6941</td>
</tr>
<tr>
<td align="char" char=".">24.03</td>
<td align="char" char=".">29.52</td>
<td align="char" char=".">11.5392</td>
</tr>
<tr>
<td align="char" char=".">23.07</td>
<td align="char" char=".">28.70</td>
<td align="char" char=".">10.3974</td>
</tr>
<tr>
<td align="char" char=".">19.63</td>
<td align="char" char=".">22.19</td>
<td align="char" char=".">3.1476</td>
</tr>
<tr>
<td align="char" char=".">18.30</td>
<td align="char" char=".">19.26</td>
<td align="char" char=".">0.8098</td>
</tr>
<tr>
<td align="char" char=".">18.80</td>
<td align="char" char=".">19.01</td>
<td align="char" char=".">0.3007</td>
</tr>
<tr>
<td align="char" char=".">18.72</td>
<td align="char" char=".">18.93</td>
<td align="char" char=".">0.4026</td>
</tr>
<tr>
<td align="char" char=".">18.11</td>
<td align="char" char=".">20.28</td>
<td align="char" char=".">1.5414</td>
</tr>
<tr>
<td align="char" char=".">18.15</td>
<td align="char" char=".">19.99</td>
<td align="char" char=".">1.3023</td>
</tr>
<tr>
<td align="char" char=".">18.16</td>
<td align="char" char=".">19.40</td>
<td align="char" char=".">0.9781</td>
</tr>
<tr>
<td align="char" char=".">18.10</td>
<td align="char" char=".">20.23</td>
<td align="char" char=".">1.5113</td>
</tr>
<tr>
<td align="char" char=".">18.14</td>
<td align="char" char=".">20.06</td>
<td align="char" char=".">1.3591</td>
</tr>
<tr>
<td align="char" char=".">18.24</td>
<td align="char" char=".">19.89</td>
<td align="char" char=".">1.1700</td>
</tr>
<tr>
<td align="char" char=".">18.06</td>
<td align="char" char=".">20.62</td>
<td align="char" char=".">1.8476</td>
</tr>
<tr>
<td align="char" char=".">17.91</td>
<td align="char" char=".">19.91</td>
<td align="char" char=".">1.4376</td>
</tr>
<tr>
<td align="char" char=".">17.91</td>
<td align="char" char=".">19.91</td>
<td align="char" char=".">1.4364</td>
</tr>
<tr>
<td align="char" char=".">17.91</td>
<td align="char" char=".">19.91</td>
<td align="char" char=".">1.4364</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Recorded error comparison between ref. (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>). and the proposed Algorithm.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">Sensor no</th>
<th colspan="4" align="center">
<xref ref-type="bibr" rid="B6">Chin et al. (2008)</xref>
</th>
<th rowspan="2" align="center">Proposed algorithm error (actual avg. used)</th>
<th rowspan="2" align="center">Proposed algorithm error at (40,10) source position (model data used)</th>
</tr>
<tr>
<th align="center">MoE/R</th>
<th align="center">ITP</th>
<th align="center">QT</th>
<th align="center">MoE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="char" char=".">8.73</td>
<td align="char" char=".">18.25</td>
</tr>
<tr>
<td align="left">2</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="char" char=".">8.69</td>
<td align="char" char=".">17.44</td>
</tr>
<tr>
<td align="left">3</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="char" char=".">11.54</td>
<td align="char" char=".">23.27</td>
</tr>
<tr>
<td align="left">4</td>
<td align="char" char=".">21.80</td>
<td align="char" char=".">20.00</td>
<td align="char" char=".">17.91</td>
<td align="char" char=".">17.84</td>
<td align="char" char=".">10.40</td>
<td align="char" char=".">24.73</td>
</tr>
<tr>
<td align="left">5</td>
<td align="char" char=".">22.00</td>
<td align="char" char=".">19.00</td>
<td align="char" char=".">18.49</td>
<td align="char" char=".">17.60</td>
<td align="char" char=".">3.15</td>
<td align="char" char=".">17.11</td>
</tr>
<tr>
<td align="left">6</td>
<td align="char" char=".">19.40</td>
<td align="char" char=".">14.70</td>
<td align="char" char=".">13.83</td>
<td align="char" char=".">11.48</td>
<td align="char" char=".">0.81</td>
<td align="char" char=".">11.88</td>
</tr>
<tr>
<td align="left">7</td>
<td align="char" char=".">18.05</td>
<td align="char" char=".">11.55</td>
<td align="char" char=".">10.33</td>
<td align="char" char=".">7.90</td>
<td align="char" char=".">0.30</td>
<td align="char" char=".">5.28</td>
</tr>
<tr>
<td align="left">8</td>
<td align="char" char=".">19.00</td>
<td align="char" char=".">8.55</td>
<td align="char" char=".">8.77</td>
<td align="char" char=".">5.84</td>
<td align="char" char=".">0.40</td>
<td align="char" char=".">6.76</td>
</tr>
<tr>
<td align="left">9</td>
<td align="char" char=".">15.70</td>
<td align="char" char=".">6.84</td>
<td align="char" char=".">6.84</td>
<td align="char" char=".">4.55</td>
<td align="char" char=".">1.54</td>
<td align="char" char=".">5.64</td>
</tr>
<tr>
<td align="left">10</td>
<td align="char" char=".">14.40</td>
<td align="char" char=".">6.70</td>
<td align="char" char=".">6.70</td>
<td align="char" char=".">4.33</td>
<td align="char" char=".">1.30</td>
<td align="char" char=".">5.20</td>
</tr>
<tr>
<td align="left">11</td>
<td align="char" char=".">13.50</td>
<td align="char" char=".">6.13</td>
<td align="char" char=".">6.13</td>
<td align="char" char=".">3.69</td>
<td align="char" char=".">0.98</td>
<td align="char" char=".">6.72</td>
</tr>
<tr>
<td align="left">12</td>
<td align="char" char=".">12.15</td>
<td align="char" char=".">4.84</td>
<td align="char" char=".">4.84</td>
<td align="char" char=".">2.98</td>
<td align="char" char=".">1.51</td>
<td align="char" char=".">4.84</td>
</tr>
<tr>
<td align="left">13</td>
<td align="char" char=".">11.40</td>
<td align="char" char=".">4.26</td>
<td align="char" char=".">4.26</td>
<td align="char" char=".">2.55</td>
<td align="char" char=".">1.36</td>
<td align="char" char=".">5.02</td>
</tr>
<tr>
<td align="left">14</td>
<td align="char" char=".">9.74</td>
<td align="char" char=".">4.12</td>
<td align="char" char=".">4.12</td>
<td align="char" char=".">2.62</td>
<td align="char" char=".">1.17</td>
<td align="char" char=".">3.74</td>
</tr>
<tr>
<td align="left">15</td>
<td align="char" char=".">9.23</td>
<td align="char" char=".">4.26</td>
<td align="char" char=".">4.26</td>
<td align="char" char=".">2.55</td>
<td align="char" char=".">1.85</td>
<td align="char" char=".">3.34</td>
</tr>
<tr>
<td align="left">16</td>
<td align="char" char=".">8.94</td>
<td align="char" char=".">3.83</td>
<td align="char" char=".">3.83</td>
<td align="char" char=".">2.70</td>
<td align="char" char=".">1.44</td>
<td align="char" char=".">2.18</td>
</tr>
<tr>
<td align="left">17</td>
<td align="char" char=".">8.87</td>
<td align="char" char=".">3.83</td>
<td align="char" char=".">3.83</td>
<td align="char" char=".">2.55</td>
<td align="char" char=".">1.44</td>
<td align="char" char=".">1.73</td>
</tr>
<tr>
<td align="left">18</td>
<td align="char" char=".">8.14</td>
<td align="char" char=".">3.83</td>
<td align="char" char=".">3.83</td>
<td align="char" char=".">2.48</td>
<td align="char" char=".">1.44</td>
<td align="char" char=".">1.73</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Comparison of Error in Estimated Position values related to the number of sensors between the proposed Algorithm and ref. (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>). results.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g006.tif"/>
</fig>
<p>
<xref ref-type="table" rid="T3">Table 3</xref> shows recorded error obtained from ref. (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>). in the first column (four methods). The second column reports the values obtained from our Algorithm while using ref. (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>). average of actual measured data and the last column represents values calculated using model data when the source is out of the area surrounded by the sensors [source is located at (40,10)]. The last case is unattained by all other approaches [RoSD (ratios of square distances) and log-space DTOA (time difference of arrival)] (<xref ref-type="bibr" rid="B6">Chin et al., 2008</xref>). <xref ref-type="fig" rid="F6">Figure 6</xref> depicts these results graphically.</p>
<p>The proposed algorithm outperforms the Iterative Pruning Clustering algorithm when using just four sensors and above. For sensor count less than four, the results of our Algorithm and reference three sensor treatment are comparable (not shown in the figure). From <xref ref-type="fig" rid="F6">Figure 6</xref>, the Algorithm run with 6 sensors achieved the best tradeoff between the number of sensors and an estimated position error of 2%, 18 times less than the competitor (ITP) approach. Therefore, compared with other techniques, superior performance of the guided Particle Filter approach, in terms of localization error, is achieved. At the same time, adding 2 more sensors is not costly. Also, the proposed algorithm can localize a source, even when the area surrounded by the sensors does not contain that source.</p>
<p>Optimizing sensor placement can be implemented by maximizing a detection function F (<xref ref-type="bibr" rid="B19">Liu et al., 2011</xref>), defined as the sum of true positives over the whole area while keeping the false positive rate constant using a known source strength.</p>
</sec>
<sec id="s5">
<title>5 FPGA Implementation of Particle Filter Based Range Search Localization Algorithm</title>
<p>To speed up the proposed Algorithm, an FPGA implementation of particle filter based range search localization algorithm is introduced. <xref ref-type="fig" rid="F7">Figure 7</xref> shows the Sampling Importance Resampling Filter (SIRF). SIRF performs the particle generation and weight calculation for every input sample. After <italic>M</italic> particles pass, the weight normalization, outputting, and resample are carried out.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Sampling Importance resampling filter (SIRF).</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g007.tif"/>
</fig>
<sec id="s5-1">
<title>5.1 Proposed Architecture</title>
<p>The proposed architecture, shown in <xref ref-type="fig" rid="F8">Figure 8</xref>, uses <italic>2MxP</italic> dual-port <italic>FIFO</italic> to store the particles, where <italic>M</italic> is the number of particles and <italic>p</italic> is a two-component state vector, given by (<italic>x, y</italic>) to represent the <italic>X</italic>-position and <italic>Y</italic>-position. Two registers files are used: The first <italic>Mxw</italic> register file stores the particle weights where <italic>w</italic> represents the length of weight bits. The second <italic>Mxn</italic> register file keeps the replication factor for each particle (<italic>M &#x3d; 2</italic>
<sup>
<italic>n</italic>
</sup>), where n is the replication number. <xref ref-type="fig" rid="F8">Figure 8</xref> illustrates the data flow through processing stages of the proposed radioactive source localization H/W architecture. The operations of this PF H/W architecture can be summarized as follows.<list list-type="simple">
<list-item>
<p>1) In sample engine, the particles are generated from samples drawn using the random number generator (<xref ref-type="bibr" rid="B21">Mahmoud et al., 2016</xref>). Then, in each moving step, all particles are drifted by the same amount. The generated particles are stored in a FIFO for routing when it has a replication value. As all particles are generated, they can be used for weight calculation.</p>
</list-item>
<list-item>
<p>2) In the weight calculation engine, initially, N particles are spread over the <italic>xy</italic> plane within the predetermined boundaries where the probability of each particle is (1/<italic>N</italic>). When the first particle rout is finished, the observation (rm) will be enabled and a probability is assigned to each generated particle according to a developed linearized function of the likelihood (instead of the conventional exponential function as explained in <xref ref-type="sec" rid="s5-1-2">section 5.1.2</xref>).</p>
</list-item>
<list-item>
<p>3) In the output stage, to calculate the mean source position <italic>X</italic>
<sub>
<italic>o</italic>
</sub> and <italic>Y</italic>
<sub>
<italic>o</italic>
</sub>, we need to calculate:</p>
</list-item>
</list>
<disp-formula id="equ1">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:munderover>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mfrac bevelled="true">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:munderover>
<mml:msup>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mfrac bevelled="true">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>SIRF Localizer processor architecture.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g008.tif"/>
</fig>
<p>The straightforward implementation of the output calculation is accomplished by employing two accumulators to sum each of <italic>x</italic> and <italic>y</italic> values for all particles, which is then multiplied by its weight and multiplied by the inverse value of the total weight.<list list-type="simple">
<list-item>
<p>4) After sampling the total number of particles is done, the resample process starts and gives a replication factor for each particle according to its weight using one of the resampling methods. The basic idea of resampling is to eliminate small-sized particles and concentrate on particles with large weights. The resampling process calculates sequentially the replication factor for each particle for the next instant. The resample calculates one replication factor for every clock cycle.</p>
</list-item>
</list>
</p>
<sec id="s5-1-1">
<title>5.1.1 Sample Unit</title>
<p>
<xref ref-type="fig" rid="F9">Figure 9</xref> shows a block diagram of the sampling unit. The sampling unit contains two random generators implemented using Hybrid Cellular Automata (CA) CA 150 and CA 90 rules (<xref ref-type="bibr" rid="B11">Abd el-hamid, 2008</xref>). The used CA consists of N alternating cells, which change their states according to rules 90 and 150. The Random Number Generator (RNG) uses XOR logic, implemented in VHDL, to calculate the next state of an indicated cell in the array.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Sampling unit. <bold>(A)</bold> The sample of x values <bold>(B)</bold> The sample of y values.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g009.tif"/>
</fig>
<p>The sample engine generates noise values added or subtracted to the particle state vector elements, stored in register Particle S<italic>,</italic> before saving it back to the FIFO for the next instant.</p>
</sec>
<sec id="s5-1-2">
<title>5.1.2 Weight Calculations</title>
<p>Our likelihood function was designed as a linear function for hardware simplification. Considering the complexity of the hardware implementation of the square root and the exponential function, we need to find the magnitude of a two-dimensional vector quickly without using a square root function. A common approximation takes the following form:<disp-formula id="equ2">
<mml:math id="m5">
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>Where <italic>&#x3b1;</italic>&#x3d; 0.94 and <italic>&#x3b2;</italic>&#x3d; 0.39.</p>
<p>In hardware, we calculate the maximum term as (1-0.062) and the minimum term as (0.25 &#x2b; 0.125), which is a good approximation. By using simple linear approximations, we may reduce the weighted function computations. <xref ref-type="fig" rid="F10">Figure 10</xref> compares the FPGA implemented weighting function with the true exponential function. Matlab simulation results indicate that this approximation does not affect the performance of the localizer. The exponential function also can be used as a lookup table when the maximum and minimum value are known. <xref ref-type="fig" rid="F11">Figure 11A</xref> shows its implementation in MatLab. <xref ref-type="fig" rid="F11">Figures 11B,C</xref> shows the schematic and simulation of VHDL implemented exponential function using fixed-point representation.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>
<bold>(A)</bold> Simplified function for the weight calculations. <bold>(B)</bold> Estimated value by a simplified process of the particle weight.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g010.tif"/>
</fig>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Exponential function <bold>(A)</bold> MatLab implementation <bold>(B)</bold> Schematic <bold>(C)</bold> Simulation.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g011.tif"/>
</fig>
<p>To reduce the H/W resources requirements, all variables are used in fixed-point representation form. The average standard deviation of measurements of ref. (<xref ref-type="bibr" rid="B12">Abd el-Hamid, 2015</xref>) is scaled and used in the implementation.</p>
</sec>
</sec>
<sec id="s5-2">
<title>5.2 Residual Resampling Algorithm</title>
<p>In Residual Resampling (RR), resampling is performed where the number of replications of a specific particle is determined in one loop by truncating the product of the number of particles, and the simple truncation may result in a total number of replicated particles less than <italic>M</italic>. In general, <italic>R</italic> &#x3d; &#x2211;r <sup>(m)</sup> may not be equal to <italic>M</italic>. For solving this problem, for example, if the sum of all replicated particles is less than, <italic>M</italic> the hardware must decide which particles to replicate additionally so that the total number of particles is constant.</p>
<p>In the RR algorithm, for <italic>M</italic> input and <italic>N</italic> output (resampled) particles, the summation of all particles replication factors are less than the input particles <italic>M</italic> (<italic>N</italic> &#x3c; <italic>M</italic>). The difference between input and output is obtained using the mechanism (<xref ref-type="bibr" rid="B1">Abd El-Halym et al., 2012</xref>), in which we added this remainder number to the replication factor of the highest weight particle.</p>
<p>The replication of each particle is calculated as follows:<disp-formula id="e4">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2217;</mml:mo>
<mml:mfrac>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mi>M</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>The simple structure of the resampling is executed by employing the lookup Table, which is used to calculate the inverse value of the weight summation, which lies between 1 and 64, then multiply this value by <italic>M.</italic> Accordingly, the number <inline-formula id="inf1">
<mml:math id="m7">
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>/</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mn>1</mml:mn>
<mml:mi>M</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is calculated. The replication factor <inline-formula id="inf2">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2217;</mml:mo>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> where <italic>i</italic> &#x3d; 1, 2, 3 &#x2026;.<italic>M</italic> values are calculated and stored in the replication factor memory.</p>
<sec id="s5-2-1">
<title>5.2.1 Residual Systematic Resampling Algorithm</title>
<p>Systematic resampling (SR) is the most commonly used since it is the fastest resampling algorithm for computer simulations (<xref ref-type="bibr" rid="B4">Bolic et al., 2005</xref>). But it takes two loops of m iterations. In Residual Systematic Resampling (RSR), the updated uniform random number is formed differently, which allows for only one iteration loop and processing time independent of the distribution of the weights at the input (<xref ref-type="bibr" rid="B5">Bolic, 2004</xref>).</p>
<p>The RSR algorithm draws the uniform random number U(0) &#x3d; &#x394;U(0) in the same way of SR but updates it by &#x394;U(m) &#x3d; &#x394;U(m&#x2212;1) &#x2b; i(m)M &#x2212; w(m)<sup>n</sup>. The uniform number is updated depending on the previous uniform number &#x394;U (<italic>m&#x2212;1</italic>), calculated and then used as the initial uniform random number for the next particle. When trying to calculate &#x394;U (<italic>m</italic>), this uniform number is updated regarding the current weight. For these reasons, the RSR must be implemented sequentially and cannot be implemented in parallel. So, this resample approach is implemented in the proposed sequential architecture.</p>
<p>
<xref ref-type="fig" rid="F12">Figure 12</xref> shows a simulation run illustrating the localizer using RSR and shows the time between every successive estimation values.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>A simulation run that illustrates the operation of the localizer with RSR.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g012.tif"/>
</fig>
<p>The Sequential resampling engine can be redesigned to work in parallel using several scenarios of parallel execution units, as shown in <xref ref-type="fig" rid="F13">Figure 13</xref>. Considering data dependencies, this can be achieved by splitting the resampling process into multiple concurrent loops. When we use <italic>M</italic> loops, we consume the resources of the H/W implementation. The figure demonstrates the speed gain from using eight parallel resampling loops over a single loop.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>The execution time comparison <bold>(A)</bold> The eight parallel resampling loops give the replication factors at one clock cycle. <bold>(B)</bold> One loop (sequential) <italic>RSR</italic> replicates factors after <italic>M</italic> clock cycles for <italic>M &#x3d; 8</italic>.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g013.tif"/>
</fig>
</sec>
</sec>
<sec id="s5-3">
<title>5.3 The Resources Utilization</title>
<p>The architecture is captured using <italic>VHDL</italic> and synthesized on a <italic>Xilinx Virtex 5 FPGA</italic> chip. Finally, the design is verified using ModelSim simulator. <xref ref-type="table" rid="T4">Table 4</xref> summarizes the total resources utilization of the implemented architectures.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>The resources utilization for the implemented architecture of Sequential and parallel resampling on xc5vlx50t-3-ff1136 chip.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Logic utilization</th>
<th align="center">Sequential</th>
<th align="center">Two loop</th>
<th align="center">Four loop</th>
<th align="center">Eight loop</th>
<th align="center">Available</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Number of slice registers</td>
<td align="center">1,381</td>
<td align="center">1,386</td>
<td align="center">1,396</td>
<td align="center">1,416</td>
<td align="center">28,800</td>
</tr>
<tr>
<td align="left">Number of slice LUTs</td>
<td align="center">3,019</td>
<td align="center">3,818</td>
<td align="center">5,446</td>
<td align="center">9,525</td>
<td align="center">28,800</td>
</tr>
<tr>
<td align="left">Number of fully used LUT-FF pairs</td>
<td align="center">753</td>
<td align="center">1,010</td>
<td align="center">1,271</td>
<td align="center">1,275</td>
<td align="center">3,647</td>
</tr>
<tr>
<td align="left">Number of bonded IOBs</td>
<td align="center">46</td>
<td align="center">46</td>
<td align="center">46</td>
<td align="center">46</td>
<td align="center">480</td>
</tr>
<tr>
<td align="left">Number of block RAM/FIFO</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">60</td>
</tr>
<tr>
<td align="left">Number of BUFG/BUFGCTRLs</td>
<td align="center">3</td>
<td align="center">3</td>
<td align="center">3</td>
<td align="center">3</td>
<td align="center">32</td>
</tr>
<tr>
<td align="left">Number of DSP48Es</td>
<td align="center">1</td>
<td align="center">2</td>
<td align="center">4</td>
<td align="center">7</td>
<td align="center">48</td>
</tr>
<tr>
<td align="left">Number of slice registers</td>
<td align="center">1,381</td>
<td align="center">1,386</td>
<td align="center">1,396</td>
<td align="center">1,416</td>
<td align="center">28800</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The proposed architecture uses two memory arrays: one <italic>MxW</italic> to store the weights of the particles where <italic>W</italic> equals to 8 bits used in our fixed-point representation and the other <italic>Mxn</italic> memory to store the replication factor where <italic>M &#x3d; 2</italic>
<sup>
<italic>n</italic>
</sup> FIFO is implemented as a circular queue, where data can be stored and retrieved (in the order of its entry only) and thus has a read pointer and a write pointer. A synchronous FIFO uses the same clock for reading and writing. Moreover, total memory requirements for this architecture are: one dual-port FIFO of <italic>2M</italic> words to store the particles vectors of width equals 24 bits.</p>
</sec>
<sec id="s5-4">
<title>5.4 Analysis of Execution Time</title>
<p>The timing diagram of our proposed architecture operations is shown in <xref ref-type="fig" rid="F14">Figure 14</xref>. Ti is the initial latency in particle generation, which equals two clock cycles. Therefore, the total cycle time required is TSIRF &#x3d; (TW &#x2b; Tres &#x2b; <italic>&#x3b1;</italic>M) Tclk. The particle generation and computation weight operations can be overlapped in sequence such that TW is the startup latency of the weight calculation unit, which is equal to one clock. Therefore, the total latency cycles are three. Tres is the resampling time equal to M &#x2b; 1 clock periods (one clock to add the M-N to the highest weight replication factor). In the routing of the particles, the value of <italic>&#x3b1;</italic> lies between 1 and 2 and depends on the replication factors of the particles. The best value <italic>&#x3b1;</italic> is 1, where every clock routs one particle such that the total routing time is <italic>M</italic>. The worst-case takes place when the first <italic>M</italic>&#x2212;1 particles have zero replication factors. Only the last stored particle in the FIFO has a replication factor that equals <italic>M</italic> in this case; the FIFO needs to read <italic>M</italic>&#x2212;1 particles first, till FIFO reaches the particle number <italic>M</italic>. Then the sampling, weighting, and the output calculations are started and repeated for those particle <italic>M</italic> times. For all other cases (when a considerable number of the particles have non-zero replication factors), the value of <italic>&#x3b1;</italic> is slightly more than one.</p>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>The timing diagram for the SIRF evaluation.</p>
</caption>
<graphic xlink:href="fenrg-09-807918-g014.tif"/>
</fig>
<p>From the timing summary, the total time consumed for SIRF with RSR is 28.958&#xa0;ns (maximum frequency: 34.533&#xa0;MHz) using Xilinx FPGA chip xc5vlx50t with speed grade: -3.</p>
<p>Several architectures are implemented and compared to explain the tradeoff between speed up and resource utilization. The design occupies a small part of the targeted Xilinx chip. So, smaller and more affordable chips (e.g., Xilinx Zynq-7010) will be sufficient.</p>
</sec>
</sec>
<sec id="s6">
<title>6 Conclusion</title>
<p>A proposed radioactive source localization algorithm is presented. Apollonius circle calculated range guides a Particle Filter for estimating the source location using actual measurements. The proposed algorithm outperforms the Iterative Pruning Clustering algorithm when using just four sensors and above. For sensor counts less than four, the results of the two algorithms are comparable. Furthermore, the proposed algorithm can localize a source, even when the area surrounded by the sensors does not contain that source. This case is unattained by all other approaches. A H/W implementation of this particle filter in a Xilinx FPGA chip is also presented. Several implementation architectures are evaluated. The selected architecture targets a balance between hardware resources and speeds up accomplished. The future work plan includes security-related studies and complete WSN implementation using &#x3bc;C/FPGA devices.</p>
</sec>
</body>
<back>
<sec id="s7">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/Supplementary Material, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s8">
<title>Author Contributions</title>
<p>All authors listed have made a substantial, direct, and intellectual contribution to the work and approved it for publication.</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B11">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Abd el-Hamid</surname>
<given-names>A. A.</given-names>
</name>
</person-group> (<year>2008</year>). <source>Optimum Motion Track Planning for Avoiding Obstacles</source>. <publisher-loc>Cairo</publisher-loc>: <publisher-name>Benha University</publisher-name>. Available at: <ext-link ext-link-type="uri" xlink:href="http://db4.eulc.edu.eg/eulc_v5/Libraries/Thesis/BrowseThesisPages.aspx?fn=PublicDrawThesis&#x26;BibID=10614401">http://db4.eulc.edu.eg/eulc_v5/Libraries/Thesis/BrowseThesisPages.aspx?fn=PublicDrawThesis&#x26;BibID=10614401</ext-link> </citation>
</ref>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Abd El-Halym</surname>
<given-names>H. A.</given-names>
</name>
<name>
<surname>Mahmoud</surname>
<given-names>I. I.</given-names>
</name>
<name>
<surname>Habib</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Proposed Hardware Architectures of Particle Filter for Object Tracking</article-title>. <source>EURASIP J. Adv. Signal. Process.</source>, <volume>2012</volume> (<issue>1</issue>), <fpage>1</fpage>&#x2013;<lpage>19</lpage>. <pub-id pub-id-type="doi">10.1186/1687-6180-2012-17</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Abd el-Hamid</surname>
<given-names>A. A.</given-names>
</name>
</person-group> (<year>2015</year>). <source>Locating a Mobile Robot in a Non_Accessible Area</source>. <publisher-loc>Cairo</publisher-loc>: <publisher-name>Benha University</publisher-name>. <comment>Ph.D</comment>. </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Arulampalam</surname>
<given-names>M. S.</given-names>
</name>
<name>
<surname>Maskell</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Gordon</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Clapp</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>A Tutorial on Particle Filters for Online Nonlinear/Non-Gaussian Bayesian Tracking</article-title>. <source>IEEE Trans. Signal. Process.</source> <volume>50</volume>, <fpage>174</fpage>&#x2013;<lpage>188</lpage>. <pub-id pub-id-type="doi">10.1109/78.978374</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Baidoo-Williams</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Maximum Likelihood Localization of Radiation Sources with unknown Source Intensity</article-title>. <source>Computer Science arXiv:Optimization and Control</source>. Available at: <ext-link ext-link-type="uri" xlink:href="https://arxiv.org/pdf/1608.00427.pdf">https://arxiv.org/pdf/1608.00427.pdf</ext-link> </citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bolic</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Djuric</surname>
<given-names>P. M.</given-names>
</name>
<name>
<surname>Sangjin Hong</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Resampling Algorithms and Architectures for Distributed Particle Filters</article-title>). <source>IEEE Trans. Signal. Process.</source> <volume>53</volume> (<issue>7</issue>), <fpage>2442</fpage>&#x2013;<lpage>2450</lpage>. <pub-id pub-id-type="doi">10.1109/TSP.2005.849185</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Bolic</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2004</year>). <source>Architectures for Efficient Implementation of Particle Filters</source>. <publisher-loc>New York</publisher-loc>: <publisher-name>Stony Brook University</publisher-name>. <comment>Ph.D. thesis</comment>. </citation>
</ref>
<ref id="B6">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Chin</surname>
<given-names>J-C.</given-names>
</name>
<name>
<surname>Yau David</surname>
<given-names>K. Y.</given-names>
</name>
<name>
<surname>Rao Nageswara</surname>
<given-names>S. V.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>C. Y. T.</given-names>
</name>
<name>
<surname>Shankar</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2008</year>). <source>Accurate Localization of Low-Level Radioactive Source under Noise and Measurement Errors</source>. <comment>Computer Science Technical Reports</comment>. <publisher-loc>New York, NY</publisher-loc>: <publisher-name>Association for Computing Machinery</publisher-name>. </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chin</surname>
<given-names>J.-C.</given-names>
</name>
<name>
<surname>Rao</surname>
<given-names>N. S. V.</given-names>
</name>
<name>
<surname>Yau</surname>
<given-names>D. K. Y.</given-names>
</name>
<name>
<surname>Shankar</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hou</surname>
<given-names>J. C.</given-names>
</name>
<etal/>
</person-group> (<year>2010</year>). <article-title>Identification of Low-Level point Radioactive Sources Using a Sensor Network</article-title>. <source>ACM Trans. Sen. Netw.</source> <volume>7</volume> (<issue>3</issue>), <fpage>1</fpage>&#x2013;<lpage>35</lpage>. <pub-id pub-id-type="doi">10.1145/1807048.1807050</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Cook</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Smith</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Ramirez</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Rao</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2020</year>). <source>Particle Filtering Convergence Results for Radiation Source Detection</source>. <publisher-loc>New York, NY</publisher-loc>: <publisher-name>Association for Computing Machinery</publisher-name>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://arxiv.org/pdf/2004.08953.pdf">https://arxiv.org/pdf/2004.08953.pdf</ext-link>
</comment>. </citation>
</ref>
<ref id="B9">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Cordone</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2019</year>). <source>Improvements to MLE Algorithm for Localizing Radiation Sources with a Distributed Detector Network</source>. <comment>M. Sc Thesis</comment>. <publisher-loc>South Carolina</publisher-loc>: <publisher-name>Clemson University</publisher-name>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://tigerprints.clemson.edu/all_theses/3078">https://tigerprints.clemson.edu/all_theses/3078</ext-link>
</comment>. </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dalal</surname>
<given-names>S. R.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Detection of Radioactive Material Entering National Ports: A Bayesian Approach to Radiation portal Data</article-title>, <source>Ann. Appl. Stat.</source> <volume>4</volume> (<issue>3</issue>), <fpage>1256</fpage>&#x2013;<lpage>1271</lpage>. <pub-id pub-id-type="doi">10.1214/10-AOAS334</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fox</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Burgard</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Thrun</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>1999</year>). <article-title>Markov Localization for Mobile Robots in Dynamic Environments</article-title>. <source>jair</source> <volume>11</volume>, <fpage>391</fpage>&#x2013;<lpage>427</lpage>. <pub-id pub-id-type="doi">10.1613/jair.616</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fragkos</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Karafasoulis</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Kyriakisand</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Potiriadis</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Localization of Radioactive Source Using a Network of Small Form Factor CZT Sensors</article-title>. <source>J. Instrument.</source> <volume>15</volume>, <fpage>C04015</fpage>. <pub-id pub-id-type="doi">10.1088/1748-0221/15/04/c04015</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gunatilaka</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ristic</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Gailis</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2007</year>). &#x201c;<article-title>On Localisation of a Radiological Point Source</article-title>,&#x201d; in <conf-name>2007 Information, Decision and Control</conf-name>, <conf-loc>Adelaide, SA, Australia</conf-loc>, <conf-date>February 12&#x2013;14, 2007</conf-date>. <pub-id pub-id-type="doi">10.1109/idc.2007.374556</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jarman</surname>
<given-names>K. D.</given-names>
</name>
<name>
<surname>Miller</surname>
<given-names>E. A.</given-names>
</name>
<name>
<surname>Wittman</surname>
<given-names>R. S.</given-names>
</name>
<name>
<surname>Gesh</surname>
<given-names>C. J.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Bayesian Radiation Source Localization</article-title>. <source>Nucl. Technol.</source> <volume>175</volume> (<issue>1</issue>), <fpage>326</fpage>&#x2013;<lpage>334</lpage>. <pub-id pub-id-type="doi">10.13182/NT10-72</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Kim</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2021</year>). <source>The Circle of Apollonius</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="http://jwilson.coe.uga.edu/EMAT6680Fa09/KimB/EMAT6690/Essay2/6690%20apollonius%20circle.pdf">http://jwilson.coe.uga.edu/EMAT6680Fa09/KimB/EMAT6690/Essay2/6690%20apollonius%20circle.pdf</ext-link>
</comment> (<comment>last accessed 10 28, 2021)</comment>. </citation>
</ref>
<ref id="B18">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Kyriakis</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Karafasoulis</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2020</year>). "<article-title>An AI Approach in Radioactive Source Localization by a Network of Small Form Factor CZT Sensors</article-title>,&#x201d; in <conf-name>SETN 2020 Workshops</conf-name>
<italic>,</italic> <conf-loc>Athens, Greece</conf-loc>, <conf-date>September 02&#x2013;04, 2020</conf-date>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="http://ceur-ws.org/Vol-2844/">http://ceur-ws.org/Vol-2844/</ext-link>
</comment> </citation>
</ref>
<ref id="B19">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>A. H.</given-names>
</name>
<name>
<surname>Bunn</surname>
<given-names>J. J.</given-names>
</name>
<name>
<surname>Chandy</surname>
<given-names>K. M.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>Sensor Networks for the Detection and Tracking of Radiation and Other Threats in Cities</article-title>,&#x201d; in <conf-name>Proceedings of the 10th ACM/IEEE International Conference on Information Processing in Sensor Networks</conf-name>, <conf-loc>Chicago, IL</conf-loc>, <conf-date>April 12&#x2013;14, 2011</conf-date> (<publisher-loc>Chicago, IL</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>12</lpage>. </citation>
</ref>
<ref id="B20">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2010</year>). <source>Simulation and Implementation of Distributed Sensor Network for Radiation Detection</source>. <comment>Master of Science California</comment>. </citation>
</ref>
<ref id="B21">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Mahmoud</surname>
<given-names>I. I.</given-names>
</name>
<name>
<surname>Salama</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>El Hamid</surname>
<given-names>A. A. E. T. A.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Hardware Implementation of a Genetic Algorithm for Motion Path Planning</article-title>,&#x201d; in <source>Field-Programmable Gate Array (FPGA) Technologies for High-Performance Instrumentation</source>, <fpage>250</fpage>&#x2013;<lpage>275</lpage>. <pub-id pub-id-type="doi">10.4018/978-1-5225-0299-9.ch010</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Marimon</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>David</surname>
<given-names>Y. M.</given-names>
</name>
<name>
<surname>Abdeljaoued</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ebrahimi</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2007</year>). &#x201c;<article-title>Particle Filter-Based Camera Tracker Fusing Marker and Feature point Cues</article-title>,&#x201d; in <source>Electronic Imaging 2007</source> (<publisher-name>SPIE</publisher-name>). <pub-id pub-id-type="doi">10.1117/12.703150</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Rao</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Shankar</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Jren-Chit</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yau</surname>
<given-names>D. K. Y.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hou</surname>
<given-names>J. C.</given-names>
</name>
<etal/>
</person-group> (<year>2008</year>). &#x201c;<article-title>Localization under Random Measurements with Application to Radiation Sources</article-title>,&#x201d; in <conf-name>information fusion,11th international conference</conf-name>, <conf-loc>Cologne, Germany</conf-loc>, <conf-date>June 30&#x2013;July 3, 2008</conf-date>. </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rao</surname>
<given-names>N. S. V.</given-names>
</name>
<name>
<surname>Sen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Cooper</surname>
<given-names>N. J. D. A.</given-names>
</name>
<name>
<surname>Ledoux</surname>
<given-names>R. J.</given-names>
</name>
<name>
<surname>Costales</surname>
<given-names>J. B.</given-names>
</name>
<name>
<surname>Kamieniecki</surname>
<given-names>K.</given-names>
</name>
<etal/>
</person-group> (<year>2015</year>). <article-title>Network Algorithms for Detection of Radiation Sources</article-title>. <source>Nucl. Instr. Methods Phys. Res. Sect. A.</source> <volume>784</volume>, <fpage>326</fpage>&#x2013;<lpage>331</lpage>. <pub-id pub-id-type="doi">10.1016/j.nima.2015.01.037</pub-id> </citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tandon</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Huggins</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>MacLachlan</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Dubrawski</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Nelson</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Labov</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Detection of Radioactive Sources in Urban Scenes Using Bayesian Aggregation of Data from mobile Spectrometers</article-title>. <source>Inf. Syst.</source> <volume>57</volume>, <fpage>195</fpage>&#x2013;<lpage>206</lpage>. <pub-id pub-id-type="doi">10.1016/j.is.2015.10.006</pub-id> </citation>
</ref>
<ref id="B26">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C. Q.</given-names>
</name>
<name>
<surname>Sen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Rao</surname>
<given-names>N. S. V.</given-names>
</name>
<name>
<surname>Brooks</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>November</surname>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Efficient Network Detection of Radiation Sources Using Localization</article-title>,&#x201d; in <conf-name>IEEE Nuclear Science Symposium</conf-name>, <conf-loc>Seattle, WA, USA</conf-loc>, <conf-date>November 8&#x2013;15, 2014</conf-date>. </citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C. Q.</given-names>
</name>
<name>
<surname>Berry</surname>
<given-names>M. L.</given-names>
</name>
<name>
<surname>Grieme</surname>
<given-names>K. M.</given-names>
</name>
<name>
<surname>Sen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Rao</surname>
<given-names>N. S. V.</given-names>
</name>
<name>
<surname>Brooks</surname>
<given-names>R. R.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Network Detection of Radiation Sources Using Localization-Based Approaches</article-title>. <source>IEEE Trans. Ind. Inf.</source> <volume>15</volume> (<issue>4</issue>), <fpage>2308</fpage>&#x2013;<lpage>2320</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2019.2891253</pub-id> </citation>
</ref>
<ref id="B28">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2012</year>). &#x201c;<article-title>Radioactive Target Detection Using Wireless Sensor Network</article-title>,&#x201d; in <source>Computer Informatics, Cybernetics, and Applications</source> (<publisher-name>Springer Science</publisher-name>). <pub-id pub-id-type="doi">10.1007/978-94-007-1839-5_31</pub-id> </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Sullivan</surname>
<given-names>C. J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Identifying Anomalous Nuclear Radioactive Sources Using Poisson Kriging and mobile Sensor Networks</article-title>. <source>PLoS ONE</source> <volume>14</volume> (<issue>5</issue>), <fpage>e0216131</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0216131</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>