The helmet is made of plastic material and has many holes all around its surface, into which 24 antennas are wedged. The antennas are distributed all over the helmet surface to provide an uniform irradiation to the patient’s head. The antennas can operate both as transmitters and receivers. Indeed, the switching matrix has been designed to route the signal generated by the VNA to one single antenna keeping all the others as receivers. Since the VNA has two ports (one transmitting and one receiving), a controller configures the switch matrix in such a way that only one transmitter and one receiver can be simultaneously active and connected to the VNA. From the ratio between received and transmitted signals, the VNA derives the scattering parameters in terms of magnitude (i.e., attenuation) and phase shift, which are ultimately converted into complex numbers with a real part and an imaginary part.
2.1. MI Algorithm
When monitoring the evolution of the stroke, scattering data are acquired periodically. The image reconstruction algorithm aims at detecting variations of the blood mass across two successive data acquisitions. The algorithm casts these variations as dielectric contrast changes
, which in turn determine variations
of the scattering matrices collected at two different time instants. Since such variations are small with respect to the size of the investigated region, which is supposed not to change, the imaging problem can be reliably linearized, by adopting the distorted Born approximation [
9]:
In Equation (
1),
is a linear and compact integral operator relating the differential data
to the unknown of the problem
, while
and
denote the positions of the transmitting and receiving antennas, respectively.
The kernel of the operator is , where is a point in the head, which is the region of interest (ROI), and is the “background” electric field radiated in each point of the ROI by the antenna located at when .
To solve linear inverse problems, such as the one in Equation (
1), the singular value decomposition (SVD) of
is commonly used as the first step [
9].
Since data are always affected by noise, the truncated SVD (TSVD) of the operator
is used as an effective and regularized inversion strategy to reach a stable solution and avoid error amplification [
9]. In particular, let
be the singular values of
and
and
the vectors of its singular functions (
and
are complex numbers, while
are real numbers); the unknown differential contrast
in each point
of the ROI is obtained as:
where
m is a threshold that corresponds to the index at which the TSVD summation is truncated. It is worth noting that the singular functions
represent a basis for the object space, i.e., the space of the unknown of the imaging problem. Since TSVD restricts the object space to the one spanned by the first
m singular functions, one would use a threshold as large as possible to improve the accuracy of the approximation. However, since this may lead to error amplification, one might consider a low value of
m, which assures the stability of the solution against the amount of noise affecting the data. Clearly, the threshold has to be chosen in such a way to assure a good trade-off between accuracy and stability. Since it is difficult to know in advance the best threshold value, the algorithm is run with different values of
m and different corresponding images are generated. For more details on the algorithm, we refer the reader to Reference [
10].
We initially implemented the TSVD algorithm in C++ and included the Eigen libraries to simplify the matrix manipulations required by the algorithm [
11]. The pseudo-code of the algorithm is reported in Algorithm 1. The main parameters of the algorithm and the data types are listed in
Table 1 and
Table 2, respectively. Note that all variables are complex numbers except for
and
, which are real numbers. The output of the computation is
in the pseudo-code and corresponds to an image that can be plotted, highlighting the variation of the contrast in each point of the ROI.
Algorithm 1 Pseudo-code of the original software implementation |
- 1:
SVD; ▹ Singular Value Decomposition of operator, computed offline - 2:
measured variation of scattered field - 3:
; - 4:
whiledo - 5:
m = index of singular value closer to ; - 6:
; - 7:
for to m do - 8:
; - 9:
; - 10:
; - 11:
; - 12:
end for - 13:
storage ; ▹ stored in flash SD memory - 14:
; - 15:
end while
|
Note that the TSVD threshold is not set explicitly as a specific index of the singular value, but rather as a value in decibel,
in Algorithm 1 and
Table 1. This value expresses the relative magnitude of the threshold singular value with respect to the first and most important singular value. This requires that the singular values
are first sorted in decreasing magnitude and that the index
m is found as the index of the singular value
whose relative magnitude is closest to the threshold (Line 5 of Algorithm 1). As shown in
Table 2, there are up to
= 576 singular values. This number is obtained as the product of the number of transmitters
and the number of receivers
(in this case both are 24, hence 576).
Note also that the
while loop runs from minimum threshold
up to maximum threshold
with step
, whose values are in
Table 1. This is how various images are generated, as discussed above.
In
Figure 2, an example of reconstructed image obtained with a threshold value of −80 dB is given. With this threshold, the first 299 singular values out of 576 are used. The different
slices in the figure, which represent the different sections in the axial plane of the three-dimensional ROI of a head, show with a yellow color the blood mass inside a blue background.
Figure 3 is another example of imaging obtained with a threshold value of −20 dB, which corresponds to selecting the first 120 singular values. Clearly, this value of the threshold cannot properly reconstruct the image.