1. A method for mapping 2N message N-tuples into 2N1 codeword (N1)-tuples, wherein each of said N-tuples and (N1)-tuples is a binary code comprised of bits, 0 and 1, comprising the steps of:
- (a) categorizing the 2N1 codeword (N1)-tuples into M subsets of codeword (N1)-tuples, wherein M is an integer larger than 1, each subset G has NG codeword (N1)-tuples, NG being a positive integer, and the total number of codeword (N1)-tuples in the M subsets is 2N given as follows:
G
=
1
M
N
G
=
2
N
,
- wherein said each subset G has a predetermined number KG of lower bits and a predetermined number (N1KG) of higher bits and the number of lower bits in every codeword (N1)-tuple in any subset is not equivalent to that of lower bits in every codeword (N1)-tuple in any other sutset; and
- (b) matching said 2N message N-tuples with said 2N codeword (N1)-tuples in said M subsets, respectively, in one-to-one correspondence to generate a lookup table.
2. The method of claim 1, further comprising the steps of:
- (c) dividing an input message into a plurality of message N-tuples; and
- (d) encoding each message N-tuple in said plurality of message N-tuples with its corresponding codeword (N1)-tuple based on the lookup table sequentially.
3. The method of claim 1, further comprising the step of:
- (f) decoding a plurality of transmitted codeword (N1)-tuples to reconstruct their corresponding reconstructed message N-tuples based on the lookup table, wherein each transmitted codeword (N1)-tuple is represented by (N1) decimals.
4. The method of claim 3, wherein the step (f) includes the steps of:
- (f1) receiving said each trasmitted codeword (N1)-tuple as the (N1) decimals;
- (f2) calculating a dispersion for said each transmitted codeword (N1)-tuple to compare said dispersion for said each transmitted codeword (N1)-tuple with an average dispersion, wherein the average dispersion is an average of dispersions for said plurality of transmitted codeword (N1)-tuples;
- (f3) determining which subset G corresponds to said each transmitted codeword (N1)-tuple based on the dispersion comparison result;
- (f4) converting a predetermined number KG of lower decimals in said each transmitted codeword (N1)-tuple into the lower bit and a predetermined number (N1KG) of higher decimals into the higher bit to reconstruct a reconstructed codeword (N1)-tuple; and
- (f5) assigning to said reconstructed codeword (N1)-tuple a reconstructed message N-tuple based on the lookup table.
5. The method of claim 4, wherein the step (f2) has the steps of:
- (f21) estimating a least number L of higher and lower bits in said M subsets of codeword (N1)-tuples, L being an integer;
- (f22) computing a greatest number K from the least number L and the subset number M, K being an integer;
- (f23) deleting maximum or minimum decimals as many as the greatest number K in the (N1) decimals to obtain (N1K) decimals;
- (f24) evaluating an (N1K)th dispersion for the (N1K) decimals;
- (f25) comparing the (N1K)th dispersion with an (N1K)th average dispersion which is an average of dispersions for the plurality of transmitted codeword (N1)-tuples; and
- (f26) decreasing Log2M and the least number L by 1 and performing steps (f22) to (f25) until Log2M is equal to or smaller than 0 or the least number L is smaller than 0.
6. The method of claim 5, wherein the greatest number K is a maximum value of the least number L and Log2M, wherein Log2M is a smallest integer that is not smaller than Log2M.
7. The method of claim 1, wherein NG is equal to 2N1/M.
8. The method of claim 1, wherein M is an even integer.
9. An apparatus for mapping 2N message N-tuples into 21 codeword (N1)-tuples, wherein each of said N-tuples and (N1)-tuples is a binary code comprised of bits, 0 and 1, comprising:
- means for categorizing the 2N1 codeword (N1)-tuples into M subsets of codeword (N1)-tuples, wherein M is an integer larger than 1, each group G has NG codeword (N1)-tuples, NG being a positive integer, and the total number of codeword (N1)-tuples in said M subsets is 2N given as follows:
G
=
1
M
N
G
=
2
N
,
- wherein said each subset G has a predetermined number KG of lower bits and a predetermined number (N1KG) of higher bits and the number of lower bits in every codeword (N1)-tuple in any subset is not equivalent to that of lower bits in every codeword (N1)-tuple in any other subset; and
- means for matching said 2N message N-tuples with said 2N codeword (N1)-tuples in said M subsets, respectively, in one-to-one correspondence to generate a lookup table.
10. The apparatus of claim 9, further comprising:
- means for dividing an input message into a plurality of message N-tuples; and
- means for encoding each message N-tuple in said plurality of message N-tuples with its corresponding codeword (N1)-tuple based on the lookup table sequentially.
11. The apparatus of claim 9, further comprising:
- means for decoding a plurality of transmitted codeword (N1)-tuples to reconstruct their corresponding reconstructed message N-tuples based on the lookup table, wherein each transmitted codeword (N1)-tuple is represented by (N1) decimals.
12. The apparatus of claim 11, wherein the decoding means includes:
- means for receiving said each transmitted codeword (N1)-tuple as the (N1) decimals;
- means for calculating a dispersion for said each transmitted codeword (N1)-tuple to compare said dispersion for said each transmitted codeword (N1)-tuple with an average dispersion, wherein the average dispersion is an average of dispersions for said plurality of transmitted codeword (N1)-tuples;
- means for determining which subset G corresponds to said each transmitted codeword (N1)-tuple based on the dispersion comparison result;
- means for converting a predetermined number KG of lower decimals in said each transmitted codeword (N1)-tuple into the lower bit and a predetermined number (N1KG) of higher decimals into the higher bit to form a reconstructed codeword (N1)-tuple; and
- means for assigning to said reconstructed codeword (N1)-tuple a reconstructed message N-tuple based on the lookup table.
13. The apparatus of claim 12, wherein the calculating means has:
- means for estimating a least number L of higher and lower bits in said M subsets of codeword (N1)-tuples, L being an integer;
- means for computing a greatest number K from the least number L and the subset number M, K being an integer;
- means for deleting maximum or minimum decimals as many as the greatest number K in the (N1) decimals to obtain (N1K) decimals;
- mean for evaluating for an (N1K)th dispersion for the (N1K) decimals; and
- means for comparing the (N1K)th dispersion with an (N1K)th average dispersion which is an average of dispersions for the plurality of transmitted codeword (N1)-tuples.
14. The apparatus of claim 13, wherein the greatest number K is a maximum value of the least number L and Log2M, wherein Log2M is the smallest integer that is not smaller than Log2M.
15. The apparatus of claim 9, wherein NG is equal to 2N1/M.
16. The apparatus of claim 9, wherein M is an even integer.