BCH code

BCH код нь хязгаарлагдмал талбаруудаас бүтсэн, давтагддаг алда засах кодын төрөл юм. 1959 онд Францын математикч Alexis Hocquenghem нь BCH кодыг нээсэн.

BCH кодын дизайнын онцлог нь кодоор олон тооны тэмдэгтүүдийг удирдах нарийн удирдлагаар адлааг засдаг. Ихэнхдээ олон битийн алдааг засах боломжтой 2-тын BCH кодыг зохиох боломжтой байдаг. BCH кодын өөр нэг давуу тал нь syndrome decoding буюу алгебрийн аргаар хялбар тайлагдах боломжтой байдаг. Энэ нь уг кодын decoder-ийн зохиомжын хялбарчилдаг буюу жижиг хэмжээний бага хүчдэлийн электрон техник хангамж ашиглах боломжтой юм. 

BCH код нь хиймэл дагуулын холбоо, Уян диск тоглуулагч, DVD, disk drives, solid-state drives, 2 хэмжээст bar code зэрэгт ашигладаг.

**Анхдагч narrow-sense /нарийвчилсан утга/ BCH код**
d ≤ qm – 1-д анхдагч чадал q  болон эерэг бүхэл тоо болох m, d нь өгөгдсөн байдаг. Кодийн хэмжээ болох n = qm – 1 –д анхдагч narrow-sense BCH код нь хязгааргүй талбар болох GF(q), мөн зай /distance/ буюу d хамгийн багадаа доорх аргачлалаар бүтдэг.
α –г GF(qm)-ын анхдагч элемент болгоно. Дурын эерэг тоо болох i нь αi-ын хамгийн бага олон гишүүнт байх ба over GF(q). BCH кодын генератор олон гишүүнт нь хамгийн бага энгийн хуваагдах g(x) = lcm(m1(x),…,md − 1(x)) байна. g(x) нь олон гишүүнт GF(q)-ын коеффициент ба xn – 1-д хуваагдана. Түүнчлэн, олон гишүүнт код нь g(x)-ээр давтагдах код гэж тодорхойлогддог.

#### Ерөнхий BCH 
Ерөнхий BCH код нь primitive narrow-sense BCH кодоос 2 төрлийн ялгаатай.
Эхнийх нь  \mathrm{GF}(q^m)-ын анхдагч элемент болох а нь чөлөөтэй байх боломжтой. Үүнээс хамаарч кодын урт нь  q^m - 1 to  \mathrm{ord}(\alpha) -с өөрчлөгдөх буюу a элементийн дараалал нь өөрчлөгдөнө.
2 дугаарт, Генератор олон гишүүнтийн дараалсан эцэг элементүүд  \alpha^c,\ldots,\alpha^{c+d-2} гэдгээс  х  \alpha,\ldots,\alpha^{d-1}. хүртэл явах боломжтой. 

Тодорхойлолт. q нь анхдагч чадал ба GF(q),    хязгааргүй талбарыг тодорхойлно. 2\leq d\leq n,  {\rm gcd}(n,q)=1, гэдгээс m,n,d,c  эерэг бүхэл тоонуудыг сонгох, мөн m нь нэмэгдүүлсэн q modulo  n.  -ын дараалал юм. 

Үүнээс  GF(q^m),  дээрх \alpha-г анхдагч n-р нэгдэлийн эцэг болгож, m_i(x) -г бүх i. -ын хувьд хамгийн бага \alpha^i -ын  GF(q)  -ын олон гишүүнт байна. BCH кодын генератор олон гишүүнт нь g(x) = {\rm lcm}(m_c(x),\ldots,m_{c+d-2}(x)). -ын хамгийн бага ерөнхий үржүүлэгч юм. 
Тэмдэглэл. Хэрвээ n=q^m-1  нь хялбаршуулсан тодорхойлолтоор,  {\rm gcd}(n,q) нь автоматаар 1 болох ба q modulo n -ын дараалал мөн автоматаар m. болно. Үүнээс хялбарчилсан тодорхойлолт нь ерөнхий байдлаас гадна онцгой нөхцөлд ашиглагдана.

Decoding

BCH кодыг тайлах олон decoding алгоримтууд байдаг. Өргөн хэрэглэдэг доорх аргууд байдаг.
1.	 Хүлээн авсан векторд sj шинжийг тооцоолох
2.	Алдааны тоо t болон алдааны байрлал тодорхойлогч олон гишүүнтийг Λ(x) тодорхойлох мөн 
3.	Алдааны байрлалын олон гишүүнтийн язгуурыг тооцоолж алдааны байрлал олох Xi
4.	Алдааны байрлалууд дээрх алдааны утгыг Yi тодорхойлох
5.	Алдааг засах
Дээрх алхамуудын үед тайлах алгоритм засагдахааргүй олон тооны алдааг хүлээн авсан вектороос илрүүлэх магадлалтай. Жишээ нь Тухайн хувьсагчийн утга нь олдоогүй тохиолдолд алдаа засах боломжгүй. Товчилсон кодод алдааны байрлал нь хязгаараас хэтрэх магадлалтай. Хүлээн авсан вектор код засаж чадахаас олон тооны алдаа илэрвэл decoder алдааны мессеж өгдөг.

Ангилал:Онолын информатик
Ангилал:Кодын онол