ארכיון

Archive for מאי, 2014

איך נשמעת מוזיקה מרובעת? על ניתוח הרמוניות

איך נראה צליל?

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

גלי סינוס בתדיריות שונות
איור 1: גלי סינוס בתדירויות שונות. המקור לאיור: ויקיפדיה, לשם הועלה על ידי המשתמש LucasVB.

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

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

גל סינוס וגל מרובע באותה תדירות
איור 2: גל סינוס וגל מרובע באותה התדירות. האים נוכל להבדיל ביניהם בשמיעה? המקור לאיור: ויקיפדיה, לשם הועלה על ידי המשתמש Omegatron.

הצליל הטהור וטור פורייה

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

קולן ואוסילוסקופ
תמונה 3: קולן (משמאל) ואוסילוסקופ (מימין). המקור לתמונות: ויקיפדיה וויקיפדיה, לשם הועלו על ידי המשתמשים Flapdragon, SIGLENT TECHNOLOGIES CO.,LTD בהתאמה.

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

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

פעימות
איור 4: פעימה של שני תדרים. בשחור הגל שמתנודד מהר ובאדום המעטפת שמתנודדת לאט. המקור לאיור: ויקיפדיה, לשם הועלה על ידי המשתמש Ansgar Hellwig.

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

למעוניינים להעמיק במתמטיקה של טור פורייה מומלץ לקרא על כך בבלוג לא מדויק.

הרמוניות

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

טור פורייה גל מרובע
איור 5: טור פורייה של גל מרובע.

אחת התכונות של טורי פורייה היא שאי רציפות בפונקציה המקורית, כמו למשל במעברים בין גבוה ונמוך בגל המרובע, מבטיחה שנזדקק לאינסוף איברים בטור. הניסיון 'לצייר' גל עם פינות חדות בעזרת סינוסים מזכיר לי ניסיון לצייר מעגל בעזרת קווים ישרים. הטור שקיבלנו עבור הגל המרובע מכיל אינסוף סינוסים שהראשון הוא התדר הראשי של הגל ושאר האיברים מכונים הרמוניות. העוצמה שלהן קטנה לפי המקדם n-1  , ולכן רוב האנרגיה של הגל מרוכזת בהרמוניות הנמוכות. דבר נוסף שכדאי לזכור הוא שתחום התדרים שאדם בוגר מסוגל לשמוע נע בין 20 ל-20000 הרץ (יותר קרוב ל-15k אם אתם לא ילדים, ראו סרטון קצר ומחכים) ולכן בכל מקרה נוכל לשמוע רק מספר הרמוניות סופי של הגל.

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

מטור הפורייה נוכל לראות שתדירות ההרמוניה השניה של גל מרובע גדולה פי 3 מהתדירות הראשית. מכאן שאם התדר הראשי של הגל המרובע הוא כ-5000 הרץ ההרמוניה השניה היא ב-15000 הרץ ולכן נמצאת כבר בקצה יכולת השמיעה של אדם בוגר. כלומר, עבור תדירויות שגבוהות מ-5000 הרץ לא נוכל לשמוע אף אחת מההרמוניות ולכן גל מרובע ישמע לאוזנינו כמו גל סינוס אבל בעוצמה מעט נמוכה יותר. לא מאמינים לי? הנה קישור לסרטון שמדגים את התופעה.

אז מה ההבדל בין תו 'דו' של חליל לתו 'דו' של פסנתר? התדר הראשי זהה בשניהם, אבל ההרמוניות של כל אחד מהן שונות ומשונות, וזה מה שנותן לכל אחד את הגוון והטעם המיוחד שלו (להרחבה).

ולסיום, חידה: כיצד ניתן להפוך גל מרובע לגל סינוס?

על פידבקים, בעיקר חיוביים, מעשה ידי אדם

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

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

Trinity_shot_color
תמונה 1: הניסוי האטומי הראשון ב-16 ביולי 1945. המקור התמונה: צבא ארה"ב דרך ויקיפדיה.

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

שמיט טריגר והיסטרזיס

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

היסטרזיס
איור 2: היסטרזיס. בין ערך הכניסה T לערך הכניסה T- (על ציר x) יש תמיד שני ערכי יציאה אפשריים: M ו- M-. המעבר בין יציאה גבוהה לנמוכה מתרחש רק לפי החצים על הקו האדום, כלומר ניתן 'לנוע' על לולאת החשל רק בכיוון החצים. המשמעות היא שערך היציאה נקבע לפי הכיוון הנוכחי על העקומה, כלומר הלולאה 'זוכרת' אם היציאה גבוהה או נמוכה ופועלת בהתאם. המקור לאיור: ויקיפדיה, לשם הועלה על יד המשתמש Alessio Damato.

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

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

שמיט טריגר
איור 3: שמיט טריגר. א) איור סכמטי התאר את הרעיון הכללי. היציאה ממגבר A שהיא היציאה של המעגל מוזנת חזרה בסימן חיובי אל הכניסה. ב) אחד הדרכים לממש שמיט טריגר בעזרת מגבר שרת. היציאה מוזנת דרך נגד R2 חזרה אל הרגל הכניסה החיובית. המקור לאיורים: ויקיפדיה, לשם הועלו (בנפרד) על ידי המשתמשים Intgr ו- Inductiveload.

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

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

אז למה זה טוב?

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

רעש ושמיט טריגר
איור 4: רעש ושמיט טריגר. המחשה סכמטית של: א) רעש (לבן) סביב הערך אפס. ב) אות היציאה של מעגל בתגובה לאות הרועש A . U הוא אות היציאה ממגבר שרת ו-B הוא אות היציאה משמיט טריגר (למעשה אותו מעגל בתוספת משוב חיובי). הקו האדום על האות U מסמל את המתח ברגל השניה של מגבר השרת אליו מושוות הכניסה. הקווים הירוקים מסמלים את מתח הסף העליון והתחתון. כפי שניתן לראות השמיט טריגר אינו משנה את היציאה בתגובה לרעשים, אלא רק כאשר אות הכניסה מספיק גבוה או נמוך. המקור לשני האיורים: ויקיפדיה וויקיפדיה, לשם הועלו (בנפרד) על ידי המשתמשים Morn, ו- FDominec בהתאמה.

שימוש נוסף של השמיט טריגר הוא ליצירת מתנד פשוט.

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

ושאלה\חידה לסיום: האם המשוב שחיברנו לשמיט טריגר ליצירת המתנד הוא משוב חיובי או משוב שלילי?

אוסילטור שמיט טריגר
איור 5: מתנד גל מרובע מבוסס שמיט טריגר. המשולש עם העיגול הקטן בקצהו הוא בעצם המעגל המתואר באיור 3ב.