תגובה סופית להלם

בעיבוד אותות, **מסנן תגובה סופית להלם** (באנגלית: **Finite impulse response**; בראשי תיבות: **FIR**) הוא מסנן שהתגובה שלו להלם (או התגובה לכל קלט הדועך לאפס בזמן סופי) דועכת לאפס בזמן **סופי**. זאת בניגוד למסנני תגובה אינסופית להלם (IIR), אשר עשויים להיות בעלי משוב פנימי ועשויים להמשיך להגיב ללא הגבלה (בדרך כלל בדעיכה).

התגובה להלם (כלומר, הפלט בתגובה לכניסת דלתא של קרונקר) של מסנן FIR בזמן בדיד מסדר N נמשכת בדיוק N+1 דגימות (מהאלמנט הראשון שאיננו אפס ועד האלמנט האחרון שאינו אפס) לפני שהוא מתאפס.

מסנני FIR יכולים להיות בזמן בדיד או בזמן רציף, כלומר דיגיטליים או אנלוגיים.

## הגדרה
[שמאל|ממוזער|300x300 פיקסלים|מסנן FIR בצורה ישירה בזמן בדיד מסדר <math>N</math>. החלק העליון הוא קו השהייה של <math>N</math> עם <math>N+1</math> יציאות. כל השהיה של יחידה הוא אופרטור <math>z^{-1}</math> בסימון [התמרת Z.]]
[טקסט=A depiction of a lattice type F I R filter|שמאל|ממוזער|300x300 פיקסלים|מסנן FIR בזמן בדיד בצורת סריג מסדר <math>N</math>. כל השהיה של יחידה הוא אופרטור <math>z^{-1}</math> בסימון [התמרת Z.]]
עבור מסנן FIR בזמן בדיד סיבתי מסדר N, כל ערך בפלט הוא סכום משוקלל של ערכי הקלט העדכניים ביותר:

: \begin{align}
 y[n] &= b_0 x[n] + b_1 x[n-1] + \cdots + b_N x[n-N] \\
 &= \sum_{i=0}^N b_i\cdot x[n-i],
\end{align}

כאשר:
*  x[n] הוא אות הכניסה,
*  y[n] הוא אות הפלט,
*  N הוא סדר הסינון; במסנן מסדר  N יש  N + 1  ביטויים באגף ימין
*  b_i  הוא הערך של התגובה להלם ברגע ה-i עבור  0 \le i \le N  של מסנן FIR מסדר N. אם המסנן הוא מסנן FIR אז  b_i  הוא גם מקדם של המסנן.

חישוב זה ידוע גם בתור קונבולוציה בדידה.

האיברים  x[n-i] מכונים בדרך כלל s, המבוסס על מבנה של קו השהייה מוצמד שבמימושים רבים או בדיאגרמות בלוקים מספק את הכניסות המושהות לפעולות הכפל.

התגובה להלם של המסנן כפי שהוגדר אינה אפס לאורך זמן סופי. כולל אפסים, התגובה להלם היא הרצף האינסופי:

: 
 h[n] = \sum_{i=0}^N b_i\cdot \delta[n-i] =
 \begin{cases}
 b_n & 0 \le n \le N\\
 0 & \text{otherwise}.
 \end{cases}


אם מסנן FIR אינו סיבתי, טווח הערכים שאינם אפס בתגובה להלם שלו יכול להתחיל לפני n=0, עם הנוסחה מוגדרת ומוכללת.

## תכונות
למסנן FIR יש מספר מאפיינים שימושיים שלעיתים הופכים אותו לעדיף על מסנן של תגובה אינסופית (IIR). מסנני FIR:
* אינו דורש משוב. משמעות הדבר היא ששגיאות עיגול אינן מורכבות על ידי איטרציות מסוכמות. אותה שגיאה יחסית מתרחשת בכל חישוב. זה גם הופך את היישום לפשוט יותר.
* הם יציבים, מכיוון שהפלט הוא סכום של מספר סופי של כפולות סופיות של ערכי הקלט, ולכן אינו יכול להיות גדול מ־ \sum |b_i| כפול הערך במקסימלי בקלט.
* ניתן לעצב בקלות לשלב ליניארי על ידי הפיכת רצף המקדם לסימטרי. מאפיין זה רצוי לפעמים עבור יישומים Phase-sensitive, למשל תקשורת נתונים, סייסמולוגיה, מסנני מוצלבים ומאסטרינג.

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

## תגובת תדר
השפעת המסנן על הרצף x[n] מתואר בתחום התדר על ידי משפט הקונבולציה:

: \underbrace{\mathcal{F}\{x*h\}}_{Y(\omega)} = \underbrace{\mathcal{F}\{x\}}_{X(\omega)} \cdot \underbrace{\mathcal{F}\{h\}}_{H(\omega)} ו־y[n] = x[n]*h[n]= \mathcal{F}^{-1}\big\{X(\omega)\cdot H(\omega)\big\},

כאשר האופרטורים \mathcal{F} ו־\mathcal{F}^{-1} בהתאמה מייצגים התמרת פורייה בזמן הבדיד (DTFT) ואת ההופכי שלו. לכן, הפונקציה המורכבת, המכפלת H(\omega) היא תגובת התדר של המסנן. זה מוגדר על ידי סדרת פורייה:

: H_{2\pi}(\omega)\ \triangleq \sum_{n=-\infty}^{\infty} h[n]\cdot \left({e^{i \omega}}\right)^{-n} = \sum_{n=0}^{N}b_n\cdot \left({e^{i \omega}}\right)^{-n}

כאשר כתב המשנה שנוסף מציין מחזוריות של2\pi. \omega מייצג תדר ביחידות מנורמלות (**רדיאנים לדגימה**). ההחלפה \omega = 2\pi f,, משנה את יחידות התדר (f) ל**מחזורים לדגימה** והמחזוריות ל-1. כאשר לרצף x[n] יש קצב דגימה ידוע, f_s **דגימות לשנייה**, ההחלפה \omega = 2\pi f/f_s משנה את יחידות התדירות (f) **למחזורים לשנייה** (הרץ) והמחזוריות ל־f_s. הערך \omega = \pi מתאים לתדירות של f = \tfrac{f_s}{2} *הרץ* = \tfrac{1}{2} **מחזורים למדגם**, שהוא תדר נייקוויסט.

H_{2\pi}(\omega) ניתן לבטא גם במונחים של התמרת Z של התגובה להלם של המסנן:

: 
\widehat H(z)\ \triangleq \sum_{n=-\infty}^{\infty} h[n]\cdot z^{-n}


: H_{2\pi}(\omega) = \left. \widehat H(z) \, \right|_{z = e^{j \omega}} = \widehat H(e^{j \omega})

## תכנון מסנן
מסנן FIR מתוכנן על ידי מציאת המקדמים וסדר הסינון העומדים במפרטים מסוימים, שיכולים להיות בתחום הזמן (לדוגמה מסנן מתואם) או בתחום התדר (הנפוץ ביותר). מסננים מתואמים מבצעים קורלציה צולבת בין אות הכניסה לצורת פולס ידועה. קונבולוציית ה-FIR היא מתאם צולב בין אות הכניסה לבין עותק הפוך בזמן של התגובה להלם. לכן, התגובה להלם של המסנן המתואם "מעוצבת" על ידי דגימת צורת ההלם הידועה ושימוש בדגימות הללו בסדר הפוך כמקדמי המסנן.

כאשר רצויה תגובת תדר מסוימת, נפוצות מספר שיטות תכנון שונות:

# שיטת תכנון חלונות
# שיטת דגימת תדר
# שיטת מזעור MSE (ממוצע שגיאה בריבוע).
# שיטת Parks–McClellan (מוכרת גם כשיטת equiripple, אופטימלית או מינימקס). אלגוריתם החלפת רמז משמש בדרך כלל למציאת קבוצת מקדמים אופטימלית equiripple. כאן המשתמש מציין תגובת תדר רצויה, פונקציית שקלול לשגיאות מתגובה זו וסדר סינון N. לאחר מכן האלגוריתם מוצא את סט  N + 1 מקדמים שממזערים את הסטייה המקסימלית מהאידיאל. באופן אינטואיטיבי, זה מוצא את המסנן הקרוב ככל האפשר לתגובה הרצויה בהינתן זאת בלבד  N + 1 ניתן להשתמש במקדמים. שיטה זו קלה במיוחד בפועל שכן לפחות טקסט אחד  כולל תוכנית שלוקחת את המסנן הרצוי ואת N, ומחזירה את המקדמים האופטימליים.
# ניתן לעצב מסנני Equiripple FIR באמצעות אלגוריתמי DFT גם כן. האלגוריתם הוא איטרטיבי באופיו. ה-DFT של תכנון מסנן ראשוני מחושב באמצעות אלגוריתם FFT (אם אומדן ראשוני אינו זמין, ניתן להשתמש ב-h[n]=\delta[n]). בתחום הפורייה, או תחום ה-DFT, תגובת התדר מתוקנת בהתאם למפרט הרצוי, ולאחר מכן מחשבים את ה-DFT ההפוך. בתחום הזמן, רק ה-N המקדמים הראשונים נשמרים (המקדמים האחרים מוגדרים לאפס). לאחר מכן, התהליך חוזר על עצמו באופן איטרטיבי: ה-DFT מחושב פעם נוספת, תיקון מוחל בתחום התדר וכן הלאה.

חבילות תוכנה כגון MATLAB, GNU Octave, Scilab ו־SciPy מספקות דרכים נוחות ליישם את השיטות השונות הללו.

### שיטת תכנון חלונות
בשיטת תכנון החלונות, מתכננים תחילה מסנן IIR אידיאלי ולאחר מכן חותכים את התגובה האינסופית להלם על ידי הכפלתה עם פונקציית חלון באורך סופי. התוצאה היא מסנן תגובה סופית להלם שתגובת התדר שלו שונה מזו של מסנן IIR. הכפלת ההלם האינסופי בפונקציית החלון בתחום הזמן גורמת לכך שתגובת התדר של ה-IIR מתפתלת עם התמרת פורייה (או DTFT) של פונקציית החלון. אם האונה הראשית של החלון צרה, תגובת התדר המרוכבת נשארת קרובה לזו של מסנן IIR האידיאלי.

התגובה האידיאלית היא לרוב מלבנית, וה-IIR המקביל הוא פונקציית sinc. התוצאה של קונבולוציית תחום התדר היא שהקצוות של המלבן מתחדדים, ואדוות מופיעות בפס המעבר ובפס העצירה. בעבודה לאחור, אפשר לציין את השיפוע (או הרוחב) של האזור המחודד (*רצועת מעבר*) ואת גובה האדוות, ובכך לגזור את הפרמטרים של תחום התדר של פונקציית חלון מתאימה. המשך אחורה לתגובה להלם יכול להיעשות על ידי איטרציה של תוכנית תכנון מסנן כדי למצוא את סדר הסינון המינימלי. שיטה נוספת היא להגביל את ערכת הפתרון למשפחה הפרמטרית של חלון קייזר, המספקת יחסים בצורה סגורה בין הפרמטרים של תחום הזמן והתחום התדר. באופן כללי, שיטה זו לא תשיג את סדר הסינון המינימלי האפשרי, אך היא נוחה במיוחד עבור יישומים אוטומטיים הדורשים תכנון סינון דינמי, תוך כדי תנועה.

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

## ראו גם
* מסנן (אלקטרוניקה)
* התמרת Z
* תומך (מתמטיקה)
* תגובה אינסופית להלם

## קישורים חיצוניים

## הערות שוליים

קטגוריה:עיבוד אותות ספרתי