עיבוד אות – יכולות ששווה להכיר
בסביבת MATLAB נוספו בגרסאות האחרונות מגוון חידושים המפשטים את תהליך הפיתוח של מערכות עיבוד אות. אם אתם עוסקים בעיבוד אותות, הפוסט הבא יעשה לכם סדר בכל הנוגע לכלים השימושיים שיש כיום ב-MATLAB, משלב העיבוד המקדים ועד לשלב ההטמעה של האלגוריתם שלכם.
חלק מהכלים שיש בסביבת MATLAB כוללים מגוון רחב של אפליקציות, שהן ממשקי משתמש ידידותיים המאפשרים לעשות פעולות בצורה אינטראקטיבית. את הפעולות הללו ניתן להמיר בלחיצת עכבר בקוד MATLAB שקול, דבר שמאפשר לבצע אוטומציה ולייעל את תצורת העבודה.
גם עבור תחום עיבוד האות ישנן אפליקציות ייעודיות המסייעות בתהליך הפיתוח. מוכנים להכיר אותן וכלים רבים נוספים? בואו נצא לדרך!
שלב העיבוד המקדים זהו שלב סיזיפי ומייגע, אלא אם מכירים שתי אפליקציות שימושיות שמסייעות בשלב זה :
- Signal Analyzer App – כשאנחנו מייבאים אות ל-MATLAB , הדבר הראשון שנרצה לעשות זה להסתכל עליו ולהתחיל לנתח אותו. אפליקציה שיכולה לייעל ולעזור לכם בשלבים ההתחלתיים של הניתוח היא ה-.Signal Analyzer האפליקציה מאפשרת ביצוע חקר ראשוני לאותות: הצגה של האות במישור הזמן והתדר, סינון האות, מציאת מעטפת, הצגת הספקטוגרמה ויכולות רבות נוספות.
מידע נוסף תוכלו למצוא בסרטון הבא:
- Wavelet Signal Denoiser App – אפליקציה המאפשרת לבצע סינון באמצעות מגוון טכניקות סינון. האפליקציה מאפשרת להתאים פרמטרים שונים עבור כל טכניקת סינון, כאשר ניתן לייצר מספר גרסאות של האות לאחר הסינון ובסוף לייצא את הסיגנל הרצוי.
מידע נוסף תוכלו למצוא בקישור הבא.
כחלק משלב העיבוד המקדים, נרצה לייבא אותות לסביבת ה-MATLAB . כאשר מדובר בקבצים רבים, לא נוכל לטעון את כולם ל- workspace. השימוש ב-datastore מאפשר לנו לנהל אוסף של נתונים בזיכרון, כאשר כל קובץ בנפרד מתאים לזיכרון אך האוסף כולו לא בהכרח מתאים.
יש לנו שני סוגי datastore הנוגעים לאותות:
- signalDatastore – המשמש לייבוא אותות באמצעות datastore – מידע נוסף ניתן למצוא בקישור הבא.
- audioDatastore – המשמש לייבוא אותות שמע באמצעות datastore – מידע נוסף ניתן למצוא בקישור הבא.
בסוף שלב העיבוד המקדים, במידה ונרצה לבנות מודל חיזוי, יש צורך בתיוג האותות. שלב זה יכול להוות אתגר, ואפליקציות התיוג הבאות יכולות להקל ולייעל את שלב התיוג:
- Signal Labeler App – כלי אינטראקטיבי המאפשר תיוג עבור אותות חד מימדיים. ניתן לתייג באמצעותו את כל האות, אזורי עניין בתוך האות או נקודות ספציפיות באות. ניתן לתייג בצורה ידנית או אוטומטית על ידי כתיבת פונקציה מותאמת אישית.
- Audio Labeler App – כלי נוסף המאפשר תיוג עבור סיגנלי אודיו. אל האפליקציה ניתן לייבא סיגנלים או להקליט סיגנלים חדשים ישירות מתוכה. גם כאן בדומה לsignal labeler ניתן לתייג את האות כולו או אזורי עניין.
על שתי האפליקציות הללו תוכלו לקרוא ולראות סרטונים הממחישים את דרך העבודה באמצעותן בפוסט הבא
ובהמשך לשלב התיוג, במידה ונרצה לחלץ מאפיינים מהאותות שברשותנו על מנת להכניסם כקלט למודל החיזוי ניתן לעשות זאת בצורה יעילה ומהירה באמצעות MATLAB על ידי:
- Diagnostic Features Designer App – על ידי האפליקציה ניתן לחלץ מאפיינים עבור סט הנתונים שלנו בצורה אינטראקטיבית, ניתן לחלץ מאפיינים עבור אותות הן במישור הזמן והן במישור התדר, לצפות בצורה ויזואלית במאפיינים ולדרג את איכותם – קישור.
- Wavelet Scattering– טכניקה למיצוי מאפיינים אוטומטיים, מתאימה עבור אותות חד מימדיים על ידי פונקציית waveletScattering ועבור תמונות על ידי פונקציית waveletScattering2.
- Time-Frequency Transformations– לעיתים נרצה לנתח את האות במישור הזמן-תדר. בצורה כזאת ניתן להפיק מידע נוסף על האות ולייצג את האות כתמונה. מוטביציה לייצוג הזה יכולה לנבוע מכך שאת אותן תמונות ניתן להכניס כקלט לרשתות CNN. סקירה של כל הפונקציות המשמשות לייצוג זמן-תדר, כולל דוגמאות נלוות, ניתן למצוא בקישור הבא.
- Audio feature extraction in the Live Editor – כחלק מה-live editor של MATLAB, יצאו בגרסת 2019b ה-live editor tasks. המשימות הללו מאפשרות ליישם פעולות אינטראקטיביות כחלק מהקוד עצמו. משימה שיצאה בגרסת 2020a מאפשר חילוץ מאפיינים אוטומטיים לסיגנלי אודיו. למי שעדין לא יצא לו לעבוד עם ה-live editor tasks, אני ממליצה להתחיל – זה חוסך זמן, נוח לשימוש, מראה את התוצאות בצורה ויזואלית וכמובן מאפשר להמיר את הפעולות האינטראקטיביות שביצענו לקוד שניתן לערוך.
מידע נוסף על ה-audio feature extraction task ניתן למצוא בקישור הבא.
צפו בסרטון הממחיש את העבודה עם ה-live editor
לאחר שלב העיבוד המקדים ובניית המודל, אנחנו מגיעים לשלב האחרון בתהליך הפיתוח, שלב ההטמעה. יתרון משמעותי של MATLAB הוא התמיכה בכל שלבי הפיתוח, כן, גם בשלב ההטמעה! ניתן לבצע המרה אוטומטית של קוד MATLAB לקוד C++, C או CUDA איכותיים ובכך לייעל את התהליך. פונקציות רבות תומכות בהמרת קוד אוטומטי ובפרט פונקציות מעולם התוכן של עיבוד אות. את הרשימה המלאה תוכלו למצוא בקישורים שלהלן:
באמצעות הכלים שהוזכרו למעלה תוכלו לייעל את דרך העבודה שלכם ולהפיק את המירב בשלב הפיתוח!