Background of the Invention
This invention relates to techniques for mapping a stream of information bits sent over a channel in a plurality of signaling slots to the points of an eight dimensional (8D) signal constellation. This invention more particularly relates to mapping techniques for defining the points of an 8D constellation through the use of twenty-nine bits.
An eight-dimensional, sixty-four state convolutionally coded communication system for transmitting information is disclosed in U.S. Pat. No. 4,713,817 to Wei which is hereby incorporated by reference herein. With such a system, Wei teaches how to construct a 19.2 Kbit/second modem which utilizes four 2D constellations, each having one hundred sixty points. Although Wei claims an eight dimensional constellation which is comprised of a concatenation of the four 160 points 2D constellations (e.g. a constellation having 160.sup.4 points), Wei teaches (at Col. 17, lines 57-65) that 536,870,912 points of the 655,360,000 8D points are chosen, and that twenty-nine bits are used to represent those 536,870,912 points. In particular, in accord with the teachings of U.S. Pat. No. 4,597,090 to Forney, Jr., Wei teaches that each of the four 2D constellations should be divided into a group of inner points, and a group of outer points, each outer point being further from the origin than each of the inner points. In the one hundred sixty point 2D constellation, Wei provides one hundred twenty-eight inner points, and thirty-two outer points. Wei then teaches that the 536,870,912 8D points chosen should include only those 8D points having four inner points or three inner points and one outer point distributed over the four 2D constellations.
In representing the 536,870,912 8D points with twenty-nine bits, Wei effectively divides each group of one hundred twenty-eight inner 2D points into four rotational subgroups of thirty-two points each, and each group of thirty-two outer 2D points into four rotational subgroups of eight point each. In choosing (mapping) a point, Wei first uses one bit to indicate whether 8D point has all inner points, or three inner points and one outer point. If the 8D point has all inner points, eight additional bits, two for each 2D constellation, are used to indicate in which of the four rotational subgroups the chosen point is located. The remaining twenty bits (five per 2D constellation) are used to identify the particular point out of the thirty-two points of the rotational subgroup for each 2D constellation. Where the 8D point has an outer point as identified by a first bit, eight additional bits are still used to identify the rotational subgroups. For the inner points, five bits per 2D constellation (total of fifteen) are still utilized to identify the points. However, of the remaining five bits, two bits are used to identify from which of the four 2D constellations the outer point is being chosen, and three bits are used to identify which of the eight outer points of an outer rotational subgroup is being sent.
While the Wei patent as disclosed (as opposed to claimed) is effective in providing a 19.2 Kbit/sec modem, the mapping technique utilized is not necessarily optimal or desirable. In particular, the division of each constellation into inner and outer points does not guarantee or approach an optimal signal to noise ratio, as there exist points among those 536,870,912 8D points chosen which have higher energy than some 8D points which would have had two inner and two outer points.
Summary of the Invention
It is therefore an object of the invention to provide an improved mapping technique for an eight dimensional constellation of a convolutionally coded 19.2 Kbit/sec modem.
It is a further object of the invention to provide an improved mapping technique for a 19.2 Kbit/sec modem which increases the signal to noise performance of the modem.
In accord with the objects of the invention, a mapping technique which utilizes twenty-nine bits for defining all points of an 8D constellation is provided. This 8D constellation is a desired subset of a concatenation of four 2D constellations, where each 2D constellation has one hundred sixty points. The mapping technique generally comprises:
dividing each 2D constellation into five groups of thirty-two points, the concatenation of four groups, one from each 2D constellation, comprising an 8D grouping,
choosing five hundred twelve 8D groupings from the possible six hundred twenty-five (5.sup.4) 8D groupings available,
partitioning each group of thirty-two points into four subgroups, three of the subgroups of any particular group being ninety, one hundred eighty, and two hundred seventy degree rotations of a first subgroup of the particular group; and
defining each 8D point in the 8D constellation by using nine bits to choose the 8D grouping, eight bits to choose four subgroups in the 8D grouping, one for each 2D constellation, and twelve bits to choose four 2D points, one in each chosen subgroup, the four 2D points comprising the 8D point.
According to one preferred aspect of the invention, the five groups of thirty-two points of each 2D constellation are chosen such that each group is of substantially different average energy relative to the others. One manner of providing five groups of substantially different energies is to choose a first set of eight points of the 2D constellation of lowest energy which are not ninety, one hundred eighty or two hundred seventy degree rotations of each other ("rotation" being defined throughout as a rotation about a specified origin) and to use those eight points and their 90, 180, and 270 degree rotations as a first group; and then to choose from the remaining points a second set of eight points of lowest energy which are not 90, 180, or 270 degree rotations of each other and to use those eight points and their 90, 180, and 270 degree rotations as a second group, etc. Another manner is to choose the points in a geometric manner such as to define areas which appear to be concentric "circles" or rings.
According to another preferred aspect of the invention, the five hundred twelve eight dimensional groupings are chosen by identifying the five hundred twelve substantially lowest energy eight dimensional groupings of the six hundred twenty-five eight dimensional groupings available.
Additional objects and advantages of the invention will become evident to those skilled in the art upon reference to the detailed description taken in conjunction with the provided figures.
Brief Description of the Drawings
FIG. 1 is a block diagram of a transmitter including an encoder, a bit grouping device, and a mapping table.
FIGS. 2a and 2b are one hundred sixty point 2D constellations divided into five groups according to first and second embodiments of the invention.
Detailed Description of the Preferred Embodiment
Referring to FIG. 1, and in accord with the preferred embodiment, an incoming serial bit stream is scrambled by scrambler 12 and sent to serial-to-parallel converter 14 which generates a twenty-eight bit parallel word. Of the twenty-eight bits, seven of the twenty-eight bits are chosen as described in the aforestated Wei patent. Of the seven bits, two are sent to a differential encoder 16. The two differentially encoded bits along with the third bit of the seven chosen bits are sent to a sixty-four state convolutional encoder 18 which adds one redundant bit indicative of the current state of a finite state device represented by the convolutional encoder. The four convolutionally encoded bits are then sent together with the four remaining chosen bits to a bit converter 22. The bit converter 22 generates eight bits (four sets of two bits) which, as is hereinafter described in more detail, are used to choose in which of four rotational subgroups in each of four 2D constellations a point in the hereinafter described 8D constellation lies. The remaining twenty-one bits which were not chosen for encoding and/or bit converting are used to choose the eight dimensional grouping in which the point in the 8D constellation lies as well as the point itself in the chosen 8D grouping. Thus, all twenty-nine bits are sent to a mapper 30 which takes the twenty-nine bits and generates therefrom four 2D coordinate pairs (four consecutive 2D signal points). The four 2D coordinate pairs are sent serially (one pair per baud) via a shaping filter 34 to a modulator 36 which modulates them onto a carier. The real part of the modulator output is then digital-to-analog converted by D/A converter 38 for transmission over a channel 40.
The four 2D coordinate pairs which represent the twenty-nine bits, and which are received at a receiver (not shown) and decoded into the original twenty-eight bits, are chosen from four 2D constellations. Each of the 2D constellations preferably has one hundred sixty points as shown in FIGS. 2a and 2b. With four 160 point constellations, up to 655,360,000 8D points can be represented. However, of the 8D points available, only a subset thereof of 536,870,912 (2.sup.29) points are used to comprise the 8D constellation of the invention. The 8D points chosen are different than those of the previously referenced Wei patent.
In choosing the 2.sup.29 8D points, according to a preferred aspect of the invention, each one hundred and sixty point 2D constellation is divided into five groups of thirty-two points each. The five groups are preferably of different average energies and may be chosen in any of several manners. A first manner of choosing five groups of thirty-two points is to choose the set of the eight lowest energy points which are not 90, 180, or 270 degree rotations of each other, and to use those eight points and their 90, 180, and 270 degree rotations as a first group. From the remaining points, a second set of eight lowest energy points which are not 90, 180, or 270 degree rotations of each other are chosen, and those eight points and their 90, 180, and 270 degree rotations are used as a second group. Third, fourth and fifth groups are chosen in the same manner to provide a subdivided constellation as shown in FIG. 2a.
A second manner of choosing five groups of thirty-two points is to divide the constellation geometrically so as to locate each group of points in five areas approximating five concentric "circles" or "rings" around an origin as shown in FIG. 2b. It should be appreciated that the terms "circles" and "rings" are used loosely, as the group of points do not represent an area, but appear to all be located at relatively similar distances from the origin (i.e. they are of similar energies). If the geometric manner of choosing groups is utilized, care still must be taken to guarantee that the 90, 180, and 270 degree rotations of any given point are in the same group as the point. Thus, regardless of the manner of choosing groups, each group may be further subdivided (partitioned) into four subgroups each having eight points, with each subgroup of a given group being defined as representing a 90, 180 or 270 degree rotation of another subgroup of that group. It will be appreciated that partitioning may be accomplished and is a natural result of partitioning an entire 2D constellation into four rotations; the intersection of a rotation and a group defining a subgroup.
With each 2D constellation comprised of five thirty-two point groups, six hundred twenty-five (5.sup.4) "8D groupings" exist, with an 8D grouping defined as the Cartesian product of all the points of a given group of the first 2D constellation with all the points of a given group of the second 2D constellation with all the points of a given group of the third 2D constellation with all the points of a given group of the fourth 2D constellation. Because each 8D grouping represents 32.sup.4 (=2.sup.20) 8D points, and because only 2.sup.29 points need to be identified, it is evident that only 2.sup.9 (=512) of the six hundred twenty-five 8D groupings need be utilized as part of the 8D constellation. Thus, according to the preferred embodiment, the five hundred twelve lowest energy 8D groupings are utilized. Using the one hundred sixty point constellation divided into the five groups of thirty-two points as shown in FIG. 2b, a listing of those five hundred twelve (0-511) lowest energy 8D groupings by their 2D "rings", and their relative energies is seen in the following chart. The union of these five hundred twelve lowest energy 8D groupings comprises the preferred 8D constellation of the instant invention.
As aforementioned with reference to FIG. 1, four 2D points (coordinate pairs) which represent an 8D point of the preferred 8D constellation are generated by a mapper 30 from twenty-nine input bits. The twenty-nine bits input into the mapper define the 8D point in the following manner. Nine bits of the twenty-nine bits are used to identify in which the of the five hundred twelve lowest energy 8D groupings the 8D point lies. The identified grouping provides a determined "ring" in each of the four 2D constellations. Then, eight additional bits of the twenty-nine bits (i.e. those eight bits which are generated by the differential encoder, convolutional encoder, and bit converter) are used to identify in which subgroups of the identified 8D grouping the 8D point lies. In other words, for each identified "ring", two bits are used to identify one of the four rotational subgroups, such that the 8D point is comprised of one of eight points in each 2D constellation. Then, the remaining twelve bits of the twenty-nine bits are used to identify among the points of the identified subgroups. In other words, three bits for each 2D constellation are utilized to choose among the eight remaining possible points of that 2D constellation.
It should be appreciated that the mapping technique described herein can be extended. Instead of dividing each one hundred sixty point 2D constellation into five rings of thirty-two points, the 2D constellations can each be divided into ten distinct energy rings of sixteen points each, with each ring of sixteen points being further divided into its four constituent rotational subgroups of four points each. With such an arrangement, the eight thousand one hundred ninety-six (2.sup.13) lowest energy groupings would be chosen from the ten thousand (10.sup.4) possible groupings to comprise the constellation. An 8D point would be chosen from the defined constellation by using thirteen bits to choose the grouping, eight bits to define the rotational subgroups, and the remaining eight bits (two per 2D constellation) to define the point.
While an extension of the mapping technique from five rings to ten rings does provide a slight additional signal/noise improvement, the additional memory and processor requirements currently well outweigh the advantages. Similarly, further extensions to twenty rings, etc. would result in yet smaller gain at the expense of yet additional memory and processor costs.
There has been described and illustrated herein a technique for mapping all points of an eight dimensional constellation of a convolutionally coded 19.2 Kbit/sec modem. While particular embodiments have been described, it is not intended that the invention be limited thereto, as it is intended that the invention be broad in scope as the art will allow. Thus, while the mapping technique was described with reference to a particular 19.2 Kbit/second modem which utilizes a differential encoder and a sixty-four state convolutional encoder, it will be recognized that the mapping technique has application to modems having different arrangements. Also, while the mapping technique was described with reference to an 8D constellation comprised of four 160 point constellations, it will be appreciated that mapping technique equally applies to constellations of four or more dimensions (i.e. 4+2y dimensions where y is a non-negative integer) having particular numbers of points, provided that: a) the 2D constellation can be divided into an integer number (n) of groups having the same number of points, where the number of points is 2.sup.r, where r>2 and n>2; and b) the groupings is greater than 2.sup.z-2r-ry where z is the number of bits available for defining the points of the 4+2y dimensional the constellation, and where z-2r-ry is the number of bits allocated to choosing a grouping. For example, an 8D constellation (y=2) comprised of a subset of points from four 2D constellations having one hundred forty-four points each could be divided into nine rings (n=9) of sixteen points (r=4) each. In such a situation, six thousand five hundred sixty-one (9.sup.4) groupings would be available. If twenty-eight bits were available for picking a point (z=28) twelve bits (12=28-8-8) would be assigned to picking one of the four thousand ninety-six lowest energy groupings, eight bits would be assigned to picking the proper subgroup rotations, and eight bits would be assigned to picking the particular point. Similarly, if a 10D constellation (y=3) comprised of a subset of points from five 2D constellations having one hundred twelve points each could be divided into seven rings (n=7) of sixteen points each (r=4). If thirty-five bits were available for picking a point (z=35), fifteen bits (15=35-8-12) would be assigned to picking sixteen thousand three hundred eight-four of the sixteen thousand eight hundred and seven (7.sup.5) 10D groupings, ten bits would be assigned to picking the proper subgroup rotations, and ten bits would be assigned to picking the particular point. Therefore, it will be appreciated by those skilled in the art that yet other modifications could be made to the provided invention without deviating from its spirit and scope as so claimed.