1 Introduction

The three types of new multiple access schemes based on a combination of code division and orthogonal frequency division multiplexing (OFDM) techniques were proposed in 1993. These there types were “multi-carrier code division multiple access (MC-CDMA)”, “multicarrier direct sequence CDMA” and “multitone (MT-) CDMA”. The range of techniques have been presented in the literature [4, 79, 16].

The DS-CDMA technique applies spreading sequences in the time domain and uses Rake receiver to reduce effects of fading in the radio channel. In MC-CDMA we can apply spreading sequences in the frequency domain, mapping a different chip of a spreading sequence to an individual OFDM subcarrier [7, 10, 12]. The signals of MC-CDMA can be easily transmitted and received using the fast Fourier transform (FFT) device without increasing the transmitter and receiver complexities. The signals have the attractive feature of high spectral efficiency due to minimally subcarrier spacing [3, 8].

2 Construction if MC-CDMA transmitters

The basic MC-CDMA signal is generated by a serial concatenation of classical DS-CDMA and OFDM. The transmitted signal of the \(i\)-th data symbol of the \(j\)-th user \(s_i^j (t)\) is written as [7]:

$$\begin{aligned} s_i^j (t)=\sum \limits _{k=0}^{N-1} {d_i^j c_k^j e^{2\pi (f_0 +kf_d )t}p(t-iT)} \end{aligned}$$
(1)

where

\(N\) :

the number of subcarriers,

\(d_i^j\) :

the \(i\)-th message symbol of the \(j\)-th user,

\(c_k^j\) :

represents the \(k\)-th chip, \(k=0,\ldots ,N-1\), of the spreading sequence of the \(j\)-th user,

\(f_{0}\) :

the lowest subcarrier frequency,

\(f_{d}\) :

the subcarrier separation,

\(p(t)\) :

a rectangular signaling pulse shifted in time given by [7]:

$$\begin{aligned} p(t)=\left\{ {{\begin{array}{l@{\quad }l} 1&{}for\;0\le t\le T \\ 0&{}otherwise \\ \end{array} }} \right. \end{aligned}$$
(2)

The transmitter structure can be implemented by concatenating a DS-CDMA spreader and an OFDM transmitter as shown in Fig. 1. The information bit, \(d_i^j\) is spread in the time domain. In this implementation, high speed operations are required at the output of the spreader. The spread chips are fed into the serial to parallel (Serial/Parall.) block and inverse fast Fourier transform (IFFT) is applied to these \(N\) parallel chips. The values at the output of the IFFT are time domain samples in parallel form. The samples after parallel to serial conversion (Parall./Serial) are low pass filtered in order to obtain the continuous time domain signal. The signal modulates the carrier and is transmitted to the receiver [7].

Fig. 1
figure 1

Diagram of MC-CDMA transmitter [7]

Another implementation is shown in Fig. 2. The time domain spreader is removed. In this implementation, the spreading sequence is applied directly to the identical parallel input bits. The high speed spreading operation is not required in the implementation [8]. The spreading sequences in MC-CDMA separate other users’ signal from desired signal, provided that their spreading sequences are orthogonal to each other [7].

Fig. 2
figure 2

Diagram of alternative MC-CDMA transmitter [7]

At the receiver of MC-CDMA technique (Fig. 3) each carrier’s symbol, the corresponding chip \(c_k^j \)of user \(j\), is recovered using FFT after sampling and the recovered chip sequence is correlated with desired user’s spreading code in order to recover the original information \(d_i^j \). Can be defined the \(i\)-th received symbol at \(k\)-th carrier as [7]:

$$\begin{aligned} r_{k,i} =\sum \limits _{j=0}^{J-1} {H_k d_i^j c_k^j +n_{k,i} } \end{aligned}$$
(3)

where

\(J\) :

the number of users,

\(H_{k}\) :

the frequency response of the \(k\)-th subcarrier,

\(n_{k}\) :

the corresponding noise sample.

The MC-CDMA receiver of the 1-th user multiplies received symbol rs by its spreading sequence chip \(c_k^1 \), as well as by the gain \(g_{k}\), which is given by the reciprocal of the estimated channel transfer factor of subcarrier \(k\), for each received subcarrier symbol \(k=0, \ldots , N-1\). Then the receiver sums all these products in order to arrive at the decision variable \(b_i^1 \) [7]:

$$\begin{aligned} b_i^1 =\sum \limits _{k=0}^{N-1} {c_k^1 g_k r_{k,i} } \end{aligned}$$
(4)
Fig. 3
figure 3

Diagram of MC-CDMA receiver [7]

3 Construction of turbo encoders and decoder

Two turbo encoders were used in the simulations. The first turbo encoder was the standard turbo encoder from the UMTS. The turbo encoder has coding rate 1/3 and is composed of two 8-state, identical, parallel, recursive, systematic convolutional (RSC) encoders and the internal interleaver (Fig. 4) [6].

Fig. 4
figure 4

Diagram of the first turbo encoder [6]

The second turbo encoder has the same coding rate (1/3) and is composed of two 8-state identical RSC encoders [14]. The diagram of second turbo encoder is shown in Fig. 5.

Fig. 5
figure 5

Diagram of the second turbo encoder [14]

In both turbo encoders, interleaving is executed, in a rectangular array [1, 6, 11, 13]. Its main task is to reduce the degree of statistical relationships between input data of the upper and lower convolutional encoders in a turbo encoder [15]. The number of bits \(K\) fed to the inputs of convolutional encoders in the turbo encoder may be in the range from 40 to 5,114 bits.

Coding sequences are formed in the turbo encoder by taking a sequence of bits: the systematic output x\(_\mathrm{k}\), the output of the upper encoder z\(_\mathrm{k}\), and output the lower encoder z\(^{\prime }_\mathrm{k}\) [6].

The turbo decoder consists of two soft output convolutional code decoders (SOVA decoder 1 and SOVA decoder 2), two interleavers, two deinterleavers and decision-making unit at the output of the decoder (Fig. 6) [11]. Interleaver units, in the turbo decoder are identical with the internal interleaver in turbo encoder. Deinterleavers perform the inverse operation, which restores the original order of data bits. Decision-making unit produces binary values from soft values at the output of convolutional code decoder (SOVA decoder 2).

Fig. 6
figure 6

Structure of turbo decoder

The convolutional code decoders in the turbo decoder can use algorithms based on the maximum a posteriori probability rule (MAP) [2]. In addition to these uses the Soft Output Viterbi Algorithm (SOVA) [11]. The SOVA is a modified version of the Viterbi algorithm.

Decoding turbo codes is an iterative process. It consists of separate decoding received sequences from both convolutional encoders of turbo encoder [15]. The SOVA decoder 1 decodes the sequence received from the upper encoder, z\(_\mathrm{k}\), and the SOVA decoder 2—the sequence received from the lower encoder z\(^{\prime }_\mathrm{k}\). The first SOVA decoder uses the extrinsic information L\(_\mathrm{e2}\) from the second SOVA decoder in decoding process. The extrinsic information includes a priori probability of the information bits [14]. Similarly, the second SOVA decoder uses the extrinsic information L\(_\mathrm{e1}\) derived from first SOVA decoder [11].

4 Simulation results

The simulation software of the MC-CDMA technique, used in the research allows the testing of transmission quality for two turbo codes, several values of spreading factor (SF = 8, 32, 64 and 128) and data bits number (K = 640 and 1,440). The first turbo encoder (turbo code 1) design is based on the diagram in Fig. 4 and the second turbo encoder (turbo code 2) design is based on the diagram in Fig. 5. The MC-CDMA transmitter design is based on the schema in Fig. 1 and the receiver design is based on the schema in Fig. 3.

Figures 7, 8, 9, 10, 11, 12, 13, and 14 show the results of transmission quality (bit error rate—BER and frame error rate—FER) as a function of E\(_\mathrm{b}\)/N\(_{0}\) for MC-CDMA technique with first turbo code (turbo code 1). Figure 7 shows the BER of MC-CDMA for spreading factor SF = 8 and number of data bits K = 640 and 1,440 bits. For larger data frame length (K = 1,440) the same quality of transmission was achieved for the ratio E\(_\mathrm{b}\)/N\(_{0}\) by approximately \(0.2\div 0.5\) dB lower than the data frame with K = 640 bits. Figure 8 shows the FER of MC-CDMA for the same SF and K. In this graph you may notice that for the value of E\(_\mathrm{b}\)/N\(_{0}=3\) dB, for K = 1,440 bits FER is almost five times lower than for K = 640 bits.

Fig. 7
figure 7

BER performance of MC-CDMA with turbo code 1 (SF = 8)

Fig. 8
figure 8

FER performance of MC-CDMA with turbo code 1 (SF = 8)

Fig. 9
figure 9

BER performance of MC-CDMA with turbo code 1 (SF = 32)

Fig. 10
figure 10

FER performance of MC-CDMA with turbo code 1 (SF = 32)

Fig. 11
figure 11

BER performance of MC-CDMA with turbo code 1 (SF = 64)

Fig. 12
figure 12

FER performance of MC-CDMA with turbo code 1 (SF = 64)

Fig. 13
figure 13

BER performance of MC-CDMA with turbo code 1 (SF = 128)

Fig. 14
figure 14

FER performance of MC-CDMA with turbo code 1 (SF = 128)

Similar results can be observed also for other values of SF (Figs. 9, 10, 11, 12, 13, 14). Comparing the transmission quality results for the same K, but different values of SF can be seen to improve transmission quality while increasing the value of SF. The best transmission quality was achieved for SF = 128 and K = 1,440 bits (BER = 10\(^{-6}\) for E\(_\mathrm{b}\)/N\(_{0}=2.9\) dB). In Figs. 13 and 14 you may notice that for the value of E\(_\mathrm{b}\)/N\(_{0}=2.9\) dB, for K = 1,440 bits, BER and FER is almost 20 times lower than for K = 640 bits.

Figures 15, 16, 17, 18, 19, 20, 21, and 22 show the results of transmission quality as a function of E\(_\mathrm{b}\)/N\(_{0}\) for MC-CDMA technique with the second turbo code (turbo code 2). Figure 15 shows the BER of MC-CDMA for spreading factor SF = 8 and number of data bits K = 640 and 1,440 bits. For larger data frame length (K = 1,440) the same quality of transmission was achieved for the ratio E\(_\mathrm{b}\)/N\(_{0}\) by approximately 0.2 dB lower than the data frame with K = 640 bits. Figure 16 shows the FER of MC-CDMA for the same SF and K. In this graph you may notice that FER for the value of E\(_\mathrm{b}\)/N\(_{0}=4\) dB, for K = 1,440 bits and for K = 640 bits is almost equal (\(7\times 10^{-6}\) for K = 1,440 and \(8 \times 10^{-6}\) for K = 640). The best transmission quality was achieved for SF = 128 and K = 1,440 bits. For larger data frame length (K = 1,440) the same quality of transmission was achieved for the ratio E\(_\mathrm{b}\)/N\(_{0}\) by approximately 1 dB lower than the data frame with K = 640 bits (Fig. 21).

Fig. 15
figure 15

BER performance of MC-CDMA with turbo code 2 (SF = 8)

Fig. 16
figure 16

FER performance of MC-CDMA with turbo code 2 (SF = 8)

Fig. 17
figure 17

BER performance of MC-CDMA with turbo code 2 (SF = 32)

Fig. 18
figure 18

FER performance of MC-CDMA with turbo code 2 (SF = 32)

Fig. 19
figure 19

BER performance of MC-CDMA with turbo code 2 (SF = 64)

Fig. 20
figure 20

FER performance of MC-CDMA with turbo code 2 (SF = 64)

Fig. 21
figure 21

BER performance of MC-CDMA with turbo code 2 (SF = 128)

Fig. 22
figure 22

FER performance of MC-CDMA with turbo code 2 (SF = 128)

Figures 23, 24, 25, and 26 show the results of transmission quality as a function of E\(_\mathrm{b}\)/N\(_{0}\) for MC-CDMA technique for the both turbo codes for SF = 128 and K = 640 and 1,440 bits.

Fig. 23
figure 23

BER performance of MC-CDMA with turbo codes (SF = 128, K = 640)

Fig. 24
figure 24

FER performance of MC-CDMA with turbo codes (SF = 128, K = 640)

Fig. 25
figure 25

BER performance of MC-CDMA with turbo codes (SF = 128, K = 1,440)

Fig. 26
figure 26

FER performance of MC-CDMA with turbo codes (SF = 128, K = 1,440)

Based on Figs. 23 and 25 you can compare results of BER for both turbo codes and SF = 128. If the value of E\(_\mathrm{b}\)/N\(_{0}\) was smaller then 2 dB (for K = 640) and 1.5 dB (for K = 1,440) the better results of BER was achieved for turbo code 2. For other values of E\(_\mathrm{b}\)/N\(_{0}\) you may notice the better results of BER for turbo code 1.

Based on Figs. 24 and 26 you can compare results of FER for both turbo codes and SF = 128. If the value of E\(_\mathrm{b}\)/N\(_{0}\) was greater then 1 dB (for both K) the better results of FER was achieved for turbo code 1.

5 Conclusion

The research results allow us to assess the usefulness of turbo codes in the MC-CDMA technique. The use of turbo coding in the radio interface allows for high quality transmission, which is presented on the results of bit and frame error rates. The presented simulation results correspond to the situation in which a single connection is performed between the transmitter and the receiver. In real conditions, the problem of system load, interference from other users, and throughput-coverage characteristics of the system can be significant [5], due to the specificity of the CDMA system, what is also important for MC-CDMA. The best transmission quality results (BER = \(10^{-6}\) and FER = \(10^{-4})\) were achieved for SF = 128 and K = 1,440 bits for the turbo code 1. For the turbo code 2 simulation results are worse (BER = 10\(^{-6}\) and FER = 10\(^{-3})\). Although the trellises of RSC in both turbo codes has 8 states, you may notice the better performance of turbo code 1 which was used in UMTS. The obtained results confirm suitability of turbo coding for use in radio communication systems, especially realizing high-speed data services, where data bits number K is greater than 1,000 bits. In this case the efficiency of turbo codes and the MC-CDMA techniques is the best. If the data bits number is less than 1,000 bits the efficiency is worse and can be proposed to replace the turbo code by the convolutional code in the MC-CDMA technique due to the computational complexity of decoding the turbo codes.