תוכן עניינים:
- שלב 1: צור קלט משתמש לניתוח גיל המשתמש
- שלב 2: בדוק את אודיו עבור המשתמש
- שלב 3: בצע את בדיקת האודיומטריה לאוזן ימין
- שלב 4: צור אותו קוד לאוזן השמאלית
- שלב 5: צור איור זה לצד זה להשוואת הנתונים
- שלב 6: הוסף הודעת תודה קטנה אם תרצה
וִידֵאוֹ: כיצד לבצע בדיקת שמיעה למבוגרים באמצעות MATLAB: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
כתב ויתור: הבדיקה שלנו אינה אבחון רפואי ואין להשתמש בה ככזו. כדי למדוד את השמיעה במדויק, פנה לרופא מומחה.
באמצעות חומרים שכבר היו לנו, הקבוצה שלנו ערכה בדיקת שמיעה. הבדיקה שלנו מיועדת למבוגרים ולנוער בלבד מכיוון ששמיעת ילדים צעירים מגיעה בטווחים שונים ויש למדוד אותה רק על ידי איש מקצוע.
פרויקט זה קיבל השראה בעת שעבדנו בשיעור BME MATLAB ושיחקנו עם צלילים שנוצרו על ידי גלי סינוס. התענייננו בדרכים בהן ניתן לשנות את גל הסינוס כדי להשמיע צליל במגרשים שונים.
כל מה שהיינו צריכים לפרויקט זה היה מחשב שמריץ MATLAB R2018b וזוג אוזניות. כללנו דמות מקורית, פרנסס, כקמע כדי להפוך את התוכנית להומוריסטית יותר.
שלב 1: צור קלט משתמש לניתוח גיל המשתמש
החלק הראשון בקוד זה הוא להזין קלט משתמש בו הוא מחליט אם הם מבוגרים מספיק כדי להמשיך לבצע את בדיקת השמיעה. למה לא לעשות זאת על ידי הוספת תמונות מטופשות של הקמע שלנו, פרנסס? לשם כך, הורד את קובץ ה- zip הכלול ולאחר מכן חלץ אותו לקובץ שניתן למשוך אותו לתוך הקוד. המשך להעלות את הקובץ מלא הציורים באמצעות קבוצה באמצעות זה:
Dir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings'; GetDir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings \*. Jpg';
על מנת להציג את תיבות ההודעות והתמונות הגדולות של הציורים, השתמשנו בשיטה המהנה הזו להראות לכם את פרנסס. כל שעליך לעשות הוא לקרוא תמונה לפי בחירתך בפורמט: variable = imread ('nameofpicture.jpg');
לאחר מכן המשך להציג אותו באמצעות imshow (משתנה); לאחר מכן הוא יופיע כדמות ב- MatLab שלך כאשר תפעיל אותו!
להלן תיבות ההודעות המשמשות לאורך כל הקוד. uiwait () היא פונקציה שבה הקוד נעצר עד לסיום הפעולה שנבחרה עבור uiwait. הפונקציה שנבחרה היא msgbox ('הודעה', 'כותרת', 'סמל')!
אתה יכול להרגיש חופשי לשנות את ההודעות שפרנסס אומרת כל עוד אתה עוקב אחר פורמט msgbox () למעלה. אם ברצונך להשתמש בתמונות של פרנסס, סמן 'אייקון' כ'הגדרה מותאמת אישית 'והמשך עם פסיק והמשתנה של הקריאה של התמונה שבחרת! תוכל גם להשתמש בסוגי 'האייקון' המוגדרים מראש. זה אמור להיראות כך:
hi = imread ('Regular.jpg'); % קורא את התמונה מהקובץ uploadedimshow (היי); uiwait (msgbox ('שלום ותודה שבחרת בבדיקת השמיעה שלנו! זו פרנסס והוא יעזור לך היום עם הבדיקה שלך!', 'ברוכים הבאים!', 'מותאם אישית', היי));
לאחר מכן צור קלט ששואל את גיל המשתמש כך!
UserAge = input ('לפני שנתחיל במבחן זה, בן כמה (שנים) אתה? (למשל 32, 56, …) n', 's');
הערה: אם הנתונים מוזרים ויש יותר מדי, השתמש בסגור הכל כדי להסיר את הנתונים הקודמים ככל שהקוד שלך פועל
לאחר מכן צור מבנה מארז מתג! זכור כי קלט המשתמש הוא במחרוזת ועליך להמיר אותו לערך מספרי. אז השתמש ב- str2double (UserAge). כל מקרה צריך להיות בטווח גילאים כגון 4 עד 6 או 18 עד 40. כדי שהמשתנה יוודא כנכון עבור אחד המקרים השתמש ב- num2cell (מערך) כך:
לעבור משתנה % משתנה str2double (UserAge) ממחרוזת למספר ערך מספריים num2cell (0: 3)
frances = imread ('Egg.jpg');
imshow (צרפת);
uiwait (msgbox ('אתה עובר! פרנסס חושבת שכדאי לך לבצע בדיקת שמיעה אצל רופא במקום זאת!', 'בדיקה נדחתה!', 'מותאם אישית', פרנסס));
לַחֲזוֹר
יש להחזיר את הקבוצות הקודמות על מנת למנוע מהמשתמש להמשיך בקוד.
זכור לסיים את מבנה התיק ולסגור את כל הנתונים.
שלב 2: בדוק את אודיו עבור המשתמש
קטע זה קיים כדי להבטיח שהצליל של המשתתף במכשיר שלו אינו שקט מדי ולא חזק מדי.
כדי לתת למשתמש אזהרה, תיבת הודעה צצה ומחכה לאישור מהמשתמש לפני שתמשיך הלאה עם הצליל: uiwait (msgbox ('לפני תחילת הבדיקה, נרצה לבצע בדיקת שמע כדי לוודא את עוצמת הקול שלך) נכון! מוכן? ',' המתן! ',' עזרה '));
גל סינוס מושמע עם משרעת של 1 וקצב הדגימה של 1000 הרץ: T = [0: 1/SampleRate: 2]; y = 1*sin (2*pi*200*T); צליל (y, SampleRate);
לאחר מכן המשתמש נשאל שאלה עם תשובת המשתמש שהוזנה: Q = input ('האם אתה יכול לשמוע את הצליל? [Y/n] n', 's');
לאחר מכן יש זמן לחפש מתי Q == 'n', אם נכון אז הצליל חוזר ושאל את המשתמש שוב עד שהתשובה השתנתה מ- 'n' ל- 'y': בעוד Q == 'n' if strcmp (Q, 'n') disp ('הגביר את עוצמת הקול של המחשב שלך.'); sound_sound; הפסקה (2); Q = קלט ('האם אתה יכול לשמוע את הצליל עכשיו? [Y/n] n', 's'); סוף סוף
לאחר מכן יש רגע של המתנה לפני העברת חלק הבדיקה בפועל של הקוד.
שלב 3: בצע את בדיקת האודיומטריה לאוזן ימין
בקוד זה, לולאה תרוץ במשך 6 איטרציות עם תדרים ונפחים משתנים לכל אוזן בודדת. בהתאם לאוזן שברצונך לבדוק, למשתנה Out יהיה צליל בשורה אחת ואפס בשני.
ראשית אתה יוצר שני וקטורי קו ריקים כדי להקליט את התדרים ואת משרעת הצליל שהמשתמש שומע.
חלק זה נמצא בלולאה לאינדקס עבור צלילים רבים שתרצו לנגן אם ברצונכם לבצע אקראיות של התדרים המושמעים והמשרעת.
F הוא התדירות: r = (rand*10000); Fs = 250 + r; (הפונקציה rand היא ליצור תדר שנוצר באופן אקראי) t הוא פרק זמן מסוים שהתקדם לקבוע על ידי: t = linspace (0, Fs*2, Fs*2); s הוא גל הסינוס: s = sin (2*pi*t*1000); (ניתן להכפיל זאת במשתנה האקראי w כדי ליצור ערך משרעת אקראי/dB לפונקציית הצליל: w = rand;)
הפלט לאוזן הימנית הוא: Out = [אפסים (גודל (t)); s] ';
הפלט מושמע באמצעות הקוד: צליל (Out, Fs)
השלב הבא הוא ליצור ממשק משתמש עם רשומות הקוד בין אם המשתמש שמע את הצליל או לא.
ראשית אתה יוצר דמות וקובע את המיקום בו תופיע הדמות: gcbf = figure ('pos', [30 800 350 150]);
*** אם הכפתור אינו מופיע עבורך, המיקום של הדמות, כפי שמוצג במערך למעלה, עשוי להיות ממוקם לא נכון עבור המחשב שלך. כדי לפתור זאת, שנה את ערכי 30 ו -800 למיקום הרצוי לך. לדוגמה, אם יש לך [0 0 350 150] יוליד את לחצן הגוי בפינה השמאלית התחתונה של הצג. ***
כפתור לחיצה מתבצע להקלטה כאשר המשתמש שומע את הצליל, וניתן להתאים אישית את המיקום והתצוגה: tb = uicontrol ('Style', 'togglebutton', 'String', 'לחץ על הכפתור כשאתה שומע צליל', ' tag ',' togglebutton1 ',' Position ', [30 60 300 40],' Callback ',' uiresume (gcbf); freq_right = [freq_right, F]; amp_right = [amp_right, w]; close (gcbf); '); הקוד הספציפי הזה כולל את קורות החיים מחדש והווקטורים הריקים מוסיפים ערך אם לוחצים על הכפתור.
לאחר מכן צור פונקציית המתנה כדי לקבל את תגובת הכפתור ולהפעיל את הקוד בכפתור בלחיצה: h = randi ([4, 7]); uiwait (gcbf, h); (עשינו את המשתנה האקראי h כך שהמשתתפים לא יכלו לרמות ולקבוע את מספר השניות הדרושות להגיב).
לאחר סיום הלולאה, שמור על משתנה פלט התדר (freq_right) ב- Hz, אז עזוב את זה לבד. לאחר מכן המר את המשתנה dB_right מאמפר לדציבלים באמצעות המשוואה: dB_right = mag2db (amp_right)*(-1);
לאחר מכן הוסף את הפונקציה: סגור הכל. זה ייצא מכל נתון מיותר שעלול לצוץ.
הוסף פונקציית הפסקה, כ -10 שניות, על מנת לתת למשתמש זמן להתאים ולהתכונן לאוזן השמאלית.
שלב 4: צור אותו קוד לאוזן השמאלית
חזור על הקוד המשמש לאוזן הימנית כדי ליצור את הקטע הבא הבודק את האוזן השמאלית. ההבדל היחיד הוא לשנות מאיזה ערוץ פלט יצליח הצליל. לשם כך, הפוך את סדר ערכי המערך עבור המשתנה Out. זה אמור להיראות כך:
החוצה = [s; אפסים (גודל (t))] ';
על ידי כך, שום צליל לא ייצא מהערוץ הימני אלא מהערוץ השמאלי במקום זאת!
שלב 5: צור איור זה לצד זה להשוואת הנתונים
עכשיו ערוך גרף להצגת הנתונים! אתה מכניס שני גרפים לדמות אחת אז עשה זאת!
איור (1); עלילת משנה (1, 2, 1); *** חלקת משנה (1, 2, 2) עבור השנייה
עבור כל חלקת משנה, הוסף תיקונים אלה עם צבעים וקואורדינטות ספציפיים. חלקים אלה מנותקים מהגרף בהתאם לגודל מידת אובדן השמיעה. ככה:
תיקון ([250 8000 8000 250], [25 25 -10 -10], [1.00, 0.89, 0.29]); % yellowhold on % חלקת המשנה תחזיק כעת את התיקונים והפיזורים הבאים
טקסט (3173, 8, 'רגיל');
תיקון ([250 8000 8000 250], [40 40 25 25], [0 0.75 0.25]); % ירוק
טקסט (3577, 33, 'קל');
תיקון ([250 8000 8000 250], [55 55 40 40], [0.16, 0.87, 0.87]); % טורקיז
טקסט (2870, 48, 'מתון');
תיקון ([250 8000 8000 250], [70 70 55 55], [0.22, 0.36, 0.94]); % כחול
טקסט (1739, 62, 'בינוני חמור');
תיקון ([250 8000 8000 250], [90 90 70 70], [0.78, 0.24, 0.78]); % סגול
טקסט (3142, 80, 'חמור');
תיקון ([250 8000 8000 250], [120 120 90 90], [0.96, 0.24, 0.24]); % אדום
טקסט (3200, 103, 'עמוק')
לאחר מכן הוסיפו את חלקות הפיזור השמאליות והימניות! אנו יכולים לספק לך ממוצע לאומי כללי! פה:
Nat_FreqL = [250 500 1000 2000 4000 8000]; ערך x %, אוזן שמאל Nat_dBL = [10 3 10 15 10 15]; ערך y %
Nat_FreqR = [250 500 1000 2000 4000 8000]; % אוזן ימנית
Nat_dBR = [10 5 10 15 10 15];
עלילות הפיזור צריכות להבחין בנקודות שמאל וימין. אתה יכול לעשות הצלבות ומעגלים!
NL = פיזור (Nat_FreqL, Nat_dBL, 'bx'); % מתווה נקודות צלב כחולות N = פיזור (Nat_FreqR, Nat_dBR, 'ro'); % משרטט עיגולים אדומים
צור מקרא עבור הגרף הלאומי על ידי הקצאתו למשתנים ספציפיים: מקרא ([NL NR], {'title1', 'title2'});
הגדר את מגבלת ה- x שלך מ- 250 ל- 8000 הרץ ואת מגבלת y שלך מ -10 עד 120 dB. זכור לשנות את הקרציות האנכיות שלך באמצעות yticks ()
סמן את ציר ה- x שלך "תדר Hz" ואת ציר ה- y שלך "Pitch dB".
הפוך את ציר y על ידי איסוף הציר עם ax = gca
לאחר מכן נקשר אליו את המאפיין של כיוון y עם: ax. YDir = 'reverse
כעת הקוד לשני הוא בערך אותו דבר אך ללא האגדה וגרף את נקודות הפיזור עם המשתנים מהבדיקות השמאליות והימניות.
אחרי כל זה, הוסף פונקציית הפסקה למשך כ -10 שניות, כך שהמשתמש יוכל להסתכל על התוצאות שלו.
שלב 6: הוסף הודעת תודה קטנה אם תרצה
זה רק בשביל הכיף אם תרצה אבל הוסף עוד imread (), imshow () ו- uiwait (msgbox ()) על תודה ותגובה! מלבד זאת, זכור לשים clf; סגור הכל; clc; על מנת לסגור הכל. עבודה טובה עשית את זה!
מוּמלָץ:
כיצד לבצע פעמון דלת ללא מגע, זיהוי טמפרטורת הגוף, GY-906, 433MHz באמצעות Arduino: 3 שלבים
כיצד להכין פעמון דלת ללא מגע, זיהוי טמפרטורת הגוף, GY-906, 433MHz באמצעות Arduino: היום נכין פעמון ללא מגע, הוא יזהה את טמפרטורת הגוף שלך. במצב הנוכחי, חשוב מאוד לדעת אם טמפרטורת הגוף של מישהו גבוהה מהרגיל, כאשר מישהו צוחק. פרויקט זה יראה אור אדום אם יזהה
כיצד לבצע שיחות באמצעות Arduino - CoolPhone 1/2: 5 שלבים
כיצד לבצע שיחות באמצעות Arduino - CoolPhone 1/2: Nokia n97 - זה היה כנראה הטלפון הנייד הראשון שלי. השתמשתי בה להאזנה למוסיקה ולפעמים לצילום תמונות, אך בעיקר לביצוע שיחות. החלטתי ליצור טלפון משלי שישמש רק לביצוע וקבלת שיחות. זה יהיה אינט
חדר פגום שמיעה פגום שמיעה: 7 שלבים (עם תמונות)
חדר פגום שמיעה פגום שמיעה: בעיה: אבא שלי רשום כחרש ואמא שלי לקויה בשמיעה ובגלל זה הם מתקשים לעתים קרובות לשמוע את פעמון הדלת. זו יכולה להיות בעיה של רבים אחרים. הם קנו פעמון דלת מהבהב שיעזור להם
כיצד לבצע שיחות ESP מרובות באמצעות ESP-NOW באמצעות ESP32 ו- ESP8266: 8 שלבים
כיצד לבצע שיחות ESP מרובות באמצעות ESP-NOW באמצעות ESP32 ו- ESP8266: בפרויקט המתמשך שלי, אני צריך מספר ESP כדי לדבר ביניהם ללא נתב. לשם כך אשתמש ב- ESP-NOW כדי ליצור תקשורת אלחוטית זה עם זה ללא נתב ב- ESP
הודעה על פעמון דלת לקויי שמיעה באמצעות אוטומציה ביתית (ESP-now, MQTT, Openhab): 3 שלבים
הודעה על פעמון דלת לקויי שמיעה באמצעות אוטומציה ביתית (ESP-now, MQTT, Openhab): במדריך זה אני מראה לך כיצד שילבתי את פעמון הדלת הרגיל שלי באוטומציה הביתית שלי. פתרון זה מתאים היטב לאנשים לקויי שמיעה. במקרה שלי אני משתמש בו כדי לקבל הודעה אם החדר עמוס ורועש במסיבת יום הולדת של הילדים. אני