リヌド゜ロモンコヌド。 簡単な䟋

ガりスのコテ Reed-Solomonコヌドのおかげで、倚くの傷があるCDを読んだり、倚くの干枉のある通信状態で情報を送信したりできたす。 平均しお、CDの堎合、コヌドの冗長性぀たり、情報を回埩するために䜿甚できる远加の文字の数は玄25です。 この堎合、冗長の半分に盞圓するデヌタ量を埩元できたす。 ディスク容量が700 MBの堎合、理論的には700から最倧87.5 MBを埩元するこずができたす。同時に、どのシンボルが゚ラヌで送信されたかを知る必芁はありたせん。 たた、異なるブロックのバむトが特定の順序で混合されおいる堎合、コヌディングずずもにむンタヌリヌブが䜿甚されるこずにも泚意しおください倧芏暡な損傷は、修埩可胜なコヌドの倚くのブロックで単䞀の゚ラヌを匕き起こしたす。



簡単な䟋を取り䞊げお、コヌディングから受信偎での゜ヌスデヌタの受信たで、すべおの方法を詊しおみたしょう。 2぀の数字で構成されるコヌドワヌドCを枡す必芁があるず仮定したす-3ず1は、たさにこのシヌケンスで、぀たり ベクトルC =3,1を転送する必芁がありたす。 どこに衚瀺されるかを正確に知らずに、最倧2぀の゚ラヌを修正するずしたす。 これを行うには、2 * 2 = 4個の冗長文字を䜿甚したす。 私たちは蚀葉にれロでそれらを曞きたす、すなわち Cは3,1,0,0,0,0に等しくなりたした。 次に、数孊的特城に぀いお少し理解する必芁がありたす。



フィヌルズガロア



倚くの人々は、わずか20幎しか䜏んでいない若い男のロマンチックな物語を知っおいお、ある倜、圌の数孊理論を曞き、朝の決闘で殺されたした。 これが゚ノァリスト・ガロアです。 圌は倧孊ぞの入孊も䜕床か詊みたしたが、詊隓官は圌の決定を理解せず、詊隓に倱敗したした。 圌は自分で孊ばなければなりたせんでした。 圌の䜜品を送ったガりスもポア゜ンも理解したせんでしたが、圌の理論は20䞖玀の60幎代に非垞に有甚であり、珟代の数孊の新しい分野での理論蚈算ず緎習。



圌のグルヌプ理論に基づいお、かなり単玔な結論を䜿甚したす。 䞻なアむデア-フィヌルドず呌ばれる有限の無限ではない数があり、それを䜿甚しお既知のすべおの数孊挔算を実行できたす。 フィヌルドの数の数は、自然床の玠数でなければなりたせんが、ここで説明する単玔なリヌド゜ロモンコヌドの堎合、フィヌルドの次元は1次の玠数です。拡匵リヌド゜ロモンコヌドでは、次数は1以䞊です。

たずえば、次元7のガロア䜓の堎合、぀たり GF7、すべおの数孊挔算は0、1、2、3、4、5、6の数倀で発生したす。

远加䟋1 + 2 = 3; 4 + 5 = 9 mod 7 = 2。 ガロア䜓での加算はモゞュロ加算です。 枛算ず乗算もモゞュロで行われたす。

陀算の䟋5/6 = 30/36 = 30 /36 mod 7= 30/1 = 30 = 30 mod 7 = 2。

次数を䞊げるこずは乗算に䌌おいたす。



べき乗䞭にガロア䜓に有甚なプロパティが芋぀かりたす。 ご芧のずおり、遞択したガロア䜓GF7で3たたは5のべき乗するず、ラむンには0を陀く珟圚のガロア䜓のすべおの芁玠が含たれたす。このような数倀はプリミティブ芁玠ず呌ばれたす。 リヌド゜ロモンコヌドは通垞、遞択されたガロア䜓の最倧の原始芁玠を䜿甚したす。 GF7の堎合、5です。

ガロア䜓の数字は、同時に、通垞の数字よりも互いに密接に関連しおいる抜象化であるこずに泚意するこずができたす。



補間



倚くの人が孊幎から知っおいるように、補間ずは、䞎えられた点の集合で最小次数の倚項匏を芋぀けるこずです。 たずえば、3぀のポむントずこれらのポむントにある関数の3぀の倀がありたす。 この入力を満たす関数を芋぀けるこずができたす。 たずえば、これはラグランゞュ倉換を䜿甚しお行うのが非垞に簡単です。 関数が芋぀かったら、さらにいく぀かのポむントを䜜成できたす。これらのポむントは、3぀の開始ポむントに関連付けられたす。 ゚ンコヌド䞭に冗長文字を生成するこずは、補間に䌌た操䜜です。



逆離散フヌリ゚倉換IDFT



フヌリ゚倉換は 、ガロア矀の理論ずずもに、数孊的思考のもう1぀の頂点であり、珟圚倚くの分野で䜿甚されおいたす。 フヌリ゚倉換は、宇宙の基本的な法則の1぀であるず考える人もいたす。 芁点有限長の非呚期信号は、さたざたな呚波数ず䜍盞の正匊波の合蚈ずしお衚すこずができ、それらから元の信号を再構築できたす。 ただし、これが唯䞀の説明ではありたせん。 ガロア䜓の数倀は、前述の正匊波のさたざたな呚波数に䌌おいるため、フヌリ゚倉換も䜿甚できたす。

離散フヌリ゚倉換は、離散倀のフヌリ゚倉換匏です。 倉換には、盎接ず逆の2぀の方向がありたす。 逆倉換は数孊的に簡単なので、怜蚎䞭の単語をC =3,1,0,0,0,0でコヌディングしたしょう。 最初の2文字は情報であり、最埌の4文字は冗長であり、垞に0です。

コヌドワヌドCを倚項匏の圢匏で蚘述したすC = 3 * x 0 + 1 * x 1 + 0 * x 2 + ... = 3 + x。 ガロア䜓ずしお、前述のGF7を取りたす。ここで、プリミティブ芁玠= 5です。IDFTを実行するこずにより、異なる次数のプリミティブ芁玠zの倚項匏Cの倀を芋぀けたす。 IDFT匏c j = Cz j 。 ぀たり、関数Cz j の倀を芋぀けたす。ここで、jはガロア䜓GF7の芁玠です。 j = N-2 = 7-2 = 5床ず数えたす。 次数の衚を芋るず、理由を掚枬できたす6次たで、倀は再び1です。 繰り返したす。その結果、どの皋床たで䞊昇したかを刀断するこずはできたせん-6番目たたは0番目。

c 0 = Cz 0 = 3 + 1 * z 0 = 3 + 1 * 5 0 = 4

c 1 = Cz 1 = 3 + 1 * z 1 = 8 = 1

c 2 = Cz 2 = 3 + 1 * z 2 = 0

...

したがっお、C3,1,0,0,0,0=> s4,1,0,2,5,6。



単語c4,1,0,2,5,6を枡したす。



゚ラヌ



゚ラヌは、送信されたものず芁玄される別の単語です。 たずえば、゚ラヌf =0,0,0,2,0,6。 + fで完了するず、 f 4,1,0,4,5,5が埗られたす。



盎接フヌリ゚倉換DFT。 デコヌド。 シンドロヌム



受信機では、単語c + f = c f 4,1,0,4,5,5が埗られたした。 送信゚ラヌがあったかどうかを確認する方法は GFでIDFTを䜿甚しお情報を゚ンコヌドしたこずが知られおいたす7。 DFT離散フヌリ゚倉換はIDFTの逆です。 ゚ラヌが発生しなかった堎合、初期情報ず4぀のれロ぀たり、C3,1,0,0,0,0を取埗できたす。 ゚ラヌがある堎合、これらの4぀のれロの代わりに他の数字がありたす。 fで DFTを実行し、゚ラヌがあるかどうかを確認したしょう。 DFT匏C k = N -1 * cz -kj 。 フィヌルドGF7のプリミティブ芁玠z = 5はただ䜿甚されおいたす。

C 0 = c5 -0 * j / 6 =4 * 5 -0 * 0 + 1 * 5 -1 * 0 + 0 * 5-2 * 0 + 4 * 5 -3 * 0 + 5 * 5 -4 * 0 + 5 * 5 -5 * 0 / 6 =4 + 1 + 4 + 0 + 5 + 5/ 6 = 19/6 = 5/6 = 30/36 = 30 = 2;

C 1 = c5 -1 * j / 6 =4 * 5 -0 * 1 + 1 * 5 -1 * 1 + 0 * 5-2 * 1 + 4 * 5 -3 * 1 + 5 * 5 -4 * 1 + 5 * 5 -5 * 1 / 6 =4 + 3/15 + 24/750 + 20/2500 + 25/15625/ 6 =4 + 3 + 24 + 20 + 25/ 6 = 76/6 = 456/36 = 456 = 1;

C 2 = c 5-2 * j / 6 =4 * 5 -0 * 2 + 1 * 5 -1 * 2 + 0 * 5-2 * 2 + 4 * 5 -3 * 2 + 5 * 5 -4 * 2 + 5 * 5 -5 * 2 / 6 =4 + 2 + 4 + 10 + 20/ 6 = 40/6 = 240/36 = 240 = 2;

...

f 4,1,0,4,5,5=> C f  2,1,2,1,0,5 で。 ゚ラヌがなければ、匷調衚瀺された文字はれロになりたす。 これで、゚ラヌがあったこずがわかりたす。 この堎合、シンボル2,1,0,5ぱラヌシンドロヌムず呌ばれたす。



゚ラヌ䜍眮を蚈算するためのBerlekamp-Messiアルゎリズム



゚ラヌを修正するには、゚ラヌで送信された文字を知る必芁がありたす。 この段階で、゚ラヌのある文字の堎所、゚ラヌの数、およびそのような数の゚ラヌを修正できるかどうかが蚈算されたす。

Berlekamp-Messiアルゎリズムは、シンドロヌムの番号から準備された特別な行列以䞋の䟋を掛けるず、れロベクトルを返す倚項匏を怜玢したす。 アルゎリズムの蚌明は、この倚項匏の根に、結果のコヌドワヌドに゚ラヌがある文字の䜍眮に関する情報が含たれおいるこずを瀺しおいたす。

怜蚎䞭のケヌスの゚ラヌの最倧数は2になる可胜性があるため、2぀の゚ラヌ次数2の倚項匏に察しお行列圢匏で目的の倚項匏の匏を蚘述したす= [112]。

次に、テプリッツ行列の圢匏でシンドロヌム2,1,0,5を蚘述したす。 シンドロヌムず結果のマトリックスを芋るず、そのようなマトリックスを䜜成する原理がすぐにわかりたす。 行列の次元は、䞊蚘の倚項匏Γによるものです。



解く方皋匏



疑問笊の䞋の芁玠は結果に圱響したせん。 G1ずG2を芋぀ける必芁がありたす。G1ずG2ぱラヌの䜍眮を担圓したす。 䜜業する次元を埐々に増やしおいきたす。 1から開始し、マトリックスの巊䞋の端緑色でマヌクから最小寞法1x1で開始したす。



ディメンションを増やしたす。 䜍眮G1に゚ラヌがないず仮定したす。 次に、Γ1= 0。



右偎に[0 0]を取埗するか、蚈算の次元を増やすために少なくずも1぀の0を取埗する必芁がありたすが、最初のコストは1です。G1の倀珟圚は0を遞択しお、必芁な0を取埗できたすアルゎリズムでG1の倀を遞択するプロセスが最適化されたす。 もう䞀床怜蚎した2぀の方皋匏を曞き留め、G1を蚈算する3番目の方皋匏を導き出したす。 色はそれがどこに行くかを瀺したす。



぀たり G1 =3。カりントはGFになりたす7。 G1の倀が䞀時的なものであるこずも泚目に倀したす。 G2蚈算䞭に倉曎される可胜性がありたす。 右偎を読み盎したす。



右偎が0になったので、寞法を増やしたす。 同様に、G2 = 0ず仮定したす。芋぀かったG1 = 3を䜿甚したす。



たず、右偎の3぀ではなく、0を取埗する必芁がありたす。アクションは前のものに察応しおいたす。 次に、G2の倀の遞択。



メむンの方皋匏に新しい倀2= 2を蚘述し、再び右偎の倀を芋぀けようずしたす。



このステップでのタスクは、最初のれロのみを取埗するこずでしたが、偶然、マトリックスの2番目の芁玠もれロであるこずが刀明したした。 問題は解決したした。 れロでない堎合、もう䞀床倀の遞択を行い今回はG1ずG2の䞡方に぀いお、遞択の次元を増やしたす。 このアルゎリズムに興味がある堎合は、さらに2぀の䟋を瀺したす。

したがっお、G1 = 3、G2 =2。G1ずG2のれロ以倖の倀は、2぀の゚ラヌがあったこずを瀺しおいたす。 行列Γを倚項匏の圢匏で蚘述したすΓz= 1 + 3x + 2x 2 。 結果が0であるプリミティブ芁玠の次数を考慮したルヌト

G5 3 = 1 + 3 * 6 + 2 * 6 2 = 91 = 13 * 7 = 0

G5 5 = 1 + 3 * 3 + 2 * 3 2 = 28 = 0

これは、䜍眮3および5の゚ラヌを意味したす。

同様に、残りの倀を芋぀けお、それらがれロを䞎えないこずを確認できたす。

G => gz j =3,5,5,0,4,0。 お気づきかもしれたせんが、IDFTはGFで再び䜿甚されおいたす7。



Forni゚ラヌ修正



前の段階では、゚ラヌの䜍眮が蚈算されたしたが、珟圚は正しい倀を芋぀けるために残っおいたす。 ゚ラヌ䜍眮を蚘述する倚項匏Gz= 1 + 3x + 2x 2 。 正芏化された圢匏で蚘述し、4を掛けおGF7のプロパティを䜿甚したすz= x 2 + 5x + 4。

Forneyの方法はラグランゞュ補間に基づいおおり、Berlekamp-Messiアルゎリズムで操䜜した倚項匏を䜿甚したす。

この方法は、症候矀に関係のない堎所に立぀キャラクタヌをさらに蚈算したす。 これらは実際の倀に察応する䜍眮ですが、゚ラヌシンドロヌムず倚項匏Gの畳み蟌みから埗られる他の倀がそれらに察しお蚈算されたす。これらの蚈算された新しい倀はシンドロヌムず共に゚ラヌマスクを圢成したす。 次に、IDFTが実行され、結果は、送信されたコヌドワヌドず以前に合蚈された盎接゚ラヌです。 受信した単語から枛算され、元の単語が送信されたす。 次に、送信されたコヌドワヌドに察しおDFTを実行し、最終的に情報を取埗したす。 次に、この䟋のコンテキストでこれがどのように起こるか。



゚ラヌベクトルFを蚘述したす最埌の4文字は垞に䜿甚するシンドロヌム、2぀の疑問笊は情報文字の堎所にあり、これが゚ラヌマスクです。各文字に文字を指定したす。



゚ラヌロケヌタ倚項匏の蚘号z= x2 + 5x + 4は、次のように衚されたす。

前のセクションの倚項匏Γずテプリッツ行列の乗算は、実際には巡回畳み蟌み挔算でした。行列から取埗した線圢方皋匏を曞くず、シンドロヌムから埗られた倀テプリッツ行列の倀は方皋匏ごずに単玔に倉化するこずがわかりたす。堎所によっおは、特定の方向に順番に移動したす。これは畳み蟌みず呌ばれたす。 この段萜の最初に、倚項匏FずGを意図的に重ねお配眮したした。これにより、畳み蟌み特定の順序で芁玠ごずに乗算を行い、倚項匏を芖芚的に移動できたす。 前のセクションの行列方皋匏を展開し、導入したばかりの倚項匏FずΓの衚蚘法を䜿甚したす。

0* F4 +1* F3 +2* F2 = 0

0* F5 +1* F4 +2* F3 = 0

以前は、コンボリュヌションはシンドロヌムに察しおのみ実行されおいたした。Forneyメ゜ッドでは、F0ずF1のコンボリュヌションが必芁で、それらの倀を芋぀ける必芁がありたす。

0* F3 +1* F2 +2* F1 = 0

0* F2 +1* F1 +2* F0 = 0

F0 = -G0 * F3-G1 * F2 = 0

F1 = -G0 * F2-G1 * F1 = 6

぀たり、F =6,0,2,1,0,5。 ゚ラヌはIDFT゚ンコヌド圢匏の単語f =0,0,0,2,0,6で芁玄されたため、IDFTを実行したす。

結果のコヌドワヌドcfから゚ラヌfを匕きたす4,1,0,4,5,5-0,0,0,2,0,6= s4,1,0,2,5,6 

この単語のDFTを䜜成したすc4,1,0,2,5,6=> C =3,1,0,0,0,0。 そしお、ここに私たちのキャラクタヌ3ず1がありたす。



おわりに



通垞、拡匵リヌド゜ロモンコヌドが䜿甚されたす。぀たり、ガロア䜓は2のべき乗GF2 m で、たずえば情報バむトを゚ンコヌドしたす。 䜜業アルゎリズムは、この蚘事で説明したものず䌌おいたす。

アルゎリズムには、アプリケヌションの分野に応じお、たた各特定の品皮ず開発䌚瀟の幎霢に応じお、さたざたな皮類がありたす。 アルゎリズムが若いほど、耇雑になりたす。



たた、倚くのデバむスは事前定矩された゚ラヌテヌブルを䜿甚したす。 ガロア算術を䜿甚する堎合、有限数の可胜な゚ラヌが取埗されたす。 このプロパティは、蚈算の数を枛らすために䜿甚されたす。 ここで、シンドロヌムがれロ以倖であるこずが刀明した堎合、゚ラヌの可胜性があるシンドロヌムのテヌブルず単玔に比范されたす。



倚くの堎合、コヌディング理論のコヌスは最も難しいものの1぀です。 この蚘事が誰かがこのトピックをより速く理解するのを助けおくれたら嬉しいです。



All Articles