I-Q diagram utilization in a novel modulation classification technique for cognitive radio applications

We report here on the utilization of signal in-phase-quadrature (I-Q) diagrams in a novel modulation classification (MC) technique. This MC technique is able to classify linear digital single-carrier modulations as well as multi-carrier modulations. The method uses the waveforms’ I-Q diagrams and, by employing a combination of k-center and k-means algorithms, determines the type of modulation. Implementation and refinement of the novel single-carrier modulation classification technique using the I-Q diagrams are discussed in detail. Further, a model for classification of multi-carrier signals is presented, including Gaussianity, cyclostationarity, and autocorrelation tests for further extracting orthogonal frequency division multiplexing signal parameters. Finally, results of this method are presented and compared to other classification methods, and the considerations for implementing the method in hardware are briefly discussed. As a future direction of this research, the performance of the algorithm in fading channels is an interesting topic to pursue.


Introduction
One of the most promising new technologies for utilizing radio spectrum efficiently is cognitive radio. A cognitive radio (CR) is defined [1] as 'an intelligent wireless communication system that is aware of its surrounding environment, learns from the environment, and adapts its internal states to statistical variations in the incoming RF stimuli by making corresponding changes in certain operating parameters (e.g., transmit power, carrier frequency, and modulation strategy) in real time, with two primary objectives: highly reliable communications whenever and wherever needed; and efficient utilization of the radio spectrum'.
The interest in developing new spectrum utilization technologies -combined with both the introduction of software-defined radios (SDRs) and the realization that machine learning can be applied to radios -is creating intriguing possibilities for promising technologies that are being incorporated in CRs. Figure 1 shows the overall behavior of a CR system. In this regard, the analysis phase of a CR consists of three main operations: signal detection, automatic (blind) MC, and demodulation of the signal. More than 20 years of research in the area of MC shows the importance of this process. Thus, MC is a very important intermediate step between signal detection and demodulation in CRs.
There are a number of MC methods reported in the literature and most of the current modulation classifiers can be categorized into two main groups: likelihood-based (LB) and feature-based (FB) classifiers [2].
Initial attempts to implement MC algorithms, circa 1980 [3], used analog-modulated signal time-domain parameters to accomplish automatic modulation recognition. Whelchel et al. [4], for the first time, used an artificial intelligence method (neural networks), as opposed to maximum likelihood method, to perform MC. They proposed a general demodulator and compared their results to the results from the maximum likelihood method.
One of the popular methods in the literature has been the use of maximum likelihood (ML) for modulation types. Wei and Mendel [5] have formulated a likelihoodbased approach to MC that is not limited to any particular modulation class. Their approach is the closest to a constellation-based MC. However, carrier phase and clock recovery have not been addressed. Lin and Kuo [6] have also proposed a sequential probability ratio test in the context of hypothesis testing to classify among several quadrature amplitude modulation (QAM) signals. Their approach is novel in the sense that new data continuously updates the evidence. Here, we present a new method for MC, which would fall under the category of FB classifiers but it has several key differences to previous methods and introduces several new capabilities. The flow diagram of the algorithm is shown in Figure 2.
In the first step, we determine whether we have a single-carrier or a multi-carrier signal. For the case of single-carrier modulation, we use I-Q diagrams of the received signals as unique features for classification and apply a clustering algorithm to extract those features. Similar methods using the constellation shape as a classification feature have been considered in the previous work [7,8], in which they utilize the fuzzy c-means clustering in their algorithms. Dealing with MC problems as a problem well suited for pattern recognition algorithms goes before the work in [9]. There have been other attempts to extract optimal features from signals. Histograms derived from functions like amplitude, instantaneous phase, frequency, or combinations of these have been used by [10] and [11]. Jondral [12] proposes a modulation classifier utilizing the pattern recognition approach for recognition of both analog and digital modulation types. They use instantaneous amplitude, phase, and frequency histograms as key features for classification. However, in this case, we have utilized a cascade of k-center and k-means algorithms to achieve much higher accuracy in determining the type of the modulation and also to reduce the complexity of the process. Later, we show that our new method gives better classification results compared to other methods for QAM and phase-shift keying (PSK) modulations.
For the multi-carrier modulation case, a number of steps such as Gaussianity, autocorrelation, and cyclostationarity tests are performed to identify and extract the parameters of the orthogonal frequency division multiplexing (OFDM) signal in order to complete the algorithm. Most of these methods have been previously discussed in the literature [13][14][15] and are well known. For channel estimation of OFDM systems, other methods have also been proposed, including ML [16] and maximum a posteriori (MAP) techniques [17]. We have also proposed a method based on our clustering algorithm to correct some of the frequency offsets and I-Q imbalances in a received OFDM signal. The details of these steps are presented independently in separate articles [18].
In its entirety, the problem of blind MC is very complex to solve. In order to address it, we make a few simplifying assumptions. SNR in this paper is the signal-to-noise ratio of the received signal after the received filters but before the A/D converter and is an indication of the quality of the communications channel, i.e., SNR = 10 log 10 P signal P noise .
Also, we assume that the signal is sufficiently oversampled. Oversampling at rate f s 4B, where B is the monolateral signal bandwidth (i.e., [−B, B]), eliminates aliasing in the cyclic frequency domain. In our algorithm, oversampling at this rate is essential in detecting multi-carrier signals, for which we have a cyclostationary degree of two. Finally, at this point, we are only considering additive white Gaussian noise (AWGN) channels and will consider fading channels at a later stage of the research.
We also assume an ideal A/D converter (i.e., no additional noise because of the A/D process, including dither) and a sampling rate of once per symbol at the output of the matched filter. Thus, whenever we refer to the number of samples being used in our simulations, especially our clustering simulations, we refer to samples taken from the output of the matched filter. This assumption means that we have also achieved timing recovery, which enables us to extract the I-Q diagram of the signal.
In Section 2, we first discuss the architecture of the algorithm. We overview the building blocks of the algorithm. This includes an overview of Gaussianity tests, the clustering algorithm for I-Q diagrams, and OFDM parameter extraction. Section 3 presents some of our results. Finally, in Section 4, we provide conclusions and future work including considerations for implementation in hardware.

Novel modulation classification algorithm
The first step in classifying the incoming signal is to perform a Gaussianity test to determine the presence or absence of a Gaussian signal. In OFDM modulation, all orthogonal subcarriers are transmitted simultaneously. In other words, the entire allocated channel is occupied with the aggregated sum of the narrow orthogonal sub-bands. Thus, the OFDM-modulated signal can be considered to be a composite of a great number of independent identically distributed (IID) random variables. Therefore, using the central limit theorem (CLT) a , we can claim that the amplitude distribution of the sampled signal can be approximated with a normal (Gaussian) distribution. However, this cannot be said for the case of a single-carrier modulated signal [15]. Hence, multi-/singlecarrier classification can be made with a Gaussianity test.
A few of the Gaussianity tests that have been discussed in the literature have been proposed for this task [8,15,[19][20][21]. Although there is a vast number of tests available, some of them, such as χ 2 test or Epps test, are not well suited for digital modulation due to their high noise sensitivity. The tests that have been recommended are modified versions of the aforementioned tests, e.g., the Giannakis-Tsatsanis and the Jarque-Bera tests are modified versions of χ 2 test.
Our study of previous work in the field of MC, especially in the classification of multi-carrier signals, reveals that a thorough study of the Gaussianity test as a best fit for this purpose has not been performed. For this purpose, we extensively studied the available Gaussianity tests [22] to find the most appropriate test to classify multi-carrier modulations versus single-carrier modulations, through various simulations, considering all possible elements and employing Monte Carlo method. The approach we take to find the best suitable test http://jwcn.eurasipjournals.com/content/2013/1/289 is to evaluate each test in simulations under different conditions of noise and different types of modulations. The tests that are considered are Jarque-Bera, Giannakis-Tsatsanis, Kolmogorov-Smirnov, Anderson-Darling, D' Agostino-Pearson, Shapiro-Wilk, Cramer-von Mises, and Lilliefors. We also include the χ 2 test to compare our tests against it. The Cramer-von Mises and Shapiro-Wilk tests have shown the fastest processing time overall. They consistently give better results compared to other tests. We have also seen that the processing time for the Cramer-von Mises test is almost half as that of the Shapiro-Wilk test, which makes it the most suitable test for our purpose. The details of these tests and their implementations and results are presented in [18,22].

Single-carrier modulation
A failed Gaussianity test indicates a single-carrier signal, which will branch the process to that of classifying various types of modulations in a single-carrier signal. Also, after extracting parameters of the OFDM signal, we will need to identify and demodulate each of its subcarriers.
We develop a procedure for classifying the single-carrier modulations using its constellation shape and a combination of k-means and k-center algorithms.
We provide here a detailed explanation of the clustering technique. This technique efficiently detects the center of clusters in each I-Q diagram. In order to explain the k-center and the k-means algorithms, we need to first introduce a few definitions.

Definition 1. D k , the cluster size for cluster C k , is defined as the least value for which all points in C k are
• within distance D k of each other, or • within distance D k /2 of some point called the cluster center.

Definition 3. Cluster size of partition S is defined as
In all of these definitions and those that follow, k is the k th cluster in the set of K clusters that belong to partition S. The quantities p and q also refer to different clusters in the same set of K clusters.

k-means
The k-means algorithm is our primary algorithm for clustering. It is the most common and well-known solution for clustering [23]. This algorithm tries to minimize the typical (average) distortion that we call cost, defined as: where x i is a member of the cluster C k and μ k is the centroid for cluster C k , defined as For a single cluster C, the distortion will be This cost is minimized when μ = mean(C), which is the same as Equation (4).

k-center
k-center clustering is similar to k-means, but uses a different optimization criterion. We use a version of this algorithm, called greedy k-center, to give the initial points for the k-means algorithm. k-center focuses on the worst case scenario, especially when there are outliers. k-center clustering aims at minimizing D and a cost function is expressed as follows, It minimizes the worst case distance to centroid μ k . Although called the centroid, unlike for k-means, μ k may not be the mean vector. In k-center clustering, among the clusters, only the worst cluster matters, whose farthest data point yields the maximum distance to the centroid compared to the farthest data points of the other clusters.
We use the greedy k-center algorithm to get the approximate locations of the cluster centers. Next, we use the results to initialize k-means and then use it to improve the results to find the exact locations of the centers. This extra step of using the k-center algorithm reduces the error considerably, especially for high SNR channels. Using the k-center algorithm to initialize the k-means algorithm also causes the k-means algorithm to diverge very rapidly. The performance of this combined algorithm can be compared to the k-means++ [24] algorithm. Our simulations show that using k-center to initialize the k-means algorithm may be slower than k-means++ by a factor of two but it will be several orders of magnitude more accurate, especially in higher SNR. http://jwcn.eurasipjournals.com/content/2013/1/289 Examples of the improved performance when using kcenter along with k-means are shown in Figure 3a, b. In these figures, (i) and (ii) are the performance of the algorithm when we use both algorithms together; (iii) and (iv) are when we simply use the k-means algorithm or the k-center algorithm independently.
In order to measure and quantify this improvement in performance, we need to define an attribute that would help us in comparing different methods. We also use this attribute to classify different single-carrier modulations.
For measuring the performance of the clustering algorithms and also to define a parameter that allows for comparison and classification of modulation schemes, we define a term called relative error or Cumulative Deviation Error (CDE) and denote it ε CDE . This error shows the deviation of cluster centers that are found by the algorithm from the actual modulation states, with respect to number of samples used. We define this error as: where μ i is the center of cluster i and X i is the corresponding symbol location of i th symbol in a constellation with K symbols. This term measures the Euclidean distance of the calculated cluster center from the actual constellation point and normalizes it with respect to power of the signal. Further investigation of the performance of these algorithms using CDE can be seen in Figure 4a, b, c. The simulations have been performed for up to 10,000 sample sizes and averaged over 100 runs. The signal has a 16-QAM modulation with SNR = 5, 15, and 30 dB. This figure compares the CDEs and clearly shows that the k-center algorithm yields considerably better performance than uniformly distributed random sampling for initializing the k-means algorithm. Now that we have these cluster centers, the next step is making the decision on the type of the modulation.

Multi-carrier feature extraction
Passing the Gaussianity test indicates that we have Gaussianity in our received signal. However, we have to take note that this can be due to the presence of plain AWGN in the channel. It has been shown that an OFDM signal is cyclostationary with period T s , where T s is the symbol duration in an OFDM signal [25,26]. So, in the next step of our algorithm, a cyclostationarity test is used to confirm if we indeed have an OFDM signal. If the test fails and no cyclostationarity is detected, then we can conclude that the incoming signal is not OFDM but rather white Gaussian noise. A byproduct of this process is the estimation of the OFDM symbol rate. After this step, the autocorrelation test determines the duration of the cyclic prefix, which as a result also gives us the data duration in an OFDM symbol.
Finally, we use a two-stage process of a bank of fast Fourier transforms (FFTs) combined with our Gaussianity test to determine the number of subcarriers. In [15], we see a detailed approach toward the estimation of the number of subcarriers. To estimate the number of carriers, N, we use a bank of FFTs. We assume that the number of subcarriers is a power of two, since OFDM signals are made using inverse FFTs.
This algorithm utilizes the fact that, if the output in one of the FFT branches is perfectly demodulated, then it will have only useful data and will no longer possess a Gaussian distribution. On the other hand, all the other branches will still show Gaussian property. By increasing the number of OFDM symbols processed in this FFT bank, a more accurate result can be obtained, but accuracy would be a trade-off with an increase in computation time to make the decision.
Assume the transmitter inverse discrete Fourier transform (IDFT) size is N and the classifier discrete Fourier transform (DFT) sizeÑ satisfyÑ = MN, where M ≥ 1 is a positive integer. The input signal to the classifier DFT is where X m k is the k th data symbol of the m th transmitted OFDM symbol and y m n is the n th IDFT output symbol of the m th transmitted OFDM symbol. The classifier performs anÑ-point DFT hence the k th entry of the DFT output is given by: When k M = l, where l is an integer, Equation (9) can be simplified as: The physical meaning of Equation (10) is that, if k is a multiple of M, then Y k , the k th output ofÑ-point FFT, is the summation of M original data symbols. Those data symbols come from the k M -th subcarrier of M transmitted OFDM symbols. Since M may not be a large number, Y k shows little Gaussianity. Therefore, the procedure will be as follows: with the incoming signal, we initiate aÑ-point FFT operation. The initial value ofÑ is set larger than the possible maximal value of the transmitter IFFT size N. Then, we test the output of the FFT for Gaussianity. If strong Gaussianity is shown, which meansÑ N, we divideÑ by 2 and apply the newÑ-point FFT. This cycle is repeated until the Gaussianity test fails, which implies the fact thatÑ = N. Therefore, the number of subcarriers is obtained. If no result is achieved by the end, this repetition continues untilÑ = 2 indicates an error in this step of determining the number of subcarriers, or in previous step of determining the validity of the Gaussian tests.
A cyclic prefix is necessary to determine the start of each symbol duration, and the number of subcarriers determines the length of the FFT that we need in the signal demodulator. This then allows us to use our single-carrier MC on each subcarrier and then demodulate it. The details of these steps have been presented in a separate article [18].

Results
The results presented here are obtained from simulations using MATLAB. The simulations were produced using MATLAB R2009a x64 on Windows 7. To test the algorithm against different types of modulations, we have considered the highly used modulations of M-PSK and M-QAM. diagrams of modulations to determine the modulation type. The results show superior performance of this algorithm when applied to various modulation schemes. For setting the threshold for the classifier, we calculate ε CDE in different scenarios. An example is shown in Figure 6. This shows not only a clear distinction between the correct modulation type and the rest of considered modulations but also shows a clear distinction between In high SNR environments (SNR ≥ 30 dB), the performance of the algorithm is almost perfect. As we move toward lower SNR (SNR ≤ 5 dB), we see that the cluster centers deviate from the actual positions of constellation symbols. For the case of PSK modulations, the degradation starts at higher SNRs compared to QAM modulations. This is due to the Euclidean distance between the symbols in PSK, which is relatively closer compared to QAM modulation with the same number of constellation points.
For the case of 256-QAM modulation in Figure 5b, we see a few missing symbols in the constellation, which decreases when we double the number of samples from 512 to 1,024. This is due to the fact that, for the case of 256-QAM modulation and 512 samples, there are only two samples per symbol on average in the I-Q diagram and, in some cases, there are no samples present for some of the clusters in the I-Q diagram. However, even for the case of 512 samples and 256-QAM, the shape of the constellation is still distinguishable. In our results, we show that the algorithm is fully able to classify the type of modulation even when a few symbols are missing as seen for the case of 256-QAM. It should be noted that, despite using only 512 samples of the signal, the algorithm yields accurate results even for higher order modulations such as 256-QAM. This also shows that, for http://jwcn.eurasipjournals.com/content/2013/1/289 lower order modulations, we would need much fewer samples.
To optimize the required number of samples for the algorithm in each case, we calculate the CDE error for different sample sizes. Figure 7 shows the result of this calculation for 64-QAM modulation. It is seen that there is a critical number of samples in the figure, where the error rate decreases significantly below that number compared to above it. For the case of 64-QAM, this point seems to be somewhere in the neighborhood of 400 samples. Thus, for a sample size of ≈400 in the case of 64-QAM, we achieve the optimum performance. For a lower number of samples, we get a very high error rate and for a higher number of samples, the improvement in the performance would not be cost effective.
We assume that N ≥ K, where N is the number of samples and K is the number of constellation points in a modulation (K is also defined as the number of clusters previously in this article, which converge for correct classification).
Tables 1, 2, 3 and 4 demonstrate the performance of the algorithm in different scenarios. As is evident from the results, the algorithm gives no incorrect classification for the conditions used. It either succeeds or gives a non-detection rather than a false detection of modulation. This is clearly an advantage compared to other methods. Table 2 is particularly notable, since in SNR = 2, 4, and 6 dB the algorithm classifies two different modulations as the correct modulation type. Thus, obtaining 64-QAM in 100% of the cases and 8-PSK in 4.1% only means that in some cases we achieve two results. This can of course be avoided if we increase our sample size.   We evaluated the performance of our MC algorithm using various simulations, and now, we compare our method to other classifiers using the logical criteria of calculation complexity, duration of calculations (i.e., how fast they classify different modulations), and their performance in low SNR (i.e., how accurately they classify). However, as mentioned in [2], it turns out that performance comparison of published classifiers is not straightforward due to a number of reasons. For example, some of the classifiers are designed to handle specific unknown parameters and, to evaluate them, they have considered different types of modulation. However, in order to compare our MC with those in the literature, we take [2] as a reference point and compare their results to our results, assuming the same parameters in our simulations. They examined a number of likelihood-based classifiers (such as average likelihood ratio test (ALRT), quasi-ALRT, generalized likelihood ratio test (GLRT), and hybrid likelihood ratio test (HLRT)), and feature-based classifiers (such as cumulant-based algorithms) by choosing binary PSK (BPSK) and quadrature PSK (QPSK) as candidate modulations in one case and 16-QAM and 8-QAM in the other. They defined the following parameters: • P cc as the percentage of correct classification, • 1000 Monte Carlo trials, • N = 100 the number of symbols, and • rectaugular pulse shape.
It must be noted that the likelihood-based tests from high complexity to low complexity are ALRT, quasi-ALRT, Table 2 Classifier results for 64-QAM modulated signal   GLRT, HLRT, and quasi-HLRT. We assume an ideal scenario for these simulations. Table 5 shows a comparison of our results with those presented in [2] for classification of BPSK versus QPSK modulations. As can be seen, ALRT-based classifiers still perform better in this case. Next, we compare our results with these classifiers for QAM modulated signals. We choose classification of 16-QAM versus 8-QAM and compare them with results from the same article. The results are compared in Table 6. The same number of symbols as in the previous table was used for this comparison. As it can be seen, in this case, the algorithm performs much better compared to other algorithms. It shows 6 dB improvement over ALRT and 8 dB over HLRT algorithms.
It was not possible to directly compare the complexity of different algorithms with the algorithm presented in this work. However, to give an idea on how fast this algorithm can perform, we used MATLAB's tic and toc functions in our code when performing our simulations. For 1,000 trials in the simulation, which included generation of the modulated symbols, adding noise, and classifying them, it took 10.47 s for QAM modulations and 8.31 s for PSK. Furthermore, we used the same approach to compare the performance of our clustering algorithm against k-means++, which showed that our clustering algorithm is slower by a factor of two to three but has a better accuracy. In fact, for the example of the case in Figure 4c, if we take a sample size of 1,000, its error rate is 37 dB lower. A summary of these results can be seen in Table 7.   We now discuss the complexity of our algorithm in a more analytical manner with hardware implantation considerations in mind.
From the above characteristics of a modulation classifier, it can be seen that there are two aspects to examine in order to determine the complexity of an algorithm. The first is how well it works in real-time and, second, how computationally complex it is. Although these questions are interrelated, the methods to deal with them and their results can be completely independent of one another.
To start the evaluation and to determine the algorithm complexity, we have to divide the algorithm into subalgorithms, for each of which we can determine the complexity. If we take another look at Figure 2, we observe that the algorithm consists of three parts in the worst case scenario, which is the case of a received multi-carrier signal. These three parts consist of the Gaussianity test, the OFDM feature extraction steps, and the clustering algorithm using I-Q diagrams.
To address how well the algorithm deals with real-time scenarios, we have performed a number of simulations to   calculate the processing time. A number of these results are presented in previous sections. However, to gain an idea of the degree of complexity of the algorithm, we use big O notation, which gives the asymptotic running time for an indefinitely large input. First, we consider the Gaussianity test. We have already concluded that the most appropriate tests for our purpose is the Shapiro-Wilk test and the Cramer-von Mises test. In the Shapiro-Wilk test, the MATLAB function polycal is used. This function is based on Horner's method of polynomial evaluation [27]. Based on this and the MATLAB code for the Shapiro-Wilk test, we can conclude that the test is O (N).
For the case of the Cramer-von Mises test, the MATLAB function interp1 is used, which is the function for linear interpolation. This function is also O(N). Thus, we can conclude that the first stage of the algorithm is O (N).
The second stage, OFDM feature extraction, consists of several steps. In this stage, the most computationally complex process is the autocorrelation process. By itself, the autocorrelation function is O(N 2 ). However, there are several efficient algorithms that can bring down the order of calculation to O (N log N).
Finally, the last step is the clustering algorithms of k-center and k-means. The greedy k-center algorithm that is used here is O(log N) [28,29]. For the case of kmeans, there are several different approximations. The most common algorithm that is used for k-means and is also implemented in MATLAB is called Lloyd's algorithm [30]. The algorithm is usually very fast, but there is no guarantee that it will converge to a global minimum, and the result may depend on the method of initialization. It can become very slow for some initial values and theoretically can take exponential time 2 ( √ N) to converge [31], where (·) shows the lower bound of required calculations. This can also be written as exp (n/ log 2 e), where e is Euler's constant. However, using the k-center algorithm for initialization guarantees that the algorithm converges quickly. Thus, we conclude for this stage that the approximation is O(log N).
After considering all of these stages, the stage with the highest complexity will determine the upper limit for the order of complexity of this algorithm. As can be seen from previous arguments, the second stage with a complexity order of O(N log N) has the higher bound. Thus, it can be concluded that this is the order of complexity of this MC algorithm.
It must also be noted, however, that in modern computers the complexity expressed by big O notation can be irrelevant. It is more important how long those operations take and what combinations of instructions can be processed simultaneously by the CPU. Also, tremendously important in determining computing time is the ability of the algorithm to fit into cache. An algorithm that takes O(N) running time in theory can end up taking much longer than a different algorithm that takes O(N 2 ) to compute the same result, if the O(N 2 ) operates in cache and the O(N) trashes the cache badly.
Some of these concerns can be seen in Figures 8 and 9. Figure 8 shows how at the highest level the delay is created. First, there is the decision that is being made in MC unit, then that result has to be passed to the demodulator, and finally, the demodulator has to reconfigure itself for the new modulation scheme. Thus, in order to decrease the delay and enable the process to run real-time, each step has to be addressed separately. In the MC unit in Figure 9, there are some steps that can be conducted in parallel. For example, after the buffer outputs the samples, the MC does not have to wait for the decision of the Gaussianity test and can send copies of the samples to OFDM feature extraction block and the single carrier MC block. This would ensure that, whatever the outcome of the Gaussianity test, the processing of the next step has already begun.
It should also be mentioned that, when writing the code, some careful considerations can increase the speed of the algorithm, e.g., in the clustering algorithm in MATLAB, using bsxfun (which applies the element-by-element binary operation to two arrays with singleton expansion enabled) instead of repmat (which replicates and tiles arrays) improves the speed by 30%. Also, when using GNU Radio along with universal software radio peripheral (USRP) in hardware implementation of the algorithm, dividing the array of samples into smaller blocks significantly reduces the latency. A reduction of size from 512byte packets to 64-byte packets reduces the total round trip latency by an order of 10.

Conclusion
The goal of this research was to design and implement a comprehensive modulation classification system to be used in a cognitive radio. A tree structure is proposed. We have extensively studied Gaussianity tests to determine the most appropriate test available for classifying singlecarrier signals from multi-carrier ones. The results show that a trade-off must be made between the tests' sensitivity to noise and how fast they perform. Based on the simulations, Cramer-von Mises and Shapiro-Wilk tests both have very good processing time and achieve good results when dealing with noisy signals.
We also applied the k-center and the k-means clustering algorithms to develop a method of classifying different single-carrier modulation schemes. This method proved to be very efficient in classifying the modulation schemes that have different I-Q diagrams. By applying these methods and by setting appropriate threshold levels, we achieved perfect classification for SNR > 5 dB when choosing between six different modulation schemes. It was shown that the performance of this algorithm is superior to the best published classifiers in being able to classify both QAM and PSK modulations with high accuracy in very low SNR.
There are further steps to improve the performance of the algorithm. For example, the performance of the algorithm in fading channels is an interesting topic, and there has not been a lot of work in the literature. Our preliminary results show that in the case of a single-carrier modulation, the MC algorithm will not be successful unless we have further information about the channel. One possible solution to the problem in single-carrier modulation is to add an additional step to estimate the channel before applying the algorithm. A possible solution for this has been given using sixth-order cumulants [32]. However, for the OFDM signals even in fading environments, the algorithm is successful. In this case, we already take several steps to extract the timing information of the OFDM signals and when we arrive at the final stage with the modulation of each of the subcarriers being unknown, we have the timing information necessary to build the I-Q diagram. Also, currently we require preprocessing in order to build the I-Q diagrams. However, extracting the timing data automatically can be another area of research for further development of this algorithm.
Finally, the algorithm is easy to implement and practical and can perform in real time using various optimizations proposed in this paper, when implementing it on available SDR boards to perform real-time MC on incoming signals.

Endnote
a The CLT states that the sum of a large number of IID random variables will be approximately normally distributed (i.e., follow a Gaussian distribution, or bell-shaped curve) if the random variables have a finite variance [33].