התמרת פוריה באמצעות מטלאב

Posted on March 28, 2010

0


בעקבות התעסקותי עם הפונקציה חשבתי שיהיה נכון להעלות את רעיון הפיתוח לאתר.

בבואי להבין את האופציות לכתיבת הפונקציה לא מצאתי איזכורים רלוונטים באינטרנט. החלטתי לרשום את הרעיון לשימושם של אחרים, במידה ויצטרכו.

בגדול, התמרת פוריה מאפשרת לנו לקחת אות מסויים ולהעבירו מתחום הזמן לתחום התדר. כלי זה מאוד שימושי בתחום התקשורת, תחום הסאונד וכדומה.

תוכנות מתמטיות בשימוש

ישנן אפשרויות רבות בשוק, אך אני משתמש בתוכנת מאטלב או בחלופה החינמית אוקטב.

הסיבה העקרית לכך היא שאלה הכלים המתמטיים העקריים (אם לא הבלבדיים) למהנדסי אלקטרוניקה כיום.

שתי התוכנות די  דומות ברמת הבסיס, הבעיה שברמה המקצועית ישנם הבדלים מסויימים בין התוכנות. לצורך הדוגמא הבאה אוקטב ומטלאב זהות לחלוטין.

פונקציית הבסיס

נגדיר פונקציית בסיס בשם xfft, לה נקרא יותר מאוחר ונציב לתוכה את הערכים המבוקשים.

function [y,f]=xfft(x,Ts);

n=length(x);

n1=2.^nextpow2(n);

fs=1/Ts;

f=(-fs/2:1/(n1*Ts):(fs/2-1/(n1*Ts)))

y=abs(fftshift(fft(x,n1)/n1))

שורה אחת מגדירה את הפונקציה,

שורה שתיים בודקת את אורך הוקטור הנכנס (כלומר שרשרת המידע המוכנס שהמשתמש הקיש),

התמרת פוריה בהצגה גרפית

שורה שלוש נותנת לנו חזקה אחת מעל למספר האיברים שהוכנס וזו במטרה להביא את השירטוט לרמת דיוק גבוהה יותר,

שורה רביעית מגדירה את תדירות המידע שהוכנס על ידי המשתמש,

שורה חמישית הינה ההתמרה עצמה אותה ניתן לראות ביתר פירוט בקישור אתר ויקיפדיה,

השורה האחרונה מסדרת לנו את הפונקציה לתצוגה במספר מובנים. ראשית היא “חותכת” את החלק השלילי של הפונקציה ובכך אנו רואים רק את החלקים החיוביים שלה, שנית היא עושה הזזה לפונקציה בכדי שתיהיה סימטרית על המסך.

נשמור את הקובץ תחת השם xfft וניפתח קובץ חדש.

קובץ המידע המוכנס

כעת כשיש לנו פונקציה מוכנה , עלינו להעביר מידע  לפונקציה לשם עיבוד. נפתח קובץ חדש ונכתוב בו:

t=-1:0.1:1

Ts=t(2)-t(1)

x=(t>=-1&t<=0).*(t+1)+(t>0&t<=1).*(-t+1)

[y f]=xfft(x,Ts)

plot(f,y)

שורה ראשונה מגדירה ציר זמן, שניה מוצאת את מרווח הדגימה, שלישית את התנהגות הפונקציה שלנו.

בשורה הרביעית אנו קוראים לפונקציה שכתבנו מקודם. שימו לב, על קובץ הפונקציה להיות בספריה זהה לקובץ הקריאה.

שורה חמישית תשרטט לנו את התוצאה על המסך.

כעת נותר רק להריץ את התוכנית ולקבל את הגרף. ניתן לשנות את פונקצית הכניסה לכל פונקציה אחרת.

חג פסח שמח לכולם