## 2 Proposed CPM-GFDM Transceiver
### CPM-GFDM Receiver
#### 2.2.5. Viterbi Decoder  
After down sampling, the signal goes to CPM signal detection block. CPM detection is complex. The complexity can be reduced if we use a Viterbi Decoder (VD) [43]. If \(h\) is rational--the CPM trellis has a reasonable number of states. This facilitates the use of VD.  
With reference to Figure 4, we demonstrate the angle \(\phi_{k}\), the associated complex numbers, and the paths that the data sequence \(10011\) takes through the trellis (shown with red colored lines) for a given subcarrier when \(h=2/5\). To start with, we assume state \(\phi_{k}=0\) (\(d_{k,m}=1+j0\)). If the next bit is a one (indicated by a solid line), the state changes to \(0+\frac{2\pi}{5}=\frac{2\pi}{5}\). On the other hand, if the next bit is a zero, (indicated by a dashed line), the state changes to \(0-\frac{2\pi}{5}=-\frac{2\pi}{5}=\frac{8\pi}{5}\). This trend continues deep into the trellis. Consequently, we can trace a particular path based on the data sequence, as has also been shown in Figure 4.  
VD computes the distance between the incoming signal and all trellis routes entering each state at a given moment \(i\). The paths that are most likely not the candidates for maximum likelihood are then eliminated. The \"surviving path\" is the path that is chosen when two paths enter the same state; it is the path with the best metric. Similar surviving paths are chosen for all the states. By carrying on in the same way, VD moves further into the trellis and decisions are determined by eliminating the least likely paths [44]. Despite not being maximum likelihood in the strictest sense, these decisions can be almost as excellent as in the maximum likelihood case if the decision depth is sufficient [45].  
In the following, we demonstrate the method to compute the distance between the received bit sequence and the possibly received sequences. At the output of FFT, \(\hat{d}_{k,m}\) denotes the received complex numbers at subcarrier \(k\). Additionally, let a typical complex number from the received sequence be represented as  
\[\hat{d}_{k,m}=\hat{u}_{k,m}+j\hat{v}_{k,m}\]  
Let a typical complex number from the transmitted sequence be  
\[d_{k,m}=u_{k,m}+jv_{k,m}\]  
In the above equation, real parts are \(\hat{u}_{k}\) and \(u_{k}\) for the received and transmitted complex numbers, respectively. Similarly, the imaginary parts are \(\hat{v}_{k}\) and \(v_{k}\) for the received and transmitted complex numbers, respectively. Using \(s_{k,m}\) to denote the square of the distance between two complex numbers, \(s_{k,m}\) can be computed as  
\[s_{k,m}=\left(u_{k,m}-\hat{u}_{k,m}\right)^{2}+\left(v_{k,m}-\hat{v}_{k,m} \right)^{2} \tag{16}\]  
These distances are successively updated at each symbol interval. All potential state transitions are also expanded. At the following symbol interval, the path with the highest likelihood is kept while the rest are eliminated. All competitors conclude at the trellis's most extreme end after tracing the entire signal sequence. As a result, the sequence that is required is the one that is the most likely to occur. VD only records \(q\) or \(2q\) states at each time interval because \(h\) is the ratio of \(p\) and \(q\), which are relatively prime. The VD provides a judgment on the complete sequence of \(w\) symbols at the end of \(w\) symbol intervals if \(w\) indicates the decision depth in terms of the number of symbols.  
Figure 4: The Viterbi decoder for a typical example with \(h=2/5\). Bit 1 is indicated by solid lines while bit 0 is indicated by broken lines. The bit sequence 10011 is shown using red colored lines. The outputs of the CPM mapper are shown using the complex numbers under \(d_{k,m}\).