So far, many detection methods for SEFDM system have been proposed such as ID, SD, TSVD, FSD, TSVD-FSD, and ID-FSD [7]. All these methods are suitable for SEFDM system.However, each detection method has its own disadvantages. For example, the BER performance of ID and SD is worse than that of ID-FSD. But the complexity of ID-FSD is higher than that of ID and FSD. ID-FSD is considered to be the best detection method so far in terms of BER performance.

Figure 4 shows the frame of traditional receiver of SEFDM system. This process is opposite to that of transmitter. After the receiver get *N*- point data with AWGN channel, \(\frac {{{\mathrm {1 - }}\alpha }}{\alpha }N\) zeros are added to the end of *N*- points data and followed by discrete fourier transform (DFT) of length \(\frac {N}{\alpha }\). After DFT processing, a \(\frac {N}{\alpha }\) points data is acquired. Then, \(\frac {{{\mathrm {1 - }}\alpha }}{\alpha }N\) points data are removed at the end. The remaining *N*-point data is an estimate of the transmitter symbol. Generally, this data should be further processed with, for instance, ID, FSD, TSVD and so on. Further processing is the key to this system in terms of BER performance.

In this paper, an ICI compensation detection is proposed, which has the same BER performance as ID with appropriate number of iterations. In addition, a method that named iterative ICI compensation combining ID and IC is proposed, which has the same BER performance as ID-FSD but has much lower complexity.

The discrete symbol model of SEFDM reception can be represented as:

$$ \mathbf{R} = {\mathbf{CS}} + \mathbf{Z} $$

(7)

where **S** denotes the *N*-dimensional vector of transmitted symbols, **Z** represents the *N*-dimensional vector of Gaussian noise, **C** is an *N*×*N* correlation matrix that describes that the interference between the sub-carriers and **R** is an *N*-dimensional vector of distorted symbols after demodulating the received SEFDM symbols using a DFT operation.

### Iterative detection

ID has a good performance against interference and the mapping strategy is illustrated in Fig. 5 [7]. It can be seen that the whole constellation is divided into Zone A and Zone B. Depending on zones where the received symbols are located in, a different mapping strategy should be employed.

Zone A is more credible to interference compared to Zone B. In Fig. 5 the uncertainty interval is defined by *Δ**d*=1−*m*/*v*, where *m* is the *m*^{th} iteration, *v* denotes the number of iterations. Only points that fall in Zone A can be mapped to the corresponding constellation point. The points within Zone B keep unchanged and left to the next iteration. The interval is reduced gradually until it reaches zero in the iteration process since the effect of ISI has been canceled out in each iteration. The iterative operation is shown below [7]:

$$ {\mathbf{S}_{\mathbf{n}}} = \mathbf{R} - (\mathbf{C} - \mathbf{e}){\mathbf{S}_{{\mathbf{n - 1}}}} $$

(8)

where **R** is the is the symbol matrix received by the receiver; **S**_{
n
} is an *N*-dimensional vector of recovered symbols after *n* iterations, **S**_{
n
−
1
} is an *N*-dimensional vector of estimated symbols after *n*−1 iteration, **e** is an *N*×*N* identify matrix.

ID aims to eliminate the ISI step by step. In (8), **S**_{
n
−
1
} can be seen as an estimate value of **S** and named \(\overset {\frown }{\mathbf {S}}\)

To simplify the problem, assuming that there is no noise, which means **R**=**C****S**. Then the equation of ID can be written as:

$$ \begin{aligned} {\mathbf{S}_{\mathbf{n}}} &= \mathbf{R} - (\mathbf{C} - \mathbf{e}){\mathbf{S}_{{\mathbf{n - 1}}}}\\ &= {\mathbf{CS}} - (\mathbf{C} - \mathbf{e})\overset{\frown}{\mathbf{S}}\\ &= {\mathbf{CS}} - \mathbf{C}\overset{\frown}{\mathbf{S}} + \overset{\frown}{\mathbf{S}}\\ &= \overset{\frown}{\mathbf{S}} - (\mathbf{C}\overset{\frown}{\mathbf{S}} - {\mathbf{CS}}) \end{aligned} $$

(9)

Equation (9) shows the principle of the process in ID.

In ID, some symbols in Zone A should be detected after each iteration and replace the initial ones. However, these symbols will be detected again in the next iteration since Zone A becomes larger. It leads to the high complexity in ID. So, a simplified ID algorithm which only uses (8) to get the result may be more accepted in engineering implementation.

From (8) we can get the complexity of ID: the number of complex multiplication operations in per iteration is *N*^{2}; the number of complex addition operations in the first iteration is 2*N*^{2} and the number of complex addition operations in the rest each iteration is *N*^{2}. The reason of the phenomenon is that the value of the factor (**C**−**e**) has been calculated in the first iteration, which includes *N*^{2} complex addition operations. Additionally, *N* is the length of **S**.

### ICI compensation

The proposed IC is a detection method, which is designed specifically for SEFDM system. Unlike ID, FSD, and some other detection methods, IC aims to optimize the data before the DFT operation. In SEFDM system, some data is deleted after the IDFT operation, which results in non-orthogonal subcarriers. The IC aims to recover the data deleted in the transmitter so as to eliminate the ICI, in other word, compensate the loss caused by ICI. Theoretically, if the deleted data (the deleted \(\frac {{1 - \alpha }}{\alpha }N\) data in the transmitter) is recovered completely, the BER performance of SEFDM system will be same as that of OFDM system. The block diagram of receiver with IC is shown in Fig. 6. The block diagram shows IC detection with only one iteration. In practical operation, the number of iterations should be decided based on the actual situation.

As is shown in Fig. 6, a matrix *S*^{′}, whose initial value is **R**, is made to be an estimation of matrix **S** in the transmitter. We name the ICI compensation matrix **I****C**, which is expressed as :

$$ {\mathbf{IC}} = \mathbf{I} \times {\mathbf{S'}} $$

(10)

where **I** is a matrix of size (*K*−*N*)×*N*, which is a block matrix of IDFT matrix. *N* is the number of subcarriers in one SEFDM symbol, *K* is the number of points of IDFT, and *K*=*N*/*α*. It should be noticed that **I** is a bottom left matrix of the IDFT matrix. If each element of the IDFT matrix is expressed as *x*_{i,j}, then the IDFT matrix can be written as:

$$ \left[ {\begin{array}{*{20}{c}} {{x_{1,1}}}&{{x_{1,2}}}& \cdots &{}&{{x_{1,K}}}\\ {{x_{2,1}}}&{{x_{2,2}}}& \cdots &{}&{{x_{2,K}}}\\ \vdots & \vdots & \ddots &{}& \vdots \\ {{x_{K - 1,1}}}&{{x_{K - 1,2}}}& \cdots &{}&{{x_{K - 1,K}}}\\ {{x_{K,1}}}&{{x_{K,2}}}& \cdots &{}&{{x_{K,K}}} \end{array}} \right] $$

(11)

Then matrix **I** can be written as:

$$ \left[ {\begin{array}{*{20}{c}} {{x_{N + 1,1}}}&{{x_{N + 1,2}}}& \cdots &{}&{{x_{N + 1,N}}}\\ {{x_{N + 2,1}}}&{{x_{N + 2,2}}}& \cdots &{}&{{x_{N + 2,N}}}\\ \vdots & \vdots & \ddots &{}& \vdots \\ {{x_{K - 1,1}}}&{{x_{K - 1,2}}}& \cdots &{}&{{x_{K - 1,N}}}\\ {{x_{K,1}}}&{{x_{K,2}}}& \cdots &{}&{{x_{K,N}}} \end{array}} \right] $$

(12)

The specific operation process is as follows. In the receiver, \(\frac {{{\mathrm {1 - }}\alpha }}{\alpha }N\) zeros are added at the end of **R**, and followed by the DFT of length \(\frac {N}{\alpha }\). After the DFT processing, a \(\frac {N}{\alpha }\) points data is acquired. Then, \(\frac {{{\mathrm {1 - }}\alpha }}{\alpha }N\) points are removed at the end. The remaining *N*- point data is an estimate of the matrix **S** in transmitter. The matrix **I****C** is made to add at the end of matrix **R** instead of adding zeros and followed by a DFT operation of length \(\frac {N}{\alpha }\), which means the first iteration is accomplished. After the processing, the data \(\hat {\mathbf {S}}\) is much closer to the real data **S**. Then, another iteration may be done according to the requirement of the system.

The complexity of IC is calculated based on its principle. firstly, a block matrix of the *K*×*K* IDFT matrix named **I** is acquired. Then, the operation of **I**×*S*^{′} is done to get the **I****C** matrix. After that, the **I****C** matrix is added at the end of **R** instead of adding zeros and followed with a DFT operation. Finally, the result is acquired after removing the (*K*−*N*) data at the end.

As the size of matrix **I** is small, the amount of computation of **I**×*S*^{′} is not large. The number of complex multiplication that **I**×*S*^{′} brings in one iteration is (*K*−*N*)*N*, and the number of complex addition is (*K*−*N*)(*N*−1). Then, a DFT operation is needed. Generally, the number *K* is an integer multiple of 2, which can replace DFT with FFT and make the operation more efficient. So, finally, the number of complex multiplication operations in per iteration is \(K\log _{2}^{K} + (K - N)N\); the number of complex addition operations in one iteration is \(K\log _{2}^{K} + (K - N)(N - 1)\).

It should be noticed that the matrix **I****C** is generated by **I**×*S*^{′} and *S*^{′} is made up of useful data after the DFT operation other than the ignored data.

### ID-FSD detection

Firstly, an initial radius is required which determines the size of the search sphere, as in the equation below [7]:

$$ \overset{\smile}{g}_{ID} = ||\mathbf{R} - {\mathbf{C}\bar{\mathbf{S}}}|{|^{2}} $$

(13)

where ||∙|| donates the Euclidean norm. The initial radius equals the distance between the sphere center and the initial constrained estimate \(\bar {\mathbf {S}}\). Due to the ill conditioning of SEFDM system, these initial estimates may deviate greatly from the optimal points. Therefore, ID is employed to calculate an improved initial radius.

The FSD block implements the SEFDM detection algorithm using equation:

$$ {\tilde{\mathbf{S}}_{{\mathbf{ID - FSD}}}} = \arg {\kern 1pt} {\kern 1pt} {\kern 1pt} \mathop {\min }\limits_{\bar{\mathbf{S}} \in {\mathbf{O}^{N}}} ||\mathbf{R} - {\mathbf{C}\tilde{\mathbf{ S}}}|{|^{2}} \le {\overset{\smile}{g}_{ID}} $$

(14)

where \(\tilde {\mathbf {S}}\) is a detected symbol vector, **O** is the constellation cardinality and \(\overset {\smile }{g}_{ID}\) is the initial radius transferred from FSD-initializer. If finally no node is found within the sphere, the ID constrained estimate is taken as the solution \(\bar {\mathbf {S}}\), as expressed in the equality below:

$$ {\tilde{\mathbf{S}}_{{\mathbf{ID - FSD}}}} = \bar{\mathbf{S}} $$

(15)

This is why the design contains a feed of the constrained estimates from ID-Processor to the FSD block. In order to simplify the squared Euclidean norm calculation, Eq. (14) can be transformed into an equivalent expression using Cholesky decomposition. The transformation is carried out using *c**h**o**l*{**C**∗**C**}=**L**∗**L**, where **L** is an *N*×*N* upper triangular matrix. Hence, (14) can be re-written as [7]:

$$ {\tilde{\mathbf{S}}_{{\mathbf{ID - FSD}}}} = \arg\min\limits_{\bar{\mathbf{S}} \in {\mathbf{O}^{N}}} ||\mathbf{L}(\hat{\mathbf{S}} - \tilde{\mathbf{S}})|{|^{2}} \le {\overset{\smile}{g}}_{ID} $$

(16)

The elements of **C** and Cholesky decomposition of **C** are stored in this block, where *c*_{m,n} are the elements of **C** and are used for calculating the initial radius in Eq. (13). *l*_{m,n} denotes the elements of the upper triangular matrix and are used for calculating squared Euclidean norm in Eq. (16).

Additionally, QR decomposition is an alternative method to transform Eq. (14). The transformation is carried out using \(\mathbf {C} = \left [{\mathbf {Q}_{\mathbf {1}}},{\mathbf {Q}_{\mathbf {2}}}\right ] \left [ {\begin {array}{*{20}{c}} {{\mathbf {R}_{\mathbf {u}}}}\\ {\mathbf {0}} \end {array}} \right ]\), where **R**_{
u
} is an *N*×*N* upper triangular matrix, [**Q**_{
1
},**Q**_{
2
}] is an \(\frac {N}{\alpha } \times \frac {N}{\alpha }\) unitary matrix and **Q**_{
1
} is a \(\frac {N}{\alpha } \times N\) matrix. Suppose that \(\left \{{\begin {array}{*{20}{c}}{\mathbf {y} = \mathbf {Q}_{\mathbf {1}}^{\mathbf {H}}\mathbf {R}}\\ {{{\overset {\smile }{g}}}_{ID2}} = {\overset {\smile }{g}}_{ID} - ||\mathbf {Q}_{\mathbf {2}}^{\mathbf {H}}\mathbf {R}|{|{~}^{2}} \end {array}} \right.\), (14) can be re-written as:

$$ {\tilde{\mathbf{S}}_{\mathbf{ID - FSD}}} = \arg\min\limits_{\bar{\mathbf{S}} \in {\mathbf{O}^{N}}} ||\mathbf{y} - {\mathbf{R}_{\mathbf{u}}}\tilde{\mathbf{S}}|{|{~}^{2}} \le \overset{\smile}{g}_{ID2} $$

(17)

Actually, it’s too complex to consider all of the situations when deciding the value of each dimension in FSD. Therefore, a simplified FSD is implemented in the paper. The simplified method decides an exact value instead of a range from the last dimension to the first dimension. It makes the complexity much lower. However, this method performs well only when the size of the system is small.

### IIC detection

The principle of ICI compensation detection has been described above. Matrix **I****C** is the key to the performance of the system. Matrix *S*^{′} determines the accuracy of **I****C**. So, if matrix *S*^{′} is an excellent estimation of real data, the performance of ICI compensation detection will be much better. For this, an improved method named IIC is proposed in this paper. The flow chart of the receiver with IIC is shown in Fig. 7.

The IIC combines ID and IC detection. Before performing the IC operation, an ID operation is done, which can provide a more accurate initial data for IC detection. When combined with ID, the number of iterations in IC can be reduced drastically, even to only once, which result in the lower complexity.