Satura rādītājs:
- 1. darbība: izveidojiet lietotāja ievadi, lai analizētu lietotāja vecumu
- 2. darbība: pārbaudiet lietotāja audio
- 3. solis: veiciet labās auss audiometrijas pārbaudi
- 4. darbība: izveidojiet to pašu kodu kreisajai ausij
- 5. darbība: izveidojiet blakus attēlu, lai salīdzinātu datus
- 6. darbība. Ja vēlaties, pievienojiet nelielu pateicības ziņojumu
Video: Kā veikt pieaugušo dzirdes pārbaudi, izmantojot MATLAB: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
ATRUNA: Mūsu tests NAV medicīniska diagnostika, un to nevajadzētu izmantot kā tādu. Lai precīzi izmērītu dzirdi, lūdzu, apmeklējiet medicīnas speciālistu.
Izmantojot materiālus, kas mums jau bija, mūsu grupa veica dzirdes pārbaudi. Mūsu tests ir paredzēts lietošanai pieaugušajiem un pusaudžiem tikai tāpēc, ka mazu bērnu dzirde ir dažādos diapazonos, un to vajadzētu izmērīt tikai profesionālim.
Šis projekts tika iedvesmots, strādājot mūsu BME MATLAB klasē un spēlējoties ar sinusa viļņu radītajām skaņām. Mūs interesēja veidi, kā sinusa vilni var mainīt, lai atskaņotu skaņu dažādos laukumos.
Šim projektam mums vajadzēja tikai datoru, kurā darbojas MATLAB R2018b, un pāris austiņas. Mēs kā talismanu iekļāvām oriģinālu personāžu Frensisu, lai programma būtu humoristiskāka.
1. darbība: izveidojiet lietotāja ievadi, lai analizētu lietotāja vecumu
Šī koda pirmā daļa ir lietotāja ievadīšana, kurā tiek izlemts, vai viņš ir pietiekami vecs, lai veiktu dzirdes pārbaudi. Kāpēc gan to nedarīt, pievienojot arī muļķīgas mūsu talismana Frensisa bildes? Lai to izdarītu, lejupielādējiet iekļauto zip failu un pēc tam izvelciet to failā, ko var ievilkt kodā. Turpiniet augšupielādēt zīmējumu pilnu failu, izmantojot šo:
Dir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings'; GetDir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings \*. Jpg';
Lai parādītu ziņojumu lodziņus un lielus zīmējumu attēlus, mēs izmantojām šo jautro Francesa parādīšanas metodi. Vienkārši imread attēlu pēc jūsu izvēles ar formātu: variable = imread ('nameofpicture.jpg');
Pēc tam turpiniet to parādīt, izmantojot imshow (mainīgais); tad tas tiks parādīts kā skaitlis jūsu MatLab, kad to palaidīsit!
Tālāk ir ziņojumu lodziņi, kas tiek izmantoti visā kodā. uiwait () ir funkcija, kurā kods tiek apturēts, līdz tiek pabeigta uiwait izvēlētā darbība. Šī izvēlētā funkcija ir msgbox ('ziņojums', 'nosaukums', 'ikona')!
Jūs varat brīvi mainīt Frances teiktos ziņojumus, ja vien sekojat iepriekš norādītajam msgbox () formātam. Ja vēlaties izmantot Frančes attēlus, atzīmējiet “ikonu” kā “pielāgotu” un turpiniet to ar komatu un izvēlētā attēla imread mainīgo! Varat arī izmantot iepriekš iestatītos ikonu veidus. tam vajadzētu izskatīties šādi:
hi = imread ('Regular.jpg'); % nolasa attēlu no augšupielādētā faila šova (hi); uiwait (msgbox ('Labdien un paldies, ka izvēlējāties mūsu dzirdes pārbaudi! Šis ir Frensiss, un viņš šodien jums palīdzēs ar jūsu testu!', 'Laipni lūdzam!', 'pielāgots', čau));
Pēc tam izveidojiet ievadi, kurā tiek jautāts lietotāja vecums!
UserAge = input ('Pirms mēs sākam šo pārbaudi, cik vecs (gadi) jums ir? (Piemēram, 32, 56,…) n', 's');
PIEZĪME: ja skaitļi ir dīvaini un to ir pārāk daudz, izmantojiet aizvērt visus, lai koda izpildes laikā noņemtu iepriekšējos skaitļus
Tad izveidojiet slēdža korpusa struktūru! Atcerieties, ka lietotāja ievade ir virkne, un tā ir jāpārvērš skaitliskā vērtībā. Tāpēc izmantojiet str2double (UserAge). Katram gadījumam ir jābūt vecuma diapazonam, piemēram, no 4 līdz 6 vai no 18 līdz 40. Lai mainīgais būtu pārbaudāms kā patiess vienā no gadījumiem, izmantojiet num2cell (masīvu) šādi:
slēdzis str2double (UserAge) % maina mainīgo no virknes uz skaitlisku vērtību gadījums num2cell (0: 3)
frances = imread ('Ola.jpg');
imshow (frances);
uiwait (msgbox ('Tu esi auglis! Frensisa domā, ka tev vajadzētu veikt dzirdes pārbaudi pie ārsta!', 'Tests noraidīts!', 'pielāgots', francūzija));
atgriezties
Iepriekšējās grupas ir jāatgriež, lai lietotājs nevarētu turpināt izmantot kodu.
Neaizmirstiet pabeigt lietas struktūru un aizvērt visus skaitļus.
2. darbība: pārbaudiet lietotāja audio
Šis segments pastāv, lai nodrošinātu, ka dalībnieka skaņa savā ierīcē nav ne pārāk klusa, ne pārāk skaļa.
Lai brīdinātu lietotāju, tiek parādīts ziņojumu lodziņš un gaidīts apstiprinājums no lietotāja, pirms turpināt skaņu: uiwait (msgbox ('Pirms testa sākuma mēs vēlētos veikt audio pārbaudi, lai pārliecinātos par jūsu skaļumu ir pareizi! Gatavs? ',' Turies! ',' palīdz '));
Tiek atskaņots sinusa vilnis ar amplitūdu 1 un izlases frekvenci 1000 Hz: T = [0: 1/SampleRate: 2]; y = 1*grēks (2*pi*200*T); skaņa (y, SampleRate);
Pēc tam lietotājam tiek uzdots jautājums ar lietotāja ievadītu atbildi: Q = ievade ('Vai dzirdat skaņu? [Y/n] n', 's');
Tad kādu laiku meklējiet, kad Q == 'n', ja tā ir patiesa, skaņa atkārtojas un jautāja lietotājam vēlreiz, līdz atbilde ir mainījusies no 'n' uz 'y': kamēr Q == 'n', ja strcmp (Q, 'n') disp ('Pagrieziet datora skaļumu skaļāk.'); gaidīt_skaņa; pauze (2); Q = ievade ('Vai tagad dzirdat skaņu? [Y/n] n', 's'); beigas beigas
Pēc tam ir jāgaida, pirms pāriet uz koda faktisko pārbaudes daļu.
3. solis: veiciet labās auss audiometrijas pārbaudi
Šajā kodā cilpa darbosies 6 atkārtojumos ar dažādu frekvenci un skaļumu katrai atsevišķai ausij. Atkarībā no auss, kuru vēlaties pārbaudīt, mainīgajam Out būs skaņa vienā rindā un nulle citā.
Vispirms izveidojiet divus tukšus rindu vektorus, lai ierakstītu lietotāja dzirdamās skaņas frekvences un amplitūdu.
Šī daļa ir indeksēta ciklam, lai cik skaņu vēlaties atskaņot, ja vēlaties nejauši atlasīt atskaņotās frekvences un amplitūdu.
F ir biežums: r = (rand*10000); Fs = 250 + r; (rand funkcija ir izveidot nejauši ģenerētu frekvenci) t ir noteikts laika posms, ko nosaka: t = linspace (0, Fs*2, Fs*2); s ir sinusa vilnis: s = sin (2*pi*t*1000); (to var reizināt ar nejaušo mainīgo w, lai skaņas funkcijai izveidotu nejaušu amplitūdas/dB vērtību: w = rand;)
Labās auss izvade ir: Out = [nulles (izmērs (t))); s] ';
Izejas tiek atskaņotas, izmantojot kodu: skaņa (Out, Fs)
Nākamais solis ir izveidot lietotāja saskarni ar koda ierakstiem, vai lietotājs dzirdēja skaņu vai nē.
Vispirms izveidojiet skaitli un nosakiet pozīciju, kurā figūra parādīsies: gcbf = skaitlis ('pos', [30 800 350 150]);
*** Ja poga jums neparādās, skaitļa pozīcija, kā parādīts iepriekš redzamajā masīvā, jūsu datoram var būt novietota nepareizi. Lai to atrisinātu, mainiet 30 un 800 vērtības uz vēlamo pozīciju. Piemēram, ja ir [0 0 350 150], tiks parādīta poga gui monitora apakšējā kreisajā stūrī. ***
Tiek veikta pārslēgšanas poga, lai ierakstītu, kad lietotājs dzird skaņu, un pozīciju un displeju var pielāgot: tb = uicontrol ('Stils', 'pārslēgšanas poga', 'Stīga', 'Nospiediet pogu, kad dzirdat skaņu', ' tag ',' togglebutton1 ',' Position ', [30 60 300 40],' Callback ',' uiresume (gcbf); freq_right = [freq_right, F]; amp_right = [amp_right, w]; close (gcbf); '); Šim konkrētajam kodam ir koda atsākšana, un, nospiežot pogu, tukšie vektori pievieno vērtību.
Pēc tam izveidojiet gaidīšanas funkciju, lai uzņemtu pogas reakciju, un, nospiežot pogu, aktivizējiet kodu: h = randi ([4, 7]); uiwait (gcbf, h); (mēs izdarījām nejaušo mainīgo h, lai dalībnieki nevarētu krāpties un noteiktu, cik sekundes vajadzīgas, lai atbildētu.)
Kad cikls ir pabeigts, saglabājiet frekvences izejas mainīgo (freq_right) Hz, tāpēc atstājiet to mierā. Pēc tam pārveidojiet mainīgo dB_right no ampēriem uz decibeliem, izmantojot vienādojumu: dB_right = mag2db (amp_right)*(-1);
Pēc tam pievienojiet funkciju: aizveriet visu. tas izzudīs no nevajadzīgiem skaitļiem, kas varētu būt parādījušies.
Pievienojiet aptuveni 10 sekunžu pauzes funkciju, lai dotu laiku lietotājam pielāgoties un sagatavoties kreisajai ausij.
4. darbība: izveidojiet to pašu kodu kreisajai ausij
Atkārtojiet labo auss kodu, lai izveidotu nākamo segmentu, kas pārbauda kreiso ausi. Vienīgā atšķirība ir mainīt to, no kura izejas kanāla tiks atskaņota skaņa. Lai to izdarītu, mainiet mainīgā Out masīva vērtību secību. Tam vajadzētu izskatīties šādi:
Ārā = [s; nulles (izmērs (t))]”;
To darot, skaņa nenāks no labā kanāla, bet no kreisā kanāla!
5. darbība: izveidojiet blakus attēlu, lai salīdzinātu datus
Tagad izveidojiet diagrammu, lai parādītu datus! Jūs ievietojat divus grafikus vienā attēlā, tāpēc dariet to!
attēls (1); apakšplāksne (1, 2, 1); *** apakšplāksne (1, 2, 2) otram
Katram apakšplānam pievienojiet šos ielāpus ar noteiktām krāsām un koordinātām. Šīs sadaļas no grafika ir atkarīgas no tā, cik liela ir dzirdes zuduma pakāpe. Tāpat kā:
plāksteris ([250 8000 8000 250], [25 25 -10 -10], [1,00, 0,89, 0,29]); % yellowhold on % Apakšplānā tagad būs šādi ielāpi un izkliedes attēli
teksts (3173, 8, 'Normāls');
plāksteris ([250 8000 8000 250], [40 40 25 25], [0 0,75 0,25]); % zaļš
teksts (3577, 33, 'Viegla');
plāksteris ([250 8000 8000 250], [55 55 40 40], [0,16, 0,87, 0,87]); % Ciāna
teksts (2870, 48, 'Mērens');
plāksteris ([250 8000 8000 250], [70 70 55 55], [0,22, 0,36, 0,94]); % zils
teksts (1739, 62, 'Vidēji smags');
plāksteris ([250 8000 8000 250], [90 90 70 70], [0,78, 0,24, 0,78]); % violets
teksts (3142, 80, 'Smags');
plāksteris ([250 8000 8000 250], [120 120 90 90], [0,96, 0,24, 0,24]); % sarkans
teksts (3200, 103, 'Pamatīgs')
Tad pievienojiet kreiso un labo izkliedes gabalu! Mēs varam jums nodrošināt vispārēju vidējo rādītāju valstī! Šeit:
Nat_FreqL = [250 500 1000 2000 4000 8000]; % x vērtība, kreisā aussNat_dBL = [10 3 10 15 10 15]; % y vērtība
Nat_FreqR = [250 500 1000 2000 4000 8000]; % labā auss
Nat_dBR = [10 5 10 15 10 15];
Izkliedes grafikiem vajadzētu atšķirt kreiso un labo punktu. Jūs varētu darīt krustus un apļus!
NL = izkliede (Nat_FreqL, Nat_dBL, 'bx'); % attēlo zilos krustpunktusNR = izkliede (Nat_FreqR, Nat_dBR, 'ro'); % uzzīmē sarkanos apļus
Izveidojiet leģendu nacionālajam grafikam, piešķirot to konkrētiem mainīgajiem: leģenda ([NL NR], {'title1', 'title2'});
Iestatiet savu x ierobežojumu no 250 līdz 8000 Hz un y ierobežojumu no -10 līdz 120 dB. Neaizmirstiet mainīt vertikālās ērces, izmantojot yticks ()
Iezīmējiet savu x asi “Frequency Hz” un y asi “Pitch dB”.
Apgrieziet y asi, savācot asi ar ax = gca
Pēc tam piesaistiet tam y virziena īpašību ar: ax. YDir = 'reverse
Tagad otrā kods ir aptuveni vienāds, bet bez leģendas un izkliedes diagrammu attēlošanā ar mainīgajiem no kreisās un labās puses testiem.
Pēc tam pievienojiet pauzes funkciju apmēram 10 sekundes, lai lietotājs varētu apskatīt savus rezultātus.
6. darbība. Ja vēlaties, pievienojiet nelielu pateicības ziņojumu
Tas ir tikai izklaidei, ja vēlaties, bet, lai pateiktos un atvadītos, pievienojiet vēl vienu imread (), imshow () un uiwait (msgbox ())! Izņemot to, atcerieties ielikt clf; aizvērt visu; clc; lai visu aizvērtu. Labs darbs, ka tu to izdarīji!
Ieteicams:
LLLT LED sarkanās gaismas terapija ausu troksnim dzirdes zudumā: 4 soļi
LLLT LED sarkanās gaismas terapija ausu troksnim ausīs Dzirdes zudums: Man ir bijis nikns troksnis ausīs (zvana ausīs) tik ilgi, cik atceros. Tātad, nav bijis " ātrs risinājums " tas, šķiet, palīdz to mazināt. Daži cilvēki domā, ka troksnis ausīs var būt reakcija uz antibiotikām, reakcija uz steroīdiem, jutīgums
Kā veikt zvanus, izmantojot Arduino - CoolPhone 1/2: 5 soļi
Kā piezvanīt, izmantojot Arduino - CoolPhone 1/2: Nokia n97 - Tas, iespējams, bija mans pirmais mobilais tālrunis. Es to izmantoju, lai klausītos mūziku un dažreiz fotografētu, bet galvenokārt zvanīšanai. Es nolēmu izveidot savu tālruni, kas tiks izmantots tikai zvanu veikšanai un saņemšanai. Tas būs inte
Dzirdes invalīdu durvju zvana gaismas uzlaušana: 7 soļi (ar attēliem)
Dzirdes invalīdu durvju zvana gaismas uzlaušana: Problēma: mans tētis ir reģistrēts kā kurls un mana mamma ir ar dzirdes traucējumiem, un tāpēc viņiem bieži ir grūti dzirdēt durvju zvanu. Tā varētu būt problēma arī daudziem citiem. Viņi nopirka mirgojošu gaismas durvju zvanu, lai palīdzētu viņiem
Izveidojiet savu BiQuad 4G antenu ar ātruma pārbaudi: 7 soļi (ar attēliem)
Izveidojiet savu BiQuad 4G antenu ar ātruma testu: šajā pamācībā es jums parādīšu, kā es izveidoju BiQuad 4G antenu. Signāla uztveršana manās mājās ir slikta kalnu dēļ manās mājās. Signālu tornis atrodas 4,5 km attālumā no mājas. Kolombo rajonā mans pakalpojumu sniedzējs nodrošina ātrumu 20 Mb / s. bet pie m
Kā veikt bezmaksas tālruņa zvanus, izmantojot Skype.: 4 soļi
Kā veikt bezmaksas tālruņa zvanus, izmantojot Skype.: Es neesmu pārliecināts, kāpēc es to ievietoju, izņemot to, ka es atceros vecos labos laikus, kad tika sastādīta tastatūra un citi laiki pirms tehnoloģiju avārijas 2000. gada sākumā? Kādreiz pasaulē bija foršākā iespēja veikt bezmaksas tālsarunas no jebkura uzņēmuma