16-01-2005, 10:18
|
|
|
חבר מתאריך: 02.11.01
הודעות: 5,463
|
|
אמת היא שקיימות המון שיטות, חלקן פשוטות יותר וחלקן יותר מסובכות, לעשות את מה שביקשת. התחום הזה מפותח באופן מדהים, בשל השימוש הרב מאד שעושים בדגימה דיגיטלית וניתוח אותות כמעט בכל תחום טכנולוגי בחיינו (מהדגימה שאתה משיג בכרטיס הקול במחשב, דחיסת המוזיקה שאתה שומע, ערוץ התקשורת הדיגיטלי בטלפון הסלולרי שלך, או הרשת האלטחוטית במחשב, ועד לניתוח סייסמי). לכן, זה די תלוי לאיזו מטרה אתה רוצה לעשות זאת, ועם איזו רמת סיבוכיות אתה רוצה להתעסק.
השיטות הפשוטות יותר, כוללות, כפי שהוזכר כאן, אינטרפולציה פולינומיאלית. כאן אתה מנסה למצא פולינום שעובר דרך כל הנקודות.
אם לא קריטי לך שהפונקציה תעבור דרך כל הנקודות, אתה יכל לבחור בקירוב פולינומיאלי ממעלה יחסית נמוכה ולהפעיל עליה את שיטת הריבועים המינימליים (למשל "קירוב ריבועי" להשוואה לפונקציה ריבועית). נדמה לי שאת זה אפשר לעשות גם באקסל בקלות.
עד כאן הדברים הפשוטים.
שיטה קצת יותר מתוחכמת להשיג עקומה חלקה (וכזו שלא תעשה יותר מידי זיגזגים בין נקודות) היא אינטרפולצית spline. החיסרון: יש פה בעצם פונקציה שונה לכל מרווח בין שתי נקודות. היתרון: העקומה חלקה, ועוברת בין כל הנקודות.
אין לך הרבה נקודות, והן מרווחות בצורה אחידה? חפש מידע על אינטרפולצית sinc (אם יש הרבה נקודות - אולי Taper יהיה יותר טוב). יותר מסובך מתמטית, אבל יוצא גם הרבה הרבה יותר יפה.
עוד קצת על אינטרפולציה מהוויקיפדיה.
הערת אגב: ישנה תוכנה חופשית התואמת Matlab ונקראת Octave.
|