A device and method for performing channel encoding using a frame structure having a termination effect in a recursive systemic encoder for a communication system. The channel encoding device having: an inserter for inserting at least one predefined bit in an input data bit stream at a predetermined position; and a channel encoder for encoding the bit-inserted data bit stream.
|
13. A channel encoding method comprising the steps of:
inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to generate a bit-inserted data bit stream; encoding the bit-inserted data bit stream to generate a first parity symbol stream; interleaving the bit-inserted data bit stream; and encoding the interleaved bit-inserted data bit stream to generate a second parity symbol stream.
1. A channel encoding device comprising:
an inserter for inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to form a bit-inserted data; a first constituent encoder for encoding output of the inserter to generate a first parity symbol stream; an interleaver for interleaving output of the inserter; and a second constituent encoder for encoding an output of the interleaver to generate a second parity symbol stream.
16. A channel encoding method comprising the steps of:
inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to generate a bit-inserted data bit stream; encoding the bit-inserted data bit stream to generate a first parity symbol stream; interleaving the bit-inserted data bit stream; encoding the interleaved bit-inserted data bit stream to generate a second parity symbol stream; and sequentially selecting the bit-inserted data bit stream, the parity symbol stream and the second parity symbol stream, and outputting the selected values as a channel encoded symbol stream.
4. A channel encoding device comprising:
an inserter for inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to form a bit-inserted data; a first constituent encoder for encoding output of the inserter to generate a first parity symbol stream; an interleaver for interleaving output of the inserter; a second constituent encoder for encoding an output of the interleaver to generate a second parity symbol stream; and a selector for selecting an output of the bit inserter and an output of the constituent encoders and outputting the selected output as a channel encoded symbol stream.
20. A channel encoding method comprising the steps of:
inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to generate a bit-inserted data bit stream; encoding the bit-inserted data bit stream to generate a first parity symbol stream; interleaving the bit-inserted data bit stream; encoding the interleaved bit-inserted data bit steam to generate a second parity symbol stream; and outputting a channel encoded symbol stream by puncturing bits inserted in the predefined positions from the bit-inserted data bit stream and inserting a parts of the first and second parity symbol stream in the punctured positions as many as the number of the punctured bits.
8. A channel encoding device comprising:
a bit inserter for inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to form a bit-inserted data; a first constituent encoder for encoding output of the inserter to generate a first parity symbol stream; an interleaver for interleaving output of the inserter; a second constituent encoder for encoding an output of the interleaver to generate a second parity symbol stream; and a multiplexer for puncturing bits inserted in the predefined positions from the bit inserted data and inserting the encoded symbols in the punctured positions as many as the number of the punctured bits, to output channel encoded data.
10. A channel encoding device comprising:
an inserter for inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to form a bit-inserted data; a first constituent encoder for encoding output of the inserter to generate a first parity symbol stream; an interleaver for interleaving output of the inserter; a second constituent encoder for encoding an output of the interleaver to generate a second parity symbol stream; and a selector for puncturing known bits inserted in the predefined positions from the bit-inserted data bit stream output from the bit inserter, and repeatedly inserting a part of the encoded symbol stream in the punctured bit positions, to output channel encoded data.
25. A channel encoding method comprising the steps of:
inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to generate a bit-inserted data bit stream; encoding the bit-inserted data bit stream output from the bit inserter to generate a first parity symbol stream; interleaving the bit-inserted data bit stream; encoding the interleaved bit-inserted data bit stream to generate a second parity symbol stream; and outputting a channel encoded symbol stream by puncturing known bits inserted in the predefined positions from the data bit stream output from the bit inserter, and repeatedly inserting a part of the encoded symbol stream in the punctured bit position, to output channel encoded data.
23. A channel encoding method comprising the steps of:
inserting at least one predefined bit in an input data bit stream at a predetermined position known by a receiver to generate a bit-inserted data bit stream; generating tail bits for termination and encoding the bit-inserted data bit stream and the tail bits to generate a first parity symbol stream; interleaving the bit-inserted data bit stream; generating tail bits for termination and encoding the interleaved bit-inserted data bit stream and the tail bits to generate a second parity symbol stream; and outputting a channel encoded symbol stream by puncturing bits inserted in the predefined positions from the data bit stream output from the bit inserter and inserting the parity symbols for the tail bits in the punctured positions.
2. The channel encoding device as claimed in
3. The channel encoding device as claimed in
5. The channel encoding device as claimed in
6. The channel encoding device as claimed in
9. The channel encoding device as claimed in
11. The channel encoding device as claimed in
12. The channel encoding device as claimed in
14. The channel encoding method as claimed in
15. The channel encoding method as claimed in
17. The channel encoding method as claimed in
18. The channel encoding method as claimed in
21. The channel encoding method as claimed in
22. The channel encoding method as claimed in
24. The channel encoding method as claimed in
26. The channel encoding method as claimed in
27. The channel encoding method as claimed in
|
1. Field of the Invention
The present invention relates generally to a device and method for communicating data in a unit of frame, and in particular, to a channel encoding device and method.
2. Description of the Related Art
In communication systems for processing voice, character, image and video signals, data is generally transmitted in consecutive frames. Further, in a system for communicating such frame data, a channel encoder for error correction should also encode data in the frame unit. In this case, the channel encoder inserts tail bit at the end of a data frame to reset the convolutional encoder to a known state and to allow the decoder to efficiently decode the frames using that information. An IS-95 system typically uses a non-recursive systemic convolutional encoder, which a sequence of zero(0) bits to the end of each frame by an amount equivalent to the number of taps of a serially time-delayed data sequence to implement the frame termination, because input bits are fed back to the delays.
Shown in
The first constituent encoder 110 encodes the input data bits and the interleaver 120 interleaves the input data bits according to a specified rule to change arrangement of the data bits. The second constituent encoder 130 encodes an output of the interleaver 120. The constituent encoder 110 and 130 are equal structures.
Referring to
The multiplexer multiplexes the encoded data bits and the tail parity bits output from the constituent encoder. The number of the generated tail bits depends on the number of the delays included in the constituent encoders 110 and 130. The termination scheme of
Such a recursive systemic convolutional encoder has a performance depending upon the tailing method, because it is difficult to perfectly tail the turbo codes.
It is, therefore, an object of the present invention to provide a device and method for performing channel encoding using a frame structure having a termination effect in a recursive systemic encoder for a communication system.
It is another object of the present invention to provide a recursive systemic channel encoding device and method for inserting bits having a specific value in frame data at predefined positions before channel encoding, to attain a termination effect.
It is further another object of the present invention to provide a recursive systemic channel encoding device and method for inserting bits having a specific value at predefined positions of input frame data bits stream before channel encoding, channel encoding input data bits including the inserted bit, puncturing the inserted bits and encoded data bits exceeding a frame length at bit-inserted positions of the input frame data bits stream.
It is still further another object of the present invention to provide a channel encoding device and method for inserting bits having a specific value at predefined positions of frame data to encoding input data bits including the inserted bit, generating encoded symbol and tail parity using a recursive systemic constituent encoder, and puncturing inserted bits to insert the tail parity at the punctured inserted bits positions.
To achieve the above objects, there is provided a channel encoding device. In the channel encoding device, a bit inserter inserts bits having a specific value in data bits at bit positions having a higher error occurrence probability. A constituent encoder encodes an output of the bits inserter. A selector selects an output of the bit inserter and an output of the constituent encoder and outputs the selected value as channel encoded data.
The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings in which like reference numerals indicate like parts. In the drawings:
A preferred embodiment of the present invention will be described hereinbelow with reference to the accompanying drawings. In the following description, well known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.
A term "data bit" used herein refers to data which is not encoded, and a term "parity bit" refers to data which is encoded by a constituent encoder. Generally, in a communication system, a transmitter encodes transmission data using a channel encoder and sends the encoded data; a receiver then demodulates the data received from the transmitter to convert the received data into the original data. Here, the channel encoder encodes the transmission data in the frame unit and generates tail bits, which are added to each frame of the transmission data to indicate a termination of the frame. The present invention proposes a frame structure having a termination effect in the channel encoder.
The frame structure having the termination effect can be implemented in several methods as follows:
First, known bits are inserted in one channel frame at the positions having a higher error occurrence probability, as many as the number of tail bits. Here, the recursive systemic constituent encoders may not have a structure for generating the tail bits. The error probability is determined by way of experiments, and the insert positions should be known to both the channel encoder and a channel decoder. The insert bit position could be known by transmit a relative message during call setup procedure or channel assignment procedure. The known bits to be inserted may be insignificant bits which rarely affect a communication performance, even though they are not transmitted. Also, they can be encoded bits or data bits predetermined with a receiver. Herein, they are assumed to be zero bits.
Second, the known bits are inserted in the channel frame at the positions having the higher error occurrence probability, as many as the number of tail bits, wherein the number of the known bits being inserted exceeds a predefined frame length. The bit-inserted data bits are encoded using the constituent encoders. Then, when outputting the channel encoded data, the bits exceeding the frame length of the channel encoded data are punctured at the bit-inserted positions of the input data. Here, the recursive systemic encoder does not generate the tail bits and the channel decoder should previously know the bit-inserted positions.
Third, the known bits are inserted in the channel frame at the positions having the higher error probability, as many as the number of the tail bits, in generating the channel encoded signal using the frame structure having the termination effect; the constituent encoder generates tail bits for termination and encoded data for the tail bits and thereafter, punctures the data bits at specific insert positions to insert the tail bits and the encoded data for the tail bits in the punctured bit insert positions.
Fourth, the tail bits are not generated, and the known bits are inserted in the channel frame at the positions having the higher error probability. In the bit insert positions, a plurality of encoded data bits are repeated transmitted instead of the inserted bits.
Fifth, for termination, bits having a specific logic are inserted in the data bits at the bit positions having the higher error probability. A constituent encoder encodes the bit-inserted data bits and generates tail bits, which are added to the encoded data bits. That is, the constituent encoder performs the termination function by bit inserting and tail bit adding.
Sixth, the same operation as the fifth method is performed. In addition, the inserted bits are punctured at the bit insert positions, and a first constituent encoder repeatedly transmits 4 tail parity bits at the punctured positions.
Seventh, the same operation as the sixth method is performed. In addition, the inserted bits are punctured at the bit insert positions, and a second constituent encoder repeatedly transmits the last 4 parity bits at the punctured positions.
Eighth, for termination, bits having a specific logic are inserted in the data bits at the bit positions having a higher error probability. A constituent encoder encodes the bit-inserted data bits and internally generates tail bits, which are added to the encoded data bits.
Ninth, for termination, 6 bits having a specific logic are inserted in the data bits at the bits positions having a higher error probability. A bit inserter punctures the inserted bits at the bit insert positions. A first constituent encoder performs tailing at the punctured positions and interleaves the tail bit-included data bits. When encoding an output of the first constituent encoder, a second constituent encoder inserts 6 bits exceeding the frame length in the punctured bit insert positions.
Now, reference will be made to nine different embodiments using the above bit inserting methods.
An encoder according to a first embodiment of the present invention does not generate tail bits and instead, inserts known bits at predetermined positions to perform the termination function. In this embodiment, one frame has 16 data bits, and 8 known bits codes each being a zero bit are inserted in the frame at the bit positions having the higher error probability. Here, the bit insert positions are determined by experimentally detecting the positions where most errors occur while decoding the encoded data. Further, the turbo encoder uses a ⅓ coding rate.
In this embodiment, the positions having the higher error probability during decoding are experimentally determined, when the 24-bit frame data (of 16 frame data 10 bits plus the 8 known bits) is encoded using a turbo encoder having a ⅓ coding rate. Eight bit positions having the relatively higher error probability are determined, and at the determined positions, the known bits are inserted in the input frame data bits. Here, the decoder knows the bit-inserted positions, when decoding the encoded frame data in which the specific codes are inserted.
When the known bits are zero bits (in practice, the "0" bits are transmitted as "-1"), the zero bits at the insert positions are changed to a large negative value (e.g., -5) before decoding, in order to increase a reliability. In this manner, the decoder decodes the bits, knowing 8 bits which is ⅓ the 24 bits, thereby increasing the performance. In this case, the performance is increased, as the frame is shorter.
A description will be made as to operation of inserting the known bits in the data bits with reference to FIG. 4. The input data bits are delayed by the delays 412-426 according to the bit clock. Initially, the switch 432 selects the input data bits and the switch 434 is connected to the switch 432. Then, the input data bits are output via the switches 432 and 434. In the meantime, if the bit insert position is determined, the switch 432 is connected to the output of the delay 412 and the switch 434 is connected to the output of the bit generator 430, under the control of the controller. As a result, a path for the data bits is cut off and the zero bit output from the bit generator 430 is inserted in the corresponding bit position. In the case where the data bits should be continuously output after insertion of the zero bit, the switch 434 is connected again to the switch 432 by the controller. That is, since the one bit-delayed data bit is selected after insertion of the zero bit, the zero bit can be inserted at the predefined position without loss of the data bit.
The zero bits are inserted in the data bits for one frame by repeating this process. Upon reception of data bits for the next frame after insertion of the zero bits, the switch 432 is connected to a data bit input node and then, the above process is repeated again. In the case where the data bits are encoded for communication, an error probability is relatively higher at the rear portion of the data bit stream input to the respective constituent encoders. Accordingly, the positions where the zero bits output from the bit generator 430 are inserted, can be mostly located at the rear portion of the data bit stream as shown in Table 1, by way of example.
TABLE 1 |
where Ix denotes data bits and Ibx inserted bits.
The reason for inserting the known bits in the data bit stream is to improve a decoding performance at the receiver. Therefore, it is preferable to insert the known bits at the bit positions in the channel frame, having the higher error occurrence probability, as many as the number of tail bits. In most cases, the bit positions having the higher error occurrence probability are distributed at the rear portion of the data bit stream input to the constituent encoders, as shown in Table 1. Accordingly, the known bits are inserted at the rear portion of the data bit streams which are input to the first and second constituent encoders 320 and 340. Here, for the second constituent encoder 340, the known bits should be inserted at the rear portion of the interleaved data bits output from the interleaver 330. Accordingly, the bit inserter 310 should take this into consideration in inserting the known bits in the data bits applied to the second constituent encoder 340.
The data bits of Table 1, output from the bit inserter 310, are applied to the first constituent encoder 320 and the interleaver 330. The interleaved data bits in the frame unit, output from the interleaver 330, are encoded by the second constituent encoder 340.
The first constituent encoder 320 encodes the data bits of Table 1, output from the bit inserter 310. The encoded data bits output from the first constituent encoder 320 are shown in Table 2.
TABLE 2 |
where Cx denotes symbols output from the first constituent encoder 320, and Cbx denotes symbols of the inserted bits, output from the first constituent encoder 320. Here, in the case where the turbo encoder 320 has the ⅓ coding rate.
In the meantime, the interleaver 330 interleaves the data bits output from the bit inserter 310 and the second constituent encoder 340 encodes the interleaved data bits output from the interleaver 330. The encoded data bits output from the second constituent encoder 340 are shown in Table 3.
TABLE 3 |
where Dx denotes symbols output from the second constituent encoder 340 and Dbx symbols of the inserted bits, output from the second constituent encoder 340. Here, in the case where the turbo encoder 340 has the ⅓ coding rate. Although the sequence of the data bits was actually rearranged by interleaving, the sequence remains unchanged in Table 3, for the convenience of explanation.
The multiplexer 350 then multiplexes the outputs of the bit inserter 310, the first constituent encoder 320 and the second constituent encoder 340, under the control of the undepicted controller. Shown in Table 4 are the channel encoded data bits output from the multiplexer 350.
TABLE 4 |
A performance of the channel encoder can be varied according to the insert positions of the known bits. For example, it is possible to improve the performance of the channel encoder by inserting the known bits in the input data bit stream at regular intervals, as shown in Table 5.
TABLE 5 |
where Ix denotes data bits and Ibx inserted bits.
Accordingly, as shown in Table 5, it is preferable to continuously insert the known bits in the input data bit stream at regular intervals, as many as the number of the memories in the constituent encoder (e.g., for a constraint length of 3, two known bits are continuously inserted).
Although
As can be appreciated from the foregoing descriptions, in the recursive systemic turbo encoder according to the first embodiment, the respective constituent encoders do not generate the tail bits for termination and instead, insert the known bits (i.e., zero bits) at the bit positions having the higher error probability.
A channel encoder according to a second embodiment of the present invention inserts known bits at the bit positions having the higher error occurrence probability, wherein the number of the inserted bits is set to exceed the frame size (or length). In this exemplary embodiment, each frame is assumed to include 16 input data bits and 12 inserted bits. Since the output data bits Ik, parity bits Ck and Dk should be 28 bits. The inserted bits are deleted and the surplus parity bits Ck and Dk are inserted in the position of the deleted bits.
The number of the insert bits is determined by the input data bit number of the encoder, the number of the output code symbols and a code rate. That is, when the input data bit number of the encoder is N, the number of output code symbols of the encoder is M and the code rate is 1/K, the number of insert bits is (M-KN)/(K-1). From this, when the input data bit number of the encoder is 16, the number of output code symbols is 72 and the code rate is ⅓, the number of insert bits is 12.
Actually, as the number of the insert bits increases, the encoder has the increased performance. The encoder according to this embodiment can maximally improve its performance by inserting the known bits as many as possible, with the given input data bit number and output code symbol number. In this embodiment, when 12 insert bits are used and the data bits are transmitted after encoding, it is possible to improve the performance of the encoder by transmitting only the encoded symbols, without transmitting the inserted bits, for maximal bit inserting.
In operation, upon receipt of the 16 input data bits, the bit inserter 710 operates in the same manner as the bit inserter 310 of the first embodiment. The bit inserter 710 has a structure similar to that of
he first constituent encoder 720 then encodes the 28 data bits Ik with the 12 zero bits inserted therein, output from the bit inserter 710, and outputs 28 first parity bits Ck to the multiplexer 750. The interleaver 730 interleaves the 28 data bits Ik output from the bit inserter 710, and the second constituent encoder 740 encodes the interleaved data bits in the same manner as the first constituent encoder 720 to generate 28 second parity bits Dk, which are applied to the multiplexer 750.
The multiplexer 750 punctures the inserted bits from data bits Ik to insert the six first parity bits Ck and the six second parity bits Dk in the punctured positions and then, outputs the remaining 22 first parity bits Ck and the remaining 22 second parity bits Dk.
Referring to
In the same manner, the multiplexer 750 receives the 28 first parity bits Ck output from the first constituent encoder 720. Then, a switch 814 in the multiplexer 750 is connected to a delay 826 until the first 22 data bits out of the 28 first parity bits Ck are received from the first constituent encoder 720, and the delay 826 delays the received first parity bits Ck. Thereafter, the switch 814 is connected to a delay 828 until the remaining 6 first parity bits out of the 28 first parity bits Ck are received from the first constituent encoder 720, and the delay 828 delays the received remaining 6 first parity bits.
Thereafter, the multiplexer 750 receives the 28 second parity bits Dk output from the second constituent encoder 740. Then, a switch 816 in the multiplexer 750 is connected to a delay 830 until the first 22 data bits out of the 28 second parity bits Dk are received from the second constituent encoder 740, and the delay 830 delays the received second parity bits Dk. Thereafter, the switch 816 is connected to a delay 832 until the remaining 6 second parity bits out of the 28 second parity bits Dk are received from the second constituent encoder 740, and the delay 832 delays the received remaining 6 second parity bits.
As described above, the multiplexer 750 sequentially receives the 28 data bits Ik, the 28 first parity bits Ck and the 28 second parity bits Dk, and separately stores the first 22 bits and the remaining 6 bits out of the respective bits in the corresponding delays. The switches 812-816 are controlled by the undepicted controller. Further, the delays 822-832 each are composed of cascaded memory elements and store the input bits until the corresponding delay process is completed.
Upon completion of the delay process, the switch 844 is connected to a switch 842 and the switch 842 is connected to the delay 822. Therefore, an output of the delay 822 is output via the switches 842 and 844. When one data bit stored in the delay 822 is output, the switch 842 is connected to the delay 824, maintaining connection with the switch 844. Then, one of the remaining data bits stored in the delay 824 is output via the switches 842 and 844. That is, the data bit stored in the delay 822 is punctured and then, the data bit stored in the delay 824 is output. Thereafter, the switch 842 is connected to the delay 822, continuously maintaining connection with the switch 844. By repeating the above process 6 times, the data bits stored in the delay 822 are punctured and then, the remaining six data bits stored in the delay 824 are inserted in the punctured positions.
Subsequently, the switch 842 is connected to the delay 822, maintaining connection with the switch 844. Then, the output of the delay 822 is output via the switches 842 and 844. When one data bit stored in the delay 822 is output, the switch 842 is connected to the delay 828, maintaining connection with the switch 844. Then, one of the remaining six first parity bits stored in the delay 828 is output via the switches 842 and 844. Thereafter, the switch 842 is connected again to the delay 822, continuously maintaining connection with the switch 844. By repeating the above process 6 times, the data bits stored in the delay 822 are punctured and then, the remaining six first parity bits stored in the delay 828 are inserted in the punctured positions.
In this manner, the data bits and the remaining six first parity bits are alternately output. Next, the switch 842 is connected to the delay 822, maintaining connection with the switch 844. Then, the output of the delay 822 is output via the switches 842 and 844. When one data bit stored in the delay 822 is output, the switch 842 is connected to the delay 832, maintaining connection with the switch 844. Then, one of the remaining six second parity bits stored in the delay 832 is output via the switches 842 and 844. Thereafter, the switch 842 is connected again to the delay 822, continuously maintaining connection with the switch 844. By repeating the above process 6 times, the data bits stored in the delay 822 are punctured and then, the remaining six second parity bits stored in the delay 832 are inserted in the punctured positions.
By way of the foregoing procedure, the 22 data bits stored in the delay 822 are punctured and then, the remaining 6 data bits stored in the delay 824, the remaining 6 first parity bits stored in the delay 828 and the remaining 6 second parity bits stored in the delay 832 are inserted in the punctured positions. Accordingly, the multiplexer 750 punctures the inserted bits from the data bits Ik output from the bit inserter 710 and inserts the 8 parity bits in the punctured insert positions, thereby outputting 24 data bits.
Upon completion of the above process, the switch 844 is connected to the delay 826. Then, the 22 first parity bits Ck stored in the delay 826 are output. Thereafter, the switch 844 is connected to the delay 830 to output the 22 second parity bits Dk stored in the delay 830.
Referring to
In the decoding process, the output values of the multiplexer 750 are demultiplexed into a data bit portion, a first parity bit portion and a second parity bit portion, wherein the data bit portion is punctured with a value of "-5" at the bit inserting portion. Such processed data bits are decoded by an existing decoder. (See Claude Berrou, Alain Glavieux and Punya Thitmajshima "Near Shannon Limit Error-Correction Coding and Decoding: Turbo-Codes (1)".)
An encoder according to a third embodiment of the present invention inserts bits having a specific logic in the data bits at the bit positions having the higher error occurrence probability, wherein the constituent encoders encode the known bit-inserted data bits and generate tail bits to be added to encoded data bits. That is, the encoder according to the third embodiment performs the termination function by bit inserting and tail bit adding.
Referring to
Accordingly, the first constituent encoder 1020 generates 24 first parity bits Ck and, upon processing the last data bit (i.e., the 24th data bit), connects the switch 1111 to the exclusive OR gate 1133, the switch 1113 to the switch 1111 and the switch 1115 to the switch 1113; the same process is repeated four times to generate 4 tail bits. Through this procedure, the 28 first parity bits Ck and the 4 tail bits are output to the multiplexer 1050.
In addition, the interleaver 1030 interleaves the 24 data bits Ik output from the bit inserter 1010 and provides the interleaved data bits to the second constituent encoder 1040. The second constituent encoder 1040 then encodes the interleaved data bits in the same manner as the first constituent encoder 1020 to generate 24 second parity bits Dk, which are applied to the multiplexer 1050.
The interleaved data bits in the frame unit, output from the interleaver 1030, are encoded by the second constituent encoder 1040 which has the same structure as that shown in FIG. 5. The second constituent encoder 1040 is a recursive systemic convolutional encoder, as shown in FIG. 5. In addition, the second constituent encoder 1040 has a structure which does not generate the tail bits.
The multiplexer 1050 then punctures the inserted bits from data bits Ik, and inserts the 4 first parity bits Ck in the punctured positions, and selectively outputs the remaining 24 first parity bits Ck and the 24 second parity bits Dk.
hereafter, the multiplexer 1050 receives the 28 first parity bits Ck output from the first constituent encoder 1020. A switch 1212 in the multiplexer 1050 then is connected to a delay 1224 until the first 24 bits out of the first parity bits Ck are received from the first constituent encoder 1020, and the delay 1224 stores the received first parity bits Ck. Subsequently, the switch 1212 is connected to a delay 1226 until the remaining 8 bits out of the 32 first component code output are received from the first constituent encoder 1020, and the delay 1226 stores the remaining 8 bits of the first component code output.
Next, the multiplexer 1050 receives the 24 second parity bits Dk output from the second constituent encoder 1040. A delay 1228 in the multiplexer 1050 then stores the received 24 second parity bits Dk.
Such sequentially generated 24 data bits Ik, 28 first parity bits Ck and 24 second parity bits Dk are applied to the multiplexer 1050. The multiplexer 1050 then stores the sequentially received data bits Ik, first parity bits Ck and second parity bits Dk in corresponding delays in the order of reception, wherein the first 24 bits and the remaining 4 bits out of the 28 first parity bits Ck are separately stored in the corresponding delays. The delays 1222-1228 each are composed of cascaded memory elements and store the corresponding input bits until the above delay process is completed.
After the above delay process, a switch 1236 is connected to a switch 1234, and the switch 1234 is connected to delay 1222. Thus, an output of the delay 1222 is output via the switches 1234 and 1236. When one data bit stored in the delay 1222 is output, the switch 1234 is connected to the delay 1226, maintaining connection with the switch 1236. Then, one of the remaining first parity bits stored in the delay 1226 is output via the switches 1234 and 1236. That is, the data bit store in the delay 1222 is punctured and then, the first parity bit stored in the delay 1226 is inserted in the punctured position. Thereafter, the switch 1234 is connected again to the delay 1222, maintaining connection with the switch 1236. The above operation is repeated 8 times to puncture the data bits stored in the 1222 and insert in the punctured positions the remaining 8 first parity bits stored in the delay 1226. As a result, in the 24 data bits Ik 8 inserted bits are punctured to insert the 8 first parity bits in the punctured positions (i.e., bit insert positions), thereby outputting 24 bits.
Thereafter, the switch 1236 is connected to an output of the delay 1224. Then, the 24 first parity bits Ck stored in the delay 1224 are output via the switch 1236. Next, the switch 1236 is switched to the delay 1228 to output the 24 second parity bits Dk stored in the delay 1228.
Referring to
In the decoding process, the output values of the multiplexer 1050 are demultiplexed into a data bit portion, a first parity bit portion and a second parity bit portion, wherein the data bit portion is punctured with a value of "-5" at the bit inserting portion. Such processed data bits are decoded by an existing decoder. (See Claude Berrou, Alain Glavieux and Punya Thitmajshima "Near Shannon Limit Error-Correction Coding and Decoding: Turbo-Codes (1)".)
Although it is assumed that this embodiment uses the zero bits as the insert bits, it is also possible to use encoded bits or data bits predetermined with the receiver.
In this third embodiment second constituent code also can terminate having tail bit generate same as first constituent code. And, the second tail bits and tail parity bits also inserted at the position of the deleted bits. First constituent code and second constituent code output parity bits and tail bits and tail parity bit. The inserted bits can be a part of first constituent code output and a part of second constituent code output.
An encoder according to a fourth embodiment of the present invention performs the termination function by inserting specific data bits at predefined bit insert positions without generating the tail bits. A specified number of encoded bits, instead of insert bits, are repeated at the insert positions. In this exemplary embodiment, one frame includes 16 data bits, and the 8 known bits being zero bits are inserted in the frame at the bit positions having higher error probability. Here, the positions of the known bits are determined by experimentally detecting the positions where the most errors occur during decoding the encoded data. In addition, the respective constituent encoders are assumed to have a ⅓ coding rate.
In this embodiment, the positions having the higher error probability during decoding are experimentally determined, when the 24-bit frame data (of 16 frame data bits plus the 8 known bits) is encoded using a turbo encoder having a ⅓ coding rate. Eight bit positions having the relatively higher error probability are determined, and at the determined positions, the known bits are inserted in the data bits. After encoding, last 4 bits out of the respective parity bits are repeated to insert the repeated bits in the bit insert positions in place of the known bits. Here, the decoder knows the parity bit-inserted positions, when decoding the encoded frame data in which the specific codes are inserted. For decoding, the bits are recombined into the parity bits.
When the known bits are zero bits (in practice, the "0" bits are transmitted as "-1"), the zero bits at the insert positions are changed to a large negative value (e.g., -5) before decoding, in order to increase a reliability. In this manner, the decoder decodes the bits, knowing 8 bits which is ⅓ the 24 bits, thereby increasing the performance. In this case, the performance is increased, as the frame is shorter.
A description will be made as to operation of inserting the known bits in the data bits with reference to FIG. 15A. The input data bits are delayed by the delays 1512-1526 according to the bit clock. Initially, the switch 1532 selects the input data bits and the switch 1534 is connected to the switch 1532. Then, the input data bits are output via the switches 1532 and 1534. In the meantime, if the bit insert position is determined, the switch 1532 is connected to the output of the delay 1512 and the switch 1534 is connected to the output of the bit generator 1530, under the control of the controller. As a result, a path for the data bits is cut off and the zero bit output from the bit generator 1530 is inserted in the corresponding bit position. In the case where the data bits should be continuously output after insertion of the zero bit, the switch 1534 is connected to the switch 1532 by the controller. That is, since the one bit-delayed data bit is selected after insertion of the zero bit, the zero bit can be inserted at the predefined position without loss of the data bit.
he zero bits are inserted in the data bits for one frame by repeating this process. Upon reception of data bits for the next frame after insertion of the zero bits, the switch 1532 is connected to a data bit input node and then, the above process is repeated again. In the case where the data bits are encoded for communication, an error probability is relatively higher at the rear portion of the frame. Accordingly, the positions where the zero bits output from the bit generator 1530 are inserted, can be mostly located at the rear portion of the frame.
The data bits output from the bit inserter 1410 are applied to the first constituent encoder 1420 and the interleaver 1430. The interleaved data bits in the frame unit, output from the interleaver 1430, are encoded by the second constituent encoder 1440.
While the first constituent encoder 1420 encodes the data bits output from the bit inserter 1410, the interleaver 1430 interleaves the data bits output from the bit inserter 1410 and the second constituent encoder 1440 encodes the interleaved data bits output from the interleaver 1430.
The multiplexer 1450 then multiplexes the outputs of the bit inserter 1410, the first constituent encoder 1420 and the second constituent encoder 1440, under the control of the undepicted controller.
Referring to
Upon completion of the delay process, the switch 1640 is connected to a switch 1630 and the switch 1630 is connected to the delay 1621. Therefore, an output of the delay 1621 is output via the switches 1630 and 1640. When one data bit stored in the delay 1621 is output, the switch 1630 is connected to the delay 1623, maintaining connection with the switch 1640. Then, one of the remaining data bits stored in the delay 1623 is output via the switches 1630 and 1640. That is, the data bit stored in the delay 1621 is punctured and then, the data bit stored in the delay 1623 is inserted in the punctured position. Thereafter, the switch 1630 is connected again to the delay 1621, continuously maintaining connection with the switch 1640. By repeating the above process 4 times, the data bits stored in the delay 1621 are punctured and then, the remaining 4 first parity bits stored in the delay 1623 are inserted in the punctured positions.
Subsequently, the switch 1630 is connected to the delay 1621, maintaining connection with the switch 1640. Then, the output of the delay 1621 is output via the switches 1630 and 1640. When one data bit stored in the delay 1621 is output, the switch 1630 is connected to the delay 1625, maintaining connection with the switch 1640. Then, one of the remaining 4 second parity bits stored in the delay 1625 is output via the switches 1630 and 1640. Thereafter, the switch 1630 is connected again to the delay 1621, continuously maintaining connection with the switch 1640. By repeating the above process 4 times, the data bits stored in the delay 1621 are punctured and then, the remaining four second parity bits stored in the delay 1625 are inserted in the punctured positions.
By way of the foregoing procedure, 8 inserted bits of the 24 data bits stored in the delay 1621 are punctured and then, the remaining 4 first parity bits stored in the delay 1623 and the remaining 4 second parity bits stored in the delay 1625 are alternately inserted in the punctured positions, thereby to output 24 bits. Accordingly, the multiplexer 1450 punctures 8 inserted bits of the data bits Ik output from the bit inserter 1410 and inserts the 8 parity bits in the punctured insert positions, thereby outputting 24 data bits.
Upon completion of the above process, the switch 1640 is connected to the delay 1622. Then, the 24 first parity bits Ck stored in the delay 1622 are output. Thereafter, the switch 1640 is connected to the delay 1624 to output the 24 second parity bits Dk stored in the delay 1624.
Although
As can be appreciated from the foregoing descriptions, in the recursive systemic turbo encoder according to the fourth embodiment, the respective constituent encoders do not generate the tail bits for termination and instead, insert the known bits (i.e., zero bits) at the bit positions having the higher error probability.
An encoder according to a fifth embodiment of the present invention inserts bits having a specific logic in the data bits at predefined bit insert positions having a higher error occurrence probability. Constituent encoders encode the bit-inserted data bits and generate tail bits to be added to the encoded data bits. That is, the encoder according to the fifth embodiment performs the termination function by bit inserting and tail bit adding.
The number of the insert bits is determined by the input data bit number of the encoder, the number of the output code symbols, a constraint length and a code rate. That is, when the input data bit number of the encoder is N, the number of output code symbols of the encoder is M, the constraint length is L and the code rate is 1/K, the number of insert bits is (M-KN-2(K-1)(L<1))/(K-1). From this, when the input data bit number of the encoder is 16, the number of output code symbols is 72, the constraint length is 5 and the code rate is ⅓, the number of insert bits is 4.
Actually, as the number of the insert bits increases, the encoder has the increased performance. The encoder according to this embodiment can maximally improve its performance by inserting the known bits as many as possible, with the given input data bit number and output code symbol number. In this embodiment, when 12 insert bits are used and the data bits are transmitted after encoding, it is possible to improve the performance of the encoder by transmitting only the encoded symbols, without transmitting the inserted bits, for maximal bit inserting.
In this embodiment, the bit inserter 1810 outputs the 20 data bits Ik, which are applied in common to the multiplexer 1850, the first constituent encoder 1820 and the interleaver 1830. The interleaved data bits Ik output from the interleaver 1830 are applied to the second constituent encoder 1840. Here, the first constituent encoder 1820 is a recursive systemic constituent encoder shown in
Referring to
Accordingly, the first constituent encoder 1820 generates 20 first parity bits Ck and, upon processing the last data bit (i.e., the 20th data bit), connects the switch 2011 to the exclusive OR gate 2033, the switch 2013 to the switch 2011 and the switch 2015 to the switch 2013; the same process is repeated four times to generate 4 tail bits Tk. Through this procedure, the 24 first parity bits Ck and the 4 tail bits are output to the multiplexer 1850. A switch 1860 is switched to the interleaver 1830 to apply the tail bits Tk to the interleaver 1830 and the switch 1870 is connected to the multiplexer 1850 to apply the tail bits Tk to the multiplexer 1850.
In addition, the interleaver 1830 interleaves the 20 data bits Ik output from the bit inserter 1810 and the 4 tail bits output from the first constituent encoder 1820, and provides the 24 interleaved data bits to the second constituent encoder 1840. The second constituent encoder 1840 then encodes the interleaved data bits in the same manner as the first constituent encoder 1440 of
The interleaved data bits in the frame unit, output from the interleaver 1830, are encoded by the second constituent encoder 1840 which has the same structure as that shown in FIG. 15B. The second constituent encoder 1840 is a recursive systemic convolutional encoder, as shown in FIG. 15B. In addition, the second constituent encoder 1840 has a structure which does not generate the tail bits.
The multiplexer 1850 then punctures 4 inserted bits of the data bits Ik, and inserts the 4 first parity bits Ck in the punctured positions, and selectively outputs the remaining 24 first parity bits Ck and 24 second parity bits Dk. The inserted 4 bits may be first constituent encode tail bits or tail bits parity.
Thereafter, the multiplexer 1850 stores the 24 first parity bits Ck output from the first constituent encoder 1820 in a delay 2124, and stores the 4 tail bits Tk output from the first constituent encoder 1820 in a delay 2122. Next, the multiplexer 1850 stores the 24 second parity bits Dk output from the second constituent encoder 1840 in a delay 2126.
The delays 1222-1228 each are composed of cascaded memory elements and store the corresponding input bits until the above delay process is completed.
After the above delay process, a switch 2101 is connected to the delay 2122 to output the bits stored in the delay 2122. Subsequently, the switch 2101 is connected to the delay 2124 to output the bits stored in the delay 2124. Thereafter, the switch 2101 is connected to the delay 2126 to output the bits stored in the delay 2126.
An encoder according to a sixth embodiment of the present invention has the same operation as that of fifth embodiment, and punctures data bits to insert known bits in the punctured bit insert positions, and 4 tail parity bits from the first constituent encoder are repeatedly transmitted at the positions.
Referring to
The delays 2322-2328 each are composed of cascaded memory elements and store the corresponding input bits until the above delay process is completed.
After the above delay process, a switch 2340 is connected to a switch 2330 and the switch 2330 is connected to the delay 2321. Thus, an output of the delay 2321 is output via the switches 2330 and 2340. When one data bit stored in the delay 2321 is output, the switch 2330 is connected to the delay 2323, maintaining connection with the switch 2340. Then, one of the remaining first parity bits stored in the delay 2323 is output via the switches 2330 and 2340. That is, the data bit stored in the delay 1121 is punctured and then, the first parity bit stored in the delay 2323 is inserted in the punctured position. Thereafter, the switch 2330 is connected again to the delay 2321, maintaining connection with the switch 2340. The above operation is repeated 4 times to puncture the data bits stored in the 2321 and insert in the punctured positions the remaining 4 first parity bits stored in the delay 2323.
In this manner, the 24 data bits Ik stored in the delay 2321 are punctured to insert in the punctured positions the remaining 4 first parity bits stored in the delay 2323, thereby outputting 24 bits. As a result, the multiplexer 2250 punctures the 24 data bits Ik output from the bit inserter 2210 to insert the 4 parity bits in the punctured bit insert positions, thereby outputting 24 data bits.
Thereafter, the switch 2340 is connected to an output of the delay 2322. Then, the 24 first parity bits Ck stored in the delay 2322 are output via the switch 2340. Next, the switch 2340 is switched to the delay 2324 to output the 24 second parity bits Dk stored in the delay 2324.
An encoder according to a seventh embodiment of the present invention has the same operation as that of fifth embodiment, and punctures data bits to insert known bits in the punctured bit insert positions, and 4 tail parity bits from the second constituent encoder are repeatedly transmitted at the positions.
Referring to
Referring to
Upon completion of the delay process, a switch 2540 is connected to a switch 2530 and the switch 2530 is connected to the delay 2521. Thus, an output of the delay 2521 is output via the switches 2530 and 2540. When one data bit stored in the delay 2521 is output, the switch 2540 is connected to the delay 2524 to output one of the last 4 second parity bits stored in the delay 2524. That is, the data bit is punctured and then, the second parity bit stored in the delay 2524 is inserted in the punctured bit insert position. Thereafter, the switch 2530 is connected again to the delay 2521, maintaining connection with the switch 2540. The above operation is repeated 4 times to puncture the data bits stored in the 2521 and insert in the punctured bit insert positions the last 4 second parity bits stored in the delay 2524.
In this manner, the 24 data bits Ik stored in the delay 2521 are punctured to alternately insert the last 4 second parity bits stored in the delay 2524, thereby outputting 24 bits. As a result, the multiplexer 2450 punctures the 24 data bits Ik output from the bit inserter 2410 to insert the 4 second parity bits in the punctured bit insert. positions, thereby outputting 24 data bits.
Thereafter, the switch 2540 is connected to an output of the delay 2522. Then, the 24 first parity bits Ck stored in the delay 2522 are output via the switch 2540. Next, the switch 2540 is switched to the delay 2524 to output the 24 second parity bits Dk stored in the delay 2524.
An encoder according to an eighth embodiment of the present invention inserts bits having a specific logic in data bits at bit positions having a higher error occurrence probability. A constituent encoder encodes the bit-inserted data bits and independently (or internally) generates tail bits to be added to the encoded data bits. That is, the encoder according to this embodiment performs the termination function by bit inserting and tail bit adding.
The first constituent encoder 2620 generates 24 first parity bits Ck and 4 tail bits Tk, in which the first parity bits Ck are applied to the multiplexer 2650 and the tail bits Tk to a switch 2670. The switch 2670 connected to the multiplexer 2650, is switched to receive the data bits Ik output from the bit inserter 2610 or the tail bits Tk output from the first constituent encoder 2620, under the control of a undepicted controller. The switch 2670 punctures the data bits Ik to insert the tail bits Tk output from the first constituent encoder 2620 in the punctured bit insert positions, and provides them to the multiplexer 2650.
The interleaver 2630 interleaves the 20 data bits Ik output from the bit inserter 2610 and provides the interleaved data bits to the second constituent encoder 2640. The second constituent encoder 2640 then generates 24 second parity bits Dk and 4 tail bits Tk. A switch 2660 selectively applies the second parity bits Dk and the 4 tail bits Tk, output from the second constituent encoder 2640, to the multiplexer 2650.
Thereafter, the multiplexer 2650 stores the 24 first parity bits Ck output from the first constituent encoder 2620 in a delay 2722, and stores the 4 tail bits Tk output from the first constituent encoder 2620 in a delay 2721. Next, the multiplexer 2650 stores the 24 second parity bits Dk output from the second constituent encoder 2640 in a delay 2723 and stores 4 tail bits Tk output from the second constituent encoder 2640 in a delay 2724.
The delays 2721-2724 each are composed of cascaded memory elements and store the corresponding input bits until the above delay process is completed.
Upon completion of the delay process, a switch 2740 is connected to a switch 2730 and the switch 2730 is connected to the delay 2721. Thus, an output of the delay 2721 is output via the switches 2730 and 2740. When one insert bit stored in the delay 2721 is output, the switch 2730 is connected to the delay 2724, maintaining connection with the switch 2740, to output one of the 4 tail bits stored in the delay 2724. That is, the data bit stored in the delay 2721 is punctured and then, the tail bit stored in the delay 2724 is inserted in the punctured bit insert position. Thereafter, the switch 2730 is connected again to the delay 2721, maintaining connection with the switch 2740. The above operation is repeated 4 times to puncture the data bits stored in the 2721 and insert in the punctured bit insert positions the 4 tail bits stored in the delay 2724.
Thereafter, the switch 2740 is connected to an output of the delay 2722 to output the first parity bits Ck stored in the delay 2722. Next, the switch 2740 is switched to the delay 2723 to output the second parity bits Dk stored in the delay 2723.
As can be appreciated from the foregoing descriptions, in the recursive systemic turbo encoder according to the eighth embodiment, the respective constituent encoders do not generate the tail bits for termination and instead, insert the known bits (i.e., zero bits) at the bit positions having the higher error probability.
An encoder according to a ninth embodiment of the present invention inserts 6 bits having a specific logic in data bits at bit insert positions having a higher error occurrence probability. Data bits are punctured at bit insert positions and in the punctured bit insert positions, a first constituent encoder performs tailing and interleaves the data bits including the tail bits. When encoding the interleaved data bits, a second constituent encoder inserts the 6 bits exceeding the frame size in the punctured bit insert positions.
Accordingly, in this embodiment, the bits inserter 2810 outputs 22 data bits Ik, which are applied in common to the multiplexer 2850, the first constituent encoder 2820 and the interleaver 2830. Further, the interleaved data bits Ik output from the interleaver 2830 are applied to the second constituent encoder 2840. Here, the first constituent encoder 2820 is a recursive systemic constituent encoder shown in
The first constituent encoder 2820 having the structure of
In addition, the interleaver 2830 interleaves the 22 data bits Ik output from the bit inserter 2810 and the 4 tail bits output from the second constituent encoder 2840, and provides the interleaved 26 data bits to the second constituent encoder 2840. The second constituent encoder 2840 then encodes the interleaved data bits in the same manner as the first constituent encoder 2820 to generate 26 second parity bits Dk, which are applied to the multiplexer 2850. That is, the interleaved data bits in the frame unit, output from the interleaver 2830, are encoded by the second constituent encoder 2840. The second constituent encoder 2840 is a recursive systemic convolutional encoder shown in FIG. 15B. In addition, the second constituent encoder 2840 has a structure which does not generate the tail bits.
Thereafter, the multiplexer 2850 receives the 26 first parity bits Ck output from the first constituent encoder 2820, stores only the first 24 bits in a delay 3026 and stores the remaining 2 bits in a delay 3028 when a switch 3014 is switched to the delay 3028. The multiplexer 2850 receives 4 tail bits Tk, stores the first two tail bits in a delay 3022 and the last two tail bits in a delay 3024 when a switch 3012 is switched to the delay 3024. Next, the multiplexer 2850 receives the 26 second parity bits Dk, stores the first 24 bits in a delay 3030 and stores the last 2 bits in a delay 3032 when a switch 3016 is switched to the delay 3032.
The delays 1222-1228 each are composed of cascaded memory elements and store the corresponding input bits until the above delay process is completed.
After the above delay process, a switch 3042 is connected to a switch 3044, and the switch 3042 is connected to the delay 3022. Thus, an output of the delay 3022 is output via the switches 3042 and 3044. When one insert bit stored in the delay 3022 is output, the switch 3042 is connected to the delay 3024, maintaining connection with the switch 3044. Then, one of the last two tail bits stored in the delay 3024 is output via the switches 3042 and 3044. That is, the data bit stored in the delay 3022 is punctured and then, the tail bit stored in the delay 3024 is inserted in the punctured position. Thereafter, the switch 3042 is connected again to the delay 3022, maintaining connection with the switch 3044. The above operation is repeated 2 times to puncture the data bits stored in the delay 3022 and insert in the punctured positions the last 2 tail bits stored in the delay 3024.
Thereafter, the switch 3042 is connected to the delay 3022, maintaining connection with the switch 3044. Then, the output of the delay 3022 is output via the switches 3042 and 3044. When one insert bit stored in the delay 3022 is output, the switch 3042 is connected to the delay 3028, maintaining connection with the switch 3044. Then, one of the remaining 2 first parity bits stored in the delay 3026 is output via the switches 3042 and 3044. Thereafter, the switch 3042 is connected again to the delay 3022, maintaining connection with the switch 3044. The above operation is repeated 2 times to puncture the data bits stored in the delay 3022 and insert in the punctured positions the remaining 2 first parity bits stored in the delay 3028.
Thereafter, the switch 3042 is connected to the delay 3022, maintaining connection with the switch 3044. Then, the output of the delay 3022 is output via the switches 3042 and 3044. When one insert bit stored in the delay 3022 is output, the switch 3042 is connected to the delay 3032, maintaining connection with the switch 3044. Then, one of the remaining 2 second parity bits stored in the delay 3032 is output via the switches 3042 and 3044. Thereafter, the switch 3042 is connected again to the delay 3022, maintaining connection with the switch 3044. The above operation is repeated 2 times to puncture the data bits stored in the delay 3022 and insert in the punctured positions the remaining 2 second parity bits stored in the delay 3032.
Although the present invention has been describing on the assumption that the insert bits are zero bits, it is also possible to use encoded bits or data bits predetermined with a receiver.
While the invention has been shown and described with reference to a certain preferred embodiment thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
Park, Chang-Soo, Kang, Hee-Won, No, Jong-Seon, Kim, Jae-Yoel, Kong, Jun-Jin, Yang, Kyeong-Cheol
Patent | Priority | Assignee | Title |
10200978, | Jan 20 2000 | Apple Inc. | Hybrid ARQ schemes with soft combining in variable rate packet data applications |
10523363, | Aug 03 2015 | LG Electronics Inc | Transmission method and processing method for bitstream in wireless communication system |
10616867, | Jan 20 2000 | Apple Inc. | Hybrid ARQ schemes with soft combining in variable rate packet data applications |
6944803, | Jul 06 2000 | Her Majesty the Queen in right of Canada | CODE STRUCTURE, ENCODER, ENCODING METHOD, AND ASSOCIATED DECODER AND DECODING METHOD AND ITERATIVELY DECODABLE CODE STRUCTURE, ENCODER, ENCODING METHOD, AND ASSOCIATED ITERATIVE DECODER AND ITERATIVE DECODING METHOD |
7058003, | Mar 29 2000 | LG Electronics Inc. | Hand-off processing apparatus and method for telecommunication system |
7089477, | Aug 18 1999 | California Institute of Technology | Interleaved serial concatenation forming turbo-like codes |
7116710, | May 18 2000 | California Institute of Technology | Serial concatenation of interleaved convolutional codes forming turbo-like codes |
7421032, | May 18 2000 | Callifornia Institute of Technology | Serial concatenation of interleaved convolutional codes forming turbo-like codes |
7424111, | Aug 28 2003 | Sunplus Technology Co., Ltd. | System and method of applying parity bits to protect transmitting and receiving data |
7436332, | Aug 31 2006 | Canon Kabushiki Kaisha | Runlength encoding of leading ones and zeros |
7716552, | Aug 18 1999 | California Institute of Technology | Interleaved serial concatenation forming turbo-like codes |
7797615, | Jul 07 2005 | Acer Incorporated | Utilizing variable-length inputs in an inter-sequence permutation turbo code system |
7916781, | May 18 2000 | California Institute of Technology | Serial concatenation of interleaved convolutional codes forming turbo-like codes |
8074155, | Sep 28 2006 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Tail-biting turbo coding to accommodate any information and/or interleaver block size |
8238374, | Aug 17 2004 | Intellectual Ventures I LLC | Methods and apparatus for balancing modulation in cellular communications over noisy channels |
8250444, | Oct 18 2007 | Canon Kabushiki Kaisha | Iterative decoding in a mesh network, corresponding method and system |
8284833, | May 18 2000 | California Institute of Technology | Serial concatenation of interleaved convolutional codes forming turbo-like codes |
8446300, | Aug 01 2008 | VIVO MOBILE COMMUNICATION CO , LTD | Technique for rate matching in a data transmission system |
9009572, | Feb 22 2000 | Siemens Aktiengesellschaft | Method for adapting the data blocks to be supplied to a turbo coder and corresponding communications apparatus |
9164943, | Jan 18 2012 | Intel Corporation | Self correction logic for serial-to-parallel converters |
9723595, | Jan 20 2000 | Apple Inc. | Hybrid ARQ schemes with soft combining in variable rate packet data applications |
Patent | Priority | Assignee | Title |
4771400, | Dec 29 1986 | SAFENET, INC | Bit density controller |
5446747, | Apr 23 1991 | FRANCE TELECOM S A | Error-correction coding method with at least two systematic convolutional codings in parallel, corresponding iterative decoding method, decoding module and decoder |
5684915, | Apr 12 1994 | Mitsubishi Denki Kabushiki Kaisha | Digital VTR for recording special replay data with appended error correction codes |
5721745, | Apr 19 1996 | SES AMERICOM, INC | Parallel concatenated tail-biting convolutional code and decoder therefor |
5862153, | Sep 29 1995 | Kabushiki Kaisha Toshiba | Coding apparatus and decoding apparatus for transmission/storage of information |
5907582, | Aug 11 1997 | Northrop Grumman Innovation Systems, Inc | System for turbo-coded satellite digital audio broadcasting |
5978365, | Jul 07 1998 | LG INFORMATION AND COMMUNICATIONS, LTD | Communications system handoff operation combining turbo coding and soft handoff techniques |
5996104, | Sep 13 1996 | Synaptics Incorporated | System for coding system |
20010009569, | |||
20020021763, | |||
JP10303801, | |||
JP11508439, | |||
WO9740582, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 19 1999 | Samsung Electronics, Co., Ltd. | (assignment on the face of the patent) | / | |||
Jul 08 1999 | KIM, JAE-YOEL | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010106 | /0826 | |
Jul 08 1999 | PARK, CHANG-SOO | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010106 | /0826 | |
Jul 08 1999 | KANG, HEE-WON | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010106 | /0826 | |
Jul 08 1999 | KONG, JUN-JIN | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010106 | /0826 | |
Jul 08 1999 | NO, JONG-SEON | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010106 | /0826 | |
Jul 08 1999 | YANG, KYEONG-CHEOL | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010106 | /0826 |
Date | Maintenance Fee Events |
Jan 07 2003 | ASPN: Payor Number Assigned. |
Jan 27 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 29 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 17 2013 | RMPN: Payer Number De-assigned. |
Jan 23 2014 | ASPN: Payor Number Assigned. |
Feb 18 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Aug 20 2005 | 4 years fee payment window open |
Feb 20 2006 | 6 months grace period start (w surcharge) |
Aug 20 2006 | patent expiry (for year 4) |
Aug 20 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 20 2009 | 8 years fee payment window open |
Feb 20 2010 | 6 months grace period start (w surcharge) |
Aug 20 2010 | patent expiry (for year 8) |
Aug 20 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 20 2013 | 12 years fee payment window open |
Feb 20 2014 | 6 months grace period start (w surcharge) |
Aug 20 2014 | patent expiry (for year 12) |
Aug 20 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |