صوت در متلب مشاهده در قالب PDF چاپ فرستادن به ایمیل
نوشته شده توسط admin   
چهارشنبه, 15 تیر 1390 ساعت 08:29

در متلب توابعی وجود دارند که به منظور کار با صوت طراحی شده اند.در این مقاله طرز کار این توابع را با هم مرور می کنیم.

 

beep:

ساده ترین دستور تولید صدا در متلب دستور beep است که همانطوری که از اسمش پیداست یک صدای بیپ تولید می کند.این صدا برای اجرا به هنگام تولید پیامهای اخطار در برنامه هایتان می تواند مفید باشد.می توان حالت بیپ کامپیوتر را فعال و غیر فعال کرد.به این صورت:

beep on

beep off

 

اگر حالت بیپ کامپیوتر غیر فعال باشد دیگر دستور beep تولید صدا نخواهد کرد.

 

 

wavrecord:

این تابع پس از فراخوانی،از یک دستگاه ورودی صدا مثلا میکروفون در زمان مشخصی تحت فرکانس تعیین شده ای صدا را ضبط می کند.توجه داشته باشید که برای ضبط صدا باید سیستم در حال ضبط باشد.برای این منظور volume control را باز کنید.در ویندوز xp به این آدرس بروید:

 

Start/All Programs/Accessories/Entertainment/Volume control

 

از منوی Options گزینه ی Properties را انتخاب کنید.Mixer Device را در یک حالت Input قرار داده و دکمه ی رادیویی Recording را انتخاب کنید.

ساختار تابع به این صورت است:

data=wavrecord(n,fs);

این تابع تعداد n نمونه از یک سیگنال صوتی را تحت فرکانس fs هرتز ضبط می کند و آن را در متغیر data ذخیره می کند.مقدار پیش فرض fsبرابر 11025هرتز است.حال به تناسب زیر توجه کنید:

1sec à fs Hz

t sec à t*fs Hz

همانطور که گفته شد تابع wavrecord تعداد n فرکانس را ضبط می کند.بنابراین اگر بخواهیم t ثانیه صدا ضبط کنیم باید t*fs فرکانس را ضبط کنیم.یعنی تابع را تحت این ساختار فراخوانی کنیم:

data=wavrecord(t*fs,fs);

wavwrite:

حال باید صدای ضبط شده را در یک فایل صوتی ذخیره کنیم.برای این منظور از تابع wavwrite استفاده می شود.این تابع ماتریس حاوی صدای ضبط شده را در یک فایل با پسوند .wav ذخیره می کند.فایل تولید شده قابل پخش در کلیه ی برنامه های پخش صداست.

wavwrite(data,fs,'filename');

به متغیر fs در ساختار تابع توجه کنید.مقدار متغیر fs در ساختار تابع wavwrite باید با مقدار متغیر fs در ساختار تابع wavrecord برابر باشد.در واقع باید صدا را با همان فرکانسی که ضبط کرده ایم در فایل ذخیره کنیم.در غیر این صورت صدا زیر یا بم می شود.

wavread:

این تابع یک فایل صوتی با پسوند .wav را می خواند و آن را در متغیر data و فرکانسش را در متغیر fs ذخیره می کند.

[data fs]=wavread('filename');

wavplay:

این تابع ماتریس حاوی صوت را تحت فرکانس مشخصی پخش می کند.

wavplay(data,fs);

sound:

طرز کار این تابع مشابه wavplay است.

sound(data,fs);

باز هم یادآور می شوم که برای پخش صدا باید فرکانس پخش با فرکانس ضبط برابر باشد.

  • hosein
    انتظار بیشتری داشتم
    مثلا پردازش صدا و تبدیل فوریه گرفتن از آن
    بررسی صوت از دید فرکانس و ...
  • علی  - تشکر
    واقعا ممنونم خیلی مطالب خوبی بود دمت گرم
  • ناشناس
    سلام میخوام چند تا کلمه را ضبط کنم بعد،از انها عبارت با معنی بسازم لطفا راهنمایی کنید.
  • ناشناس  - re:
    hosein نوشت:
    انتظار بیشتری داشتم
    مثلا پردازش صدا و تبدیل فوریه گرفتن از آن
    بررسی صوت از دید فرکانس و ...
  • ناشناس
    سلام.راهنمایتون واقعا مفید بود.مرسسییییییییییییییییی :P
  • فرهاد
    مطلب خوبیه ...خیلی ممنون!!
    ولی من یخورده با hosein موافقم،انتظار داشتم مواردی تخصصی تر به خصوص مدولاسیون و دمدولاسیون هم مطرح میشد!!!
    بازم ممنون ولی بیصبرانه منتظر تکمیل شدن این مطلب عالی هستم!!;)
  • admin
    اگه مایل باشید شما هم می توانید در تکمیل مجموعه با ما همکاری کنید
نوشتن نظر
Your Contact Details:
نظر:
[b] [i] [u] [url] [quote] [code] [img]   
:D:):(:0:shock::confused:8):lol::x:P:oops::cry:
:evil::twisted::roll::wink::!::?::idea::arrow:
Security
کد آنتی اسپم نمایش داده شده در عکس را وارد کنید.