A New Class of Multiple-rate Codes Based on Block Markov Superposition Transmission

A New Class of Multiple-rate Codes Based on Block Markov Superposition Transmission

Abstract

Hadamard transform (HT) as over the binary field provides a natural way to implement multiple-rate codes (referred to as HT-coset codes), where the code length is fixed but the code dimension can be varied from to by adjusting the set of frozen bits. The HT-coset codes, including Reed-Muller (RM) codes and polar codes as typical examples, can share a pair of encoder and decoder with implementation complexity of order . However, to guarantee that all codes with designated rates perform well, HT-coset coding usually requires a sufficiently large code length, which in turn causes difficulties in the determination of which bits are better for being frozen. In this paper, we propose to transmit short HT-coset codes in the so-called block Markov superposition transmission (BMST) manner. At the transmitter, signals are spatially coupled via superposition, resulting in long codes. At the receiver, these coupled signals are recovered by a sliding-window iterative soft successive cancellation decoding algorithm. Most importantly, the performance around or below the bit-error-rate (BER) of can be predicted by a simple genie-aided lower bound. Both these bounds and simulation results show that the BMST of short HT-coset codes performs well (within one dB away from the corresponding Shannon limits) in a wide range of code rates.

1Introduction

In practical communication systems, it is frequently required to implement several codes with different code rates. This is critical for wireless communication systems to implement the adaptive coded modulation [1], which can lower down the outage probability of a single code and hence allows more efficient use of the scarce bandwidth resources [2]. It is then desirable to implement codes with all different rates of interest with a pair of encoder and decoder [3]. Rate-compatible (RC) codes are a class of multiple-rate codes, which are usually constructed from a mother code by the use of code modifying techniques such as shortening information bits and extending or puncturing parity-check bits [4], as summarized in [9]. The rate-compatible codes usually have different code lengths for different code rates. For some applications, the code lengths can be varied in a wide range. For example, Raptor codes (with length as long as required) were optimized by designing the degree profiles to maximize the average throughput [10]. In 2009, Casado et al proposed multiple-rate codes with fixed code length by combining rows of the parity-check matrix of a mother code. In 2012, Liu et al constructed multiple-rate nonbinary low-density parity-check (LDPC) codes with fixed block length by using higher order Galois fields for codes of lower rates [11]. Although fixed-length multiple-rate codes are not applicable to hybrid automatic repeat request (HARQ) with incremental redundancies, they may find applications in some other scenarios.

  • Fixed-length multiple-rate codes can be applied to the scenarios where a framing constraint is imposed on the physical layer. This occurs, for example, when orthogonal frequency division modulation (OFDM) with a fixed number of subcarriers is used [12]. In this scenario, fewer information bits should be encoded to maintain the reliability requirement when the channel is in a low signal-to-noise ratio (SNR) level.

  • Fixed-length multiple-rate codes may also find applications in flash memory systems, where the channel capacity decreases with ages but the number of memory cells keeps unchanged [13]. The older flash memory, which has undergone a large number of erase cycles, has a degraded capacity and requires a code of lower rate; while the “younger” flash memory has a larger capacity and supports a code of higher rate. In this scenario, fixed-length multiple-rate codes with the same pair of encoder and decoder are preferred.

Block Markov superposition transmission (BMST) is a construction of big convolutional codes from short codes (referred to as basic codes) [14], which has a good performance over the binary-input additive white Gaussian noise channel (BI-AWGNC). In [15], it has been pointed out that any short code with fast encoding algorithm and soft-in soft-out (SISO) decoding algorithm can be chosen as the basic code. A sliding-window decoding (SWD) algorithm with a tunable decoding delay, as similar to the pipeline message-passing decoding algorithm of the LDPC convolutional codes [16], can be implemented to decode the BMST system. Most importantly, the performance of the SWD algorithm in the low error rate region can be predicted by a simple genie-aided lower bound.

In this paper, the BMST is used to construct a new class of multiple-rate codes with fixed code length. First, we propose to construct short multiple-rate codes by adjusting the set of frozen bits in Hadamard transform (HT), resulting in HT-coset codes. This family of codes, which have length for some and dimension ranging from to , can be implemented by the use of a pair of encoder and decoder with complexity of order . Such a pair of encoder and decoder were first demonstrated using normal graph for Reed-Muller (RM) codes by Forney in [18]. The HT-coset codes considered in this paper are also closely related to the polar codes [19], however, channel polarization plays a less important role here because the considered codes will be very short (typically ). Then, to improve the performance of the short HT-coset codes, we propose to transmit short HT-coset codes in the BMST manner [14]. The resulting system, referred to as a BMST-HT system for convenience, takes as the basic code a Cartesian product of short HT-coset codes and hence has encoding/decoding complexity linearly growing with the transmission block length. In addition, the unified structure of the HT-coset codes can significantly simplify the hardware implementation. Simulation results show that the BMST-HT systems perform well (within one dB away from the corresponding Shannon limits) in a wide range of code rates.

The rest of this paper is organized as follows. In Section , we present the encoding and decoding algorithm for the multiple-rate HT-coset codes. In Section , we construct BMST-HT systems with a general design procedure and present the encoding and decoding algorithm for the multiple-rate BMST-HT systems. Section concludes this paper.

2Short Multiple-rate Codes

2.1Fast Hadamard Transform (FHT)

We consider the Hadamard transform (HT) defined over the binary field. Let for some positive integer . Any non-negative integer has a binary expansion in the sense that and . We call an s-complementary pair if and only if their binary expansions differ only in the -th bit. For example, is a 0-complementary pair, is a 1-complementary pair and is a 2-complementary pair. A Hadamard matrix of order over the binary field can be defined recursively as [18]

for with H. Notice that H is the transpose of F in [19]. Let u be a binary vector. The Hadamard transform of u is defined as uuH, which can be computed recursively in stages, see Figure 1 for reference.

Figure 1: Fast Hadamard transform. (a) A general framework with N=2^p. (b) The basic building block of the Hadamard transform at the s-stage, where (j, j') is an s-complementary pair, meaning that their binary expansions differ only in the s-th bit.
Figure 1: Fast Hadamard transform. (a) A general framework with . (b) The basic building block of the Hadamard transform at the -stage, where is an -complementary pair, meaning that their binary expansions differ only in the -th bit.

We use U and U to denote a random vector and its Hadamard transform, respectively. That is, UUH, or equivalently1, UUH. In this paper, a message associated with a discrete random variable is represented by its probability mass function. Suppose that, for each , , the a priori messages of and are available, which are denoted as and , respectively. We further assume that all (resp. ) are independent. Then we have

and

For any given component (say ) of interest in U and V, the extrinsic message (denoted by, say, ) is defined as a probability mass function that is proportional to the likelihood function, i.e.,

and

Note that the extrinsic message associated with a random variable is irrelevant to the associated a priori message. The complexity to compute all exact extrinsic messages using the above equations is of order , which, however, can be reduced if approximate extrinsic messages are tolerable. This can be attained by performing an iterative message passing/processing algorithm over the normal graph as shown in Figure 1(a). The normal graph has super nodes, corresponding to stages, respectively, where the node T imposes a constraint that UUT. Recalling that the basic building block to implement the transformation T is the transform defined by H, we have the following algorithm, which falls into the general framework given by Forney [18].

Remark. It can be seen that both Algorithm ? and Algorithm ? have complexity of order since the fast Hadamard transform has stages and each stage can be decomposed into independent building blocks as specified by H, each of which is for one complementary pair.

2.2Multiple-rate Codes Based on Hadamard Transform

Given , we can construct a family of codes with dimension ranging from to . Each code in this family is encoded in the same manner vuH. The code rate is attained by fixing some bits in u and leaving the other bits free to carry the information. Following [19], this family of codes are called H-coset (or HT-coset) codes. The issue is how to determine a good active set for a given . For this end, we define a permutation matrix of order such that the rows of the matrix GH has a desired order. We may define following the polar coding approach [19], which requires sorting the Bhattacharyya parameters or the mutual information rates for some artificial channels and usually depends on the channel condition, say, the SNR. Here we define according to a channel-independent rule, which was referred to as RM-rule in [19], such that the rows of GH are ordered with non-decreasing Hamming weight. Given , the encoding algorithm and decoding algorithm for the HT-coset codes are essentially the same as Algorithm ? and Algorithm ?, respectively. We only need to freeze some bits when encoding and to initialize these frozen bits with deterministic messages when decoding. These two basic adaptations are summarized in the following algorithms for completeness, where is specified. See Figure 2 for reference.

Figure 2: The encoding diagram for HT-coset codes.
Figure 2: The encoding diagram for HT-coset codes.

2.3A Construction Example

We take as an example to illustrate the construction procedure. The Hadamard matrix of order is given by

whose rows have Hamming weights , respectively. Hence a permutation matrix is required to swap the rd row and the th row (counting from zero). The encoding process is depicted in Fig. , where the dimension can be varied from to .

Assume that the codeword is transmitted over an additive white Gaussian noise (AWGN) channel with binary phase-shift keying (BPSK) signalling. The performances of the HT-coset codes at the BER around can be evaluated by simulation, while the performances at the extremely low BER (say ) can be predicted using the union bound with the help of the input-output weight enumerating function (IOWEF) [20]. Since the number of codewords of the considered HT-coset codes with is small, we compute the IOWEFs by an exhaustive search. Table presents the IOWEFs of all HT-coset codes with . We have simulated all these HT-coset codes under the SISO decoding algorithm (Algorithms and ) with an iteration number . We find that all simulation curves (not shown here) except that of rate match well with the corresponding union bounds at the BER lower than . Fig. shows the performance curves of the code with rate (the [8, 4] Reed-Muller code). We can see that the performance curve of the rate code under the maximum a posterior probability (MAP) decoding matches well with the union bound at the BER lower than . However, compared with the union bound, the SISO decoding algorithm (Algorithms and ) with causes a performance loss of about dB. This performance loss can be narrowed to dB by increasing , as already pointed out in [18].

The IOWEFs for HT-coset Codes with
Codes IOWEFs
Figure 3: The encoding process for HT-coset codes with N=8.
Figure 3: The encoding process for HT-coset codes with .
Figure 4: The performance of the HT coset code with K=4 and N=8 under the SISO decoding algorithm (Algorithms  and ) with an iteration number J=3. The union bound and the performance curve of the MAP decoding are also plotted.
Figure 4: The performance of the HT coset code with and under the SISO decoding algorithm (Algorithms and ) with an iteration number . The union bound and the performance curve of the MAP decoding are also plotted.

3BMST of Short HT-coset Codes

3.1Choice of Encoding Memory

We have demonstrated that Hadamard transform can be used to construct a family of codes with constant length and flexible dimension . This family of codes can be implemented by the same pair of encoder and decoder but with adjustable inputs. However, the performances are far away from the Shannon limits, as evidenced by the construction example with . One possible way to improve the performance is to enlarge the order of the Hadamard transform. As becomes sufficiently large, for any given dimension , we have chance to select active set to approach the channel capacity. The difficulty lies in the choice of the active set when becomes large. Here we propose to combine the BMST with the HT-coset codes. As pointed out in [15], any short code can be embedded into the BMST system to obtain extra coding gain in the low BER region. The critical parameter for BMST is the encoding memory , which predicts the extra coding gain of dB over AWGN channels.

Given this predictable extra coding gain, we can use the following deterministic procedure to find the encoding memory required by the BMST-HT system to approach the Shannon limit at a target BER .

A General Procedure of Determining the Encoding Memories for the BMST-HT Systems

  • For , determine the encoding memory with the following steps.

    1. From the union bound of the HT-coset code with information bit , find the required to achieve the target BER .

    2. Find the Shannon limit for the code rate , denoted by .

    3. Determine the encoding memory by . That is,

      where stands for the integer that is closest to .

Table ? shows the memory required for each code rate using the BMST of HT-coset codes with to approach the Shannon limit at a target BER of .

The Memory Required for Each Code Rate Using the BMST of HT-coset Codes with to Approach the Shannon Limit at the BER of
Rate 1/8 2/8 3/8 4/8 5/8 6/8 7/8
(dB) -1.2 -0.8 -0.3 0.2 0.8 1.6 2.9
(dB) 9.6 9.8 8.4 7.7 8.9 8.6 8.2
Gap (dB) 10.8 10.6 8.7 7.5 8.1 7.0 5.3
Memory 11 10 6 5 5 4 2

3.2Encoding of BMST-HT System

Figure 5: The encoding diagram of the BMST-HT system with a maximum memory m.
Figure 5: The encoding diagram of the BMST-HT system with a maximum memory .

A BMST-HT system is constructed by taking the encoder for the HT-coset codes as the basic encoder, which accepts as input a binary information sequence of length and delivers as output a binary coded sequence of length . More precisely, the basic code is a -fold Cartesian product of , where and . To approach the capacity, we usually choose such that . Since can be varied from to , the basic encoder actually works as a multiple-rate encoder. To guarantee that all members from the family of the considered HT-coset codes have capacity-approaching performance, the encoder must be furnished with interleavers. The basic structure of the encoder is shown in Figure 5, which consists of one basic encoder, represented by ENC, and interleavers, represented by , respectively. The switches between the buffers D are used to adjust the encoding memory. In our simulations, all interleavers are randomly generated but fixed. The encoding algorithm is described as follows, where is specified. See Figure 5 for reference.

Remark.

The code rate decreases to due to the termination. However, the rate loss is negligible for large .

3.3Decoding of BMST-HT System

Figure 6: The normal graph of the BMST-HT system with L = 4 and m = 2.
Figure 6: The normal graph of the BMST-HT system with and .

Assume that c is transmitted with BPSK signalling over AWGN channels, resulting in a received vector y. The decoding algorithm can be implemented as an iterative message processing/passing algorithm over a unified (high-level) normal graph, see Figure 6 for an example of a BMST system with and . The normal graph can be divided into layers, each of which typically consists of one node of type for the basic code, one node of type that connects to future layers via interleavers, and one node of type that connects to past layers. The basic structure is applicable to all members from the family of HT-coset codes. Once (hence the memory ) is specified, we only need to disconnect the edges (if they exist) between the -th layer and the -th layer for and . With this adaptation, the sliding-window decoding algorithm is the same as Algorithm 3 in [15] with replaced by .

Remark. We need to point out that both the encoding and the decoding have linear complexity in the code length . Actually, since the basic code is a -fold Cartesian product of a short HT-coset code, the computational complexity at the node is linear in (equivalently, the basic code length ). In addition, the computational complexity at the node as well as the node is also linear with the basic code length .

3.4A Construction Example (Continued)

We continue the construction example given in Section 2.3. We take the -fold Cartesian product as the basic code, where . The memory required for each to approach the corresponding Shannon limit at the BER of is specified in Table ?. Hence we need an encoder with a maximum memory . The SISO decoding algorithm (Algorithms 2 and 4) with an iteration number is used to implement the SISO decoding algorithm for the basic code. The iterative sliding-window decoding algorithm for the BMST-HT system is performed with a maximum iteration number of , where the entropy-based early stopping criterion [23] is used with a threshold of . Simulation results with for encoding are shown in Figure 7, where the decoding delay is specified as for code rate . Also shown in Fig. are the genie-aided lower bounds, which are obtained by shifting the corresponding performance curves of the basic codes to left by dB. We can see that the performances of the BMST-HT system match well with the respective genie-aided lower bounds in the low BER region for all considered code rates. To evaluate the bandwidth efficiency of the BMST-HT system, we plot the required SNR to achieve the BER of against the code rate in Fig. . We can see that the BMST-HT system achieves the BER of within one dB from the Shannon limit for all considered code rates. However, the performance gap of the code is slightly larger. This is due to the sub-optimality of Algorithm ?, as mentioned previously.

If an optimal (locally) SISO algorithm (the MAP decoding) is used for the code, the performance can be improved, as marked in Fig. by the cross .

3.5Further Discussions

We have also constructed a BMST-HT system using the -fold Cartesian product as the basic code, where . The required encoding memories can be determined following the procedure described in Section 3.1, which are shown in Table ?. The required SNR to achieve the BER of is plotted against the code rate in Figure 9. We can see that the BMST-HT system also has a BER of within one dB away from the Shannon limits for all considered code rates. Using HT-coset codes with larger , we can implement codes with finer code rates. However, this simple approach can only construct codes with rates of form . In practice, other code rates (say and in the standard of Long Term Evolution (LTE)) are required [24]. In this case, we can construct the basic code by combining several HT-coset codes with different rates. Taking rate as an example, we can use the Cartesian product of the HT-coset codes as the basic code.

Figure 7: Performance of the BMST-HT system using the Cartesian products of the HT-coset codes [8,K]^{1250}(1 \leq K \leq 7) with L=1000. The sliding-window decoding algorithm is performed with a maximum iteration number I_{\max}=18 and a decoding delay d_K=2m_K for the code of rate K/8.
Figure 7: Performance of the BMST-HT system using the Cartesian products of the HT-coset codes with . The sliding-window decoding algorithm is performed with a maximum iteration number and a decoding delay for the code of rate .
Figure 8: The required SNR for the BMST-HT system using the Cartesian products of HT-coset codes [8,K]^{1250}(1 \leq K \leq 7) to achieve the BER of 10^{-5} with BPSK signalling over AWGN channels.
Figure 8: The required SNR for the BMST-HT system using the Cartesian products of HT-coset codes to achieve the BER of with BPSK signalling over AWGN channels.
The Memory Required for Each Code Rate Using the BMST of HT-coset Codes with to Approach the Shannon Limit at the BER of
(dB) (dB) (dB)
1/16 -1.4 9.6 11.0 12
2/16 -1.2 9.8 11.0 12
3/16 -1.0 8.4 9.4 8
4/16 -0.8 7.7 8.5 6
5/16 -0.6 7.4 8.0 5
6/16 -0.3 8.1 8.4 6
7/16 -0.1 7.9 8.0 5
8/16 0.2 7.6 7.4 4
9/16 0.5 7.4 6.9 4
10/16 0.8 7.2 6.4 3
11/16 1.2 7.5 6.3 3
12/16 1.6 8.2 6.6 4
13/16 2.2 8.4 6.2 3
14/16 2.8 8.4 5.6 3
15/16 3.9 8.3 4.4 2
Figure 9: The required SNR for the BMST-HT system using the Cartesian products of HT-coset codes [16,K]^{625}(1 \leq K \leq 15) to achieve the BER of 10^{-5} with BPSK signalling over AWGN channels.
Figure 9: The required SNR for the BMST-HT system using the Cartesian products of HT-coset codes to achieve the BER of with BPSK signalling over AWGN channels.

4Conclusions

In this paper, we have proposed a new class of multiple-rate codes by embedding the Hadamard transform (HT) coset codes into the block Markov superposition transmission (BMST) system, resulting in the BMST-HT system. The implementation complexity of the system is linear in the code length, while the performance in the low error rate region can be predicted. The simulation results show that the BMST-HT system can approach the Shannon limit within one dB at the BER of for a wide range of code rates.

Footnotes

  1. This can be verified by checking that HI, the identity matrix of order .

References

  1. D. Tse and P. Viswanath, Fundamentals of wireless communication. 1em plus 0.5em minus 0.4emCambridge, U.K.: Cambridge University Press, 2005.
  2. S. M. Alamouti and S. Kallel, “Adaptive trellis-coded multiple-phase-shift keying for Rayleigh fading channels,” IEEE Trans. Commun., vol. 42, pp. 2305–2314, June 1994.
  3. Y. Sun, M. Karkooti, and J. R. Cavallaro, “VLSI decoder architecture for high throughput, variable block-size and multi-rate LDPC codes,” in Proc. Int. Symp. Circuit. Syst., New Orleans, LA, May 2007, pp. 2104–2107.
  4. J. Hagenauer, “Rate-compatible punctured convolutional codes (RCPC codes) and their application,” IEEE Trans. Commun., vol. 36, pp. 389–400, Apr. 1988.
  5. O. Acikel and W. Ryan, “Punctured turbo-codes for BPSK/QPSK channels,” IEEE Trans. Commun., vol. 47, pp. 1315–1323, Sept. 1999.
  6. M. Yazdani and A. Banihashemi, “On construction of rate-compatible low-density parity-check codes,” IEEE Commun. Lett., vol. 8, pp. 159–161, Mar. 2004.
  7. J. Ha, J. Kim, and S. McLaughlin, “Rate-compatible puncturing of low-density parity-check codes,” IEEE Trans. Inform. Theory, vol. 50, pp. 2824–2836, Nov. 2004.
  8. K. Zhang, X. Ma, S. Zhao, B. Bai, and X. Zhang, “A new ensemble of rate-compatible LDPC codes,” in Proc. IEEE Int. Symp. Inf. Theory, Cambridge, MA, July 2012, pp. 2536–2540.
  9. A. I. V. Casado, W.-Y. Weng, S. Valle, and R. Wesel, “Multiple-rate low-density parity-check codes with constant blocklength,” IEEE Trans. Commun., vol. 57, pp. 75–83, Jan. 2009.
  10. M. Uppal, G. Yue, X. Wang, and Z. Xiong, “A rateless coded protocol for half-duplex wireless relay channels,” IEEE Trans. Signal Process., vol. 59, pp. 209–222, Jan. 2011.
  11. L. Liu, W. Zhou, and S. Zhou, “Nonbinary multiple rate QC-LDPC codes with fixed information or block bit length,” J. Commun. Netw., vol. 14, pp. 429–433, Aug. 2012.
  12. J. Huang, S. Zhou, and P. Willett, “Nonbinary LDPC coding for multicarrier underwater acoustic communication,” IEEE J. Sel. Areas Commun., vol. 26, pp. 1684–1696, Dec. 2008.
  13. X. Huang, A. Kavčić, X. Ma, G. Dong, and T. Zhang, “Multilevel flash memories: Channel modeling, capacities and optimal coding rates,” International Journal on Advances in Systems and Measurements, vol. 6, pp. 364–373, Dec. 2013.
  14. X. Ma, C. Liang, K. Huang, and Q. Zhuang, “Obtaining extra coding gain for short codes by block Markov superposition transmission,” in Proc. IEEE Int. Symp. Inf. Theory, Istanbul, Turkey, July 2013, pp. 2054–2058.
  15. =2plus 43minus 4 ——, “Block Markov superposition transmission: Construction of big convolutional codes from short codes,” submitted to IEEE Trans. Inform. Theory. [Online]. Available: http://arxiv.org/abs/1308.4809 =0pt
  16. A. J. Felström and K. S. Zigangirov, “Time-varying periodic convolutional codes with low-density parity-check matrix,” IEEE Trans. Inform. Theory, vol. 45, pp. 2181–2191, Sept. 1999.
  17. Y.-L. Ueng, Y.-L. Wang, L.-S. Kan, C.-J. Yang, and Y.-H. Su, “Jointly designed architecture-aware LDPC convolutional codes and memory-based shuffled decoder architecture,” IEEE Trans. Signal Process., vol. 60, pp. 4387–4402, Aug. 2012.
  18. G. D. Forney, Jr., “Codes on graphs: Normal realizations,” IEEE Trans. Inform. Theory, vol. 47, pp. 520–548, Feb. 2001.
  19. E. Arikan, “Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,” IEEE Trans. Inform. Theory, vol. 55, pp. 3051–3073, July 2009.
  20. R. J. McEliece, “How to compute weight enumerators for convolutional codes,” Communications and Coding, pp. 121–141, Jan. 1998.
  21. S. Lin and D. J. Costello, Jr., Error Control Coding: Fundamentals and Applications (2nd Ed.).1em plus 0.5em minus 0.4em: Prentice-Hall, 2004.
  22. X. Ma, C. Liang, K. Huang, and Q. Zhuang, “Obtaining extra coding gain for short codes by block Markov superposition transmission,” in Proc. IEEE Int. Symp. Inf. Theory, Istanbul, Turkey, July 2013, pp. 2054–2058.
  23. X. Ma and L. Ping, “Coded modulation using superimposed binary codes,” IEEE Trans. Inform. Theory, vol. 50, pp. 3331–3343, Dec. 2004.
  24. , 3GPP, 3rd generation partnership project Std., Feb. 2013.

    LTE; Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding (Release 11)

Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
""
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
   
Add comment
Cancel
Loading ...
10521
This is a comment super asjknd jkasnjk adsnkj
Upvote
Downvote
""
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters
Submit
Cancel

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test
Test description