קוד ריד-סולומון – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
←‏מבוא: סינגלטון - הערת שוליים
מ תקלדה
שורה 6:
[[קובץ:ReedSolomon.jpg|שמאל|ממוזער|250px|גוסטב סולומון (מימין) ואירווינג ריד]]
קוד ריד-סולומון פותחו על ידי צוות החוקרים [[אירווינג ריד]] ו[[גוסטב סולומון]] ממעבדת לינקולן (MIT Lincoln Laboratory) - מעבדת המחקר של [[מחלקת ההגנה של ארצות הברית]] ב-[[MIT]].
במאמרם משנת 1960 הציגו ריד וסולומון שיטה יעילה ופשוטה לקידוד מידע, וניתחו את כמות השגיאות שניתן לתקן בעזרת קוד זה.{{הערה|I. Reed and G. Solomon, "Polynomial Codes Over Certain Finite Fields", '''Journal of the Society for Industrial and Applied Mathematics''', 8:300-304, 1960.{{D}}}}. מסתבר שהקוד הוצג לראשונה בשנת 1952, כחלק ממחקר בנושא [[ריבוע לטיני|ריבועים לטיניים]],{{הערה|K.A. Bush, "Orthogonal Arrays of Index Unity", '''Ann. Math. Stat''', (23) 426-434, 1952.{{D}}}}, אך ריד וסולומון היו הראשונים להכיר בתכונותיו לתיקון שגיאות.
 
השימוש בקוד לתיקון שגיאות דורש הפעלת שני [[אלגוריתם|אלגוריתמים]], ל[[מקודד|קידוד]] ול[[פענוח]]. תפקידו של אלגוריתם הקידוד לקחת מילה מסוימת (מילת המקור) ולקודד אותה למילה אחרת, ארוכה יותר, המכילה [[יתירות]] (מילת הקוד).
אלגוריתם הפענוח מקבל כקלט את המילה הארוכה, ייתכן בתוספת שיבושים שונים שנוספו לה עקב השידור בערוץ הרועש. אלגוריתם הפענוח מנסה לשחזר את מילת המקור מתוך הקלט, כאשר היתירות שהוספה בתהליך הקידוד משמשת אותו להתמודדות עם השגיאות שקרו. תהליך הפענוח מורכב מאשר תהליך הקידוד. ריד וסולומון לא הציגו שיטת פענוח [[חישוב יעיל|יעילה]], וזו הומצאה בשנת 1967.
 
קוד ריד-סולומון המקודד מחרוזת המכילה k בלוקים (בלוק כנ"ל נקרא גם סימבול, ואורכו יכול להשתנות, ראה בהמשך) ל-n בלוקים מסומן ב-RS(n,k){{כ|ימינה=כן}}, ומסוגל לתקן עד <math>\ \frac{1}{2}(n-k)</math> שגיאות (כלומר הוא [[קוד לינארי]] בעל הפרמטרים <math>\,[n,k,n-k+1]</math>); הקוד מתקן שגיאות במידה המקסימלית האפשרית לקוד בעל פרמטרים אלו.{{הערת שולייםהערה|[[חסם סינגלטון|חסם הסינגלטון]] קובע כי [[מרחק הקוד]], <math>d</math>, מקיים תמיד
<math>d\le n-k+1</math>. קוד ריד-סלומון מקיים את השיוויון. מכיוון שבקוד כלשהו ניתן לתקן לכל היותר <math>d/2</math>, קוד ריד-סלומון מתקן את מסוגל לתקן כמות שגיאות מקסימלית לקוד עם פרמטרים <math>n</math> ו-<math>k</math>.}}.
 
=== שימושים והרחבות ===