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

תוכן שנמחק תוכן שנוסף
מ ←‏שמירת מידע: קישורים פנימיים
דורית (שיחה | תרומות)
מאין תקציר עריכה
שורה 11:
אלגוריתם הפענוח מקבל כקלט את המילה הארוכה, ייתכן בתוספת שיבושים שונים שנוספו לה עקב השידור בערוץ הרועש. אלגוריתם הפענוח מנסה לשחזר את מילת המקור מתוך הקלט, כאשר היתירות שהוספה בתהליך הקידוד משמשת אותו להתמודדות עם השגיאות שקרו. תהליך הפענוח מורכב מאשר תהליך הקידוד. ריד וסולומון לא הציגו שיטת פענוח [[חישוב יעיל|יעילה]], וזו הומצאה בשנת 1967.
 
קוד ריד-סולומון המקודד מחרוזת המכילה k בלוקים (בלוק כנ"ל נקרא גם סימבול, ואורכו יכול להשתנות, ראהראו בהמשך) ל-n בלוקים מסומן ב-RS(n,k){{כ|ימינה=כן}}, ומסוגל לתקן עד <math>\ \frac{1}{2}(n-k)</math> שגיאות (כלומר הוא [[קוד לינארי]] בעל הפרמטרים <math>\,[n,k,n-k+1]</math>); הקוד מתקן שגיאות במידה המקסימלית האפשרית לקוד בעל הפרמטרים <math>n</math> ו-<math>k</math>.{{הערה|[[חסם סינגלטון|חסם הסינגלטון]] קובע כי [[מרחק הקוד]], <math>d</math>, מקיים תמיד
<math>d\le n-k+1</math>. קוד ריד-סלומון מקיים את השוויון. מכיוון שבקוד כלשהו ניתן לתקן לכל היותר <math>d/2</math>, קוד ריד-סלומון מסוגל לתקן כמות שגיאות מקסימלית לקוד עם פרמטרים <math>n</math> ו-<math>k</math>.}}
 
שורה 46:
שיטה אחרת היא להגדיר את הקו <math>\ f(x)=a+bx</math> ולשלוח בערוץ התקשורת את ערך הפולינום ב-4 מקומות ידועים מראש (למשל, ב-<math>\ x=0,1,2,3</math>). הצד המקבל יוכל לבצע אינטרפולציה של הקו מתוך נקודות אלו ולזהות מהו הקו (הפולינום) שנשלח אליו.
 
גם אם נפלה טעות יחידה באחת מתוך ארבע הנקודות שנשלחו, הצד המקבל יכול לדעת מהו הקו הנכון על-פי 3 הנקודות האחרות: כל זוג נקודות מגדיר קו אחד, ולכן ארבעת הערכים שנשלחו מגדירים שישה קווים אפשרים. אם כל הערכים התקבלו באופן תקין - כל ששת הקוים יהיו זהים. לעומת זאת, אם נפלה טעות יחידה, 3 קווים יתלכדו עם הקו המקורי, בעוד שאר הקוים יהיו קוים שונים (ראהראו הדגמה בתמונה). כך ניתן לזהות איזו נקודה סטתה מהקו המקורי ולשחזר בהצלחה את הקו המקורי.
 
ככל שנשדר את ערכי הפולינום עבור יותר ויותר ערכי <math>\ x</math>, היתירות תגדל, וניתן יהיה להתמודד עם מספר רב יותר של שגיאות.