ዝርዝር ሁኔታ:

MATLAB ን በመጠቀም የአዋቂዎችን የመስማት ሙከራ እንዴት ማድረግ እንደሚቻል - 6 ደረጃዎች
MATLAB ን በመጠቀም የአዋቂዎችን የመስማት ሙከራ እንዴት ማድረግ እንደሚቻል - 6 ደረጃዎች

ቪዲዮ: MATLAB ን በመጠቀም የአዋቂዎችን የመስማት ሙከራ እንዴት ማድረግ እንደሚቻል - 6 ደረጃዎች

ቪዲዮ: MATLAB ን በመጠቀም የአዋቂዎችን የመስማት ሙከራ እንዴት ማድረግ እንደሚቻል - 6 ደረጃዎች
ቪዲዮ: How to Open/Export MATLAB/Simulink file in previous version to an older version 2024, ሀምሌ
Anonim
MATLAB ን በመጠቀም የአዋቂዎችን የመስማት ሙከራ እንዴት ማድረግ እንደሚቻል
MATLAB ን በመጠቀም የአዋቂዎችን የመስማት ሙከራ እንዴት ማድረግ እንደሚቻል

ማስተባበያ - የእኛ ምርመራ የሕክምና ምርመራ አይደለም እና እንደዚያ ጥቅም ላይ መዋል የለበትም። የመስማት ችሎታን በትክክል ለመለካት ፣ እባክዎን የህክምና ባለሙያ ይመልከቱ።

ቀደም ሲል የነበሩትን ቁሳቁሶች በመጠቀም ቡድናችን የመስማት ችሎታ ምርመራ አድርጓል። የእኛ ፈተና ለአዋቂዎች እና ለታዳጊዎች የሚውል ነው ምክንያቱም የልጆች የመስማት ችሎታ በተለያዩ ክልሎች ስለሚመጣ እና በባለሙያ ብቻ መመዘን አለበት።

ይህ ፕሮጀክት በእኛ BME MATLAB ክፍል ውስጥ ሲሠራ እና በሲን ሞገዶች በተሠሩ ድምፆች ሲጫወት ተመስጦ ነበር። በተለያዩ ቦታዎች ላይ ድምፅን ለማጫወት የኃጢአት ሞገድ ሊቀየር በሚችልባቸው መንገዶች ላይ ፍላጎት ነበረን።

ለዚህ ፕሮጀክት የሚያስፈልገን ነገር ቢኖር MATLAB R2018b ን የሚያሄድ ኮምፒተር እና የጆሮ ማዳመጫዎች ጥንድ ነበር። ፕሮግራሙን የበለጠ አስቂኝ ለማድረግ የመጀመሪያውን ገጸ -ባህሪ ፍራንቼስን እንደ ማኮስ አካትተናል።

ደረጃ 1 የተጠቃሚውን ዕድሜ ለመተንተን የተጠቃሚ ግብዓት ይፍጠሩ

የተጠቃሚውን ዕድሜ ለመተንተን የተጠቃሚ ግብዓት ይፍጠሩ
የተጠቃሚውን ዕድሜ ለመተንተን የተጠቃሚ ግብዓት ይፍጠሩ
የተጠቃሚውን ዕድሜ ለመተንተን የተጠቃሚ ግብዓት ይፍጠሩ
የተጠቃሚውን ዕድሜ ለመተንተን የተጠቃሚ ግብዓት ይፍጠሩ

የዚህ ኮድ የመጀመሪያው ክፍል የመስማት ችሎታ ፈተናውን ለመቀጠል በቂ ዕድሜ ያላቸው መሆናቸውን የሚወስን የተጠቃሚ ግብዓት ማድረግ ነው። የእኛን ማኮስ ፣ ፍራንቼስ እንዲሁ በሞኝነት ስዕሎች ውስጥ በማከል ለምን አያደርጉትም? ይህንን ለማድረግ የተካተተውን የዚፕ ፋይል ያውርዱ እና ከዚያ ወደ ኮዱ ውስጥ ሊጎትት ወደሚችል ፋይል ያውጡት። ይህንን በመጠቀም በስዕሎች የተሞላውን ፋይል ለመስቀል ወደ ቡድን ይቀጥሉ ፦

Dir = 'C: / ተጠቃሚዎች / phoeb / OneDrive / ሰነዶች / MATLAB / Frances Drawings'; GetDir = 'C: / Users / phoeb / OneDrive / Documents / MATLAB / Frances Drawings \*. Jpg';

የመልዕክት ሳጥኖቹን እና የስዕሎቹን ትላልቅ ምስሎች ለማቅረብ ፣ ፍራንቼስን ለእርስዎ ለማሳየት ይህንን አስደሳች ዘዴ ተጠቀምን። በቀላሉ የመረጡት ምስል ከቅርጸቱ ጋር ያርሙ - ተለዋዋጭ = imread ('nameofpicture.jpg');

ከዚያ imshow (ተለዋዋጭ) በመጠቀም እሱን ለማሳየት ይቀጥሉ ፣ ሲያካሂዱት በማትላብዎ ውስጥ እንደ ምስል ሆኖ ይታያል!

ቀጥሎ በኮዱ ውስጥ ጥቅም ላይ የሚውሉ የመልእክት ሳጥኖች ናቸው። uiwait () ለ uiwait የተመረጠው ፍንዳታ እስኪያልቅ ድረስ ኮዱ የሚቆምበት ተግባር ነው። ይህ የተመረጠው ተግባር msgbox ('መልእክት' ፣ 'ርዕስ' ፣ 'አዶ') ነው!

ከላይ የ msgbox () ቅርጸት እስከተከተሉ ድረስ ፍራንሲስ የሚናገራቸውን መልእክቶች ለመለወጥ ነፃነት ሊሰማዎት ይችላል። የፍራንቼስ ሥዕሎችን ለመጠቀም ከፈለጉ ‹አዶ› ን እንደ ‹ብጁ› ብለው ምልክት ያድርጉ እና ያንን በነጠላ ሰረዝ እና በመረጡት ስዕል ኢምፔየር ተለዋዋጭ ይቀጥሉ! እንዲሁም የቅድመ -ቅምጥ ‹አዶ› ዓይነቶችን እንዲሁ መጠቀም ይችላሉ። እንደዚህ ሊመስል ይገባል

ሠላም = imread ('Regular.jpg'); % ምስሉን ከፋይል uploadimshow (ሠላም) ያነባል ፤ uiwait (msgbox ('ጤና ይስጥልኝ እና የመስማት ችሎታችንን በመምረጥዎ እናመሰግናለን! ይህ ፍራንሲስ ነው እና ዛሬ በፈተናዎ ይረዳዎታል!' ፣ 'እንኳን ደህና መጡ!' ፣ 'ብጁ' ፣ ሰላም));

በመቀጠል የተጠቃሚውን ዕድሜ እንደዚያ የሚጠይቅ ግብዓት ይፍጠሩ!

UserAge = ግብዓት ('ይህን ፈተና ከመጀመራችን በፊት ስንት ዓመት (ዓመታት) ነዎት? (ለምሳሌ 32 ፣ 56 ፣ …) n' ፣ 's') ፤

ማሳሰቢያ: አኃዞቹ እንግዳ ከሆኑ እና በጣም ብዙ ከሆኑ ኮድዎ በሚሠራበት ጊዜ ቀደም ሲል የነበሩትን ቁጥሮች ለማስወገድ ሁሉንም ይዝጉ ይጠቀሙ

ከዚያ የመቀየሪያ መያዣ መዋቅር ይፍጠሩ! ያስታውሱ የተጠቃሚ ግቤት በሕብረቁምፊ ውስጥ መሆኑን እና ያንን ወደ የቁጥር እሴት መለወጥ ያስፈልግዎታል። ስለዚህ str2double (UserAge) ይጠቀሙ። ለእያንዳንዱ ጉዳይ እንደ 4 እስከ 6 ወይም ከ 18 እስከ 40 ድረስ ያሉ የዕድሜ ክልል ሊኖረው ይገባል። አንደኛው ጉዳይ እንደ እውነት የሚያረጋግጠው ተለዋዋጭ ቁጥር 2 ቁጥርን (ድርድር) ይጠቀሙ -

str2double (UserAge) ይቀይሩ % ከአንድ ሕብረቁምፊ ወደ የቁጥር እሴት መያዣ ቁጥር 2 (0: 3) ተለዋዋጭ ይለውጣል

ፍራንሲስ = imread ('Egg.jpg');

imshow (ፍራንሲስ);

uiwait (msgbox ('እርስዎ ፅንስ ነዎት! ፍራንሲስ የመስማት ችሎታዎን በምትኩ ከሐኪም ጋር ማድረግ አለብዎት ብለው ያስባሉ!' ፣ 'ፈተና ተከልክሏል!' ፣ 'ብጁ' ፣ ፍራንሲስ));

መመለስ

ተጠቃሚው ኮዱን እንዳይቀጥል ለመከላከል ቀደም ሲል የነበሩ ቡድኖች መመለስ አለባቸው።

የጉዳዩን አወቃቀር መጨረስ እና ሁሉንም አሃዞች መዝጋት ያስታውሱ።

ደረጃ 2 - ለተጠቃሚው ኦዲዮውን ይፈትሹ

ለተጠቃሚው ኦዲዮውን ይፈትሹ
ለተጠቃሚው ኦዲዮውን ይፈትሹ

በመሣሪያቸው ላይ የተሳታፊው ድምጽ በጣም ጸጥ ያለ ወይም በጣም ጮክ ያለ አለመሆኑን ለማረጋገጥ ይህ ክፍል አለ።

ድምፁን ወደ ፊት ከመቀጠልዎ በፊት ለተጠቃሚው አንዳንድ ማስጠንቀቂያ ለመስጠት የመልዕክት ሳጥን ብቅ ይላል እና ከተጠቃሚው ማረጋገጫ ይጠብቃል - uiwait (msgbox ('ፈተናው ከመጀመሩ በፊት ፣ የድምጽ መጠንዎን ለማረጋገጥ የድምጽ ሙከራ ማድረግ እንወዳለን) ትክክል ነው! ዝግጁ? '፣' ቆይ! '፣' እገዛ '));

የሲን ሞገድ በ 1 ስፋት እና የ 1000 Hz ናሙና መጠን - T = [0: 1/SampleRate: 2] ይጫወታል። y = 1*ኃጢአት (2*pi*200*T); ድምጽ (y ፣ SampleRate);

ከዚያ ተጠቃሚው በተገፋበት ምላሽ ጥያቄ ይጠየቃል Q = ግብዓት ('ድምፁን መስማት ይችላሉ? [Y/n] n', 's');

ከዚያ Q == 'n' ሲፈልግ ትንሽ ጊዜ ይፈልጉ ፣ እውነት ከሆነ ድምፁ ይደጋግማል እና መልሱ ከ ‹n› ወደ ‹y› እስኪቀየር ድረስ ጥያቄውን ሲጠይቅ Q == ‘n’ strcmp ከሆነ (ጥ ፣ 'n') ዲስክ ('የኮምፒተርዎን ድምጽ ከፍ ባለ ድምፅ ይለውጡ') ፤ የጥበቃ_ድምፅ; ለአፍታ አቁም (2); ጥ = ግብዓት ('ድምፁን አሁን መስማት ይችላሉ? [Y/n] n', 's'); መጨረሻ መጨረሻ

ከዚያ ወደ ኮዱ ትክክለኛ የምርመራ ክፍል ከመሸጋገሩ በፊት ትንሽ ጊዜ ይጠብቃል።

ደረጃ 3 - የቀኝ ጆሮውን የኦዲዮሜትሪ ሙከራ ያድርጉ

ለትክክለኛው ጆሮ የኦዲዮሜትሪ ሙከራ ያድርጉ
ለትክክለኛው ጆሮ የኦዲዮሜትሪ ሙከራ ያድርጉ

በዚህ ኮድ ውስጥ አንድ ዙር ለ 6 ድግግሞሽ በተለያዩ ድግግሞሽ እና ለእያንዳንዱ ግለሰብ ጆሮዎች ይሠራል። ለመሞከር በሚፈልጉት ጆሮ ላይ በመመስረት ፣ የውጪው ተለዋዋጭ ድምጽ በአንድ ረድፍ እና በሌላ ዜሮ ዜሮ ይኖረዋል።

ተጠቃሚው የሚሰማውን የድምፅ ድግግሞሽ እና ስፋት ለማስመዝገብ በመጀመሪያ ሁለት ባዶ የመስመር ቬክተሮችን ይሠራሉ።

የተጫወቱትን ድግግሞሽ እና መጠነ -ሰፊውን በዘፈቀደ ለማዛወር ከፈለጉ ለመጫወት የሚፈልጉት ብዙ ድምፆች ይህ ክፍል ለሉፕ በመረጃ ጠቋሚ ውስጥ ነው።

F ድግግሞሽ ነው r = (ራንድ*10000); Fs = 250 + r; (ራንድ ተግባር በዘፈቀደ የመነጨ ድግግሞሽ መፍጠር ነው) t የተወሰነ የጊዜ ሂደት ነው የሚወሰነው በ t = linspace (0 ፣ Fs*2 ፣ Fs*2) ፤ s ሳይን ሞገድ ነው: s = ኃጢአት (2*pi*t*1000); (ለድምጽ ተግባሩ የዘፈቀደ ስፋት/ዲቢ እሴት ለመፍጠር ይህ በዘፈቀደ ተለዋዋጭ w ሊባዛ ይችላል w = rand;)

ለትክክለኛው ጆሮ የሚወጣው ውጤት - ውጭ = [ዜሮዎች (መጠን (t)); ዎች] ';

ውጤቶቹ በኮዱ በኩል ይጫወታሉ -ድምጽ (ውጭ ፣ ኤፍኤስ)

ቀጣዩ ደረጃ ተጠቃሚው ድምፁን ሰምቶ አልሰማም ከኮድ መዛግብት ጋር የተጠቃሚ በይነገጽ ማድረግ ነው።

በመጀመሪያ አሃዝ ሠርተው አኃዙ የሚታየበትን ቦታ ይወስናሉ- gcbf = ምስል ('ፖስ' ፣ [30 800 350 150]);

*** አዝራሩ ለእርስዎ ካልታየ ፣ የስዕሉ አቀማመጥ ፣ ከላይ ባለው ድርድር እንደሚታየው ፣ ለኮምፒዩተርዎ በስህተት ሊቀመጥ ይችላል። ይህንን ለመፍታት 30 እና 800 እሴቶችን ወደፈለጉት ቦታ ይለውጡ። ለምሳሌ ፣ [0 0 350 150] መኖሩ በማያ ገጹ ታችኛው ክፍል በግራ በኩል ያለውን የጊአይ ቁልፍን ያፈራል። ***

ተጠቃሚው ድምፁን ሲሰማ ቶግሌብቶተን እንዲመዘገብ ይደረጋል ፣ እና ቦታው እና ማሳያው ሊበጅ ይችላል- tb = uicontrol ('Style' ፣ 'togglebutton' ፣ 'String' ፣ 'a sound you hear the button')። መለያ ',' togglebutton1 ',' Position ', [30 60 300 40],' Callback ',' uiresume (gcbf); freq_right = [freq_right, F]; amp_right = [amp_right, w]; ዝጋ (gcbf); '); ይህ ልዩ ኮድ ኮዱን ከቆመበት ቀጥሏል እና ባዶው ቬክተሮች አዝራሩ ከተጫነ ዋጋን ይጨምራሉ።

ከዚያ የአዝራሩን ምላሽ ለመቀበል የመጠባበቂያ ተግባርን ይፍጠሩ እና ሲጫኑ በአዝራሩ ውስጥ ኮዱን ለማግበር h = randi ([4, 7]); uiwait (gcbf ፣ h); (እኛ የዘፈቀደ ተለዋዋጭ ሸን አድርገናል ስለዚህ ተሳታፊዎች ማጭበርበር እና ምላሽ ለመስጠት የሚያስፈልጉትን የሰከንዶች ብዛት መወሰን አይችሉም።)

ምልልሱ ከተጠናቀቀ በኋላ የተደጋጋሚነት ውፅዓት ተለዋዋጭ (freq_right) በ Hz ውስጥ ያስቀምጡ ስለዚህ ብቻውን ይተዉት። ከዚያ ቀመርን በመጠቀም የ dB_right ተለዋዋጭውን ከአምፕ ወደ ዴሲቤል ይለውጡ- dB_right = mag2db (amp_right)*(-1);

ከዚያ ተግባሩን ያክሉ -ሁሉንም ይዝጉ። ይህ ብቅ ካሉ ከማንኛውም አላስፈላጊ አሃዞች ይወጣል።

ለተጠቃሚው ለማስተካከል እና ለግራ ጆሮ ለመዘጋጀት ጊዜ ለመስጠት ፣ ለአፍታ ሰከንዶች ያህል ለአፍታ ቆም ያለ ተግባር ያክሉ።

ደረጃ 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'); % ያሴራል ሰማያዊ መስቀለኛ ነጥቦች NR = መበተን (Nat_FreqR ፣ Nat_dBR ፣ 'ro'); % ያሴራል ቀይ ክበቦች

ለተለዋዋጭ ተለዋዋጮች በመመደብ ለብሔራዊው ግራፍ አፈ ታሪክ ያዘጋጁ - አፈ ታሪክ ([NL NR] ፣ {'title1' ፣ 'title2'});

የእርስዎን x ገደብ ከ 250 እስከ 8000 Hz እና የ y ገደብዎን ከ -10 እስከ 120 ዴባ ያዘጋጁ። ቀጥታ መዥገሮችዎን በ yticks () መለወጥዎን ያስታውሱ

የ x ዘንግዎን “ድግግሞሽ Hz” እና የ y ዘንግዎን “Pitch dB” ብለው ይሰይሙ።

ዘንግን በመጥረቢያ = gca በመሰብሰብ የ y ዘንግን ይቀለብሱ

ከዚያ የ y አቅጣጫውን ንብረት በ: ax. YDir = 'revers

አሁን ለሁለተኛው ኮዱ ተመሳሳይ ነው ግን ያለ አፈታሪክ እና ከግራ እና ከቀኝ ሙከራዎች በተለዋዋጭዎች የተበታተኑትን ግራፎች።

ከዚህ ሁሉ በኋላ ተጠቃሚው ውጤቶቻቸውን እንዲመለከት ለ 10 ሰከንዶች ያህል ለአፍታ ማቆም ተግባር ያክሉ።

ደረጃ 6 - ከፈለጉ ትንሽ የምስጋና መልእክት ያክሉ

ከፈለጉ ትንሽ የምስጋና መልእክት ያክሉ!
ከፈለጉ ትንሽ የምስጋና መልእክት ያክሉ!

ለምስጋና እና ለመሰናበት ከፈለጉ ይህ ለመዝናኛ ብቻ ነው () ፣ imshow () እና uiwait (msgbox ()) ይጨምሩ! ከዚህ ውጭ ፣ clf ን ማስቀመጥዎን ያስታውሱ። ሁሉንም ይዝጉ; clc; ሁሉንም ነገር ለመዝጋት። ጥሩ ሥራ ነው ያደረከው!

የሚመከር: