# Design and Analysis of Joint Source-Channel Code System with Fixed-Length Code
## 2 Joint Source-Channel Code System  
The system model of our joint source-channel code (JSCC) scheme is illustrated in Figure 1.  
We consider the case where nonuniform source-symbol distribution is inherent in the source signal. The memoryless source generates a frame of symbols, \(\mathbf{u}~{}=~{}(u_{1},u_{2},\ldots,u_{K})\), from a discrete alphabet, \(\mathbf{S}~{}=~{}\big{\{}S_{1},S_{2},\ldots S_{N_{S}}\big{\}}\). The source symbols are encoded by a source encoder, which is a block code with a fixed-length. The source encoder encodes each symbol, \(u_{k}\), to a binary codeword, \(\mathbf{b}_{k}\), and concatenates them to a bit sequence, \(\mathbf{b}\). The block code maintains the nonuniform probabilities of source symbols and introduces some artificial redundancy. These nonuniform probabilities are transmitted as side information and are reliably protected against transmission errors by using a low-rate error-correct code. Thus, the probabilities are perfectly available at the receiver and can be later exploited by the soft source decoder as additional a priori knowledge, leading to an enhanced error protection. Figure 1: The system model of proposed JSCC scheme. After source-encoding, the bit sequence is permuted by a random bit-interleaver, and then the interleaved bit sequence, \(\mathbf{d}\), is encoded by a channel encoder. According to [29], the necessary condition for a serially concatenated system to be capacity-achieving is that the inner component should be a recursive convolutional code with rate \(R_{\mathrm{C}}\geq 1\). We employ an irregular, recursive nonsystematic convolutional (RNSC) code with unity-rate as the channel encoder. The structure of the irregular encoder is depicted in Figure 2. The input sequence, \(\mathbf{d}\), is partitioned into different subsequences, \(\mathbf{d}_{1},\mathbf{d}_{2},\ldots,\mathbf{d}_{I}\), according to the weight vector, \(\boldsymbol{\alpha}~{}=~{}(\alpha_{1},\alpha_{2},\ldots,\alpha_{I})\). Every subsequence is individually encoded by one of the RNSC sub-encoders. Then, all the outputs of the sub-encoders are multiplexed into a whole bit sequence, \(\mathbf{v}^{{}^{\prime}}\). The rate of channel coding can be increased by randomly puncturing some bits of \(\mathbf{v}^{{}^{\prime}}\). Finally, the encoded sequence, \(\mathbf{v}\), is segmented into m-bit labels, \(\mathbf{v}_{\mathbf{k}}\). The mapper maps each label, \(\mathbf{v}_{\mathbf{k}}\), to a symbol from the M-ary constellation set, \(\chi~{}=~{}\{\chi_{1},\chi_{2},\ldots,\chi_{M}\}\), according to the Gray mapping. After modulation, the modulated symbols, \(x_{k},~{}k~{}=~{}1,\ldots,N\), are transmitted over a noisy memoryless channel. At the receiver, the received symbols, \(y_{k}~{}=~{}x_{k}+n_{k},~{}k~{}=~{}1,\ldots,N\), are obtained, where \(n_{k}\) indicates independent and identically distributed complex Gaussian noise, with mean zero and variance \(\sigma^{2}~{}=~{}N_{0}\). The receiver processes the received symbols, \(\mathbf{y}\), to produce an estimate of the source symbols, \(\hat{\mathbf{u}}\), through iterative decoding between the channel decoder and the soft-bit source decoder (SBSD). In this study, the soft channel decoder and the SBSD are implemented in the logarithmic domain, and the reliability information exchanged between them is represented by the log-likelihood ratios (LLRs). The received symbols, \(\mathbf{y}\), are demodulated to posterior LLRs, \(L_{M}(\mathbf{v})\), prior to being evaluated in the iterative decoding process. The irregular channel decoder demultiplexes the posterior LLRs into \(J\), different subsequences according to the partitioning performed inside the irregular encoder. Each of these subsequences is individually decoded by applying the BCJR algorithm [30] to the trellis of the RNSC code, and the resulting extrinsic LLRs are multiplexed to a single LLRs sequence, \(L_{CD}^{e}(\mathbf{d})\).