Real-Time Implementation of Multiband Spectrum Sensing Using SDR Technology

In this work, a novel multiband spectrum sensing technique is implemented in the context of cognitive radios. This technique is based on multiresolution analysis (wavelets), machine learning, and the Higuchi fractal dimension. The theoretical contribution was developed before by the authors; however, it has never been tested in a real-time scenario. Hence, in this work, it is proposed to link several affordable software-defined radios to sense a wide band of the radioelectric spectrum using this technique. Furthermore, in this real-time implementation, the following are proposed: (i) a module for the elimination of impulsive noise, with which the appearance of sudden changes in the signal is reduced through the detail coefficients of the multiresolution analysis, and (ii) the management of different devices through an application that updates the information of each secondary user every 100 ms. The performance of these linked devices was evaluated with encouraging results: 95% probability of success for signal-to-noise ratio (SNR) values greater than 0 dB and just five samples (mean) in error of the edge detection (start and end) for a primary user transmission.


Introduction
The concept of cognitive radio (CR) consists of a radio with the ability to take advantage of 'spectral gaps' in a timely manner to continue transmitting [1]. CR has been considered as one of the outstanding solutions for spectrum shortages. CR techniques provide the ability to use or share a spectrum in an opportune manner, as well as operate on the best available channel. In this way, CR technology allows secondary users (SU), also called unlicensed users, to determine which parts of the spectrum are available and detect the presence of licensed users or primary users (PU). When an SU operates in an unauthorized band, the CR selects the best available channel, coordinates its access, and, at the right moment, leaves the channel when a PU is detected to avoid interferences [2]. Accordingly, the CR paradigm involves the stages of spectrum sensing, decision, sharing, and mobility [3]. Sensing is the ability to timely detect the start of PU transmission in the spectrum space by the SU. The decision concerns the SU's ability to select the best available spectrum band. Sharing refers to the coordinated access to the channel selected by the SU, and spectrum mobility is the capacity of a CR to vacate the channel when a PU is detected [3]. The first stage of CR, i.e., spectrum sensing, is essential to determine the presence of a PU.
Spectrum sensing in a CR is a term that implies obtaining the characteristics of the spectrum through multiple dimensions, such as time, space, frequency, and code. These characteristics include modulation type, waveform, bandwidth, and carrier frequency. The concept of CR can be applied to other technologies such as the Internet of things (IoT). In [4], a survey focused on the classification and merits of spectrum sensing and spectrum sharing techniques was presented for this technology fusion. Future wireless communication services will require high performance, which will need, among other noise and primary user activity. This proposal was tested in a low-cost open-source sensing station. The proposed model detected TVWS with 9.6% more accuracy than current models. In [22], SDR and USRP devices were used to implement a communication system to detect interferences performing significantly better than the ED in the detection of weak interference, offering the capability of detecting 8 to 10 dB lower values of interference. In [23], experimental results of the USRP hardware implementation for the detection of 'gaps' in the spectrum were presented with the advantage of requiring fewer samples than the ED and obtaining the same performance. In [24], a new SDR platform architecture was proposed that implements different modulation techniques, and this architecture showed favorable gains with an advantage over traditional techniques, such as spatial multiplexing multipleinput multiple-output (MIMO) systems. In [25], a distributed CR network architecture was presented, in which each CR knows local network state information and performs spectrum sensing, channel estimation for joint routing, and channel access subject to realistic network topology and physical channel effects. The authors in [26] presented a CR system in a real environment in which nodes can either communicate with other nodes via (i) a direct communication with the base station at the macrocell, which helps to enhance network performance, or (ii) device to device that improves spectrum efficiency, whereby traffic is offloaded from macrocell to small cells, using two USRP platforms combined with the GNU radio software toolkit. In [27], the authors used USRP with Raspberry to develop a distributed wireless network in which nodes can communicate with other nodes independently and these can take decisions autonomously. In [28], a small-scale testbed was proposed for dynamic spectrum access in a CR network to find a common channel for communication between two devices (peer to peer, using USRP). A technique for dynamic spectrum access was also presented. In [29], a didactic spectrum analyzer application with multiple functions was presented that uses an SDR device at a very low cost.
Many important contributions related to CR have been implemented considering USRP devices. Nevertheless, in this work, the main motivation consists of showing that SDR devices can be useful for providing information about how a theoretical contribution could behave implemented in real time without a considerable investment compared to the high economic cost that could represent USRP devices [30,31].
This work is organized as follows: in Section 2 a brief description of the considered SDR devices is presented. In Section 3, the implementation of the MBSS technique using SDR technology is explained. Section 4 presents the implemented scenario and results. Section 5 provides the conclusion and a brief discussion.

Software-Defined Radios
During the last few decades, telecommunications have been in constant evolution. Among the most relevant technological contributions is the digital processor. This item offers to radio equipment the flexibility of a programmable system. In other words, the behavior of a communication system can be modified simply by changing its software. This benefit introduced a new radio paradigm called software-defined radio. Under this paradigm, the task of configuring the behavior of the radio is transferred to the software, leaving the hardware only to implement the radiofrequency front end. With this, the radio is no longer static, it is defined by its circuits and becomes a dynamic element, which can change its operational characteristics, such as bandwidth, modulation, and coding rate, even modified during the execution time according to the software configuration [32].
SDR is defined as "radio in which some or all physical layer functions are defined by software" [32]. In SDR devices, the software modules are executed in real time on microprocessor platforms or digital signal processors. Moreover, most of the devices consider FPGA for transmitting or receiving radio signals. The main operational characteristics of SDRs can be modified at runtime; the system can be easily reconfigured to perform different functions as needed. Due to this, transmitters (Tx) or receivers (Rx) can be created for any type of signal through software or firmware functions [26,27].
SDRs can be used in various radiofrequency technologies, such as Bluetooth, WLAN, GPS, Radar, WiMAX, or LTE. The rapid evolution of wireless communication systems and their standards has made base station software updates a more attractive solution than costly base station replacement, both for the military sector and for the commercial sector. For example, updating the software of the satellite communication equipment deployed will allow changes in communication functionality and multiple uses during the life of the satellite [33]. SDR opens a range of possibilities by making existing types of radio applications easier to implement and by enabling new types of applications. In particular, the computing power and flexibility of the SDR can be leveraged to develop CR [34].
The emergence of relatively affordable devices that receive and digitize radiofrequency signals has brought SDR to the desks of many communications engineers. Nevertheless, the latest availability of very-low-cost SDR devices, such as RTL-SDR, has brought SDR to the home desks of undergraduate and graduate students, as well as professional engineers and creator communities [35]. In this work, the implementation of an MBSS technique is proposed with the use of general-purpose communication devices such as SDR-RTL [36], HackRF One [37], and LimeSDR Mini [38]. Table 1 shows the main characteristics of these devices.

Implementation of MBSS Technique Using SDR Technology
One of the main motivations of the work, previously developed by the authors [12], is to propose a MBSS technique that is both (i) adequate for correctly detecting a primary user and (ii) having a computational complexity allowing real-time implementation in a wireless communications environment. Low-cost devices easy to install and program, such as the SDR devices explained above, are considered. Hence, Figure 1 shows the general scenario for the MBSS using low-cost SDR devices to know the occupation of a wide spectrum interval. In general, the implemented scenario consists of four big blocks: a sliding time window, an estimator of the power spectrum density, a block for reduction in impulsive noise, and a block to determine frequency edges and detection of PUs. Basically, each device collects information from the environment (i.e., each one working as an SU), and this information is processed by the estimator of the power spectral density (PSD) to get the spectrum in different bands. Thereafter, this PSD is modified to eliminate noise, especially impulsive noise, through an MRA (discrete wavelets). Lastly, the last block allows deciding if a PU is present or not using discrete wavelets, machine learning, and the Higuchi fractal dimension. Next, each block is described in detail.

Sliding Time Window
The block corresponding to the sliding time window is detailed in Figure 2. In this block, the signals received by the SDR devices are conditioned, updating the perception every 100 ms. Each SDR device delivers a complex signal r i (n) = x Ii (n) + jx Qi (n) for i = 1, 2, . . . , N for the N devices sequentially connected. Basically, for each considered SDR device, three parameters are set: the sampling rate f si , the center frequency (of reception), and the gain. For the devices used in the proposed scenario, we have a sampling rate of 20 MHz for the HackRF One, 3.2 MHz for the RTL-SDR, and 30.72 MHz for the LimeSDR. The initial gain of each device is 0 dB, which means that the power of the signal perceived by each device is not increased. Nevertheless, this parameter can be modified if the PU transmission power is imperceptible by the SDR device (this value is chosen by the user).
The central frequency F CT of desired spectrum (multiband spectrum bandwidth) is chosen by the user according to the following steps ( Figure 3):

•
The bandwidth of each connected SDR device is added to conform the complete bandwidth Bw T to be observed.

•
The total bandwidth Bw T is centered in F CT . • Lastly, the center frequency f Ci of each connected device is assigned.

•
Steps are repeated every time the value of F CT is changed.

Power Spectrum Density Estimation
From the received signal r i (n) = x Ii (n) + jx Qi (n), which is a complex signal that belongs to the time domain, the PSD is obtained on a discrete linear scale of the frequency R i (k) through the Welch estimator [39] for each connected device every 100 ms (frame time).
Welch's method [40] (also called the periodogram method) for estimating power spectra is carried out by dividing every signal frame of 100 ms into successive blocks or windows, estimating the periodogram (i.e., the squared magnitude of the fast Fourier transform (FFT)) for each block, and averaging over the total number of windows forming each frame. The m-th windowed, zero-padded block is considered from the signal r i (n) denoted by where h is defined as the window hop size and K denotes the number of available windows. Then, the periodogram of the m-th window is given by and the Welch estimate of the power spectral density is given by In other words, it is just an average of periodograms across time over each frame of P points in 100 ms. When ω(n) is the rectangular window, the periodograms are formed from nonoverlapping successive blocks of data. For other window types, the analysis frames typically overlap. In this implementation, a 50% overlapped Hamming window is used and the number of M samples contained in R i (k) is chosen according to the device: 512, 1024, 2048, or 4096 samples for the RTL-SDR. For the cases of HackRf One and the LimeSDR Mini, the number of samples can be 1024, 2048, 4096, or 8192. These essential data represent a compromise in the real-time implementation between having many samples to locate the PU with great precision or choosing few samples sacrificing the precision to locate the transmission of the PU to reduce the execution time and the assignment of computational resources. The structure and operation of this block are shown in Figure 4.

Impulsive Noise Reduction
Due to the nature of the devices used in this work, the addition of a classical noise (flat spectrum) is disturbed by the apparition of spikes in the PSD estimation. These spikes are called impulsive noise and, in general, are more significant with the SDR devices than those observed by a commercial spectrum analyzer. Eliminating this type of noise is necessary to improve the results obtained by the proposed MBSS technique. Many methods have been proposed to mitigate this noise, even novel techniques such as compressed sensing [41] or a recursive least square method based on the state space variant [42].
In this research work, an impulsive noise elimination module is proposed, which is undoubtedly a novel proposal to mitigate abrupt noise changes in the PSD signal that is processed by the MBSS technique. The operation of this module is shown in Figure 5. The elimination of impulsive noise along every frame is done through the approximation and detail coefficients issued from an MRA [9] acting over the PSD estimate. In the next sections, the operation of each submodule that shapes the impulsive noise elimination module is described in detail.

Multiresolution Analysis: PSD Decomposition
First, to the R i (k) signal (PSD in a linear scale, the result of applying the Welch estimator), the MRA is sequentially applied to i-th device, resulting in the approximation coefficients a Li at decomposition level L and the detail coefficients d ji at levels going from j = 1, 2, . . . , L, as given by Equation (4) [9].
The detail coefficients correspond to the discrete wavelet transform of R i (k) in a dyadic scale. It is well known that the detail coefficients of a signal decomposition, via the MRA, keep the information about singularities (abrupt changes in the signal), which is the case concerning impulsive noise. Because of that, the proposal is based on modifying these detail coefficients to alleviate this problem generated by the impulsive noise. For this, the proposal is only considered at level L = 1, i.e., the approximation coefficients a Li and the detail coefficients d ji . The constructed wavelet space from the MRA is the wavelet 'Haar'. This is shown in Figure 6.

Coefficient Scaling
Subsequently, a scaling is made to the detail coefficients d ji of each device i. In this process, 0 is assigned to the coefficient with the smallest value, 1 is assigned to the coefficient with the largest value, and a value between 0 and 1 is assigned to the remaining coefficients d ji as a function of its original value, resulting in the dd ji signal, as it is shown in Figure 7.

Noise Inhibition through Coefficients
To reduce high-frequency noise, principally abrupt changes (impulsive noise), in the PSD, the values of the detail and approximation coefficients are reassigned. This task is the most important of this block of noise reduction. The flow chart that describes this submodule is shown in Figure 8. Once the detail coefficients dd ji have been scaled for each device i, a double-threshold condition, L 1 < dd ji < L 2 L 1 = 0.01, L 2 = 0.4 , is applied to the scaled coefficients dd ji , and these indices must not be consecutive. The indices that satisfy both conditions are stored in the variable ind.
The detail coefficients dd ji of the ind localities and those that are around, previous, and next, are assigned the value of 1 × 10 −15 . Practically, the detail coefficients are turning off, such that these components do not affect the next signal to be reconstructed, which is where high-frequency noise exists. In the remaining localities of d ji , the original value of d ji is assigned.
With the previous processing, the ind indices of the detail coefficients coincide with the indices of the approximation coefficients, which also have to be modified to remove some abrupt changes when reconstructing the signal; this coincidence is due to the fact that the level of decomposition is L = 1. To modify the approximation coefficients a Li , a close colony of three samples of approximation coefficients is replicated in the ind indices mentioned. In the remaining localities of a Li the original value of a Li is assigned.
The result of this block corresponds to the approximation coefficients a Li and the detail coefficients d ji with the corresponding attenuations to eliminate the different noise variants mentioned above. Figure 9 shows an example of the difference between the original coefficients and those modified by this block.

PSD Signal Reconstruction
In this block, the new coefficients are used as an input parameter. With them, a wavelet reconstruction is done (again using 'Haar'). The result of the reconstruction is the signal R i (k), which is the PSD with the attenuation of the different noise variants on a linear scale. This processing can be seen in Figure 10. Taking the previous example, the result of applying the wavelet reconstruction submodule is shown in Figure 11 on a logarithmic scale. In this figure, it is possible to distinguish the changes between the original PSD and the PSD modified by the noise inhibition module.
Another example is shown in Figure 12. This same difference is observed here using two RTL-SDR devices with F CT = 90.8 MHz, a band exclusively used for broadcast radio [43]. Furthermore, it is possible to analyze a larger frequency range based on the number of connected SDR devices.  In the examples shown in Figures 11 and 12, there are different PSDs that show two challenges. In Figure 11, an abundance of high-frequency noise with very sudden changes is shown, and Figure 12 exhibits an abundance of impulsive noise; in both cases, the noise inhibitor works correctly.

Impulsive Noise Reduction Algorithm
This section presents the pseudocode used for the impulsive noise reduction block.
a Li ← a Li 6.

Detection of Primary Users
This section presents the last block of this implementation: the detection of PU s in the spectrum. This procedure receives the PSD on a linear scale R i (k) as an input parameter and delivering two outputs: (i) the signal R i−dBm (k), which is the PSD on the logarithmic scale, and its occupation (i.e., starts and ends of frequency edges of detected bands); (ii) the binary decision, i.e., whether each of these detected bands corresponds to noise or a possible PU transmission. This structure is shown in Figure 13. This block consists of different submodules, as shown in Figure 14: (i) detection of frequency bands via the MRA and ML (in this submodule, the MRA is used to obtain the approximation coefficients, which are classified with the K-means algorithm and obtain the possible spectral windows; (ii) detection of PUs via the HFD (in this submodule, the autocorrelation of each window is calculated through the fractal dimension of Higuchi. At the end of this block, each spectral window is obtained on a logarithmic scale, as well as the occupation of each window. This MBSS technique was completely detailed in the previously published work by the authors in [12]. In this new proposal, the novelty is the developed platform to implement this technique using general-purpose communication devices.
In Figure 14, we can observe the result of applying this detection block. Here, the occupancy signal, indicating a PU transmission or noise, is displayed as a binary representation updated every 100 ms.

Real-Time Experiments and Results
This section presents the development environment, the parameters considered, and the results to validate the real-time MBSS using SDR devices through a controlled scenario.

Implemented Scenario
The implemented environment is presented in Figure 15. Here, four SDR devices were employed. Three of these four SDR devices were established as SU s and one was established as a PU. Additionally, a cellphone was used as a PU. Characteristics of each device used, as well as the parameters associated with the experimentation, are described in Table 2. In this real-time implementation, all these devices were controlled by an application developed by the authors that is briefly explained later. The order in which the SDR devices were located was dictated by the next priority: LimeSDR mini, followed by HackRF One and, finally, RTL-SDR. This priority was given by the bandwidth that each device can handle. Accordingly, the display and alignment of the signals in the application were carried out: (i) the display of the signals was based on the bandwidth of each connected device; (ii) the alignment of the signals was made according to the device that can perceive the widest bandwidth. That is, all the signals would be at the same power level as the device with the highest bandwidth; nevertheless, this processing does not change the shape of the PSD or the occupation of the signal in any way. This alignment only allows for better aesthetics in the application. In addition to the signal perceived by the (RTL-SDR), 1/8 of the beginning and 1/8 of the end of the frame were omitted, which means that 1/4 of the original frame was omitted (see Figures 14 and 16). With this processing, distortion in the signal was avoided at the beginning and at the end. This distortion was due to the quality of the RTL hardware. Due to this phenomenon, the RTL-SDRs only perceived 2.4 MHz of bandwidth (see Table 2  According to the parameters and configurations mentioned in Table 2, the SU s were observed as contiguous bands, as shown in Figure 16, which means that a total of 24.8 MHz of bandwidth was perceived. In this figure, it is shown that HackRF One observed the transmission made by PU 2 , and the RTL-SDRs, SU 2 , and SU 3 observed the transmission made by PU 1 .

Signal Processing in the Controlled Implementation
This section describes in detail the processing and parameters used in the controlled implementation processing. Figure 17 shows two added modules (marked in pink color): (i) the first to add a complex Gaussian noise (AWGN, additive white Gaussian noise) noise in the time domain. This module permits modifying the SNR in the controlled implementation to have an environment to close to reality as much as possible. Noise is added to the signal perceived by the SU s before processing it; (ii) the second is the block that stores the data and does the statistics to know the efficiency of this work in a real wireless communication environment.  Figure 18 shows the structure of the artificial noise addition block, where there are three input parameters: (i) the P SUi signal, which is the power with each device i transmits, (ii) the SNR value that the controlled experiment will have (this value is the same for each SDR device; see Table 3), and (iii) the complex signal r i (n) = x Ii (n) + jx Qi (n) perceived by each SU i . The experimentation values for the controlled implementation are shown in Table 3. Each SU was sensed for 16.66 h at each SNR value, perceiving 2048 samples per frame for the HackRF One and 1024 samples per frame for the RTL-SDRs.  The artificial noise addition block uses the following pseudocode to calculate the noise that will be added to the r i (n) = x Ii (n) + jx Qi (n) signal: • Function Artificial_Noise_Addition (r i (n), P SUi , SNR_value) • Sigma = float (P SUi /(10**(SNR_value/10))) • mu = 0 • real = np.random.randn ((len(pxx)))*(sigma**0.5) + mu • imag = np.random.randn ((len(pxx)))*(sigma**0.5) + mu Lastly, the Computing statistics and performance block stores the Occupation(R i−dBm (k)) signal that indirectly contains (i) the start and end edges of a transmission, which form the frequency windows, and (ii) whether these windows correspond to noise or a PU transmission. Subsequently, the signal transmitted by each PU i is compared to the signal received by each SU i .

Results
This section presents the results obtained for the MBSS technique. The two parameters evaluated in this implementation were, firstly, the probability of success (PS) which was the result of counting the total of correctly located frequency windows with respect to the total number of frequency windows. To determine this value, four possible cases were considered ( Figure 19): 1.
The window that corresponds to a PU transmission which SU classifies as PU transmission is considered a true positive (TP) value.

2.
The frequency window that corresponds to a PU transmission which SU classifies as noise is considered a false negative (FN) value.

3.
The window that corresponds to noise which SU classifies as a PU transmission is considered a false positive (FP) value.

4.
The frequency window that corresponds to noise which SU classifies as noise is considered a true negative (TN) value.
As a function of these values, the PS is given by The second parameter is the number of samples in error, which is the number of samples between the edge of the PU transmission and the edge detected by the MBSS technique.
Each SDR device used in this implementation had its own PS graph for each SNR value, as shown in Figure 20. The RTL-SDRs presented a better result to detect the frequency windows, which can be a PU transmission or noise, compared to the HackRF One. The PS for the RTL-SDRs was greater than 0.98 for values of SNR ≥ 0 dB and the PS for the HackRF One was greater than 0.94 for values of SNR > 0 dB. These values are very similar to those obtained in the simulated work [12] (i.e., PS greater than 0.98 for values of SNR > 0 dB). Furthermore, the implementation of an energy detector (ED) [44] was carried out with an RTL-SDR (denoted SU 4 ) at f C4 = 846.2 MHz with a bandwidth of 2.4 MHz, which means that SU 4 was perceived in the same radiofrequency space as SU 2 . For this technique, the threshold of SU 4 was placed at −80 dBm, which is the same value that was chosen for the cluster selection stage in the algorithm to classify the approximation coefficients in [12] through the K-means technique. Figure 21 shows the result of applying this conventional ED. In this case, the average estimated PS was 0.64 for values of SNR ≥ 5 dB. This poor result is not surprising, due to the nature of the proposed methodology. Indeed, even if the considered band is a single one, the PS is calculated as an average of detected occupation windows inside the band (i.e., an MBSS is created for each considered SDR, thereby randomly varying the transmission location) to further decide if each detected window is free or not, via the HFD. In the case of the ED, many more windows are detected in error, inducing a lower PS estimate. This is due to the misclassification of the PSD signal by the ED in a short frequency range. This phenomenon greatly reduces the PS even though it correctly locates the PU transmission. We also estimated the samples in error, defined as the samples that detected the start or end edge of a PU transmission. Figure 22 shows that, for values of SNR ≥ 0 dB, the samples in error were stable for each SU; however, the RTL-SDRs presented a better result for detecting PU with greater precision, with between three and five samples on average for samples in error, whereas the HackRF One had between eight and nine samples, which is a good performance. The samples in error presented in [12] were between two and three samples on average. The number of samples in error for SU 4 (conventional ED) was 36 on average (see Figure 23). Due to the nature of this methodology, events such as high-frequency noise, impulsive noise, or abrupt changes in the PSD generate more frequency windows due to the misclassification of the PSD signal by the ED in a short frequency range. ED stands out as a simple technique to implement with low processing resources. Nevertheless, it is a technique that tends to fail very quickly, especially when the environment has a lot of high-frequency noise or impulsive noise.

SDR-UAMI-MBSS Application
Lastly, the proposed methodology for the implementation of the MBSS technique using low-cost communication devices was consolidated in the development of an application named SDR-UAMI-MBSS. This interface shows the PSD and the occupation of a spectrum interval (see Figure 24), specifically, the radioelectric space that the SU s (connected SDR devices) can visualize as a whole; it consists of advanced digital signal processing techniques and was developed in Python language. This application is easy to use, intuitive, and quite descriptive. This allows the user to have an easy interaction. Furthermore, it is an open-source application; it also allows knowing precisely what each module does, and whether it is possible to improve it. The SDR-UAMI-MBSS interface is a branch of the SDR-UAMI application [29].

Conclusions
In this work, an implementation for MBSS using SDR communication devices was presented. This development was done in Python language, and the algorithm works sequentially updating the information every 100 ms. The HackRF One device showed good performance in (i) correctly detecting noise or a possible PU transmission, and (ii) locating the start and end of a possible PU transmission. However, this performance cannot be significantly improved due to the noise cancellation module. Modifying the approximation coefficients for a neighboring colony indirectly affects the precision in detecting PU transmission. Practically, using this methodology, the precision for detection is sacrificed to improve the probability of success.
The impulse noise elimination module presented in this work showed good performance in eliminating high-frequency noise and abrupt changes in the signal. It was concluded that the implemented MBSS technique performed well, with similar results to the simulated results (0.98 of PS and two (mean) samples in error when locating the PU transmission) [12]. Nevertheless, this performance may be improved if this device uses a higher-gain antenna and if the SDR deployment is done in parallel, permitting the execution time to be reduced, as well as computing resources to be used more efficiently.
This MBSS technique also presented better performance than a conventional ED, in accurately detecting the transmission of the PU and in detecting its location. Moreover, with this algorithm, it is possible to use seven SDR devices seen as SU s . As future work, it is possible to develop a network for the MBSS using the same principles outlined in this work. Acknowledgments: The authors are grateful to CONACYT, PRODEP, and the Department of Electrical Engineering of UAM-I for providing the necessary support for this work.

Conflicts of Interest:
The authors declare no conflict of interest.