Mündəricat:
- Addım 1: İstifadəçinin Yaşını Təhlil etmək üçün İstifadəçi Girişi yaradın
- Addım 2: Səsləri İstifadəçi üçün yoxlayın
- Addım 3: Sağ Qulaq üçün Audiometriya Testi edin
- Addım 4: Sol Qulaq üçün Eyni Kod yaradın
- Addım 5: Məlumatları müqayisə etmək üçün Yan-yana Şəkil yaradın
- Addım 6: İstəsəniz Biraz Təşəkkür Mesajı əlavə edin
Video: MATLAB istifadə edərək böyüklər üçün eşitmə testini necə etmək olar: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
DİQQƏT: Testimiz tibbi diaqnostika DEYİL və bu kimi istifadə edilməməlidir. Eşitməni dəqiq ölçmək üçün bir həkimə müraciət edin.
Əlimizdə olan materiallardan istifadə edərək qrupumuz eşitmə testi etdi. Testimiz böyüklər və yeniyetmələr üçün nəzərdə tutulmuşdur, çünki kiçik uşaqların eşitmə qabiliyyəti müxtəlif diapazonlarda olur və yalnız bir mütəxəssis tərəfindən ölçülməlidir.
Bu layihə BME MATLAB sinifimizdə işləyərkən və sinus dalğalarının yaratdığı səslərlə oynayarkən ilham aldı. Sinus dalğasının fərqli meydançalarda səs çıxarmaq üçün necə dəyişdirilə biləcəyi ilə maraqlandıq.
Bu layihə üçün bizə MATLAB R2018b işləyən bir kompüter və bir cüt qulaqlıq lazım idi. Proqramı daha yumorlu etmək üçün maskot olaraq orijinal bir personaj Frances'i daxil etdik.
Addım 1: İstifadəçinin Yaşını Təhlil etmək üçün İstifadəçi Girişi yaradın
Bu kodun birinci hissəsi, eşitmə testinə davam edəcək yaşda olub -olmadıqlarına qərar verən bir istifadəçi girişi etməkdir. Niyə maskotumuz Francesin axmaq şəkillərini əlavə edərək bunu etməyəsən? Bunu etmək üçün daxil olan zip faylını yükləyin və sonra koda çəkilə biləcək bir fayla çıxarın. Bunu istifadə edərək rəsmlərlə dolu faylı toplu yükləməyə davam edin:
Dir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings'; GetDir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings \*. Jpg';
Mesaj qutularını və rəsmlərin böyük şəkillərini təqdim etmək üçün Frances'i sizə göstərmək üçün bu əyləncəli üsuldan istifadə etdik. Sadəcə formatla seçdiyiniz bir şəkli oxuyun: dəyişən = imread ('nameofpicture.jpg');
Sonra imshow (dəyişən) istifadə edərək göstərməyə davam edin; çalıştırdığınızda MatLab -da bir rəqəm olaraq görünəcək!
Sonrakı kod boyunca istifadə olunan mesaj qutularıdır. uiwait (), kodun uiwait üçün seçilmiş funksiya bitənə qədər dayandırıldığı bir funksiyadır. Bu seçilmiş funksiya msgbox ('mesaj', 'başlıq', 'simge')!
Yuxarıdakı msgbox () formatına riayət etdiyiniz müddətcə Francesin söylədiyi mesajları dəyişdirməkdən çekinmeyin. Frances şəkillərindən istifadə etmək istəyirsinizsə, 'simvolu' xüsusi 'olaraq qeyd edin və seçdiyiniz şəklin imreadinin dəyişicisi ilə vergüllə davam edin! Əvvəlcədən təyin edilmiş 'simge' növlərindən də istifadə edə bilərsiniz. belə görünməlidir:
salam = imread ('Regular.jpg'); % şəkli uploadedimshow faylından oxuyur (salam); uiwait (msgbox ('Salam və eşitmə testimizi seçdiyiniz üçün təşəkkür edirik! Bu Francesdir və bu gün testinizdə sizə kömək edəcək!', 'Xoş gəldiniz!', 'xüsusi', salam));
Sonra istifadəçinin yaşını belə soruşan bir giriş yaradın!
UserAge = input ('Bu testə başlamazdan əvvəl neçə yaşınız var? (Məsələn, 32, 56,…) n', 's');
Qeyd: rəqəmlər qəribədirsə və çoxdursa, kodunuz işləyərkən əvvəlki rəqəmləri silmək üçün hamısını bağlayın
Sonra bir keçid qutusu quruluşu yaradın! İstifadəçi girişinin simli olduğunu unutmayın və bunu ədədi dəyərə çevirməlisiniz. Buna görə str2double (UserAge) istifadə edin. Hər bir halda 4 ilə 6 və ya 18 ilə 40 arasında bir yaş aralığına sahib olmaq lazımdır. Vəziyyətlərdən birinin doğru olduğunu təsdiqləyən dəyişənin olması üçün num2cell (massiv) kimi istifadə edin:
keçid str2double (UserAge) % dəyişən bir sətirdən sayısal dəyər halına çevrilir num2cell (0: 3)
fransalar = imread ('Yumurta.jpg');
imshow (Fransa);
uiwait (msgbox ('Sən bir dölüsən! Frances düşünür ki, eşitmə testini həkimlə əvəz etməlisən!', 'Test Rədd edildi!', 'xüsusi', fransa));
qayıt
İstifadəçinin kodu davam etdirməməsi üçün əvvəlki qruplar geri qaytarılmalıdır.
Dava quruluşunu bitirməyi və bütün rəqəmləri bağlamağı unutmayın.
Addım 2: Səsləri İstifadəçi üçün yoxlayın
Bu seqment, iştirakçının cihazındakı səsin nə çox sakit, nə də çox yüksək olmasını təmin etmək üçün mövcuddur.
İstifadəçiyə bəzi xəbərdarlıqlar vermək üçün bir mesaj qutusu açılır və səslə davam etməzdən əvvəl istifadəçidən təsdiqini gözləyir: uiwait (msgbox ('Test başlamazdan əvvəl səs səviyyənizi yoxlamaq üçün bir səs testi etmək istərdik. düzdü! Hazırmı? ',' Dayan! ',' kömək '));
Sinus dalğası 1 amplituda və 1000 Hz nümunə sürəti ilə çalınır: T = [0: 1/SampleRate: 2]; y = 1*günah (2*pi*200*T); səs (y, SampleRate);
İstifadəçiyə daha sonra istifadəçi tərəfindən verilən bir cavab verilir: Q = giriş ('Səsi eşidə bilirsinizmi? [Y/n] n', 's');
Q == 'n', doğru olarsa, səs təkrarlanır və cavab 'n' dən 'y' ə dəyişənə qədər istifadəçidən yenidən soruşur: Q == 'n' isə strcmp (Q, 'n') disp ('Kompüterinizin səsini artırın.'); gözləmə_səsi; fasilə (2); Q = giriş ('Səsi indi eşidirsən? [Y/n] n', 's'); sonu son
Kodun həqiqi imtahan hissəsinə keçməzdən əvvəl gözləmə anı var.
Addım 3: Sağ Qulaq üçün Audiometriya Testi edin
Bu kodda, hər bir qulaq üçün fərqli tezliklərdə və həcmlərdə 6 təkrarlama üçün bir döngə işləyəcək. Test etmək istədiyiniz qulaqdan asılı olaraq, Out dəyişəninin bir cərgədə səsi, digərində isə sıfırlar olacaq.
Əvvəlcə istifadəçinin eşitdiyi səs tezliklərini və amplitüdünü qeyd etmək üçün iki boş xətt vektoru düzəldin.
Bu hissə, ifa olunan tezlikləri və amplitudu təsadüfi etmək istəsəniz oynamaq istədiyiniz bir çox səs üçün loop üçün indekslənmişdir.
F tezlikdir: r = (rand*10000); Fs = 250 + r; (rand funksiyası təsadüfi olaraq yaradılan bir tezlik yaratmaqdır) t müəyyən edilmiş müddətdir: t = linspace (0, Fs*2, Fs*2); s sinus dalğasıdır: s = sin (2*pi*t*1000); (bu səs funksiyası üçün təsadüfi bir amplituda/dB dəyəri yaratmaq üçün təsadüfi dəyişən w ilə vurula bilər: w = rand;)
Sağ qulağın çıxışı: Out = [sıfır (ölçüsü (t)); s] ';
Çıxışlar kod vasitəsilə çalınır: səs (Çıxış, Fs)
Növbəti addım, istifadəçinin səsi eşidib eşitməməsini kod qeydləri ilə birlikdə istifadəçi interfeysi etməkdir.
Əvvəlcə bir rəqəm düzəldin və rəqəmin görünəcəyi mövqeyi təyin edin: gcbf = rəqəm ('pos', [30 800 350 150]);
*** Düymə sizin üçün görünmürsə, rəqəmin mövqeyi, yuxarıdakı serialda göstərildiyi kimi, kompüteriniz üçün səhv yerləşdirilə bilər. Bunu həll etmək üçün 30 və 800 dəyərlərini istədiyiniz mövqeyə dəyişdirin. Məsələn, [0 0 350 150] sahib olmaq monitorun sol alt hissəsindəki gui düyməsini açacaq. ***
İstifadəçi səsi eşidəndə qeyd etmək üçün bir keçid düyməsi hazırlanır və mövqe və ekran fərdiləşdirilə bilər: tb = uicontrol ('Style', 'togglebutton', 'String', 'Bir səs eşitdiyiniz zaman düyməni basın', ' tag ',' togglebutton1 ',' Mövqe ', [30 60 300 40],' Geri Çağırış ',' uiresume (gcbf); freq_right = [freq_right, F]; amp_right = [amp_right, w]; yaxın (gcbf); '); Bu xüsusi kodun kod davamı var və düyməyə basıldığı təqdirdə boş vektorlar bir dəyər əlavə edir.
Sonra düyməni cavablandırmaq üçün gözləmə funksiyası yaradın və düyməyə basıldıqda kodu aktivləşdirin: h = randi ([4, 7]); uiwait (gcbf, h); (h təsadüfi dəyişənini etdik, beləliklə iştirakçılar aldadıb cavab vermək üçün lazım olan saniyə sayını təyin edə bilmədilər.)
Döngü bitdikdən sonra, tezlik çıxışı dəyişənini (freq_right) Hz olaraq saxlayın, buna görə də onu tək buraxın. Sonra dB_right dəyişənini ampsdən desibelə bərabərlikdən istifadə edərək çevirin: dB_right = mag2db (amp_right)*(-1);
Sonra funksiyanı əlavə edin: hamısını bağlayın. bu ortaya çıxmış ola biləcək lazımsız rəqəmlərdən çıxacaq.
İstifadəçinin sol qulağa uyğunlaşması və hazırlaşması üçün vaxt vermək üçün təxminən 10 saniyəlik fasilə funksiyası əlavə edin.
Addım 4: Sol Qulaq üçün Eyni Kod yaradın
Sol qulağı sınayan növbəti seqmenti etmək üçün sağ qulağın kodunu təkrarlayın. Yeganə fərq, səsin hansı çıxış kanalından çıxacağını dəyişdirməkdir. Bunu etmək üçün, Out dəyişəninin sıra dəyərlərinin sırasını çevirin. Bu belə görünməlidir:
Çıxış = [s; sıfır (ölçüsü (t))] ';
Bunu etməklə, sağ kanaldan başqa sol kanaldan heç bir səs çıxmayacaq!
Addım 5: Məlumatları müqayisə etmək üçün Yan-yana Şəkil yaradın
İndi məlumatları göstərmək üçün bir qrafik qurun! Bir qrafikə iki qrafik qoyursunuz, bunu edin!
rəqəm (1); alt plan (1, 2, 1); *** digəri üçün alt plan (1, 2, 2)
Hər bir alt sahə üçün bu rəngləri xüsusi koordinatlarla əlavə edin. Bu hissələr eşitmə itkisinin nə qədər böyük olduğuna görə qrafikdən kənarlaşdırılır. Eynilə:
yamaq ([250 8000 8000 250], [25 25 -10 -10], [1.00, 0.89, 0.29]); Sarı sarğı Alt sahə indi aşağıdakı yamaları və səpələnmə nöqtələrini saxlayacaq
mətn (3173, 8, 'Normal');
yamaq ([250 8000 8000 250], [40 40 25 25], [0 0.75 0.25]); % yaşıl
mətn (3577, 33, 'Yüngül');
yamaq ([250 8000 8000 250], [55 55 40 40], [0.16, 0.87, 0.87]); % mavi
mətn (2870, 48, 'Orta');
yamaq ([250 8000 8000 250], [70 70 55 55], [0.22, 0.36, 0.94]); % mavi
mətn (1739, 62, 'Orta dərəcədə Ağır');
yamaq ([250 8000 8000 250], [90 90 70 70], [0.78, 0.24, 0.78]); % bənövşəyi
mətn (3142, 80, 'Şiddətli');
yamaq ([250 8000 8000 250], [120 120 90 90], [0.96, 0.24, 0.24]); % qırmızı
mətn (3200, 103, 'Dərin')
Sonra sol və sağ səpələnmə sahələrini əlavə edin! Sizin üçün ümumi bir milli ortalamanı təmin edə bilərik! Burada:
Nat_FreqL = [250 500 1000 2000 4000 8000]; % x-dəyəri, sol earNat_dBL = [10 3 10 15 10 15]; % y dəyəri
Nat_FreqR = [250 500 1000 2000 4000 8000]; % sağ qulaq
Nat_dBR = [10 5 10 15 10 15];
Səpələnmə planları sol və sağ nöqtələri ayırd etməlidir. Xaçlar və dairələr edə bilərsiniz!
NL = səpələnmə (Nat_FreqL, Nat_dBL, 'bx'); % çarpaz mavi nöqtələrNR = səpələnmə (Nat_FreqR, Nat_dBR, 'ro'); % qırmızı dairələr qurur
Xüsusi dəyişənlərə təyin edərək milli qrafik üçün bir əfsanə yaradın: əfsanə ([NL NR], {'title1', 'title2'});
X limitinizi 250 ilə 8000 Hz arasında və y limitinizi -10 ilə 120 dB arasında təyin edin. Şaquli gənələrinizi yticks () ilə dəyişdirməyi unutmayın
X oxunuzu "Frekans Hz" və y oxunuzu "Pitch dB" olaraq etiketləyin.
Ax = gca ilə oxu toplayaraq y oxunu tərsinə çevirin
Sonra y istiqamətinin xüsusiyyətini ona bağlayın: ax. YDir = 'tərs
İndi ikincinin kodu təxminən eynidir, ancaq əfsanə olmadan və səpələnmə nöqtələrini sol və sağdakı dəyişənlərlə qrafikləşdirmək.
Bütün bunlardan sonra istifadəçinin nəticələrinə baxa bilməsi üçün təxminən 10 saniyə fasilə funksiyası əlavə edin.
Addım 6: İstəsəniz Biraz Təşəkkür Mesajı əlavə edin
İstəyirsinizsə, ancaq təşəkkür və vida üçün başqa bir imread (), imshow () və uiwait (msgbox ()) əlavə etmək istəsəniz bu əyləncə üçündür! Bundan başqa clf qoymağı unutmayın; hamısını bağlamaq; clc; hər şeyi bağlamaq üçün. Yaxşı iş gördün!
Tövsiyə:
DHT11 Sensorunu Arduino istifadə edərək necə istifadə etmək olar: 5 addım
DHT11 Sensorunu Arduino istifadə edərək necə istifadə etmək olar: Bu dərslikdə DHT11 sensorunu Arduino istifadə edərək sınayacağıq.DHT11 temperatur və rütubəti ölçmək üçün istifadə edilə bilər. Lazım olan komponentlər: Arduino NanoDHT11 Temperatur və Nəmlik Sensoru USB Mini Jumper kabelləri Lazımi Kitabxana: DHT Kitabxanası
Visuino LED kimi şeyləri idarə etmək üçün bir düyməni necə istifadə etmək olar: 6 addım
Visuino LED kimi şeyləri idarə etmək üçün bir düyməni necə istifadə etməli: Bu təlimatda sadə bir düymə və Visuino istifadə edərək LED -i AÇMA və SÖKMƏNİ öyrənəcəyik
SplatPost Yazıcısını İstifadə edərək Splatoon 2 -də Şəkil Çap etmək üçün Yeniyetmədən Necə İstifadə Edilir: 10 addım
SplatPost Yazıcısını İstifadə edərək Splatoon 2 -də Şəkil Çap etmək üçün Yeniyetmədən Necə İstifadə Edilir: Bu Təlimat kitabında, ShinyQuagsire tərəfindən SplatPost Yazıcısının necə istifadə olunacağını göstərəcəyəm. Açıq təlimatlar olmasa, komanda xətti ilə təcrübəsi olmayan birinin bir az problemi olardı. Məqsədim, aşağıya doğru addımları asanlaşdırmaqdır
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar - Mikrokontrolördən istifadə edərək bir Quadcopter hazırlayın: 8 addım (şəkillərlə)
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar | Mikrokontrolördən istifadə edərək Quadcopter hazırlayın: Giriş Youtube Kanalımı Ziyarət Edin Drone almaq üçün çox bahalı bir gadget (məhsul) təşkil edir. Bu yazıda necə ucuz satacağımı müzakirə edəcəyəm? Ucuz qiymətə öz əlinizlə bunu necə edə bilərsiniz … Yaxşı Hindistanda bütün materiallar (mühərriklər, ESClər
Esp8266: 5 addımlarından istifadə edərək cihazları idarə etmək və havanı izləmək üçün bir IoT cihazı necə etmək olar
Esp8266 istifadə edərək cihazları idarə etmək və havanı izləmək üçün bir IoT Cihazı Necə Hazırlanır: Əşyaların İnterneti (IoT) fiziki cihazların ("əlaqəli qurğular" və "ağıllı qurğular" olaraq da adlandırılır), binaların, və elektronika, proqram təminatı, sensorlar, aktuatorlar və