A recording medium stored with a turbo code designing program that realizes, by making a processor execute, a process for designing a turbo encoding,
- wherein a turbo encoder configured to execute the turbo encoding comprises:
- a first convolutional encoder configured to generate a parity stream of input data as a first parity stream by use of a predetermined RSC encoding;
- an interleaver configured to swap an order of series inside the input data based on a first rule to generate swapped data;
- and
- a second convolutional encoder configured to generate a parity stream of the swapped data as a second parity stream by use of the RSC encoding,
- the process includes:
- selecting a polynomial that indicates the RSC encoding among elements of a Galois field generated by a generator polynomial;
- designing the first rule of the interleaver based on the RSC encoding;
- and
- outputting information that indicates the designed turbo encoding outside,
- wherein the polynomial that indicates the RSC encoding includes a feedforward polynomial that indicates a feedforward connection and a feedback polynomial that indicates a feedback connection, and
- wherein each of the feedforward polynomial and the feedback polynomial is a polynomial selected among the elements of the Galois field or a multiplied product of a plurality of polynomials selected among the elements of the Galois field,
- wherein the second convolutional encoder comprises:
- a plurality of delays connected in series;
- a first group of adders configured to connects feedforward an output of a part of the plurality of delays to an output of the second convolutional encoder;
- and
- a second group of adders configured to connect feedback an output of a part of the plurality of delays to an input of the second convolutional encoder,
- wherein the selecting the polynomial that indicates the RSC encoding includes:
- selecting a feedback polynomial g(x) that indicates a configuration of the feedback connection so that a hamming weight of a parity stream that the second convolutional encoder outputs is smaller than a predetermined first threshold value only when the swapped data inputted into the second convolutional encoder satisfies a predetermined condition;
- and
- selecting a feedforward polynomial f(x) that indicates a configuration of the feedforward connection, so that the hamming weight of the parity stream that the second convolutional encoder outputs is larger than a predetermined second threshold value only when the swapped data inputted into the second convolutional encoder satisfies the predetermined condition,
- wherein the predetermined condition includes:
- the swapped data is a value in which a distance between digits of which a value is equal to 1 in a binary notation of the swapped data is an integer multiple of a period of the RSC encoding, or, a sum of a plurality of values in each of which a distance between digits of which a value is equal to 1 in the binary notation of the swapped data is an integer multiple of the period of the RSC encoding;
- and
- the feedback polynomial g(x) is divisible by a predetermined generator polynomial, and no combination of at least three polynomials that are different from each other and of which a sum is zero exists in elements of the Galois field generated by the predetermined generator polynomial.