יום חמישי, 20 במרץ 2014

Rational Fitting


אני שמח לארח בבלוג כותב חדש, גיל הנדלסמן, מהנדס אפליקציה העובד יחד עמי בחברת סיסטמטיקס. גיל הוא מהנדס אלקטרוניקה עם למעלה מ-10 שנות ניסיון בתחום התקשורת והמוליכים למחצה, והוא מוביל בסיסטמטיקס את תחום התקשורת לסוגיה, ובפרט - RF.
יישומים רבים, ובמיוחד יישומי תקשורת,  נדרשים לעבד מידע בתחום הזמן (Time Domain) על סמך אופיו בתחום התדר (Frequency Domain). עד לא מזמן, פתרון נפוץ לכך היה שימוש במודלים של "טורי פורייה" או "התמרות פורייה" (פונקציתFFT , שפותחה בשנות השישים של המאה הקודמת, המתבססת על מודל Cooley–Tukey של התמרת פורייה בדידה, ודאי מוכרת לרוב קוראי הפוסט). הטענה בבסיסה של שיטה זו היא שתחת תנאים מסוימים ניתן להציג כל אות בעזרת סכום (טור) אינסופי של פונקציות הרמוניות. אך עם התקדמות הטכנולוגיה, המידע נעשה מהיר ומגוון יותר, והאתגרים בניתוחו (וכן בסימולציה שלו) נעשו קשים יותר, ובאופן טבעי - התעשייה החלה לחפש מודלים מהירים יותר ויעילים יותר.
בסוף המאה הקודמת, וליתר דיוק - ביולי 1999, פרסמו צמד חוקרים, ביורן גוסטבן ואדם סמליאן, שיטה חדשה במטרה לענות על הצורך לעיל, שזכתה לשם "התאמה וקטורית" (Vector Fitting), ואשר עם השנים הותאמה ליישומי תקשורת. העיקרון בבסיסה של שיטה זו הוא מציאת קטבים ו- residues שמתאימים ((fit בצורה מדויקת כרצוננו אל האות המקורי, כאשר ניתן בעזרת מספר רב יותר של קטבים וresidues- להשיג התאמה מדויקת יותר (מספר הקטבים וה-residues תמיד יהיה זהה). רבים מתבלבלים בין אפסים ל-residues, אז זה המקום להדגיש שבשיטה זו המונה הינו חלק מפתרון של בעיה קומפלקסית, ולכן ניקרא residues ולא אפסים (בשונה מפונקצית תמסורת). השיטה עובדת באופן איטרטיבי, כאשר נבחרים קטבים ראשונים ובעזרת ה-residues נמצא פתרון למערכת לינארית. בשיטה זו, המניפולציות מבוצעות לא על האות המקורי, אלא על תוצאותיה.
להלן נוסחה של Rational Fitting - פרמטרD  הינו רכיב סקאלרי והרכיבים  C ו-A   יכולים להיות (וברוב המקרים גם יהיו) וקטורים:


בשנים האחרונות שיטה זו תופסת תאוצה בקרב מפתחים וזאת כיוון שביישומים רבים שיטה זו עולה על קודמתה (
FFT) ומצליחה ליעל את תהליך עיבוד המידע – היא מאפשרת לקבל בזמן קצר יותר תוצאות באותה רמת הדיוק כמו קודמתה. בנוסף - היא מותאמת הרבה יותר לשיטות הנומריות עליהן המחשוב מתבסס.
מימוש של שיטה זו קיים בMATLAB- בכלי ה- RF Toolbox, בפונקציה הנקראת rationalfit (למטה מובאת השוואה בין הרצת IFFT והרצת Rational Fitting בסביבת MATLAB). בעזרת פונקציה אחת, מהירה ונוחה, ניתן להמיר את אות המידע (לדוגמא קובץ פרמטרי מערכת - S-parameters) לתוצאות אשר מוצגות במשטח העבודה כאובייקט בעל פרמטרים רלוונטיים. ובעזרת פונקציות נוספות - ניתן להציג את תגובת המדרגה של האות בציר הזמן לאחר הפעלת הפונקציה  rationalfit(פקודת stepresp), ולהשלים את פעולת הצגת האות בציר התדר (פקודת freqresp). המעוניינים יכולים להוריד ע"י לחיצה כאן שני קבצים שאחד מהם הינו קוד המדגים הלכה למעשה את השימוש בפונקציות לעיל - בדוגמה האינפורמציה בקובץ המידע S21 עוברת בפונקציה rationalfit ולאחר מכן מוצגת כתגובת מדרגה בציר הזמן.


לסיום, בעלי  רישיון
RF Toolbox  מגרסה R2013a ומעלה יכולים ליהנות מאפליקציה מעניינת שפותחה לאחרונה ע"י קולגה שלי ב-MathWorks, המאפשרת התאמה (fit) מהירה של S-parameters, הגדרת רמת הדיוק, ההשהיה, הגדרת קטבים משמעותיים וכן הצגת התוצאות במשטח העבודה (לחצו לקישור לאפליקציה).

2 comments:

  1. אפליקציה מעניינת לנושא של FIT.
    אבל כמו בכל בעיית אופטימיזציה, צריך לזכור שלא תמיד התאמה תהיה בכל התדרים - אלא רק ברובם. על כן, אם אני מעוניין בעיקר בחלק ה-DC של האות, וההתאמה שם איננה טובה - כל ה-FIT לא עוזר לי מדי.
    האם ישנה דרך לבקש לשים "משקלות" על תדרים מסויימים?

    השבמחק
    תשובות
    1. ההתאמה תהיה עד לדיוק הנדרש. ככול שירבו הקטבים כך גם יגבר הדיוק ויקיף מספר רב יותר של תדרים. לצורך השוואה, גם לפי שיטת DFT בה ישנם מספר סופי של FFT-ים (NFFT) בין כל שני תדרים דגומים יש תדרים לא דגומים.
      כדי להתאים טוב יותר תדרים מסוימים ,לדוגמה DC, ניתן לתת להם משקל גדול יותר. בבסיסה של שיטה זאת יש אפשרות להגדיר וקטור משקלים שווה בגודלו למספר הקטבים. ניתן לתת משקל גדול יותר לרכיב הDC וכן "להעלים" תדרים אחרים.
      גיל

      מחק