Method and apparatus for encoding and decoding convolutional codes
First Claim
1. An apparatus for error correction encoding using convolutional codes, comprising:
- means for classifying input signals containing a plurality of bits into a plurality of classes according to an error sensitivity of each bit;
encoder means for applying a convolutional encoding to the input signals classified into said plurality of classes, using an identical encoding rate for all the classes, to obtain encoded signals; and
puncture means for carrying out a puncture process for puncturing selected bits of the encoded signals, using different puncture rates for the encoded signals corresponding to different ones of said plurality of classes, to obtain error correction encoded output signals in which different classes of the input signals are encoded at different encoding rates according to the error sensitivity of each bit.
1 Assignment
0 Petitions
Accused Products
Abstract
A reduction of the redundancy due to the use of the convolutional codes as the error correction codes is achieved by a convolutional encoding at an identical encoding rate and a puncture process using different puncture rates for different classes of the input signals classified by the error sensitivity of each bit. A reduction of the decoding delay time without deteriorating the decoding error rate is achieved by updating the survivor path by remaining bits of the selected survivor path for each state other than the oldest bit and an additional bit indicative of the each state to which a transition is made at the present stage of decoding. A reduction of a circuit size of a Viterbi decoder is achieved by using a single RAM for memorizing a path metric and a survivor path for each state at an immediately previous stage of decoding together in each word of the memory capacity. A reduction of the decoding error rate for the data block encoded by the convolutional encoding is achieved by using the (i+N+j) bits of decoder input signals containing entire N bits of the received signals, preceded by last i bits of the received signals and followed by first j bits of the received signals.
-
Citations
20 Claims
-
1. An apparatus for error correction encoding using convolutional codes, comprising:
-
means for classifying input signals containing a plurality of bits into a plurality of classes according to an error sensitivity of each bit; encoder means for applying a convolutional encoding to the input signals classified into said plurality of classes, using an identical encoding rate for all the classes, to obtain encoded signals; and puncture means for carrying out a puncture process for puncturing selected bits of the encoded signals, using different puncture rates for the encoded signals corresponding to different ones of said plurality of classes, to obtain error correction encoded output signals in which different classes of the input signals are encoded at different encoding rates according to the error sensitivity of each bit. - View Dependent Claims (2, 3)
-
-
4. A Viterbi decoder for decoding convolutional codes encoded by a convolutional encoder, comprising:
-
branch metric calculation means for calculating a branch metric for each state at a present stage of decoding; path metric memory means for memorizing a path metric for each state at an immediately previous stage of decoding; path memory means for memorizing a survivor path for each state at the immediately previous stage of decoding; ACS circuit means for selecting a survivor path for each state at the present stage of decoding, by calculating the path metric for each state at the present stage of decoding from the branch metric calculated by the branch metric calculation means, the path metric memorized in the path metric memory means, and the survivor path memorized in the path memory means, the ACS circuit means outputs an oldest bit of the selected survivor path for each stage at the present stage of decoding, and updates the survivor path memorized in the path memory by remaining bits of the selected survivor path for each state at the present stage of decoding other than the oldest bit to be outputted and an additional bit indicative of said each state to which a transition is made at the present stage of decoding; and output generation means for determining a decoded output according to the oldest bit of the selected survivor path for each state at the present stage of decoding outputted from the ACS circuit means. - View Dependent Claims (5)
-
-
6. A Viterbi decoder for decoding convolutional codes encoded by a convolutional encoder, comprising:
-
branch metric calculation means for calculating a branch metric for each state at a present stage of decoding; memory means, formed by a single RAM having a memory capacity of 2m words×
(L+N) bits, where m is a memory length of the convolutional encoder, L is a truncation length for each survivor path used in the Viterbi decoder, and N is a number of bits used for expressing each path metric, for memorizing a path metric and a survivor path for each state at an immediately previous stage of decoding together in each word of the memory capacity;ACS circuit means for selecting a survivor path for each state at the present stage of decoding, by calculating the path metric for each state at the present stage of decoding from the branch metric calculated by the branch metric calculation means, and the path metric and the survivor path memorized in the memory means, the ACS circuit means outputs an oldest bit of the selected survivor path for each stage at the present stage of decoding; and output generation means for determining a decoded output according to the oldest bit of the selected survivor path for each state at the present stage of decoding outputted from the ACS circuit. - View Dependent Claims (7, 8)
-
-
9. A communication system for transmitting data block containing K bits encoded by convolutional codes, comprising:
-
a convolutional encoder for applying a convolutional encoding to the data block, in which the convolutional encoding starts from a state in which first m bits of the data block are entered in the convolutional encoder, and the convolutional encoding of remaining (K-m) bits of the data block are followed by the convolutional encoding of the first m bits of the data block, to obtain encoded signals containing N bits; memory means for memorizing the N bits of the encoded signals (R0, R1, . . . , RN-1), and outputting decoder input signals containing (i+N+j) bits arranged in an order of (RN-i+h(mod N), RN-i+h+1(mod N), . . . , RN-1+h(mod N) ;
Rh(mod N), Rh+1(mod N), . . . , RN-1+h(mod N) ;
Rh(mod N), Rh+1(mod N), Rh+j-1(mod N)), where i is a positive integer, j is a non-negative integer, and h is a non-negative integer; anda Viterbi decoder for decoding the (i+N+j) bits of the decoder input signals in said order in which the decoder input signals are outputted from the memory means. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method of transmitting data block containing K bits encoded by convolutional codes, comprising the steps of:
-
(a) applying the convolutional encoding to the data block, in which the convolutional encoding starts from a state in which first m bits of the data block are entered in a convolutional encoder, and the convolutional encoding of remaining (K-m) bits of the data block are followed by the convolutional encoding of the first m bits of the data block, to obtain encoded signals containing N bits; (b) memorizing the N bits of the encoded signals (R0, R1, . . , RN-1), and outputting decoder input signals containing (i+N+j) bits arranged in an order of (RN-i+h(mod N), RN-i+h+1(mod N), . . . , RN-1+h(mod N) ;
Rh(mod N), Rh+1(mod N), . . . , RN-1+h(mod N) ;
Rh(mod N), Rh+1(mod N), . . . , Rh+j-1(mod N)), where i is a positive integer, j is a non-negative integer, and h is a positive integer; and(c) decoding the (i+N+j) bits of the decoder input signals in said order in which the decoder input signals are outputted, by a Viterbi decoder. - View Dependent Claims (15)
-
-
16. A method of decoding data encoded by a convolutional encoder having a memory length equal to m and capable of taking 2m states;
- comprising the steps of;
(a) memorizing the data; (b) calculating a likelihood for each of the 2m states of the convolutional encoder to be an initial state, from at least a part of the data memorized at the step (a); and (c) decoding the data memorized at the step (a) by using the likelihood for each state to be the initial state calculated at the step (b), by a Viterbi decoder. - View Dependent Claims (17)
- comprising the steps of;
-
18. An apparatus for decoding data encoded by a convolutional encoder capable of taking M states;
- comprising;
Viterbi decoding means for decoding the data more than once with more than one different settings of an initial state of a trellis to be a different one of the M states of the convolutional encoder, to obtain a plurality off decoded outputs; and output determining means for selecting one of said plurality of decoded outputs of the Viterbi decoding unit. - View Dependent Claims (19, 20)
- comprising;
Specification