چکیده:
در حال حاظر تحقیقات زیادی در گرایش های پردازش تصویر و پردازش صوت در سطح دنیا در حال انجام است که عموما از روشهای هوش مصنوعی و الگوریتم های مختلف پردازش، نظیر DSP ،الگوریتم ژنتیک،شبکه عصبی و... استفاده میکنند.هدف این تحقیق ایجاد روشی هوشمند جهت افزودن قابلیت تشخیص کلمات برای کامپیوتر، مبتنی بر تکنیک شبکه عصبی میباشد.این روش از راه آموزش دادن شبکه ای مناسب، قادر است سیگنالهای صوتی مختلف را تفکیک و دسته بندی نماید و در نهایت مفاهیمی را که کاربر برای هر گروه از اصوات مشخص مینماید به طور محدود بیاموزد.در این تحقیق، شبکه با سیگنالهای صوتی اعداد صفر تا نه، به زبان فارسی آموزش داده شده وهدف شبکه بعد از آموزش، تفکیک سیگنالهای ورودی و یافتن عدد متناظر با سیگنال ورودی میباشد.

كليدواژه ها: شبکه عصبی، تشخیص صدا، پردازش صوت، سيستمهاي هوشمند


1) مقدمه:
در زمینه تشخیص الگوی صوت توسط شبکه عصبی تا کنون در ایران کار زیادی صورت نگرفته و مقاله های محدودی که وجود دارد بیشتر به این موضوع از دید عمومی و معرفی تکنیک پرداخته شده است. نتایج این تحقیق کاملا عملی و حاصل کار،یک نرم افزار به زبان برنامه نویسی مطلب میباشد ونتایج بصورت نمودار ها و جداول در پایان ارائه شده.در مقاله های خارجی از روشهای مختلف شبکه عصبی استفاده شده و عموما نمونه های صوت را بدون تغییر به عنوان دیتای ورودی به شبکه در نظر گرفته اند و این موضوع باعث حجیم شدن شبکه ،طولانی شدن مراحل آموزش شبکه، وابستگی شدید نتایج به دامنه سیگنال وحساسیت زیاد نتایج به نویز میباشد.
روش ارائه شده در این مقاله بواسطه وجود یک مرحله اصلاح وتغییر دیتا، مقداری از مشکلات بالا کاسته ولی نقاط ضعفی هم دارد. از جمله وابستگی زیاد شبکه به تن صدا ودیتایی که شبکه توسط آن آموزش می بیند. بنا بر این برای عمومیت پیدا کردن عملکرد شبکه نیاز به دیتای فراوان ازافراد مختلف،لهجه ها و گویش های متفاوت دارد.

2) روش استفاده شده برای تشخیص:
به طور کلی میتوان مراحل انجام این پروژه از ابتدا تا پایان را به قسمتهای زیر تقسیم بندی نمود
-1تهیه دیتا
-2اصلاح دیتای خام جهت ارائه به شبکه
-3ایجاد یک شبکه مناسب
-4آموزش شبکه
تمامی مراحل فوق به کمک جعبه ابزار ها و دستورات مختلف نرم افزار مطلب قابل اجرا است .

در مرحله اول که تهیه دیتا میباشد از جعبه ابزارData Acquisition Toolbox استفاده شده مراحل مختلف استفاده از این جعبه ابزار بطور کامل در help مطلب به همراه مثال آموزش داده شده .که بطور خلاصه شامل مراحل زیر است.
• تعریف یک ورودی آنالوگ
• مشخص نمودن مرجع دریافت ورودی (کارت صوتی تحت اختیار سیستم عامل و یا ...)
• تعریف کانال یا کانالهای ورودی(سخت افزار مرجع ممکن است چندین ورودی داشته باشد)
• تعیین فرکانس نمونه برداری.
• تعیین ورودی پیش فرض جهت نمونه برداری از بین کانالهای تعریف شده.
• مشخص نمودن نحوه شروع نمونه برداری (یک تحریک سخت افزاری یا یک دستور شروع نرم افزاری) که ما بنا بر ملاحظات کار خود حالت سخت افزاری را انتخاب میکنیم.
• دستور شروع نمونه برداری شامل یک حلقه هزارتایی جهت برداشت هزار سیگنال از اعداد0الی9

(شکل1) سیگنال مربوط به عدد یک میباشد و(شکل2) به ترتیب اعداد از0الی 9را نشان میدهد.الگوی سیگنال مربوط به سایر اعداد متفاوت میباشد.اما الگوی اعداد یکسان نیز کاملا منطبق بر هم نیست وتفاوتهایی باهم دارند.

 

شکل1

شکل2
 

همانطور که قبلا نیز گفته شد،هر کدام از این سیگنالها شامل 4800 نمونه میباشد واین نمیتواند جهت ارئه به یک شبکه مناسب باشد.زیرا اولا باعث حجیم شدن بی مورد شبکه میشود چرا که در اینصورت شبکه میبایست 4800 ورودی دااشته باشد . ثانیا ّ این تعداد نمونه شامل اطلاعات جزئی بسیاری هست که از نظر ما چندان مورد نیاز نیست. بلکه یک سری اطلاعات کلی تر وبهینه که بیانگر بیشتر اطلاعات سیگنال اصلی باشد برای ما کفایت میکند.بدین منظور سیگنال خام ورودی را به 12 قسمت که هر قسمت شامل 400نمونه میباشد تقسیم میکنیم و از هر قسمت یک مشخصه که بیانگر رفتارسیگنال در آن بازه میباشد استخراج میکنیم.بدین ترتیب از هر سیگنال بجای 4800 نمونه 12 نمونه خواهیم داشت.که نتایج پروژه کافی بودن آن را تایید میکند.
اما روش استخراج این 12 مشخصه از هر سیگنال چیست ؟
در این مورد تاکید پروژه بر مشخصات فرکانسی سیگنال میباشد.به نحوی که در نهایت بدانیم در هر یک از 12 قسمت سیگنال، چه فرکانسی بیشترین سهم را در انرژی آن قسمت داشته است.بدین منظور باید ازهر قسمت سیگنال بطور جداگانه FFT گرفته وبا استفاده از تکنیک های مختلف ریاضی فرکانس غالب را از میان ضرایب FFTجستجو کنیم که در ادامه بیشتر به آن میپردازیم.(شکل3 ) سیگنال عدد یک را که به 12 قسمت تبدیل شده نمایش میدهد.

 


 

شکل3


(شکل4) FFT مربوط به هر قسمت را نظیر به نظیر نشان میدهد.وبه سادگی میتوان توزیع انرژی را در حوزه فرکانس مشاهده نمود.به علت تقارن نیمی از این اطلاعات برای تعیین فرکانس غالب کافیست.

شکل4


برای به دست آوردن فرکانس غالب روشهای مختلف آماری را میتوان بکار برد.انواع میانگین گیری های حسابی ،هندسی،وزنی، توافقی ، از این نوع میباشند.ولی در این پروژه از روش خاص دیگری از میانگین گیری استفاده شده که در ادامه توضیح داده میشود.
برای بدست آوردن فرکانس غالب،ابتدا اندازه ضرایب FFT را بدست میاوریم سپس این ضرایب را به ترتیب از ضریب dc تا بالاترین فرکانس، که 1 است روی یک دایره از 0تا2/π قرار میدهیم بطوری که به هر ضریب یک زاویه تعلق میگیرد(شکل5).بنابراین هر ضریب به صورت یک بردار در می آید.از حاصل جمع این بردارها یک بردار حاصل بدست میاید که زاویه آن بیانگر فرکانس غالب میباشد(شکل6).


شکل5                                                      شکل6


بدیهی است برای هر یک از 12 قسمت سیگنال، یک بردار خواهیم داشت که زاویه هریک از این بردارها نشان دهنده فرکانس غالب آن قسمت خواهد بود .بدین ترتیب از هر سیگنال با 4800 نمونه تنها 12 عدد بدست می آید که اطلاعات کافی از سیگنال با خود دارد و ضمنا برای شبکه نیز مناسب است. چرا که در این صورت شبکه تنها12 ورودی خواهد داشت(.شکل7 ) این 12 بردار را از یک سیگنال(سیگنال صحبت عدد یک)در کنار هم نشان میدهد.

 

شکل7


شکل (8)در نتیجه اعمال الگوریتم بالا بر روی سیگنالهای صوتی اعداد 1 ،2،..... 9 ،0 میباشد.همینطور که مشاهده میشود از هر یک از سیگنالها خام که 4800 نمونه هستند،سیگنال جدید اصلاح شده ،شامل 12 نمونه تولید شده است.
 


 

شکل8


در این پروژه از یک شبکه عصبی رقابتی دو لایه Backpropagation با آموزش LM استفاده شده ورودی شبکه همان بردارهای 12تائی فصل قبل میباشد وخروجی شبکه یا همان target ها یک بر دار 10تایی از اعدادی میباشدکه درایه متناظر با عدد گفته شده مقدار1 وسایر درایه ها مقدار صفر را دارند .)شکل9 (نمایی از شبکه و) شکل(10 الگوی خروجی را نشان میدهد

 

الگوی در نظر گرفته شده برای خروجی حالت رقابتی ایجاد میکند .یعنی بعد از آموزش دادن به شبکه هرگاه یک ورودی به شبکه بدهیم ،هریک از10 خروجی یک مقدار را نشان میدهد.که از رقابت نرون های مختلف با هم حاصل میشود .نرون خروجی برنده نرونی است که بیشترین مقدار را نشان دهد، حتی اگر منطبق بر مقدار آموزش داده،یعنی 1 نباشد .با استفاده از یک ماکزیمم گیری از خروجی میتوان دست اندیس خروجی ماکزیمم را به عنوان برنده بالا برد.

آموزش شبکه همانطور که گفته شد روش Levenberg-Marquard یا همان LM میباشد.که یکی از سریعترین روشهای آموزش شبکه میباشد.(شکل11) همگرائی آموزش را نشان میدهد که با150 epoch به دقت 0.0048 رسیده است و شیب منحنی در مراحل پایانی به سمت صفر نزدیک شده که نشان میدهد دقت بیشتر از0048.0 چندان میسر نیست.


شکل11

 

3.  ساختار شبیه سازی و آزمون:
بعد از آموزش شبکه، برای تست شبکه ، دو نوع آزمایش انجام میشود . در جداول 1 و 2 پاسخ شبکه به دو نوع آزمایش دیده میشود.آزمایش اول به این صورت است که اعداد 1 ،2،.....9 ،0 به ترتیب در چهار نوبت گفته شده. در) جدول (1مربوط به آزمایش اول، خانه های با حاشیه و فونت ضخیم تر نشان میدهد که خروجی به درستی بیشترین مقدار را کسب کرده و پاسخ صحیح است.خانه های خاکستری نشان میدهد که پاسخ نادرست است و آن خانه مقدار مناسب را کسب نکرده است.
آزمایش دوم مربوط به مواردی است که سیگنال ورودی کلماتی بجز اعداد 0 الی 9 باشد. در این صورت نیز یکی از خروجی ها به تصادف ماکزیمم میشود. سوال این است که آیا میتوان این نوع کلمات غیر مجاز را تشخیص داد. جهت بررسی رفتار شبکه نسبت به اینگونه موارد سیگنال صحبتهای مربوط به کلمات اراک، سلام، شبکه،نرون،سمینار،آزمون،مطلب،جمعه،دانشگاه وموسیقی به شبکه داده شده و خروجی متناظر به این کلمات نیزدر )جدول2 (ارائه شده که در بخش نتیجه گیری در مورد نتایج آن بحث میشود.


جدول 1

0.99996

0.00247

0.00759

0.00118

-0.0093

-0.0005

0.92969

-0.0033

0.01247

-0.0055

-0.00769

1

-0.0149

0.02235

-0.0172

-0.0003

-0.02104

7.54E-

0.00112

0.62631

0.00075

0.00054

1

0.00361

0.0019

0.0002

3.45E-

6.43E-5

-0.00174

0.00061

-0.00389

0.11726

0.00099

0.93426

-0.0082

-0.0007

0.00501

0.00031

0.00590

0.03090

0.45899

0.00528

0.00898

0.00048

1

0.14434

-0.41392

0.00603

0.01618

0.33243

-0.00048

0.00012

0.00085

-0.0039

-8.86E-

1

0.00010

-0.0014

0.00025

0.00069

0.04716

0.02354

0.04645

0.00770

1

0.00131

0.6119

0.00348

0.076719

0.02444

-0.00227

-.00136

0.000568

-0.0003

-.00442

-.01326

0.000438

1

-1.83E-

0.00283

0.002355

-.00065

0.000788

0.00222

0.01919

-0.0002

0.028465

-7.53E-

0.008661

-.00253

0.001012

-.00098

-0.1952

-.00399

-.00207

-.00086

0.000554

-5.97E-

0.001909

0.00151

 

0.991

-0.00256

0.006515

-0.01268

0.004974

-0.00285

0.012477

-0.00129

0.000747

-0.00129

0.000972

0.73688

0.010713

0.7069

-0.00724

0.003887

0.001131

-0.0076

-0.01859

-0.0076

-0.00166

-0.00093

-1

0.005138

0.000579

-0.00013

-0.00174

0.017381

-0.00118

0.017379

0.005728

0.043277

0.005206

0.044472

-0.00347

0.001654

0.005909

-0.00106

0.000753

-0.00106

0.015809

-0.00467

0.011563

-0.01747

0.97897

-0.51628

0.016042

-0.0023

0.233

-0.00229

0.000243

-0.00026

-0.00257

-0.00171

-0.00047

1

0.00025

-0.00118

5.46E-05

-0.00119

0.074424

-0.0223

0.039055

-0.08554

0.050751

-0.02927

0.076761

-0.01035

-0.01348

-0.01034

-3.13E-05

-0.00147

-0.00483

-0.00213

-0.0022

0.83739

-1.84E-06

0.000168

-6.87E-06

0.000132

0.006861

-0.00073

0.014313

-0.00624

0.00284

-0.00173

0.007129

-0.00013

0.99994

-0.00013

0.001856

-0.00148

0.1669

1

0.001098

-0.0012

0.003419

1

0.000373

1

 

1

-0.00167

-0.01126

0.001187

-0.00026

-0.00058

-1

-0.00332

0.72346

0.001114

-0.00448

1

-0.01303

-0.02235

0.000119

-0.0003

0.039466

7.54E-06

-0.03148

-0.00122

0.001213

-0.00031

1

-0.00361

2.17E-05

0.000216

1.83E-01

6.43E-05

0.386

0.01393

-0.00044

0.036589

0.92687

0.93426

-1.33E-05

-0.00072

0.004776

-0.00031

-0.01409

0.000408

-0.01243

-0.00659

-0.19702

0.000487

1

0.009393

0.016012

0.006036

-0.0421

0.000933

7.91E-06

-0.00017

1

-0.0039

-8.76E-04

1

0.000195

-0.0014

-0.00275

-0.00093

-0.0082

-0.02237

-0.07733

0.007707

-0.00559

-0.00134

0.046798

-0.00348

-0.19102

0.004884

-0.00102

-0.00062

-0.0054

-0.0003

0.00077

-0.06206

0.000442

1

-5.74E-03

1.00E-04

-0.00258

-0.00154

-0.00358

-0.00222

5.29E-05

-0.0002

0.98317

-7.53E-05

0.99999

0.001139

-3.94E-05

-0.0006

-0.06519

-0.00394

-4.26E-05

-0.00086

0.000446

-5.97E-05

0.006024

1

 

1

-0.00268

-0.00639

-0.00053

0.005069

0.012435

-0.01044

-0.00332

0.002323

-0.00052

-0.0036

0.99844

0.4439

-0.0046

-0.00735

0.001108

-0.00998

7.54E-06

0.001367

0.067117

0.001213

-0.00088

0.66924

0.009655

5.84E-04

-0.00179

1.88E-03

6.43E-05

0.000208

0.014646

-0.00045

0.023702

0.018831

-0.00028

-3.51E-03

0.005874

-0.00579

-0.00031

0.001268

0.003004

-0.01249

-0.00491

-0.0068

-0.00056

0.63852

0.017369

0.76069

0.006036

-1

-0.00133

8.01E-06

-0.00022

-0.00254

-0.00146

-4.64E-04

0.042868

0.0008

-0.00139

0.000843

-0.00099

-0.0082

-0.02303

-0.04434

-0.00494

0.05174

0.076547

1

-0.00348

0.99994

-0.00579

-0.00102

-0.00147

-0.00552

-0.00056

-0.00221

-1.77E-05

0.18026

1

-5.78E-03

-1.01E-05

-0.00258

-0.00079

0.005069

0.000119

2.89E-03

0.007105

-0.01587

-7.53E-05

0.96363

0.000281

-3.87E-05

-0.00145

0.005708

1

1.12E-03

0.001901

-0.01922

-5.97E-05

-0.00946

1

 


جدول 2

 

اراک

سلام

نرون

سمینار

آزمون

مطلب

جمعه

دانشگاه

موسیقی

1

0.011132

0.012473

-0.00339

0.010817

0.010684

0.007492

0.012466

0.012473

-0.01703

2

0.079602

0.001128

-0.02374

7.87E-05

0.00039

-0.0046

1.12E-03

0.001129

-0.00865

3

0.029131

-0.00173

-0.00097

5.68E-04

0.000373

-1.70E-04

-1.72E-03

-0.00173

0.019162

4

0.009284

0.005906

-0.001

5.07E-03

0.005234

-0.00045

0.005903

0.005907

-0.0072

5

0.014323

0.016299

-0.00492

0.013961

-0.00115

0.3279

0.016173

0.016176

-0.01662

6

0.000206

0.00025

-1.58E-05

7.73E-05

6.16E-05

-0.00023

0.000249

0.00025

-0.00283

7

0.067926

0.07673

-0.05896

0.066284

0.065378

0.059999

0.076677

0.076722

-0.09027

8

-0.00013

-2.33E-06

8.51E-07

1.43E-05

4.61E-01

-0.00149

-1.72E-06

2.39E-04

1.00E+00

9

0.006421

0.007127

1

6.25E-03

0.006229

0.004276

7.12E-03

0.007127

-0.0073

0

0.001443

0.009729

-9.97E-05

1.00E-100

0.99995

0.001429

4.11E-02

0.015686

1

میانگین

0.012001

0.021934

1.28E-02

0.090689

0.11031

0.15482

0.039415

0.015908

0.013398

واریانس

0.000827

0.00054

0.102426

0.098116

0.108582

0.010631

0.000616

5.38E-04

0.184428


4. نتیجه گیری:
در مورد سیگنالهای اعداد 0 الی 9 همینطور که دیده میشود فراوانی پاسخ صحیح چشمگیر است. نتایج نشان میدهد که در بیش از 70% موارد،تشخیص شبکه صحیح است و در مواردی نیز خروجی مربوط به دو یا چند عدد همزمان 1می شوند که تشخیص اشتباه میباشد.نتایج فوق با آموزش شبکه توسط صدسیگنال از هر عدد حاصل شده . درصورتی که آموزش شبکه بادیتای بیشتری صورت گیرد قطعا خطا نیز کاهش خواهد یافت.
در مورد یک کلمه مجاز در بهترین شرایط یکی از خروجیها 1 و نه تای دیگر0 است پس انتظار داریم واریانس و میانگین، هردو0.1 باشد. برای تشخیص ورودی های غیر مجاز میتوان از نحوه توزیع خروجی شبکه استفاده کرد.در این صورت خروجی هادر بیشتر موارد توزیعی نسبتاً یکنواخت دارند و یا اینکه بطور همزمان بیش از یک ماکزیمم خواهیم داشت.بنا بر این واریانس خروجی کوچک خواهد شد و میانگین نیز از 0.1 فاصله میگیرد بدین ترتیب ما متوجه این خطا خواهیم شد. همینطور که مشاهده میشود. در مورد کلمات غیر مجاز جدول2 هردوشرط میانگین و واریانس با هم بر قرار نیست. بنا بر این میتوان از این دو پارامتر به عنوان معیاری جهت قبول یا رد پاسخ استفاده کرد .
نکته آخر اینکه موفقیت شبکه در تشخیص صحیح به شدت وابسته به تعداد و تنوع دیتا میباشد.و حتی با اضافه کردن دو شرط بالا در صورت کم بودن دیتای آموزش، موفقیت شبکه چندان قابل توجه نخواهد بود.

مرجع: www.irandoc.ac.ir   

+ نوشته شده در ساعت توسط alireza |

 

چکیده:
کنترل رباتهای سیار(موبایل ربات) جهت عدم برخورد با موانع بر اساس آموزش و پیشگویی مختصات موانع در لحظات بعدی از موسوم ترین روش های کنترل سینماتیک و دینامیک روباتهای سیار می باشد.اما آنچه که ما ارائه می دهیم، براساس آموزش شبکه عصبی از دست فرمان اپراتور ربات درمقایسه با موانع پیش آمده درحین آموزش ربات است.این ایده برای کنترل اتوموبیل ها نیز قابل تعمیم است.بعبارتی ربات ما نیازی به داشتن یک حافظه برای بخاطر سپردن موقعیت موانع در حین آموزش، برای پبشگویی مکان های موانع بعدی ندارد.در نمونه های رایج دنیا ربات با اسکن نامحدود صفحه مورد آزمایش میخواهد نحوه چینش موانع  را بر اساس  x , y  صفحه تست بیاموزد ، تا در حالت اجرا پس ازآموزش بتواند  موانع را پیشگویی کند.اما ما یک دست فرمان ایده آل خودمان را از طریق اپراتور به ربات آموزش داده سپس آن را در محیط های متنوع دیگر میتوانیم بکار بگیریم
 كليدواژه‌ها: Feed Forward Network - Back Propagation
 
1- مقدمه:
هدف ما فیدبک گیری از موانع از طریق تصویر یا سنسور ها می باشد تا با آموزش نحوه کنترل سرعت و جهت حرکت در مواجهه با رخ دادها ، به ربات آموزش لازم را بدهیم ، و ربات  تصمیم لازم را در نحوه کنترل بردار سرعت در محیط های مختلف تست از خود بروز دهد. با اینکار دانستن موقعیت  x ,yموانع برای آموزش کاملا منتفی است. بلکه فقط با دانستن فاصله از موانع محیط تست برحسب آموزش داده شده به شبکه عصبی ، ربات تصمیم لازم را در مقابل موانع ثابت وحتی متحرک اتخاذ می کند.ایده ما بر این اساس است که ربات از هر اپراتوری دست فرمان همان اپراتور را آموزش ببیند. همانند راننده ای که با راننده دیگراتومبیل را متفاوت می راند.(همانند پیچیدن در سر پیچ با سرعت های مورد علاقه هر راننده).
امروزه در دنیا  اصول کنترل این نوع ربات ها این گونه طراحی شده است که با یک دوربین یا هر نوع  فیدبک دیگری موقعیت (x ,y) موانع در لحظات مختلف آموزش ، به ربات آموزش داده شود بطوری که در حالات بعدی بتواند موقعیت آنها را پیشگویی کند.اما ما با استفاده از دید راننده (اپراتور آموزش دهنده) و دید ربات از موانع ، تصمیم اپراتور را به ربات آموزش می دهیم. آنگاه ربات در مواجهه با موانع مختلف ثابت ویا متحرک شبیه اپراتور عمل می کند وتصمیم میگیرد.
 
2- ساختار ربات:
در ایده ما ربات نیاز به چینش 5 سنسور در موقعیت های مشابه شکل زیر دارد.سنسورها می توانند از نوع آلتروسونیک یا مادون قرمز باشند، تا  بالاخره بتوانندبازه دید ربات را پوشش دهند.

در اجرای این طرح ما از شیب دار  بودن سطوح آزمایش ربات چشم پوشی میکنیم.در این حال فیدبک دریافتی از هر سنسور را بصورت درصدی بین صفر تا صد برای سخت افزار و نرم افزار شبکه عصبی مان معرفی میکنیم. یعنی اگر کل تشعشع تابشی بازگشت کند به معنی این است که آن سنسورکاملا در مقابل مانع قرار گرفته است و مقدار کمّی آن 100% است. برای طراحی این شبکه پارامترهای ورودی عبارتند از: مقادیر در صد بازگشت تشعشع  هر سنسور (a, b, c, d, e) ، طول بردار  سرعت فعلی ربات ( V ) و زاویه بردار سرعت فعلی یا همان زاویه  فرمان ربات(θ).و در این حال پارامترهای خروجی ربات نیز عبارتند از: طول بردار سرعت ربات ( V )  و زاویه بردار سرعت یا همان زاویه  فرمان ربات (θ).
به عبارت بهتر بردار بازتابش تشعشع سنسورها و بردار سرعت در لحظه فعلی، ورودی های شبکه مورد طراحی ما بوده و بردار سرعت برای لحظه بعد ، خروجی شبکه ما خواهد بود.
 
3- خصوصیات شبکه عصبی مورد نیاز:
با توجه به نیاز سیستم برای کسب آموزش در حین یادگیری وحذف وکاهش خطا ی خروجی ، وجود فیدبک در شبکه مورد طراحی اجتناب ناپذیر است. از طرفی چون نتایج ایده آل نیز در اختیار شبکه قرار میگیرد وبردار هدف راتشکیل میدهد، لذا استفاده از روشی برای کاهش خطا بین حالت رانندگی  اپراتور و رانندگی ربات الزامی است. با این توصیف  بهترین نوع شبکه  برای ما  Feed Forward Network است که با الگوریتم B.P برای یادگیری قانون اصلاح خطا بکار برود. در مسیر رفت این الگوریتم پارامترهای شبکه،ثابت و بدون تغییر فرض می شوند. ودر مسیر برگشت این پارامترها بر اساس قانون اصلاح خطا تنظیم میگردند.این کار تا زمانی انجام میپذیرد که در لایه خروجی شبکه سیگنال خطا ی شبکه در حد مورد قبول کاربر برسد.بردار خطا که همان اختلاف بین پاسخ مطلوب و پاسخ واقعی است ، ناشی از (Vt و θ t) بدست آمده در عمل  و  (V وθ) مطلوب اپراتور است که در اثر باز تابش

 سنسورها یعنی (a, b, c, d, e) ، باید ربات آن تصمیم را می گرفت . که شبکه مذکور قابلیت پس انتشار خطا، جهت اصلاح رفتاری شبکه انتخاب شده را دارد.
 
4- ساختار شبکه عصبی پیشنهادی ما:
شبکه عصبی طراحی شده ما از نوعFeed Forward با الگوریتم Back Propagation بوده واز 3 لایهتشکیل شده است که، در لایه اول 7 نرون (به ازای هر ورودی) و در لایه دوم 19نرون (برحسب نتایج شبیه سازی انجام شده که پاسخ  مناسب داده) و در لایه سوم 2 نرون ( به تعداد پارامتر های خروجی) طراحی کرده ایم.توابع لایه اول از نوع tan sigmoid  و توابع لایه دوم از نوع log sigmoid وتوابع لایه سوم از نوع خطی است.لایه های ورودی و خروجی ، تاثیر گرفته از تعداد و محدوده اعداد  ورودی ها وخروجی ها ی مورد نظر ماست.
این ربات نیز مانند هر سیستم کنترل شونده با شبکه های عصبی در فاز اول که به آن  به اصطلاح off line گفته  میشود،آموزش دیده و در فاز بعدی داده های آموزش دیده را برای تصمیم گیری بکار می گیرد.در حالت آموزش ربات توسط اپراتور کنترل  می شود ، بعبارتی سرعت و جهت حرکت  بصورت مختصات قطبی (θ, V) از طرف  اپراتور به ربات داده میشود از طرفی ربات، هم زمان داده های دریافتی از موانع محیط اطراف را در حافظه نگه میدارد. (سیگنالهای  برگشتی از برخورد به موانع  نزدیک ربات  در 5 نقطه حساس  مطابق شکل- 1- ) . با این کار میتوان گفت ربات عملا داده ها را دریافت و عکس العمل اپراتور را به ثبت می رساند. مثلا داده [0,0.6,0,0,0] از سیگنال های دریافتی سنسورها نشان می – دهد که ربات از گوشه سمت راست جلو به مانعی رسیده که پس خور امواج به سنسور شصت در صد شده است در مقایسه با این داده دریافتی، اپراتور در حالت آموزش(off line)  داده ای مشابه داده زیر را به ربات می دهدکه این کار بصورت دستی نخواهد بود، بلکه بصورت نمونه برداری از سرعت حرکت و زاویه ای است که اپراتور در مواجهه با موانع دیده شده از خود عکس العمل نشان می دهد و در حرکت ربات اعمال مینماید (شکل- 2-) :
[-30, 0.86]

در حالت بعدی که No line  نامیده شده ربات بعنوان ورودی، سیگنالهای دریافتی از سنسورها را (که حاصل پسخور امواج ارسالی از سنسور و دریافت آن پس از برخورد به مانع است) بصورت یک ماتریس با درایه هایی بین صفر تا یک دریافت میکند، که هر درایه در صد پس خور سیگنال از موانع اطراف ربات است. از طرف دیگر داده های موجود درحافظه شبکه آموزش دیده که شامل پسخور سنسورها و بردار سرعت است توسط شبکه عصبی بکار گرفته میشود، تا یک بردار سرعت مناسب برای موقعیت مانع در حالت تست ارائه دهد.با اینکار چون ربات هر لحظه بصورت زنده حرکت بعدی خود را پیش گویی میکند عملا در مقابل موانع متحرک نیز پاسخگو خواهد بود ،.بدون نیاز به تعیین موقعیت آنها.

1-4- شبیه سازی شبکه در نرم افزار مطلب:


clc;
 
net= newff([0 1 ; 0 1 ; 0 1 ; 0 1 ; 0 1 ;-90 90 ;0 1 ],[7 , 19 ,2],{'tansig', 'logsig', 'purelin'});
 
N=input('Enter number of sample training  data to load and train network : N= ');
fid = fopen('Data.txt', 'r');
P = fscanf(fid, '%f %f %f %f %f %f %f', [7 N])  
fclose(fid);
 
 fid = fopen('Target.txt', 'r');
T = fscanf(fid, '%f %f', [2 N]) 
fclose(fid);
 
net = init(net);
net.trainParam.epochs = 2000;
net.trainParam.min_grad = 1e-60;
net = train(net,P,T);
 
 fprintf('\nEnter online samples of data from sensors to Simiulate : \n');
SensorData=input('[Delta<a>; Delta<b>; Delta<c>; Delta<d>; Delta<e>;Delta<teta>; Delta<V>]= ');
  
NetOutput= sim(net,SensorData)
 
fprintf('\nNew Teta =%f     ,  New Velocity=  %f \n' , NetOutput(1) ,NetOutput(2) );
 
 %end

 

2-4- سرعت یادگیری شبکه و مقدار خطای آن :

 3-4- دیتا ی داده شده به این شبکه و جواب حاصل از آن در شبیه سازی:


 Enter online samples of data from sensors to Simiulate :
[Delta<a>; Delta<b>; Delta<c>; Delta<d>; Delta<e>;Delta<teta>; Delta<V>]= [1;0;0;1;1;0;1]
 
NetOutput =
 
   80.0044
    0.1391
 
New Teta =80.004377     ,  New Velocity=  0.139101

 


5 – نتایج:
برتری های انجام گرفته در این روش نسبت به انواع مشابه:
در روشهای مشابه انجام گرفته در دنیا ربات با آموزشهای متعدد عملا محیط آزمایش را  اسکن کرده و محل تعدادی از موانع را با درج مختصات(x ,y)آنهادر حافظه به خاطر می سپارد  با این کار  پس از آموزش در همین محل(فضا) قادر است تا محل سایر موانع ندیده را تاحدودی پیش گویی کند.
آن روش دارای معایبی است که عبارتند از :
1) در صورت تغییر فضای تست پس از آموزش امکان پیشگویی از بین میرود.چرا که ربات برای فضای جدید آموزش ندیده بود.
2) در صورت متحرک بودن موانع در محیط تست پس ازآموزش، ربات با موانع متحرک برخورد خواهد کرد.


اما در روش پیشنهادی ما:
ربات بدلیل فیدبک گیری از فاصله موانع و بردارسرعت حرکت اپراتور درحین آموزش میتواند به دو نقص فوق الذکر پاسخ بگوید:
1) در فضاهای مختلف تست، نسبت به فاصله موانع و بردار سرعت ربات تصمیم لازم را برای بردار حرکت در لحظه بعدی بگیرد.
2) برای حرکت در میان موانع متحرک  نیز پاسخ گو باشد. 
 

مرجع: www.irandoc.ac.ir   

+ نوشته شده در ساعت توسط alireza |

چکیده:
يكي از مشکلات ارسال سیگنال وجود نویز و خطای بین سمبلها واعوجاج مي‌باشد. يكي از كاربردهاي شبكه‌هاي عصبي در پردازش سيگنالها طراحي فيلتر است بطوريكه از آن براي:

 1. حذف خطاي بين سمبلها [1] (ISI).

2 .حذف اثر اعوجاج كانال

3. حذف اثر نويز استفاده مي‌شود.

شبكه با مينيمم كردن كردن سيگنال خطا عملا تلاش مي‌کند تا خطاي سيگنال خروجي به حداقل خود برسد. در این مقاله شبکه عصبی برای حذف اعوجاج طراحی شده است.
 

اعوجاج سیگنال:
سیگنال خروجی(Y(t را بدون اعوجاج مي‌گوییم هر گاه شبیه سیگنال ورودی(X(t باشد. به عبارت دقیقتر اگر(Y(t با(X(t در یک ضریب تناسب ثابت و یک تاخیر زمانی محدود اختلاف داشته باشند در اینصورت انتقال را بدون اعوجاج مي‌گوییم. یعنی برای انتقال بدون اعوجاج:



ثابت K ضریب تضعیف و td تاخیر زمانی است. افت توان در انتقال برابر است. شرایط لازم برای انتقال بدون اعوجاج بیان شده در معادله(1) در صورتی تامین خواهد شد که تابع تبدیل سیستم  برابر با عبارت زیر باشد:


که در آن fX پهنای باند سیگنال باند پایه مي‌باشد. اگر فرض کنیم که فرستنده و گیرنده هیچگونه اعوجاجی را روی سیگنال وارد نمي‌کنند در اینصورت بایستی پاسخ کانال برای انتقال بدون اعوجاج به صورت زیر باشد:


برقراری شرط بیان شده در معادله(3) خیلی دشوار است و در بهترین حالت کانالهای واقعی فقط با تقریب در این شرط صدق مي‌کنند. بنابراین همواره مقداری اعوجاج در انتقال سیگنال اتفاق مي‌افتد. اگر چه با طراحی مناسب مي‌توان آنرا به حداقل رسانید. روش مناسب برای به حداقل رسانیدن اعوجاج سیگنال مشخص کردن انواع مختلف اعوجاجها و تلاش برای حداقل کردن اثرات بد آنها بطور جداگانه مي‌باشد.
1.  اعوجاج دامنه ناشی از
2.  اعوجاج فاز (تاخیر زمانی) ناشی از:
            (m یک عدد بزرگتر از صفر)زاویه
3.  اعوجاج غیر خطی ناشی از وجود عناصر غیر خطی در کانال.
دو نوع اول را اعوجاج خطی و نوع سوم را اعوجاج غیر خطی گویند.
 
اعوجاج خطی:
اگر پاسخ دامنه کانال در فرکانسهایی که طیف ورودی برای آنها مخالف صفر است ثابت(پهن) نباشد، در اینصورت مولفه‌های مختلف طیفی سیگنال ورودی دارای تغییرات مختلفی خواهند بود و در نتیجه اعوجاج دامنه خواهیم داشت. متداولترین فرم اعوجاج دامنه، تضعیف و یا تقویت اضافی در فرکانسهای بالا یا پایین طیف سیگنال است. تجربه نشان داده است که اگر در باند فرکانسی پیام بین ±1 dB تغییر کند، در اینصورت اعوجاج دامنه قابل صرف نظر کردن است. بجز این بیان کیفی و بدون تجزیه و تحلیل کامل نمي‌توان مطلب بیشتری را در مورد اعوجاج دامنه بیان کرد. اگر انتقال فاز اختیاری باشد، مولفه‌های مختلف سیگنال ورودی با اندازه‌های مختلف تاخیر زمانی روبرو بوده و در نتیجه اعوجاج فاز یا تاخیر زمانی خواهیم داشت. تاخیر زمانی مولفه طیفی سیگنال ورودی در فرکانس f برابر است با:



مي‌توان ثابت کرد که زاویه تابع تبدیل خروجی، یعنی خروجی بدون اعوجاج را نتیجه خواهد داد. هر پاسخ فاز دیگری به انضمام انتقال فاز ثابت و اعوجاج را نتیجه مي‌دهد. اعوجاج تاخیر زمانی یک مساله مهم و اساسی در انتقال پالس (داده‌ها) مي‌باشد. اما در کمال تعجب گوش انسان نسبت به اعوجاج تاخیر زمانی حساس نیست در نتیجه در انتقال صدا، اعوجاج تاخیر زمانی بندرت مورد توجه قرار مي‌گیرد.
 
همسانسازی:
روش حذف نظری اعوجاج خطی، همسانسازی[2] است که در شکل(2) نشان داده شده است.

شکل(2) همسانساز کانال    

 

 


  شکل(3)  یک همسانساز با خط تاخیر[3] سه تاخیری (فیلتر عرضی)
 


اگر تابع تبدیل همسانساز در رابطه زیر صدق کند:

در اینصورت داریم و هیچگونه اعوجاجی نخواهیم داشت. اما بندرت مي‌توان همسانسازی طراحی نمود که در معادله(5) دقیقا صدق کند ولی تقریب خوب امکان پذیر است، مخصوصا با استفاده از همسانسازهای با خط تاخیردار و نشان داده شده در شکل(3). خروجی همسانساز نشان داده شده در شکل(3) را مي‌توان به صورت زیر نوشت:

از روی آن مي‌توان تابع تبدیل فیلتر را به صورت عبارت زیر به دست آورد:

با تعمیم یک رابطه فوق برای یک همسانساز با 2M+1 تا تاخیر، داریم:

که دارای فرم سری فوریه نمایی با دوره تناوب 1/∆ است. بنابراین، برای همسانسازی کانال در باند فرکانس پیام fx  مي‌توان سمت راست معادله(6) را با یک سری فوریه (در حوزه فرکانس) با دوره تناوب  تقریب زد. اگر تقریب سری فوریه دارای 2M+1 جمله باشد، در این صورت یک همسانساز با 2M+1تا تاخیر مورد نیاز خواهد بود. ضریب تقویت تاخیرهای همسانساز برابر با ضرایب بسط سری فوریه هستند.
 
حذف خطاي بين سمبلها:
يكي از مشكلات ارتباطات راديويي و موبايل تداخل سمبلها ISI ناشي از انتشار امواج راديويي در چند مسير مي‌باشد وسبب مي‌شود كه گيرنده در تشخيص سمبل دريافتي که اثر، سمبلهاي قبلي هنوز باقي است دچار مشکل شود. به این منظوراز فيلترهاي قابل تنظيم در داخل سيستم به منظور جبرانISI استفاده میشود.
 
همسان ساز عرضي:
واضح است كه فيلترهمسان ساز بايدداراي پاسخ فركانس باشد، بطوريكه وقتي پاسخ فركانس واقعي كانال در آن ضرب شود حاصل برابر با پاسخ فركانس فرضي كانال باشد كه در طراحي مورد استفاده قرار گرفته است. با توجه به اينكه فقط به شكل موج خروجي در چند لحظه نمونه برداري از قبل تعيين شده علاقمند هستيم، طراحي فيلتر همسانساز خيلي ساده‌تر خواهد شد. فيلتر عرضي نشان داده شده در شكل(4) ساده‌ترين همسانساز قابل تنظيم بوده و غالبا از آن براي اين منظور استفاده مي‌شود. همسانساز عرضي از يك خط تاخير با سوئيچ‌هايي(تاخیرهايي) به فاصله ثانيه از يكديگر تشكيل شده است.


شكل(4) همسانساز عرضي


 هر سوئيچ(تاخیر) توسط يك ضريب تقويت متغير به يك تقويت كننده جمع كننده متصل مي‌شود. براي سادگي فرض مي‌شود كه فيلتر شامل (2N+1) تاخیر و با ضرايب تقويتهايW-N,W-N+1,….,W0,W1,….WN  باشد. ورودي همسانساز شكل معلوم(Pr(tو خروجي آن(Peq(t خواهد بود. خروجي(Peq(tرا بر حسب Pr(t)  و ضريب تقويت تاخیرها به صورت زير مي‌توان نوشت:

اگر پيك(Pr(t در نقطه t=0 و ISIدر هر دو طرف آن باشد، در اينصورت خروجي  مي‌بايستي در لحظات tk=(k+N)Ts نمونه برداري شده و


 

اگر(Pr(nTS را با(Pr(n و tk  را با K نشان دهيم، در اينصورت:

در حالت ايده‌آل علاقمند به رابطه ساده زير هستيم:

با توجه به اينكه (2N+1) متغير (2N+1 وزن) در اختيار داريم، شرط بالا همسشه قابل حصول نخواهد بود، اما مي‌توان مقدارPeq(t) را در 2N+1 نقطه به صورت زير مشخص نمود:

با تركيب معادلات (10) و(11) داريم:

 

 معادله(12) بيانگر (2N+1) معادله همزمان است كه ضرايب WN  بدست مي‌آيند. اين همسانساز از اين نظر كه پيك تداخل بين سمبلها را حداقل مي‌کند بهينه است.
 
همسانساز خودكار:
طراحي و تنظيم ضرايب تقويت تاخیرهاي همسانساز  مراحل زير را لازم مي‌دارد:
1.  ارسال يك پالس آزمايشي توسط سيستم
2.  اندازه‌گيري خروجي فيلتر گيرنده(Pr(t در لحظات نمونه برداري
3. تعیین ضرايب تقويت تاخیرها توسط شبکه
در سالهاي اخير براي تنظيم ضرايب تقويت، سيستم‌هاي خودكار با دقت بالا و بسادگي قابل ساخت پيشنهاد شده‌اند. اين شبكه‌ها معمولا به دو گروه تقسيم مي‌شوند: نوع پيش تنظيم كه از يك دنباله پالسهاي مخصوص قبل از ارسال اطلاعات واقعي و يا در فواصل قطع اطلاعات واقعي استفاده مي‌کنند و در اين حين وزنها تنظيم مي‌شود تا خطا حداقل شود  و نوع  وفقي یا تطبیقی كه بطور پيوسته و در هنگام ارسال اطلاعات واقعي و عمل روي اطلاعات، وزنهاي خود را تنظيم مي‌نمايد.
 
همسانساز پيش تنظيم:
 يك همسانساز پيش تنظيم ساده در شكل(5) نشان داده شده است. در اين سيستم، مولفه‌هاي بردار خطا توسط ارسال يك دنباله پالسها با فاصله زياد از يكديگر توسط سيستم و مشاهده خروجي همسانساز يعني در لحظات نمونه برداري اندازه‌گيري مي‌شوند.

 

شكل(5) يك همسانساز پيش تنظيم سه تاخیري

 
 براي تنظيم ضرايب تنظيم تاخیرها، از نمو ثابت∆ استفاده مي‌شود. نمونه مركزي با +1 مقايسه شده و علامت مولفه خطا به دست مي‌آيد. علامت ساير مولفه‌هاي خطا از روي خروجي فيلتر در لحظات به دست مي‌آيند. اگر مقدار پالس همسانسازي شده در پايان تكرار k ام را با نشان دهيم، در اينصورت                                
در پايان پالس آزمايشي kام، دريچه باز شده و با توجه به علامت مولفه‌هاي، به اندازه ∆+ يا ∆- تغيير مي‌کنند. تكرار مرحله تا زمان همگرايي الگوريتم ادامه مي‌یابد. مرحله راه اندازي ممكن است شامل صدها پالس گردد. يكي از مشكلات ايجاد شده کاهش سرعت همگرايي الگوريتم است.
 
همسانساز وفقي:
همسانسازهاي وفقي، بردار خطا بطور پيوسته و در حين ارسال اطلاعات تخمين زده مي‌شود. اين نماها قدرت تطبيق با تغييرات در هنگام ارسال اطلاعات را داشته و نيازي به مرحله طولاني راه اندازي ندارند. همسانسازهاي وفقي در عمل بيشتر به كار رفته، دقيقتر، جامع تر از همسانسازهاي پيش تنظيم مي‌باشند. خروجي همسانساز(Y(t در لحظات نمونه برداري بايستي برابر با ± A  باشد: +A هنگامي كه بيت واقعي ورودي مربوط به لحظه نمونه برداري 1 و–A هنگامي كه بيت ورودي صفر است.
در يك سيستم واقعي به دليل وجود ISI، مقدار(‎Y(jTb متفاوت از مقادير±A خواهد بود. براي يك دنباله داده‌هاي تصادفي، اين تغييرات تصادفي خواهند بود. اگر ISI خيلي بزرگ نباشد، هنوز مي‌توان داده‌ها را آشكار سازي نمود و دنباله اي از سطوح ايده آل و يا دلخواه  Ajو Aj=±A را توليد كرد. از روي دنباله ايده‌آل Aj و مقادير واقعي اندازه‌گيري شده (‎Y(jTb ، غالبا مي‌توان مقدار ضرايب تقويت را تخمين زد زير را بكار برد.

 تخمين زننده بيشترين درست نمايي، jامين مولفه بردار خطا است. عبارت سمت راست معادله (13) عمل همبستگي متفابل را نشان مي‌دهد. m طول دنباله‌هاي بكار برده شده براي تخمين است. ضريب تقويت تاخیر jام مطابق رابطه زير تنظيم مي‌شود:

k  معرف تعداد تكرار در الگوريتم است. براي اينكه همسانساز وفقي بطور موثر كار كند دنباله بيت ورودي و دنباله نمونه‌هاي دريافتي Y(nTb) بايد تصادفي باشند. بعلاوه همسانساز وفقي مشكل تنظيم وقت را براي آغاز همسانسازي  دارا مي‌باشد. هرگاه همسانسازي صحيح حاصل شد، تخمين خطا دقيق بوده و حلقه همسانسازي تغييرات در مشخصات كانال را بسادگي دنبال مي‌کند. براي غلبه بر اين مشكل، غالبا از يك سيستم هايبريد استفاده مي‌شود كه در آن انتقال داده‌ها در يك زمان كوتاه كه سيستم خاموش است به تاخير افتاده و در اين زمان يك دنباله شبه تصادفي ارسال و دوباره در گيرنده توليد مي‌شود. هنگاميكه همسانسازي تا حدودي خوب انجام مي‌پذيرد همسانساز به حالت وفقي منتقل شده و ارسال اطلاعات آغاز مي‌شود.
 
شبکه عصبی:
خط تاخیردار:
برای استفاده کامل از شبکه عصبی به خط تاخیردار نیاز داریم. شکل(6) یک خط تاخیردار را نشان مي‌دهد. سیگنال ورودی از سمت چپ وارد میشود و سیگنالهای تاخیردار از سمت راست خارج مي‌شوند. سیگنال خروجی N بعدی است. همانطوری که گفتیم کار اصلی ما با شبکه آدالاین است. این شبکه از قانون یادگیری LMS استفاده مي‌کند قانون یاد گیری ویدرو-هوف (LMS) شبکه را به سمت تنها نقطه مينیمم مي‌برد مشروط به اینکه نرخ یادگیری آن مناسب اختیار شود.  یک مسیر یا کانال همواره دارای نویز است. مي‌توان کانال را با دیاگرام شکل(6) تخمین زد.

 

 

شکل(6) خط تاخیردار 


                                                
شکل(7) فیلتر خطی


فیلترهای خطی:
فیلترهای خطی در شبکه‌های تطبیقی کاربرد دارند. فرق شبکه‌های خطی با پرسپترون در تابع تبدیل آنها است. شبکه پرسپترون دارای خروجی 0 و1 است ولی خروجی شبکه خطی مي‌تواند هر مقداری را بگیرد. مي‌توان شبکه را برای کمترین خطا با الگوریتم(LMS(Widrow-Hoff ، آموزش داد. از ترکیب خط تاخیردار و شبکه خطی، فیلتر خطی حاصل مي‌شود. شکل(7) یک فیلتر خطی را نشان مي‌دهد. اگر یک خط تاخیردار را همراه شبکه آدالاین آن در نظر بگیریم بلوک دیاگرام شکل(7) را خواهیم داشت. خروجی شبکه برابر است با:

Mean Square Error:
مانند الگوریتم یادگیری پرسپترون، خطای LMS مثالی از یادگیری با ناظر است.  برای ورودیهای P و خروجیهای T یعنی:

که در آن Pi ورودی iام بهمراه Ti یعنی خروجی مربوط به ورودی Piام، خطای مجذور میانگین برابر است با:

الگوریتم LMS  (یا یادگیری ویدروهوف):
الگوریتم LMS یا روش یادگیری ویدروهوف مبتنی بر روش تقریبی از Steepest descent است. در این روش خطای مجذور میانگین از بدست آوردن مجذور خطا از هر تکرار بدست مي‌آید. معادلات این الگوریتم و روند بدست آمدن آنها در زیر آورده شده است. اگر مشتق جزئی مجذور خطا را نسبت به وزنها و بایاسها در kامین تکرار داشته باشیم، داریم: 


و برای

 


این دو رابطه آخری وزنها و بایاس بدست آمده از این الگوریتم هستند.
 
کاربرد شبکه آدالاین در فیلترهای تطبیقی:
اگر چه این شبکه محدودیت نگاشت پذیری دارد (فقط برای مسائلی که بطور خطی از هم متمایز هستند قابل استفاده مي‌باشد)، اما یکی از پر استفاده‌ترین شبکه‌های عصبی است که کاربردهای عملی بسیار زیادی، مخصوصا در پردازش سیگنالهای دیجیتالی دارد. یکی از کاربردهای مهم آن را در پردازش سیگنالها مي‌توان در فیلترهای تطبیقی دید. دستورات برنامه matlab برای حذف نویز دامنه عبارتند از:
با دستور (net = newlind(P,T مي‌توان شبکه خطی طراحی کرد. P ورودی وT هدف است. با دستور(Y = sim(net,P مي‌توان رفتار شبکه را مشاهده کرد. دستورات دیدن وزنها و بایاس بدین ترتیب هستند:

{weights = net.iw{1,1
bias = net.b(1)

قسمتی از برنامه:

X1 = sin(sin(time).*time*10);
P = con2seq(X1);
T1 = con2seq(2*[0 X1(1:(end-1))] + X1);
net1 = newlin([-3 3],1,[0 1],0.1);
[net1,Y1,E1,Pf1]=adapt(net1,P,T1);

نتایج شبیه سازی برنامه هم برای رفع نویز دامنه و تاخیر در شکل(8) مشاهده مي‌شود. شبیه سازی از1 تا 3 ثانیه انجام شده است. فرض شده دامنه ورودی بین 3 و -3 است. شبکه دارای نرخ یادگیری0.1 است. با دستور{W = net.IW{1,1، مي‌توانیم وزنهای شبکه را ببینیم. با دستور{b= net.b{1، مي‌توانیم بایاس شبکه را ببینیم.

 

 

شکل(8) نتایج شبیه سازی


پانوشت‌ها:

[1] Intersymbol Interference
[2] Equalization
[3] Tapped-delay line equalizer 


 

مرجع: www.irandoc.ac.ir   

+ نوشته شده در ساعت توسط alireza |

  چکيده :

در اين نوشتار به معرفي شبکه هاي عصبي مصنوعي[1] و ساختارهاي آنها به صورت خلاصه ميپردازيم. در ابتدا نرونهاي شبکه هاي عصبي طبيعي معرفي شده و طرز کار آنها نشان داده شده است. سپس مدل مصنوعي اين نرونها و ساختار آنها ، مدل رياضي آنها ، شبکه هاي عصبي مصنوعي و نحوه آموزش و بکار گيري اين شبکه ها به همراه روش يادگيري گراديان کاهنده نشان داده شده است. تمرکز بيشتر بر نوعي از اين شبکه ها بنام شبکه هاي عصبي مصنوعي پرسپترون چند لايه ميباشد.  ابزاهايي نيز براي پياده سازي اين شبکه ها نام برده شده است.

كليدواژه‌ها: شبکه هاي عصبي مصنوعي ، شبکه هاي عصبي، Artificial Neural networks Multi layered Perceptron, Gradient descent

 

مقدمه :

در ساليان اخير شاهد حرکتي مستمر از تحقيقات صرفا تئوري به تحقيقات کاربردي بخصوص در زمينه پردازش اطلاعات ، براي مسائلي که براي آنها راه حلي موجود نيست و يا براحتي قابل حل نيستند بوده ايم. با عنايت به اين امر ، علاقه اي فزاينده اي در توسعه تئوريکي سيستمهاي ديناميکي هوشمند مدل آزاد[2] -که مبتني بر داده هاي تجربي ميباشند ايجاد شده است. ANN ها جزء اين دسته از سيستمهاي مکانيکي قرار دارند که با پردازش روي داده هاي تجربي ، دانش يا قانون نهفته در وراي داده  ها را به ساختار شبکه منتقل ميکنند.به همين خاطر به اين سيستمها هوشمند گفته ميشود ، زيرا بر اساس محاسبات روي داده هاي عددي يا مثالها ، قوانين کلي را فرا ميگيرند.اين سيستمها در مدلسازي ساختار نرو-سيناپتيکي[3] مغز بشر ميکوشند.

البته اين سخن که" ANN ها در مدلسازي مغز بشر ميکوشند" اغراق آميز ميباشد.دانشمندان هرچه بيشتر در مورد مغز بشر تحقيق ميکنند و مي آموزند ، بيشتر در مي يابند که مغز بشر دست نيافتني است.در حقيقت در مورد مغز و ساختار سيستم عصبي انسان اطلاعات زيادي بدست آمده است. ولي پياده سازي ساختاري با پيچيدگي مغز انسان بر اساس اطلاعاتي و تکنولوژي که امروزه وجود دارد غير ممکن ميباشد.

ما ميتوانيم يک نرون عصبي انسان و عملکرد آنرا را توسط مدل هاي رياضي ، مدلسازي کنيم.شکل1 ساختار يک نرون طبيعي را نشان ميدهد.

شکل1 - ساختار نرون طبيعي انسان

هر نرون طبيعي از سه قسمت اصلي تشکيل شده است :

1.            بدنه سلول (Soma)

2.            دندريت(Dendrite)

3.            اکسون (Axon)

دندريتها به عنوان مناطق دريافت سيگنالهاي الکتريکي ، شبکه هايي تشکيل يافته از فيبرهاي سلولي هستند که داراي سطح نامنظم و شاخه هاي انشعابي بيشمار ميباشند .دندريتها سيگنالهاي الکتريکي را به هسته سلول منتقل ميکنند. بدنه سلول انرژي لازم را براي فعاليت نرون فراهم کرده و برروي سيگنالهاي دريافتي عمل ميکند ، که با يک عمل ساده جمع و مقايسه با يک سطح آستانه مدل ميگردد. اکسون بر خلاف دندريتها از سطحي هموارتر و تعداد شاخه هاي کمتري برخوردار ميباشد. اکسون طول بيشتري دارد و سيگنالهاي الکتروشيميايي دريافتي از هسته سلول را به نرونهاي ديگر منتقل ميکند.محل تلاقي يک اکسون از يک سلول به دندريتهاي سلولهاي ديگر را سيناپس ميگويند.توسط سيناپسها ارتباطات مابين نرونها برقرار ميشود.به فضاي مابين اکسون و دندريتها فضاي سيناپسي گويند.

در حقيقت دندريتها به عنوان ورودي نرون و اکسون به عنوان خروجي و فضاي سيناپسي محل اتصال  ايندو ميباشد. زمانيکه سيگنال عصبي از اکسون به نرونها و يا عناصر ديگر بدن مثل ماهيچه ها ميرسد ، باعث تحريک آنها ميشود.

نرونها از هريک از اتصالات ورودي خود يک ولتاژ کم دريافت ميکند ( توسط سيگنال عصبي ورودي ) و آنها را با هم جمع ميزند. اگر اين حاصل جمع به يک مقدار آستانه رسيد اصطلاحا نرون آتش ميکند و روي اکسون خود يک ولتاژ خروجي ارسال ميکند که اين ولتاژ به دندريتهايي که به اين اکسون متصلند رسيده و باعث يکسري فعل و انفعالهاي شيميايي در اتصالات سيناپسي ميشود و  ميتواند باعث آتش کردن نرونهاي ديگر شود. تمامي فعاليتهاي مغزي انسان توسط همين اتش کردنها انجام ميشود.

حافظه کوتاه مدت انسان جرقه هاي لحظه اي الکتريکي ميباشند و حافظه بلند مدت به صورت تغييرات الکتروشيميايي در اتصالات سيناپسي ذخيره ميشود که عمدتا منجر به تغيير يونها ميشود.

همانگونه که گفته شد ما ميتوانيم توسط مفاهيم رياضي يک نرون طبيعي را مدل کنيم.شکل 2 يک نرون عصبي مصنوعي را نشان ميدهد.

شکل 2 ساختار يک نرون مصنوعي

سيگنالهاي ورودي  تا معادل سيگنالهاي عصبي ورودي و وزنهاي تا معادل مقادير اتصالات سيناپسي وروديهاي نرون ميباشند که جمعا ورودي نرون را تشکيل داده است.

تابع جمع کننده  تمامي عمليات هسته سلول را انجام ميدهد.در مورد تابع فعال سازي[4] (فشرده سازي[5] ) صحبت خواهد شد.

خروجي نرون توسط تابع زير مشخص ميشود:

به خصوصيات زير در مورد مغز انسان توجه کنيد :

محاسبات کاملا به صورت توزيع شده وموازي انجام ميشود.

"يادگيري" جايگزين برنامه ريزي از قبل ميشود.

در مغز انسان يک ساختار ALU مشخص وجود ندارد. ALU ، حافظه و کنترل همگي در يک ساختار درهم تنيده شبکه اي از تعداد بسيار زيادي نرون توزيع و پخش شده است.

مغز انسان توسط يک پروسه يادگيري مي آموزد که در پاسخ به يک ورودي ، چه خروجي را توليد کرده و ارسال کند. اين فرآيند يادگيري در حقيقت توسط تنظيم اتصالات سيناپسي در نرونهاي طبيعي و معادل آنها در ANN ها ،يعني تنظيم وزنهاي  نرونهاي مصنوعي انجام ميشود. در حقيقت در طراحي يک نرون مصنوعي فقط کافيست وزنهاي  را مشخص کنيم تا شبکه عصبي بتواند خروجي مورد نظر را از ورودي خاص توليد کند. متدهاي مختلف يادگيري وجود دارد که ميتواند بر اساس زوج مرتبهاي <خروجي، ورودي> مقدار وزنها را بدست آورد.

حال بر اساس مطالب گفته شده ميتوان به تعريف ANN ها پرداخت.

تعريف شبکه هاي عصبي مصنوعي

يک ساختار شبکه اي از تعدادي عناصر مرتبط به هم به نام نرون که هر نرون داراي وروديها و خروجيهايي است و يک عمل نسبتا ساده و محلي[6] را انجام ميدهد.شبکه هاي عصبي عموما عملکرد خود را طي يک پروسه يادگيري[7] فرا ميگيرد.

شبکه هاي عصبي کاربردهاي عمده اي در تشخيص الگو ، گروه بندي ، پيش بيني يا برون يابي و ... دارا ميباشد.

تاريخچه

در سال 1949 مدل MP شبکه هاي عصبي مصنوعي توسط مک کالوخ و پيت مطرح شد که يک مدل خطي ساده بود . سپس پرسپترون الگوريتمهاي يادگيري را ارائه نمود. سال 1969 آغاز افول موقت شبکه هاي عصبي شد. زيرا عدم توانايي شبکه هاي عصبي در حل مسائل غير خطي آشکار شد. ANN هاي آن زمان فقط قادر به حل مسائلي بودند که ميتوانستيم پاسخهاي آن مسئله را توسط يک خط در محور مختصات از هم جدا کنيم. در 1982 هاپفيلد با معرفي شبکه هاي چند لايه و الگوريتمهاي يادگيري داراي feedback  ، راه حلي براي حل موارد غير خطي ارائه کرد.در اين زمان بود که شبکه هاي بازگشتي ، خودسازمانده ، Autoregressive ، RBF و روش يادگيري هيبيان مطرح شد.از نيمه دهه نود ، نسل سوم ANN  ها مطرح شدند که عبارت بودند از :

·                    تعيين محدوديتهاي تئوري و عملي شبکه

·                    عموميت و حدود آن

·                    ترکيب ANN و الگوريتمهاي ژنتيکي و منطق فازي

در نهايت امروزه استفاده عملي و پياده سازي تجاري و سخت افزاري ANN ها ممکن شده است .

 

معرفي مدل نرون ساده خطي

بر اساس ايده گرفته شده از نرونهاي طبيعي ، ميتوان مدل نرون مصنوعي را رائه کرد که بتواند وروديها را باهم ترکيب کرده و يک خروجي از آنها به وجود آورد. در ساده ترين حالت نرون وروديهاي وزن دار را با هم جمع ميکند. شکل 3 يک نرون ساده خطي را نشان ميدهد.

(bias)

+

Text Box: …

 

شکل3 : نرون ساده خطي

 

                        

ميتوان شبکه عصبي را به صورت يک سيستم محرک / پاسخ در نظر گرفت. مهم اينست که بدانيم تعليم شبکه يعني تنظيم پارامترهاي آن به نحويکه رفتار محرک / پاسخ طبق خواسته باشد. در حين تعليم در واقع مجهولات ما  وزنها(w) ميباشند. وزنها در غالب حافظه ها عمل ميکنند و نحوه توليد پاسخ را مشخص ميکنند. درصورتيکه وروديهاي و خروجيهاي متناظر موجود باشد ( به اين زوج ورودي و خروجي مجموعه تعليم[8]گفته ميشود )  ، ميتوان وزنها را بر اساس فرمول  بدست آورد.

ميتوانيم براي اينکه خروجي خاصي توليد شود از يک تابع به نام تابع فشرده سازي[9]استفاده کنيم.اين مسئله در شکل4 نشان داده شده است.

تابع فشرده سازی

Squashing

(bias)

+

Text Box: …

شکل 4 : مدل نرون خطي به همراه تابع فشرده سازي

 

تابع فشرده سازي(فعال سازي) رنج وسيعي از مقادير ورودي را به مقدار خاصي نگاشت ميکند.به عنوان مثال ميتوانيم هرمقدار خروجي را   به مقادير باينري 0 و 1 نگاشت کنيم. انواع مختلفي از توابع فشرده سازي در  ANNها استفاده ميشود. ولي بيشترين استفاده را تابع فشرده سازي سيگمويد[10] دارد.

ادعا ميشود که فرکانس آتش نرون طبيعي به صورت تابعي شبيه سيگمويد ميباشد. البته دلايل ديگري براي استفاده از سيگمويد وجود دارد. از جمله :

1.       فشرده سازي ميکند. ( رنج ورودي (-∞,+∞) و خروجي [0,1] ميباشد )

2.       تقريبا خطي ، افزايشي و مشتق پذير است.

3.       در فرم بسته قابل نمايش است.

4.       مشتق گيري از آن ساده است.

 

تکنيکهاي تعيين پارامترهاي نرون خطي

بطور کلي دو روش براي تعيين پارامترهاي نرون خطي يا به عبارت ديگر مشخص کردن مقادير وزنها وجود دارد:

1.       تعيين مستقيم

2.       روالهاي تکرار شونده

1 - تعيين مستقيم

فرض کنيم  که b بردار پاسخهاي دلخواه ميباشد.

بنابر اين :

بدين صورت ميتوان مقادير wرا بدست آورد.

2 – روالهاي تکرار شونده

نام ديگر اين روش "گراديان کاهنده[11]" ميباشد در ادامه به توضيح اين روش مي پردازيم :

قبل از هر چيز بردار گراديان را تعريف ميکنيم:

بردار گراديان در واقع جهت تغييرات ماکزيمم در تابع f را نشان ميدهد.

در روش کاهش گراديان ، ابتدا مقادير تصادفي براي وزنها انتخاب ميشود و بر اساس اين اوزان خروجيهايي از شبکه بدست مي آيد.در يک روال تکرار شونده  محاسبه شده و در جهت آن حرکت خواهد شد.بدين معني که را طوري تغيير ميدهيم که اختلاف خروجي واقعي و خروجي مطوب کمينه شود. حرکت در جهت متناظر با حرکت در جهت کاهش آن با شيب ماکزيمم ميباشد.

خطاي شبکه به ازاء وزنهاي  برابر است با :

در واقع همان تابعي است که بايد کمينه شود.پس :

خطاي خروجي برابر است با اختلاف مابين خورجي شبکه (0) و خروجي مطلوب (t).خطاي يک ورودي برابر است با :

و خطاي کلي برابر است با :

خطاي ميانگين مربع[12] برابر با :

قاعده کلي ،بدست آوردن مشتق خطا نسبت به w ميباشد تا بتوانيم تغييرات خطا نسبت به w را به صفر نزديک کنيم.يعني ما بدنبال پيدا کردن ميباشيم که k مرتبه تکرار اين روال است .به عبارتي ديگر :

در نتيجه تصحيح وزن jام در مرحله kام از تکرار الگوريتم تعليم به صورت زير ميباشد:

که ، مشتق تابع فشرده سازي ( اکتيواسيون) و α، نرخ يادگيري ميباشد که عموما مابين 0 و 1 انتخاب ميشود. بدين صورت ميتوان وزنهاي هر نرون را بدست آورد و روند تعليم شبکه را به اتمام رساند. پس از تعليم ، شبکه آماده توليد خروجي از ورودي متناظر ميباشد.

شبکه هاي پرسپترون[13] چند لايه

شبکه هايي که از يک نرون ساخته شده اند داراي محدوديتهايي ميباشند. اين شبکه ها توانايي پياده سازي توابع غير خطي را ندارند. به عنوان مثال توسط اين شبکه ها نميتوان تابع XOR را پياده سازي نمود. براي حل اين مشکل شبکه هاي ديگري پيشنهاد شد که ما به يکي از آنان که بيشترين استفاده را دارد مي پردازيم. دليل ديگر معرفي اين نوع شبکه ، استفاده از آن در ابن تحقيق مي باشد.

مدل عمومي شبکه هاي پرسپترون ، شبکه جلو رونده[14] با روال تعليم انتشار به عقب[15] است. شبکه هاي جلو رونده شبکه هايي هستند که وروديهاي لايه اول نرونهاي آن به لايه هاي بعدي متصل بوده و در هر سطح اين مسئله صادق بوده تا به لايه خروجي برسد. روال انتشار به عقب بدين معني است که پس از مشخص شدن خروجي شبکه ، ابتدا وزنهاي لايه آخر تصحيح شده و بعد به ترتيب اوزان لايه هاي قبلي تصحيح ميشوند.در اين موارد بيشتر توضيح داده ميشود.

 شبکه هاي پرسپترون از يک لايه ورودي ، تعدادي لايه پنهان و يک لايه خروجي تشکيل شده است.در شکل 5 يک شبکه پرسپترون با يک لايه پنهان نشان داده شده است.

شکل 5 : نمونه اي از يک شبکه پرسپترون

 

در اين شکل لايه X لايه ورودي ، لايه Z لايه پنهان و لايه Y نيز لايه خروجي ميباشد.

در اين شبکه ها  شرايط زير وجود دارد :

1.       نرونهاي هر لايه تنها به نرونهاي لايه بعدي متصل ميباشند.

2.       هر نرون به تمامي نرونهاي لايه بعد متصل است.

3.       نرونهاي لايه ورودي عملي را انجام نميدهند و اوزان آنها ثابت و برابر يک ميباشد. اين نرونها فاقد تابع فشرده سازي ميباشند.

4.       انتشار عملگر رو به جلو است. تمامي نرونها به غير از لايه ورودي جمع کننده بوده و هر نرون ميتواند تابع فشرده سازي مستقلي داشته باشد.

5.       هر نرون ميتواند داراي باياس مستقل باشد.

6.       تعداد لايه هاي پنهان مشخص نميباشد.

 

الگوريتم يادگيري شبکه هاي پرسپترون ( انتشار به عقب )

در اين بخش به نحوه يادگيري شبکه پرسپترون چند لايه که در شکل 5 نشان داده شده است مي پردازيم.

در الگوريتم يادگيري از علائم زير استفاده ميکنم:

x : بردار ورودي که براي يادگيري شبکه از آن استفاده ميشود.

t : بردار خروجيهاي مطلوب

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

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

α: نرخ يادگيري.

: واحد ورودي iام.

: باياس واحد پنهان jام.

: واحد پنهان jام.

ورودي شبکه به توسط نشان داده ميشود:

سيگنال خروجي  توسط  مشخص ميشود:

: باياس واحد خروجي kام.

: واحد خروجي kام:

ورودي  توسط مشخص ميشود:

سيگنال خروجي  توسط مشخص ميشود :

براي آموزش شبکه توسط انتشار به عقب ، سه مرحله بايد انجام شود : انتشار به جلو الگوهاي يادگيري ورودي ، انتشار به عقب خطاي بدست آمده و تنظيم اوزان.

در حين انتشار به جلو ، هر واحد ورودي  سيگنال ورودي خودرا در هرکدام از واحدهاي پنهان  توزيع ميکند.سپس هرکدام از واحدهاي پنهان اکتيواسيون خودرا محاسبه کرده و سيگنال حاصل را به هرکدام از واحدهاي خروجي ارسال ميکند.در نهايت هرکدام از واحدهاي خروجي  با محاسبه اکتيواسيون خود ،  را به عنوان پاسخ شبکه به الگوي وردي ، ارائه ميکند.

درمرحله يادگيري ،در هرکدام از واحدهاي خروجي ، توليد شده را با  مقايسه کرده تا خطاي مربوطه را پيدا کنيم. بر اساس اين خطا ، فاکتور محاسبه ميشود.از  براي توزيع به عقب خطا در تمامي واحدهاي لايه قبلي استفاده ميشود. همچنين از آن براي بروزرساني اوزان ميان واحدهاي لايه پنهان و لايه خروجي نيز استفاده ميشود. به همين صورت نيز براي تک تک واحدهاي پنهان  محاسبه ميشود. البته انتشار به عقب خطا در لايه ورودي لازم نيست، ولي براي بروزرساني اوزان ميان لايه ورودي و لايه پنهان استفاده خواهدشد.

در نهايت زمانيکه تمامي δ مشخص شدند ، تمامي اوزان به صورت هم زمان تصحيح خواهند شد. تصحيح وزن (از لايه پنهان به لايه خروجي) بر اساس و  خواهد بود و تصحيح وزن ( از لايه ورودي به لايه پنهان) بر اساس  و  ميباشد.

حال بر اساس مطالب گفته شده الگوريتم يادگيري را شرح ميدهيم :

مرحله 0 : مقدار دهي اوليه اوزان بر اساس مقادير تصادفي کوچک

مرحله 1 : تازمانيکه شرط پايان برقرار نيست مراحل 2 تا 9 را تکرار کنيد.( در مورد شرط پايان صحبت خواهد شد)

مرحله 2 : به ازاء هر زوج تعليم ( ورودي و خروجي متناظر در مجموعه تعليم ) مراحل 3 تا 8 را تکرار کنيد :

مرحله 3 : هر واحد ورودي

 ,i=1,…,n

  سيگنال ورودي  را دريافت کرده و آنرا در تمامي واحدهاي لايه بعد از خويش توزيع ميکند.

مرحله 4 : هر واحد پنهان

 , j=1,…,p

حاصل جمع سيگنالهاي ورودي وزن دار خويش را محاسبه ميکند :

سپس تابع فشرده سازي مربوطه را بر حاصل اعمال ميکند :

و سيگنال حاصل را به تمامي واحدهاي لايه بعدي ارسال ميکند.

مرحله 5 : هر واحد خروجي

, k=1,…,m

حاصل جمع سيگنالهاي ورودي وزن دار خويش را بدست مي آورد:

و تابع فشرده سازي مربوط به خود را براي محاسبه خروجي به حاصل اعمال ميکند:

انتشار به عقب خطا :

مرحله 6 : هر واحد خروجي

, k=1,…,m

را بر اساس خروجي مطلوب و خروجي بدست آمده محاسبه ميکند :

و مقداري را که بعدا براي تصحيح وزن و باياس  نياز است ، بدست مي آورد :

و را به واحدهاي لايه قبل از خود ارسال ميکند.

مرحله 7 : هر کدام از واحدهاي پنهان

 , j=1,…,p

حاصل جمع دلتاي ورودي خود را که از واحدهاي لايه بعد از خود به آن رسيده است ، محاسبه ميکند:

و حاصل را در مشتق تابع فشرده سازي ضرب کرده تا ترم اطلاعات خطاي  بدست آيد:

سپس مقداري را که بعدا براي تصحيح وزن و باياس  نياز است ، بدست مي آورد :

تصحيح اوزان و باياسها :

مرحله 8 : هر کدام از واحدهاي خروجي وزنها ( j=0,…,p ) و باياس خودرا به صورت زير تصحيح ميکنند :

هر کدام از لايه هاي پنهان نيز وزنها ( i=0,…,n ) و باياس مربوطه را به صورت زير تصحيح ميکند :

مرحله 9 : شرط پايان برقرار است. پايان الگوريتم يادگيري.

البته در زمان پياده سازي بايد آرايه هاي مجزايي براي دلتاهاي واحدهاي خروجي ( مرحله 6 ،  ) و واحدهاي پنهان ( مرحله 7 ، ) تشکيل شود.

يک دوره[16] ، چرخه اي کامل حول مجموعه يادگيري است.تعداد زيادي چرخه براي آموزش يک شبکه عصبي انتشار به عقب لازم است. معمولا چرخه آموزش را تا زماني که ميانگين کل خطا به يک مقدار حداقل مطلوب يا صفر برسد ادامه مي دهند (شرط پايان) . در برخي مواقع مقدار خطاي ميانگين در طي چند دوره تغييري نميکند . در اين صورت نيز يادگيري شبکه عصبي پايان مي يابد.

عموما مقدار دهي اوليه اوزان و باياسها به صورت تصادفي با مقادير کوچک انجام ميشود. ثابت شده است که انتخاب هر مقدار اوليه براي وزنها و باياسها به سمت مقدار صحيح آنها همگرا است. بدين معني که هر مقداري براي آنها انتخاب کنيم ، پارامترهاي شبکه تنظيم خواهند شد. تنها تفاوتي که وجود دارد ، در صورت فاصله زياد مقادير اوليه وزنها و باياسها با مقادير صحيح آنها ،  براي رسيدن به مقادير مطلوب تعداد دوره ها زياد خواهد بود  . Nguyen-Widrow[1990] روشي را براي مقدار دهي اوليه اوزان و باياسها پيشنهاد داده اند که باعث ميشود وزنها با فاصله کمي نسبت به مقدار صحيح آنها انتخاب شوند . توضيح اين روش در حوصله اين مقوله نيست و علاقه مندان ميتوانند با مراجه به منابع شبکه هاي عصبي مصنوعي اين روش را بياموزند.

در زمينه تعيين تعداد الگوهاي يادگيري لازم براي تعليم شبکه روشي وجود دارد. اگر P تعداد الگوهاي يادگيري ، W تعداد وزنهاي شبکه و حداکثر خطاي مجاز شبکه e باشد ، بدين منظور که شبکه به صورت صحيح عمل کند و بتواند عمل دسته بندي را با دقت 1-e انجام دهد ، بايد رابطه زير برقرار باشد :

به عنوان مثال در صورتيکه e=0.1 و W=80 باشد ، ما به 800 (P=800) الگوي يادگيري نيازمنديم تا مطمئن شويم که شبکه عصبي مصنوعي طراحي شده در 90% مواقع به صورت صحيح عمل ميکند. اثبات اين مسئله توسط Baum و Haussler در سال 1989 انجام شد.

در شبکه هاي پرسپترون چند لايه ، تعداد لايه هاي پنهان ميتواند هر تعداد باشد. البته در بيشتر کاربردها يک لايه پنهان کفايت ميکند . در برخي مواقع نيز دولايه پنهان يادگيري شبکه را ساده تر ميکند. در حالتي که تعداد لايه هاي پنهان بيش از يک لايه باشد ، بايد الگوريتم ذکر شده در بالا را براي تمامي لايه ها تعميم داد.

روشي عملي براي تخمين  تعداد واحدها (نرونها ) در هر لايه پنهان در دست نيست. بدين منظور بايد از روشهاي سعي و خطا استفاده کرد تا به مقدار ميانگين خطاي کل مطلوب رسيد.

براي مدلسازي  شبکه هاي عصبي مصنوعي ابزاهاي زيادي وجود دارد . از اين جمله:

·         SNN (Stuttgart Neural Network Simulator)

·         Matlab standard NN Toolbox

·         Netlab toolbox for Matlab

به عنوان نمونه ميتوانيد از Netlab که يک تول باکس مجاني براي نرم افزار Matlab  ميباشد استفاده کنيد. براي استفاده از آن ميتوانيد به آدرس زير رجوع کنيد:

http://www.ncrg.aston.ac.uk/netlab/index.php

 


پانوشتها

[1] Artificial Neural Network

[2] Model Free

[3] Neuro-synaptic

[4] Activation function

[5] Squashing

[6] Local

[7] Training

[8] Training set

[9] Squashing

[10] Sigmoid

[11] Gradient descent

[12] Mean Square Error(MSE)

[13] Perseptron

[14] Feed forward

[15] Back propagation training

[16] Epoch

مرجع: www.irandoc.ac.ir   

+ نوشته شده در ساعت توسط alireza |

 

چكيده:

سيستم تشخیص گفتار نوعی فناوری است که به یک رايانه این امکان را می دهد که گفتار و کلمات گوینده را بازشناسی و خروجي آنرا به قالب مورد نظر، مانند "متن"، ارائه كند. در این مقاله پس از معرفی و ذكر تاريخچه‌اي ازفناوري سیستم ها تشخيص گفتار، دو نوع تقسیم بندی از سيستمها ارائه می شود، و سپس به برخی ضعف ها و نهایتاً کاربرد این فناوری اشاره می شود.

كليد واژه ها: سيستمهاي تشخیص گفتار، فناوري اطلاعات، بازشناسي گفتار


1. مقدمه
گفتار برای بشر طبیعی ترین و کارآمدترین ابزار مبادله اطلاعات است. کنترل محیط و ارتباط با ماشین بوسیله گفتار از آرزوهای او بوده است.طراحی و تولید سیستم های تشخیص گفتار هدف تحقیقاتی مراکز بسیاری در نیم قرن اخیر بوده است.یکی از اهداف انسانها در تولید چنین سیستم هایی مسلماً توجه به این نکته بوده است که "ورود اطلاعات به صورت صوتی ،اجرای دستورات علاوه بر صرفه جویی در وقت و هزینه ،به طرق مختلف کیفیت زندگی ما را افزایش می دهند.امروزه دامنه ای از نرم افزارها (که تحت عنوانSpeech Recognition Systems معرفی می شوند) وجود دارند که این امکان را برای ما فراهم کرده اند.با استفاده از این تکنولوژی می توانیم امیدوار باشیم که چالش های ارتباطی خود را با محیط پیرامون به حداقل برسانیم.
2.تعریف
قبل از پرداختن به به سیستم های تشخیص گفتار لازم است که فناوری تولید گفتار و تشخیص گفتار با تعریفی ساده از هم متمایز شوند:
 ● فناوری تولید گفتار(Text To Speech):تبدیل اطلاعاتی مثل متن یا سایر کدهای رایانه ای به گفتاراست.مثل ماشین های متن خوان برای نابینایان،سیستم های پیغام رسانی عمومی. سیستم های تولید گفتار به خاطر سادگی ساختارشان زودتر ابداع شدند. این نوع از فناوری پردازش گفتار موضوع مورد بحث در این مقاله نیستند.
 
 ● فناوری تشخیص گفتار(Speech Recognition System ): نوعی فناوری است که به یک کامپیوتراین امکان را می دهد که گفتارو کلمات گوینده ای را که از طریق میکروفن یا پشت گوشی تلفن صحبت می کند،بازشناسی نماید. به عبارت دیگر در این فناوری هدف خلق ماشینی است که گفتار را به عنوان ورودی دریافت کند و آنرا به اطلاعات مورد نیاز (مثل متن)تبدیل کند.


3.تاریخچه فناوری تشخیص گفتار
اولین سیستم های مبتنی بر فناوری تشخیص گفتار در سال 1952  در"آزمایشگاههای بل"طراحی شد.این سیستم به شیوه گفتار گسسته و به صورت وابسته به گوینده و با تعداد لغت محدود 10 لغت عمل می کرد.در اوایل دهه 80 میلادی برای اولین بار الگوریتم مدلهای مخفی مارکوف "Hidden Markov Model" ارائه شد.این الگوریتم گامی مهم در طراحی سیستم های مبتنی بر گفتار پیوسته به حساب می آمد.همچنین در طراحی این سیستم از مدل شبکه عصبی و نهایتاً ازهوش مصنوعی نیز استفاده می شود.در ابتدا شرکتهای تجاری این فناوری را برای کاربردهای خاصی طراحی کردند.به عنوان مثال شرکت Kurzweil در زمینه پزشکی و مخصوصاً برای کمک به معلولان و نابینایان و شرکت Dragon در زمینه خودکارسازی سیستمهای اداری محصولات اولیه وارد بازارکردند. توانجویان در واقع اولین گروهی بودند که از این دسته محصولات به عنوان یک فناوری انطباقی و یاریگر،عمدتاً برای دو عملکرد کنترل محیط و واژه پردازی استفاده کردند.
جیمز بیکر James K.Baker یکی از محققان شرکت IBM که در اواخر دهه 1970 در مورد این فناوری مقالات زیادی نوشت، یکی از پیشگامان این طرح بود.او و همکارانش یک شرکت خصوصی به نام Dragon Systems تاسیس کردند.این شرکت ابتدا در دهه 1990 نرم افزاری به نام Dragon Dictate تولید کرد که یک سیستم مبتنی بر گفتار گسسته بود.در سال 1997 این شرکت محصولی را تولید کرد که به جای استفاده از گفتارگسسته ،مبتنی بر گفتار پیوسته بود.در واقع این شرکت با ارائه نرم افزار Dragon Naturally Speaking (DNS) اولین سیستم تشخیص گفتار پیوسته را ارائه نمود.این سیستم توانایی تشخیص گفتار با سرعت 160 کلمه در دقیقه را داشت.همچنین شرکت تجاری IBM هم در این زمینه برای سالهای متمادی فعالیت می کرد که با طراحی بسته نرم افزاری Via Voice به ارائه سیستم های تشخیص گفتار پرداخت که در حال حاضر Scansoft محصولات IBM Via Voice  راتوزیع و پشتیبانی می کند.شرکت مایکروسافت نیز فعالیتهایی درجهت تولید و کاربرد این فناوری داشته است،و بیل گیتس Bill Gates در کتابها و سخنرانی هایش به کرات در مورد آینده درخشان استفاده از سیستم های تشخیص گفتار تاکید کرده است. البته عملاً تا قبل از ارائه نرم افزار office XP وword 2002 این تکنولوژی در محصولات این شرکت بکاربرده نشد.گرچه در ابتدا عمده موارد استفاده این تکنولوژی ،برای افراد توانجو پیش بینی شده بود اما بعدها پذیرش استفاده از آن گسترده تر شد و گروههای بسیاری در مدارس و دانشگاهها علاقه مند به استفاده ازاین فناوری شدند. بطوریکه Seton Hall University نیز برای تشویق دانشجویان به آشنایی با این سیستم به دانجشویان جدید الورود نرم افزار IBM Via Voice را اهدا می کرد.


4.عملکرد سیستم های تشخیص گفتار
سیستم های تشخیص گفتار به هر منظور که بکار برده شوند، عملکرد نسبتاً مشابهی دارند که عبارت است از:تبدیل گفتاربه داده و تحلیل آن توسط مدلهای آماری.


 

شکل 1

 


1.4 تبدیل گفتاربه داده
برای تبدیل گفتار به یک متن روی صفحه یا یک فرمان کامپیوتری، یک سیستم باید راه دشواری را طی کند.وقتی که گوینده صحبت می کند،لرزشهایی در هوا ایجاد می شود،سیستم تشخیص گفتار ابتدا امواج صوتی آنالوگ را دریافت می کند،مبدل آنالوگ به دیجیتال Analog-to-digital converter (ADC) این امواج آنالوگ را به داده های دیجیتالی تبدیل می کند. سپس سیگنال به سگمنت های کوچکی که به اندازه چند صدم ثانیه یا در مورد صداهای Plosive Consonant چند هزارم یک ثانیه هستند،تقسیم می شود. در مرحله بعد برنامه این سگمنت ها را به phoneme های شناخته شده در زبان تبدیل می کند.Phoneme ،کوچکترین عنصریک زبان است (ارائه ای از صداهایی که ما می سازیم و برای شکل دادن واژه های معنی دار آنها را در کنار هم قرار می دهیم).گام بعدی ساده به نظر می رسد اما در واقع انجام آن بسیار دشوار است .برنامه Phoneme های موجود را با سایر Phoneme هایی که درکنار آن قرار دارد،امتحان می کند و Phonemeهای هم بافت را از طریق یک مدل آماری بسیار پیچیده نقطه (plot) می کندو آنها را با مجموعه بزرگی متشکل از واژه های شناخته شده،عبارات و جملات مقایسه می کند.برنامه سپس چیزی را که کاربر احتمالاً گفته است مشخص می کند و آن را به عنوان متن یا شکل یک فرمان کامپیوتری یا صوت بیرون می دهد.


2.4 تشخیص گفتار با استفاده از مدل(الگوریتم)آماری
سیستم های تشخیص گفتار اولیه سعی داشتند مجوعه ای از قوانین گرامری و دستوری را با گفتار ورودی منطبق کنند. به این صورت که اگر کلمه های گفته شده در داخل مجموعه ای از قواعد و قوانین جای می گرفتند و با آن سازگار می شدند،برنامه می توانست کلمه را تشخیص دهد. تنوع لهجه ها ونوع گفتار افراد مختلف در این حالت از تشخیص می توانست تاثیر منفی بر روی دقت این سیستم ها بگذارد. به عنون مثال تلفظ کلمه barn توسط فردی از بوستون و لندن متفاوت است در حالی که هر دو یک لغت را بکار برده اند.سیستم ها مبتنی بر قواعد و قوانین دستوری به این دلیل موفق نبودند که نمی توانستند گفتار ممتد را با حداقل میزان اشتباه تشخیص دهند.
سیستم های تشخیص گفتار امروزی از سیستم های مدل آماری بسیار قدرتمند و پیچیده ای استفاده می کنند.این سیستم ها از قواعد احتمالات وریای برای تشخیص نتیجه استفاده می کنند. دو مدل مسلط امروز در این حوزه مدل مخفی مارکوف "Hidden Markov Model" و مدل شبکه عصبی"Neural Netwok Model" هستند.این روشها اساساً برای مشخص کردن اطلاعات پنهان از سیستم،از اطلاعاتی که برای سیستم شناخته شده هستند استفاده می کنند. مدل Hidden Markov رایج ترین مدل است.در این مدل هرPhoneme مثل یک پیوند در یک زنجیره است و هنگامی این زنجیره تکمیل می شود،یک کلمه بوجود می آید.در طی این فرایند، برنامه یک score احتمالات را بر اساس دیکشنری توکار و آموزش کاربر به هر Phoneme اختصاص می دهد. این فرایند برای عبارات و جملات،حتی از این هم پیچیده تر است. (سیستم مجبور است مشخص کند که هر کلمه کجا شروع می شود و کجا به اتمام می رسد). گاهی برنامه ناچار است عباراتی را که شنیده است را با عبارت یا عبارت های قبل ار آن که در بافت جمله هستند مقایسه کند،آنرا تجزیه و تحلیل کند تا بتواند آنرا به درستی تشخیص دهد.بنابراین اگر یک برنامه دارای 60000 کلمه باشد ترتیبی از سه کلمه می تواند هر یک از 216 تریلیون احتمال ممکن باشد.بدیهی است که حتی قدرتمندترین سیستم هم نمی تواند بدون کمک،تمام این احتمالات را جستجو کند. این کمک به شکل"آموزش"برنامه ارائه می شود.با وجود اینکه توسعه دهندگان و طراحان نرم افزار که دستگاه واژگانی اصل سیستم را تنظیم می کنند،بخش اعظمی از این آموزش را انجام می دهند اما کاربر نهایی نیز باید زمان زیادی را صرف این آموزش کند.
 
5.سیستم های تشخیص گفتار:تقسیم بندی بر اساس عملکرد
فناوری تشخیص گفتار بر اساس سه معیارقابل بررسی و طبقه بندی است:
الف.تعدادگویندگان
ب.شیوه صحبت کردن
ج.اندازه بانک واژگان
که در ادامه به توضیح هر یک پرداخته می شود.


1.5 تعداد گویندگان
همانطور که قبلاً نیز اشاره شد،درونداد اطلاعات در این سیستم به صورت صوتی-گفتار انسان- است.بسته به اینکه سیستم برای استفاده تعداد محدودی گوینده طراحی شده باشد یا نه ،این سسیستم به دو دسته"وابسته به گوینده" و "مستقل از گوینده" تقسیم می شوند.
در سیستم های وابسته به گوینده،سیستم هر صدایی را تشخیص نمی دهد بلکه فقط صداهایی که قبلاً آنها را آموزش دیده است را تشخیص می دهد.بدین صورت که شخص با ایجاد یک پروفایل صوتی از صدای خود،صدای خود را به سیستم آموزش می دهد و سیستم نیز با مراجعه به این پروفایل بار دیگر آن را تشخیص می دهد.این سیستم ها دقیق ترند. اما سیستم های مستقل از گوینده طوری طراحی می شوند که سیستم قادر باشد هر نوع صدایی را تشخیص دهد.


2.5 شیوه صحبت کردن
نحوه صحبت کردن گوینده می تواند به دو صورت "گفتار گسسته" و یا "گفتار پیوسته" باشد. در سیستم های مبتنی بر گفتار گسسته گوینده کلمات را جدا جدا و با مکث حداقل 200 میلی ثانیه بین آنها ادا می کند تا سیستم کلمات را بصورت مجزا تشخیص دهد. در این نوع از سیستم بانک واژگان شامل کلماتی است که برای سیستم از قبل تعریف شده است. وقتی که سیستم مبتنی بر گفتار پیوسته باشد،مرز کلمات گوینده واضح نیست که در این صورت برای انطباق گفتار با بانک واژگان، بانک واژگان از "واجهای" زبان تعریف شده تشکیل شده است.


3.5 اندازه بانک واژگان
اندازه بانک واژگان ، از نظر واژگان ذخیره شده در سیستم " محدود" ویا "بزرگ" است. که بین نوع سیستم از نظر وابستگی به گوینده و اندازه بانک واژگان رابطه معکوس وجود دارد.در سیستم های وابسته به گوینده اندازه بانک واژگان بزرگ و تعداد کاربر کم است. این نوع سیستم ها که معمولا در محیط های تجاری بکار گرفته می شوند و تعداد کمی کاربر با این برنامه کار می کنند به بهترین نحو ممکن جوابگو هستند. در حالی که این سیستم ها با سطح دقتی مناسب کار می کنند و دارای هزاران کلمه هستند باید طوری تنظیم شوند که با تعداد کوچکی از کاربران اصلی کار کنند و میزان دقت این سیستم ها تا حد بسیار زیادی به کاربر بستگی دارد. در سیستم هایی که مستقل از گوینده عمل می کنند،تعداد کاربران زیاد است اما تعداد واژاگان اندک است. در این سیستم ها کاربران می توانند با لهجه ها و الگوهای گوناگون تلفظ صحبت کنند هرچند،استفاده از این سیستم ها محدود به تعداد اندکی از فرامین و ورودی های از پیش تعریف شده نظیر گزینه های ابتدایی و اعداد است.
 
6.سیستم های تشخیص گفتار:تقسیم بندی بر اساس برونداد
سیستم های تشخیص گفتار همگی در یک ویژگی مشترک هستند و آن "لزوم درونداد به صورت صوتی" در این گونه سیستم هاست.این سیستم ها را بر اساس بروندادی که ارائه می کنند می توانیم به سه دسته تقسیم بندی کنیم:
الف.سیستم های گفتار به متنSpeech To Text  
ب. سیستم های گفتار به گفتارSpeech To Speech
ج.سیستم های گفتار به فرامین Speech To Command
که در ادامه هریک به طور مختصر معرفی می شوند.


1.6 گفتار به متن Speech To Text
این دسته از سیستم ها توانایی تبدیل گفتار به متن یا تشخیص خودکار گفتار را دارند.از این تکنولوژی برای "دیکته کردن و ایجاد مدرک" استفاده می شود.از آنجایی که تایپ کامپیوتری از کارهای متداول و وقت گیربرای کاربرهای عادی و پیشرفته می باشد بنابراین اولین موارد استفاده از این تکنولوژی ،تایپ کامپیوتری بوده است که باعث افزایش سهولت و سرعت تایپ می شده است مثل کاربرد این سیستم برای روزنامه نگاران و حقوقدانان. این امر به ویژه زمانی که افراد ملزم به تایپ مکرر هستند اهمیت پیدا می کند زیرا بیماری Carpal Tunnel Syndrome  (سندرم کانال مچی) که یکی از انواع آسیب های ناشی از تکرار می باشد در اثر استفاده تکرار شونده از کیبورد برای تایپ پدید می آید. با استفاده از سیستم های تشخیص صدا و تایپ با کیبورد به طور همزمان می توان از بروز اینگونه آسیب ها جلوگیری کرد.همچنین افراد توانجو یا کسانی که به هر نحو قادر به تایپ کردن نمی باشند، می توانند خود را با یان سیستم ها تطبیق دهند و از آنها بطور موثری استفاده کنند(به عنوان مثال افرادی که قادر به استفاده از دستان خود نیستند،یا از لحاظ بینایی دچار مشکل هستند). حتی گزارش شده است که استفاده از یک نرم افزار تشخیص صدا به یک مرد مبتلا به بیماری "زبان پریشی" کمک کرده است که بتواند عقایدش را در قالب زبان نوشتاری بیان کند و با اطرافیان خود ارتباط برقرار کند.برخی نرم افزارها در زیر برای آشنایی معرفی می شوند:

 


شکل 2


IBM Via Voice (IBM Voice Dictation for Linux)

●  تنها نرم افزاری است که سیستم عامل لینوکس را پشتیبانی می کند


 Myers Hidden Markov Model Software

●  نرم افزاری است که توسط ریچارد می یر با الگوی HMM نوشته و طراحی شده است و برای کاربران حرفه ای کاربرد دارد.
     فناوری استفاده شده در ویندوز ویستا
    فناوری استفاده شده در ویندوز XP
●  که در قالب برنامه های word xp و word 2002 به بعد، ارائه شده است.
 
نرم افزار دیکته خودکار فارسی/انگلیسی نویسا
●  یک نرم افزار تشخیص گفتار به دو زبان فارسی و انگلیسی بدون وابستگی به گوینده است که توسط گروه SPl (Speech processing Lab) در دانشگاه صنعتی شریف طراحی و تولید شده است. کاربرمی تواند از این نرم افزار در هر ویرایشگری در محیط ویندوز استفاده کند.


2.6 گفتار به گفتار Speech To Speech
سیستم های گفتار به گفتار شامل استفاده از فناوری تشخیص گفتارعمدتاً در تولید نرم افزارهای ترجمه گفتار به گفتار می باشد.شرکت Via یک تولید کننده کامپیوترهای پوشیدنی است. این شرکت یک مترجم زبانی را توسعه داده است که در اختیار انگلیسی زبانان قرار گرفته است که البته این محصول در تعداد انبوه وارد بازارنشده است.نام این ابزار که نوعی سخت افزار است ،"ابزار مترجم جهانی Via II" می باشد ،وسیله ای است به اندازه یک گوشی تلفن با عملکرد PC که به کمر کاربر متصل می شود یا در جیب لباس وی قرار می گیرد.Via II با یک نرم افزار تشخیص صدا سازگار است و با داشتن در گاه USB حتی امکان اتصال به ادوات جانبی را هم دارا است.این ابزار با قدرت شناسایی مجموعه گسترده ای از زبانها نظیر کره ای،صربستانی،عربی،تایلندی،چینی،و... ارائه می شود .این سیستم برای کاربران انگلیسی زبان طراحی شده است که قادر است صدای کاربر را شناسایی کندو به زبان مقصد ترجمه کندو از طریق بلندگو پخش کند و همچنین در مدت زمان کوتاهی قادر است که پاسخ فرد مخاطب را به انگلیسی ترجمه کند که به این ترتیب یک ترجمه دو طرفه انجام می شود.

 

شکل 3

 

 

 آژانس پروژه های تحقیقاتی پیشرفته دفاعی دارای سه تیم از محققانی است که بر روی Global Autonomous Language Exploitation یا (GALE) که برنامه ای که اطلاعات روزنامه ها و اخبار پخش شده در زبانهای خارجی را ترجمه می کند،کار می کنند. این پروژه امیدوار است که بتواند نرم افزاری ایجاد کند که بتواند دو زبان را با حداقل 90 درصد دقت به یکدیگر ترجمه کند.این آژانس همچنین بر روی یک پروژه تحقیقی و توسعه به نام TRANSTAC سرمایه گذاری کرده است که سربازان ایالات متحده امریکا را قادر می کند به شکل موثرتری با جمعیت غیر نظامی کشورهای غیر انگلیسی زبان به تعامل بپردازند.
موارد بالا نمونه هایی از تلاش محققان جهان برای توسعه این فناوری بودند.در ایران و برای کاربران فارسی زبان نیر "نرم افزار پارسیا" طراحی و تولید شده است که یک نرم افزار ترجمه صوتی(گفتار به گفتار) زبان فارسی است و عبارات رایج و مکالمات روزمره فارسی را به زبانهای مقصد (انگلیسی و عربی) ترجمه می کند. این نرم افزار توسط گروه SPL دانشگاه صنعتی شریف طراحی و تولید شده است.
 
3.6 گفتار به دستور  Speech To Command
از این نوع فناوری برای کنترل برنامه ها (computer control) استفاده می شود. با استفاده از این فناوری کاربر می تواند با ادا کردن دستورات آنها را انجام دهد. تقریباً اولین گروهی که روی به استفاده از این فناوری آوردند خلبانان بودند. خلبانان در اتاقک پرواز با استفاده از این سیستم ها علاوه کمک به کنترل امور پرواز بدون نیاز به دست، استرس ناشی از پرواز را کاهش می دادند. همچنین استفاده از این فناوری درحوزه های مشابه مانند فضا نوردی وهوانوردی نیزآزمایش شده است. علاوه بر این توانجویان به طور وسیع این فناوری را به عنوان ابزاری برای کنترل محیط و انطباق بیشتر با آن بکار بردند. به عنوان مثال توانجویان حرکتی قادر خواهند بود با کمک این فناوری دستورات حرکتی به صندلی چرخدار خود بدهند.یا حتی -در ایده ال ترین وضعیت- به کمک کار گذاشتن تراشه های هوشمند و سازگار با فناوری تشخیص صدا در عضو مصنوعی به دست و پای مصنوعی خود فرمانهای حرکتی متنوع صادرکنند.

 

شکل 4

 
با استفاده از این فناوری کاربر می تواند با گفتن جملات دستوری مانند" فایل را باز کن" یا "صفحه راببند" برنامه های مختلف کامپیوتری رانیزکنترل کند. از این فناوری به همراه قابلیت Speech To Text در برخی سیستم های عامل استفاده شده است. برخی از نرم افزارها در زیر آورده شده اند:


 C Voice Control (Consol Voice Control)

در سیستم عامل لینوکس استفاده می شود و امکان اجرای دستورات را بوسیله فرامین صوتی فراهم می کند.

Game Commander

برنامه ای است مستقل از گوینده و بدون نیاز به آموزش که با ایجاد فرمانهای صوتی برخی بازی های مشهور ویندوز را کنترل می کند.
 
7.کاربرد فناوری تشخیص گفتار در کتابخانه
سیستم های تشخیص گفتار آنچنان که در حوزه های دیگر مثل پزشکی و انجمن های  حقوقی مورد استفاده قرار گرفتند در کتابخانه ها بکار گرفته نشده اند و کتابخانه ها بیشتر موضعی منفعلانه نسبت به بکارگیری این فناوری از خود نشان داده اند.اما با توجه به ماهیت خدمات کتابخانه ای و همچنین تنوع کاربرانی که تمایل به استفاده ازکتابخانه دارند مطمئناً وجود چنین فناوری کمک فراوانی به کتابداران در تسریع و بهبود خدمات کتابخانه ای می کند.به عنوان مثال در کارهای خدماتی –فعالیت هایی که کتابدار به یک ابزار ارتباطی غیر از چشم ها و دست ها نیاز دارد- مثل رف خوانی و فهرست نویسی پیوسته، ویا در فعالیتهای مربوط به سرویسهای کتابخانه ای مثل بازیابی اطلاعات و کنترل فرایند امانت، و نهایتاً در ایجاد امکان دسترسی به پایگاههای اطلاعاتی از راه دور می تواند کاربرد موثری داشته باشد. همچنین با استفاده از اینگونه سیستم ها می توان به نمایه سازی چند رسانه ای ها (مانند فیلم و ویدئو ) پرداخت که دراین حالت کلمات کلیدی در قالب گفتار وارد می شوند و به صورت گفتارنیز بازیابی می شوند. از سوی دیگر با ورود این فناوری به کتابخانه ها و فعالیتهای آن می توان انتظار داشت که کاربران کتابخانه بطور چشمگیری افزایش یابند،چرا که همیشه کاربرانی هستند که نمی توانند با سیستم معمول کتابخانه کار کنند و از منابع اطلاعاتی آن استفاده کنند.این گروه کاربران می توانند کم سوادان ویا طیف وسیعی از توانجویان باشند که در صورت بکارگیری این فناوری آنها نیز با امکان دسترسی به منابع جزو کاربران همیشگی کتابخانه ها می شوند.
 
8.سیستم های تشخیص گفتار:ضعف ها و محدودیت ها
هیچ برنامه تشخیص گفتاری که بتواند صد در صد درست عمل کند وجود ندارد،چندین عامل وجود دارند که می توانند میزان دقت این برنامه ها را کاهش دهند ویا استفاده از آنها را محدود کنند:
 
1.8 ورود سرو صدای محیط(Noise)
 برنامه باید واژه هایی که ادا می شوند به طور واضح بشنود. هرنوع صدای اضافی همزمان با صدای گوینده وارد شود می تواند با واجهای صوتی اشتباه گرفته شود و در این فرایند تداخل ایجاد کند.منبع ایجاد نویز می تواند بسیار گوناگون باشد.مثل نویز موجود در صدای پس زمینه دریک محیط اداری و شلوغ که برای حذف آنها درهنگام استفاده کاربران باید در یک مکان نسبتاً آرام مستقر شوند و از میکروفن با کیفیت (مثل میکروفونهای noise-canseling) استفاده کنند و یا در هنگام صحبت میکروفن را در نزدیکی دهان خود قرار دهند.
گاهی نیز کارت های صوتی کیفیت پایین باعث کم شدن دقت سیستم می شوند این کارت ها اغلب فاقد لایه محافظ در برابر سیگنال الکتریکی ایجاد شده توسط سایر اجزای کامپیوتر هستند و می توانند صدای hum یا hiss را به سیگنال (صوتی) وارد کنند.
امروزه با بکار گیری" نرم افزار بهبود کیفیت " به همراه این فناوری تا حد زیادی سروصدای محیط و خش های اضافی قابل حذف شدن می باشد.این محصول می تواند هم به صورت نرم افزاری مستقل مورد استفاده قرار گیرد و هم به صورت یک امکان مجزا برای بهبود کیفیت گفتار و در نتیجه بهبود کارایی و دقت در نرم افزارهای دیگر بکار گرفته شود. این نرم افزار یکی از محصولات گروه SPL دانشگاه صنعیت شریف می باشد.


2.8 اثر گذاری کلمات بر یکدیگر و نحوه تلفظ آنها
اثر گذاری کلمات بر روی همدیگر هنگام ادا شدن توسط گوینده ها وحتی حذف شدن واج های ابتدایی و انتهایی هنگام چسبیدن کلمات به هم کار تشخیص را مشکل می سازد.همچنین نحوه تلفظ کلمات توسط افراد مختلف و وجود لهجه های گوناگون بر دقت سیستم تاثیر می گذارند.در یک محیط کاری ،کاربران اصلی برنامه باید زمان نسبتاً زیادی را صرف صحبت کردن در سیستم کنند تا سیستم را با الگوی تلفظی خود آموزش دهند و آنرا با گفتار خود هماهنگ کنند. همچنین آنها باید سیستم را با واژه ها ،اصطلاحات و کلمات مترادف ویژه ای که در آن محیط استفاده می کنند،آموزش دهند. نسخه های ویژه ایاز برنامه های تشخیص صدا(که معمولاً وابسته به گوینده هستند) برای دفاتر قانونی یا مراکز درمانی وجود دارد که دارای واژه های مصطلح و رایجی که در این محیط ها بکار برده می شوند هستند.


3.8 کلمات متشابه (Homonym ها)
Homonym ها واژه هایی هستند که از نظر تلفظ شبیه هم هستند اما از نظر معنی و ریشه و گاهی املا با هم فرق دارند.there ،their، air ،heir ؛ be و bee مثال هایی از این نوع کلمات هستند. هیچ راهی برای یک برنامه تشخیص صدا وجود ندارد که بتواند بطور دقیق تفاوت بین این واژه ها را بر اساس صدا به تنهای تشخیص دهد.هرچند که  آموزش های بسیار زیاد سیستم ها و مدلهای آماری که امروزه به کار می رود تا حد زیادی کارایی این برنامه ها را افزایش داده است.


4.8 ایجاد سرو صدا
ایجاد سرو صدا یکی از محدودیت های این سیستم ها است. با توجه به لزوم تعامل صوتی انسان با این سیستم در هنگام استفاده این مشکل امری طبیعی است ولیکن برای کاهش مزاحمت و افزایش کارایی بهتر است که از این فناوری در محیط های خاص دربسته و مجزا استفاده شود.محدودیت دیگری که هنگام کار با این سیستم با آن مواجه می شویم خطر فاش شدن اطلاعات شخصی و محرمانه هنگام ورد اطلاعات است .یک راه ابتکاری والبته معقول وجود دارد و آن استفاده از ماسک های مخصوص مجهز به میکروفن حساس است . با استفاده از این ماسک ها  می توان با پایین ترین فرکانس صوتی ممکن صحبت کرد به طوری که دیگران صدای ما را نشنوند ودر عین حال مطمئن باشیم که صدای ما از طریق میکروفن وارد شده است.
 
نتیجه گیری
استفاده از گفتار به عنوان درونداد اطلاعاتی علاوه بر سرعت،در نحوه تعامل انسان بر محیط تاثیر بسزایی داشته است. با وجودیکه در حال حاضر سیستم های زیادی برای تشخیص گفتار وجود دارد ولی همه این دستاوردها به گونه ای، دسته ای از محدودیت های ساده کننده را یدک می کشند که حذف این محدودیت ها می تواند به صورت قابل ملاحظه ای بر پیچیدگی این سیستم ها بیفزاید. هدف نهایی درسیستم های  ”تشخیص گفتار“ ایجاد سیستمهایی است که بتوانند مانند انسان بشنوند و عکس العمل مناسب نشان دهند(سیستم های مستقل از گوینده وگفتار پیوسته). تا کنون گروهها و حوزه های مختلف فراخور نیازهایشان در انجام فعالیت هایشان از این فناروی استفاده کرده اند. امااز این فناوری عملا در کتابخانه ها و مراکز اطلاع رسانی به ندرت استفاده شده است که می تواند نتیجه عدم شناخت قابلیتهای این فناوری توسط کاربران ، مدیران وکارکنان کتابخانه ها باشد. دسترس پذیر کردن منابع اطلاعاتی و گشودن دروازه های اطلاعاتی به روی همه کاربران یکی از اهداف مهم کتابخانه هاست.از اینرو ، این سازمان پویا با توجه به این اصل و حمایت های همه جانبه می تواند همگام با پیشرفت  فناوری به این هدف آرمانی خود نزدیک تر شود. حتی زمانی در آینده دور ممکن است تشخیص گفتار (Speech Recognition) تبدیل به در ک گفتار (Speech Understanding) شود. مدل های آماری که به سیستم ها اجازه می دهند در مورد گفتار یک فرد تصمیم گیری کنند، روزی به آن ها اجازه خواهند داد معنی نهفته در پشت کلمات را نیز درک کنند ،اگر چه قطعاً تنها مدل کاملاً موفق از سیستم تشخیص گفتار سیستم شنوایی انسان است که هنوز اسرار آمیز و ناشناخته جلوه می کند.
  

مرجع: www.irandoc.ac.ir   


+ نوشته شده در ساعت توسط alireza |


Error Description
1
Unknown statement
2
Unknown structure EXIT statement
3
WHILE expected
4
No more space for IRAM BIT
5
No more space for BIT
6 .
expected in filename
7
IF THEN expected
8
BASIC source file not found
9
Maximum 128 aliases allowed
10
Unknown LCD type
11
INPUT, OUTPUT, 0 or 1 expected
12
Unknown CONFIG parameter
13
CONST already specified
14
Only IRAM bytes supported
15
Wrong data type
16
Unknown Definition
17 9
parameters expected
18
BIT only allowed with IRAM or SRAM
19
STRING length expected (DIM S AS STRING * 12 ,for example)
20
Unknown DATA TYPE
21
Out of IRAM space
22
Out of SRAM space
23
Out of XRAM space
24
Out of EPROM space
25
Variable already dimensioned
26
AS expected
27
parameter expected
28
IF THEN expected
29
SELECT CASE expected
30
BIT's are GLOBAL and can not be erased
31
Invalid data type
32
Variable not dimensioned
33
GLOBAL variable can not be ERASED
34
Invalid number of parameters
35 3
parameters expected
36
THEN expected
37
Invalid comparison operator
38
Operation not possible on BITS
39
FOR expected
40
Variable can not be used with RESET
41
Variable can not be used with SET
42
Numeric parameter expected
43
File not found
44 2
variables expected
45
DO expected
46
Assignment error
47
UNTIL expected
50
Value doesn't fit into INTEGER
51
Value doesn't fit into WORD
52
Value doesn't fit into LONG
60
Duplicate label
61
Label not found
62
SUB or FUNCTION expected first
63
Integer or Long expected for ABS()
64 ,
expected
65
device was not OPEN
66
device already OPENED
68
channel expected
70
BAUD rate not possible
71
Different parameter type passed then declared
72
Getclass error. This is an internal error.
73
Printing this FUNCTION not yet supported
74 3
parameters expected
80
Code does not fit into target chip
81
Use HEX(var) instead of PRINTHEX
82
Use HEX(var) instead of LCDHEX
85
Unknown interrupt source
86
Invalid parameter for TIMER configuration
87
ALIAS already used
88 0
or 1 expected
89
Out of range : must be 1-4
90
Address out of bounds
91
INPUT, OUTPUT, BINARY, or RANDOM expected
92
LEFT or RIGHT expected
93
Variable not dimensioned
94
Too many bits specified
95
Falling or rising expected for edge
96
Prescale value must be 1,8,64,256 or 1024
97
SUB or FUNCTION must be DECLARED first
98
SET or RESET expected
99
TYPE expected
100
No array support for IRAM variables
101
Can't find HW-register
102
Error in internal routine
103 =
expected
104
LoadReg error
105
StoreBit error
106
Unknown register
107
LoadnumValue error
108
Unknown directive in device file
109 =
expected in include file for .EQU
110
Include file not found
111
SUB or FUNCTION not DECLARED
112
SUB/FUNCTION name expected
113
SUB/FUNCTION already DECLARED
114
LOCAL only allowed in SUB or FUNCTION
115 #
channel expected
116
Invalid register file
117
Unknown interrupt
200 .
DEF not found
201
Low Pointer register expected
202 .
EQU not found, probably using functions that are not supported by the selected chip
203
Error in LD or LDD statement
204
Error in ST or STD statement
205 }
expected
206
Library file not found
207
Library file already registered
210
Bit definition not found
211
External routine not found
212
LOW LEVEL, RISING or FALLING expected
213
String expected for assignment
214
Size of XRAM string 0
215
Unknown ASM mnemonic
216
CONST not defined
217
No arrays allowed with BIT/BOOLEAN data type
218
Register must be in range from R16-R31
219
INT0-INT3 are always low level triggered in the MEGA
220
Forward jump out of range
221
Backward jump out of range
222
Illegal character
223 *
expected
224
Index out of range
225 ()
may not be used with constants
226
Numeric of string constant expected
227
SRAM start greater than SRAM end
228
DATA line must be placed after the END statement
229
End Sub or End Function expected
230
You can not write to a PIN register
231
TO expected
232
Not supported for the selected micro
233
READ only works for normal DATA lines, not for EPROM data
234 ')
block comment expected first
235 '(
block comment expected first
236
Value does not fit into byte
238
Variable is not dimensioned as an array
239
Invalid code sequence because of AVR hardware bug
240
END FUNCTION expected
241
END SUB expected
242
Source variable does not match the target variable
243
Bit index out of range for supplied data type
244
Do not use the Y pointer
245
No arrays supported with IRAM variable
246
No more room for .DEF definitions
247 .
expected
248
BYVAL should be used in declaration
249
ISR already defined
250
GOSUB expected
251
Label must be named SECTIC
252
Integer or Word expected
253
ERAM variable can not be used
254
Variable expected
255
Z or Z+ expected
256
Single expected
257 ""
expected
258
SRAM string expected
259 -
not allowed for a byte
260
Value larger than string length
261
Array expected
262
ON or OFF expected
263
Array index out of range
264
Use ECHO OFF and ECHO ON instead
265
offset expected in LDD or STD like Z+1
266
TIMER0, TIMER1 or TIMER2 expected
267
Numeric constant expected
268
Param must be in range from 0-3
269
END SELECT expected
270
Address already occupied
322
Data type not supported with statement
323
Label too long
324
Chip not supported by I2C slave library
325
Pre-scale value must be 1,8,32,128,256 or 1024
326 #
ENDIF expected
327
Maximum size is 255
328
Not valid for SW UART
999
DEMO/BETA only supports 2048 bytes of code
Other error codes are internal ones. Please report them when you get them

منبع

 

+ نوشته شده در ساعت توسط alireza |

 مقایسه ما با تمام میکروهای 8 بیتی هست یعنی در مجموع میشه گفت AVR یه رقیب قدرتمند برای بقیه میکروهای قوی است و یه انقلاب بزرگ هم به شمار میره. هنوز هیچ میکرویی به سرعت بالای AVR در محاسبات دست پیدانکرده .در ضمن AVR قادره که محاسبات 16 بیتی رو هم انجام بده. شهار ATMEL هم اینکه شما پول یه میکرو 8 بیتی رو میدید ولی میتونید از قایلیتهای یک میکرو 16 بیتی استفاده کنید.
AVR از معماری RISC با تعداد دستورالعمل بالا بهره میبره که دربین میکروها کم نظیر هست. اکثر دستورالعمل های آن باوجود زیاد بودن تعداد دستورالعملها در یک سیکل انجام میشه.
این میکرو از مدهای کاهش توان به خوبی بهره برده و تایید کننده آن زیاد بودن مدهای کاهش توان آن و استفاده از تقسیم کلاک به صورت نرم افزاری است که در کمتر میکرویی دیده میشه.
AVR حتی برعکس میکروهای دیگه هیچ تقسیم کلاکی انجام نمیده(مثلا 8051 کلاک رو بر 12 و PIC که یه میکرو قدرتمند هست کلاک رو بر 4 تقسیم میکنه). این امر که AVR کلاک رو تقسیم نمیکنه موجب کاهش مصرف انژی و افزایش MIPS شده.

تکنولوژی بکار رفته در
AVR موجب شده که حتی میتوان از آن در محیط های صنعتی و پر نویز براحتی از آن استفاده کرد(به گفته خود ATMEL والا هنوز خودم یه تست دقیق انجام ندادم ولی اون رو با یه فیبر یه رو و با یه کابل LCD تقریبا 20 سانتی و یا استفاده از باتری ماشین در کنار شمع پیکان غیر انژکتوری تست کردم ولی فقط در فاصله تقریبا 5-6 سانتی از اون صفحه LCD قاتی میکرد ولی نمیدونم میکرو هم ریست میشد یا نه .در ضمن قسمت تغذیه فقط از یک 7805 تشکیل شده بود. و این آزمایش هم برای خودم و هم برای چند تا از دوستانم که کارهای صنعتی انجام میدادن شگفت آور بود). اما به دلیل اینکه هنوز هیچ کسی اون رو تابه حال در محیط صنعتی تست نکرده و به دلیل اطمینان بالای PIC هیچ کسی دوست نداره اعتبار خودش رو به خطر بندازه.
یه جا یه مهندسه میگفت توی یه محط صنعتی که حتی کامپیوتر ریست میکرده
PIC به خوبی کار خودشو انجام میداده!!!!!!!!!!

در ضمن
AVR مجهز به آخرین امکانات مثل تایمر واچ داگ و برون اوت دیتکتور و مبدل های ADC و PWM است.
یکی از مهمترین بخشی که کمتر در هر میکرویی دیده میشه مقایسه کننده آنالوگ با گین 1 و 10 و 200 و .. است که بسته به میکرو فرق میکنه.
این مقایسه کننده میتونه تو ورودی مبدل
ADC قرار بگیره . این بخش برای بعضی طراحان خیلی مهمه و اونا رو مجذوب خودش کرده.

forum.persiantools.com

+ نوشته شده در ساعت توسط alireza |

میکروهای AVR دارای انعطاف پذیری غیر قابل مقایسه و بی همتایی هستند.آنها قادر به ترکیب هر نوع کدی با یک معماری کارامد از طریق زبانهای C و Assembly هستند و قادرند از طریق این برنامه ها تمام پارامترهای ممکن در یک سیکل یا چرخه ماشین را با دقت بسیار بالا هماهنگ کنند.

میکرو AVR دارای معماریی است که میتواند در تمام جهات مورد استفاده شما،عمل کند میکرو AVR معماریی دارد که برای شما کارایی 16 بیتی ارائه می دهد که البته قیمتش به اندازه یک 8 بیتی تمام می شود.

بهره های کلیدی AVR :

 

دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)

دارای سیستمی با بهترین هماهنگی

دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک)

دارای کدهایی با کوچکترین سایز

دارای حافظه خود برنامه ریز

دارای واسطه JTAG که با IEEE 1149.1 سازگار است

(IEEE: Institute of Electrical and Electronics Engineers.)

دارای سخت افزار ضرب کننده روی خود

دارای بهترین ابزارها برای پیشرفت و ترقی

دارای حالات زیادی برای ترفیع دادن یا Upgrade .

واژگان کلیدی AVR :

 

میکرو کنترلر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک(ساعت) به اندازه کافی سریع است و می تواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند.

میکروکنترلر AVR بر مبنای معماری  RISC(کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.

به کارگرفتن حافظه از نوع Flash  که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است.

یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.

میکروهای AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذیه می شوند البته با انواع توان پایین (Low Power)که موجودند.

راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است:

با داشتن تنوعی باور نکردنی و اختیارات فراوان در کارایی محصولات AVR، آنها به عنوان محصولاتی که همیشه در رقابت ها پیروز هستند شناخته شدند.در همه محصولات AVR مجموعه ی دستورالعملها و معماری یکسان هستند بنابراین زمانی که حجم کدهای دستورالعمل شما که قرار است در میکرو دانلود شود به دلایلی افزایش یابد یعنی بیشتر از گنجایش میکرویی که شما در نظر گرفته اید شود می توانید از همان کدها استفاده کنید و در عوض آن را در یک میکروی با گنجایش بالاتر دانلود کنید.

 

توان مصرفی پایین:

  • توان مصرفی پایین آنها برای استفاده بهینه از باتری و همچنین کاربرد میکرو در وسایل سیار و سفری طراحی شده که میکروهای جدید AVR با توان مصرفی کم از شش روش اضافی در مقدار توان مصرفی ، برای انجام عملیات بهره می برند.
  • این میکروها تا مقدار 1.8 ولت قابل تغذیه هستند که این امر باعث طولانی تر شدن عمر باتری می شود.
  • در میکروهای با توان پایین ، عملیات شبیه حالت Standby است یعنی میکرو می تواند تمام اعمال داخلی و جنبی را متوقف کند و کریستال خارجی را به همان وضعیت شش کلاک در هر چرخه رها کند!

نکات کلیدی و سودمند حافظه ی فلش خود برنامه ریز:

  • قابلیت دوباره برنامه ریزی کردن بدون احتیاج به اجزای خارجی
  • 128 بایت کوچک که به صورت فلش سکتور بندی شده اند
  • داشتن مقدار متغیر در سایز بلوکه ی بوت (Boot Block)
  • خواندن به هنگام نوشتن
  • بسیار آسان برای استفاده
  • کاهش یافتن زمان برنامه ریزی
  • کنترل کردن برنامه ریزی به صورت سخت افزاری

راههای مختلف برای عمل برنامه ریزی:

موازی یا Parallel :

  • یکی از سریعترین روشهای برنامه ریزی
  • سازگار با برنامه نویس های(programmers) اصلی

 

خود برنامه ریزی توسط هر اتصال فیزیکی:

  • برنامه ریزی توسط هر نوع واسطه ای از قبیل TWI و SPI و غیره
  • دارا بودن امنیت صد درصد در بروزرسانی و کدکردن

 

ISP:

  • واسطه سه سیمی محلی برای بروزرسانی سریع
  • آسان و موثر در استفاده

 

واسطه JTAG :

  • واسطه ای که تسلیم قانون IEEE 1149.1 است و می تواند به صورت NVM برنامه ریزی کند یعنی هنگام قطع جریان برق داده ها از بین نروند.استفاده از فیوزها و بیتهای قفل.
  • بیشتر برای دیباگ کردن آنچیپ و به منظور تست استفاده می شود

 

منبع

 

+ نوشته شده در ساعت توسط alireza |

زبانهای سطح بالا یا همان HHL به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد بای میکروکنترلر ها حتی برای میکروهای 8 بیتی کوچک هستند. زبان برنامه نویسی BASIC و C بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید میکنند. ATMEL ایجاد تحولی در معماری، جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکروهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری RISC انجام میدهند و از 32 رجیسر همه منظوره (Accumulator) استفاده میکنند که باعث شده 4 تا 12 بار سریعتر از میکروهای مورد استفاده کنونی باشند.

تکنولوژی حافظه کم مصرف غیر فرار اتمل برای برنامه نویسی
AVR مورد استفاده قرار گرفته است در نتیجه حافظه های فلش و EEPROM در داخل مدار قابل برنامه ریزی هستند(ISP). میکروهای AVR اولیه داری 1 ، 2 ، و 8 کیلوبایت حافظه فلش و به صورت کلمات 16 بیتی سازماندهی شده بودند.

AVR ها به عنوان میکروهای RISC با تعداد دستورات فراوان طراحی شده اند که باعث میشود حجم کد تولید شده کم و سرعت بالاتری به دست آید.

عملیات تک سیکل:
با انجام تک سیکل دستورات، کلاک اسیلاتور با کلاک داخلی سیستم یکی میشود. هیچ تقسیم کننده ای در داخل
AVR قرار ندارد که ایجاد اختلاف فاز کند. اکثر میکروها کلاک اسیلاتور به سیستم را به 4 یا 12 تقسیم میکنند که خود باعث کاهش سرحت میشود. بنابراین AVR ها 4 تا 12 بار سریعتر و مصرف آنها نیز 4-12 بار نسبت به میکروکنترولرهای مصرفی کنونی کمتر است زیرا در تکنولوژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است.

طراحی برای زبانهای
BASIC و C :
زبانهای
BASIC و C بیشترین استفاده را در دنیای امروز بعنوان زبانهای HLL دارند. تا امروز معماری بیشتر میکروها برای زبان اسمبلی طراحی شده بود و کمتر از زبانهای HLL حمایت کرده اند.
هدف
ATMEL طراحی معماری بود که هم برای زبان اسمبلی و هم زبانهای HLL مفید باشد. به طور مثال در زبانهای BASIC و C میتوان یک متغییر محلی به جای متغییر سراسری در داخل زیربرنامه تعریف کرد، در این صورت فقط در زمان اجرای زیربرنامه مکانی از حافظه RAM برای متغییر اشغال میشود در صورتی که اگر متغییری به عنوان سراسری تعریف گردد در تمام وقت مکانی از حافظه FLASH ROM را اشغال کرده است.
برای دسترسی سریعتر به متغییرهای محلی و کاهش کد، نیاز به افزایش رجیسترهای همه منظوره است.
AVR ها دارای 32 رجیستر هستند که مستقیما به LOGIC ALU (ARITHMETIC UNIT) متصل شده اند، و تنها در یک کلاک سیکل به این واحد دسترسی پیدا میککند. سه جفت از این رجیسترها میتوانند به عنوان رجیسترهای 16 بیتی استفاده شوند.

منبع

+ نوشته شده در ساعت توسط alireza |

زبانهای سطح بالا یا همان HHL به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد بای میکروکنترلر ها حتی برای میکروهای 8 بیتی کوچک هستند. زبان برنامه نویسی BASIC و C بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید میکنند. ATMEL ایجاد تحولی در معماری، جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکروهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری RISC انجام میدهند و از 32 رجیسر همه منظوره (Accumulator) استفاده میکنند که باعث شده 4 تا 12 بار سریعتر از میکروهای مورد استفاده کنونی باشند.

تکنولوژی حافظه کم مصرف غیر فرار اتمل برای برنامه نویسی
AVR مورد استفاده قرار گرفته است در نتیجه حافظه های فلش و EEPROM در داخل مدار قابل برنامه ریزی هستند(ISP). میکروهای AVR اولیه داری 1 ، 2 ، و 8 کیلوبایت حافظه فلش و به صورت کلمات 16 بیتی سازماندهی شده بودند.

AVR ها به عنوان میکروهای RISC با تعداد دستورات فراوان طراحی شده اند که باعث میشود حجم کد تولید شده کم و سرعت بالاتری به دست آید.

عملیات تک سیکل:
با انجام تک سیکل دستورات، کلاک اسیلاتور با کلاک داخلی سیستم یکی میشود. هیچ تقسیم کننده ای در داخل
AVR قرار ندارد که ایجاد اختلاف فاز کند. اکثر میکروها کلاک اسیلاتور به سیستم را به 4 یا 12 تقسیم میکنند که خود باعث کاهش سرحت میشود. بنابراین AVR ها 4 تا 12 بار سریعتر و مصرف آنها نیز 4-12 بار نسبت به میکروکنترولرهای مصرفی کنونی کمتر است زیرا در تکنولوژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است.

طراحی برای زبانهای
BASIC و C :
زبانهای
BASIC و C بیشترین استفاده را در دنیای امروز بعنوان زبانهای HLL دارند. تا امروز معماری بیشتر میکروها برای زبان اسمبلی طراحی شده بود و کمتر از زبانهای HLL حمایت کرده اند.
هدف
ATMEL طراحی معماری بود که هم برای زبان اسمبلی و هم زبانهای HLL مفید باشد. به طور مثال در زبانهای BASIC و C میتوان یک متغییر محلی به جای متغییر سراسری در داخل زیربرنامه تعریف کرد، در این صورت فقط در زمان اجرای زیربرنامه مکانی از حافظه RAM برای متغییر اشغال میشود در صورتی که اگر متغییری به عنوان سراسری تعریف گردد در تمام وقت مکانی از حافظه FLASH ROM را اشغال کرده است.
برای دسترسی سریعتر به متغییرهای محلی و کاهش کد، نیاز به افزایش رجیسترهای همه منظوره است.
AVR ها دارای 32 رجیستر هستند که مستقیما به LOGIC ALU (ARITHMETIC UNIT) متصل شده اند، و تنها در یک کلاک سیکل به این واحد دسترسی پیدا میککند. سه جفت از این رجیسترها میتوانند به عنوان رجیسترهای 16 بیتی استفاده شوند

منبع

+ نوشته شده در ساعت توسط alireza |

ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه  ورودي/خروجي است. ريز  پردازنده نيز متشكل از واحد پردازش مركز (CPU) و  واحد كنترل (CU)است.

CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد  نظر انجام شوند.

حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.

 

درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

 

منبع

 

+ نوشته شده در ساعت توسط alireza |

 

به نام خدا

 

 

ميكروكنترلرهاي خانواده PIC از معماري هاردوارد استفاده ميكنند . اين بدان معنااست كه كل حافظه به دو قسمت تقسيم شده است  . كه عبارتند از : حافظه داده و حافظه برنامه .مزيت اين معماري آن است كه ميتوان به هر دو بخش حافظه در يك دستورالعمل دسترسي داشت  . اغلب PIC  ها داراي سه بلاك حافظه داخلي ميباشند :

 

 

۱_ Data memory  : كه اين حافظه به Bank0 و Bank1 و ... تقسيم ميشوند .هر بانك شامل حافظه  RAM  معمولي (general purpose register) و ريجيستر هاي مخصوص (status,intcon,option,…) مي باشد.

 

2_ Eeprom memory  : يكي از تفاوت هاي اصلي ميكروهاي گذشته مثل سري 8051 با PIC و AVR  ، همين حافظه ميباشد. اين حافظه تقريبا بينابين RAM  و ROM   از نظر كاربرد ميباشد . اين  حاظه به صورتي است كه ميتوان در حين برنامه نويسي ، اطلاعات را در آن ذخيره يا پاك  كرد (RAM) واطلاعات آن در صورت قطعي برق نيز پاك نمي شود (ROM) . نسيت به  RAM  و ROM  داراي سرعت به مراتب پايين تر ميباشد .

 

3_Program memory  : برنامه اي كه توسط كاربر نوشته ميشود . در اين حافظه LOAD ميشود . به عنوان مثال PIC16F877 (40 پين) داراي پروگرام كانتر 13 بيتي براي آدرس دهي كردن Flash program memory به حجم (8k*14bit) ميباشد .

 

 

PIC ها از لحاظ نوع Program memory  به 4 دسته تقسيم ميشوند .

 

1) Flash Program Memory

 

مزيت اين گونه PIC ها سرعت نسبتا بالاي خواندن اطلاعات از ROM و درنتيجه سرعت بالاتر اجراي عمليات ميباشد . حافظه هاي فلش موجب گرديده تا سرعت اجراي برنامه از 12 كلاك در 8051 به 4 كلاك در PIC و 1 كلاك در AVR كاهش يابد .

خانواده هايي كه نام IC داراي F باشد داراي اين گونه حافظه ميباشند (مانند 16F84 , 16F877.....) .

 

2) Eprom program memory

 

خانواده هايي كه نام IC داراي C يا CE باشد.(16C84)

 

3)Rom Program Memory

 

خانواده هايي كه نام IC  داراي CR باشد (16CR84)

 

4) Eeprom Program Memory

 

همچنين بعضي از PIC ها نيز داراي رنج ولتاژي گسترده ميباشند كه داراي مشخصه  L  در نام  IC  مي باشد.(PIC16LF84)

 

منبع

 

+ نوشته شده در ساعت توسط alireza |

قبل از شروع این بحث بهتر است آشنایي مختصري با تئوري موسیقي پیدا کنید.اجزاي یک ملودي نتها هستند.هر نت در واقع يک فرکانس یا يک باند فرکانسي است.مثلا طبق استاندارد جهاني نت لا ازپايينترین اکتاو (Octave)، با فرکانس 440HZ نواخته می شود.نتها در اکتاوها متوالیا تکرار می شوند.اما فرق یک نت در یک اکتاوتا اکتاودیگر چیست؟تفاوت دربمی وزیری صداست.درواقــــع صدای نتهـــــای واقع در اکتــاوهای بالاتر، زیرترمی شود.

فرکانس نتهای موسیقی را می توان طبق رابطه زیر به دست آورد.

fx=fbase * 2 ^(n/12)

در رابطه بالا fbase فرکانس یک نت معلوم است.مثلا نت لا که قبلا گفته شد وn فاصله کلید مجهول از کلید معلوم رو به بالاست.مثلا فرکانس نت سی از همان اکتاو،طبق زیر به دست می آید.

fsi=440*2^(2/12)=494HZ

حال شما می توانید با تولید فرکانسهای متناظر نتها به وسیله یک میکروکنترلر،موسیقی دلخواه خود را اجرا کنید.در واقع میکروکنترلر شما باید برای هر نت یک موج مربعی با فرکانس آن نت و مدت زمان کشش آن نت روی یک پین خود تولید کند.ساختن موج مربعی با میکروکنترلر کار ساده ایست.همچنین می توانید فرکانس یا پرید نتها یا عددی متناسب با آنها را به عنوان اعدادی ثابت در یک آرایه ذخیره کنید تا متناسب با هر نت آنها را از جدول استخراج کنید.

برای شروع کار می توانيد مثال زير را دانلود کنيد.

 

Download : AVR-Music.zip

 

http://www.amnelec.persianblog.com

+ نوشته شده در ساعت توسط alireza |

 


میکرو کنترلر در اصطلاح به ریز پردازنده هایی گفته می شود که بجز
CPU حداقل شامل سیستم های ورودی و خرو جی (I/o) حافظه و مدارات ارتباط با حافظه در داخل تراشه اصلی هستند و نیازی به مدارات واسطه بیرونی جهت ارتباط با سیستم های جانبی را ندارد. البته امکانات همه میکرو کنترلر ها هشابه و یکسان نمی باشد و برخی از میکرو کنترلر ها علاوه بر امکانات فو ق العاده شامل مبدل های دیجیتال به آنالوگ و آنالوگ به دیجیتال و یا حتی امکانات بیشتر و اختصاصی تر می باشند.

میکرو کنترلر MC68HC7058 ساخت شرکت MOTOROLA نمونه ای از میکرو کنترلر های مدرن می باشد که امروزه در ساختمان مانیتور های پارس از آن استفاده شده است. قلب این میکرو کنترلر را ریز پردازنده 6805 تشکیل می دهد و حافظه آن شامل 3.75 کیلو بایت حافظه ROM جهت ذخیره کردن نرم افزار اجرایی و 256 بایت حافظه RAM جهت ذخیره سازی مو قت می باشد.
نرم افزار ذخیره شده در حافظه این میکرو کنترلر تحت امتیاز شرکت هیوندای کره جنوبی بوده و قابل دسترسی یا دخل و تصرف ننی باشد و فقط مختص 15 اینج مدل
HL -5870 می باشد. از و ضایف اصلی میک رو کنترلر می توان به موارد زیر اشاره کرد:
1- کنترل دکمه های جلوی مانیتور در صنعت ساخت
2- ایجاد ولتاژ های
DC جهت کنترل قسمت های مختلف مدار
3-ارتباط با حامظه
none volatile جهت ذخیره سازی و باز خوانی اطلاعات.
4- ارتباط با سیستم تغذیه جهت مدیریت توان مصرمی
5- ارتباط با سیستم مولد
OSD
6- ارتباط با سیستم تنظیم گر خودکار
7- تنظیم اعو جاجات و تصحیح خطاها
8- مضناتیس جدایی
9- پردازش سیگنال های همزمانی
10- کنترل پیچش تصویر

 

 

منبع

 

+ نوشته شده در ساعت توسط alireza |

اول الکتریسیته نبود، یعنی بود ولی آدم نمی دیدش! گاهی وقتا رعد و برق رو تو آسمون می دید ولی نمی دونست چیه! بعد که فهمید کهربا می تونه کاه رو جذب می کنه بازم نمی دونست چرا ولی فلاسفه یونان باستان می گفتند کهربا روح داره که می تونه چیزی رو حرکت بده! خب بیچاره ها حق هم داشتند شاید اگه ماکسول هم اون موقع زندگی می کرد همین حرف رو میزد! بعد که یه دو سه هزار سالی گذشت تا یه بابایی به اسم گیلبرت اومد گفت نه بابا این به خاطر اینه که کهربا در اثر اصطکاک با بعضی از مواد می تونه باردار بشه و خرده کاه رو جذب کنن. تا اینجا هیچ خبری از بار متحرک نبود و فقط بار ساکن مورد توجه بود تا اینکه تو اوائل قرن هجدهم بنجامین فرانکلین گفت الکتریسیته می تونه جاری بشه و در اینجا بود که مدار الکتریکی متولد شد چون ذره ی باردار فقط تو مسیر بسته می تونه دور بزنه. حدود صد سال بعد در سال 1831 مایکل فارادی تئوری تولید جریان الکتریکی بوسیله ی تغییر میدان مغناطیسی رو ارائه کرد و چند سال بعد ژنراتورها ساخته شدند. از همین جا بود که بشر تصمیم گرفت الکترون ها رو به شکلهای مختلف تو مسیرهای مختلف (مدار) به گردش دربیاره و همش تقصیر فارادی بود !!!!

تا اینجا هم تا پنجاه شصت سال همه چیز به خوبی و خوشی! پیش می رفت ولی در اواخر صده ی نوزدهم بود که یک روز آقای ادیسون لامپ خلا رو کشف کردند و دانش الکترونیک متولد شد. این اختراع مفید به سرعت منجر به ساخت تقویت کننده و فرستنده های رادیویی شد. بازهم تا چهل پنجاه سال مهندسان الکترونیک سرشون به لامپ های خلا گرم بود و برای خودشون با این لامپ ها انواع و اقسام مدارات آنالوگ و دیجیتال از آمپلی فایر صوتی گرفته تا ماشین حساب های بزرگ و کامپیوتر رو ساخته بودند. اولین کامپیوترشون انیاک (
ENIAC) بود با 30.000 تا لامپ و به اندازه یک ساختمان چند طبقه که قدرتش از ماشین حساب های جیبی شما هم کمتر بود!

این دفعه یه اتفاقی افتاد که تقصیر آزمایشگاه های بل بود که نیمه هادی ها رو به جون هم انداخت و ترانزیستور و دیود و ترایاک و انواع المان های غیرخطی با تولد اولین المان فیزیک حالت جامد (ترانزیستور) اختراع شدند و دنیا برای مهندسان الکترونیک گلستان شد!! لامپ های داغ، شکننده، گران، پرمصرف، حجیم و کم انعطاف جاشون رو به یک سوگلی سه پایه دادند که نه تنها داغ نمی شد و نمی شکست، خیلی کم مصرف و جمع و جور بود. تولد این جانور سه پا اولین انقلاب الکترونیک لقب گرفت ولی انقلاب اول زیاد دوام نداشت چون 10-15 سال بعد از اون دومین انقلاب که اختراع مدار مجتمع (
IC) بود صورت گرفت. مدارهایی که قبلا یک بار با لامپ طراحی شده بودند و یک بار با ترانزیستور باز طراحی شدند این بار روی یک تراشه ی سیلیکونی به صورت یک بسته بندی وارد بازار شدند.

یک پرانتز برای جمله ی آخر:

همه ی مدارهایی که با عناصر گسسته ساخته شده بودند بعد از اختراع
IC به صورت مجتمع ساخته نشدند چون اولا سیستم های کاربردی انقدر متنوعند که امکان تولید همه ی آن ها به صورت Package وجود ندارد و ثانیا گاهی ما نیاز به مداری داریم که فقط برای خودمان قابل استفاده است و بنابراین تا حد امکان مدارات مجتمع با کاربرد چند منظوره و به عنوان المان های اساسی تولید شدند و از آن ها در طراحی سیستم های مورد نیاز استفاده شد.

پرانتز بسته!

یه روز یه بابایی اومد گفت حالا که من برای طراحی یک سیستم باید از این همه المان استفاده کنم چقدر خوب می شد اگه یه المان داشتم که این سیستم رو توش جا می دادم!
خب با اینکه المان ها خیلی هاشون به صورت مجتمع و بسته تولید شده بودند ولی بازم این بابا حق داشت!! خب یه وقت می خواست یه مدار کنترلی طراحی کنه باید از چند ده جین المان استفاده می کرد. پس یه بابای دیگه حرفشو گوش کرد و یه المان براش ساخت که باهاش هرکاری که می خواست می تونست بکنه. اسم اون المان
میکروکنترلر بود.
ولی میکروکنترلر خام بود باید بهش می گفت که ازش چی می خواد. این کار رو برنامه نویسی برای میکروکنترلر انجام داد و به این ترتیب بود که این المان انقدر محبوب شد که هنوز چیزی جانشین اش نشده و همچنان بعد از حل بسیاری از مسائل به دنبال مسائلی برای حل می گردد ...

منبع

 

+ نوشته شده در ساعت توسط alireza |

به توضیح تک به تک قسمتها میپردازیم :

۱:در قسمت معرفی آی سی از کلمه کلیدی $Regfile برای معرفی استفاده شده است . این دستور به این صورت است که باید بعد ازآن کلمه معرف آی سی مورد استفاده را در جلوی آن وارد کنیم . البته برای هر آی سی کلمه ی مخصوصی وجود دارد که برای ATMEGA32 باید کلمه ی M32def.dat را تایپ کرد . البته باید توجه داشت که این کلمه باید داخل یک جفت کوتیشن ( گ + Shift ) قرار گیرد :
$
Regfile = “M32def.dat

۲: در قسمت بعدی که تعیین فرکانس کاری است کلمه کلیدی $Crystal باید نوشته شود و آنرا باید مساوی با فرکانس کار بر حسب هرتز قرار داد :
$
Crystal = 1000000

۳: حال به بخش معرفی سخت افزار رسیدیم . در این برنامه چون پورت B باید بتواند جریان بیرون دهد و سخت افزار خارجی ای که همان LED است را روشن کند بعنوان خروجی تعریف میشود . همیشه برای معرفی سخت افزار از کلمه کلیدی Config اسفاده میشود . پس برای خروجی کردن پورت B مینویسیم :
Config Portb = output

۴: چون در این برنامه نیازی به تعریف متغیری نبود به بخش برنامه اصلی میرویم و در این قسمت عددی را به پورت B خواهیم فرستاد تا طبق آن LED ها روشن شوند . البته ذکر این نکته لازم است که اگر بخواهیم عددی را در مبنای دودویی بنویسیم ابتدا باید &B را نوشته و بعد ععد مورد نظر را تایپ کنیم و همینطور برای نوشتن در مبنای هگز که &H تایپ میشود و اگر هیچکدام از کلمات ذکر شده را ننویسیم عدد در مبنای دسیمال محسوب میشود .

۵: در آخر برنامه نیز از کلمه کلیدی END برای مشخص نمودن پایان برنامه استفاده شده است .

دانلود برنامه ==> http://www.irankorea.com/microtak/microtak-about27.html

 

+ نوشته شده در ساعت توسط alireza |

 

 

تایمر ها از اجزاء پر کاربرد پروژه های 8051 می باشند.کار اصلی تایمر شمارش تعداد سیکل های کریستال می باشد.چون هر دوره تناوب کریستال در کسری از ثانیه رخ می دهد بنابراین می توان برای شمارش زمان سپری شده ، از آن استفاده کرد .
8051 دارای دو عدد تایمر 16 بیتی می باشد که با نامهای تایمر یک و تایمر صفر شناخته شده اند .هر تایمر در حقیقت از دو ثبات 8 بیتی با نام
TH و TL ساخته شده است .از تایمر ها در 4 مود کاری می توان استفاده کرد:
مود 00 که از تایمر به عنوان یک شمارشگر 13 بیتی استفاده می کند .
مود 01 از تایمر به عنوان شمارشگر 16 بیتی استفاده می کند .
مود 02 به عنوان شمارشگر 8 بیتی با راه اندازی خودکار استفاده می کند.(
AutoReload)
مود 03 تایمر را به دو تایمر 8 بیتی تقسیم می کند که به آن حالت تسخیر شده می گویند.

در 4 مود کاری بالا مود های یک و دو بیشترین کاربرد را در انجام پروژه ها دارند .تایمر 16 بیتی مود 01 می تواند از مقدار 0000 تا
FFFFH بشمارد پس از رسیدن به مقدار FFFF تایمر پرچم خود را (TF) را یک می کند و مجددا از مقدار 0000 شروع به شمارش می کند.

در مود 2 که همان حالت
AutoReload است تایمر به عنوان یک شمارشگر 8 بیتی از مقدار 00 تا FFh می شمارد البته در این مود می توان برای تایمر تعیین کرد که چه مقدار بشمارد فرضا در برنامه ای احتیاج به این پیدا می کنیم تا تایمر یک وظیفه ای را هر 100 میکرو ثانیه انجام دهد در این حالت از مود 2 استفاده می کنیم . مقدار اولیه شمارش را در ثبات TH قرار می دهیم .و سپس پس از راه اندازی تایمر این مقدار در ثبات TL قرار می گیرد و تایمر از مقدار تعیین شده تا FFh می شمارد . پس از رسیدن TL به FFh تایمر پس از یک کردن TF ، مجددا مقدارموجود در TH را در ،م کپی کرده و به همین ترتیب شمارش ادامه می یابد .

تایمر ها دارای دو ثبات با نامهای
TCON وTMOD هستندثبات ،TMOD برای مقدار اولیه دادن به تایمر مورد استفاده قرار می گیرند و ثبات TCON برای کنترل تایمر مورد استفاده قرار می گیرد ثبات TMOD همیشه باید قبل از راه اندازی تایمر مقدار دهی شود.شکل ثبات TMOD به صورت زیر است:


TMODیک ثبات 8 بیتی است که به دو قسمت 4 بیتی (nible) تقسیم می شود نیبل بالا برای تایمر 1 و نیبل پایین برای تایمر 0 مورداستفاده قرار می گیرد .اختلاف دو نیبل در همین است و غیر از این کاملا با هم مشابهند .
بیت
Gate ، می توان گفت که یک نوع راه انداز تایمر است . این بیت مشابه کلید روشن و خاموش عمل می کند در صورتی که مقدار این بیت را یک قرار دهیم کنترل تایمر از طریق پالس ورودی به پایه ی INT1 صورت می گیرد یکی از کاربرد های این بیت اندازه گیری پالس خارجی اعمال شده به پایه ی INT1 می باشد.
بیت
C/T نوع کارکرد تایمر را تعیین می کند که آیا تایمر برای شمارش تعداد پالس کریستال خارجی متصل به پایه T1 یا T0 مورداستفاده قرار گیرد یا برای شمارش تعداد پالس های کریستال مدار میکرو که آن هم به پایه های 18 و 19 متصل است .در حالت اول می گویند که تایمر به عنوان کانتر (شمارنده اتفاقات) عمل می کند و در حالت دوم می گویند که تایمر در حالت شمارش گر زمان کار می کند .در صورتی که بیتc/T را یک کنیم تایمر به عنوان کانتر و در صورتی که این بیت را صفر کنیم تایمر به عنوان شمارشگر واحد زمان به کار گرفته می شود.

بیتهای
M1و M0 هم مود کاری را که قبلا بررسی کردیم تعیین می کند .ابتدا مود مورد نظر را تعیین می کنیم سپس مقدار معادل آن در مبنای دو را در بیتهای M1, M2 قرار می دهیم .

یک مثال برای اینکه تایمر 1در حالت
AutoReload و به عنوان تایمر (شمارش گر زمان) مورد استفاده قرار گیرد :


معدل این کار دستور زیر است:

Mov Tmod,#00100000b


مرحله بعدی استفاده از تایمر تعیین چگونگی روشن و خاموش کردن تایمر است.
ثبات دیگری که در مورد تایمر مورد استفاده قرار می گیردثبات
TCON است بیتهای این ثبات در شکل زیر مشخص می باشند.


بیت
TF:قبلا هم در مورداین بیت صحبت کردیم هنگامی که تایمر شروع به شمارش کرد بسته به مودی که برای کار در آن تنظیم شده است پس از رسیدن به مقدار نهایی (FFh یا FFFFh یا1FFFh ) قبل از اینکه مجددا از صفر شروع به شمارش کند بیتTF را یک می کند تا نشان دهد که مقدار فعلی در دور دوم شمارش است و قبلا یک بار شمارش کامل شده است .
این بیت به صورت سخت افزاری یک می شود و ما باید به صورت نرم افزاری قبل از پایان دور دوم شمارش آن را صفر کنیم .
TF1 برای تایمر یک و TF0 پرچم شمارش برای تایمر صفر است.

بیت
TR: بیت کنترل راه اندازی نامیده شده است .در صورتی که این بیت را یک کنیم تایمر شروع به شمارش می کند و در صورتی که این بیت صفر شود تایمر متوقف می شود. مانند TF، ،TR1 برای کنترل تایمر 1 و TR0 برای کنترل راه اندازی تایمر 0 مورد استفاده قرار می گیرد.

4 بیت بعدی این ثبات برای عملیات وقفه کاربرد دارد که انشاالله در مبحث وقفه ها به صورت کامل توضیح خواهیم داد .
اکنون روش کار با تایمر را به صورت الگوریتم در می آوریم تا بهخاطر سپردن آن آسانتر شود.

1.از کدام تایمر استفاده خواهیمکرد؟
2.مود کاری تایمر را تعیین کنید.
3.تایمر مورد نظر شماست یا شمارنده
3.ثبات
TMOD را با معادل دودوئی آن بار گذاری کنید.
4.در صورتی که از
AutoReload استفاده می کنید TH را با مقدار اولیه مناسب بار کنید.
5.تایمر را راه اندازی کنید .
7.منتظر یک شدن
TF بمانید .


مثال:
برنامه ای بنویسید که یک پالس با دوره تناوب 200 میکرو ثانیه بر روی پایه ی
P1.0 تولید کند.


حل:
دوره تناوب پالس 200 میکرو ثانیه عنوان شده است یک پالس در نصف دوره تناوب در حالت
high و در نصف دیگر در حالت low قرار دارد . نصف دوره تناوب 100 میکرو ثانیه است و چون پالس متقارن است ما فقط به نصف دوره تناوب احتیاج داریم بنابراین مود تایمر را 2 یعنی حالت autoReload و مقدار اولیه را -100 در نظر می گیریم.
برای اینکه بفهمید چرا -100 ،توجه کنید که ما می خواهیم که تایمر 100 واحد بشمارد در حالت
AutoReload چون تایمر 8 بیتی است حداکثر مقدار شمارش FFh است بنابراین :
TH=FFh-100d=9Bh
اما -100 هم دقیقا مشابه مقدار بالا است .بنابراین اگر ما به جای -100 مقدار 9
Bh را در TH قرار می دادیم نیز نتیجه فرقی نمی کرد.

در این مثال فرقی نمی کند که از کدام تایمر استفاده کنیم .در حقیقت تایمر ها هیچ تفاوتی با هم ندارند .

Mov TMOD,#00100000b

Mov TH1,#-100
Setb TR1
Wait :jnb Tf1,wait
ClR TF1
CPL p1.0
Sjmp wait


همانطور که مشاهده می کنید قبل از پایان دور دوم شمارش مقدار
TF باید صفر شود.

منبع:دانشگاه کردستان

+ نوشته شده در ساعت توسط alireza |

 

از اوايل دهه هشتاد كارخانجات ساخت مدارهاي مجتمع به طراحي و توليد پردازنده هائي با كاربرد هاي خاص نمودند. يكي از اين محصولا‌ت كه در سالهاي اخير مصرف بسيار زيادي پيدا كرده است ميكروكنترلر ها مي باشند.
با ساخت ميكرو كنترلرها تحول شگرفي در ساخت تجهيزات الكترونيكي نظير لوازم خانگي، صنعتي، پزشكي ، تجاري و ... به وجود آمده است كه بدون آن تصورتجهيزات و وسايل پيشرفته امروز غير ممكن است. به عنوان مثال مي توان از ربات ها ، تلفن همراه و انواع سيستم هاي اتوماسيون نظير وانواع وسايل ديجيتالي مدرن ديگر نام برد.
علل پيدايش :
از آنجايي كه در مصارف صنعتي و ... جهت كنترل ماشينهاي صنعتي و... كنترل فرآيند معمولا‌ً با ارسال فرمانهاي مختلف و دريافت اطلا‌عات از قسمتهاي مختلف، اندازه گيري زمان ، شمارنده ، مبدل آنالوگ به ديجيتال(3) و بالعكس ، ارسال و دريافت اطلا‌عات به صورت سريال و موازي و ... نياز مي باشد
CPU ، شركتهاي ساخت قطعات الكترونيكي درصدد آن برآمدند تا با ساخت سيستمي يكپارچه همراه با يك قدرتمند تمامي امكانات فوق را دربر داشته باشد.
شركتهاي توليد كننده :
ازجمله شركتهايي كه در اين زمينه فعاليت داشته اند : شركت اينتل با سري چيپهاي
AT8050,8051,8052,...، شركت زايلوگ باسري چيپهاي Z8601,8602,8603,...و شركت موتورولا‌ با سري چيپهاي 6811A1,A2,...را مي توان نام برد. شركتهاي ديگري مانند هيتاچي و ... در اين زمينه توليداتي داشته اند ولي عمده ترين توليدكنندگان ميكروكنترلر كه به صورت حرفه اي عمل نموده اند سه شركت فوق مي باشند

 

 

+ نوشته شده در ساعت توسط alireza |

تا حالا فکر کردین AVR رو به مانیتور وصل کنین؟ چه قدر خوب می شه نه؟ اگه دیگه خروجی ویدیو هم داشته باشه که دیگه حرف نداره نه؟ ولی نمی ارزه حتما خیلی پیچیده می شه ولی تعجب نکنین اگه بگم چند تا مقاومت می خواد ادامه رو ببینین

این یه کارت گرافیک که می تونه متن رو از طریق پورت سریالش در یافت کنه و به خروجی
VGA یا ویدئو ارسال کنه برنامش رو هم می تونید روی ATMega16 ، 32 یا میکرو های مشابه اجرا کنید.
خود برنامه به زبان
C نوشته شده و باید با GCC اجراش کنید (مقاله AVR GCC رو ببینین http://www.iranled.com/modules.php?name=News&file=article&sid=41 )
نقشه خیلی ساده ای هم داره توی فایل می تونید کل سورس نقشه و ... رو پیدا کنید

Download File

 

+ نوشته شده در ساعت توسط alireza |

این یه PDF آموزشی برای AVRStudio
AVR Studio یک نرم افزار رایگان برای دیباگ کردن نوشتن برنامه اسمبلی برای AVR های شرکت Atmel است که می توانید آنرا از سایت این شرکت (www.atmel.com) در یافت کنید

آخرین ورژن
AVR Studio در هنگام نوشتن این مقاله 4 است از این نرم افزار به غیر از دیباگ کردن برنامه های اسمبلی می توانید برای دیباگ کردن کد های کمپایل شده را نیز استفاده کنید و به عنوان دیباگ برای نرم افزار های که فرمتهای COFF را مانند Codevision پشتیبانی می کنند استفاده کنید(از ورژن 4.06 به بعد) با این روش می توانید برنامه نوشته شده به زبان مثلا C را داخل AVRStudio دیباگ کنید.

Download File

 

http://www.iranled.com/article33.html

+ نوشته شده در ساعت توسط alireza |

آیا تا کنون درگیر پروژه ای شده اید که به حافظه غیرفرارخیلی بالا(چند ده یا صد مگا بایت)احتیاج داشته باشید!؟ اگر این طورباشد،حتما در ابتدا ناامید شده اید.چون این چنین حافظه ای به صورت چیپ وجود ندارد.اما برای من خیلی وقتها یک محدودیت بزرگ،باعث یک جهش بزرگ شده است.همین محدودیت باعث شدکه کارتهای مالتی مدیا(MMC) را شکار کنم.گرچه حتی خود شرکتهای سازنده این کارتها هم اطلاعات فنی آنها را به راحتی در اختیار دیگران قرارنمی دهند.اما چیزی به دست آوردم که ارزش زحمتش را داشت.

بگذریم! شما میتوانید یک MMC را با ظرفیت 128مگا بایت به قیمت حدود 10000تومان بخرید.چیزی که گفتم برای یک مهندس برق و سخت افزار خیلی وسوسه کننده است.با این حجم حافظه شما می توانید با فرکانس نمونه گیری 20کیلو نمونه در ثانیه(20ksps) و با یک A/DوD/A هشت بیتی حداقل یک ساعت و چهل و پنج دقیقه صدا ضبط کنید!و اما این کارتها مزایایی دارند که روز به روز بر کاربردشان افزوده می شود.

1-اندزه کوچکی دارند.

2-حجم حافظه بالایی دارند.

3-سرعت بالایی دارند(با ارتباط دهی SPI تا 20 مگا بیت در ثانیه)

4-سیم کشی کمی لازم دارند.

5-قیمت خیلی کمی دارند.

6-همه جا یافت می شوند.در شهرستان ما(لارستان) ، شاید برای پیدا کردن یک میکروکنترلر8051دچار مشکل شوید.ولی MMCفقط در دکه های نوشابه فروشی یافت نمی شود.

در کنار همه مزایای ذکر شده اکثر آنها فقط یک عیب دارند که به صورت سکتوری برنامه زیری می شوند.یعنی برای خواندن و نوشتن یک بایت باید کل سکتور در بر گیرنده آن بایت را خواند یا نوشت(البته مشکل بزرگی نسیت.).

MMCها به دو روش برنامه ریزی می شوند:MMCوSPI

کسانی که با میکروکنترلرهای جدید مثل AVR کار می کنندباید خیلی خوشحال باشند.چون می توانند به روش SPI با سرعت 8Mbps با MMC کار کنند.البته اولش کمی سخت است.

شما می توانید کارت خود را به AVR وصل کنید.

تغذیه MMC ها می تواند بین 2.9 تا 3.6 ولت باشد.اگر بخواهید Datasheet کامل یک MMC را داشته باشید،در سایت www.alldatasheet.com کارت HB288032MM1 را جستجو کنید.این کارت 32مگابایتی است.

من خودم برای ارتباط دهی MMCبا AVR یک کتابخانه نوشته ام وبه کتابخانه های CodeVision خود اضافه کرده ام.کسانی که این کتابخانه را بخواهند،می توانند به Emailمن درخواست بفرستند تا با هزینه ای مناسب برای آنها فرستاده شود.البته با این تعهد اخلاقی که به فکر تکثیر آن مخصوصا در اینترنت نباشند.

datasheet اين کتابخانه را در زير دانلود کنيد .

Download : MMC_Lib_Help.pdf

+ نوشته شده در ساعت توسط alireza |

اين پروگرامر قابليت برنامه ريزي ميکروهاي سري 8051 را دارا مي باشد.
از قابليتهاي اين پروگرامر مي توان به موارد زير اشاره کرد:
-
قابليت اتصال از طريق پورت سريال
-
شناسايي ميکروکنترلر بصورت خودکار
-
بازبيني اطلاعات
-
شناسايي سخت افزار بصورت خودکار

ميکروکنترلري که روي چيپ نياز است را بايد با برنامه EZ52.hex برنامه ريزي کرد .
بقيه قطعات را طبق شماتيک تهيه و از آن لذت ببريد. برگرفته از سایت IC4IR.com 

http://electronic.persiangig.com/Software/EZDownloader8051.zip

 

+ نوشته شده در ساعت توسط alireza |

آی سی PIC  به زبان های مختلفی قابل برنامه ریزی است مثل C#,C,Basic و... حال برای پروگرم کردن این آی سی به یک مدار نیاز داریم تا اتصال آی سی به کامپیوتر رو برقرار کنه.
این مدار قابلیت پروگرم کردن آی سی های(
PIC18F442و PIC18F458و PIC18F452و PIC18F252و PIC18F6620و PIC18F8720و PIC18F2620و PIC16C66و PIC16C72و PIC16C745و PIC16F84و PIC18F876) را دارد.
این مدار رو می تونید با روشهای مختلفی تهیه کنید مثلا می تونید از برد سوراخ دار یا برد برد استفاده کنید یا استفاده از
PCB آماده که من لینکشو در پایین گذاشتم یا آماده اون رو از بازار بخرید(به احتمال زیاد تو تهران پیدا میشه خصوصا تو پاساژ امجد!). برای ساخت این مدار من پیشنهاد میکنم از PCB استفاده کنید چون هم راحتتره و هم تمیزتر! برای ساخت این مدار به وسایل تقریبا زیادی احتیاج داریم که همه آنها در شمای کلی مدار نوشته شده است. در ضمن این مدار ورودی رو از پورت پرینتر میگیره.
نوعی دیگر از آی سی های میکرو نیز وجود دارد به نام
AVR که معمولا روی خود مدار اصلی پروگرم میشوند.
 در ضمن اگر مشکلی  داشتید حتما در قسمت نظرات مطرح کنید.

شمای کلی مدار
PCB آماده مدار

 

منبع : www.electronic.shahkey.com

+ نوشته شده در ساعت توسط alireza |

نرم افزار ارائه شده توسط شرکت ATMELبه نام  AVR Studio 4

این نرم افزار به صورت رایگان در سایت شرکت ATMEL قرار دارد می توانید با رجوع به آدرس http://www.atmel.com آن را دانلود کنید.

این نرم افزار در حقیقت یک اسمبلر برای محصولات AVR اتمل است و به صورت کاملا ویژوالی است.

می تواند با انواع دستگاههای برنامه نویس میکرو ارتباط برقرار کند و کدها را در میکرو دانلود کند.

و قابلیت ترجمه کدها به زبانهای C و Assembly را دارد و ...

انواع برنامه نویسها که AVR Studio 4 با آنها سازگار است:

در این قسمت خصوصیات پروگرامر ها را به زبان انگلیسی ارائه کردم چون به زبان فارسی اصلا قابل فهم نمی بود و باید یکی پیدا می شد تا ترجمه فارسی آن را دوباره ترجمه کند...

 

Emulators Platforms

In System Programmers

Starter Kits

ICE 40/50

AVRISP

STK500

JTAGICE

JTAGICE

STK501

 

 

STK502

STK500/STK501/STK502

STK500

Supports All AVR Devices

Interfaces with AVR Studio

Early Support for NewDevices Push Buttons, LEDs & RS232

 

STK501

STK500 Expansion Module for ATmega64/128

ZIF Socket & PCB Footprint

Onboard 32 kHz Oscillator

Additional RS232 Port

 

STK502

STK500 Expansion Module for ATmega169

ZIF Socket & PCB Footprint

Onboard 32 kHz Oscillator

Demo Application with Temperature Sensor

JTAGICE / JTAGICE mkII

Interfaced using AVR Studio

Real-Time Emulation in Actual Silicon

Debug the Real Device at the Target Level

Communicates Directly to the Device through 4-Pin JTAG Interface

One-wire Debug Interface (JTAGICE mkII only)

Supports

Program Breakpoints

Data Breakpoints

Full I/O View and Watches

Full Execution Control

ICE40/50 Emulator

ICE50

Emulates all Peripherals (Both Digital and Analog)

Supports all Instructions And Peripherals Real-Time

All Configurations Done from AVR Studio

Unlimited Number of Breakpoints

Source Level Debugging

Supports the Newest Members of AT mega

And AT tiny Product Families

 

ICE40

Same Features as ICE50

End Low Cost ICE for ATtiny13, ATtiny26, ATmega8, ATmega8515,ATmega853

ICE50 Upgrade Available

 

منبع

 

+ نوشته شده در ساعت توسط alireza |

 

یکی از انواع میکروکنترلرهای جدید که در بازار الکترونیک ارائه شده است، میکروکنترلر های شرکت ATMEL با نام میکروکنترلرهای خانوادهAVR  می باشد. این میکروکنترلر های هشت بیتی به دلیل قابلیت برنامه نویسی  توسط کامپایلر زبان های سطح بالا (HLL ) بسیار مورد توجه قرار می گیرند. این میکروکنترلر ها از معماری RISC برخوردارند و شرکت ATMEL سعی نموده است با استفاده از معماری پیشرفته و دستورات بهینه، حجم کد تولید شده را کم و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع میکروکنترلر ها دارا بودن 32 رجیستر همه منظوره می باشد. همچنین در این میکروکنترلر ها از حافظه های کم مصرف و غیر فرار FLASH و EEPROM استفاده می شود.

کامپایلر هایی به زبان BASIC  و C که زبانهای پرکاربرد در دنیا هستند برای این نوع میکرو ها طراحی شده است و علاوه برآن از زبان اسمبلی نیز همچنان می توان برای برنامه نویسی استفاده کرد.

به عنوان مثال کامپایلر BASCOM با زبان BASIC برای برنامه نویسی این نوع از میکروکنترلر ها می تواند مورد استفاده قرار گیرد.

 

میکروکنترلر های AVR به سه دسته اصلی تقسیم می شوند:

·        سری AT90S یا  AVR

·        سری TINYAVR

·        سری MEGAAVR

 

میکروکنترلر های نوع MEGAAVR  دارای قابلیت های بیشتری نسبت به دو سری دیگر هستند. در اینجا به بررسی مشخصات و پایه های یکی از میکروکنترلرهای پرکاربرد سری MEGA به نام ATMega32 می پردازیم:

 

ATMega32

 

 

مهمترین مشخضات این میکروکنترلر 40 پایه عبارت است از:

 

·        کارایی بالا و توان مصرفی کم

·        32 رجیستر (ثبات) 8 بیتی

·        سرعت با سقف 16 میلیون دستور در ثانیه در فرکانس 16 Mhz

·        32 کیلو بایت حافظه FLASH داخلی قابل برنامه ریزی با قابلیت ده هزار بار نوشتن و پاک کردن

·        2 کیلو بایت حافظه داخلی SRAM

·        1024 بایت حافظه EEPROM داخلی قابل برنامه ریزی با قابلیت صد هزار بار نوشتن و خواندن

·        قابلیت ارتباط JTAG

·        دو تایمر/شمارنده  هشت بیتی

·        یک تایمر/شمارنده  شانزده بیتی

·        چهار کانال PWM

·        هشت کانال مبدل A/D  ده بیتی

·        یک مقایسه کننده آنالوگ داخلی

·        WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی

·        ارتباط سریال برای برنامه ریزی: ISP

·        USART سریال قابل برنامه ریزی

·        دارای شش حالت SLEEP

·        منابع وقفه داخلی و خارجی

·        اسیلاتور داخلی RC

·        کار با ولتاژ 4.5  تا 5.5

·        فرکانس کاری 0 تا 16 مگاهرتز

·        32 خط داده ورودی و خروجی قابل برنامه ریزی

·        ...

 

پایه های میکروکنترلرATMega32:

 

منبع :http://www.nurc.ir

 

+ نوشته شده در ساعت توسط alireza |

یک هنرمند پرتغالی اولین باغ وحش روبات های حیوان نمای دنیا را در کشور پرتغال راه اندازی کرده است.

این باغ وحش روبات های حیوان نما که "Robotarium X" نام دارد، در ویلای فرانک دو خیرا واقع شده است. این باغ وحش را یک هنرمند پرتغالی به نام "لئونل موئورا" طراحی و ساخته است.

در این باغ وحش که ساختاری زرد از جنس فلز و شیشه دارد، 45 گونه روبات حیوان نما زندگی می کنند.

در این باغ وحش قانون جنگل حکمفرما است. بنابراین هر روبات برای بقا مجبور است مبارزه کند. بطوری که روبات های بزرگتر به روبات های کوچکتر حمله می کنند.

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

+ نوشته شده در ساعت توسط alireza |

مخالفت آمریکا با صدور روادید برای برخی تیم های ایرانی مانع از حضور قدرتمند تمامی تیم های ایران در مسابقات جهانی روبوکاپ آتلانتا شد.

به گزارش خبرنگار مهر، در دوازدهمین دوره مسابقات جهانی روبوکاپ که در آمریکا برگزار می شود، چندین تیم کشور ما از مسابقات محروم شدند.

ایده اصلی برگزاری چنین مسابقاتی در قالب برگزاری رقابت های روبات های فوتبالیست برای اولین بار در سال 1993 ارایه شد.

به دنبال انجام مطالعاتی که دو سال به طول کشید، مشخص شد که برگزاری چنین رقابت هایی امکانپذیر است. در آگوست سال 1995، اعلام غیررسمی صورت درخصوص معرفی نخستین کنفرانس و بازی های فوتبال روبوکاپ صورت گرفت.

در جولای سال 1997، نخستین کنفرانس رسمی و بازی های مرتبط با آن در ناگویای ژاپن برگزارشد. به دنبال آن، این هم آوردها در پاریس، استکهلم، ملبورن، سیاتل، فوکوآکا/بوسان، پاودا، لیسبون، اوزاکا و برمن آلمان ادامه یافت.

این مسابقات که هرسال برگزار می شود، شمار قابل توجهی از مشتاقان علوم روباتیکی را به خود جلب می کند. در مسابقات امسال که یازدهمین سال برگزاری آن است، رقابت ها و سمپوزیوم هایی آن در آتلانتا واقع در ایالت جورجیا برگزار می شود.

منبع:خبرگزاری مهر
+ نوشته شده در ساعت توسط alireza |

رئیس گروه مکاترونیک دانشگاه خواجه نصیر با بیان اینکه بحث حقوق روباتیکی بی معناست، گفت : گرچه امروزه تحولات بی سابقه ای در عرصه روباتیک جهان شکل گرفته اما این به معنای آن نیست که با هوشمندتر شدن تجهیزات و لوازم داخل منزل و محیط اطراف، نظریه ای تحت عنوان امکان کنترل روبات ها بر سازندگانشان شکل گیرد.

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

وی افزود : به عنوان نمونه و همزمان با گسترش تحقیقات و اکتشافات فضایی، طراحی و ساخت سازه های فضایی و پرتاب ماهواره ها نیز گسترش خواهند یافت. گسترش و ارتقای حیات چنین سیستم هایی و در عین حال کاهش هزینه های مرتبط با آنها به بررسی های دقیق و حساس، مهارت در مونتاژ و حفظ قابلیت های آنها در فضا نیاز دارد. در این میان قابل پیش بینی است که سازه های روباتیک نقش کلیدی را در آینده ماموریت های فضایی ایفا کنند که البته این فرآیند را می توان در سایر زمینه های روباتیک نیز مشاهده کرد.

عضو هیئت علمی دانشگاه خواجه نصیر الدین طوسی در خصوص مطرح شدن ایده هایی مبنی بر گردآوری روبات های مختلف در محدوده ای به نام دهکده روباتیک و بررسی تعاملات رفتاری آنها و همچنین بحث حقوق روباتیکی گفت: چنین پروژه ای بیشتر از آنکه نگرشی واقع بینانه باشد، نگاهی افسانه ای و قصه وار است. از سوی دیگر نمی توان تصور کرد که جامعه ای به نام جامعه روباتیک با امتیاز برخورداری از حقوق ویژه موجودیت یابد.

وی معتقد است : گرچه امروزه تحولات بی سابقه ای در عرصه روباتیک جهان شکل گرفته اما این به معنای آن نیست که با هوشمندتر شدن تجهیزات و لوازم داخل منزل و محیط اطراف، نظریه ای تحت عنوان امکان کنترل روبات ها بر سازندگانشان شکل گیرد.

رئیس گروه مکاترونیک دانشگاه خواجه نصیرالدین طوسی افزود : اما بحثی نظیر برخورداری روبات ها از طیف وسیعی از احساسات، ارتقای سطح قابل توجهی در عرصه ساخت تجهیزات روباتیک و تجهیزات و لوازم داخلی در منازل همچون مراقبان کودک محسوب می شود. این پروژه چند سالی است که جدیت یافته و ساخت چشم مصنوعی با قابلیت انعکاس شادی از جمله آنهاست.

منبع:خبرگزاری مهر
+ نوشته شده در ساعت توسط alireza |

Robocup ابتکار عمل بین المللی آموزشی و تحقیقاتی است که هدف عمده آن تعمیق و گسترش تحقیقات روباتیک و هوش مصنوعی به واسطه طرح سوال استاندارد و استفاده از فناوری های نوین روباتیکی و الکترونیکی در بررسی و ارایه راه حل آنهاست.

به گزارش خبرگزاری مهر، ایده اصلی برگزاری چنین مسابقاتی در قالب برگزاری رقابت های روبات های فوتبالیست برای اولین بار در سال 1993 ارایه شد.

به دنبال انجام مطالعاتی که دو سال به طول کشید، مشخص شد که برگزاری چنین رقابت هایی امکانپذیر است. در آگوست سال 1995، اعلام غیررسمی صورت درخصوص معرفی نخستین کنفرانس و بازی های فوتبال روبوکاپ صورت گرفت.

در جولای سال 1997، نخستین کنفرانس رسمی و بازی های مرتبط با آن در ناگویای ژاپن برگزارشد. به دنبال آن، این هم آوردها در پاریس، استکهلم، ملبورن، سیاتل، فوکوآکا/بوسان، پاودا، لیسبون، اوزاکا و برمن آلمان ادامه یافت.

این مسابقات که هرسال برگزار می شود، شمار قابل توجهی از مشتاقان علوم روباتیکی را به خود جلب می کند. در مسابقات امسال که یازدهمین سال برگزاری آن است، رقابت ها و سمپوزیوم هایی آن در آتلانتا واقع در ایالت جورجیا برگزار می شود.

منبع:خبرگزاری مهر
+ نوشته شده در ساعت توسط alireza |

اقدام آمریکا در عدم صدور ویزا برای تیمهای ایرانی مضحک است
رئیس و برگزار کننده اصلی مسابقات روبوکاپ 2007 آتلانتا گفت: اقدام دولت آمریکا درخصوص عدم صدور ویزا برای برخی از تیمهای شرکت کننده ایرانی، مضحک و سوال برانگیز است.

پروفسور تاکر بالچ - برگزار کننده اصلی مسابقات روبوکاپ 2007 آتلانتا در گفتگو با خبرنگار مهر گفت : من نسبت به اقدام آمریکا برای عدم صدور ویزا به تیم های ایرانی ناامید شده ام و این حرکت را کاملا سیاسی می دانم.

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

وی در خصوص شمار تیم های ایرانی شرکت کننده در رقابت های امسال گفت: من دقیقا نمی دانم چه تعداد تیم های ایرانی حضور دارند چون مسابقات در بخش های مختلفی برگزار می شود اما تیم های ایرانی و آنچه که با خود به این مسابقات می آورند بسیار ارزشمند و منحصربفرد است.

پروفسور تاکر بالچ در پایان نسبت به موفقیت تیم های ایرانی ابراز خشنودی کرده و خاطرنشان کرد: تیم های ایرانی همواره جزء بهترین ها بوده اند.

خبرگزاری مهر
+ نوشته شده در ساعت توسط alireza |

آغاز نبرد روباتهای 39 کشور دنیا در آمریکا / شانس بالای روباتهای ایران
یازدهمین دوره مسابقات جهانی روبوکاپ تا ساعاتی دیگر و به میزبانی انستیتو فناوری جورجیا در آتلانتا برگزار می شود.

به گزارش خبرگزاری مهر، در مسابقات امسال بالغ بر 1700 محقق و 300 تیم روباتیک شرکت کننده از 39 کشور جهان حضور خواهند بود.

مسابقات 2007 در چهار بخش نانوروبات ها، روبات های امدادگر، روبات های انسان نما و روبات های فوتبالیست برگزار می شود و به جهت حضور همه جانبه تیم های ایرانی که کارشکنی دولت آمریکا در خصوص عدم صدور ویزا برای برخی از آنها مانع از حضور پر رنگشان نشده، از اهمیت بالایی برخوردار شده است. همین بس که پروفسور تاکر بالچ، رئیس مسابقات امسال از تیم های ایرانی به عنوان تیم های با شانس بالا یاد می کند.

البته در رسانه های خبری عنوان شده است که 33 کشور جهان تیمهای خود را روانه این مسابقات کرده اند اما رئیس این مسابقات در گقفتگوی تلفنی با خبرنگار مهر از شرکت 39 تیم در مسابقات 2007 آمریکا خبر داد.

از جمله رویدادهای مهم این دوره از مسابقات برگزاری سمپوزیوم بین المللی روبوکاپ است که در روزهای آخر مسابقات یعنی در نهم و دهم جولای برگزار خواهد شد.

منبع:خبرطؤاري مهر
+ نوشته شده در ساعت توسط alireza |

استاد انستیتو فناوری جورجیا :
رئیس مسابقات روبوکاپ 2007 در زمینه راه اندازی لیگ نانوروباتهای فوتبالیست گفت: از آنجا که علاقه زیادی به بسط و گسترش دنیای روباتها در ابعاد مختلف هستیم، تصمیم به راه اندازی این لیگ جدید گرفیتم.

پروفسور تاکر بالچ رئیس مسابقات روبوکاپ 2007 در گفتگوی اختصاصی با خبرنگار مهر افزود: اقدام دولت آمریکا در خصوص عدم صدور ویزا برای برخی از تیمهای شرکت کننده ایرانی، مضحک و سوال برانگیز است.

رئیس مسابقات روبوکاپ 2007 آمریکا افزود: من نسبت به اقدام آمریکا برای عدم صدور ویزا به تیم های ایرانی نا امید شده ام و این حرکت را کاملا سیاسی می دانم.

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

وی در خصوص شمار تیم های ایرانی شرکت کننده در رقابت های امسال گفت : من دقیقا نمی دانم چه تعداد تیم های ایرانی حضور دارند چون مسابقات در بخش های مختلفی برگزار می شود اما تیم های ایرانی و آنچه که با خود به این مسابقات می آورند بسیار ارزشمند و منحصربفرد است.

پروفسور بالچ همچنین به مهر گفت: تیم های ایرانی که برای این مسابقات ثبت نام کرده بودند با مشکلی همچون عدم سازماندهی گسترده مواجه بوده اند و همین مسئله در کنار کارشکنی دولت آمریکا موجب شد تا برخی از آنها نتوانند در گرفتن ویزا موفق باشند.

پروفسور تاکر بالچ - رئیس مسابقات روبوکاپ 2007  

وی افزود: متاسفانه متوجه شدیم برخی تیمهای ایرانی که موفق به دریافت ویزا به بهترین راه شده بودند از راهنمایی دوستان ایرانی خود خودداری کرده اند و این برای من جای تاسف دارد. این مشکلی است که در خصوص برخی تیم های چینی نیز شاهد آن بوده ایم.

استاد برجسته محاسبات هوشمندانه انستیتوفناوری جورجیا تاکید کرد: از این که تیم های ایرانی در این جا حضور دارند خرسند هستم. ما از کار کردن با تیم های هوشمند ایرانی لذت می بریم.

پروفسور تاکر بالچ در پایان نسبت به موفقیت تیمهای ایرانی ابراز خشنودی کرد و گفت: تیم های ایرانی همواره جزء بهترین ها بوده اند.

منبع:خبرگزاری مهر
+ نوشته شده در ساعت توسط alireza |

  از دیدگاه فناوری، این امکان که انسان قدم به روی مریخ بگذارد وجود دارد. هرچند در حال حاضر این سفر شگفت انگیز دشوار به نظر می رسد اما کاوشگر "روح"، "فرصت" تلاش خود را برای شناسایی سیاره سرخ انجام می دهند.

به گزارش خبرگزاری مهر، در قرن نوزدهم تئوری کانت و لاپلاس درباره منشاء و ماهیت منظومه شمسی به عنوان یک رویای دست نیافتنی باقی ماند. براساس این تئوری منظومه شمسی در ادامه تراکم حلقه های گرد و غبار و گاز که با یک چرخش کند و آهسته به طرف مرکز گرانش خود فشرده می شوند، شکل گرفته است.

این تئوری منشاء اصلی بسیاری از داستان های علمی تخیلی است که از قرن نوزدهم تا امروز درباره مریخ و موجودات فرا زمینی نوشته شده است.

براساس این مدل، سیاراتی که در فاصله بیشتری از ستاره مرکزی قرار گرفته اند، پیرتر هستند. برای مثال از آنجا که سیاره  زهره نسبت به زمین به خورشید نزدیکتر است، بنابراین زمین از زهره پیرتر و از مریخ جوانتر است.

در ادامه این فرضیه، این ایده که سیاره سرخ نسبت به سیاره ما بیشتر تکامل یافته است، مطرح شد. این ایده پیشنهاد کرد که این سیاره علاوه بر ویژگی های فیزیکی و رفتاری از نظر وجود زندگی نیز از زمین تکامل یافته تر است.

این فرضیه پس از اولین مشاهدات سطح مریخ با تلسکوپ قوت گرفت. برپایه این رصدها به نظر می رسید که مریخ و زمین شباهت های بسیاری با یکدیگر دارند. به ویژه آنکه مریخ هر 24 ساعت و 37 دقیقه یکبار به دور خود می چرخد و بنابراین طول شبانه روز این سیاره بسیار نزدیک به طول شبانه روز زمین است. هرچند به دلیل اینکه سیاره سرخ نسبت به زمین در مدار بالاتری قراردارد، هر 687 روز یکبار به دور خورشید می چرخد و بنابراین هر سال مریخی تقریبا دو برابر سال زمینی است.
موقعیت مداری زمین و مریخ به گونه ای است که سیاره سرخ می تواند حداقل در فاصله 56 میلیون کیلومتری و حداکثر در فاصله 380 کیلومتری زمین قرارگیرد.

این دو سیاره بین 15 تا 17 سال یکبار کاملا در دو جهت مخالف هم قرار می گیرند که به این پدیده "تضاد بزرگ" می گویند. آخرین بار در 13 ژوئن 2001 تضاد بزرگ رخ داد.

کاوشگر "فرصت"

انسان از آغاز دهه 60 قرن گذشته تلاش های خود را برای دست یافتن به سیاره مریخ و اعزام کاوشگرها شروع کرد. در این راستا تا به امروز 37  ناو فضایی کنترل از راه دور برای رسیدن به مریخ تلاش کرده اند که از این تعداد تنها 15 کاوشگر موفق شده اند قدم به خاک مریخ گذاشته و ماموریت خود را انجام دهند.

اتحاد جماهیر شوروی سابق بین سالهای 1960 تا 1962 اولین تلاش ها را برای فتح مریخ انجام داد و بصورت کاملا سری چندین کاوشگر را بدون موفقیت به این سیاره سرخ فرستاد.

چند سال بعد آمریکا نیز با استفاده از وسایل موشکی با توان کمتر از کاوشگرهای روسی که به فناوری های پیچیده تر و کاربردی تری مجهز بودند، راهی برای رسیدن به مریخ را جستجو می کرد.

پس از آزمایشات اولیه برای سفر به خلا، در 28 نوامبر 1964 کاوشگر "مارینر 4 " که 4 جولای همان سال تنها 10هزار کیلومتر از سطح زمین فاصله گرفته بود، به مریخ رسید. تصاویری که این کاوشگر به زمین ارسال کرد تنها یک درصد از سطح سیاره را پوشش می داد.

براساس این تصاویر، مریخ سطحی شبیه به سطح ماه داشت و در آن هیچ کانال و به خصوص هیچ ردپایی از حیات هوشمند دیده نمی شد.

کاوشگر مارینر 4 علامت را از فشار اتمسفر این سیاره و ارزش میزان تبخیر آب به زمین فرستاد که احتمال حیات را در این فشار و میزان بخار آب غیرمحتمل می کرد.

پس از مارینر 4 ، آمریکایی ها در 24 فوریه 1969 مارینر 6 و درمدت زمان کمی پس ازآن مارینر 7 را به مریخ فرستادند.
این دو کاوشگر شباهت های بسیاری به مارینر 4 داشتند ، باوجود این برای اندازه گیری ترکیبات اتمسفری مریخ و دمای این سیاره به ابزارهای پیشرفته تری مجهز بودند.

این کاوشگرها نشان دادند که 95 درصد از اتمسفر مریخ از دی اکسید کربن جامد تشکیل شده است. دی اکسیدکربن در شرایط زمینی در دمای منفی 70 درجه سانتیگراد به صورت بلورهای یخی ساخته می شود.

وجود دی اکسیدکربن در مریخ چندان دور از انتظار نبود، چرا که از ابتدای قرن بیستم در داستان های علمی تخیلی، آدم های یک چشم سبز رنگی وارد شده بودند که در مریخ به جای اکسیژن از دی اکسیدکربن تنفس می کردند!

کاوشگر " روح"

در 30 می 1971 آمریکا موفق شد برای اولین بار مارینر 9 را به مدار مریخ اعزام کند. این کاوشگر توانست تصاویر واضحی از گرد و غبار اتمسفر این سیاره نشان دهد.

از سال 1971 در مجموع 15 کاوشگر به سطح مریخ فرستاده شد که تنها 5 کاوشگر از این تعداد در دراز مدت با سطح مریخ تماس داشتند و تصاویر و اطلاعات تکنیکی مفیدی را به زمین ارسال کردند.

دو کاوشگر اول "ویکینگ 1 و 2" بودند که ماموریت خود را از سال 1975 آغاز کردند. این دو کاوشگر در مدت ماموریت خود 50 هزار تصویر که 97 درصد از سطح مریخ را پوشش می داد به زمین ارسال کردند. 20 سال پس از موفقیت دوقلوهای "ویکینگ" در 4 جولای 1997، کاوشگر "آدم سیار" (Sojourner) که درحقیقت یک روبات کوچک بود در سطح مریخ به گردش و جمع آوری اطلاعت مفیدی پرداخت.

درحال حاضر کاوشگرهای دوقلوی "روح" و "فرصت " در کنار کاوشگر "مارس اکسپرس" در سطح سیاره سرخ ماموریت خود را انجام می دهند.

باوجود این به نظر می رسد رویای سفر انسان به سیاره سرخ چندان دور از انتظار نباشد و امروزه مقامات آژانس های فضایی مطرح دنیا بویژه ناسا و " اسا " (آژانس فضایی اروپا) به دنبال تجهیزاتی می گردند که این رویای انسان را هرچه زودتر به واقعیت تبدیل کنند.

خبرگزاری مهر
+ نوشته شده در ساعت توسط alireza |

روباتها هم شاید روزی دچار انحرافات رفتاری شوند / اعتقادی به استفاده از روبات در خانه‌ام ندارم!
رئیس آزمایشگاه سیستمهای غیرخطی دانشگاه MIT با بیان اینکه روباتها هم شاید روزی دچار انحرافات رفتاری می‌شوند، گفت : البته بدون شک تا چند دهه آتی نمی توان تصور کرد که روباتها به آن سطح از پیشرفت برسند که انحراف رفتاری از آنها سر بزند.

پروفسور ژان ژاکوس سلطان رئیس آزمایشگاه سیستم های غیرخطی دانشگاه MIT در گفتگوی اختصاصی به خبرنگار مهر گفت : مطرح شدن نکاتی همچون امکان بروز انحرافات رفتاری از سوی روبات ها در آینده مبحثی فوق العاده پیچیده است. من به عنوان یک متخصص معتقدم که حتی تصور چنین فرآیندی نیز می تواند هیجان انگیز باشد اما چندان هم به تحقق آن حداقل در آینده نزدیک خوش بین نیستم چون هنوز ارتقایی قابل توجه برای شکل گیری انحرافات حرکتی در آنها صورت نگرفته است.

پروفسور ژان ژاکوس سلطان
رئیس آزمایشگاه سیستم های غیرخطی دانشگاه MIT

پروفسور ژان ژاکوس در ادامه این گفتگو به مبحث جدیدی در صنعت روبات سازی یعنی یافتن منابع جدید فعال سازی روبات ها اشاره کرد و گفت : بدیهی است که بتوان برای فعال سازی روباتها با توجه به پیشرفتهای سریع این عرصه از فناوری، منابع جدید انرژی و فعال سازی را تعریف کرد.

وی افزود: استفاده از منابعی همچون منابع زیستی و خورشیدی به نوع روبات و میزان پیشرفت دانش ساخت آن باز می گردد.

پروفسور ژاکوس گفت : این روزها بحث استفاده از روبات ها در قالبی کاربردی در منازل و محیط زندگی شدت و رنگ بیشتری پیدا کرده است اما بسیاری از محققان علوم روباتیک اعتماد زیادی به آنها و اصول حرکتی شان ندارند. من هم نیز در حال حاضر چندان اعتمادی به روبات ها ندارم چون به آن حد از تکامل نرسیده اند که بتوان از آنها در امور داخلی و حساس زندگی استفاده کرد.

منبع:خبرگزاری مهر
+ نوشته شده در ساعت توسط alireza |

MATLAB نرم افزار يا زبان برنامه نويسي؟
معمولا نرم افزارها را با کمک یک زبان برنامه نویسی قدرتمند طراحی می کنند زیبایی، خوانایی وتوانمندی وسادگی هر نرم افزار به زبان برنامه نویسی مربوط می شود که با آن نرم افزار نوشته اند . اما در نهایت هر نرم افزار دارای امکانات محدودی می باشد. ممکن است بسیاری از حالات خاص یک مسئله را در طراحی آن نرم افزار در نظر نگرفته با شند که محدودیتهایی برای نرم افزارایجاد می کند

نگرشي به تواناييهاي MATLAB

نويسنده : احمد زيني

معمولا نرم افزارها را با كمك يك زبان برنامه نويسي قدرتمند طراحي مي كنند زيبايي، خوانايي وتوانمندي وسادگي هر نرم افزار به زبان برنامه نويسي مربوط مي شود كه با آن نرم افزار نوشته اند . اما در نهايت هر نرم افزار داراي امكانات محدودي مي باشد. ممكن است بسياري از حالات خاص يك مسئله را در طراحي آن نرم افزار در نظر نگرفته با شند كه محدوديتهايي براي نرم افزارايجاد مي كند.

اما يك زبان برنامه نويسي ديگرمحدوديت هاي گفته شده را ندارد. يك برنامه نويس به طور سليقه اي هر گونه امكاناتي را به برنامه اي كه طراحي مي كند ودر نهايت يك نرم افزار در اختيار كار بران قرار مي دهد. بالطبع استفاده از چنين توانايي مشكلاتي نيز با خود به همراه دارد چون اگر شما خواستيد طراحيتان را با يك زبان انجام دهيد، بايد تمامي توابع مورد نياز را خودتان بنويسيد كه اين كاري بس دشوار ووقت گير است.

اينجانب كه بايد مصامحه اي بين قابليت بالا و زمان صرف شده وآساني كار انجام شود كه از طرفي هم براي نوشتن يك برنامه ساده نياز نباشد تمامي توابع اساسي را خودمان بنويسيم وهم برنامه اي كه با آن كارمي كنيم توانايي كافي براي انجام پرمژه هاي ما داشته باشد. اولين چيزي كه به ذهن خطور مي كند اين است كه براي طراحي يك سيستم خاص مثلا طراحي خطوط هوايي نياز است كه نيروهايي كه سيم دكل ها وارد مي كنند را محاسبه كرد. همچنين ميزان وزش باد، نشست برف ويخ را در اين محاسبات لحاظ نمود از طرفي بايد در اين محاسبات مسائل الكتريكي قضيه را نيز در نظر بگيريم ( مباحث مربوط به اتصال كوتاه وصاعقه) همچنين از داده هاي آماري براي لحاظ كردن شرايط محيطي در فصول سرد وگرم استفاده كنيم . مسلما نرم افزاري كه هم در زمينه مكانيك والكتريك وآمار توانمند باشد همچنين محاسبات رياضي نيز در آن در نظر گرفته شده باشد براي كاربران عمومي ساخته نشده است يا حداقل ما از آن بي خبريم.بنابراين براي طراحي چنين سيستم خاصي حتما بايد از يك زبان برنامه نويسي كمك گرفت. البته اگر اين زبان از قابليت خاص نرم افزارهاي ديگر نيز استفاده مي كند كه كار ما راحتر مي شود. فرض كنيد از توابع رياضي به راحتي وتوانمندي Maple يا Mathematical كه نرم افزارهاي تخصصي رياضي هستند بهره مند باشدويا از محيط شبيه سازي قوي مانند Labview برخوردار باشد

با اين تفاوت كه فرض كنيد كه بتوانيد در محيط Labview هر نوع بلوكي راكه به طور آماده وجود نداشته باشد با هنر برنامه نويسي خودتان اضافه كنيد همچنين محيطي مثل Excel براي وارد كردن داده هاي مسأله در اختيار داشته باشيد با توجه به اين نكته كه ميزان داده هاي يك مسئله مهندسي در مواردي حتي تا هزاران عدد اعشاري وتوان دار مي تواند باشد البته چه بهتر است كه اين زبان برنامه نويسي خيلي خيلي سطح بالا باشد تا حدودي كه دقيقا از رسم الخط خودمان استفاده كند.

  MATLAB:   زباني است كه تمامي توانمنديهاي ذكر شده را داراست. البته علاوه بر قابليتهايي كه قبلا ذكر شده ويژگيهاي منحصر به فرد ديگري نيز دارد كه ملاك مهمي در انتخاب آن به عنوان ابزار طراحي محسوب مي شود.

1- ويژگي منحصر به فرد ماتريسي مهمترين ويژگي آن است كه اسم آن از ماتريس گرفته شده است ( آزمايشگاه ماتريس Matrix Laboratory )

تعريف ماتريس در مطلب بسيار راحتر از ساير زبانها است. تصور كنيد ماتريس n×n×n×… با اين ابعاد كه اندازه آن به صورت شناور باشد وبه طور دلخواه، همچنين با توجه به اينكه بيشتر محاسبات مهندسي به صورت ماتريستي انجام مي شود داشتن قابليتهاي خاص در اين مورد مانند ترانهاده، معكوس، دترمينال قطري كردن، بالا مثلثي و... يكي ديگر از ويژگيهاي منحصر به فرد مطلب است.

2- استفاده از تجربيات وزحمات كساني كه با مطلب كار مي كنند به اين ترتيب كه هر كسي در هر زمينه اي با مطلب كاري انجام داده باشدشركت سازنده مطلب آنها را در نسخه هاي بعدي اضافه مي كند بنابراين برنامه نوشتن با چنين زباني خيلي راحت مي باشد زيرا بسياري از توابع مورد نظر ما توسط ديگران آماده شده فقط كافي است بتوانيم آنرا از ليست توابع مطلب پيدا كرده از آن برنامه استفاده كنيم. كه خود باعث صرفه جويي در وقت وبالا رفتن دقت كار مي شود.

3- سازگاري با زبانهاي برنامه نويسي ديگر: مي توان توابعي كه با زباني ديگر مثل زبانC نوشته شده باشد را دقيقا در محيطمطلب بكار برد يا برنامه هاي مطلب را به كد زبان C تبديل كنبم وآن را در محيط استفاده نماييم.

4- تنوع زمينه هايي كه مطلب به آنها پرداخته است مثلا مخابرات، كنترل، فازي، پردازش تصوير وصوت، معادلات ديفرانسيل جزئي، شبكه عصبي، سيستم هاي قدرت، رياضيات، بانك اطلاعاتي، سيستم هاي هيبريدو...

از آنجا كه براي يك پروژه عملي نياز است عمليات متنوعي در زمينه هاي مختلف علمي انجام دهيم مطلب مارا براي انجام چنين پروژه هايي كمك مي كند.

5- ابزار لازم جهت طراحي يك سيستم محيطي است كه درآن امكانات شبيه سازي قوي وجود داشته باشد.

محيط مدل سازي مطلب) (SIMULINK ابزاري مناسب را براي اين منظور در اختيار شما مي گذاردمحيطي كه درآن شما مي توانيدارتباط علوم مختلف را هر آن لمس كنيد وتمامي جنبه هاي علمي وعملي يك سيستمرادر نظر بگيريد.

6- راحتي استفاده از برنامه كه يكي از ويژگيهاي برنامه شماست، قابليت GUI به شما اين امكان را مي دهد كه كاربراني كه قصد استفاده از برنامه شما را دارند به راحتي با چند كليك موس داده هاي خود را وارد كرده وبرنامه را اجرا كنند وخود را درگير قالب نامانوس شما نكنند. باتعريف يك پنجره كه در آن چند دكمه ونمودار وورودي متني موجود است به راحتي مي توان از اصل برنامه استفاده كرد.


http://www.autoir.com
+ نوشته شده در ساعت توسط alireza |

 

متلب نام يكي از نرم‌افزارهاي رايانه‌اي براي انجام محاسبات رياضي است. واژه متلب هم به معني محيط محاسبات رقمي و هم به معني خود زبان برنامه‌نويسي مربوطه است از تركيب دو واژهٔ MATrix و LABratuary ايجاد شده است. اين نام حاكي از رويكرد ماتريس محور برنامه است، كه در آن حتي اعداد عادي هم به عنوان ماتريس در نظر گرفته مي‌شوند.

با نرم‌افزار متلب مي‌توان ماتريس‌ها را به راحتي تغيير داد، توابع يا داده‌ها را ترسيم كرد، الگوريتم‌ها را اجرا كرد و همچنين صفحات رابط ميان كاربر و رايانه ايجاد كرد.

متلب كه از محصولات شركت مث‌وركس (The MathWorks) است، براي گروه‌هاي مختلف مهندسان رشته‌هاي مختلف از جمله مهندسي برق، مكانيك، كامپيوتر و ... كاربرد بسياري دارد.

قدرت متلب

 برنامه‌هاي متلب همگي متن‌باز هستند و در واقع متلب مفسر است نه كامپايلر. قدرت متلب از انعطاف‌پذيري آن و راحت بودن كار با آن ناشي مي‌شود، همچنين شركت سازنده و گروه‌هاي مختلف، از جمله دانشگاه‌هاي سرتاسر جهان و برخي شركتهاي مهندسي هر ساله جعبه‌ابزارهاي خاص-كاربردي به آن مي‌افزايند كه باعث افزايش كاراي و محبوبيت آن شده است. فهرستي از اين جعبه‌ابزارها در زير آمده است:

  • جعبه‌ابزار مخابرات متلب
  • جعبه‌ابزار كنترل متلب
  • جعبه‌ابزار فازي متلب
  • جعبه‌ابزار محاسبات متلب
  • جعبه‌ابزار سيمولينك متلب
  • جعبه‌ابزار تخمين متلب
  • جعبه‌ابزار آمار متلب
  • جعبه‌ابزار جمع‌آوري دادهٔ متلب
  • جعبه‌ابزار شبكه عصبي متلب
  • جعبه‌ابزار پردازش تصوير متلب
  • جعبه‌ابزار پردازش صوت متلب
  • جعبه‌ابزار احتمالات متلب
  • جعبه‌ابزار كارگاه بلادرنگ متلب

 

MATLAB محيطي براي محاسبات عددي و زبان برنامه سازي مي باشد كه توسط MATH WORKS ساخته شده است ، MATLAB   امكان دستكاري و كاركردن ساده با ماتريس ، رسم نمودار توابع و ديتا ، اجراي الگوريتم ، ساخت واسط كاربر و واسط برنامه با ساير زبانهاي برنامه نويسي را بوجود مي آورد . اگر چه MATLAB مخصوص محاسبات عددي است اما toolbox ي با استفاده از موتور maple آنرا به سيستم كامپيوتري – جبري تبديل مي كند . اين نرم افزار توسط يك ميليون نفر در دانشگاهها و صنعت مورد استفاده قرار مي گيرد . هزينه اين نرم افزار براي مصارف تجاري بدون tool box حدود 2000 دلار آمريكا و براي مصارف دانشگاهي با toolbox محدود حدود 100 دلار آمريكا است .

 
متلب  
بخش اول - ملزومات و پيش نيازهاي آموزش MATLAB

اين آموزش شما را به طور مرحله به مرحله با جنبه هاي مختلف MATLAB آشنا مي كند . پس از كامل نمودن اين دوره آموزشي شما به سادگي با استفاده از HELP MATLAB مي توانيد ويژگي هاي پيشرفته MATLAB را ياد بگيرد . و همچنين در استفاده از ويژگي هاي پيشرفته MATLAB راحت خواهيد بود و قادر خواهيد بود نكات بسيار كاربردي و پيشرفته تري كه به رشته تحصيلي يا كارتان مربوط مي شود را به خودتان آموزش بدهيد .

شما بايد داراي مهارت هاي ا وليه استفاده از كامپيوتر باشيد بعنوان مثال شما بايد قادر باشيد كه برنامه اي را اجرا كنيد ، آنرا ببنديد و فايلهايتان را ذخيره كنيد ، نوشته را كات كنيد و در جاي مورد نظر پيست كنيد و ...

شما بايد بدانيد كه از يك نرم افزار واژه پرداز چگونه استفاده كنيد ، مانند نوت پد در ويندوز كه شما مي توانيد از آن براي نوشتن برنامه هاي MATLAB استفاده كنيد .همچنين MATLAB نرم افزار واژه پرداز مخصوص خود را دارد كه شما مي توانيد از آن استفاده كنيد (‌كه در اين آموزش به شما نشان خواهيم داد )

شما بايد دانش اوليه اي در مورد جبر و مثلثات داشته باشيد مانند آنچه كه در دبيرستان پوشش داده شده همچنين اطلاعاتي در مورد جبر خطي ( مانند ماتريس ها ، بردارها و معكوس آنها و ... ) دانستن اين موارد موقع شروع آموزش MATLAB بسيار سودمند است اما اصول جبر خطي مورد نياز در اين آموزش شرح داده خواهد شد

ما در اين آموزش با يكديگر تعامل خواهيم داشت و آموزش همراه كار و تمرين خواهد بود . در حاليكه شما صفحه تمرين را مطالعه مي كنيد بايد نرم افزار MATLAB را در پنجره جداگانه اي اجرا كنيد و تمرينات را حل كنيد .

حالا شما آماده ايد كه آموزش MATLAB را شروع كنيد .

اميدوارم اوقات خوشي با MATLAB داشته باشيد . حين آموزش خواهش مي كنم تا جايي كه امكان دارد تمرين حل كنيد چون بهترين راه يادگيري MATLAB استفاده از آن است . 

 
 
بخش دوم - آموزش بسيار مقدماتي MATLAB
 
 
MATLAB برنامه اي است كه هنگام مواجه شدن با مسائل رياضياتي بسيار سودمند خواهد بود مخصوصا در زمينه تكنيك و مهندسي .

شما مي توانيد از ويژگي built-in MATLAB براي حل بسياري از مسائل بدون انجام زحمت خاصي ، بهره ببريد از معادلات دو معادله دو مجهول ساده مانند

X + 2Y = 24
12X - 5Y = 10

گرفته تا معادلات بسيار پيچيده مانند فاكتور گيري چند منظوره ، تطابقت منحني با اطلاعات داده شده ، انجام محاسبات با استفاده از ماتريس ، انجام مسائل مربوط به پردازش سيگنال مانند تبديلات فوريه ، و ساخت و گسترش شبكه هاي عصبي .

يك جنبه بسيار قدرتمند و سودمند MATLAB اين است كه براي رسم بسياري از انواع منحني ها مفيد واقع مي شود و شما را قادر مي كند تا توابع پيچيده ماتريسي را رسم كنيد و در كل يك آزمايشگاه ديتا است . بعنوان مثال سه شكل زير با استفاده از توابع چاپ ( plotting ) ساخته شده اند .

                  
آموزش MATLAB دقيقا شبيه آموزش رانندگي است . شما مي توانيد كليه قوانين را ياد بگيريد ولي براي اينكه راننده خوبي باشيد بايد سوار اتومبيل شويد و براي رانندگي به خيابان برويد .

اگر شما قبلا پيش زمينه قويتري از رياضات و برنامه سازي كامپيوتري داشته باشيد شما سريعا ياد مي گيريد كه از MATLAB چگونه براي اهداف طراحي و يا زمينه كاري خودتان استفاده كنيد .
 

بخش سوم : اجراي نرم افزار MATLAB
 

شما به سادگي مي توانيد با دابل كليك روي ايكون MATLAB اين نرم افزار را اجرا كنيد يا اينكه با استفاده از منوي start ويندوز اين نرم افزار را فراخواني كنيد . پنجره اصلي MATLAB ، دسكتاپ MATLAB ناميده مي شود ، كه شبيه پنجره زير است .

شما هنگام اجراي برنامه متوجه خواهيد شد كه در خط فرمان متن زير نوشته شده است :

To get started, select "MATLAB Help" from the Help menu.

علامت>>   command prompt ( گوش به فرمان ) ناميده مي شود ،كه مانند يك چشمك زن است و منتظر فرمان شماست . بعد از اينكه شما متني را در خط فرمان تايپ كرديد MATLAB فرمان شما را اجرا مي كند و نتيجه را نشان مي دهد و منتظر فرمان بعدي شما مي ماند بدين ترتيب شما مي توانيد دستوراتي را كه مي خواهيد وارد كنيد . ( MATLAB فرمان را خط به خط اجرا مي كند )

درس بعدي در مورد دستورات خاص MATLAB است ، اما الان براي اينكه فقط MATLAB را شروع كرده باشيد دستور ساده زير را وارد كنيد . دستور dateرا تايپ كنيد و اينتر را بزندي . MATLAB نتيجه را چيزي شبيه متن زير نمايش مي دهد .

>>date

ans =
11-Jun-1998

بدين ترتيب شما بطور موفقيت آميز اولين دستور ATLAB را اجرا كرده ايد .

دستور ساده ديگري كه شما الان مي توانيد امتحان كنيد دستور clc است (clear command window ) اگر شما در صفحه فرمان MATLAB بخواهيد همه نوشته ها و دستورات را پاك كنيد و چشمك زن به ابتداي صفحه برود مي توانيد در خط فرمان clc را تايپ كنيد و اينتر بزنيد . همين حالا به صفحه MATLAB برويد و اين دو دستور را اجرا كنيد . ساده بود . نه ؟

براي خارج شدن از MATLAB مي توانيد وارد منوي فايل شويد و گزينه exit matlab را انتخاب كنيد يا در خط فرمان دستور quit را تايپ كنيد و اينتر بزنيد .و يا اينكه به سادگي پنجره را ببنديد.  

 

 

 

 
 
 
 
بخش چهارم : اجراي دموها
 

 

 

 

شما قبلاً MATLAB را اجرا كرده ايد و دسكتاپ MATLAB را روي دستكتاپ ويندوز باز كرده ايد . اگر اين كار را انجام نداده ايد به بخش قبل مراجعه كنيد .

حالا كمي روي Demo ها بحث مي كنيم . در واقع Demo زيادي در MATLAB وجود دارد و همه آنها با تايپ كردن دستور Demo در خط فرمان نشان داده مي شوند .

ما واقعا انتظار نداريم شما جزئيات MATLAB را با استفاده از اين Demo ياد بگيرد اما با استفاده از اين Demo ها نسبت به كاراهايي كه مي توانيد با استفاده از MATLAB انجام دهيد ديد بهتري خواهيد يافت . حتي در اين Demo چند بازي هم وجود دارد و بعضي از آنها هم كاملا گرافيكي هستند و شما مي توانيد با استفاده ازاين Demo ها از MATLAB لذت ببريد . MATLAB ابزاري قدرتمند براي حل بسياري از مسائل است و شما بايد اين قدرت را بعد از آشنايي با دموها درك كنيد .

خوب براي شروع درخط فرمان Demo را تايپ كنيد و اينتر بزنيد . با اين كار صفحه Demo MATLAB بالا مي آيد و منتظر مي ماند تا شما دموي مورد نظرتان را انتخاب واجرا كنيد . پنجره Demo MATLAB مشابه صفحه زير است

 

در اين مبحث نمي توانيم به كل دموها سر بزنيم ولي شروع كردن يكي از دموها را به شما نشان مي دهيم و شما مي توانيد براي بقيه دموها نيز همين كار را انجام دهيد .

براي ديدن ليست دموهاي مختلف روي علامت + كنار گزينه matlab كليك كنيد با اينكار شما مي توانيد دموهايي در مورد ماتريس ها ،‌اعداد ، اجسام گرافيكي و ... را مشاهده كنيد . در ليست هر يك از دموها ، دموهاي متعددي در آن مورد وجود دارد .

پنجره سمت راست شما چكيده اي در مورد دموي انتخابي به شما نشان مي دهد . بعنوان مثال اگر شما gallery را بعنوان دسته مورد نظر خودتان انتخاب كنيد  text box سمت راست چيكيده اي از اين دسته دموها را به شما نشان مي دهد .

شما مي توانيد دموها ي مختلفي را با توجه به كلاس انتخابي تان ببينيد . در كلاس gallery دموهايي به نامهاي Knot, Quiver, Klein IIو ... وجود دارد اگر شما يكي از اين دموها را انتخاب كنيد اطلاعاتي با توجه به دمو در سمت راست نمايش داده مي شود . و دو گزينه وجود دارد.

1-      اجراي دمو

2-      ديدن كدهاي دمو

بعنوان مثال اين كار را انجام دهيد . كلاس gallery را در صفحه MATLAB خود انتخاب كنيد سپس دموي spherical surface harmonicحال شما بايد پنجره زير را ببينيد

 

اين دمو به شما يك مثال گرافيكي خوب را نشان ميد هد كه شما مي توانيد با استفاده از MATLAB به آن برسيد .

حالا كمي وقت صرف كنيد و ساير دموها را انتخاب و اجرا كنيد تا محدوده توانايي و امكانات MATLAB را بدرستي درك كنيد .

قبل از شروع شايد بخواهيد دستور intro demo را امتحان كنيد . اين مثال ديگري است كه مقدمه ابتدايي از توانايي هاي MATLAB را به شما نشان مي دهد . براي اجراي intro كلاس matlab از دموها را انتخاب كنيد و سپس matrices بعد basic matrix operation يا اينكه دستور play show intro را تايپ كنيد پنچره ديگري بالا مي آيد و شما مي توانيد با استفاده از دكمه هايي كه در اين پنجره وجود دارد جزئيات اين دمو را مشاهده كنيد .

 

 
 بخش پنجم : استفاده از help

متلب داراي سيستم help گسترده اي است ، كه شامل جزئيات و اطلاعات help در مورد كليه دستورها و توابع متلب مي شود . اين سيستم help براي افرادي كه مبتدي هستند بسيار مناسب خواهد بود ، اما حتي بعد از اينكه شما به يك متخصص متلب بدل شديد ، از اين سيستم براي يادگيري ساير توابع متلب كه تا به حال از آنها استفاده نكرده ايد استفاده خواهيد كرد . اين درس به شما مي آموزد كه چگونه از اين سيستم استفاده كنيد

دسترسي به help از طريق خط فرمان :

سه تابع اصلي وجود دارد كه شما مي توانيد از آنها براي كسب اطلاعات در مورد توابع ديگر استفاده كنيد : help ، helpwin ( اختصاري help window  ) و doc ( اختصاري documentation  ) . تابع help و helpwin اطلاعات مشابهي به شما مي دهند ، اما با پنجره هاي متفاوت ، دستور doc يك صفحه html با يك سري اطلاعات بيشتر را نمايش مي دهد .

قسمت پايين نمايش help در مورد تابع date را به شما نشان مي دهد كه اين نمايش با استفاده از دستوارات متفاوت انجام شده .

help date

DATE Current date as date string. S = DATE returns a string containing the date in dd-mmm-yyyy format.

See also NOW, CLOCK, DATENUM

توجه : خروجي help معمولاً توابعي كه به موضوع مربوط هستند را نيز نشان مي دهد . در اين مثال ، help علاوه بر موضوع اصلي به شما مي گويد : See also NOW, CLOCK, DATENUM. حالا شما مي توانيد در مورد همين توابع نيز از help  استفاه كنيد

helpwin date

توجه : محتواي اطلاعات دستور help و helpwin يكسان است ولي بهتر است از helpwin استفاده كنيد چون :

1-      متن در صفحه هاي مجزا نشان داده مي شود

2-      شما در قسمت see also مي توانيد روي تابع يا توابعي كه در همين قسمت ليست شده كليك كنيد تا اطلاعاتي در مورد آنها كسب كنيد تا اينكه مجبور باشيد آنرا در خط فرمان تايپ كنيد تا اطلاعاتي در مورد آن بدست آوريد .

3-      لينك موضوعات پيش فرض ، كليه دسته بندي ها را ليست مي كند و شما مي توانيد تابع مربوطه با دسته بندي مربوطه را ببينيد . بعنوان مثال ، اگر شما بخواهيد بدانيد خروجي دستور پلات x  بر حسب y چيست مي توانيد روي لينك matlab\graph2d topic كليك كنيد .

doc date

توجه : خروجي دستور doc بسيار كامل است و فقط يه قسمت از اطلاعات خواسته شده در مورد موضوع مورد نظر نيست بلكه مثال هاي كاملي ارائه مي كند كه مي توانند مورد مطالعه قرار گيرند يا اجرا شوند .

سعي كنيد براي توابع مقابل از دستورات مختلف اجراي help  استفاده كنيد : magic, fft, and surf

استفاده از جستجوگر help متلب

منبع ديگر help در متلب ، جستجوگر help  متلب است . شما مي توانيد جستجوگر help  متلب را با تايپ دستور helpbrowser در خط فرمان متلب فراخواني كنيد ، روي دكمه ؟ كليك كنيد يا با انتخاب Start->MATLAB-> از desktopاين جستجوگر را فرخواني كنيد .

جستجوگر help دو قسمت عمده دارد ، help navigator و صفحه نمايش . صفحه نمايش ، همانگونه كه از نامش پيداست ، اطلاعاتي در مورد موضوع انتخاب شده را نشان مي دهد . help navigator در قسمت سمت چپ جستجوگر قرارگرفته ، و براي هدايت كردن از طريق اطلاعات online در مورد موضوع انتخاب شده كاربرد دارد . اين قسمت در برگيرنده موارد زير است :

  • فيلتر فراورده
  • نوار محتويات
  • نوار شاخص
  • نوار دمو
  • نوار جستجو
  • نوار favorit

اين بخش منبع گسترده اي براي شما خواهد بود اگر بدنبال يادگيري نكات بيشتري در مورد موضوع داده شده باشيد . نوار سرچ در مورد موضوع مورد نظر از ميان كليه اطلاعات موجود جستجو مي كند ، و لغات كليدي كه آنها را سرچ كرده ايد را بصورت highlight مشخص مي كند تا خواندن اطلاعات مورد نظر راحتتر باشد .

حالا با استفاده از امكانات سرج در مورد help از جستجوگر خودش استفاده كنيد

 

بخش ششم: ساخت متغير
 
يكي از جنبه هاي اصلي متلب متغير ها هستند ، و شما همواره از آنها استفاده مي كنيد . در اصل ، يك متغير مكاني است براي يك مقدار كه شما مي توانيد نامي را به آن نسبت دهيد . منظور ما اين است كه ، هنگامي كه چيزي را بعداً محاسبه خواهيد كرد ، شما مي توانيد ازاين مقدار استفاده كنيد كه متغيري است كه بعنوان قسمتي از محاسبات جديد بكار رفته . بيايد تا براي واضح تر شدن مطلب از چند مثال استفاده كنيد .

در ساده ترين حالت ، متلب مي تواند بعنوان يك ماشين حساب جيبي باشد . بعنوان مثال دراينجا شما چند محاسبه ساده با استفاده از متلب مانند يك ماشين حساب انجام مي دهيد .

4 + 10
ans =
14
5 *10 + 6

ans =
56
(6 + 6) / 3

ans =
4
9^2

ans =
81

شما مي توانيد ببينيد كه متلب كليه اپراتورهاي اصلي رياضياتي را شامل + ، - ، * ، / ، ^ و ... را ساپرت مي كند . و شما مي توانيد عملگر هاي را با قرار دادن آنها در داخل پرانتز بصورت دسته و گروه در آوريد . با اين وجود عبارت ans دقيقا چيست ؟ ans اختصاري answer يا همان پاسخ است ، و در متلب اين عبارت بعوان نام پيش فرض متغير ها در نظر گرفته شده . و شما مي توانيد به متغيري كه فعلا اسمي براي ان انتخاب نشده فقط با تايپ عبارت ans دست پيدا كنيد .

4 + >>5

ans = 9

 >>ans

ans = 9

با اين وجود اگر معادله جديدي وارد شود ، مقدار ans تغيير خواهد كرد .

>>ans + 10

ans = 19

حالا شما هم متغير هاي خودتان را بعنوان تمرين وارد كنيد .

متغير ans به خودي خود سودمند نيست ، اما قدرت حقيقي ان در اين است كه شما مي توانيد متغير خودتان را تعريف و استفاده كنيد . بعنوان مثال :

>>a = 10

a = 10

 >>b = 20

b = 20

 >>c = 30

c = 30

 >>a

a = 10

 >>the_average = (a + b + c) / 3

the_average = 20

حالا بياييد بگوئيم كه شما متغير هاي زيادي را تعريف كرده ايد . احتمالاً نام كليه متغير هايي را كه تعريف كرده ايد بخاطر نخواهيد آورد ، پس داشتن ليستي از كليه متغير هايي كه تعريف شده اند سودمند خواهند بود . اين دقيقا چيزي است كه دستور whos انجام مي دهد . حالا با تايپ كردن دستور whos در خط فرمان و زدن اينتر شما مي توانيد نام و مقدار كليه متغير هايي را كه تا كنون وارد كرده ايد ببينيد . بعنوان مثال :

>>a = 5

a = 5

 >>b = 6

b = 6

 whos

Name
Size
Bytes
Class
a
1x1
8
double array
b
1x1
8
double array

در كل دو عنصر داريم كه از شانزده بيت استفاده كردهاند

براي پاك كردن متغير هايي كه قبلا وارد كرده ايدو در حافظه ذخيره شده اند چه كاري بايد انجام داد ؟ پاسخ اين سوال دقيقا پاسخ به اين است كه دستور clear چه كاري انجام مي دهد . clear را در خط فرمان تايپ كنيد ، خواهيد ديد كه كليه متغير ها و مقاديري را كه قبلا ذخيره شده اند را پاك مي كند . مثال فوق را ادامه مي دهيم .

whos

Name    Size      Bytes     Class

a          1x1       8          double array

b          1x1       8          double array

Grand total is 2 elements using 16 bytes

 clear

 whos

جلوگيري از نمايش نتايج بااستفاده از «؛»

اگر بعد از دستور سميكولون تايپ شود باعث مي شود كه نتيجه نشان داده نشود . اگر شما عبارتي تايپ كنيد ( مثلا b=4+5 ) و در انتهاي آن سميكولون بگذاريد ، سپس متلب عبارت را محاسبه مي كند ولي نتايج را در حافظه بصورت داخلي ( بدون نمايش ) ذخيره مي كند . بعنوان مثال :

>>a = 10;

>>b = 20;

>>c = 30;

>>d = 40;

>>the_average = (a + b + c + d) / 4

the_average =

25

the_average;

>>b

b =

20

>>e = 50

e =

50

the_blank_average = (a + b + c + d + e) / 5;

>>the_blank_average

the_blank_average =

30

ممكن است اينطور به نظر برسد كه استفاده از سميكولون زياد هم مهم نيست ، اما در حقيقت سميكولون هميشه دم دست است و هميشه استفاده مي شود . نتيجه نهايي عملياتي كه در متلب انجام داده ايد برايتان مهم است ، كه با تركيب بسياري از داده ها و نتايج موقت و متغير هاي مياني  محاسبه مي شود . و با افزودن سميكولون به انتهاي دستوري كه مقدار آن موقت يا نتيجه بصورت نتيجه مياني است باعث مي شود كه نتيجه آنها نشان داده نشود . بعنوان مثال ، در مثال بالا سميكولون بعداز متغير ها a,b,c,d تايپ شده است ولي فقط نتيجه نهايي كه ميانگين اين چهار متغير است مهم مي باشد و مي بينيم كه سميكولون بعد از عبارت the_average تايپ نشده است و نتيجه اين دستور نشان داده مي شود . 
 
برگرفته از وبلاگ : http://azizkhani.mihanblog.com
+ نوشته شده در ساعت توسط alireza |