The invention discloses a method for decoding broadcast channel (BCH) codes. The method comprises the following steps of: S1, supplying BCH (30, 9, 12) codes, wherein the BCH (30, 9, 12) codes are acquired by adding a parity check bit onto shortened codes BCH (29, 9) of the original BCH (31,16); S2, constructing the generating polynomial of the BCH (30, 9, 12) codes, wherein the generating polynomial is as follows: g(X)=X20+X18+X17+X13+X10+X9+X7+X6+X4+X2+1; and in the generating polynomial, a, a2, a3,..., and a10 are used as roots; S3, obtaining a receiving polynomial r(X)=rn-1Xn-1+...r2X2+r1X1+r0 according to the generating polynomial in the step 2; S4, calculating a corrector S according to the receiving polynomial, wherein the corrector S=(S1,S2,..., and S2t); 5, determining an error polynomial sigma(X), wherein sigma(X)=(1+betavX)...(1+beta2X)(1+beta1X)=sigmavXv+...+sigma2X2+sigma1X+sigma0; and S6, calculating the root of the sigma(X), determining the number of error positions, and correcting the error of the r(X), wherein v is the number of errors; and beta1, beta2,..., and betav are the error positions.