Kazalo:
- 1. korak: Ustvarite uporabniški vnos za analizo starosti uporabnika
- Korak: Preizkusite zvok za uporabnika
- 3. korak: Naredite preizkus avdiometrije za desno uho
- 4. korak: Ustvarite isto kodo za levo uho
- 5. korak: Naredite sliko vzporedno za primerjavo podatkov
- 6. korak: Če želite, dodajte majhno zahvalo
Video: Kako narediti preskus sluha pri odraslih z uporabo MATLAB -a: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
OPOZORILO: Naš test NI medicinska diagnostika in ga kot takega ne bi smeli uporabljati. Za natančno merjenje sluha se obrnite na zdravnika.
Z uporabo materialov, ki smo jih že imeli, je naša skupina izvedla preizkus sluha. Naš test je namenjen odraslim in najstnikom, ker je sluh majhnih otrok v različnih razponih in ga mora meriti le strokovnjak.
Ta projekt je bil navdihnjen med delom v našem razredu BME MATLAB in igranjem z zvoki, ki jih oddajajo sinusni valovi. Zanimali so nas načini spreminjanja sinusnega vala za predvajanje zvoka na različnih višinah.
Za ta projekt smo potrebovali le računalnik z MATLAB R2018b in par ušesnih čepkov. Za maskoto smo vključili izvirnega junaka Frances, da je bil program bolj šaljiv.
1. korak: Ustvarite uporabniški vnos za analizo starosti uporabnika
Prvi del te kode je vnos uporabnika, v katerem se odloči, ali je dovolj star, da nadaljuje z opravljanjem testa sluha. Zakaj tega ne bi storili tudi z dodajanjem neumnih slik naše maskote Frances? Če želite to narediti, prenesite priloženo datoteko zip in jo nato izvlecite v datoteko, ki jo lahko povlečete v kodo. Nadaljujte s paketnim nalaganjem datoteke, polne risb, na naslednji način:
Dir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings'; GetDir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings**. Jpg';
Za predstavitev oken za sporočila in velike slike risb smo uporabili to zabavno metodo, da vam pokažemo Frances. Preprosto preberite sliko po vaši izbiri v obliki: variable = imread ('nameofpicture.jpg');
Nato nadaljujte s prikazovanjem z uporabo imshow (spremenljivka); potem se bo prikazal kot številka v vašem MatLabu, ko ga zaženete!
Sledijo polja za sporočila, ki se uporabljajo v celotni kodi. uiwait () je funkcija, pri kateri se koda ustavi, dokler ni končana funkcija, izbrana za uiwait. Ta izbrana funkcija je msgbox ('sporočilo', 'naslov', 'ikona')!
Sporočila lahko spremenite, če upoštevate zgornjo obliko sporočila msgbox (). Če želite uporabiti slike Frances, označite 'icon' kot 'custom' in nadaljujte z vejico in spremenljivko imread slike, ki ste jo izbrali! Uporabite lahko tudi prednastavljene vrste ikon. bi morala izgledati takole:
hi = imread ('Regular.jpg'); % bere sliko iz datoteke uploadedimshow (zdravo); uiwait (msgbox ('Pozdravljeni in hvala, ker ste izbrali naš test sluha! To je Frances in on vam bo danes pomagal pri vašem testu!', 'Dobrodošli!', 'po meri', zdravo));
Nato ustvarite vnos, ki tako vpraša starost uporabnika!
UserAge = input ('Koliko smo stari (leta) pred začetkom tega testa (npr. 32, 56, …) n', 's');
OPOMBA: če so številke čudne in jih je preveč, uporabite zaprite vse, da odstranite prejšnje številke, ko se koda izvaja
Nato ustvarite strukturo stikalne omarice! Ne pozabite, da je uporabniški vnos v nizu in ga morate pretvoriti v številčno vrednost. Zato uporabite str2double (UserAge). Vsak primer bi moral imeti razpon starosti, na primer od 4 do 6 ali od 18 do 40 let, da bi spremenljivko preverili kot resnično za enega od primerov uporabite num2cell (matriko) tako:
switch str2double (UserAge) % spremeni spremenljivko iz niza v številsko vrednost num2cell (0: 3)
frances = imread ('Egg.jpg');
imshow (Francija);
uiway
vrnitev
Starejše skupine je treba vrniti, da se uporabniku prepreči nadaljevanje kode.
Ne pozabite zaključiti strukture ohišja in zapreti vse številke.
Korak: Preizkusite zvok za uporabnika
Ta segment obstaja zato, da zagotovi, da zvok udeleženca na njihovi napravi ni niti pretiho niti preglasno.
Če želite uporabnika opozoriti, se prikaže okno s sporočilom, ki čaka na potrditev od uporabnika, preden nadaljuje z zvokom: uiwait (msgbox ('Pred začetkom preskusa bi radi izvedli zvočni preizkus, da se prepričate o glasnosti je prav! Pripravljen? ',' Počakaj! ',' pomoč '));
Predvaja se sinusni val z amplitudo 1 in frekvenco vzorčenja 1000 Hz: T = [0: 1/SampleRate: 2]; y = 1*sin (2*pi*200*T); zvok (y, SampleRate);
Uporabniku se nato postavi vprašanje z odgovorom, ki ga vnese uporabnik: Q = vnos ('Ali slišite zvok? [Y/n] n', 's');
Potem je treba nekaj časa iskati, kdaj je Q == 'n', če je res, se zvok ponovi in uporabnika znova vpraša, dokler se odgovor ne spremeni iz 'n' v 'y': medtem ko je Q == 'n', če strcmp (Q, 'n') disp ('Povečajte glasnost računalnika.'); wait_sound; premor (2); Q = vhod ('Ali lahko zdaj slišite zvok? [Y/n] n', 's'); konec konec
Nato traja trenutek čakanja, preden nadaljujete z dejanskim pregledom kode.
3. korak: Naredite preizkus avdiometrije za desno uho
V tej kodi bo zanka potekala 6 ponovitev z različnimi frekvencami in glasnostjo za vsako posamezno uho. Odvisno od ušesa, ki ga želite preizkusiti, bo imela spremenljivka Out v eni vrstici zvok, v drugi pa ničle.
Najprej naredite dva vektorja praznih vrstic za snemanje frekvenc in amplitude zvoka, ki jih uporabnik sliši.
Ta del je v indeksirani zanki za toliko zvokov, ki jih želite predvajati, če želite naključno predvajati frekvence in amplitudo.
F je frekvenca: r = (rand*10000); Fs = 250 + r; (funkcija rand je ustvariti naključno generirano frekvenco) t je določen čas, ki je napredoval, določen z: t = linspace (0, Fs*2, Fs*2); s je sinusni val: s = sin (2*pi*t*1000); (to lahko pomnožite z naključno spremenljivko w, da ustvarite naključno vrednost amplitude/dB za zvočno funkcijo: w = rand;)
Izhod za desno uho je: Out = [ničle (velikost (t)); s] ';
Izhodi se predvajajo s kodo: zvok (Out, Fs)
Naslednji korak je, da uporabniški vmesnik vključi zapise kode, ali je uporabnik slišal zvok ali ne.
Najprej naredite sliko in določite položaj, v katerem se bo slika prikazala: gcbf = figure ('pos', [30 800 350 150]);
*** Če se gumb ne prikaže za vas, je lahko položaj figure, kot prikazuje zgornja matrika, napačno nameščen za vaš računalnik. Če želite to rešiti, spremenite vrednosti 30 in 800 v poljuben položaj, ki ga želite. Na primer, če imate [0 0 350 150], se bo pojavil gumb gui v spodnjem levem kotu zaslona. ***
Gumb za snemanje, ko uporabnik sliši zvok, položaj in prikaz pa lahko prilagodite: tb = uicontrol ('Style', 'togglebutton', 'String', 'Pritisnite gumb, ko zaslišite zvok', ' tag ',' togglebutton1 ',' Position ', [30 60 300 40],' Callback ',' uiresume (gcbf); freq_right = [freq_right, F]; amp_right = [amp_right, w]; close (gcbf); '); Ta koda ima nadaljevanje kode in prazni vektorji dodajo vrednost, če pritisnete gumb.
Nato ustvarite funkcijo čakanja, da sprejmete odziv gumba in aktivirate kodo v gumbu, ko pritisnete: h = randi ([4, 7]); uiwait (gcbf, h); (naredili smo naključno spremenljivko h, tako da udeleženci niso mogli goljufati in določiti, koliko sekund je potrebno za odgovor.)
Po končani zanki ohranite frekvenčno izhodno spremenljivko (freq_right) v Hz, zato jo pustite pri miru. Nato spremenite spremenljivko dB_right iz ojačevalnikov v decibele z uporabo enačbe: dB_right = mag2db (amp_right)*(-1);
Nato dodajte funkcijo: zaprite vse. to bo izničilo vse nepotrebne številke, ki so se morda pojavile.
Dodajte funkcijo premora, približno 10 sekund, da se uporabniku da čas, da se prilagodi in pripravi na levo uho.
4. korak: Ustvarite isto kodo za levo uho
Ponovite kodo za desno uho, da naredite naslednji segment, ki preizkusi levo uho. Razlika je le v tem, iz katerega izhodnega kanala bo prihajal zvok. Če želite to narediti, obrnite vrstni red vrednosti matrike za spremenljivko Out. To bi moralo izgledati tako:
Out = [s; ničle (velikost (t))] ';
S tem iz desnega kanala ne bo prišel zvok, ampak levi kanal!
5. korak: Naredite sliko vzporedno za primerjavo podatkov
Zdaj naredite graf za prikaz podatkov! Dva grafikona vstavite v eno številko, zato to storite!
slika (1); podris (1, 2, 1); *** podplat (1, 2, 2) za drugega
Za vsako pod ploskev dodajte te popravke z določenimi barvami in koordinatami. Ti odseki grafikona so odvisni od tega, kako velika je stopnja izgube sluha. Takole:
obliž ([250 8000 8000 250], [25 25 -10 -10], [1,00, 0,89, 0,29]); % yellowhold on % Podnapis bo zdaj vseboval naslednje popravke in razpršene ploskve
besedilo (3173, 8, 'Običajno');
obliž ([250 8000 8000 250], [40 40 25 25], [0 0,75 0,25]); % zelena
besedilo (3577, 33, 'Blago');
obliž ([250 8000 8000 250], [55 55 40 40], [0,16, 0,87, 0,87]); % cijan
besedilo (2870, 48, 'Zmerno');
obliž ([250 8000 8000 250], [70 70 55 55], [0,22, 0,36, 0,94]); % modra
besedilo (1739, 62, 'Zmerno hudo');
obliž ([250 8000 8000 250], [90 90 70 70], [0,78, 0,24, 0,78]); % vijolična
besedilo (3142, 80, 'Hudo');
obliž ([250 8000 8000 250], [120 120 90 90], [0,96, 0,24, 0,24]); % rdeča
besedilo (3200, 103, 'globoko')
Nato dodajte levo in desno razpršeno ploskev! Za vas lahko zagotovimo splošno državno povprečje! Tukaj:
Nat_FreqL = [250 500 1000 2000 4000 8000]; % x-vrednost, levo uhoNat_dBL = [10 3 10 15 10 15]; % y-vrednost
Nat_FreqR = [250 500 1000 2000 4000 8000]; % desno uho
Nat_dBR = [10 5 10 15 10 15];
Razpršene ploskve morajo razlikovati levo in desno točko. Lahko bi naredili križe in kroge!
NL = razpršitev (Nat_FreqL, Nat_dBL, 'bx'); % nariše modre križne točkeNR = razpršenost (Nat_FreqR, Nat_dBR, 'ro'); % nariše rdeče kroge
Ustvarite legendo za nacionalni graf tako, da ga dodelite posebnim spremenljivkam: legend ([NL NR], {'title1', 'title2'});
Omejitev x nastavite od 250 do 8000 Hz in omejitev y od -10 do 120 dB. Ne pozabite spremeniti navpičnih kljukic z oznakami ()
Os x označite kot "Frekvenca Hz", os y pa "Nagib dB".
Obrnite os y tako, da os zberete ax = gca
Nato z njo povežite lastnost smeri y z: ax. YDir = 'reverse
Zdaj je koda za drugo približno enaka, vendar brez legende in grafičnega prikaza razpršil s spremenljivkami iz levega in desnega testa.
Po vsem tem dodajte funkcijo premora za približno 10 sekund, da si lahko uporabnik ogleda rezultate.
6. korak: Če želite, dodajte majhno zahvalo
To je samo za zabavo, če želite, a za zahvalo in slovo dodajte še en imread (), imshow () in uiwait (msgbox ())! Razen tega ne pozabite postaviti clf; zaprite vse; clc; da bi vse zaprl. Dobro opravljeno!
Priporočena:
Preskus zmogljivosti ponaredka 18650: 7 korakov (s slikami)
Preizkus zmogljivosti ponaredka 18650: V tem navodilu poiščimo zmogljivost ponaredka napajalne baterije 10400 mAh. Prej sem to banko porabil za izdelavo lastne banke, ker sem jo kupil za 2 USD. Za ogled videoposnetka za ta projekt - in ne pozabite naročite se na moj kanal, zato g
Prenos podatkov NBIoT Kako uporabljati ščite na osnovi modema BC95G - preskus UDP in signalizacija stanja omrežja: 4 koraki
Prenos podatkov NBIoT Kako uporabljati ščite, ki temeljijo na modemu BC95G - UDP test in signalizacija stanja omrežja: O teh projektih: Preizkusite zmogljivosti omrežja NB IoT in prenos surovih podatkov UDP s pomočjo xyz -mIoT s pomočjo ščita itbrainpower.net, opremljenega z modemom Quectel BC95G. Potreben čas: 10-15 minut. Težava: vmesna. Opomba: potrebne so sposobnosti spajkanja
Obvestilo o zvonjenju pri vratih za osebe z okvaro sluha prek avtomatizacije doma (ESP-zdaj, MQTT, Openhab): 3 koraki
Obvestilo o vratnem zvoncu za slušno prizadete prek avtomatizacije doma (ESP-zdaj, MQTT, Openhab): V tem navodilu vam pokažem, kako sem svoj običajni zvonec za vrata vključil v domačo avtomatizacijo. Ta rešitev je zelo primerna za osebe z okvaro sluha.V mojem primeru jo uporabljam za obveščanje, če je soba zasedena in hrupna na rojstnodnevni zabavi otrok. JAZ
Preskus slike za barvo in jasnost: 8 korakov
Preizkus slike za barvo in jasnost: Ta priročnik sem naredil zame; za izboljšanje svojih Instructables pa nameravam deliti, kar sem našel. Opazil sem, da so nekatere slike, ki jih naložim v Instructabes, popolne, druge slike pa so jasne, rahlo razbarvane ali zamegljene. Ne vem
Coilgun SGP33 - Navodila za popolno montažo in preskus: 12 korakov
Coilgun SGP33 - Navodila za popolno montažo in preskus: Ta vadnica opisuje, kako sestaviti elektroniko tuljave, prikazano v tem videoposnetku: Sestava SGP -33 Youtube Na zadnji strani te vadnice je tudi videoposnetek, v katerem jo vidite v akciji. Tukaj je povezava. PCB -ji za to predstavitev so