An arithmetic unit 15 multiplies a codeword X and a correlation matrix W.
A comparison unit 17 compares the products output from the arithmetic
unit 15 with a threshold .+-.TH. A learning state monitor 18 updates the
correlation matrix based on the comparison results from the comparison
unit. When all of the codewords are updated and the calculation results
using the updated correlation matrix fall within a predetermined range,
the threshold is changed to repeat the learning operation again for all
of the codewords. When the calculation results obtained from the updated
correlation matrix do not fall within a predetermined range and equal the
previous calculation results, the update value for the correlation matrix
is decreased to repeat the learning operation again for all of the
codewords. When the update value becomes 0, an optimal threshold as well
as an optimal correlation matrix are obtained, thereby completing the
learning operation.