יישום הפונקציה של פורייה לניתוח אותות רטט
אנדריי שלקובנקו. אחד המפתחים ומייסד Vibromera.
התרגום של המאמר עשוי להכיל אי-דיוקים.
התמרת פורייה וספקטרום האות
במקרים רבים, המשימה של השגת (חישוב) ה- ספקטרום של האות הוא כדלקמן. קיים ממיר אנלוגי-לדיגיטלי (ADC), אשר באמצעות דגימה תדר Fd ממיר אות רציף, המגיע לכניסתו במהלך פרק הזמן T, לדגימות דיגיטליות – N דגימות. לאחר מכן, מערך הדגימות הזה מועבר לתוכנית כלשהי (למשל FourierScope) המפיקה N/2 ערכים מספריים.
כדי לבדוק אם התוכנית פועלת כהלכה, אנו יוצרים מערך של דוגמאות המורכב מסכום של שני sin(10*2*pi*x)+0.5*sin(5*2*pi*x) ומזינים אותו לתוכנית. התוכנית ציירה את התוצאה הבאה:

איור 1: הגרף של פונקציית הזמן של האות

איור 2: הגרף של ספקטרום האות
ישנן שתי הרמוניות הרמוניות בגרף הספקטרום – 5 Hz עם משרעת של 0.5 V ו-10 Hz עם משרעת של 1 V, הכל תואם את הנוסחה של האות המקורי. הכל בסדר, התוכנה פועלת כהלכה.
משמעות הדבר היא שאם נזין לכניסת ה-ADC אות אמיתי המורכב מתערובת של שני סינוסואידים, נקבל ספקטרום דומה המורכב משני הרמוניים.
אז, שלנו אמיתי אות נמדד במשך 5 שניות, נסרק על ידי ADC, כלומר הומר לפורמט דיגיטלי מאת discrete דוגמאות, יש לו דיסקרטי ולא מחזורי ספקטרום.
מנקודת מבט מתמטית – כמה טעויות יש במשפט הזה?
עכשיו ננסה למדוד את אותו האות במשך 0.5 שניות.

איור 3: הגרף של הפונקציה sin(10*2*pi*x)+0.5*sin(5*2*pi*x) עבור פרק זמן מדידה של 0.5 שניות

איור 4: ספקטרום הפונקציה
משהו לא בסדר כאן! ההרמוניה בתדר 10 הרץ מוצגת כרגיל, ובמקומו של ההרמוניה בתדר 5 הרץ מופיעות כמה הרמוניות לא ברורות.
באינטרנט אומרים שצריך להוסיף אפסים בסוף הדגימה, ואז הספקטרום יופק כרגיל.

איור 5: הוספנו אפסים לדגימה עד ל-5 שניות

איור 6. הספקטרום שהתקבל.
זה בכלל לא העניין. אצטרך להתמודד עם התיאוריה. בוא נעבור ל ויקיפדיה – מקור הידע.
פונקציה רציפה וייצוגה בסדרת פורייה
מבחינה מתמטית, האות שלנו, שאורכו T שניות, הוא פונקציה כלשהי f(x) המוגדרת על הקטע {0, T} (במקרה זה, X הוא הזמן). פונקציה כזו ניתנת תמיד לייצוג כסכום של פונקציות הרמוניות (סינוס או קוסינוס) מהצורה:

(1), כאשר:
k הוא מספר הפונקציה הטריגונומטרית (מספר הרכיב ההרמוני, מספר ההרמוניה)
T – הקטע שבו הפונקציה מוגדרת (משך האות)
Ak – משרעת הרכיב ההרמוני ה-k,
θk – השלב הראשוני של המרכיב ההרמוני ה-k
מה פירוש "לייצג את הפונקציה כסכום הסדרה"? פירוש הדבר הוא שעל ידי חיבור ערכי המרכיבים ההרמוניים של סדרת פורייה בכל נקודה, אנו מקבלים את ערך הפונקציה שלנו באותה נקודה.
(ליתר דיוק, סטיית הריבוע הממוצעת של הסדרה מהפונקציה f(x) תתקרב לאפס, אך למרות ההתכנסות הריבועית הממוצעת, סדרת פורייה של פונקציה אינה חייבת, באופן כללי, להתכנס אליה נקודה אחר נקודה.)
ניתן לכתוב את הסדרה הזו גם בצורה הבאה:

(2),
כאשר
, המשרעת המורכבת ה-k.
או

(3)
הקשר בין המקדמים (1) ו-(3) מתבטא בנוסחאות הבאות:
![]()

שימו לב שכל שלוש ההצגות האלה של טור פורייה שקולות לחלוטין. לעיתים, כאשר עובדים עם טור פורייה, נוח יותר להשתמש במעריכים בעלי ארגומנט מדומה במקום סינוסים וקוסינוסים, כלומר להשתמש בהתמרת פורייה בצורה מרוכבת. אבל עבורנו נוח להשתמש בנוסחה (1), שבה טור פורייה מיוצג כסכום של קוסינוסים עם אמפליטודות ומופעים תואמים. מבחינה קפדנית, התמרת פורייה של אות ממשי אכן מפיקה מקדמים מרוכבים (צורה (3)): כל מקדם נושא גם את האמפליטודה וגם את המופע של ההרמוניה שלו. עבור אות ממשי, למקדמים המרוכבים האלה יש סימטריה צמודה (Hermitian) — חצי התדרים השליליים רק משקף את חצי התדרים החיוביים ואינו נושא מידע נוסף. לכן, מן המקדמים המרוכבים אפשר תמיד לעבור לאמפליטודות הממשיות הלא-שליליות Ak ולמופעים θk של נוסחה (1) — וזהו בדיוק ספקטרום האמפליטודה שתוכנות הניתוח מציגות.
בשורה התחתונה:
הבסיס המתמטי לניתוח ספקטרלי של אותות הוא התמרת פורייה.
התמרת פורייה מאפשרת לייצג פונקציה רציפה f(x) (אות) המוגדרת על הקטע {0, T} כסכום של מספר אינסופי (סדרה אינסופית) של פונקציות טריגונומטריות (סינוס ו/או קוסינוס) בעלות משרעות ופאזות מוגדרות, הנבחנות גם הן על הקטע {0, T}. סדרה כזו נקראת סדרת פורייה.
שימו לב לעוד כמה נקודות, שהבנתן נדרשת ליישום נכון של התמרת פורייה לניתוח אותות. אם נבחן את סדרת פורייה (סכום של סינוסואידים) על כל ציר ה-X, נראה שמחוץ לקטע {0, T} פונקציית סדרת פורייה תחזור על הפונקציה שלנו באופן מחזורי.
לדוגמה, בגרף שבאיור 7, הפונקציה המקורית מוגדרת על הקטע {-T/2, +T/2}, וסדרת פורייה מייצגת פונקציה מחזורית המוגדרת על כל ציר ה-x.
הסיבה לכך היא שהסינוסואידים עצמם הם פונקציות מחזוריות, ולכן סכומם יהיה אף הוא פונקציה מחזורית.

איור 7: ייצוג של פונקציית מקור לא-מחזורית באמצעות סדרת פורייה
לפיכך:
הפונקציה המקורית שלנו היא פונקציה רציפה ולא מחזורית המוגדרת על קטע באורך T.
הספקטרום של פונקציה זו הוא בדיד, כלומר הוא מיוצג כסדרה אינסופית של רכיבים הרמוניים – סדרת פורייה.
למעשה, סדרת פורייה מגדירה פונקציה מחזורית כלשהי, המתאימה לפונקציה שלנו על הקטע {0, T}, אך מבחינתנו המחזוריות הזו אינה חיונית.
הלאה.
התקופות של המרכיבים ההרמוניים הן מכפלות של מרווח הזמן {0, T}, שבו מוגדרת הפונקציה המקורית f(x). במילים אחרות, התקופות של ההרמוניות הן מכפלות של משך מדידת האות. לדוגמה, תקופת ההרמוניה הראשונה בסדרת פורייה שווה למרווח T שבו מוגדרת הפונקציה f(x). תקופת ההרמוניה השנייה בסדרת פורייה שווה למרווח T/2. וכן הלאה (ראו איור 8).

איור 8: תקופות (תדרים) של המרכיבים ההרמוניים בסדרת פורייה (כאן T=2π)
לפיכך, תדרי הרכיבים ההרמוניים הם כפולות של 1/T. כלומר, תדרי הרכיבים ההרמוניים Fk הם Fk= k\T, כאשר k מקבל ערכים מ-0 עד ∞, לדוגמה, k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T;k=3 F3=3\T;…. Fk= k\T (בתדר אפס, רכיב קבוע).
נניח שהפונקציה ההתחלתית שלנו היא אות שהוקלט במשך T=1 שניות. אזי תקופת ההרמוניה הראשונה תהיה שווה למשך האות שלנו, T1=T=1 שניות, ותדירות ההרמוניה תהיה שווה ל-1 הרץ. תקופת ההרמוניה השנייה תהיה שווה למשך האות שלנו חלקי 2 (T2=T/2=0.5 שניות) ותדירותה תהיה 2 הרץ. עבור ההרמוניה השלישית, T3=T/3 שניות ותדירותה 3 הרץ. וכן הלאה.
הפער בין ההרמוניות במקרה זה הוא 1 הרץ.
לפיכך, ניתן לפרק אות שאורכו 1 שנייה למרכיביו ההרמוניים (כדי לקבל ספקטרום) ברזולוציית תדר של 1 הרץ.
כדי להגדיל את הרזולוציה פי 2, עד ל-0.5 הרץ, יש להאריך את משך המדידה פי 2, עד ל-2 שניות. ניתן לפרק אות בן 10 שניות למרכיביו ההרמוניים (ספקטרום) ברזולוציה תדרית של 0.1 הרץ. אין דרכים אחרות להגדיל את הרזולוציה התדרית. ניתן לבחון את הקשר הזה באמצעות מחשבון רזולוציית FFT.
ישנה דרך להאריך באופן מלאכותי את משך האות על ידי הוספת אפסים למערך הדגימות. אך הדבר אינו מגדיל את רזולוציית התדר האמיתית.
אותות דיסקרטיים וטרנספורם פורייה דיסקרטי
עם התפתחות הטכנולוגיה הדיגיטלית השתנו דרכי אחסון נתוני המדידה (האותות). בעוד שבעבר ניתן היה להקליט אות במכשיר הקלטה ולאחסן אותו על קלטת בצורה אנלוגית, כיום האותות עוברים דיגיטציה ונשמרים בקבצים בזיכרון המחשב כמערכת של מספרים (ערכים מספריים).
התהליך המקובל של מדידת אותות ודיגיטציה נראה כך.
מתמר מדידה —- מנרמל אות —- ADC —– מחשב
(איור 9: תרשים סכמטי של ערוץ המדידה)
האות המגיע ממתמר המדידה מועבר לממיר האנלוגי-לדיגיטלי (ADC) למשך פרק זמן T. ערכי האות (הדגימה) שהתקבלו במהלך פרק הזמן T מועברים למחשב ונשמרים בזיכרון.

איור 10: אות דיגיטלי – N דגימות שהתקבלו בפרק זמן T
מהן הדרישות להעברת פרמטרי דיגיטציה? מכשיר הממיר את האות האנלוגי הנכנס לקוד דיסקרטי (אות דיגיטלי) נקרא ממיר אנלוגי-לדיגיטלי (ADC) (© ויקיפדיה).
אחד הפרמטרים הבסיסיים של ADC הוא קצב הדגימה המרבי – תדירות הדגימה של אות רציף בזמן. קצב הדגימה נמדד בהרץ. ((© Wiki))
לפי משפט Kotelnikov’s, אם לאות רציף יש ספקטרום המוגבל על ידי התדר Fmax, ניתן לשחזר אותו באופן מלא וחד-משמעי מהדגימות הבדידות שלו הנלקחות במרווחי זמן Δt ≤ 1/(2*Fmax), כלומר בתדר דגימה Fd ≥ 2*Fmax, כאשר Fd – תדר הדגימה; Fmax – התדר המרבי של ספקטרום האות. במילים אחרות, תדר הדיגיטציה של האות (תדר הדגימה של ADC) חייב להיות לפחות פי שניים מהתדר המרבי של האות שאנו רוצים למדוד.
ומה יקרה אם ניקח דגימות בתדירות נמוכה יותר מזו הנדרשת על פי משפט קוטלניקוב?
במקרה זה ישנו "קיפול תדריםבמקרה זה מתרחש אפקט "אלייזינג" (המכונה גם אפקט סטרובוסקופי או אפקט מויר), שבו אות בתדר גבוה הופך לאחר הדיגיטציה לאות בתדר נמוך, אשר למעשה אינו קיים. באיור 11, גל הסינוס האדום בתדר גבוה הוא האות האמיתי. גל הסינוס הכחול בתדר נמוך יותר הוא אות פיקטיבי, הנובע מהעובדה שבמהלך זמן הדגימה הספיק לעבור יותר ממחצית מחזור של האות בתדר הגבוה.

איור 11. הופעת אות תדר נמוך מזויף בקצב דגימה שאינו גבוה מספיק
כדי למנוע את אפקט ה-aliasing, מסנן אנטי-אלייסינג מיוחד (מסנן מעבר נמוך) ממוקם לפני ה-ADC. הוא מעביר תדרים הנמוכים ממחצית תדר הדגימה של ה-ADC ומסנן את התדרים הגבוהים יותר.
כדי לחשב את ספקטרום האות מתוך הדגימות הבדידות שלו, משתמשים ב- התמרת פורייה (DFT) משמש. יש לשים לב שוב כי הספקטרום של אות דיסקרטי מוגבל, "בהגדרה", לתדר Fmax הנמוך ממחצית תדר הדגימה Fd. לפיכך, ניתן לייצג את הספקטרום של אות דיסקרטי כסכום של סופי מספר ההרמוניות, בניגוד לסכום האינסופי של סדרת פורייה של אות רציף, שספקטרומו עשוי להיות בלתי מוגבל. על פי משפט קוטלניקוב, התדר המרבי של הרמוניה חייב להיות כזה שיכסה לפחות שני דגימות, ולכן מספר ההרמוניות שווה למחצית ממספר הדגימות של אות דיסקרטי. כלומר, אם יש N דגימות במדגם, מספר ההרמוניות בספקטרום יהיה N/2.
הבה נבחן כעת את התמרת פורייה הבדידה (DFT).

השוואת זה לסדרת פורייה

כפי שאנו רואים, הן חופפות, למעט העובדה שהזמן ב-FFT הוא דיסקרטי ומספר ההרמוניות מוגבל ל-N/2, שהוא מחצית ממספר הדגימות.
נוסחאות DFT נכתבות במשתנים שלמים חסרי ממד k, s, כאשר k הוא מספר דגימות האות, ו-s הוא מספר הרכיבים הספקטראליים.
הערך s מציין את מספר התנודות ההרמוניות המלאות בכל מחזור T (משך מדידת האות). נעשה שימוש בטרנספורם פורייה הדיסקרטי כדי לחשב את העוצמות והפאזות של ההרמוניות באופן מספרי, כלומר "במחשב".
כפי שכבר נאמר לעיל, כאשר מפרקים פונקציה לא מחזורית (האות שלנו) לסדרת פורייה, סדרת הפורייה המתקבלת מתאימה למעשה לפונקציה מחזורית עם מחזור T (איור 12).

איור 12. פונקציה מחזורית f(x) עם מחזור T0, כאשר T > T0
כפי שניתן לראות באיור 12, הפונקציה f(x) היא מחזורית עם מחזור T0. עם זאת, מכיוון שאורך דגימת המדידה T אינו שווה למחזור הפונקציה T0, לפונקציה המתקבלת כסדרת פורייה יש נקודת אי-רציפות בנקודה T. כתוצאה מכך, הספקטרום של פונקציה זו יכיל מספר רב של הרמוניות בתדר גבוה. תופעה זו ידועה בשם זליגה ספקטרלית, ובפועל הוא מצטמצם ב- חלונות האות שלפני הטרנספורמציה. אם משך הדגימה T היה זהה לתקופת הפונקציה T0, אזי הספקטרום שהתקבל לאחר טרנספורמצית פורייה היה מכיל רק את ההרמוניה הראשונה (סינוס עם תקופה השווה למשך הדגימה), מכיוון שהפונקציה f(x) היא סינוס.
במילים אחרות, תוכנת ה-DFT "אינה יודעת" שהאות שלנו הוא "קטע של גל סינוס", אלא מנסה לייצג כסדרה פונקציה מחזורית שיש בה נקודת אי-רציפות בשל אי-הרציפות של קטעים נפרדים של גל הסינוס.
כתוצאה מכך, מופיעים הרמוניות בספקטרום, שאמורות, בסך הכול, לייצג את צורת הפונקציה, כולל נקודת אי-רציפות זו.
לפיכך, כדי לקבל ספקטרום "נכון" של אות המהווה סכום של מספר גלים סינוסואידים בעלי תקופות שונות, יש צורך ש- מספר שלם של תקופות כל סינוס צריך להופיע במהלך תקופת המדידה של האות. בפועל, ניתן לעמוד בתנאי זה באמצעות מדידת אות באורך מספיק.

איור 13 דוגמה לפונקציית אות השגיאה הקינמטית והספקטרום של תיבת הילוכים
במשך זמן קצר יותר התמונה תיראה "גרועה" יותר:

איור 14: דוגמה לפונקציית הרטט ולספקטרום של הרוטור
בפועל, לעתים קשה להבחין בין ה"מרכיבים האמיתיים" לבין ה"ארטיפקטים" הנובעים מחוסר עקביות בין תקופות המרכיבים ומשכי דגימת האות, או מ"קפיצות וניתוקים" בצורת הגל. כמובן, המילים "מרכיבים אמיתיים" ו"ארטיפקטים" מובאות במרכאות מסיבה טובה. נוכחותם של הרמוניות רבות בגרף הספקטרום אינה אומרת שהאות שלנו מורכב מהן בפועל. זה כמו לחשוב שהמספר 7 "מורכב" מהמספרים 3 ו-4. אפשר לחשוב על המספר 7 כסכום של 3 ו-4 – וזה נכון.
כך גם האות שלנו... או ליתר דיוק, לא "האות שלנו" כשלעצמו, אלא פונקציה מחזורית המורכבת מחזרה על האות (הדגימה) שלנו, ניתן לייצג כסכום של הרמוניות (גלי סינוס) בעלות משרעת ופאזה מסוימות. אך במקרים רבים החשובים מבחינה מעשית (ראו האיורים לעיל), אכן ניתן לקשר את ההרמוניות המתקבלות בספקטרום גם לתהליכים ממשיים בעלי אופי מחזורי, התורמים באופן משמעותי לצורת האות.
כמה תוצאות
1. אות נמדד אמיתי שאורכו T שניות, אשר עבר דיגיטציה באמצעות ממיר אנלוגי-לדיגיטלי (ADC), כלומר מיוצג על ידי קבוצת דגימות דיסקרטיות (N דגימות), בעל ספקטרום דיסקרטי ולא מחזורי המיוצג על ידי קבוצת הרמוניות (N/2 הרמוניות).
2. האות מיוצג כקבוצה של ערכים ממשיים. ספקטרום ה-DFT שלו הוא קבוצה של מקדמים מרוכבים בעלי סימטריה צמודה; מהם מתקבל ספקטרום האמפליטודה — קבוצה של אמפליטודות ממשיות לא-שליליות (ומופעים) בתדרים חיוביים, וזהו ספקטרום האמפליטודה החד-צדדי שמוצג בפועל. הצורה המרוכבת הדו-צדדית עם תדרים שליליים והצורה החד-צדדית של אמפליטודה/מופע הן ייצוגים שקולים של אותו ספקטרום — לניתוח אותות בדרך כלל נוח יותר לעבוד עם ספקטרום האמפליטודה החד-צדדי.
3. האות הנמדד בזמן T נקבע אך ורק בזמן T. מה שקרה לפני שהתחלנו למדוד את האות ומה שיקרה לאחר מכן אינו ידוע למדע. ובמקרה שלנו, זה לא מעניין. ה-FFT של האות המוגבל בזמן מספק את הספקטרום ה"אמיתי" שלו, במובן זה שתחת תנאים מסוימים הוא מאפשר לחשב את המשרעת והתדר של מרכיביו.