دانلود با لینک مستقیم و پر سرعت .
بیش از 90 تا سورس و منابع برنامه های متلب به همراه اسلاید ارایه
مجمعه کامل از برنامه نویسی متلب MATLAB
دستورات مهم در MATLAB
پردازش سیگنالهای گسسته
گزارش شماره 1:
پردازش در حوزه زمان و فرکانس
مجموعه داده: مقدمه
از نمونه سیگنالهای صوتی که در اختیار قرار داده شده نمونه S27انتخاب شد و پس از load کردن در متلب پردازش در حوزه زمان را شروع می کنیم.
فهرست پارامترهای پردازشی در حوزه زمان:
- محاسبه انرژی سیگنال در یک دوره نمونه
- محاسبه انرژی سیگنال در کل سیگنال صوتی(total energy signal)
- محاسبه توان متوسط در یک دوره نمونه
- محاسبه تعدادنقاط برخوردبا محور افقی (برخورد باصفر)
- طراحی NOTCH FILTER
- خود همبستگی(autocorrelation)
شبه کد پیاده سازی الگوریتم مونت کارلو برای الگوریتم عقبگرد مسئل
رسم سیگنال های گسسته
درس سیگنال در این ترم باعث شده که به سراغ MATLAB بروم. گاهی وقت ها سعی می کنم بعضی از نکات ریز و به دردخور مربوط به این نرم افزار رو در این وبلاگ بنویسم. امروز می خوام در مورد رسم سیگنال ها صحبت کنم. در MATLAB همه چیز گسسته است. وقتی می خواهیم یک سیگنال پیوسته رسم کنیم این چیزی جز رسم یک سیگنال گسسته با تعداد نقاط زیاد نیست. فرض کنید بخواهیم سیگنال سینوسی زیر را در یک بازه مشخص رسم کنیم. دستورات زیر سیگنال sin pi*t را در بازه [-pi , pi ] رسم می کنند.
>> t=linspace(-1,1,100)*pi;
>> y=sin(pi*t);
>> plot(t,y);
linspace یک محدوده مقادیر با صد نقطه در همان بازه را برای ما آماده می کند. تابع سینوس مقدار سینوس را در هر نقطه آن بازه پیدا کرده و در نهایت به کمک plot تابع را رسم می کنیم . حاصل چیزی شبیه به شکل سمت راست خواهد بود. ولی برای رسم سیگنال گسسته چه کنیم . یک راه این است که نقاط درون بازه را کم کنیم ( مثلا 20 نقطه ) و بعد دستورات Plot را به صورت زیر بازنویسی کنیم :
>> plot(t,y,'*');
Stem Functionاین دستور باعث می شود که نقاط مورد نظر ما به کمک کاراکتر * نمایش داده شوند . اما مدل بهتری برای رسم سیگنال های گسسته وجود دارد و آن استفاده از تابع stem است.طرز استفاده از این تابع برای رسم سیگنال سینوس به صورت زیر خواهد بود :
>> t=linspace(-1,1,20)*pi;
>> f=sin(pi*t);
>>stem(t,f,'filled'); یا >>stairs(t,f)
نتیجه کار شبیه شکل سمت راست خواهد بود. فراموش نکنید که سومین پارامتر تابع stem حتما به صورت رشته ای با مقدار filled باشد.
الگوریتم مونت کارلو ES
الگوریتم ES یا Exploring starts یکی از روشهای یادگیری تقویتی مونت کارلو است. پیش از ارائه این الگوریتم، لازم است برخی اصطلاحات، تعریف شود:
این الگوریتم از چند گام تشکیل یافته است:
1- اختیار کردن یک سیاست تصادفی
2- انجام دادن یک آزمایش Exploring starts با سیاست جاری
3- تخمین امید ریاضی خروجی با میانگینگیری کلیه خروجیهای بدست آمده از زوجهای (s,a)
4- تغییر سیاست جاری به سیاست جدیدی که در هر حالت عملی را انجام میدهد که در شبیهسازی قبلی، بهترین خروجی را داشته است.
5- تکرار مراحل 2 الی 4.
این سوال مطرح میشود که آزمایش یا تجربه ES (با شروعهای کاوشگر یا Exploring (starts به چه معناست؟ تجربه ES، تجربهای است که در آن عامل، در اپیزودهایی قرار میگیرد که در انتخاب اولین عمل خود مختار نیست. اولین عمل، بصورت تصادفی انتخاب میشود و همه اعمال مجاز در حالت اولیه، شانس یکسانی برای انتخاب شدن دارند.
در این الگوریتم، اگر تجربه ES نبود، با مشکل جدی مواجه میشدیم زیرا بنابر سیاست جاری عامل، که سیاستی قطعی است، در هر حالت، تنها یک عمل شانس انتخاب شدن خواهد داشت و تبعاً تنها، Q همان زوج نیز محاسبه میشود و دیگر انتخاب بهترین زوج اصلاً مفهومی نخواهد داشت. البته اگر سیاست، قطعی نبود با این مشکل مواجه نمیشدیم (الگوریتم e-soft بر این مبنا است که بحث خواهد شد.)
در واقع الگوریتم ES از 2 فاز تشکیل یافته است:
فاز ارزیابی سیاست (Evaluation)
فاز بهبود سیاست (Improvement)
ممکن است این سوال مطرح شود که چه لزومی دارد تغییر سیاست با توجه به ارزیابی انجامشده لزوما باعث بهبود سیاست گردد؟ خوشبختانه این مطلب، اثبات شده است. در اثبات این امر، از قضیه بهبود سیاست استفاده شده است. برای آگاهی از این اثبات میتوانید به بخشهای 4.2 و 5.3 از کتاب یادگیری تقویتی اثر Sutton مراجعه نمایید.
شبهکد الگوریتم ES در ذیل آورده شده است:
در اینجا یک نکته دیگر را یادآور میشویم و آن، اینکه الگوریتمهای مونت کارلو در یادگیری تقویتی از یک دیدگاه به دو دسته ملاقات-اول و ملاقات-همه تقسیم میشوند. (Fist-Visit, Every-Visit). در الگوریتمهای ملاقات-اول، برای تخمین خروجی در یک وضعیت، تنها اولین باری که آن وضعیت در اپیزود اتفاق میافتد، در عمل میانگینگیری شرکت میکند بنابراین در این دسته الگوریتمها، لزوما داشتن تعداد مناسب تجربه اپیزودیک، ضروری است اما در الگوریتمهای ملاقات-همه، کلیه دفعات مشاهده وضعیت، منظور میشود.
تبدیل فوریه گسسته
همانطور که می دانید مهمترین ویژگی در ادای هر حرف فرکانس های تشکیل دهنده آن حرف می باشد. به عنوان مثال سه فرکانس اصلی حرف " آ " فرکانس های 750 ، 1150 و 2400 هرتر بوده و همین فرکانس های برای حرف " او " 400 ، 1150 و 2300 هرتز می باشند. بنابراین آنچه باعث تفکیک دو حرف " آ " و " او " از همدیگر می شود، فرکانس های تشکیل دهنده آن می باشد. از اینرو در کاربردهای پردازش گفتار پیدا کردن فرکانس های تشکیل دهنده یک سیگنال گفتاری از اهیت بسیار زیادی برخوردار می باشد. همانطور که می دانید سیگنال گفتار به شکل یک سیگنال زمانی در اختیار ما قرار دارد و تشخیص فرکانس های تشکیل دهنده یک سیگنال در حوزه زمانی غیرممکن است. به عنوان مثال شکل زیر را که نشان دهنده سیگنال گفتار زمانی حرف " آ " می باشد در نظر بگیرید. بخشی از این سیگنال به شکل زوم شده در شکل نشان داده شده است.
از این شکل پیداست که پیدا کردن فرکانس های تشکیل دهنده این سیگنال از روی سیگنال زمانی غیررممکن می باشد. از اینرو نیاز به ابزار دیگری داریم که بتواند این کار را برای ما انجام دهد. آقای فوریه نشان دادند که هر تابع متناوب را می توان به شکل ترکیبی از موج های سینوسی ( یا کسینوسی ) نشان داد که این مطلب را با نام سری های فوریه می شناسیم. از مقاله مربوطه به موج سینوسی به یاد دارید که هر موج سینوسی می تواند به شکل یک صوت در خروجی بلندگو به شنیده شود. در این بین فرکانس موج سینوسی نیز مستقیما زیر و بم بودن صوت تولید شده را تعیین می کند.با توجه به این دو حقیقت می توان دریافت که با استفاده از آنالیز فوریه یک سیگنال می توان موج های سینوسی تشکیل دهنده آن را استخراج کرد و از روی موج های سینوسی نیز می توان فرکانس های تشکیل دهنده سیگنال گفتار را به دست آورد. با این حال نمی توان مستقیما از سری های فوریه برای این منظور بهره جست. چراکه سری های فوریه بر روی توابع متناوب تعریف شده اند و این در حالی است که ما در اینجا با سیگنال سروکار داریم که هیچ تابعی را نمی توان برای یک سیگنال گفتار تخمین زد. برای رفع این مشکل ابزاری با نام تبدیل فوریه معرفی شده است که بر روی داده های عددی ( سیگنال ) اعمال می شود. تبدیل فوریه گسسته مختلط سیگنال s به طول N را می توان با استفاده از رابطه زیر تعریف کرد: