20-4 ���T�����s

§Ú­Ì¦b²Ä¤@¸`¤w¸g»¡©ú¤F¦p¦óŪ¨ú­µ°TÀɮסA¨Ã¦b²Ä¤G¸`»¡©ú¦p¦ó¼½©ñ­µ°T¡CMATLAB ¤]¤ä´©ª½±µ¥Ñ³Á§J­·Åª¨ú°T¸¹¡A¦]¦¹¥i¥Hª½±µ¶i¦æÁn­µªº¿ý»s¡A©Ò¨Ï¥Îªº«ü¥O¬O audiorecord ©M recordblocking¡A½Ð¨£¤U¦C°ò¥»½d¨Ò¡G

Example 1: 20-­µ°TŪ¼g¡B¿ý»s»P¼½©ñ/audioRecord01.mduration=3; % ¿ý­µ®É¶¡ recObj=audiorecorder; fprintf('«ö¥ô·NÁä«á¶}©l %g ¬í¿ý­µ¡G', duration); pause fprintf('¿ý­µ¤¤...'); recordblocking(recObj, duration); fprintf('¿ý­µµ²§ô\n'); fprintf('«ö¥ô·NÁä«á¶}©l¼½©ñ¡G'); pause play(recObj);«ö¥ô·NÁä«á¶}©l 3 ¬í¿ý­µ¡G¿ý­µ¤¤...¿ý­µµ²§ô «ö¥ô·NÁä«á¶}©l¼½©ñ¡G

¦b¤W­z½d¨Ò¤¤¡A§Ú­Ì¥ý¨Ï¥Î audiorecorder ¨Ó²£¥Í¿ý­µª«¥ó recObj¡AµM«á¦A¨Ï¥Î recordblocking «ü¥O¨Ó¶i¦æ¤T¬íªº¿ý­µ¡C¡]½Ðª½±µ°õ¦æ¤W­z½d¨Ò«á¡A¤~¬Ý±o¥X¾ãÅ骺¬yµ{¡C¡^

¥Ñ©ó¦b¤W¨Ò¤¤¡A§Ú­Ì¦b¨Ï¥Î audiorecorder ®É¡A¨Ã¥¼«ü©w¥ô¦ó°Ñ¼Æ¡A©Ò¥H¿ý­µµ{¦¡·|¥H¤U¦C¹w³]°Ñ¼Æ¨Ó¶i¦æ¿ý­µ¡G¨ú¼ËÀW²v¬° 8000 Hz¡A¨ú¼ËÂI¸ÑªR«×¬° 8 bits¡A³æÁn¹D¿ý­µ¡C

­Y­n¨Ï¥Î¤£¦Pªº°Ñ¼Æ¨Ó¶i¦æ¿ý­µ¡A§Ú­Ì¥i¥H±N³o¨Ç°Ñ¼Æ°e¨ì audiorecorder «ü¥O¡A½d¨Ò¦p¤U¡G

Example 2: 20-­µ°TŪ¼g¡B¿ý»s»P¼½©ñ/audioRecord02.mfs=16000; % ¨ú¼ËÀW²v nBits=16; % ¨ú¼ËÂI¸ÑªR«×¡A¥²¶·¬O 8 ©Î 16 ©Î 24 nChannel=1; % Án¹D­Ó¼Æ¡A¥²¶·¬O 1¡]³æÁn¹D¡^ ©Î 2¡]ÂùÁn¹D©Î¥ßÅé­µ¡^ duration=3; % ¿ý­µ®É¶¡¡]¬í¡^ recObj=audiorecorder(fs, nBits, nChannel); fprintf('«ö¥ô·NÁä«á¶}©l %g ¬í¿ý­µ¡G', duration); pause fprintf('¿ý­µ¤¤...'); recordblocking(recObj, duration); fprintf('¿ý­µµ²§ô\n'); fprintf('«ö¥ô·NÁä«á¶}©l¼½©ñ¡G'); pause play(recObj); y = getaudiodata(recObj, 'double'); % get data as a double array plot((1:length(y))/fs, y); xlabel('Time (sec)'); ylabel('Amplitude');«ö¥ô·NÁä«á¶}©l 3 ¬í¿ý­µ¡G¿ý­µ¤¤...¿ý­µµ²§ô «ö¥ô·NÁä«á¶}©l¼½©ñ¡G

¦b¤W¨Ò¤¤¡A¦³¨â­Ó­«ÂI¡G


MATLABµ{¦¡³]­p¡G¤Jªù½g