התמרות פורייה ולפלס
קונבולוציה ותגובת מערכת
Convolution (Fourier and Laplace)
קונבולוציה מחברת כל חלק מן הקלט להעתק מוזז של תגובת ההלם. במרחב התדר היא הופכת לכפל, ובדגימות מחזוריות היא מיוצגת על ידי מטריצה circulant.
- 1נקודת פתיחהמה כבר ידוע ומה השאלה?
- 2ניבוימה יקרה במקרה הפשוט?
- 3המחשהמה באמת משתנה בתמונה?
- 4ניסוח והצדקהשם, נוסחה ולמה היא נכונה
- 5בדיקהדוגמה, תרגול ומשוב
- 6העברהמקרה חדש והמשך המסלול
שאלה לפני נוסחה
מה אנחנו מנסים לראות?
לחשב קונבולוציה בדידה, מחזורית ורציפה, לפרש אותה כסכום תגובות מוזזות, ולהשתמש במשפט ההתמרה לחיבור בין קלט, תגובת הלם ופלט.
כל קלט אפשר לחשוב כאוסף של הלמים זעירים בזמנים שונים. מערכת שאינה משתנה בזמן מגיבה לכל הלם באותה צורה g, רק מוזזת ומוכפלת. הפלט הכולל הוא סכום כל ההעתקים החופפים ברגע הנוכחי.
לפני ההמחשה: קראו רק את הכותרת “קלט, תגובת הלם והסכום המצטבר”. מה לדעתכם ישתנה, מה יישאר קבוע, ואיזה סימן בתמונה יוכל להפריך את הניבוי?
לראות לפני שמחשבים · המקרה הפשוט ביותר
קלט, תגובת הלם והסכום המצטבר
האיור מציג f(t), g(t)=e^(−at) ואת y=f∗g עבור קלט מדרגה, פולס או קלט מושהה.
מה כדאי לגלות: בקלט פולס, הפלט ממשיך גם אחרי שהקלט חזר לאפס: הזנב הוא הזיכרון שנשאר בתגובת ההלם.
אחרי שראינו
בסוף השיעור תוכלו
- לחשב קונבולוציה לינארית ומחזורית ולהסביר את ההבדל באורך ובקיפול האינדקסים.
- לגזור את נוסחת הקונבולוציה למערכת לינארית סיבתית מתוך תגובת ההלם.
- להשתמש ב־L{f∗g}=FG וב־DFT של מטריצה circulant כדי לזהות סינון והפיכות.
נותנים שמות למה שראינו
מושגים שנשתמש בהם
- קונבולוציה
- פעולה שמחליקה, מזיזה ומכפילה שתי פונקציות ואז מסכמת את החפיפה.
- תגובת הלם g
- פלט המערכת לקלט δ; היא קובעת את תגובת המערכת לכל קלט אחר.
- מערכת LTI
- מערכת לינארית שאינה משתנה בזמן, ולכן שומרת חיבור, כפל והזזה.
- קונבולוציה לינארית
- בדגימות באורך m ו־n מתקבל פלט באורך m+n−1 ללא קיפול מחזורי.
- קונבולוציה מחזורית
- אינדקסים נלקחים modulo N, ולכן זנב הפלט מתקפל אל תחילתו.
- מטריצה circulant
- מטריצה שכל שורה שלה היא הזזה מחזורית; ה־DFT מלכסנת אותה.
מהמילים אל הסימנים
כותבים את הפעולה שכבר ראינו
פתחו את הנוסחה רק אחרי שאתם יכולים לומר במילים מה כל פעולה אמורה לעשות. בשלב הבא נצדיק אותה צעד אחר צעד.
להצגת נוסחת המפתח
קראו כל סימן כפעולה, לא כמשהו שצריך לשנן(f∗g)(t)=∫₀ᵗf(τ)g(t−τ)dτ; L{f∗g}=F(s)G(s)מרכיבים את הפעולות
מהתמונה אל הנוסחה — הגזירה, בלי לדלג על הצעדים
מתחילים מהלם מוזז
כל פונקציה ניתנת פורמלית כסכום רציף של הלמים מוזזים, שכל אחד משוקלל בערך הקלט בזמן τ.
f(t)=∫₋∞^∞f(τ)δ(t−τ)dτמפעילים לינאריות והזזה
אם תגובת המערכת ל־δ(t) היא g(t), אז תגובתה ל־δ(t−τ) היא g(t−τ), והמשקל f(τ) נשמר.
δ(t−τ) → g(t−τ)מחברים את כל התגובות
לינאריות מעבירה את האינטגרל דרך המערכת. במערכת סיבתית שתי הפונקציות אפס לפני 0 ולכן הגבולות מצטמצמים ל־0≤τ≤t.
y(t)=(f∗g)(t)=∫₀^t f(τ)g(t−τ)dτמוכיחים את משפט ההתמרה
מתמירים את האינטגרל הכפול, מחליפים סדר אינטגרציה ומבצעים את ההצבה r=t−τ. האינטגרל נפרד למכפלת שני אינטגרלים.
L{f∗g}=F(s)G(s)עוברים לדגימות
בקונבולוציה לינארית, כל זוג אינדקסים j,k תורם למקום j+k. לכן שני וקטורים באורכים m,n יוצרים m+n−1 מקומות.
(v∗w)ᵣ=Σⱼvⱼwᵣ₋ⱼמקפלים מחזורית
כאשר האותות מחזוריים באורך N, האינדקס r−j נלקח modulo N. הפעולה היא כפל במטריצה circulant.
(v⊛w)ᵣ=Σⱼvⱼw_(r−j mod N)מלכסנים בעזרת DFT
הווקטורים המעריכיים הם וקטורים עצמיים של כל מטריצה circulant. לכן קונבולוציה מחזורית הופכת לכפל רכיב־רכיב בתדר.
DFT(v⊛w)=DFT(v)·DFT(w)
עכשיו רואים את השיטה בפעולה
דוגמאות פתורות, צעד אחר צעד
לינארית מול מחזורית
חשבו (1,2)∗(2,1) וגם את הקונבולוציה המחזורית באורך 2.
בפלט הלינארי המקום 0 מקבל 1·2=2.
המקום 1 מקבל 1·1+2·2=5.
המקום 2 מקבל 2·1=2, ולכן האורך הוא 3.
במחזוריות המקום 2 מתקפל אל מקום 0 ומוסיף 2.
לכן הפלט המחזורי הוא (4,5).
(1,2)∗(2,1)=(2,5,2); (1,2)⊛(2,1)=(4,5).
תגובה למדרגה דרך קונבולוציה
עבור y′+y=f ממנוחה, חשבו את הפלט ל־f(t)=H(t).
תגובת ההלם היא g(t)=H(t)e^(−t).
הפלט הוא ∫₀^t1·e^(−(t−τ))dτ.
מציבים r=t−τ או מאינטגרלים ישירות.
מתקבל 1−e^(−t), המתחיל ב־0 ומתקרב ל־1.
(H∗He^(−t))(t)=1−e^(−t).
איפה זה פוגש את העולם
יישום
ממוצע נע, טשטוש תמונה, הד בחדר, תגובת מעגל וכפל פולינומים הם אותה פעולה בצורות שונות. FFT מאפשרת לחשב קונבולוציות ארוכות באמצעות שתי התמרות, כפל אחד והתמרה הפוכה.
מלכודת נפוצה
מה כדאי לבדוק
לבלבל קונבולוציה עם כפל נקודתי. בזמן קונבולוציה כוללת הזזה וסכימה; רק לאחר התמרה היא הופכת לכפל נקודתי. גם קונבולוציה מחזורית אינה זהה ללינארית בלי zero-padding.
בודקים שהרעיון יושב
תרגול ומשוב
בדיקת הבנה
בחרו תשובה ורק אז בדקו את עצמכם
בחרו אחת מהאפשרויות כדי להמשיך.
עכשיו אתם
אתגר קצר
הראו מדוע קונבולוציה מחזורית עם c=(1,1) אינה הפיכה באורך 2 בארבע דרכים: דטרמיננטה, ערכים עצמיים, גרעין ו־DFT.
רמז ראשון
מטריצת הקונבולוציה היא [[1,1],[1,1]]. נסו את הווקטור (1,−1).
הצגת דרך הפתרון
- הדטרמיננטה היא 1−1=0.
- הערכים העצמיים הם 2 בכיוון (1,1) ו־0 בכיוון (1,−1).
- לכן (1,−1) נמצא בגרעין ושתי כניסות שונות יכולות לתת אותו פלט.
- DFT(1,1)=(2,0); התדר השני נמחק, ולכן אי־אפשר לבצע deconvolution בו.
מימוש הנושא
קוד שאפשר לקחת לניסוי
הקוד מיישם את אותו רעיון מתמטי. ב־JavaScript אפשר להריץ אותו כאן; גרסת Python זמינה להשוואה ולהעתקה.
הקוד מקצה פלט באורך m+n−1 ומוסיף כל מכפלה vⱼwₖ למקום j+k; בגרסה המחזורית האינדקס נלקח modulo N.
עבור (1,2) ו־(2,1) יתקבלו (2,5,2) בלינארית ו־(4,5) במחזורית.
הוסיפו אפסים לשני הווקטורים עד אורך 4 ובצעו קונבולוציה מחזורית. מדוע היא מסכימה כעת עם הלינארית?
מהרעיון אל הקוד
מימוש חישובי
function convolution(left,right) {
const out=Array(left.length+right.length-1).fill(0);
left.forEach((a,i)=>right.forEach((b,j)=>out[i+j]+=a*b));
return out;
}
function cyclic(left,right) {
const N=left.length;
return Array.from({length:N},(_,r)=>left.reduce(
(sum,a,j)=>sum+a*right[(r-j+N)%N],0));
}
console.log(convolution([1,2],[2,1]));
console.log(cyclic([1,2],[2,1]));def convolution(left,right):
out=[0]*(len(left)+len(right)-1)
for i,a in enumerate(left):
for j,b in enumerate(right):
out[i+j]+=a*b
return out
def cyclic(left,right):
N=len(left)
return [sum(a*right[(r-j)%N] for j,a in enumerate(left)) for r in range(N)]
print(convolution([1,2],[2,1]))
print(cyclic([1,2],[2,1]))לפני שממשיכים
מה לוקחים מהשיעור
- קונבולוציה היא סכום של תגובות הלם מוזזות ומשוקללות.
- במערכת סיבתית האינטגרל מצטמצם לעבר 0≤τ≤t.
- התמרות פורייה ולפלס הופכות קונבולוציה לכפל.
- אפס בספקטרום של המסנן מוחק מידע והופך deconvolution לבלתי אפשרית.
משימת מעבדה לשיעור הזה
תחנה 4 — מקלט לפלט דרך תגובת הלם
בחרו מדרגה, פולס או השהיה, ושוו בין הקלט, תגובת ההלם והפלט המצטבר y=f∗g.
מקורות להעמקה בלבד — השיעור עומד בפני עצמו
מדריך המרצים: עמ׳ 234–240
ספר הלימוד: עמ׳ 479–489