Quantcast
Channel: دسته وبلاگ - متلبی
Viewing all 56 articles
Browse latest View live

قسمت اول بانک مقالات شبیه سازی شده برق قدرت

$
0
0

این پست صرفا جهت دانلود مقاله مدنظر شماست و برای اطلاعات بیشتر و جستجوی بهتر و سریعتر به فروشگاه متلبی بروید.

لازم به ذکر است سایت متلبی شبیه سازی با متلب و فروش شبیه سازی مقالات در متلب را خدمت رسانی می کند.

جهت انتخاب پروژه:

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

اگر مایل به انتخاب از همین صفحه هستین (این پست شامل بخشی از پروژه های آماده متلبی است) با زدن Ctrl+F کلید واژه خود را جستجو کرده و مقاله مناسب را بیابید. مثلا برای مقالات فازی، کلمه فازی را در صفحه جستجو کرده و با توجه به موضوع و سال انتشار و نوع مقاله، کد پروژه یا مقاله مورد نظر را انتخاب نمایید.در صورت داشتن سوال در مورد پروژه ها به ایمیل matlabi_ir@yahoo.com ارسال کنید تا در اولین فرصت پاسخگو باشیم

پروژه های آماده در فروشگاه متلبی جهت خرید آنلاین موجود می باشند و هزینه آنها نیز مشخص است
در صورتی که تمایل به خرید از طریق واریز کارت به کارت دارید میتوانید کد مربوطه را به شماره 09378425676 پیامک کنید تا نحوه خرید پیامک شود.
بانک مقالات مقالات شبیه سازی شده برق قدرت _ قسمت اول
-پروژه ها و مقالات شبیه سازی شده در متلب-

—————————————————–

برای دانلود هر مقاله روی موضوع مقاله چپ کلیک کنید و دانلود نمایید

 بانک اصلی مقالات ،ارزان تر از همه

 

کد مقاله g3
عنوان اصلی مقاله :

A Binary Particle Swarm Optimization for Optimal Placement and Sizingof Capacitor Banks in Radial Distribution Feeders with Distorted Substation Voltages 
ترجمه فارسی موضوع مقاله: تعیین اندازه ثابت و جایابی خازن با استفاده از الگوریتم ازدحام ذرات PSO
سال ارائه:  2006       نوع مقاله: IEEE        گزارش فارسی: –
کلیدواژه: برق قدرت، خازن گذاری capacitor sizing, capacitor placement, binary particle swarm optimization, harmonics, power flow

 

کد مقاله g6

عنوان اصلی مقاله :
 Back-Pressure Cogeneration Economic Dispatch For Physical Bilateral Contract Using Genetic Algorithms 
ترجمه فارسی موضوع مقاله: پخش بار اقتصادی سیستم تولید همزمان برای قرارداد فیزیکی دوطرفه با استفاده از الگوریتم ژنتیک
سال ارائه:  2006       نوع مقاله: IEEE        گزارش فارسی: دارد
کلیدواژه: مدیریت برق، پخش بار اقتصادی Cogeneration, Genetic algorithms, Bilateral contract

 

کد پروژه g7

عنوان اصلی پروژه :

 شبیه‌سازی یک مزرعه بادی 9 مگاواتی

سال ارائه:  –       نوع مقاله: –        گزارش فارسی: دارد

کلیدواژه: برق قدرت، نیروگاه بادی Wind farm

 

کد پروژه g11 

عنوان اصلی پروژه : راه حلی برای جریان برق بهینه توسط روش دیفرانسیلی

سال ارائه:  –       نوع مقاله: –        گزارش فارسی: –

کلید واژه : برق  قدرت ، Optimal Power flow, Differential Evolution

کد مقاله g37

عنوان مقاله:

Formal Derivation of Direct Torque Control for Induction Machines

سال ارائه:  2008       نوع مقاله: TRANSACTIONS                       گزارش فارسی: دارد

کلیدواژه: موتور، کنترل، بردار کنترل، موتور AC، DTC، کنترل مستقیم گشتاور AC motors, direct torque control (DTC), induction motor drives, singularly perturbed systems, vector control

کد مقاله g38

عنوان مقاله:

Direct Torque Control of Permanent Magnet Synchronous Motor

سال ارائه:  2003       نوع مقاله: ژورنال        گزارش فارسی: دارد

کلیدواژه: کنترل مستقیم گشتاور، موتور سنکرون، بردار مکان Direct Torque Control, Stator Space Vectors, Permanent Magnet Synchronous Motor

کد مقاله g39

عنوان مقاله:

(Direct Torque Control of Induction Motor Using Space Vector Modulation )SVM-DTC
سال ارائه:  2008       نوع مقاله:IEEE        گزارش فارسی: دارد

کلیدواژه: کنترل مستقیم گشتاور،  Direct Torque Control, Stator Space Vectors, space vector modulation (SVM)

کد مقاله g40 

عنوان مقاله:

Control of a Bidirectional Z-Source Inverter for Hybrid Electric Vehicles in Motoring, Regenerative Braking and Grid Interface Operations
کنترل یک اینورتر دوجهته Z-منبع برای ترکیبی وسایل نقلیه الکتریکی در رانندگی، احیاکننده ترمز و شبکه عملیات رابط
سال ارائه:  2010       نوع مقاله:IEEE        گزارش فارسی: دارد
کلیدواژه: کنترل اینورتر دوطرفه ،
Z-source Inverter, indirect field-oriented control, regenerative braking, grid interface

کد مقاله g41

عنوان مقاله:

Transmission Planning Considering Reliability and Economic Performances in A Deregulated Environment

طراحی و برنامه­ریزی یک خط انتقال برای بهینه­سازی با در نظر گرفتن قابلیت اطمینان

سال ارائه:  2009       نوع مقاله: IEEE                                      گزارش فارسی: دارد

کلیدواژه: قابلیت اطمینان، الگوریتم ژنتیک، بازار برق

cost-benefit analysis; reliability; genetic algorithms (GAs)

 

کد مقاله g42

عنوان مقاله:

Optimal interface based on power electronics in distributed generation systems for fuel cells

سال ارائه:  2011       نوع مقاله: ژورنال        گزارش فارسی: –

کلیدواژه: پیل سوختی، کنترل ولتاژ، توزیع پراکنده، DG، الکترونیک قدرت Distributed generation (DG), PEM fuel cell, Power electronics, Voltage control loop, PWM

 

کد مقاله g43

عنوان مقاله:
Photovoltaic based dynamic voltage restorer with power saver capability using PI controller
سال ارائه:  2012       نوع مقاله: ژورنال                                     گزارش فارسی: دارد
کلیدواژه: فتوولتائیک، مبدل DC به DC، مبدل بوست
Dynamic voltage restorer (DVR), Photovoltaic (PV), Voltage sag, Voltage swell, Outage, DC–DC boost converter

کد مقاله g45

عنوان مقاله:

Sensorless Indirect Stator Field Orientation Speed Control for Single-Phase Induction Motor Drive

سال ارائه:  2009       نوع مقاله: TRANSACTIONS   گزارش فارسی: دارد

کلیدواژه: ژنراتور دوسو تغذیه، توربین بادی، بردار کنترل Indirect stator-flux-oriented control, sensorless, vector control, single-phase induction motor, speed estimation

 

کد مقاله g46

عنوان مقاله:

A GA-API Solution for the Economic Dispatch of Generation in Power System Operation

راه‌حل ژنتیک برای دیسپاچ اقتصادی تولید در بهره‌برداری سیستم‌های قدرت

سال ارائه:  2012       نوع مقاله: IEEE                                      گزارش فارسی: دارد

کلیدواژه: سیستم‌های قدرت، بهینه‌سازی، جستجوی مقاوم Index Terms—API, ant colony optimization, economic dispatch, genetic algorithm, global optimization, hybrid models, nonconvex optimization, power system operation, robust search

 

کد مقاله g47

عنوان مقاله:

A Particle Swarm Optimization for Economic Dispatch With Nonsmooth Cost Functions

راه‌حل ژنتیک برای دیسپاچ اقتصادی تولید در بهره‌برداری سیستم‌های قدرت

سال ارائه:  2005       نوع مقاله: IEEE                                      گزارش فارسی: دارد

کلیدواژه: الگوریتم پرندگان، هوش جمعی ذرات، بهینه‌سازی با قید، پخش بار اقتصادی Constrained optimization, economic dispatch (ED), nonsmooth optimization, particle swarm optimization (PSO)

 

کد مقاله g48

عنوان مقاله:

Unit Commitment Problem Solution Using Shuffled Frog Leaping

سال ارائه:  2010       نوع مقاله: TRANSACTIONS   گزارش فارسی: دارد

کلیدواژه: توزيع اقتصادي، بهینه‌سازی، الگوریتم پرندگان، قورباغه (پیاده‌سازی این مقاله با الگوریتم PSO انجام‌شده است) Economic dispatch, generation scheduling, optimization techniques, shuffled frog leaping algorithm, unit commitment

 

کد مقاله g49

عنوان مقاله:
Benefits of Power Electronic Interfaces for Distributed Energy Systems
سال ارائه:  2010       نوع مقاله:     IEEE   گزارش فارسی: دارد کلیدواژه : Distributed energy (DE), distributed generation (DG), fault current, interconnection, interface, inverter, microgrid, power electronics (PE), power quality.
انرژی توزیع‌شده، تولید پراکنده (DG)، جریان خطا، اتصال، رابط، اینورتر،microgrid، الکترونیک قدرت، کیفیت توان

 

کد مقاله g50 

عنوان مقاله:

An Integral Battery Charger with Power Factor Correction for Electric Scooter

سال ارائه:  2010       نوع مقاله: ژورنال                      گزارش فارسی: دارد

کلیدواژه: موتور DC، مبدل، مبدل AC motor drives, AC motor modelling, ac–dc, power conversion, battery chargers, interleaved converter, road, vehicle electric propulsion

 

کد مقاله g51

عنوان مقاله:

A backward sweep method for power flow solution in distribution networks 2010

پخش بار یک شبکه توزیع شعاعی با حضور D-STATCOM

سال ارائه:  2010       نوع مقاله: ژورنال                                     گزارش فارسی: دارد

کلیدواژه: کنترل گشتاور، فازی، موتور القایی Backward/forward method, Radial and meshed distribution networks, PV nodes, Power flow

 

کد مقاله g52

عنوان مقاله:

Power-Management Strategies for a Grid-Connected PV-FC Hybrid System

سال ارائه:  2010       نوع مقاله:IEEE     گزارش فارسی: دارد

کلیدواژه: سیستم هیبرید، فوتو ولتائیک Distributed generation, fuel cell, hybrid system, microgrid, photovoltaic, power management.

کد پروژه g56

عنوان مقاله:

پخش بار بهینه توان راکتیو با استفاده از الگوریتم ازدحام ذرات PSO
سال ارائه: –      نوع مقاله:-    گزارش فارسی: دارد

 

کد مقاله g57 

عنوان مقاله:

Permanent Magnet Synchronous Generator-Based Standalone Wind Energy Supply System
سال ارائه:  2011       نوع مقاله:IEEE    گزارش فارسی: –

کد مقاله g59

عنوان مقاله:

Modeling and simulation of reverse power relay for generator protection
مدل‌سازی و شبیه‌سازی رله قدرت معکوس برای حفاظت ژنراتور
سال ارائه:  2012       نوع مقاله:IEEE    گزارش فارسی: دارد

 

کد مقاله g61

عنوان مقاله:

Dynamic equivalents for calculation of power system restoration

سال ارائه:  2012       نوع مقاله: ژورنال   گزارش فارسی: دارد
کلیدواژه:
Artificial Neural Networks (ANN)

 

کد مقاله g62 

عنوان مقاله:

Modified Dynamic Phasor Estimation Algorithm for the Transient Signals of Distributed Generators

سال ارائه:  2013       نوع مقاله:IEEE   گزارش فارسی: دارد
کلیدواژه:
Distributed generators, modified dynamic phasor,phasor estimation, time-variant fault current

 

کد مقاله g64

عنوان مقاله:
Battery Energy Storage Station (BESS)-Based Smoothing Control of Photovoltaic (PV) and Wind Power Generation Fluctuations
سال ارائه:  2013       نوع مقاله: IEEE                 گزارش فارسی: دارد کلیدواژه:
Adaptive smoothing control, battery energy storage station (BESS), solar power generation, state of charge (SOC), wind power generation.

 

کد مقاله g65 

عنوان مقاله:

DFIG-Based Wind Power Conversion With Grid Power Leveling for Reduced Gusts

سال ارائه:  2012       نوع مقاله: IEEE                 گزارش فارسی: دارد

کلیدواژه:Battery energy storage system (BESS), doubly fed induction generator (DFIG), grid power leveling, vector control, wind energy conversion system (WECS)

 

کد مقاله g71

عنوان مقاله:

Direct Active and Reactive Power Control of DFIG for Wind Energy Generation

سال ارائه:  2006       نوع مقاله: TRANSACTIONS   گزارش فارسی: دارد

کلیدواژه: کنترل توان، کنترل گشتاور، تبدیل ولتاژ، بردار ولتاژ، دو ﺳﻮ ﺗﻐﺬﯾﻪ ﺗﻮرﺑﯿﻦ ﺑﺎدي

Direct power control (DPC), doubly fed induction generator (DFIG), direct torque control, voltage source converter, voltage vector

کد مقاله g72

عنوان اصلی مقاله :
A New Method for Islanding Detection 
of Inverter-Based Distributed Generation Using DC-Link Voltage Control

روش جدیدی برای تشخیص حالت جزیره ای در یک DG همراه اینورتر با کمک کنترل ولتاژ لینک DC

سال ارائه:  2011       نوع مقاله:IEEE        گزارش فارسی: دارد
کلید واژه:Distributed generation (DG), islanding, nondetection zone (NDZ), voltage-source inverter

کد مقاله g73

عنوان مقاله:

An improved soft switched PWM interleaved boost AC–DC converter

سال ارائه:  2011       نوع مقاله: Elzevier   گزارش فارسی: دارد

کلید واژه:Interleaved boost,Soft switching ,Zero-voltage-transition ,Power factor correction

 

کد مقاله g74

عنوان اصلی مقاله :

سال ارائه:  2012       نوع مقاله:IEEE        گزارش فارسی: دارد
کلید واژه:Autonomous, control, inverter, islanding, microgrid, voltage-sourced converter (VSC)

کد مقاله g75

عنوان اصلی مقاله :

مدلسازی تلفات جریان گردابی برای یک موتور القایی با هسته Form با استفاده از مدار معادل

سال ارائه:  2012       نوع مقاله:IEEE        گزارش فارسی: دارد
کلید واژه:Eddy-Current , equivalent circuit, parameter estimation, skin effect

 

کد مقاله g76

عنوان اصلی مقاله :

 سال ارائه:  2013       نوع مقاله:ژورنال        گزارش فارسی: دارد

کلید واژه:Control, energy storage, fuel cell (FC), hybrid وsystem, smart grid, voltage sag

 

کد مقاله g77

عنوان اصلی مقاله :

 سال ارائه:  2005       نوع مقاله:IEEE        گزارش فارسی: دارد

کلید واژه:Constant quadrature voltage mode, constant reactance mode, damping power, static synchronous series compensator (SSSC), synchronizing power, transient stability limit

 

کد مقاله g78

عنوان اصلی مقاله :

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

سال ارائه:  2010       نوع مقاله:ScienceDirect        گزارش فارسی: دارد 

کلید واژه:Learning Induction Machine (IM) Drive, Education of Composite Model Flux Observer,Estimation angle of the rotor flux space vector words

 

کد مقاله g79

عنوان اصلی مقاله :

اثر کنترل کننده های FACTS بر روی پایداری سیستم‌های توان متصل با مولدهای القایی با تغذیه مضاعف

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

سال ارائه:  2011       نوع مقاله:Elsevier        گزارش فارسی: دارد 

کلید واژه:Wind energy conversion systems ,Doubly fed induction generators ,Flexible alternating ,current transmission ,systems ,Rotor angle stability ,Rotor speed stability

 

کد مقاله g84

عنوان اصلی مقاله :

سال ارائه:  2013       نوع مقاله :IEEE      گزارش فارسی: دارد 

کلید واژه:Convex optimization, digital multivariable control, distributed generation, islanded mode, loop shaping, microgrid, voltage regulation, voltage source converter

 

کد مقاله g85

عنوان اصلی مقاله :

 
بررسی ولتاژ موجک (ریپل) و ثبات مبدل های SR BUCK با جریان خروجی بالا و ولتاژ خروجی پایین

سال ارائه:  2010       نوع مقاله :IEEE      گزارش فارسی: دارد 

کلید واژه:Ripple ratio, stability, synchronous rectifier (SR), voltage regulator

 

کد مقاله g86

عنوان اصلی مقاله :

سال ارائه:  2010       نوع مقاله :Elsevier      گزارش فارسی: دارد 

کلید واژه:Wind power, Delivery system, Reliability, Cost ,Planning 

کد مقاله g89
عنوان مقاله:

A fuzzy logic supervisor for active and reactive power control of a variable speed wind energy conversion system associated to a flywheel storage system

سال ارائه:  2009         نوع مقاله: ELsevier     گزارش فارسی: دارد

کلید واژه:WECS, DFIG, Flywheel Energy Storage System (FESS) ,Fuzzy logic supervisor ,Powers smoothing

 

کد مقاله g90
عنوان مقاله:
TCSC Power Oscillation Damping and PSS Design Using Genetic Algorithm Modal Optimal Control
میرا کنندگی نوسان توان با TCSC و طراحی کنترل کننده بهینه با استفاده از الگوریتم ژنتیک
سال ارائه:  2013       نوع مقاله: ژورنال                                     گزارش فارسی: دارد
کلید واژه : کنترل بهینه، ژنتیک
GA, modal optimal control, power system stability, SMIB, TCSC
 

کد مقاله g91
عنوان مقاله:

Frequency Stability for Distributed Generation Connected through Grid-Tie Inverter

سال ارائه:  2012       نوع مقاله: ژورنال                                     گزارش فارسی: ندارد

کلید واژه:Distributed power generation, Power distribution, Power system stability, Power system control Inverters

 

کد مقاله g92
عنوان مقاله:

SIMULATION OF CYCLOCONVERTER FED SPLIT PHASE INDUCTION MOTOR

سال ارائه:  2012       نوع مقاله: ژورنال                                     گزارش فارسی: دارد

کلید واژه:Cycloconverter, Split phase Induction Motor, MATLAB

 

کد مقاله g93
عنوان مقاله:

SIMULATION OF D-STATCOM AND DVR IN POWER SYSTEMS

سال ارائه:  2007       نوع مقاله: ژورنال                                     گزارش فارسی: ندارد

کلید واژه:D-Statcom, DVR, voltagedips, swells,interruption,power quality, VSC

 

کد مقاله g94
عنوان مقاله:

Saturated Induction Machine Modelling Based on High Frequency Signal Injection

سال ارائه:  2012       نوع مقاله: ژورنال                                     گزارش فارسی: دارد

کلید واژه:Induction  Machine, Modelling,  Third  Harmonic, Signal Injection

 

کد مقاله g95
عنوان مقاله:

Permanent Magnet Synchronous Motor with Linear Quadratic Speed Controller 

سال ارائه:  2011       نوع مقاله: Elsevier                                     گزارش فارسی: دارد

کلید واژه:Permanent Magnet Synchronous Motor (PMSM), Linear Quadratic Regulator(LQR), PID controller, Simulink

 

 

کد مقاله g96
عنوان مقاله:

A review on the economic dispatch and risk management of the large-scale plug-in electric vehicles (PHEVs)-penetrated power systems

بررسی آثار شارژ و دشارژ خودروهای هیبریدی بر شبکه نمونه

سال ارائه:  2011       نوع مقاله: Elsevier                      گزارش فارسی: دارد

کلید واژه:Plug-in hybrid electric vehicle (PHEV)و Economic dispatchو Joint scheduling وRisk management وElectric market

کد مقاله g97
عنوان مقاله:

A MATLAB-Simulink-Based PV Module Model and Its Application Under Conditions of Nonuniform Irradiance

سال ارائه:  2012       نوع مقاله: IEEE                         گزارش فارسی: دارد

کلید واژه:MATLAB-Simulink, model, nonuniform irradiance, photovoltaic (PV) array

کد مقاله g98
عنوان مقاله:

A backward sweep method for power flow solution in distribution networks

سال ارائه:  2010       نوع مقاله: Elsevier                                     گزارش فارسی: دارد

کلید واژه:درس بهره برداری، Backward/forward method, Radial and meshed distribution networks, PV nodes, Power flow

کد مقاله g99
عنوان مقاله:

A T-Connected Transformer and Three-leg VSC Based DSTATCOM for Power Quality Improvement

ترانسفورماتور با اتصال T و DSTATCOM مبتنی بر VSC سه پایه‌ برای بهبود کیفیت توان

سال ارائه:  2008       نوع مقاله: IEEE                                     گزارش فارسی: دارد

کلید واژه:جبرانساز استاتیک توزیع (DSTATCOM)، جبرانسازی جریان نوترال، بهبود کیفیت توان، ترانسفورماتور با اتصال T، مبدل منبع ولتاژ (VSC).Distribution static compensator (DSTATCOM), neutral current compensation, power quality improvement, T-connected transformer, voltage source converter (VSC)

کد مقاله g106
عنوان مقاله:
Simulation of Correlated Wind Speed Data for Economic Dispatch Evaluation
سال ارائه:  2012       نوع مقاله: IEEE                                       گزارش فارسی: دارد
کلید واژه : توزیع اقتصادی، باد، مونت کارلو
Correlation, economic dispatch, Monte Carlo simulation, Weibull distributions, wind power

کد مقاله g107
عنوان مقاله:

Dynamic compensation of reactive power in Various Faults in Power System

جبران دینامیک توان راکتیو برای خطاهای مختلف در سیستم قدرت (statcom)

سال ارائه:  2012       نوع مقاله: JEEE                                       گزارش فارسی: دارد
کلید واژه :
STATCOM, Voltage Source Converter (VSC), Pulse-width Modulation (PWM), Single line to ground fault

کد مقاله g108
عنوان مقاله:

A demand response based solution for LMP management in power markets

راه حل هاي پاسخ تقاضا مبتنی بر مدیریت LMP در بازارهای برق

سال ارائه:  2011       نوع مقاله: Elsevier                                       گزارش فارسی: دارد

کلید واژه :

Restructured power systems,Demand response (DR),Emergency demand response program,(EDRP),Local marginal pricing (LMP)

کد مقاله g109
عنوان مقاله:

Power System Stability Improvement of Long Transmission Line System by Using Static Var Compensator (SVC

بهبود پایداری سیستم قدرت در سیستم خط انتقال بلند با استفاده از  جبران کننده استاتیکی وار (SVC)

سال ارائه:  2013       نوع مقاله: Journal                                       گزارش فارسی: دارد

کلید واژه :

FACTS, long transmission line, MATLAB, SVC, power system stability, three phase fault.

کد مقاله g110
عنوان مقاله:

Harmonic Analysis in a Power System with Wind Generation

سال ارائه:  2006       نوع مقاله: IEEE                                       گزارش فارسی: دارد

کلید واژه : تجزیه و تحلیل هارمونیک

Harmonics modeling, power system harmonics,summation of harmonics, wind turbines

کد مقاله g111
عنوان مقاله:

Large-Scale Real-Time Simulation of Wind Power Plants into Hydro-Québec Power System

سال ارائه:  2008به بعد       نوع مقاله: journal                                       گزارش فارسی: دارد

کلید واژه:

Wind generator, wind power plant, modeling, model validation, simulation, real-time simulation

 

کد مقاله g114
عنوان مقاله:

P-Q Control Matrix Converter Based UPFC By Direct Power Control Method

ماتریس کنترل P-Q مبدل مبتنی بر UPFC با استفاده از روش کنترل توان مستقیم

سال ارائه:  2013        نوع مقاله: journal                                       گزارش فارسی: دارد

کلید واژه:

کد مقاله g119

عنوان اصلی مقاله :

Applications
شبیه سازی سلول سوختی اکسید سیستم با استفاده از اینورتر سه فاز
سال ارائه:  2013       نوع مقاله:ژورنال        گزارش فارسی: دارد

کلید واژه:

ELF-extremely low frequency, Amplifiers, loop antennas, magnetic field measurement, magnetometers

کد مقاله g120

عنوان اصلی مقاله :

Implementation of Simulink in Protection of Transmission Lines

اجرای سیمولینک در حفاظت از خطوط انتقال

سال ارائه:  2012       نوع مقاله:ژورنال        گزارش فارسی: دارد

کلید واژه:

ANN (Artificial neural network), Simulink, High voltage transmission lines, Fault

کد مقاله g121

عنوان اصلی مقاله :

Comparative Study of Speed Control of D.C. Motor Using PI, IP, and Fuzzy Controller

بررسی مقایسه ای کنترل سرعت موتور DC با استفاده از PI، IP، و کنترل فازی

—در این مقاله سعی شده است که سرعت موتور DC به سه صورت منطق فازی و PI وIP کنترل شود .برای این منظور ابتدا باید موتور DC مدل گردد و این دو کنترل روی آن اعمال گردد .
سال ارائه:  2013       نوع مقاله:ژورنال        گزارش فارسی: دارد

کلید واژه:

Fuzzy logic controller (FLC) , Integral- Proportional (I-P) controller, Proportional-Integral (P-I) controller,
Speed control, DC Motor drive.

کد مقاله g122

عنوان اصلی مقاله :

Reliability Study of HV Substations Equipped With the Fault Current Limiter

سال ارائه:  2012       نوع مقاله:IEEE        گزارش فارسی: دارد

کلید واژه: قابلیت اطمینان

Terms—Failure mode and effect analysis (FMEA), fault current limiter (FCL), reliability evaluation,

substation configuration.

کد مقاله g123

عنوان اصلی مقاله :

Reconfiguration of Power Distribution Systems Considering Reliability and Power Loss

پیکر بندی مجدد سیستم های توزیع با توجه به قابلیت اطمینان و تلفات توان

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

اطمینان و تلفات ارائه شده است.

سال ارائه:  2012       نوع مقاله:IEEE        گزارش فارسی: دارد

کلید واژه:

Binary particle swarm optimization (BPSO), distribution system reconfiguration, minimal cut set, power loss, probabilistic reliability model.

کد مقاله g124

عنوان اصلی مقاله :

Analysis and Simulation of a D-STATCOM for Voltage Quality Improvement

تجزیه و تحلیل و شبیه سازی D-STATCOM برای بهبود کیفیت ولتاژ

سال ارائه:  2011       نوع مقاله:journal        گزارش فارسی: دارد

کلید واژه:

Power Quality, Energy Storage System (ESS), D-STATCOM, Voltage Flicker, Synchronous Reference Frame (SRF).

کد مقاله g125

عنوان اصلی مقاله :

 Sensorless DTC-SVM for Induction Motor Driven by a Matrix Converter Using a Parameter Estimation Strategy

 DTC – SVM بدون سنسور براي موتور القايي با يك مبدل ماتريسي با استفاده از استراتژي تخمين پارامتر

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

در واقع يك روش جديد بدون سنسور براي تخمين سرعت روتور، شار، مقاومت استاتور و مقاومت روتور ارائه داده خواهد شد

سال ارائه:  2008       نوع مقاله:IEEE        گزارش فارسی: دارد

کلید واژه: تبديل توان AC- AC ، تحريك های موتور AC ، مشاهده گرها.

AC–AC power conversion, AC motor drives, observers.

کد مقاله g132
عنوان مقاله:
Power System Reliability Analysis Considering Protection Failures
سال ارائه:  2002       نوع مقاله: IEEE                   گزارش فارسی: دارد
کلید واژه : سیستم قدرت، قابلیت اطمینان
Power system, Reliability, Protection systems, Rare events, Cascading, Hidden failures

کد مقاله g133
عنوان مقاله:
Improved Configurations for Dc to Dc  Buck and Boost Converters
سال ارائه:  2012       نوع مقاله: IEEE                             گزارش فارسی: دارد
کلید واژه : مبدل DC به DC
dc-dc Buck converter, Boost converter, ripple voltage

 

کد مقاله g134
عنوان مقاله:
Simulation of an isolated Wind Diesel System with battery energy storage
سال ارائه:  2011       نوع مقاله: ژورنال                            گزارش فارسی: دارد
کلید واژه : شبیه سازی دینامیکی، اینورتر، dfig
Wind Diesel, Isolated Power Systems, Dynamic simulation, Battery based Energy Storage Systems, Current Controlled Inverter

کد مقاله g135
عنوان مقاله:

A Single-Input Single-Output Approach by using Minor-Loop Voltage Feedback Compensation with Modified SPWM Technique for Three-Phase AC–DC Buck Converter

سال ارائه:  2013       نوع مقاله: ژورنال                            گزارش فارسی: دارد
کلید واژه :MATLAB-Simulink, Minor-loop feedback compensator, Modified SPWM, Three-phase AC–DC buck converter

کد مقاله g136
عنوان مقاله:

A D-STATCOM Scheme using Power Quality Improvement in Power System

سال ارائه:  2012                 نوع مقاله: ژورنال                            گزارش فارسی: دارد

کلید واژه :  D-STATCOM, PWM Inverter, SVC, Power Quality.

کد مقاله g137

عنوان مقاله:

Load Compensation for Diesel Generator-Based Isolated Generation System Employing DSTATCOM

سال ارائه:  2011                نوع مقاله: IEEE                       گزارش فارسی: دارد

کلید واژه : Adaline, diesel generator set, distribution static synchronous compensator (DSTATCOM), harmonic  limination,load compensation

کد مقاله g138

عنوان مقاله:

Multiobjective Optimal Location of FACTS Shunt-Series Controllers for Power System Operation Planning

در این پروژه سعی شده تا یک شبکه 14 شینه IEEE با افزودن تعداد سه عدد از ادوات FACTs به سیستم در حالت ماندگار شبیه سازی شود. ادوات به کار رفته عبارتند از HFC بین شین 2 و 4، PST بین شین 2 و 5 و UPFC بین شین 6 و 13.

سال ارائه:  2012                نوع مقاله: IEEE                       گزارش فارسی: دارد

کلید واژه : Flexible ac transmission systems (FACTS), hybridflow controller (HFC), multiobjective, optimal location, optimal power flow (OPF), phase-shifting transformer (PST), unified power-flow controller (UPFC).

کد مقاله g139

عنوان مقاله:

Power Quality Issues in Traction Power Systems

سال ارائه:  2013                نوع مقاله: –                       گزارش فارسی: دارد

کلید واژه :

کد مقاله g140

عنوان مقاله:

Trans-Z-Source Inverters

سال ارائه:  2011                نوع مقاله:IEEE                        گزارش فارسی: دارد

کلید واژه :Current-source inverter, dc–ac conversion, voltage-source inverter, Z-source inverter

کد مقاله g149
عنوان مقاله:
Multicriteria Design of Hybrid Power Generation Systems Based on a Modified Particle Swarm Optimization Algorithm
سال ارائه:  2009       نوع مقاله: ژورنال                                     گزارش فارسی: دارد
کلید واژه : سیستم هیبرید، انرژی های نو
Adequacy evaluation, hybrid power generation, system, multicriteria design, particle swarm optimization, probabilistic, method, renewable energy, time-series models

کد مقاله g150
عنوان مقاله:
A New Variable-Speed Wind Energy Conversion System Using Permanent-Magnet Synchronous Generator and Z-Source Inverter
سال ارائه:  2009       نوع مقاله: IEEE                                      گزارش فارسی: دارد
کلید واژه : کنترل بهینه، ژنتیک
Maximum power point tracking (MPPT) control, permanent-magnet synchronous generator (PMSG), wind energy, conversion system (WECS), Z-source inverter.

کد مقاله g151
عنوان مقاله:

Investigation of Induction Motors Starting and Operation with Variable Frequency Drives

سال ارائه:  2007       نوع مقاله: IEEE                                      گزارش فارسی: دارد
کلید واژه : کنترل برداری Variable frequency drives, induction motors, motor starting, cross-line starting, torque

کد مقاله  g156

عنوان مقاله:

DG integrated multistage distribution system expansion planning

سال ارائه:  2011       نوع مقاله: ژورنال                                     گزارش فارسی: دارد

کلید واژه : چند مرحله ای، سیستم های توزیع، الگوریت ژنتیک

Distributed generation, Genetic algorithm, Multistage distribution expansion planning, Optimal power flow

 

کد مقاله g157

عنوان مقاله:

A new improved adaptive imperialist competitive algorithm to solve the reconfiguration problem of  distribution systems for loss reduction and voltage profile improvement

“Study of Reconfiguration for the Distribution System With Distributed Generators”

بازآرایی فیدرهای توزیع در حضور تولیدات پراکنده با استفاده از الگوریتمga-bfa 

سال ارائه:  2010       نوع مقاله: IEEE                           گزارش فارسی: دارد

کلید واژه : ga algorithm, distributed generation, distribution system, feeder reconfiguration , Improved adaptive imperialist competitive ,algorithm, Reconfiguration ,Ant colony algorithm ,Genetic algorithm ,Distribution system ,Heuristic prohibited zone method

 

کد مقاله g204

عنوان مقاله:

حداقل سازی هزینه فروافتادگی ولتاژ و تلفات توان با استفاده از مکان یابی بهینه ی تولیدات پراکنده و ادوات FACTS

Reactive power management of distribution networks with wind generation for improving voltage stability

سال ارائه:  2013       نوع مقاله: –                      گزارش فارسی: دارد

کلید واژه : الگوریتم ژنتیک, الگوریتم ازدحام ذرات , الگوریتم رقابت استعماری, تلیدات پراکنده, ادوات FACTS, جایابی بهینه, فروافتادگی ولتاژ

  • کار انجام شده در مقاله:
  • مکان و اندازه بهینه SVC وDSTATCOM در شبکه توزیع با استفاده از الگوریتم ژنتیک
  • مکان و اندازه بهینه DG در شبکه توزیع با استفاده الگوریتم ژنتیک

اهداف:

  • کاهش فروافتادگی ولتاژ
  • کاهش تلفات

کار هایی که انجام شده:

  • مکان و اندازه بهینه SVC وDSTATCOM و خازن موازی در شبکه توزیع با استفاده از GA ، PSO وICA

اهداف:

  • کاهش فروافتادگی ولتاژ
  • کاهش تلفات

 

کد مقاله g205

عنوان مقاله:

Buck–Boost-Type Unity Power Factor Rectifier With Extended Voltage Conversion Ratio

سال ارائه:  2008       نوع مقاله: IEEE                             گزارش فارسی: دارد

کلید واژه : harmonic rectifier, power factor correction (PFC), single-stage single-switch rectifier, unity power factor(UPF

 

کد پروژه g206

عنوان پروژه:

مدل سازی خطای سیم پیچ به زمین ترانسفورماتورهای قدرت

جهت اطلاع بیشتر به مدیریت متلبی ایمیل بزنید                     گزارش فارسی: دارد

 

کد مقاله g207

عنوان مقاله:

Power Quality Improvement by Suppression of Current Harmonics Using Hysteresis Controller Technique

سال ارائه:  2013       نوع مقاله: IJRTE              گزارش و ترجمه فارسی: دارد

کلید واژه :  Hysteresis  Current  control,  Instantaneous power (p–q) theory, PI Controller, Shunt Active Power Filter

 

کد مقاله g208

عنوان مقاله:

Enhanced Hysteresis-Based Current Regulators in Vector Control of DFIG Wind Turbines

سال ارائه:  2011       نوع مقاله: IEEE                             گزارش: دارد

کلید واژه : Doubly fed induction generator (DFIG), equidistant hysteresis bands, grid-flux orientation, vector-based hysteresis current regulator

 

کد مقاله g209

عنوان مقاله:

Evaluating the Benefits of a Hybrid Solid Oxide Fuel Cell Combined Heat and Power Plant for Energy Sustainability and Emissions Avoidance

سال ارائه:  2011       نوع مقاله: IEEE                             گزارش: دارد

کلید واژه :   Combined heat and power (CHP), electricity generation, energy sustainability, solid oxide fuel cells (SOFCs)

 

کد مقاله g210

عنوان مقاله:

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

سال ارائه:  1386       نوع مقاله: کنفرانسی                           گزارش: دارد

کلید واژه :   خودرو برقی, تولید پراکنده, منحنی بار, ضریب بار

 

کد مقاله g211

عنوان مقاله:

Modeling and  Simulation of a Dynamic Voltage Restorer  (DVR)  for  Power  Quality Problems Voltage  Sags and  Swells

سال ارائه:  2012       نوع مقاله: IEEE                           گزارش: دارد

کلید واژه :  Dynamic  Voltage  Restorer  (DVR),  Power quality  problems,  Sinusoidal  Pulse  Width  Modulation  (SPWM), Voltage sag and swell,  Voltage Source Converter  (VSC)

 

کد مقاله g212

عنوان مقاله:

Torque Ripple Reduction of the Torque Predictive Control Scheme for Permanent-Magnet Synchronous Motors

سال ارائه:  2012       نوع مقاله: IEEE                             گزارش : –

کلید واژه:  Permanent-magnet synchronous motor (PMSM),torque predictive control (TPC), torque ripple, voltage angle

 

کد مقاله g213

عنوان مقاله:

Examination  of  major  factors  affecting  voltage  variation  on  distribution  feeders

بررسی عوامل اصلی تاثیرگذار روی تغییر ولتاژ فیدرهای توزیع

برای اطلاع از مدل شبکه شبیه سازی این مقاله ایمیل بزنید

سال ارائه:  2013       نوع مقاله: Elsevier                     گزارش و ترجمه: دارد

کلید واژه:  Distribution  system, Power  flow  analysis, Power  quality, Voltage  quantity, Voltage  variation

 

 

کد مقاله g214

عنوان مقاله:

Modeling of Induction Machines Using a Voltage-Behind-Reactance Formulation

سال ارائه:  2008       نوع مقاله: IEEE                             گزارش: دارد

کلید واژه:  Coupled-circuit (CC) model, dynamic simulation, induction machine, qd model, voltage-behind-reactance (VBR)model

 

کد مقاله g215

عنوان مقاله:

Genetic algorithm based reactive power dispatch for voltage stability improvement

سال ارائه:  2010       نوع مقاله: Elsevier                             گزارش و ترجمه و پاورپوینت: دارد

کلید واژه:  Voltage stability, L-index, Reactive power dispatch,Genetic algorithm

 

کد مقاله g216

عنوان مقاله:

A combination of genetic algorithm and particle swarm optimization for optimal DG location and sizing in distribution systems

سال ارائه:  2012       نوع مقاله: Elsevier                             ترجمه: دارد

کلید واژه:  Distributed generation, Genetic algorithm, Placement, Particle swarm optimization, Losses

 

کد مقاله g217

عنوان مقاله:

Optimal sizing of battery energy storage for micro-grid operation management using a new improved bat algorithm

سال ارائه:  2014       نوع مقاله: Elsevier                             گزارش:  –

کلید واژه:  Battery energy storage sizing, Distributed generation, Improved bat algorithm, Micro-grid, Operation management, Renewable energy sources

 

کد مقاله g218

عنوان مقاله:

Large-Scale Integration of Deferrable Demand and Renewable Energy Sources

سال ارائه:  2014       نوع مقاله: IEEE                             گزارش:  دارد

کلید واژه:  Load management, power generation scheduling, wind power generation

 

کد مقاله g219

عنوان مقاله:

Reactive Power Compensation in railways using Active Impedance concept

سال ارائه:  2014       نوع مقاله: IEEE                             پاورپوینت:  دارد

کلید واژه:  Rail transportation power systems, AC-AC ,power conversion, Reactive power control, Static VAR compensators

 

کد مقاله g220

عنوان مقاله:

Simulation of a Buck-Boost Single Phase Voltage Source Inverter for Distribution Generation Systems

سال ارائه:  2012       نوع مقاله: Journal                            گزارش:  –

کلید واژه:  Buck-Boost  inverter,Distribution  generators,  Full ,bridge inverter, multiple stages, refence signal

 

کد مقاله g221

عنوان مقاله:

Simulation of Doubly-Fed Induction Generator in a Wind Turbine

سال ارائه:  2009       نوع مقاله:   International PhD Workshop                      گزارش:  دارد

کلید واژه:

 

کد مقاله g222

عنوان مقاله:

A New Intelligent Agent-Based AGC Design With Real-Time Application

سال ارائه:  2012       نوع مقاله:   IEEE                      گزارش:  دارد

کلید واژه:  Agent systems, automatic generation control,(AGC), Bayesian networks (BNs), intelligent control, wind power generation

 

کد مقاله g223

عنوان مقاله:

Reference Compensation Technique of Neural Force Tracking Impedance Control for Robot Manipulators

سال ارائه:  2010       نوع مقاله:   IEEE                     گزارش:  دارد

کلید واژه: component; neural network, robot manipulator

مقالات شبیه سازی شده برق قدرت

matlab matlab project free دانلود پروژه متلب آموزش Simulink آموزش سیمولینک متلب آموزش متلب آموزش نصب Matlab  آموزش کامل نصب Matlab R2015a انجام شبیه سازی با متلب برنامه متلب دانلود Matlab R2015a دانلود جدیدترین نسخه نرم افزار متلب دانلود رایگان Matlab R2015a دانلود رایگان متلب 2015 دانلود مستقیم Matlab R2015a دانلود مستقیم متلب 2015 سفارش انجام پروژه متلبسفارش شبیه سازی با متلب شبیه سازی با Matlabشبیه سازی با متلب شبیه سازی در matlab شبیه سازی در matlab پروژه متلب شبیه سازی مقالات با متلبفروشگاه متلبی متلب مقالات شبیه سازی شدهمقالات شبیه سازی شده با متلب مقالات شبیه سازی شده برق قدرت مقالات شبیه سازی شده در متلب موتور القایی نحوه سفارش پروژه متلب پردازش سیگنال و هوش مصنوعی پروزه matlabپروژه Matlab پروژه آماده پروژه آماده با متلبپروژه آماده متلب پروژه برق قدرت با مطلب پروژه رایگان متلب پروژه متلب پروژه متلب برق پروژه متلب برق کنترل پروژه متلب محاسبات عددی پروژه متلب پردازش تصویر

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


به چه سایتی اعتماد کنیم

$
0
0

مخاطبین ما از فرهیخته ترین و باهوش ترین افراد جامعه هستند و ریز بینی ما همیشه از زاویه نگاه دقیق شماست

لطفا متن زیر را دقیق بخوانید

شاید راهنمای زیر تبلیغ گونه به نظر برسد, اما با کمی تامل میتوان به راستی و کمک کننده بودن این متن پی ببرید:

چند واقعیت که باید بدانیم:
هر سایتی میتواند تبلیغات دور از واقعیت برای جذب کاربر کند اما بهتر است بدانیم که:

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

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

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

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

  1. مراحل سفارش باید مکتوب باشد. در فضای مجازی, ایمیل یکی از بهترین گزینه های مناسب برای بستن قرارداد است. چرا که پیام های طرفین و قرارداد مابین به هیچ عنوان امکان اصلاح یا حذف را ندارند.(پس از بستن قرارداد به صورت تلفنی و یا تلگرامی و… خودداری کنید, چرا که قابل پیگیری حقوقی نیست)

سایت متلبی در بخش سفارشات شبیه سازی, به چندین موارد اساسی جهت مشتری مداری و کیفیت کار بهتر تکیه کرده و در قرارداد با شما بکار بسته است:
1- انتخاب استادکارها با گذر از فیلترهای سخت جهت داشتن کادری مجرب و حرفه ای
2- هزینه پرداختی شما حتی تا دو روز بعد از تحویل پروژه به دست سایت امانت است و بعد از تایید شما به حساب استادکار مربوطه واریز میشود.
3- در فرم ثبت سفارش سایت قسمتی را برای آنچه از استادکار مربوطه میخواهید قرار دادیم تا موارد سلیقه ای, مانند تهیه گزارش کار و… کاملا مطابق میل سفارش دهنده (شما) باشد.
4- استادکارهای سایت متلبی ملزم به پاسخگویی سوالات شما تا 10 روز بعد از تحویل سفارشتان بصورت رایگان هستند.
5- امکان برقراری ارتباط بین شما و استادکار مربوطه در حین انجام سفارشتان از طریق تماس کنفرانسی وجود دارد.
6- متلبی تعطیلی ندارد و همه روزه پاسخگوی شماست
7- دارای درگاه آنلاین و مستقیم بانکی جهت سهولت و امنیت پرداخت شما http://www.matlabi.ir/payment/

 

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

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

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

 

این مشاوره ای هست که همیشه به مخاطبین سایت متلبی داشتیم

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

لطفا نظرات خود را از طریق پیام رسان سایت به اطلاع ما برسانید.

نوشته به چه سایتی اعتماد کنیم اولین بار در متلبی پدیدار شد.

چگونه درآمد مستمر از سایت متلبی داشته باشیم

$
0
0

با سلام

وقتتون بخیر

اگر به فکر یک درآمد مداوم با کمترین زحمت هستید , راه کار خوبی برای شما در نظر گرفته ایم

همانطور که میدانیم سایت متلبی دارای رنک و رتبه خیلی خوبی در موتورهای جستجو است

ما این بستر آماده را برای همکاری بیشتر با شما بصورت زیر در اختیارتان قرار می دهیم:

آموزش های خود را اعم از تخصصی و غیر تخصصی, یا متلب و غیر متلب, تهیه و بر روی سایت متلبی بفروش برسانید

فایلهای آموزشی خود را رمزگذاری میکنید و با پنل کاربری که به شما داده میشود خودتون محصولاتتان را بفروش میرسانید

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

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

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

 نیازی به پرداخت هزینه به عنوان اشتراک و غیره نیست

——————

آموزش میتواند در قالب ویدیو یا ورد باشد

در آموزش های ویدیویی یا ورد باید در ابتدا فهرستی از مطالب کلیدی که قرار هست به اون پرداخته بشه قرار بدین

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

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

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

zd soft screen recorder

bandicam

دانلود فیلم

محدودیتی در حجم فایل های تهیه شده از سوی شما نیست. فقط زمان فشرده سازی و رمزگذاری روی فایلها, بایستی به قسمتهای زیر 1گیگ تقسیم بندی شوند.

این صفحه آپدیت می شود

لطفا نظرات و پیشنهادهای خودتان را به اطلاع مدیریت سایت برسانید

باسپاس

نوشته چگونه درآمد مستمر از سایت متلبی داشته باشیم اولین بار در متلبی پدیدار شد.

راهنما و زمینه فعالیت سایت متلبی

$
0
0

با سلام

به زودی راهنمای سایت جهت سهولت دسترسی شما مخاطبین همراه, در این پست قرار می گیرد

خبرهای خوب در راه است

توضیحاتی مختصر در مورد وب سایت متلبی:

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

در صفحه اصلی وب سایت: گزینه های

انجام شبیه سازی با متلب ” :

در این تب از طریق فرم تعبیه شده قادر به ارسال سفارش جهت شبیه سازی مقاله و… با نرم افزار متلب توسط تیم متلبی خواهید بود

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

برای شبیه سازی با متلب از دو طریق می توان اقدام نمود:

1- شبیه سازی با متلب از طریق فرم ثبت سفارش شبیه سازی با متلب

2- شبیه سازی با متلب از طریق ارسال سفارش به ایمیل matlabi_ir[at]yahoo.com

فرم ثبت سفارش سریع

فرم درخواست شبیه سازی
جهت هماهنگی و اطلاع رسانی استفاده می شود.
نتیجه بررسی و فایل‌های آموزشی و ... شما به این ایمیل ارسال خواهد شد
در دقت و مشاوره متخصصین سایت به شما تاثیر دارد
سفارشتون به کارشناس های این رشته ارسال خواهد شد.
اگر ورژن خاصی مدنظر شماست برای تهیه شبیه سازی ذکر نمایید
لطفا موضوع مقاله یا هدف اصلی را بنویسید و از استفاده کلماتی مثل "شبیه سازی" "شبیه سازی با متلب" "پروژه متلب" و.. خودداری نمایید.
لطفا به صورت مختصر آنچه از استادکار خود میخواهید بیان کنید.
لطفا در این قسمت به صورت کامل توضیحاتی در مورد سفارش یاداشت کنید
در صورت نیاز یکی از موارد بالا را انتخاب کنید
برای مثال 7روز - دقت فرمایید که موعد تحویل کمتر, قیمت را افزایش خواهد داد!

سفارش از طریق ربات تلگرام متلبی

چرا باید متلبی را انتخاب کنیم:

1- گارانتی هزینه: اساتید طرف قرارداد متلبی به گونه ای باید عمل کنند که سفارش مخاطب بطور کامل و صحیح انجام شود, لذا بهترین راه را در نظر گرفته ایم, به این صورت که بعد از تحویل پروژه شبیه سازی شده با متلب به مدت دو روز فرصت برای بررسی و اعلام هر گونه کاستی احتمالی به مخاطب داده می شود.

حالا این سوال برای شما بوجود آمد که اگر صحیح بود که هیچ, اما اگر سفارش شبیه سازی با متلب به درستی انجام نشده بود یا دارای کاستی هایی بود چه باید کرد؟

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

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

ما به چنین تعهدی گارانتی هزینه می گوییم.

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

اما این پایان یک پشتیبانی خوب نیست و برای اطمینان بیشتر شما, تعهد دیگری نیز برای اساتید انجام شبیه سازی با متلب, به شرح زیر اجرایی شده است:

همه اساتید ملزم به ارائه گزارش فنی از شبیه سازی با متلب ارائه دهند, اما برای مواقعی که شما اعلام نکرده باشید که گزارش خاصی مد نظر هست یا نیاز به آموزش شبیه سازی با متلب خودتون دارید, اساتید موظف به تهیه آموزش یا گزارش مدنظر شما را با ارائه هزینه آن دارند.

هدف متلبی ارائه خدمات آموزشی و کمک آموزشی در زمینه شبیه سازی با متلب است.

ما به چنین تعهدی پشتیبانی خوب می گوییم

 

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

پروژه متلب

تعویض پروژه رایگان” :

در این تب می توانید شرایط استفاده از تعویض پروژه رایگان متلب رو با پروژه های وب سایت متلبی داشته باشید

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

تعویض پروژه با متلبی بطور 100% رایگان قابل انجام است و برای این کار شرایط بسیار آسانی را در نظر گرفته ایم

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

تعویض پروژه متلب با متلبی

 

فروشگاه متلبی:

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

البته تمامی پروژه های متلب را می توانید از طریق فرم ثبت سفارش شبیه سازی با متلب سفارش دهید.

در فروشگاه متلبی روزانه تعدادی از پروژه های آماده متلب به حراج گذاشته می شوند.

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

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

مشتری مداری متلبی:

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

*مشتری مداری در حوزه ثبت سفارش پروژه:

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

سایر نکات:

  •     هزینه با توجه به زمان (محدودیت و فوریت پروژه) و سختی کار مشخص می شود
  •     شرایط و الزامات پروژه همگی باید مکتوب باشند و نکات تلفنی و پیامکی ممکن هست فراموش شوند و در این صورت ایرادی به مجموعه متلبی وارد نخواهد بود.
  •      بعد از تحویل و یا ضمن انجام پروژه،اعمال تغییرات و یا بخش های جدید اضافه شده خارج از درخواست مکتوب اولیه نیازمند توافق مالی و زمانی مجدد دارد.
  •    واریز هزینه، به شخص یا مجموعه های دیگر اعم از همکار و غیره مسئولیتی را برای متلبی در پی نخواهد داشت.
  • بدلیل عدم تداخل برنامه ریزی, حتما در هنگام سفارش یا واریز وجه شماره تماس خود را روی ایمیل مربوطه ریپلای نمایید.
  • هرگونه تغییر یا تاکید و کمک رسانی جهت تسریع روند کار توسط استاد مربوطه خود را با ریپلای کردن همان ایمیل سفارش و ارسال آن, اطلاع رسانی کنید و در صورت لزوم با ارسال پیامک به شماره 09378425676 به پیگیری کار خود سرعت دهید.

در پیاده سازی مقالات به نکات زیر توجه داشته باشید

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

 

** در حوزه خرید پروژه های آماده:

پس از هر بار خرید پروژه آماده متلب, کوپن تخفیف 10هزار تومانی تقدیم می شود تا بتوانیم در خریدهای بعدی نقش کوچکی در جبران وفاداری شما عزیران, داشته باشیم.

——————————————————-

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


آموزش متلب
آموزش مطلب
آموزش MATLAB
آموزش برنامه نويسي متلب
آموزش برنامه نويسي مطلب
آموزش برنامه نويسي MATLAB
آموزش پيشرفته متلب
آموزش پيشرفته مطلب
آموزش پيشرفته MATLAB
آموزش برنامه نويسي پيشرفته متلب
آموزش برنامه نويسي پيشرفته مطلب
آموزش برنامه نويسي پيشرفته MATLAB

هوش مصنوعي در متلب
هوش مصنوعي در مطلب
هوش مصنوعي در MATLAB
الگوريتم ژنتيک در متلب
الگوريتم ژنتيک در مطلب
الگوريتم ژنتيک در MATLAB
بهينه سازي در متلب
بهينه سازي در مطلب
بهينه سازي در MATLAB
شبکه عصبي در متلب
شبکه عصبي در مطلب
شبکه عصبي در MATLAB

آموزش سيميولينک
آموزش سيمولينک
آموزش Simulink

GA
Genetic Algorithm
الگوريتم ژنتيک

Ant Algorithm
الگوريتم مورچه ها

ACO
Ant Colony Optimization
بهينه سازي کلوني مورچه ها

Ant System
سيستم مورچه ها

MMAS
Max-Min Ant System
سيستم مورچه ها کمينه بيشينه

EA
Evolutionary Algorithm
الگوريتم تکاملي

PSO
Particle Swarm Optimization
بهينه سازي گروه ذرات
بهينه سازي ازدحام ذرات
الگوريتم پرندگان

RL
Reinforcement Learning
يادگيري تقويتي

ANN
Artificial Neaural Networks
شبکه عصبي
شبکه هاي عصبي مصنوعي

AI
Artificial Intelligence
هوش مصنوعي

Computational Intelligence
هوش محاسباتي

Multi-agent Systems
سيستمهاي چند عاملي

Fuzzy Systems
سيستمهاي فازي

FLC
Fuzzy Logic Control
کنترل منطق فازي

Fuzzy Logic
منطق فازي

Fuzzy Control
کنترل فازي

FIS
Fuzzy Inference System
سيستم استنتاج فازي

ANFIS
Adaptive Neural Fuzzy Inference System
سيستم استنتاج تطبيقي فازي عصبي

NSGA
Non-dominated Sorting Genetic Algorithm
الگوريتم ژنتيک چند هدفي
بهينه سازي چند هدفي
الگوريتم ژنتيک مرتب سازي نامغلوب

PSEA
Pareto Strength Evolutionary Algorithm
الگوريتم تکاملي چند هدفي
جبهه پارتو

Swarm Intelligence
هوش جمعي
هوش ازدحامي

AIS
Artificial Immune Systems
سيستم ايمني مصنوعي

Linear Programming
LinProg
برنامه ريزي خطي
لينپروگ
لين-پروگ

TSP
Traveling Salesman Problem
مسأله فروشنده دوره گرد

Job-Shop Scheduling
Scheduling Problem
مسأله برنامه ريزي زماني
مسأله زمانبندي
مسأله زمان بندي

Resource Allocation
تخصيص منابع

MATLAB Control System Toolbox
جعبه ابزار کنترل خطي متلب
جعبه ابزار کنترل خطي مطلب
جعبه ابزار کنترل خطي MATLAB

MATLAB Robust Control Toolbox
جعبه ابزار کنترل مقاوم متلب
جعبه ابزار کنترل مقاوم مطلب
جعبه ابزار کنترل مقاوم MATLAB

MATLAB Fuzzy Logic Toolbox
جعبه ابزار فازي متلب
جعبه ابزار فازي مطلب
جعبه ابزار فازي MATLAB
جعبه ابزار منطق فازي متلب
جعبه ابزار منطق فازي مطلب
جعبه ابزار منطق فازي MATLAB

MATLAB Fuzzy Control Toolbox
جعبه ابزار کنترل فازي متلب
جعبه ابزار کنترل فازي مطلب
جعبه ابزار کنترل فازي MATLAB

MATLAB Symbolic Toolbox
جعبه ابزار سيمبوليک متلب
جعبه ابزار سيمبوليک مطلب
جعبه ابزار سيمبوليک MATLAB
جعبه ابزار Symbolic متلب
جعبه ابزار Symbolic مطلب
جعبه ابزار Symbolic MATLAB

MATLAB Optimization Toolbox
جعبه ابزار بهينه سازي متلب
جعبه ابزار بهينه سازي مطلب
جعبه ابزار بهينه سازي MATLAB

MATLAB Neural Networks Toolbox
جعبه ابزار شبکه عصبي متلب
جعبه ابزار شبکه عصبي مطلب
جعبه ابزار شبکه عصبي MATLAB

MATLAB LinProg
برنامه ريزي خطي در متلب
برنامه ريزي خطي در مطلب
برنامه ريزي خطي در MATLAB

GUI
Graphical User Interface
واسط گرافيکي کاربر
رابط گرافيکي کاربر

GUIDE
Graphical User Interface Design Environment
محيط جامع طراحي واسط گرافيکي کاربر
محيط جامع طراحي رابط گرافيکي کاربر

Linear Control Systems
سيستمهاي کنترل خطي

Bode Diagram
نمودار بود
دياگرام بود

Nyquist Diagram
نمودار نايکوئيست
دياگرام نايکوئيست

Nichols Chart
نمودار نيکولز
چارت نيکولز

Root Lucas
مکان هندسي ريشه ها

Digital Control Systems
سيستمهاي کنترل ديجيتال

Modern Control Systems
سيستمهاي کنترل مدرن
سيستمهاي کنترل نوين
سيستمهاي کنترل پيشرفته

Generalized Eigenvalue Problem
مسأله مقدار ويژه تعميم يافته

Eigenvalue and Eigenvector
مقدار ويژه و بردار ويژه
ويژه مقدار و ويژه بردار

Jordan Form
فرم جردن
فرم کانوني جردن
فرم استاندارد جردن

Canonical Form
فرم کانوني
فرم استاندارد

Observer
رويتگر
رويت گر

Observable
رويت پذير

Observability
رويت پذيري

State Feedback
فيدبک حالت

Controller
کنترلر
کنترل کننده

Controllable
کنترل پذير

Controllability
کنترل پذيري

Optimal Control Systems
سيستمهاي کنترل بهينه

LQR
Linear Quadratic Regulator
رگولاتور خطي مرتبه 2
رگولاتور خطي مزتبه دو
کنترل بهينه درجه 2
کنترل بهينه درجه دو

LQG
Linear Quadratic Gaussian

KF
Kalman Filter
فيلتر کالمن
تخمين حالت
تخمينگر بهينه
تخمين گير بهينه

EKF
Extended Kalman Filter
فيلتر کالمن تعميم يافته

Nonlinear Control Systems
سيستمهاي کنترل غير خطي

Chaos
آشوب
کنترل آشوب

Bifurcation
دو شاخه شدگي

Model Predictive Control
کنترل مدل پيش بين

Multivariable Control Systems
سيستمهاي کنترل چندمتغيره

Robust Control Systems
سيستمهاي کنترل مقاوم

Adaptive Control Systems
سيستمهاي کنترل تطبيقي

Stochastic Control
کنترل تصادفي
کنترل اتفاقي
کنترل فرايندهاي تصادفي
کنترل فرايندهاي اتفاقي

Dynamic Programming
برنامه ريزي پويا

Suspension System Control
کنترل سيستم تعليق خودرو
کنترل سيستم تعليق فعال خودرو

Image Processing
پردازش تصوير ديجيتال

DSP
Digital Signal Processing
پردازش سيگنال ديجيتال

Numerical Methods
روشهاي عددي
محاسبات عددي

Gauss-Jordan Elimination
حذف گوس جردن

Gauss-Seidel Elimination
حذف گوس سايدل

Newton Method
روش نيوتن براي حل معادلات
روش نيوتون براي حل معادلات
روش نيوتن براي حل عددي معادلات
روش نيوتون براي حل عددي معادلات

Newton-Raphson Method
روش نيوتن رافسون بري حل معادلات
روش نيوتون رافسون بري حل معادلات
روش نيوتن رافسون براي حل عددي معادلات
روش نيوتون رافسون براي حل عددي معادلات

Bisection Method
Bi-section Method
روش تنصيف
روش دو بخشي کردن

RK4
Runge-Kutta 4
رانگ کوتا 4
رانگ کوتا مرتبه 4
رانگ کوتا چهار
رانگ کوتا مرتبه چهار

Linear Differential Equation
معادلات ديفرانسيل خطي

Partial Differential Equation
معادلات ديفرانسيل جزئي

Nonlinear Differential Equation
معادلات ديفرانسيل غير خطي

Simpson Rule
قاعده سيمپسون براي انتگرال گيري عددي

Interpolation
درون يابي
درونيابي

Extrapolation
برون يابي
برونيابي

Curve Fitting
برازش منحني

Advanced Engineering Mathematics
رياضيات مهندسي پيشرفته

Fourier Transform
تبديل فوريه
انتگرال فوريه
سري فوريه

Laplace Transform
تبديل لاپلاس

z-transform
تبديل z

PDF
Probablity Density Function
تابع چگالي احتمال

CDF
Cumulative Density Function
تابع تجمعي چگالي احتمال

• تشخیص چهرهFace Recognition and Detection
• تشخیص چهره به روش PCA با استفاده از دیتابیس
• تشخیص چهره با استفاده از هیستوگرام تصاویر (به همراه مقاله)
• تشخيص چهره انسان با استفاده طبقه بندي كننده چندخطي
• تشخيص چهره انسان به روش تحلیل تفکیکی خطی دو بعدی( 2D-LDA ) به همراه مقاله
• تشخیص چهره از روی چشم به روش شبکه عصبی
• تشخیص اثر انگشت به روش دیتابیس (به همراه مقاله)
• تشخیص حرکت از طریق ورودی دوربین یا وبکم
• تشخیص کارکتر و عدد در تصویر OCR
• تشخیص و شمارش یک حرف خاص در تصویر
• تشخیص عدد فارسی در تصویر (به همراه آموزش فارسی)
• تشخیص حروف فارسی در تصویر به روش تطبیق الگو
• تشخیص حروف فارسی در تصویر به روش شبکه عصبی
• برنامه تشخیص بارکد (پردازش تصویر)
• ترمیم تصویر Image inpainting
• ترمیم ویدئو Video inpainting
• کاهش نویز در تصویرNoise Canceling
• تشخیص لبه تصویر توسط الگوریتم کلونی مورچه ها ACO (به همراه مقاله)
• تشخیص دایره در تصویر
• پنهان‌نگاری تصاویر یا Steganography با متلب
• پنهان نگاری تصویر به روش DCT
• پنهان نگاری تصویر در فایل صوتی
• فشرده سازی تصاویر اثر انگشت Fingerprint Image Compression
• تشخیص سرعت خودرو به کمک پردازش تصویر
• تشخیص تعداد خودرو به کمک پردازش تصویر
• جدا سازی دندان از تصاویر X-ray به کمک پردازش تصویر
• فشرده سازی تصاویر به روش های DTC2 ، SVD و WAVELET
• تعیین سلامت میوه مانند سیب به کمک پردازش تصویر (كيفيت سنجی)
• برنامه شناسایی تومور مغزی در عکس گرفته شده از مغز MRI
• تشخیص غدد سرطانی (سرطان سینه) به کمک پردازش تصویر
• تشخیص و شمارش دانه های برنج در تصویر
• آرایشگر مجازی (نمونه ای از تشخیص چهره)
• استخراج پلاک خودرو از کل تصویر

• شبیه سازی مدولاسيون پالسهای كدشده PCM
• شبیه سازی و بررسی انواع اتصال کوتاه در ژنراتور
• شبیه سازی ورقه کردن فلز
• شبیه سازی بازوی ربات
• بررسی کلیه توابع توزیع در متلبDistributions functions
• پیاده سازی روش گوشه شمال غربی North-West Corner Method
• بهینه سازی تنش در تراس Truss Optimization
• حل سودوکو با متلب
• بازی دوز به زبان متلب
• حل معمای هشت وزیر (قابل اجرا برای n وزیر)
• حل معمای هشت وزیر به روش شبیه سازی تبرید تدریجی Simulated Annealing
• حل انواع معادلات دیفرانسل
• حل انواع دستگاه معادلات
• حل انواع تمرین های کنترل
• پیاده سازی شماتیک مدارات الکترونیک
• خواندن، نوشتن و ویرایش فایل های ورد،اکسل و پاورپوینت در متلب
• محاسبه MAX و MIN توابع n متغييره با كمك الگوريتم ژنتيك
• مقادير ويژه و بردار ويژه ماتريس به روش چند جمله ای، Fadeev-Leverrier و …
• شبيه سازي اينورتر inverter چند سطحي با متلب
• تحلیل و آنالیز رادوم ، radome analysis
• یافتن معادله خط و نقطه اپتیم معادلات
• طراحی یکسوساز ستاره ای سه فاز
• طراحی یکسوساز تمام فاز با استفاده از ترانسفورماتور
• یکسوساز تمام موج نیم پل
• يكسوكننده‌ي تك‌فاز تمام موج
• يكسوكننده‌ي سه‌فاز تمام موج
• یکسوساز سه فاز تریستوری
• حل مساله فروشنده دوره گرد با الگوریتم کلونی مورچه ها، tsp with ACO به همراه پاورپوینت
• حل مساله فروشنده دوره گرد به روش شبیه سازی تبرید تدریجی Simulated Annealing
• حل مساله فروشنده دوره گرد به روش الگوریتم ژنتیک
• شبیه سازی پاندول معکوس
• شبیه سازی مدولاسیون سینوسی عرض پالس SPWM
• محاسبه تنش، کرنش، تنش برشی اجسام کروی و استوانه ای
• شبیه سازی سه بعدی پل کابلی با استفاده از نیروی متحرک روی پل
• یافتن پاسخ زمانی یک سیستم با داشتن معادله دیفرانسیل مربوطه با روش شبکه عصبی مانند سیستم پاندول معکوس
• یافتن مساحت دایره، مثلث و عدد پی به روش مونت-کارلو Monte Carlo method
• حل معادله پواسون به صورت یک بعدی، دو بعدی و سه بعدی
• حل معادله دیفرانسل درجه 2 با سری تیلور
• حل معادله دیفرانسل درجه 2 با روش رانگ کوتا
• حل مسائل انتقال حرارت مانند یافتن نقاط درونی صفحه و انتقال حرارت در اثر عبور هوا از روی استوانه
• محاسبه ضریب اصطحکاک با معادله کلبروک
• جریان در لوله های ساده
• تعیین ثابت تعادل برای محلول های حقیقی
• محاسبات تعادل گاز-مایع، نقطه حباب ، نقطه شبنم
• بدست آوردن ضرایب معادله آنتوان برای آب با استفاده از رگرسیون
• شبیه سازی مکان هد دیسک خوان
• شبیه سازی طراحی تدریجی مدار باز و مدار بسته سیستم خواندن دیسک درایو
• ظرفیت در سیستم های چند هادی
• محاسبه load flow به سه روش نيوتون رافسون و گوس سايدل و ديكاپلد لود فلو
• ارزيابي عملكرد مشتري بر اساس دريافت اطلاعات پرسشنامه اي مبتني بر شبكه هاي عصبي چندلايه
• حل معادله بلازیوس blasiusبه روش رانگ کوتا و shooting method
• شبیه سازی سیستم تعلیق فعال اتومبیل
• حل تمرین های متلب کنترل مدرن
• شبیه سازی مدولاتورDSB (همدوس)
• شبیه سازی شبکه های وایرلس wireless sensor Networks
• شبیه سازی انتقال حرارت و انتقال جرم در آب زدایی گیاه، حل معادلات PDE
• پیاده سازی الگوریتم TDMA برای حل دستگاه مهادلات خطی
• حل مساله انتقال حرارت هدایتی
• حل نمونه مسائل استاتیک و مقاومت مصالح بیر جانسون
• توزیع دمایی در یک صفحه در حالت ناپایا را با استفاده از روش خط یا اختلاف محدود finite difference
• یافتن ماکزیمم تابع با استفاده از الگوریتم کلونی کورچه ها ACO
• شبیه سازی مدولاسیون های ASK, OOK, FSK, BPSK, QPSK, 8PSK و …
• سیستم کنترل دستگاه تزریق پلاستیک (پلیمر)
• اینورتر 3 فاز به روش SVM (به همراه مقاله از IEEE)
• محاسبه جریان درون لوله و عدد رینولدز به کمک روابط سوامی و جین و دارسی-ویسباخ
• شبیه سازی کنترل مقاوم عصبیNNARC
• شبیه سازی دو مبدل تمام تريستوريسري
• شبیه سازی دو مبدل تک فاز تمام تريستوري با دیود هرزگرد
• شبیه سازی شبکه های کامپیوتری
• شبیه سازی ماشین حساب مهندسی
• حل معادله لورنز-لورنتز به روش رانگ کوتا
• حل معادله لوتکاولترا به روش رانگ کوتا
• برنامه تشخیص اثر انگشت با استفاده از دیتابیس
• پردازش سیگنال گسسته ، پردازش در حوزه زمان و فرکانس
• طراحی کنترلر PID
• بدست آوردن کانتورهای دما در یک کانال جریان و حل معادله لاپلاس با روش تفاضلات محدود
• حل عددي معادله انتگرال Volterra (به همراه مقاله)
• محاسبه توزیع دما در یک دیواره به روش FTCS ،روش DuFort-Frankel ،روش Laasonen ،روش Crank-Nicolson ،روش Laasonen
• درون یابی هرمیت، درجه اول و دوم hermit interpolation
• حل معادله معادله فرارفت advection equation به انواع روش ها
• شبیه سازی و مقایسه مدولاسون های AM و FM
• نمودار نایکوئیست، نمودار زیگلر نیکولز، مکان هندسی ‫ریشه‌ها، نمودار بد bode‬‬
• سیستم‌های کنترل پیش فاز ، پس فاز و پیش پس فاز
• شبیه سازی حرکت استوانه روی سطح شیبدار در میدان مغناطیسی
• بدست آوردن دماس صفحه L شکل آلومینیومی در حالت پایا و ناپایا به روش forward
• بدست آوردن پروفایل دما در سطح مقطع steak در زمان های مختلف بعد از قرار گرفتن در ظرف روغن
• شبیه سازی راکتور batch (ناپیوسته) و رسم نمودار غلظت ها
• پروژه یادگیری ماشین یا machine learning
• يكسوساز سه فاز تريستوري با avr
• شبیه سازی جذب سطحی ( Adsorption isotherm ) با سه مدل لانگمیر، فرندلیش، تمکین Freundlich، langmir، Temkin به همراه مقاله.
• رسم نمودار فشار بر حسب دما به کمک معادله آنتوان
• رسم نمودار فشار بر حسب حجم مولی در مدل RedlichKwong
• رسم توابع فراکتال fractal
• بهینه سازی به روش M بزرگ big M method
• شبیه سازی نوار قلب یا الکتروکاردیوگرام ECG
• شبیه سازی روش DTC برای کنترل موتور Direct Torque Control
• تولید اعداد فیبوناچی به صورت بازگشتی
• حل مساله برج های هانوی
• پیاده سازی الگویتم های تحقیق در عملیات (حداقل ستون، حداقل ردیف، روش های سیمپلکس و …)
• مقایسه و بررسی خطا در روش های درونیابی یک بعدی
• مقایسه و بررسی خطا در روش های درونیابی دو بعدی
• تشخیص و شمارش دانه های برنج در تصویر
• شبکه‌های بی‌سیم ادهاک
• طراحی نرم افزار ویرایش تصویر، paint ویندوز
• بهینه یابی بروش golden section
• درونیابی بروش تفاضل پیشرو و پسرو
• شناسایی دو سیگنال صوتی متفاوت به روش پردازش سیگنال از طریق ویژگی های زمانی و فرکانسی
• محاسبات مخلوط کننده آدیاباتیک برای ترکیب چند جریان
• بررسی روش های انتگرلا گیری عددی به کمک متلب
• محاسبه ترانهاده ماتریس بدون استفاده از تابع پیش فرض
• حل معادله لاپلاس بر روی صفحه به روش ژاکوبی
• پروژه درس آیرودینامیک
• حل دستگاه معادلات خطیبا استفاده از روش ژاکوبی (بدون پیش شرط، پیش شرط ILU(0) و پیش شرط D-ILU)
• بیهنه سازی با الگوریتم PSO برای محسابه می نیمم تابع
• حل دستگاه خطی سه قطری tridiagonal
• جدا سازی دندان از تصاویر X-ray به کمک پردازش تصویر
• حل مسئله حداقل مربعات با استفاده از تجزيه QR، SVD و Ortho
• شبیه سازی مدار زمین خورشید و ماهواره
• حل معادله واندر پل Van der Pol equation
• حل معادلهٔ برگرز Burgers equation
• حل معادله transport equation
• حل معادله نفوذ Diffusion equation
• حل معادله حرارت heat equation
• شبیه سازی کنترل فشار و دبی خروجی
• یافتن مینمم تابع به کمک جستجوی الگو Pattern search
• یافتن مینمم تابع به الگوریتم ژنتیک
• پروژه فازی کنترل موتور DC
• پروژه فازی بهینه سازی توربین بادی
• پروژه کنترل فازی گوی و میله ball & beam
• پروژه کنترل فازی پاندول معکوس Inverted Pendulum
• پروژه کنترل ارتفاع تانک به روش فازی
• شبیه سازی کدک G.729 و G.723
• شبیه سازی عملکرد ترافیکی چراغ راهنما
• شبیه سازی کارایی دینامیکی طی یک اتصال کوتاه سه فاز در پایانه های ماشین القایی (پروژه درس ماشین الکتریکی)
• شبیه سازی پدیده داپلر
• پروژه کنترل مقاوم (به همراه مقاله)
• انجام محاسبات فلش به همراه رابط گرافیکی کاربر GUI
• حل دستگاه به روش دولیتل doolittle
• شبیه سازی استخراج مایع مایع به همراه برگشتی
• تبدیل سیگنال صدا به گسسته و اعمال upsampling و downsampling
• محاسبه حداکثر تنش خمشی، گشتاور خمشی، خیز ماکزیمم و رسم نمودارها برای یک تیر بارگذاری شده

برچسب: Matlab مطلب چیست؟ / استفاده از help / استفاده از demo / عملیات ابتدایی / ذخیره کردن و بازیابی داده ها / عملیات ماتریسی روی آرایه ها / عملیات عضو به عضو روی آرایه ها / تنظیم خروجیها روی صفحه نمایش / چند جمله ایها / ریشه های یک چند جمله ای / محاسبه مقدار یک چند جمله ای / ضرب و تقسیم چند جمله ایها / مشتق چند جمله ای / برازش منحنی چند جمله ای / عملیات و توابع منطقی / ترسیم داده ها / نمودارهای ٢ بعدی / مودارهای ۳ بعدی / مودارهای ۵/۲ بعدی / برنامه نویسی m-file در متلب / استفاده از diary برای ایجاد برنامه / تابع / کنترل جریان محاسبات /خطایابی برنامه ها / مشتق. حد. انتگرال . و حل معادلات دیفرانسیل / تبدیل لاپلاس و معکوس آن / تبدیل فوریه و تبدیل Z و / Simulink / شبیه سازی یک مدار ساده / ساخت مدار با کتابخانه powerlib / شبیه سازی مدار / تحلیل یک مدار ساده / تحلیل حالت پایدار / تحلیل فرکانسی / بدست آوردن امپدانس متقابل فرکانسی از مدل فضای حالت / بدست آوردن امپدانس فرکانسی از قطعه اندازه گیر امپدانس و قطعه نمایشگر گرافیکی. الگوریتم و الگوریتم نویسی در مطلب / نصب مطلب / پارامترهای اولیه / دستورهای ابتدایی / m-file / Matlab Function / کنترل در برنامه نویسی / منطق در شرط / گرد کردن / توابع عددی prims/ factorial / Gcd / Lcm / / توابع مختلط / Abs / Complex / Imag / Real / Angle / Conj / توابع نمایی / Sqrt / sqrtm / Nthroot / power / pow2 / exp / log / توابع مثلثاتی / دستورات منطقی در برنامه نویسی / Isempty / Isnumeric / Isequal / Isreal / Isprime / توابع زمان Clock / Date / Tic … toc / pause / توابع آرایه ای / numel / lenghth / find / size /ماتریسهای خاص magic / rand / eye / ones /zeroes / توابع ماتریسی / max / min / sort / sum / prod / mean / diag / det / trace / rank / flipdim / fliplr / flipud / rot90 / کار با فایل / load / open / dlmwrite / dlmread / textread / رسم دو بعدی / plot / تنظیمات صفحه رسم / Xlabel / Ylabel / title / legeand / ترسیم در یک صفحه / subplot / رسم سه بعدی / plot3 / رسم سطح و لایه / peaks / meshgrid / mesh / contour / meshc / surf / surfc / countour3 / plot3 / view / ترسیم توابع / ezplot / ezplot3 / ezmesh / ezsurf / نمودارهای آماری / bar / hist / stairs / چند جمله ای ها / root / ply / polyval / polyfit / ginput / polyder / polyint / conv / deconv / توابع سمبلیک / syms / eval / limit / diff / int / compose / symsum / finvese / jacobian / مراجع مهم در برنامه نویسی متلب / پنجره Command / تنظیم دقت نمایش اعداد / اعداد ثابت / clc دستور / دستور clear / اعمال ریاضی روی ماترس ها / دستور linspace / ترانهاده یک ماتریس / فراخوانی یک ماتریس / توابع مربوط به ماتریس / m-fail / ماتریس ها در matlab / M-File/ رسم نمودار در matlab/ دستور grid / دستور hold / برچسب نمودار / تعیین حدود نمودار / دستور plot / دستور subplot / تابع plot3 / رسم دو بعدی نمودارهای گسسته / نمودارهای میله ای / نمودار قطبی / تابع mesh/ تابع meshgrid / دستور for . if . switch/ تابع inlink / تابع input / محاسبات عددی در matlab / انتگرال گیری عددی / تابع quid / تابع trapz / مشتق گیری عددی / تابع diff / محاسبات سمبلیک در matlab / دستور pretty / اعمال جبر در سمبلیک/ انتگرال گیری و مشتق گیری سمبلیک / استاندارد سازی و ساده سازی عبارات سمبلیک / تابع collect / تابع factor / تابع expand / محاسبه سمبلیک تبدیل لاپلاس / عکس لاپلاس / محاسبه سمبلیک تبدیل z در متلب / عکس تبدیل z / حل معادلات جبری / حل معادلات دیفرانسیل به روش سمبلیک / آشنایی با پنجره های MATLAB / مقدمات کار با MATLAB / محاسبات عددی آرایه ها / آرایه های استاندارد / اندازه ماتریس ها / ایجاد تغییر در ماتریس ها / مرتب آردن آرایه ها / جستجو در آرایه ها / کاربرد در داده های آماری / ماتریس به عنوان ضرایب چند جمله ای / ماتریس به عنوان مجموعه / محاسبات ماتریسی / مدیریت فایل ها و متغیرها / تابع plot / بر چسب ها، تنظیمات و … / نمودارهای متعدد / ساخت function file / حلقه های تکرار / حلقه for / حلقه while / عملگرهای منطقی / شرط If – Else – End / شرط Switch-Case / توقف روند اجرای برنامه / MATLAB چیست؟ / استفاده از help / استفاده ازdemo / عملیات ابتدایی در مطلب/ تعریف کردن آرایه ها و عملیات جبری روی آنها / ذخیره کردن و بازیابی داده ها / عملیات ماتریسی روی آرایه ها / عملیات عضو به عضو روی آرایه ها / تنظیم خروجیها روی صفحه نمایش با دستورات format و disp / چند جمله ایها / ریشه های یک چند جمله ای / محاسبه مقدار یک چند جمله ای / ضرب و تقسیم چند جمله ایها / مشتق چند جمله ای / برازش منحنی چند جمله ای / عملیات و توابع منطقی / مقایسه منطقی / عملگرهای منطقی / توابع منطقیfind و all ، any / اعداد ویژه / ترسیم داده ها / نمودارهای ٢ بعدی / نمودارهای ٣ بعدی / نمودارهای ۵/۲ بعدی / برنامه نویسی (m-files) / برنامه اصلی / استفاده از diary برای ایجاد برنامه / تابع / کنترل جریان محاسبات / خطایابی برنامه ها / پیغامهای خطا / دستورهایkeyboard و echo . / کلیات و اصول / مقدمات / واژه MATLAB / محیط کار متلب / آغاز کار با متلب / ماتریس Matrix / بردار / آرایه، متغیر، عملیات آرایه ای / تعریف و مقدار دهی به یک متغیر / مشاهده یک متغیر و نوشتن توضیح / بردار- هندسی / بردار- هندسی cell array / توابع اندازه گیر / متغیر داخلی ans / اعلام نوع متغیر / نوشتن دستورات و مشاهده نتایج / پنجره فوری و پنجره برنامه / شکستن یک دستور در چند سطر / نوشتن چند دستور در یک سطر / تفاوتِ حروف بزرگ و کوچک / قطع اجرا / دستور more / اجرا و ضبط ستورات قبلی / اجرای دستورات سیستم عامل / تابع eval / دستور laster / بلوک try …catch / تفاوت دستورات پنجره فرمان و برنامه / دستورهائی در مورد متغیرها / دریافت اطلاع و راهنمائی از مدارک راهنمای متلب
/ آشنائی با متغیرها و توابع: آشنائی با انواع متغیر و داده / انواع داده / دادههای عددی، و دستور isa / نکاتی پیرامون single / نکاتی پیرامون int / نکاتی پیرامون char و ترکیب انواع / متغیرهای داخلی یا توکار متلب / دستور فرمت format / ضریب در نمایش اعداد / عملگرها / عملگرهای آرایه ای / اولویت عملگرها / توابع کتاب خانه ای / تولید عدد تصادفی / تولید آرایه با تکرار آرایه دیگر / توابع تحلیل داده ها / توابع زمانی / توابع خاص / توابع کاربر- تعریف / بعضی از توابع ریاضی کتاب خانه ای / مؤلفه های اصلی متلب / برخی تعاریف مقدماتی / آرایه، عملیات آرایه ای / ترسیمات در مطلب / توابع کتاب خانه ای / آرایه منطقی / متغیرها در متلب / آشنائی با متغیرهای متلب / دستورهائی در مورد متغیرها / چند راهنمائی نوشتاری / دستورها و توابع ورودی خروجی در برنامه نویسی / دریافت ورودی / ارسال خروجی / توابع زمانی / دستورات پنجره فرمان / دریافت اطلاع و راهنمائی از مدارک راهنمای متلب / توابع و عملیات ریاضی / عملگرها / بعضی از توابع ریاضی / اعدد مختلط / توابع تبدیل مختصات / توابع خاص / بردارها / تعریف بردار Vector Definition / عملگر کالن / تابع linspace / کاربرد یک بردار در تعریف بردار دیگر / بردار تهی / اندیس اعضاء بردار /بردارهای منطقی / تبدیل بردار عددی به منطقی با تابع logical / حذف بعضی عناصر آرایه / ضرب بردار عددی در بردار منطقی / یافتن محل عناصری با مقدار معین / یافتن اندیس عناصر مورد نظر با تابع find / اندیس اعضاء بردار A Vector Member Index / بردار و رسم منحنی در مطلب/ توابع تحلیل داده ها /ماتریس هاتشابه مابین ماتریس ها: / ماتریس های پایهElementary Matrices / ماتریس یگانیidentity matrix / ماتریس های ones , zeros / ایجاد تغییرات بر روی ماتریس / استخراج قسمتی از یک ماتریس / تغییر مقدار عناصر ماتریس / قرار دادن یک ماتریس در ماتریس دیگر / استخراج یا حذف ردیف و ستون / عمل گرهای ماتریسی / ضرب ماتریسی /توان ماتریسی / بعضی از توابع ماتریسی / چند تابع معمول / استخراج ماتریس از ماتریس دیگر /توابعی که به روی مجموعه عناصر ماتریس عمل میکنند / ماتریس سه بعدی (فضائی) / ماتریس های نمونه / ماتریس جادوئی / ماتریس پاسکال
/ دستورها و توابع ورودی خروجیدستورهاو توابع : /ورودی خروجی / دریافت ورودی / دریافت با input / دریافت با keyboard / ارسال خروجی / ارسال خروجی به صفحه نمایش، دستور disp (var) / ارسال خروجی به صفحه نمایش، دستور fprint / دستور echo off/on / دستور pause / ضبط بر روی دیسک / ارسال خروجی به فایل متن TXT / ضبط ماتریس در فایل متن TXT / ضبط ماتریس در فایل باینری MAX / باز کردن درگاه port /
آشنائی با ترسیمات/ صفحه های مختصات / صفحه مختصات قائم / صفحه مختصات قطبی /تبدیل مختصات قائم و قطبی / بردار و رسم منحنی، دستورهای plot , comet / دستورهای figure , subplot , hold on/of, clf / افزودن توضیحات روی منحنی / پنجره data statistics / چند منحنی در یک صفحه / دستورهای هم خانواده plot / روش های دیگر نمودار سازی / نمودار ستونی bar / پیشینه نگار hist /نمودار دایره pie / رسم نموداری ماتریس /نمودار ستونی ماتریس / نمودار منحنی ماتریس / نمودار قطبی / نمودار عقربه ای، دستور compass / نمایش هندسی عدد مختلط با compass / رسم عدد مختلط با plot / رسم آسان با ezplot / رسم توابع آشکار explicit functions / رسم توابع ضمنی implicit functions / رسم توابع پارامتریک / تابع داخلی fplot / ویرایش گراف / تعیین محدوده محورها / توری روی گراف از پنجره فرمان / برچسب گذاری با ماوس / مؤلفه های RGB / رنگی کردن با fill / ادیت از روی پنجره گراف / گیره های گرافیک graphics handles /
برنامه نویسی در متلب: / تشکیل ام- فایل / ام- فایلِ اسکریپت و ام-فایلِ تابعی / مثال های ریاضی / مثال های آماری / مثال های مکانیک / مثال های اکتریکی / بردارهای منطقی / اندیس و مقدار عناصر بردار / استخراج بردار از بردار دیگر / چند مثال دیگر از کاربردهای بردار منطقی / ماتریس های پایه Elementary Matrices / تغییر مقدار عناصر ماتریس / قرار دادن یک ماتریس در ماتریس دیگر / حذف ردیف یا ستون / ماتریس های نمونه / عملگرهای ماتریسی / بعضی از توابع ماتریسی / یک بحث آماری /
گرافیک سه بعدی: /مباحثی پیرامون گرافیک در / رسم آسان با ezplot / تابع داخلی fplot و توابع ریاضیِ سریع التغییر / حل معادلات غیر آنالیتیک / برچسب گذاری با ماوس / توری روی گراف از پنجره فرمان / دو محور با مقیاس های عمودی متفاوت / تعیین محدوده محورها / ترسیم قطبی / گیره های گرافیک graphics handles / مؤلفه های RGB / توابع دیگر گرافیکی / ترسیم ۳ بعدی / گرافیک سه بعدی / / سطوح فضائی / سایر روش های ترسیم سه بعدی / ترسیم منحنی فضائی / تابع plot3 / تابع comp3 / ترسیم سطوح فضائی / دستور meshgrid (a,b) / صفحه مختصات / دستور mesh (x,y,z) / دستور mesh(m) نمایش سه بعدی یک ماتریس / توابع فضائی کتاب خانه ای / رسم کُره با sphere و ایجاد افکت های تصویری / رسم استوانه با cylinder / رسم قله ها با تابع نمونه peaks / بعضی از قابلیت های گرافیکی متلب / زاویه دید یک تصویر / تصویربرداری با getframe / باز نمایش فیلم بادستور movie / تغییرات روی قسمتی از سطح ترسیم سه بعدی / حذف قسمتی از سطح / سایر دستور های ترسیم سه بعدی
/ساختارهای تصمیم و تکرار: / ساختارهای تصمیم و تکرار / ساختارهای تصمیم و عوامل آن / ساختارهای تکرار / عملگرهای نسبتی Relational Operators Logical Operators عملگرهای منطقی / if بلوک / switch بلوک / ساختارهای تکرار / for حلقه / break و دستور while حلقه / منیو
/ نکاتی پیرامون توابعو تابع کاربر- تعریف : / گیره تابع function handle feval / تابع تابع کاربر- تعریف / تابع تابع کتاب خانه ای / تبدیل فایل های متلب / تبدیل ام- فایل به پرونده پی- کد pcode file / MATLAB Compiler با کامپایلر متلب C تولید برنامه / C++ تبدیل برنامه گرافیکی به زبان / خلاصه دستورات کامپایلر / Excel Builder سازنده کسل /
ریاضیاتنمادین Symbolic Math Symbolic Math Tool Box / آرایه یا متغیر عددی با دقت افزوده double array / آرایه یا متغیر کاراکتری / شیئ یا متغیر نمادین / انواع دیگر داده / workspace نمایش متغیرها در پنجره / متغیرهای نمادین / جای گزینی عدد نمادین در متغیر نمادین / یافتن متغیرهای نمادین / نمایش اعداد نمادین / نمایش متغیرهای نمادین / متغیر مستقل نمادین / جای گزینی عدد نمادین در متغیر نمادین / یافتن متغیرهای نمادین / نمایش اعداد نمادین / عملیات ریاضی / ریشه دوم / توان / مشتق / انتگرال / انتگرال محدود / تبدیل به کسرهای جزئی و ریشه و قطب یک تابع تبدیل / تبدیل عبارت جبری به کسر متعارفی گویا / اعداد مختلط نمادین / مزدوج یک عدد مختلط / توابع نمادین / معرفی یک تابع کلی / جای گزینی یک عبارت به جای subs = substitution / تابع نمادین مختلط / حد تابع / تابع ام- فایلی نمادین / سری ها / توابع آسان ساز / تابع pretty / توابع expand collect / فاکتورگیری factor / ساده کردن با simplify / ساده کردن با simple / ماتریس های نمادین / ماتریس با عناصری از متغیرهای نمادین / ماتریس با عناصری از توابع نمادین / رسم تابع نمادین با ezplot / دریافت راهنما در مورد ریاضیات نمادین
/ عملیات محاسباتی: / حل معادلات / معادله چند جمله ای، دستورهای poly roots / حل معادله با تابع کتاب خانه ای fzero / حل دستگاه معادلات غیر خطی با fsolve جعبه ابزار بهینه سازی Optimization Toolbox / حل دستگاه معادلات خطی / حل معادلات با دستور solve / جعبه ابزار ریاضیات سمبلیک Symbolic Math Toolbox / حل معادله دیفرانسیل عادی با ODE45 / حل معادلات دیفرانسیل عادی جعبه ابزار ریاضیات سمبلیک Symbolic Math Toolbox / تابع معکوس یک تابع با finverse / ترکیب تابعی با compose / تقریب جبری منحنی معادلات / برخوراندن یک منحنی در معادله چند جمله ای Curve Fitting with polyfit(x,y,n), polyval / دریافت مختصات نقاط منحنی با ginput / حل ترسیمی
/ مباحثی پیرامون رشتهها / رشته به مثابه آرایه (بردار) / دسترسی به حروف رشته / عدد اسکی یک کاراکتر / m × n رشته / مرتب سازی رشته / مرتب سازی با تابع کتاب خانه ای sort / مرتب سازی رشته با تابع حبابی و مقایسه با sort / توابع رشته ای / تابع strcmp(s1,s و عملگرهای مقایسه ای برای رشته ها / strcat جمع کردن رشتهها با دستور / قالببندی رشته String Formatting / تعیین فرمت برای نمایش رشته با fprintf / نگه داری رشته در یک متغیر باsprintf /
سیگنال، سیستم،***** / تبدیلات فوریه / fft() تبدیل فوریه گسسته / ifft(t) تبدیل فوریه گسسته وارون / توابع سیستم ها / tf دستور ایجاد تابع تبدیل زمان پیوسته /ترسیم bode برای یک سیستم / step(), impulse() واکنش پله ای و واکنش ایمپالسی / Nyquist Diagram دیاگرام نایکوییست / tf2ss تغییر تابع تبدیل به فرم فضای حالت / دستور rlocus برای رسم مکان هندسی ریشه ها / سیستم فیدبک منفی با دستور feedback / مدل زمان گسسته Discrete-Time Models / Lead تابع تبدیل زمان گسسته مدار / @@@@@ها / butter() آنالوگ و دیجیتال، دستور Butterworth *****
/ واسط گرافیکی کاربر / واسط گرافیکی کاربر GUI graphical user interface / property inspector شاخصه یاب / Name or String شاخصه عنوان / Tag شاخصه برچسب / Callback Function توابع فراخوان / برنامه نویسی /
نکاتی پیرامون صفحهگسترده / برچسب گذاری / برچسب پیش فرض یک سلول / برچسب گذاری دل خواه، متغیر و آرایه در اکسل excel/ کتابخانه داخلی اکسل excel/ فرمول دهی / Formula Bar میله فرمول / رجوع نسبی و رجوع مطلق به سلول / نامگذاری / پر کردن سلول ها با لیست های قراردادی /
عملیات محاسباتی، توابع ونمودارها / چند تابع کتاب خانه ای / نمودارها / نمودار ستونی / ترسیم منحنی / جبری سازی منحنی / هیستوگرام / تابع کاربر- تعریف در اکسل VBA in Excel / برنامه نویسی / استفاده از تابع VBA در صفحه گسترده / ضبط ماکرو / ابزارهای محاسباتی / Goal Seek / Solver / Data Table جدول داده / تابع خط فرمانinline function / ام- فایل تابعی function M-file /تقریب جبری یک منحنی / مباحثی پیرامون توابع / تابع بدون مقدار برگشتی (بدون آرگومان خروجی) / زیر تابع subfunction / کامپایلرِ متلب MATLAB Compiler / گیره تابع function handle / تابعِ تابع /Function Recursivity / مباحثی پیرامون رشته ها / رشته به مثابه آرایه (بردار) / بلوک try…catch / تابع eval / توابع double و single و عدد اسکی یک کاراکتر / مقایسه رشته ها / تعیین فرمت برای نمایش رشته با fprintf / رشتهm × n / نگه داری رشته در یک متغیر با sprintf / سیگنال، سیستم، *****/ تبدیلات فوریه / توابع سیستم ها / مدل زمان گسسته Discrete-Time Models / *****ها / ریاضیات نمادین Symbolic Math / انواع متغیرها / عملیات ریاضی و نوع متغیرها / روش معرفی متغیر نمادین / عملیات ریاضی بر روی متغیرهای نمادین / متغیر مستقل نمادین / جای گزینی عدد نمادین در متغیر نمادین / یافتن متغیرهای نمادین متلب/ نمایش اعداد نمادین / اعداد مختلط نمادین / توابع نمادین / حد تابع / تابع ام- فایلی نمادین / سری ها / توابع آسان ساز / رسم تابع نمادین با ezplot / ماتریس های نمادین / حل معادلات / معادلات دیفرانسیل / دریافت راهنما در مورد ریاضیات نمادین / واسط گرافیکی کاربر GUI) graphical user interface) / نکاتی پیرامون صفحه گسترده / سلولهای صفحه گسترده spreadsheet cells / توابع کتاب خانه ای و نمودارها / پر کردن سری سلول ها / چند تابع کتاب خانه ای / نمودارها / هیستوگرام / وی- بی- آ در اکسل VBA in Excel / ضبط ماکرو / ابزارهای محاسباتی Goal Seek Solver جدول داده Data Table / ماترس ها / عملیات ماتریسی / عملگر کالن / مجموع تمامی آرایه های یک ماتریس / متغیر ها در MATLAB / ذخیره ی متغیرها / نحوه ی نمایش اعداد در MATLAB / توابع در MATLAB / چند جمله ای ها در MATLAB / جبر چندجمله ای ها / ریشه های یک چند جمله ای / محاسبه ی جواب های n معادله n مجهول / رسم توابع معمولی در MATLAB / اضافه کردن توضیحات به نمودار / دستورات Axis , Grid , text / رسم نمودارهای قطبی / رسم نمودارهای دو و سه بعدی / تابع Meshgrid / ذخیره و ویرایش نمودار ها / رسم نمودار های میله ای و دایره ای / مشتق / محاسبه ی حد / محاسبه ی انتگرال / سری تیلور / حل معادلات جبری / حل معادلات چند مجهولی / حل معادلات دیفرانسیل یک مجهولی / حل دستگاه معادلات دیفرانسیل. / آشنایی با نرم افزار مطلب / آشنایی با محیط نرم افزار MATLAB / پنجره فرمان Command Window / پنجره دستورات پیشینCommand History / پنجره ی پوشه ی جاری / پنجره فضای کار / پنجره Help / پنجره ویرایش آرایه / پنجره رسم و ویرایش نمودار / پنجره ویرایش متون / نوار ابزار و میانبرها / علائم نقطه گذاری / ماتریسها در MATLAB / ماتریسهای خاص / کار روی ماتریسها / عملگرهای ریاضی / آشنایی با برخی توابع ریاضی / عبارات و توابع پارامتری یا Symbolic / حد . انتگرال و تبدیلات فوریه و لاپلاس و Z / معکوس تابع / ساده سازی و ویرایش / رسم نمودارها در MATLAB / رسم خط و منحنی 2D , 3D / رسم رویه ها در فضا / برنامه نویسی در مطلب / آشنایی با حلقه ها و عبارات شرطی. / دستورات مهم : acker / canon / care / cdf2rdf / ctrb / Ctrbf / diag / eig / estim / exam / Gram / initial / kalman / Lyap / null / obsv / obsvf / place / ss / ssdata / ss2ss / ss2tf / tf2ss / رسم پاسخهای سیستم غیرخطی / طراحی فیدبک حالت با دستور acker / فیدبک حالت با کنترل انتگرال / اثر تغییر فیدبک حالت بر رفتار دینامیکی سیستم / طراحی رؤیتگرحالت / رؤیتگر مرتبه کاهش یافته / کنترل فیدبک حالت با رؤیتگر / کنترل فیدبک حالت با رؤیتگر مرتبه کاهش یافته / طراحی کنترل کننده بهینه به صورت فیدبک حالت / کنترل بهینه و حساب تغییرات / کنترل بهینه و درجه پایداری / ***** کالمن / کنترل کننده فیدبک خروجی با ***** کالمن. / مفاهیم مطلب / ساختار مطلب / متغییرها / عملگرهای ریاضی / توابع / مثلثاتی / ماتریسها و دستگاههای معادلات جبری / انجام عملیات روی ماتریسها / جبر چند جمله ای ها / حل دستگاههای معادلات جبری در مطلب / ترسیم نمودارهای دو و سه بعدی / مشتق حد و انتگرال و حل معادلات دیفرانسیل / تبدیل لاپلاس و معکوس آن / بسط سه کسرهای جزیی / حل دستگاه های جبری با متغییر نمادین / تبدیل فوریه و تبدیل z / سری فوریه / تبدیل لاپلاس / حل معادلات دیفرانسیل معمولی / fit / BusyAction & Interruptible / urface / Colormap / Tag / UIContextMenu / Rectangle / Axes /Core Graphics Objects / ساختن منوفرعی / Uimenu / Pop-up / CreateFcn / Anonymous Functions / Toggle buttons / کاربردهای MATLA/ شروع به کار با Matlab / file manager / help / workspace / تعریف کردن آرایه ها / ماتریسها / اعداد در متلب / ذخیره و بازیابی داده ها / بازیابی ماتریسها از m-file ها / operator ها / ایجاد step با operator کالن / function ها / عملیات ماتریسی روی آرایه ها / پاک کردن سطر یا ستون در ماتریسها / عملیات عضو به عضو روی آرایه ها / تنظیم خروجی ها دوی صفحه نمایش با دستورات disp , format / چند جمله ای ها / ریشه های یک چند جمله ای / محاسبه مقدار یک چند جمله ای / ضرب و تقسیم یک چند جمله ای / مشتق چند جمله ای / حل معادلات دیفرانسیل به کمک مطلب matlab / محاسبه انتگرال به کمک مطلب matlab / برازش منحنی چند جمله ای / عملگرهای منطقی / ترسیم داده ها / نمودارهای ۲ بعدی / نمودارهای ۳ بعدی / رسم نمودارها با معادلات پارامتری / رسم نمودارها با معادلات قطبی / اضافه کردن یک گراف به گراف قبلی / برنامه نویسی m-files / برنامه اصلی / ساخت سند گدافیکی GUI / راه اندازی GUIDE / برنامه نویسی یک GUI / اسلاید آموزش مطلب

معادلات يك متغيره
درونيابي و تقريب چند جمله‌اي
انتگرال‌گيري و مشتق‌گيري عددي
حداقل مربعات و نظريه تقريب
حل دستگاه به روش مستقيم
حل دستگاه به روش تكراري
حل دستگاه غير خطي
مسائل مقدار اوليه
مسائل مقدار مرزي
المان محدود
تفاضل محدود
مقادير ويژه
معادلات ديفرانسيل معمولي
معادلات ديفرانسيل جزئي

معادلات يك متغيره
روش نصف كردن BISECTION METHOD
روش سكانت SECANT METHOD
روش موقعيت مصنوعي(غلط) METHOD OF FALSE POSITION
روش نيوتن – رافسون NEWTON-RAPHSON METHOD
روش مولر MULLER’S METHOD

درونيابي و تقريب چند جمله‌اي
روش درونيابي لاگرانژ(نويل) LAGRANGE’S INTERATED INTERPOLATION
روش درونيابي تفاضلات تقسيم‌شده نيوتن NEWTON’S INTERPOLATORY DIVIDED-DIFFERENCE FORMULA
روش درونيابي هرميت HERMITE INTERPOLATION
روش اسپلاين مكعب طبيعي NATURAL CUBIC SPLINE
روش اسپلاين مكعب مقيد CLAMPED CUBIC SPLINE
روش منحني بريز BEZIER CURVE METHOD

نتگرال‌گيري و مشتق‌گيري عددي
روش انتگرال مركب سيمپسون COMPOSITE SIMPSON’S METHOD
روش انتگرال رامبرگ ROMBERG METHOD
روش انتگرال قابل تطبيق كودريچر ADAPTIVE QUADRATURE
روش انتگرال دوگانه سيمپسون COMPOSITE SIMPSON’S METHOD FOR DOUBLE INTEGRALS
روش انتگرال دوگانه گوس GAUSSIAN QUADRATURE FOR DOUBLE INTEGRALS
روش انتگرال سه‌گانه گوس كودريچر GAUSSIAN QUADRATURE FOR TRIPLE INTEGRALS
روش انتگرال سه‌گانه سيمپسون COMPOSITE SIMPSON’S METHOD FOR TRIPLE INTEGRALS

حل عددي مسائل مقدار اوليه
روش اويلر EULER’S METHOD
روش رانگ – كوتا مرتبه چهار RUNGE-KUTTA (ORDER 4) METHOD
روش پيشگو – اصلاحگر مرتبه چهار آدامز ADAMS-FOURTH ORDER PREDICTOR-CORRECTOR METHOD
روش برونيابي EXTRAPOLATION METHOD
روش رانگ – كوتا – فلبرگ RUNGE-KUTTA-FEHLBERG METHOD
روش پيشگو – اصلاحگر با اندازه گام متغير آدامز ADAMS VARIABLE STEP-SIZE PREDICTOR-CORRECTOR METHOD
روش رانگ – كوتا براي سيستم معادلات ديفرانسيل RUNGE-KUTTA METHOD FOR SYSTEMS OF DIFFERENTIAL EQUATIONS
روش ذوزنقه‌اي با تكرار نيوتن TRAPEZOIDAL METHOD WITH NEWTON ITERATION

روشهاي مستقيم حل دستگاههاي خطي
روش حذفي گوس با جايگذاري پسرو GAUSSIAN ELIMINATION WITH BACKWARD SUBSTITUTION METHOD
روش حذفي گوس با محورگيري ستوني ماكزيمال GAUSSIAN ELIMINATION WITH MAXIMAL COLUMN PIVOTING
روش حذفي گوس با محورگيري ستوني مقياس شده GAUSS-JORDAN
روش تجزيه مستقيم DIRECT FACTORIZATION
روش چولسكي CHOLESKI’S METHOD
روش فاكتورگيري LDL-T FACTORIZATION
روش تحويل‌گيري كروت براي دستگاههاي خطي سه قطري CROUT REDUCTION FOR TRIDIAGONAL LINEAR SYSTEMS

روشهاي تكراري حل دستگاههاي خطي
روش تكرار ژاكوبي JACOBI ITERATIVE METHOD
روش تكرار گوس – سيدل GAUSS-SEIDEL ITERATIVE METHOD
روش فوق تخفيف متوالي (SOR) SOR METHOD

نظريه تقريب
سهم تقريبي Pade PADE RATIONAL APPROXIMATION METHOD
سهم تقريبي چبيشف CHEBYSHEV RATIONAL APPROXIMATION
تبديل فوريه سريع FAST FOURIER TRANSFORM

تقريب مقادير ويژه
روش تواني POWER METHOD
روش تواني براي ماتريسهاي متقارن SYMMETRIC POWER METHOD
روش تواني معكوس INVERSE POWER METHOD
روش تقليل ويلاند WIELANDT’S DEFLATION
روش هاوس هولدر HOUSEHOLDER’S METHOD
روش QR QR METHOD

حل دستگاه معادلات غير خطي
روش نيوتن NEWTON’S METHOD FOR SYSTEMS
روش برويدن BROYDEN’S METHOD
روش صعودي – نزولي STEEPEST DESCENT METHOD

حل عددي مسائل مقدار مرزي
روش تيراندازي خطي LINEAR SHOOTING METHOD
روش تفاضل محدود خطي LINEAR FINITE-DIFFERENCE METHOD
روش تيراندازي غيرخطي(نيوتن) NONLINEAR SHOOTING METHOD
روش تفاضل محدود غيرخطي NONLINEAR FINITE-DIFFERENCE METHOD
روش قطعه قطعه خطي ريلي – ريتس PIECEWISE LINEAR RAYLEIGH-RITZ METHOD
روش اسپلاين مكعبي ريلي – ريتس CUBIC SPLINE RAYLEIGH-RITZ METHOD

حل عددي معادلات ديفرانسيل جزئي
روش تفاضل محدود معادله پواسن(بيضوي) POISSON FINITE-DIFFERENCE METHOD
روش تفاضل پسرو معادله گرما(سهموي) HEAT EQUATION BACKWARD-DIFFERENCE METHOD
روش كرانك – نيكلسون(سهموي) CRANK-NICOLSON METHOD
روش تفاضل محدود معادله موج(هذلولوي) WAVE EQUATION FINITE-DIFFERENCE METHOD
روش المان محدود FINITE ELEMENT METHOD

انجام پروژه های دانشجویی نرم افزار متلب (Matlab ) و سیمولینک ( Simulink )در زمینه مهندسی برق و الکترونیک، شبکه های عصبی،الکترونیک صنعتی، منطق فازی و پردازش تصویر در تمام نقاط ایران.

الگوریتم ژنتیک (Genetic Algorithm) یا GA
بهینه سازی کلونی مورچگان (Ant Colony Optimization) یا ACO
بهینه سازی کلونی مورچگان برای فضای پیوسته یا ACOR
بهینه سازی ازدحام ذرات (Particle Swarm Optimization) یا PSO
شبیه سازی تبرید (Simulated Annealing) یا SA
جستجوی ممنوع (Tabu Search) یا TS
الگوریتم زنبورها (Bees Algorithm) یا BA
کلونی زنبورهای مصنوعی (Artificial Bee Colony) یا ABC
تکامل تفاضلی (Differential Evolution) یا DE
جستجوی هارمونی (Harmony Search) یا HS
بهینه سازی مبتنی بر جغرافیای زیستی (Biogeography-Based Optimization) یا BBO
الگوریتم فرهنگ (Cultural Algorithm) یا CA
الگوریتم رقابت استعماری (Imperialist Competitive Algorithm) یا ICA
الگوریتم کرم شب تاب (Firefly Algorithm) یا FA
استراتژی تکاملی با تطبیق ماتریس کواریانس یا

پروژه درس دینامیک سیستم های قدرت

پروژه درس کنترل فازی

پروژه درس بهره برداری از سیستم های قدرت

پروژه درس کنترل مدرن

پروژه درس الکترونیک قدرت

پروژه درس مباحث ویژه در سیستم های قدرت

پروژه درس تئوری جامع ماشین های الکتریکی

پروژه درس کنترل توان راکتیو

پروژه درس کیفیت توان

پروژه درس قابلیت اطمینان

پروژه درس بازار برق

پروژه درس توزیع

پروژه درس انرژی های نو و ذخیره سازی انرزی

پروژه درس شبکه های هوشمند

پروژه درس پخش بار اقتصادی

مقالات نیروگاه

مقالات ماشین سنکرون
دانلود مقالات ژنراتور القایی دو سو تغذیه DFIG

دانلود مقالات پیل سوختی fuel cell

1) مدل سازی و شبیه سازی با استفاده از نرم افزارهای تخصصی برق MATLAB، PSCAD، PSIM، EMTP و …

2) الکترونیک قدرت و شبیه سازی انواع مبدل های AC-DC، DC-DC، DC-AC و …، مباحث ماشین درایو

3) کنترل توان راکتیو با استفاده از اداوات FACTS در سیستم های توزیع و تولیدات پراکنده از جمله مزارع بادی، سیستم های فتوولتائیک و …

4) ارزیابی قابلیت اطمینان سیستم های قدرت در تولیدات پراکنده، نیروگاه های ترکیبی، مبدل های الکترونیک قدرت و … با استفاده از شبیه سازی Monte Carlo

5) دینامیک سیستم های قدرت، طراحی پایدارسازها، بررسی سیستم های تحریک، سیستم های قدرت چند ماشینه، پایداری دینامیکی، پایداری مجانبی، تحلیل مدال و …

6) تولیدات پراکنده (DG)، شامل توربین های بادی DFIG و PMSG، نیروگاه های خورشیدی، CHP و … نحوه کنترل توان اکتیو و راکتیو، کنترل شبکه و ژنراتور، تحت شرایط نامتعادلی بار و …

7) بازار برق، بازارهای انرژی الکتریکی و خدمات جانبی، امنیت سیستم و خدمات جانبی، برنامه ریزی توسعه انتقال، سرمایه گذاری در تولید و انتقال، ذخیره چرخان، قیمت بازار، تولید همزمان، ریسک پذیری و … شبیه سازی با GAMS و Monte Carlo

8) تئوری جامع ماشین های الکتریکی، ماشین های القایی، PM و DC، در حالت فاز شکسته، خطاهای هسته استاتور، تحمل پذیری خطا، نظارت بر وضعیت ماشین و …

9) بهره برداری سیستم های قدرت، بهره برداری جزیره ای، بررسی خاموشی ها، اضافه بار خطوط، کنترل فرکانس و توان و …

10) انرژی های نو، سیستم های فتوولتائیک و انرژی بادی و …

11) Smart Grid و مباحث مرتبط با آن

12) تشخیص عیوب ماشین های الکتریکی، تشخیص خطای موتورها، تکنیک های مانیتورینگ سیگنال های جریان و …

13) تئوری و تکنولوژی پیشرفته مهندسی فشار قوی

14) بررسی حالت گذرا در سیستم های قدرت و شبیه سازی با EMTP

15) حفاظت پیشرفته سیستم های قدرت

16) کنترل مدرن و مباحث مرتبط با آن

آموزش جامع Matlab + Simulink  ،  آموزش متلب  ،  35 ساعت آموزش  ،  MATLAB R2016a ، MATLAB R2016a 64Bit ، Matlab 2016 ،  نرم افزار كاربردي مطلب  ،  مطلب  ،  مطلب 2016  ، آخرين نسخه نرم افزار متلب ،  نرم افزار MATLAB  ،  نرم افزار قدرتمند  ،  عمليات محاسباتي پيچيده  ،  شبيه سازي رياضي  ، پروسه هاي گوناگون علمي  ،  مهندسي  ،  دانشجويان  ، فارغ التحصيلان رشته هاي رياضي  ،  مهندسي  ، نرم افزار MATLAB  ،  حل معادلات رياضي  ،  رسم  ،  محاسبات مختلف فني و صنعتي  ،  علوم پايه  ،  فني و مهندسي  ،  بلوك هاي بخش سيمولينك  ،  معادلات جبري  ،  روشهاي رسم نمودار يك بعدي  ،  سه بعدي ،  GUI ،  كنترل ،  تحليل مدار  ،  الكترونيك ، مدولاسيون ،  طراحي فيلتر ،  پردازش تصوير ،  منطق فازي ،  تبديل wavelet و simelectronic  ،  توابع ماتريسي ،  رياضي  ،  توابع  ، معادلات جبري ،  روشهاي رسم نمودار يك بعدي  ،  سه بعدي  ، دكتر حميد يزداني  ،  مدرسان با سابقه و حرفه اي MATLAB  ،  تدريس  ،  مباني مقدماتي MATLAB متلب 2016 ،  نرم افزار Matlab ،  راهنماي نصب نرم افزار Matlab ،  كتاب اكترونيك Matlab ،  آموزش نرم افزار Matlab ،  راهنماي نرم افزار Matlab ،  اتوران نرم افزار Matlab ،  نرم افزار كاربردي متلب 2016b ،  نرم افزار Matlab ،  نرم افزار متلب ،  رسم نمودار ،  زبان محاسبات ،  نمودار پيشرفته ،  رسم نمودار پيشرفته ،  ماتريس  ،  معادلات ديفرانسيل ، گراف  ،  محاسبات علمي ،  محاسبات مهندسي ،  طراحي فيلتر ،  طراحي سيستم‌هاي مخابراتي ، رگرسيون غير خطي ،  شبكه‌هاي عصبي ،  منطق فازي ،  جبر خطيT ، زبان سطح بالا ، محاسبات فني  ،  تخصصي .محيطي  ،  مديريت كدها ،  فايل ها ،  داده ها ، طراحي و حل كردن مشكلات توابع رياضي ، جبر خطي ،  آمار ،  تجزيه و تحليل فوريه ،  فيلتركردن ،  بهينه سازي  ،  يكپارچه سازي عددي شامل توابع دو بعدي و سه بعدي گرافيكي ،  A Guide to MATLAB for Beginners and Experienced Users  ، A Guide to MATLAB Object-Oriented Programming  ، Advanced Mathematics and Mechanics Applications Using MATLAB  ، Algorithm Collections for Digital Signal Processing Applications  ، An Introduction to Programming and Numerical Methods in MATLAB  ، Contemporary Communication Systems using Matlab  ، Computational Statistics Handbook with MATLAB  ، Digital Circuit Analysis and Design with Simulink Modeling  ، Digital Signal and Image Processing Using MATLAB  ، Electronic Devices and Amplifier Circuits with MATLAB Applications  ، Electronics and Circuit Analysis Using MATLAB  ، Embedded Control Systems in C ،  C++ Using MATLAB  ، Embedded Image Processing with DSP Examples in MATLAB  ، Engineering and Scientific Computations Using MATLAB  ، Introduction to Simulink with Engineering Applications  ، Kalman Filtering Theory and Practice Using MATLAB  ، Numerical Analysis Using MATLAB and Spreadsheets ، Numerical Methods in Engineering with MATLAB  ، Optical Scanning Holography with MATLAB  ، Optics Learning by Computing with Examples using MATLAB  ، Ordinary and Partial Differential Equation Routines in Matlab  ، Radar Systems Analysis and Design Using MatLab  ، Scientific Computing with Matlab and Octave  ، Solving ODEs with Matlab Instructors Manual ، Adaptive Filtering Primer with MATLAB  ، Antenna and EM Modeling with MATLAB  ، Applied Numerical Methods Using MATLAB  ، Basics of MATLAB and Beyond  ، Biosignal and Biomedical Image Processing  ، Business Economics & Finance with Matlab  ، Circuit Analysis II with MATLAB  ، Digital Image Processing Using Matlab  ، Digital Signal Processing  ، Digital Signal Processing Using Matlab  ، Environmental Modeling Using MATLAB  ، Essential MATLAB for Engineers and Scientists  ، Exploratory Data Analysis with MATLAB  ، Fundamentals of Electromagnetics with Matlab  ، Robust Control Design with Matlab  ، Introduction to Fuzzy Logic using MatLab  ، Introduction to MATLAB  ، MATLAB Programming  ، MATLAB Recipes for Earth Sciences  ، Mechanics of Composite Materials with MATLAB  ، Numerical Computing with MATLAB  ، Numerical Analysis Using MATLAB and Excel  ، Spectral Methods in MATLAB  ، Solving ODEs with MATLAB ، آموزش جامع Simulink  ،  شبيه سازي در متلب  ،  simulink ، سرفصل matlab ، فصل اول :پيشگفتار ، فصل دوم: آشنايي با محيط نرم افزار Matlab ، محيط command window ، محيط current folder ، محيط workspace ، انواع داده ها ، معرفي دستور who ، معرفي دستور whos ، معرفي دستور clear var ، معرفي دستور clear ، معرفي دستور clear ، معرفي دستور pack ، فصل سوم: توابع آرايه اي ، بردارها:  ، تعريف بردار ، ماتريس ها: ، تعريف ماتريس ، ماتريس هاي خاص: ، معرفي دستور Ones ، معرفي دستور zeros ، معرفي دستور rand ، معرفي دستور randn ،  معرفي دستور magic ، عمليات رياضي بر روي ماتريس  ،  جمع ماتريس ها ، تفريق ماتريس ها ، ضرب ماتريس ها ، تقسيم ماتريس ها ، توان ماتريس ها ، معكوس ماتريس ها ، عمليات ماتريسي 1 ، معرفي دستور size ، معرفي دستور length ، معرفي دستور numel ، معرفي دستور min ، معرفي دستور min (min) ، معرفي دستور max ، معرفي دستور max(max) ، معرفي دستور sort ، معرفي دستور diag ، معرفي دستور det ، معرفي دستور trace ، معرفي دستور sum ، عمليات ماتريسي 2: ، معرفي دستور prod ، معرفي دستور mean ، معرفي دستور triu ، معرفي دستور tril ، تركيب دو ماتريس ، عمليات ماتريسي 3: ، اتصال ماتريس ها به صورت سطري با دستور horzcat ، اتصال ماتريس ها به صورت ستوني با دستور vertcat ، حذف سطر يا ستون خاص از ماتريس ، عمليات ماتريسي 4: ، معرفي دستور minfo ، معرفي دستور flipud ،  معرفي دستور fliplr ، معرفي دستور reshape ، معرفي دستور repmat ، معرفي دستور nnz ، معرفي دستور find ، معرفي دستور rot90 ، عمليات ماتريسي 5: ، معرفي دستور isequal ، معرفي دستور isempty ، معرفي دستور ismember ، معرفي دستور inv ،  فصل چهارم: كنترل در برنامه نويسي ، دستور for ، دستور while ، دستور if ، دستور switch ، مديريت استثناها ، فصل پنجم: توابع ، تعريف و برنامه نويسي توابع ، فصل ششم: توابع رياضي ، توابع مثلثاتي ،  cot ، tan ، cos ، sin ،  csc ، sec ،  acot.atam ، acos ، asin ،  acsc ، asec ،  csch ، sech ، coth ، tanh ، cosh ، sinh ، توابع نمايي و تواني ،  sart (x) ، power(x ، y) ، nthroot ، exp ، log(x) ، log 10(x) ، log 2(x) ، توابع اعداد طبيعي و مختلط ، معرفي دستور gcd(m ، n) ، معرفي دستور Lcm(m ، n) ، معرفي دستور primes (n) ، معرفي دستور factorial ، معرفي دستور factor ، معرفي rem ، معرفي دستور mod ، معرفي دستور abs(x) ، معرفي دستور angle(x) ، معرفي دستور image ، معرفي دستور real (x) ، معرفي دستور atan 2 ، معرفي دستور conj ، چند جمله اي ها ، محاسبه مقدار چند جمله اي با دستور polyval ، معرفي دستور roots ، محاسبه مشتق چند جمله اي با دستور polyder ، محاسبه ضرب چندجمله اي با دستور conv ، معادلات جبري ، حل معادله درجه اول با دستور solve ، حل دستگاه معادلات ، حل معادلات ديفرانسيل با دستور dsolve ، درون يابي و برون يابي ، معرفي دستور interpl ، عبارت و توابع پارمتري ، معرفي دستور syms ، معرفي دستور findsym ، معرفي دستور subs ، مشتق ،  معرفي دستور diff ،  معرفي دستور inline ، انتگرال معين و نامعين ، معرفي دستور int ، انتگرال دو گانه و چندگانه ، سري ، سري هاي معين ، سري هاي نامعين ، معرفي دستور symsum ، معرفي دستور pretty ، حد ، معرفي limit ، تبديل فوريه ،  معرفي دستور fourier ،  معرفي دستور dirac ،  معرفي دستور ifourier ،  تبديل فوريه سريع يك بعدي ،  تبديل فوريه سريع دوبعدي ،  تبديل فوريه سريع چندبعدي ، معكوس تبديل فرويه سريع يك بعدي ،  معكوس تبديل فوريه سريع دوبعدي ،  معكوس تبديل فوريه سريع چند بعدي ، فصل هفتم: رسم خط و منحني: ، دستور plot ، ترسيم همزمان چند شكل با دستور plot ، معرفي دستور hold on ، انتخاب عنوان بر روي شكل ها و محورها ، معرفي دستور xlabel ، معرفي دستور ylabel ، معرفي دستور title ، انتخاب رنگ منحني ها ، معرفي دستور set ، انتخاب نوع خط منحني ، معرفي دستور legend ، تعيين محدوده محورهاي مختصات ، معرفي دستور Axis ، معرفي دستور xlim ، معرفي دستور ylim ، معرفي دستور subplot ، دستور subplot ، معرفي دستور grid ، معرفي دستور linspace ، دستور لگاريتمي ، معرفي دستور loglog ، معرفي دستور logspace ، معرفي دستور semilogy ، معرفي دستور Semilogx ، معرفي دستور stem: ، معرفي دستور linspace ، معرفي دستور stem ، معرفي دستور staris ، معرفي دستور plotyy ، معرفي دستور bar: ، معرفي دستور barh ، معرفي دستور hist ، معرفي دستور pie ، معرفي دستور polar ، معرفي دستور compass ، معرفي دستور ezpolar ، ezplot ، معرفي دستور comet ، فصل هشتم: رسم نمودارهاي سه بعدي ، معرفي دستور plot 3 ، معرفي دستور scatter 3 ، معرفي دستور bar 3 ، معرفي دستور bar3h ، معرفي دستور pie 3 ، رسم سطوح سه بعدي ، معرفي دستور meshgrid ، معرفي دستور mesh ، معرفي دستور surf ، معرفي دستور contour ، معرفي دستور water fall ، معرفي دستور ribbon ، فصل نهم: ساختار شكل خروجي ، فصل دهم: سيمونيك در matlab ، آشنايي با سيمولينك ، آشنايي با كتابخانه source ، آشنايي با كتابخانه sink ، آشنايي با كتابخانه Math ، آشنايي با كتابخانه continuous ، آشنايي با كتابخانه Discontinuities ، آشنايي با كتابخانه discrete ، آشنايي با كتابخانه logic and operations ، آشنايي با كتابخانه signal routing ، آشنايي با كتابخانه lookup table ، آشنايي با كتابخانه port & subsystem ، آشنايي با كتابخانه signal attributes  ، آشنايي با كتابخانه userdefined Functions ، فصل يازدهم: GUI ، آشنايي با GUI ، انواع عناصر و كاربردهاي آن ، ايجاد GUI ، فصل دوازدهم : كنترل در Matlab ، آشنايي با مفاهيم كنترل ، پاسخ به ورودي پله ، پاسخ به ورودي ضربه و شيب ، پاسخ به ورودي دلخواه ، نمودار مكان هندسي ، رسم نمودار بود ، رسم نمودار نايكوئيست ، رسم نمودار نيكولس ، رسم نمودار حاشيه بهره و فاز ، شبيه سازي سيستم هاي كنترل ، فصل سيزدهم : تحليل مدار و الكترونيك در Matlab ، تحليل حلقه و گره ، تحليل مدار RC ، تحليل مدار RL ، پاسخ فركانسي ، تحليل مدار ديودي ، تحليل ترانزيستور MOSFET ، فصل چهاردهم : مدولاسيون در Matlab ، مدولاسيون AM ، مدولاسيون FM ، مدولاسيون PM ، فصل پانزدهم : طراحي فيلتر ، طراحي فيلتر ، فصل شانزدهم : تبديل Wavelet ، تبديل Wavelet ، فصل هفدهم : SimElectronics ، آشنايي با SimElectronics ، مدل سازي موتور DC ، فصل هجدهم : منطق فازي ، آشنايي با سيستم فازي ، توابع عضويت در جعبه ابزار منطق فازي ، ابزار گرافيكي ، ساخت سيستم فازي با استفاده از ابزار گرافيكي ، منطق فازي در سيمولينك ، فصل نوزدهم : پردازش تصوير ، نمايش و خواندن تصوير ، ذخيره سازي تصوير و مشاهده اطلاعات تصوير ، تركيب تصاوير ، مكمل تصوير ، تغيير اندازه يك تصوير ، هيستوگرام يك تصوير ، دوران و برش يك تصوير ، طراحي فيلتر براي تصوير ، بررسي فيلترهاي طراحي شده در Matlab ، اضافه و حذف نويز ، بررسي لبه هاي تصوير ، فصل بيستم : محاسبات عددي ، روش تصنيف يا دوبخشي ،

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

سیستم های تشخیص گفتار به همراه کد

$
0
0

 مقدمه

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

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

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

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

نکته اساسی:

قبل از پرداختن به به سیستم های تشخیص گفتار لازم است که فناوری تولید گفتار و تشخیص گفتار با تعریفی ساده از هم متمایز شوند:

● فناوری تولید گفتار[2]: تبدیل اطلاعاتی مثل متن یا سایر کدهای رایانه ای به گفتاراست. مثل ماشین های متن خوان برای نابینایان، سیستم های پیغام رسانی عمومی. سیستم های تولید گفتار به خاطر سادگی ساختارشان زودتر ابداع شدند. این نوع از فناوری پردازش گفتار موضوع مورد بحث در این پروژه نیستند.

● فناوری تشخیص گفتار[3]: نوعی فناوری است که به یک کامپیوتر این امکان را می دهد که گفتارو کلمات گوینده ای را که از طریق میکروفن یا پشت گوشی تلفن صحبت می کند، بازشناسی نماید. به عبارت دیگر در این فناوری هدف خلق ماشینی است که گفتار را به عنوان ورودی دریافت کند و آنرا به اطلاعات مورد نیاز (مثل متن) تبدیل کند.

فصل اول: تعاریف– ضرورت ها – کاربردها

    1. تاریخچه فناوری تشخیص گفتار

اولین سیستم های مبتنی بر فناوری تشخیص گفتار در سال 1952  در”آزمایشگاههای بل” طراحی شد.این سیستم به شیوه گفتار گسسته و به صورت وابسته به گوینده و با تعداد لغت محدود 10 لغت عمل می کرد.در اوایل دهه 80 میلادی برای اولین بار الگوریتم مدلهای مخفی مارکوف[4] ارائه شد.اینن الگوریتم گامی مهم در طراحی سیستم های مبتنی بر گفتار پیوسته به حساب می آمد.همچنین در طراحی این سیستم از مدل شبکه عصبی و نهایتاًً ازهوش مصنوعی نیز استفاده می شود.در ابتدا شرکتهای تجاری این فناوری را برای کاربردهای خاصی طراحی کردند.به عنوان مثال شرکت کورزویل[5] درر زمینه پزشکی و مخصوصاً برای کمک به معلولان و نابینایان و شرکت دراگون[6] در زمینه خودکارسازی سیستمهای اداری محصولات اولیه وارد بازارکردند.. توانجویان در واقع اولین گروهی بودند که از این دسته محصولات به عنوان یک فناوری انطباقی و یاریگر، عمدتاً برای دو عملکرد کنترل محیط و واژه پردازیی استفاده کردند.

جیمز بیکر[7] یکی از محققان شرکت IBM که در اواخر دهه 1970 در مورد این فناوری مقالات زیادی نوشت، یکی از پیشگامان این طرح بود.او و همکارانش یک شرکت خصوصی به نام سیستم های دراگون[8] تاسیس کردند. این شرکت ابتدا در دهه 1990 نرم افزاری به نام دراگون دیکتیت[9] تولید کرد که یکک سیستم مبتنی بر گفتار گسسته بود. در سال 1997 این شرکت محصولی را تولید کرد که به جای استفاده از گفتارگسسته ،مبتنی بر گفتار پیوسته بود.درر واقع این شرکت با ارائه نرم افزار (DNS)[10] اولین سیستم تشخیص گفتار پیوسته را ارائه نمود.این سیستم توانایی تشخیص گفتار با سرعت 160 کلمه درر دقیقه را داشت.همچنین شرکت تجاری IBM هم در این زمینه برای سالهای متمادی فعالیت می کرد که با طراحی بسته نرم افزاری Via Voice به ارائهه سیستم های تشخیص گفتار پرداخت که در حال حاضر اسکن سافت[11] محصولات IBM Via Voice  راتوزیع و پشتیبانی می کند.شرکت مایکروسافت نیزز فعالیتهایی درجهت تولید و کاربرد این فناوری داشته است، و بیل گیتس[12] در کتابها و سخنرانی هایش به کرات در مورد آینده درخشان استفاده ازز سیستم های تشخیص گفتار تاکید کرده است. البته عملاً تا قبل از ارائه نرم افزار آفیس XP [13] و ورد 2002[14] این تکنولوژی در محصولات این شرکتت بکاربرده نشد.گرچه در ابتدا عمده موارد استفاده این تکنولوژی ،برای افراد توانجو پیش بینی شده بود اما بعدها پذیرش استفاده از آن گسترده تر شد وو گروههای بسیاری در مدارس و دانشگاهها علاقه مند به استفاده ازاین فناوری شدند. بطوریکه دانشگاه استون هال[15] نیز برای تشویق دانشجویان بهه آشنایی با این سیستم به دانجشویان جدید الورود نرم افزار IBM Via Voicee را اهدا می کرد.

1-2- کاربردهای سیستم های تشخیص گفتار

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

1-2-1- استفاده از این تکنولوژی برای دیکته کردن و ایجاد مدرک:

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

CarpalTunnelSyndrome_1

شکل1-1

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

1-2-2- استفاده از این نرم افزار برای ترجمه زبانها:

یکی از آژانس های پروژه های تحقیقاتی پیشرفته دفاعی آمریکا دارای سه تیم از محققانی است که بر روی GALE [18] که برنامه ای که اطلاعات روزنامه ها و اخبار پخش شده در زبانهای خارجی را ترجمه می کند،کار می کنند. این پروژه امیدوار است که بتواند نرم افزاری ایجاد کند که بتواند دو زبان را باا حداقل 90 درصد دقت به یکدیگر ترجمه کند.این آژانس همچنین بر روی یک پروژه تحقیقی و توسعه به نام TRANSTAC سرمایه گذاری کرده است که سربازان ایالات متحده امریکا را قادر می کند به شکل موثرتری با جمعیت غیر نظامی کشورهای غیر انگلیسی زبان به تعامل بپردازند.

b07544e58d

شکل1-2

1-2-3- فناوری تشخیص گفتار در راهبری سیستم های اطلاعاتی مالی و امنیتی

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

wrbrtczvka__180_180_%D8%A8%D8%A7%D9%86%DA%A9%D8%AF%D8%A7%D8%B1%D9%8A%20%D8%A7%D9%84%DA%A9%D8%AA%D8%B1%D9%88%D9%86%D9%8A%DA%A9شکل1-3

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

1-2-4- استفاده در مکتوب کردن مستندات صوتي

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

1-2-5- استفاده از فناوری تشخیص گفتار برای جایی که کاربر می تواند با ادا کردن دستورات آنها را انجام دهد:

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

219923_origA98_80CA9CIPLBشکل1-4

1-2-6- استفاده از فناوری تشخیص گفتار در پزشکی :

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

1-2-7- ساده سازي ارتباط با سيستم گفتار تلفني

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

73806e68612d58384c576e6e634644545f7a796641-100x100-0-0

شکل1-5

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

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

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

دقت تشخيص بالاي 96 درصد، سرعت تشخيص بالا، پشتيباني از زبانهاي انگليسي و فارسي و کار با رابطهاي تلفني موجود مانند مودم و برد دیالاجیک[19] از ويژگي هاي منحصربه فرد اين سيستم ها هستند.

1-2-8- کاربرد فناوری تشخیص گفتار در کتابخانه

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

1-2-9- استفاده از این فناوری برای تشخیص اعداد که بصورت گفتاری بیان شده باشند

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

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

1-3- عملکرد سیستم های تشخیص گفتار

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

speech-recognition-process

شکل -16

تبدیل گفتاربه داده

برای تبدیل گفتار به یک متن روی صفحه یا یک فرمان کامپیوتری، یک سیستم باید راه دشواری را طی کند.وقتی که گوینده صحبت می کند، لرزشهایی در هوا ایجاد می شود، سیستم تشخیص گفتار ابتدا امواج صوتی آنالوگ را دریافت می کند، مبدل آنالوگ به دیجیتال (ADC)[20] این امواج آنالوگ را به دادهه های دیجیتالی تبدیل می کند. سپس سیگنال به سگمنت های کوچکی که به اندازه چند صدم ثانیه یا در مورد صامت های بی صدا[21] چند هزارم یکک ثانیه هستند، تقسیم می شود. در مرحله بعد برنامه این سگمنت ها را به واج[22] های شناخته شده در زبان تبدیل می کند. واج ،کوچکترین عنصریک زبانن است (ارائه ای از صداهایی که ما می سازیم و برای شکل دادن واژه های معنی دار آنها را در کنار هم قرار می دهیم).گام بعدی ساده به نظر می رسدد اما در واقع انجام آن بسیار دشوار است. برنامه واج های موجود را با سایر واج هایی که درکنار آن قرار دارد، امتحان می کند و واج های هم بافت را از طریق یک مدل آماری بسیار پیچیده نقطه[23] می کند و آنها را با مجموعه بزرگی متشکل از واژه های شناخته شده، عبارات و جملات مقایسه می کند.برنامهه سپس چیزی را که کاربر احتمالاً گفته است مشخص می کند و آن را به عنوان متن یا شکل یک فرمان کامپیوتری یا صوت بیرون می دهد.

تشخیص گفتار با استفاده از مدل(الگوریتم)آماری

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

سیستم های تشخیص گفتار امروزی از سیستم های مدل آماری بسیار قدرتمند و پیچیده ای استفاده می کنند.این سیستم ها از قواعد احتمالات وریاضی برای تشخیص نتیجه استفاده می کنند. دو مدل مسلط امروز در این حوزه مدل مخفی مارکوف[25] و مدل شبکه عصبی[26] هستند. این روشهاا اساساً برای مشخص کردن اطلاعات پنهان از سیستم، از اطلاعاتی که برای سیستم شناخته شده هستند استفاده می کنند. مدل مخفی مارکوف رایجج ترین مدل است.در این مدل هر واج مثل یک پیوند در یک زنجیره است و هنگامی این زنجیره تکمیل می شود، یک کلمه بوجود می آید. در طی این فرایند، برنامه یک امتیاز[27] احتمالاتی را بر اساس دیکشنری توکار و آموزش کاربر به هر واج اختصاص می دهد. این فرایند برای عبارات و جملات، حتی از این همم پیچیده تر است. (سیستم مجبور است مشخص کند که هر کلمه کجا شروع می شود و کجا به اتمام می رسد). گاهی برنامه ناچار است عباراتی را کهه شنیده است را با عبارت یا عبارت های قبل ار آن که در بافت جمله هستند مقایسه کند، آن را تجزیه و تحلیل کند تا بتواند آنرا به درستی تشخیص دهد. بنابراین اگر یک برنامه دارای 60000 کلمه باشد ترتیبی از سه کلمه می تواند هر یک از 216 تریلیون احتمال ممکن باشد.بدیهی است که حتی قدرتمندترین سیستم هم نمی تواند بدون کمک، تمام این احتمالات را جستجو کند. این کمک به شکل”آموزش”برنامه ارائه می شود. با وجود اینکه توسعه دهندگان و طراحان نرم افزار که دستگاه واژگانی اصل سیستم را تنظیم می کنند، بخش اعظمی از این آموزش را انجام می دهند اما کاربر نهایی نیز باید زمان زیادی را صرف این آموزش کند.

1-4- انواع سیستمهای تشخیص گفتار

1-4-1- تقسیم بندی بر اساس عملکرد

فناوری تشخیص گفتار بر اساس سه معیارقابل بررسی و طبقه بندی است:

تعداد گویندگان

همانطور که قبلاً نیز اشاره شد، درونداد اطلاعات در این سیستم به صورت صوتی-گفتار انسان- است. بسته به اینکه سیستم برای استفاده تعداد محدودی گوینده طراحی شده باشد یا نه، این سسیستم به دو دسته “وابسته به گوینده” و “مستقل از گوینده” تقسیم می شوند.

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

شیوه صحبت کردن

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

اندازه بانک واژگان

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

1-4-2- سیستم های تشخیص گفتار: تقسیم بندی بر اساس برونداد

سیستم های تشخیص گفتار همگی در یک ویژگی مشترک هستند و آن “لزوم درونداد به صورت صوتی” در این گونه سیستم هاست. این سیستم ها را بر اساس بروندادی که ارائه می کنند می توانیم به سه دسته تقسیم بندی کنیم:

الف.سیستم های گفتار به متن[28]
ب. سیستم های گفتار به گفتار[29]
ج.سیستم های گفتار به فرامین[30]
که در ادامه هریک به طور مختصر معرفی می شوند.

گفتار به متن

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

CAIDM3UVشکل1-7

azizkh6
شکل 1-8

  • IBM Via Voice [31]: تنها نرم افزاری است که سیستم عامل لینوکس را پشتیبانی می کند.
  •  نرم اقزار مدل مخفی مارکوف می یر[32]: نرم افزاری است که توسط ریچارد می یر با الگوی HMM نوشته و طراحی شده است و برای کاربران حرفه ای کاربرد دارد.
  • فناوری استفاده شده در ویندوز ویستا، فناوری استفاده شده در ویندوز XP  که در قالب برنامه های ورد و ورد 2002 به بعد، ارائه شده است.
  • نرم افزار دیکته خودکار فارسی/انگلیسی نویسا
  • یک نرم افزار تشخیص گفتار به دو زبان فارسی و انگلیسی بدون وابستگی به گوینده است که توسط گروه SPl [33] در دانشگاه صنعتی شریف طراحی و تولید شده است. کاربرمی تواند از این نرم افزار در هر ویرایشگری در محیط ویندوز استفاده کند.

گفتار به گفتار

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

azizkh7

شکل1- 9

موارد بالا نمونه هایی از تلاش محققان جهان برای توسعه این فناوری بودند. در ایران و برای کاربران فارسی زبان نیز “نرم افزار پارسیا” طراحی و تولید شده است که یک نرم افزار ترجمه صوتی(گفتار به گفتار) زبان فارسی است و عبارات رایج و مکالمات روزمره فارسی را به زبانهای مقصد (انگلیسی و عربی) ترجمه می کند. این نرم افزار توسط گروه SPL دانشگاه صنعتی شریف طراحی و تولید شده است.

گفتار به دستور  

از این نوع فناوری برای کنترل برنامه ها[34] استفاده می شود. با استفاده از این فناوری کاربر می تواند با ادا کردن دستورات آنها را انجام دهد.

azizkh8

شکل 1-10

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

  • C Voice Control [35]: در سیستم عامل لینوکس استفاده می شود و امکان اجرای دستورات را بوسیله فرامین صوتی فراهم می کند.
  • کامندر گیم[36]: برنامه ای است مستقل از گوینده و بدون نیاز به آموزش که با ایجاد فرمانهای صوتی برخی بازی های مشهور ویندوز را کنترل می کند.

1-5- نمونه هایی از نرم افزارهای تشخیص گفتار طراحی و پیاده سازی شده :

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

1-5-1- طراحی و پیاده سازی سیستم نرم افزار فناوري بازشناسي گفتار توسط جمعي از متخصصين دانشگاه صنعتي شريف در زمينه پردازش گفتار (شيوه‌اي بسیار جديد براي تشخيص پيام ها و دستورهاي صوتي)

CrThumb

شکل1-11

عنوان طرح: فناوري بازشناسي گفتار مقاوم در برابر نويز

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

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

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

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

از جمله ويژگي هاي اين طرح مي توان به موارد زير اشاره كرد:

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

  1. تنظيم آينه هاي بغل و عقب 2. كنترل بالابر شيشه ها 3. كنترل قفل كودك 4. كنترل روغن ترمز و موتور يا بنزين در حال حركت 5. كنترل راديو يا هر نوع رسانه ديگر در خودرو 6. كنترل برف پاك كن ها 7. تنظيم صندلي ها 8. كنترل چراغ ها 9. هر نوع دستور ديگر كه انجام آن نيازمند حركت اضافي راننده و يا سرنشينان است.

اين نرم افزار، به خوبي در محيط پر نويز، عمل مي كند. مثلا، در خودرويي با سرعت 100 كيلومتر در ساعت با شيشه هاي باز و در بزرگراه، تست شده و پاسخ مناسب گرفته است. ديگر مزيت اين نرم افزار، حجم بسيار پايين آن است كه به راحتي قابل برنامه ريزي بر روي يك IC است (نسخه دمو روي کامپیوترهای جیبی[37] به راحتي تا 100 فرمان را پردازش مي كند). نرم افزار مورد بحث، با اين مشخصات، در ايران مشابه ندارد و موارد موجود در دنيا نيزز مانند ویس کامند[38] در میکروسافت آفیس[39] ، حداقل نياز به پردازنده پنتیوم[40] با حجم زياد حافظه دارند. نكته ديگر اينكه اين نرم افزار، هوشمند بوده وو قابل آموزش دادن است و پس از آموزش (مثلا با صداي اعضاي يك خانواده) صداي هر كدام از آنها را كه بشنود (و در كل هر زماني كه كلمه يا فرمان راا بشنود) مستقل از اين كه چه كسي آن را ادا كرده است (صداي زن يا مرد، كلفت يا نازك) فرمان را اجرا مي كند.

1-5-2- سامانه هوش مصنوعی پارسه با نام تجاری (پایس) مشاور رباتیک (سیستم پیشرفته ترین سیستم هوش مصنوعی جهان)

مهندس مولوی مخترع و نابغه جوان ایرانی دانش فنی پیشرفته ترین هوش مصنوعی جهان را با عنوان سامانه پارسه تولید کرد و امسال در فینال مسابقات جام جهانی رایانه در کشور چین با شکست مایکروسافت، آی.بی.ام، ناسا و کمپانی های بزرگ دنیا توانست مقام نایب قهرمانی را پس از اینتل کسب کند. در نخستین بار حضور ایران در مسابقات جام جهانی اختراعات رایانه ای و رقابت با کمپانی های بزرگ و غول های رایانه ای جهان همچون میکروسافت، اینتل، IBM و دانشگاه های بلند آوازه جهان توانسته است پس از گذراندن 4 مرحله مقدماتی، طرح برتر قاره، طرح برتر 3 قاره و نیمه نهایی به فینال این رقابت ها راه پیدا کند و پس از پشت سر گذاشتن طرح هایی مانند: سیستم کنترل تمام هوشمند ایستگاه بین المللی فضایی آژانس تحقیقات فضایی آمریکا (Nasa)، یک طرح از مایکروسافت، بمب هوشمند رباتیکی ارتش فیلیپین، صفحه مانیتور کریستالی با قطر یک برگ کاغذ کمپانی LG و سیستم خبره هوشمند پزشک فوق تخصص برای همه بیماری ها کمپانی فیلیپس مقام نایب قهرمانی را کسب کند. این سیستم پیشرفته ترین سیستم هوش مصنوعی جهان است این سیستم در مقام مشاور شهردار تهران می باشد. و شهردار تهران نخستین شهردار در کشورهای جهان است که از پیشرفته ترین سیستم هوش مصنوعی در دنیا بهره خواهد برد. این سیستم قابلیت ها و توانمندی های زیادی دارد که از آن جمله می توان به این ویژگی های منحصر به فرد اشاره کرد: اطلاعات و آمار و ارقام ده ها متخصص، دانشمند و کارشناس شهرداری را یکجا و به صورت همزمان و آنلاین ارائه کند و در اختیار بگذارد، شهردار نیز با یک میکروفون اطلاعات لازم را از آن بخواهد. از سوی دیگر، قرار است این سیستم به سامانه 137 شهرداری نیز سوئیچ و متصل شود و به نحوی آن را هوشمند کند، به این ترتیب جای تمام کسانی را که در این حوزه کار پاسخگویی را انجام می دهند، بگیرد. این سامانه توانایی گرفتن اطلاعات از شهروندان و پاسخگویی به آنها را دارد و از طرف دیگر به طور مستقیم آن را در اختیار شهردار قرار می دهد این سیستم هوشمند یا همان سامانه پارسه در حقیقت به عنوان مغز کنترل کننده شهر الکترونیکی و مجازی تهران وارد عمل خواهد شد. به عبارت بهتر پایه و بنیان اولیه شهر مجازی و الکترونیکی تهران که مغز کنترل کننده هوشمند آن است در حال حاضر آماده و راه اندازی شد و شهردار با رایانه متصل به این سیستم هوشمند همانند یک انسان می تواند صحبت کند و اطلاعات را بگیرد. سامانه هوش مصنوعی پارسه با نام تجاری (پایس) یک نرم افزار رایانه ای مبتنی بر فناوری هوش مصنوعی است که با داشتن قابلیت های خاص و منحصر به فرد توانسته است بسیاری از آرزو های بشر در زمینه رویای هوش مصنوعی و رباتیک را تا حد بالایی به واقعیت تبدیل کند. این سامانه که با بهره گیری از زبان های مختلف برنامه نویسی نوشته شده است، توانایی درک گفتار طبیعی انسان را به فارسی و انگلیسی و به صورت کاملا محاوره ای، تولید گفتار به زبان های فارسی و انگلیسی (سخن گفتن)، شناسایی گوینده و تصدیق هویت گوینده از روی گفتار، قابلیت دستور پذیری و انجام کامل تمامی دستورات و اعمال در محیط رایانه (سیستم عامل های ویندوز) را با استفاده از گفتار محاوره ای به زبان های فارسی و انگلیسی، امکان گفت وگو با یک تصویر که می تواند حتی تصویر خود کاربر باشد و سامانه به صورت خودکار آن را پویانمایی و به صورت هماهنگ با گفتار به حرکت در خواهد آورد، قابلیت تصمیم گیری و انتخاب مبتنی بر الگو و دانش قبلی، قابلیت استنتاج و استدلال مبتنی بر دانش، قابلیت یادگیری، قابلیت تشخیص و حذف نویز های مخرب در سیگنال گفتار، امکان تایپ گفتاری متون به فارسی و انگلیسی، قابلیت کار در محیط تمامی نرم افزار ها و بازی های رایانه ای بدون محدودیت و به صورت کاملا گفتاری و آن هم به صورت گفتار محاوره ای معمولی را در قالب یک نرم افزار جامع فراهم کرده است. برای مثال کاربرد این سامانه نرم افزاری روی رایانه بدین گونه است که هنگامی که شما این نرم افزار را روی سیستم خود نصب می کنید، می توانید بدون استفاده از صفحه کلید و موس با رایانه کار کنید؛ بدین صورت که شما با گفتار محاوره ای و بسیار معمولی(همانگونه که در طول روز با دیگران صحبت می کنید، البته با در نظر گرفتن اینکه سیستم نمی تواند اصطلاحات شما را متوجه شود) می توانید با رایانه کار کنید. بدین معنا که مثلا برای باز کردن برنامه فتوشاپ فقط کافی است که به سیستم بگویید فتوشاپ روباز کن! تا این عمل انجام شود. البته سیستم های دستور دهی صوتی در جهان بسیار کار شده اند، اما تفاوت این سامانه با آنها این است که در آن سیستم های گذشته نمی توان گفت که کل سیستم به صورت گفتار کار می کند بلکه آنها مثلا در بازی های رایانه ای و یا محیط داخلی نرم افزار ها عمل نمی کردند ولی سامانه هوش مصنوعی پارسه کاملا و می توانم بگویم به طور قطعی صفحه کلید و موس را از رایانه حذف می کند. مزیت بارز دیگر این سیستم در این است که درصد تشخیص گفتار آن بسیار بالا و خطای آن بسیار پایین است و تقریبا تمامی گفتار شما را متوجه می شود. همچنین شما می توانید با آن به طور محاوره ای و معمولی سخن بگویید و سیستم به طور هوشمند متوجه خواسته شما خواهد شد. همچنین در این سیستم شما می توانید با تصویر پویانمایی شده یک صورت صحبت کنید، درد دل کنید، از آن مشاوره بخواهید و همچنین به آن دستور بدهید تا آن هم با شما صحبت کند و عکس العمل نشان دهد. سیستم می تواند سیگنال گفتار شما را شناسایی و شما را تشخیص هویت کند و بسیاری از قابلیت های دیگر که باعث کاربردی تر شدن آن در رایانه می شود. برای مثال اگر شما می خواهید در رایانه متنی را تایپ کنید کافی است به رایانه دستور دهید که مثلا زودباش برنامه ورد را باز کن. یا مثلا بگویید می خواهم یک متن را تایپ کنم. تا سیستم آماده تایپ شود و سپس شما متن خود را بخوانید تا سیستم آن را تایپ کند و در آخر آن را غلط گیری کنید و دستور چاپ آن را بدهید؛ این یک نوع عملکرد این سیستم است و بسیاری از کاربردها و قابلیت های دیگر و مهم این سیستم آن است که سامانه هوش مصنوعی پارسه به دلیل برخورداری از قدرت انتخاب، تصمیم گیری، استدلال و استنتاج و همچنین بازشناسی الگو و به طور عامیانه استفاده از تجربه قبلی می تواند به عنوان یک سیستم هوشمند در هواپیما، اتومبیل، سیستم های فضایی، و… به عنوان کنترل کننده جایگزین انسان گردد. همچنین نصب این سیستم بر روی تلویزیون با موفقیت صورت پذیرفت. تلویزیون های هوشمند طرح پارسه می توانند بدون وجود ریموت کنترل و فقط به صورت گفتاری کنترل شوند، می توانند با شما گفت وگوکنند و با شما صحبت کنند و همچنین شما می توانید تصویر صورت خود را به وسیله یک حافظه فلش به تلویزیون بدهید تا سیستم به طور خودکار آن را پویا نمایی و سخنگو کند و شما بتوانید با آن عکس صحبت کنید.

1-5-3- نرم افزار مترجم صوتی گفتار به گفتار زبان فارسی پارسیا:

این نرم افزار تشخیص گفتار مستقل از گوینده، امکان ترجمه مستقیم گفتار فارسی به گفتار معادل در زبان های انگلیسی و عربی فراهم شد. (مهندس باقر بابا علی، دانشجوی دکتری کامپیوتر دانشگاه صنعتی شریف و مدیر بخش تحقیقات شرکت SPL دانشگاه صنعتی شریف سازنده این نرم افزار) درباره کاربردهای نرم افزار افراد می توانند بدون دانستن زبان خارجی نیازهای ابتدایی خود را برآورده کنند. برای مثال برای پرسیدن ساعت صبحانه، مراکز خرید، یک رستوران خوب یا قیمت لباس می توان به زبان فارسی صحبت کرد و رایانه بعد از درک کلمه، معادل آن در زبان مقصد را بیان می کند. جنبه دیگر این نرم افزار کمک به آموزش زبان و یادگیری عبارات مورد استفاده در مکالمات روزمره است . در مترجم صوتی گفتار به گفتار «پارسیا» جملات و عبارات بیان شده توسط کاربر مستقیما به گفتار معادل در زبان های انگلیسی و عربی ترجمه و بیان می شود تا به زبان مورد نظر ترجمه شود. در نسخه جاری این نرم افزار گفتار فارسی مستقیما به گفتار معادل در زبانهای انگلیسی و عربی ترجمه می شود. ویژگی و هسته اصلی این مترجم، یک سیستم تشخیص خودکار گفتار فارسی است که گفتار کاربر را پردازش کرده و آن را تشخیص می دهد، سپس گفتار تشخیص داده شده به معادل خود در زبان مقصد برگردانده می شود. این ویژگی «پارسیا» را به عنوان اولین نرم افزار فارسی با قابلیت تشخیص گفتار از همه نرم افزارهای دیگر متمایز می کند. این نرم افزار در دو نسخه قابل نصب نسخه روی pc و قابل نصب کامپیوترهای جیبی (pda) توسعه داده شده است .

1-5-4- نرم افزار نویسا:

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

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

مزیت‌های استفاده از سیستم تایپ گفتاری نویسا:

صرفه‌جویی در زمان، کاهش هزینه، افزایش سرعت تایپ و ورود اطلاعات، حفظ امنیت اطلاعات در هنگام ورود داده‌ها، قابلیت استفاده در بسیاری از سیستم‌های (مستندسازی، ترجمه گفتاری و …)، جلوگیری از اشتباهات تایپی یک نسخه از این سیستم بر روی یک رایانه نصب می‌شود و می‌تواند با صدای کاربران آموزش داده شود. این سیستم دارای لوازم جانبی از جمله میکروفن ویژه تشخیص گفتار می‌باشد. این سیستم شامل نصب و آموزش در محل به صورت رایگان می‌باشد. سیستم شامل 18 ماه ضمانت و 5 سال خدمات پس از فروش می‌باشد. پشتیبانی سرویس دهنده تا 6 ماه رایگان می‌باشد اما پشتیبانی[42] ها شامل هزینه می‌باشد.

مشخصات و ویژگی‌های سامانه تایپ گفتاری نویسا به صورت زیر است:

دقت تشخیص 95% در محیط اداری، تشخیص و تایپ متن به صورت بی درنگ، قابلیت تشخیص جملات به صورت طبیعی و پیوسته شامل حدود 21 هزار کلمه پر کاربرد زبان فارسی، دارای ویرایشگر ویژه جهت استفاده برای تایپ گفتاری و ویرایش راحت‌تر قابلیت استفاده در اغلب محیط‌های تایپ رایج مانند میکروسافت ورد[43]، نت پد[44] و …، قابلیت استفاده در فرم‌ها یا قسمت‌هایی که امکان تایپ فارسی دارند، قابلیت ویرایش متون در هنگام تایپ گفتاری یاا بعد از آن، امکان استفاده از تایپ برای کلمات خاص، لاتین یا عربی در هنگام استفاده از سیستم گفتاری، قابلیت اضافه نمودن کلماتی که در بانک کلماتت سیستم موجود نیستند (مانند اسامی خاص)، قابلیت تشخیص علایم خاص مانند نقطه، علامت سوال و علامت تعجب به صورت صوتی، علاوه بر اطلاعات آوایی، در این سیستم مشابه انسان، از اطلاعات زبانی مانند معنی و ترتیب کلمات برای فهم جمله بیان شده استفاده شده است. قابلیت تخصصی نمودن دایره کلمات برای کاربردهای خاص وجود دارد و کلمات تخصصی یا کلمات خاص به سیستم اضافه می‌شود. همچنین می‌توان سیستم را با متن‌های آن کاربرد خاص تطبیق نمود تا کارایی سیستم برای این منظور بهبود یابد. اختصاصی نمودن سیستم برای کاربردهای خاص مستلزم هزینه اضافی است که به هزینه سیستم اضافه می‌شود.

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

1-5-5- نرم افزار مبتنی بر سیستم تشخیص گفتار پیوسته فارسی نرم افزار «نیوشا» :

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

1-5-6- [45] C Voice Control: در سیستم عامل لینوکس استفاده می شود و امکان اجرای دستورات را بوسیله فرامین صوتی فراهم می کند.

1-5-7- کامندر گیم[46]: برنامه ای است مستقل از گوینده و بدون نیاز به آموزش که با ایجاد فرمانهای صوتی برخی بازی های مشهور ویندوز را کنترل می کند.

1-5-8- IBM Via Voice[47] : تنها نرم افزاری است که سیستم عامل لینوکس را پشتیبانی می کند.

1-5-9- نرم افزار مدل مخفی مارکوف می یر[48]: نرم افزاری است که توسط ریچارد می یر با الگوی HMM نوشته و طراحی شده است و برای کاربران حرفه ای کاربرد دارد.

1-5-10- فناوری استفاده شده در ویندوز ویستا و ویندوز XP :که در قالب برنامه های ورد XP و ورد 2002 به بعد، ارائه شده است.

1-5-11- ابزار مترجم جهانی Via II : شرکت Via یک مترجم زبانی را توسعه داده است که در اختیار انگلیسی زبانان قرار گرفته است که البته این محصول در تعداد انبوه وارد بازارنشده است.این ابزار که نوعی سخت افزار است وسیله ای به اندازه یک گوشی تلفن با عملکرد PC که به کمر کاربر متصلل می شود یا در جیب لباس وی قرار می گیرد.Via II با یک نرم افزار تشخیص صدا سازگار است و با داشتن در گاه USB حتی امکان اتصال به ادوات جانبی را هم دارا است.این ابزار با قدرت شناسایی مجموعه گسترده ای از زبانها نظیر کره ای،صربستانی،عربی،تایلندی،چینی،و… ارائه می شود .این سیستم برای کاربران انگلیسی زبان طراحی شده است که قادر است صدای کاربر را شناسایی کندو به زبان مقصد ترجمه کندو از طریق بلندگو پخش کند و همچنین در مدت زمان کوتاهی قادر است که پاسخ فرد مخاطب را به انگلیسی ترجمه کند که به این ترتیب یک ترجمه دو طرفه انجام می شود.

1-5-12- فناوری تشخیص گفتاری برای کودکان

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

HEAD

شکل 1-12

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

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

1-5-13- ساخت دستگاه هوشمند جهت جداسازی پسته های پوک از مغزدار با استفاده از پردازش صدا و شبکه های عصبی :

اجزای این دستگاه شامل جعبه صدا، میکروفن، نرم افزار پردازش سیگنال، مکانیسم انتقال و جداسازی پسته می باشد انعکاس صدای برخورد پسته با یک صفحه فولادی در حالت آف لاین[49] از دو ارتفاع برخورد 25 سانتیمتر و 35 سانتیمتری توسط سیستم خودکار استحصال داده توسط میکروفن جمع آوری وو به رایانه منتقل می شود سیگنال های صدای برخورد در دو حوزه زمان، فرکانس مورد پردازش قرار گرفته و در هر حوزه بردارها مشخصات مناسب استخراجج می شود از شبکه عصبی پرسپترون چند لایه جهت جداسازی استفاده شده است. این دستگاه پسته های پوک را دقت 93 درصد و پسته های مغزدار را با دقت 94 درصد جدا می سازند.

1-5-14- تلفنی که دستورات گفتاری کاربر را اجرا می کند:

 

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

وظیفه اصلی این تلفن بی سیم تبدیل گفتار انسان به سیگنال های دیجیتالی و بالعکس می باشد استفاده از دستورات گفتاری برای شماره گیری و کنترل سایر وظایف در بعضی از گوشی های گران قیمت متداول بوده است. اما تلفن SPH-p207 سامسونگ اولین تلفنی است که از فناوری تشخیص گفتار برای دیکته یک متن استفاده می کند. قیمت این گوشی 200 دلار است و با شرکت وایرلس سینگیولار[50] قرار داد دو ساله دارد .

1-5-15- دقت 99 درصدي نرم‌‏افزارهاي تشخيص صدا:

شركت اسكن سافت, نرم افزار جديد تشخيص صداي خود را با دقت بسيار بالاتر طراحی کرد نرم‌‏افزار تشخيص صدا را تحت عنوان[51]DNP8 به بازار عرضه كرد. اين شركت آمريكايي ادعا مي‌‏كند: نمونه جديد در ضبط صداي كاربر نسبت به نمونه قبلي 25 درصد دقيق‌‏تر عمل مي‌‏كند. شركت اسكن سافت, با ادعاي اينكه نرم‌‏افزار جديد در 99 درصد موارد صداي كاربران را به طور دقيق ضبط و پردازش مي‌‏كند، اعلام كرد: كاربران مي‌‏توانند صداي خود را بر روي تنگستن[52] يا ديگر تجهيزات نظيرPC هاي جيبي و تجهيزات ضبط ديجيتالC ضبط كنند و بعد با انتقال آن به نرم افزار جديد اين شركت آن را به متن تبديلل كنند

      1. استفاده مایکروسافت از فناوری تشخیص گفتار:

این شرکت سال قبل شرکت نتورکس تل می[53] را خرید. حال با ترکیب فناوری تشخیص گفتار این شرکت با سرویس های موقعیت یاب جهانی (GPS) تحولی در این زمینه ایجاد کرده طوری که کاربران سرویس مذکور با گفتن کلمه «سینما» به نزدیک ترین سینمای محل حضورشان راهنمایی خواهند شد.. آنها می توانند فقط با گفتن نام فیلمی که خواستار دیدنش هستند، پیش از رسیدن به محل سینما بلیط آن رزرو کنند.

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

1-6- ضعف ها و محدودیت های سیستم های تشخیص گفتار

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

1-6-1- ورود سرو صدای محیط[54]

awqqqqq2222

شکل1-13

برنامه باید واژه هایی که ادا می شوند به طور واضح بشنود هرنوع صدای اضافی همزمان با صدای گوینده وارد شود می تواند با واجهای صوتی اشتباه گرفته شود و در این فرایند تداخل ایجاد کند. منبع ایجاد نویز می تواند بسیار گوناگون باشد. مثل نویز موجود در صدای پس زمینه دریک محیط اداری و شلوغ که برای حذف آنها درهنگام استفاده کاربران باید در یک مکان نسبتاً آرام مستقر شوند و از میکروفن با کیفیت (مثل میکروفونهای نویز پخ[55]) استفاده کنند و یا در هنگام صحبت میکروفن را در نزدیکی دهان خود قرار دهند.

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

امروزه با بکار گیری” نرم افزار بهبود کیفیت ” به همراه این فناوری تا حد زیادی سروصدای محیط و خش های اضافی قابل حذف شدن می باشد. این محصول می تواند هم به صورت نرم افزاری مستقل مورد استفاده قرار گیرد و هم به صورت یک امکان مجزا برای بهبود کیفیت گفتار و در نتیجه بهبود کارایی و دقت در نرم افزارهای دیگر بکار گرفته شود. این نرم افزار یکی از محصولات گروه SPL دانشگاه صنعتی شریف می باشد.

1-6-2- اثرگذاری کلمات بر یکدیگر و نحوه تلفظ آنها

21

شکل1-14

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

1-6-3-کلمات متشابه[56]

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

1-6-4- ایجاد سرو صدا

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

1-7- اصول تشخیص و سنتز گفتار

اصول تشخیص و سنتز گفتار در 5 مرحله انجام مي گيرد :

1-    ورودي كاربر :

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

2-  رقمي سازي[57]

در اين مرحله، سيگنال صوتي آنالوگ به سيگنال ديجيتال تبديل مي شود.

3-  تجزية اجزاي صدا[58]

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

هر زبان مجموعه اي از صداهاي مختلف تشكيل شده است كه به هر كدام از اين اصوات يك واج گفته مي شود. تركيب واجها سيلاب يا هجاء را تشكيل مي دهد و از تركيب چند هجاء لغات به وجود مي آيند. هر واج را مي توان بصورتي  يك الگوي مشخص در دستگاه اسپكتروگرام شناسايي كرد. تشخيص هر واج نيازمند به تمركز زيادي بر روي انرژي صوت دارد كه آن را فرمانت[59] مي نامند. فرمانت داراي خصوصيات افزايش و كاهش تدريجي[60] در تمامم فركانسها مي باشد كه يكي از ويژگي هاي برجستة صداي انسان است.

اسپكتروگرام در تحليل صدا به ما كمك مي كند. گفتار انسان از نوسانات صوتي حنجره ايجاد مي شود. اگرچه واجها در يك موج صوتي قابل شناسايي نيستند، اما موج صوتي را مي توان به فركانسهاي تشكيل دهندة آن تجزيه كرد و در يك اسپكتروگرام آن را نمايش داد. محور عمودي در اسپكتروگرام فركانسهاي بالاي 8000 هرتز را نمايش مي دهد و محور افقي بيانگر گذشت زمان مي باشد. رنگها نشانگر اهميت قله هاي صوتي صدا مي باشند. تغيير واجهاي يك لغت معني آن لغت را تغيير مي دهد. به عنوان مثال تفاوت دو كلمة Fat و Vat در يك واج مي باشدكه تغيير آن باعث تغيير معني لغت مي شود. در زبانهاي مختلف، لهجه هاي مختلف باعث تلفظ لغات بصورت مختلف مي شود. در زبان انگليسي 38 واج وجود دارد.

4-  مدل كردن آماري

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

يك واژه نامه براي نگه داشتن طرز تلفظ لغات استفاده مي شود. ماشين تشخيص گفتار از اين فرهنگ، استفاده مي كند.

5-  تطبيق دادن[61]

نرم افزار تشخيص گفتار تلفظهاي تشخيص داده شده را بر اساس لغات و عباراتي كه بصورت گرامري براي آن تعريف شده است تطبيق مي دهد. به عنوان مثال در يك نرم افزار صوتي مسافرتي، كاربر ممكن است كلمة ”درجه 2“ را براي رزرو كردن يك صندلي كه از نظر اقتصادي با صرفه تر است بكار ببرد، اما اگر كلمة ”درجه 2“ در نرم افزار مربوطه معادلي براي ”درجة اقتصادي“ نباشد، نرم افزار نمي تواند آن را بپذيرد.

تكنولوژي مدل سازي زبانها براي افزايش درصد درستي بكار برده مي شود. بطوريكه صداهاي تشخيص داده شده بوسيلة ليستي از قانونها، صداهاي بعد از خودشان را پيش بيني مي كنند. در اين سيستم ليستي بر اساس لغات يا عبارات تطبيق داده شده با جملات گفته شده به همراه ضريب اطمينان[62] بازگردانده شود. يكي از روشهاي رايج پياده سازي،  استفاده از مدل مخفي ماركوف HMM مي باشد. مدل مخفي ماركوف، بر اساس مدل رياضي پردازشش سيگنال ديجيتال مي باشد و يك سيستم پيچيده بر اساس مجموعه حالتهاي متناهي[63] را توصيف مي كند. اين حالتها شرايط رفتن از يك حالت به حالتت بعدي را بيان مي كنند. از مدل HMM براي پيش بيني زنجيره هاي پنهان استفاده مي شود. به عنوان مثال مي توان از اطلاعات صوتي كه بوسيلةة ميكروفون دريافت شده و به سيستم ارسال مي شو درا به صورت يك زنجير تلقي كرد.

1-8- صدا در کامپیوترهای شخصی:

مدت زیادی از ورودی صدا به دنیای کامپیوتر می گذرد و در این مدت تکنولوژی های مربوط به پردازش صوت پیشرفت های چشمگیری داشته اند. از زمان ورود صدای واقعی به دنیای کامپیوتر تکنولوژی های پردازش صوت تغییرات عمده ای را پشت سر گذاشته اند، این تغییرات شامل قوی تر شدن پردازنده های صوتی، بالا رفتن کیفیت ضبط و نمونه برداری صدا و … می باشد.

صدا در کامپیوتر در قالبهای مختلفی ایجاد و نگهداری می شود. به عنوان مثال در فرمت Mid اطلاعات صوتی بصورت نت ذخیره می شوند، یعنی اطلاعات مربوط به هر ساز، به همراه ساز، نت ها و سایر اطلاعات، جداگانه ذخیره می شوند ولی در فرمت Wav اطلاعات صوتی بصورت طول موج های صدا ذخیره می شود و صداها قابل تفکیک نیستند. تعدادی از مهمترین فرمتهای صوتی به این شرح است:

RA,Wma,Mp3,Wav,Mid ,…

اصول کارکرد دیجیتالی کردن صدا:

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

کوانتیزه کرن یا تقریب زدن[64] : برای آنکه هر سیگنال آنالوگی را بتوان به سیگنال دیجیتال تبدیل کرد قبل از هرکاری باید تعداد سطوح ممکن را مشخص کرد. همانطور که می دانیم در یک سیگنال دیجیتال سطوح ممکن 2 سطح است (صفر یا یک مثلا معادل با برق صفر ولت و 20 ولت). اما در سیگنال آنالوگگ یک سیگنال می تواند بین دو سطح مثلا صفر تا 20 ولت هر مقدار ممکنی داشته باشد، مثلا 15/7 ولت. برای اینکه بتوان چنین سیگنالی را به سیگنال دیجیتال تبدیل کرد در گام اول باید فرض کرد سیگنال موردنظر بین دو مقدار حداقل و حداکثر خود چه تعداد سطح دارد. به عنوان مثال برای کاربردهای تلفنی فرض می شود که یک سیگنال آنالوگ می تواند معادل یکی از 256 سطح بینابینی باشد و در غیر اینصورت سطح سیگنال در یک لحظه خاص به نزدیکترین مقدار سطح ولتاژ گرد می شود.

نمونه برداری[65]:

در مرحله بعد تعیین می شود که سیگنال آنالوگ باید در چه فاصله زمانی نمونه برداری شود. هر چه تعداد نقاط نمونه برداری بیشتر باشد دقت عملیات تبدیل و کیفیت سیگنال دیجیتال بدست آمده بالاتر خواهد بود. به مثال در سیستم های آنالوگ در هر ثانیه 4000 بار از سیگنال آنالوگ نمونه برداری می شود (تا بعد تعیین شود که در هر یک از این لحظه ها سطح سیگنال معادل کدام یک از آن 256 سطح ممکن است). در هر ثانیه چهار هزار بار نمونه برداری یعنی سرعت نمونه برداری معادل 4KHz است. این عدد در استانداردهای صوتی امروز بسیار پائین است. بد نیست بدانید که سرعت نمونه برداری برای یک سیگنال صوتی مربوط به موسیقی در حد کیفیت FM معادل KHz 22 و برای سیستم های صوتی با کیفیت CD معادل با KHz 44 است.

کدگذاری[66] :

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

به منظور فهم بیشتر مراحل دیجیتالی کردن صدا، به مثال زیر توجه کنیم:

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

  1. کوانتیزه کردن: تنها 8 سطح اندازه گیری در نظر می گیریم و مقدار آستانه را مقدار میانی هر سطح ولتاژ داریم.
  2. نمونه برداری: عمل نمونه برداری بوسیله ضرب موج اصلی در یک تابع مخصوص انجام می شود:

شکل 1-15

شکل موج X(t) :

X(t)=sin(t)

شکل موج نمونه برداری Y(t):

فاصله نمونه برداری اینطور تعیین می شود:

=4KHz= F ماکسیمم فرکانس موج ورودی (موج مکالمه)

2*F=8KHz

میکرو ثانیه =T=125 دوره تناوب

حاصلضرب دو تابع:

  1. کدگذاری: در این مرحله با توجه به اینکه 8 سطح ولتاژ فرض کرده ایم عمل کدگذاری را انجام می دهیم.

شکل 1-16

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

فصل دوم – پردازش صوت

2-1- دستگاه شنوایی انسان

12536195106200931662157976218215364133

شکل2-1

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

گوش انسان یک عضو به گونه‌ای فزاینده پیچیده است. قضیه وقتی پیچیده‌تر می‌شود که اطلاعات ارسالی از دو گوش در یک شبکه‌ی پیچیده‌ی گیج کننده که همانا مغز انسان باشد با هم ترکیب می‌شوند. به یاد داشته باشیم که بیان فوق یک گذر کلی بر قضیه است و تعداد زیادی از پدیده‌ها و آثار دقیق مرتبط با گوش انسان هنوز به درستی درک نشده‌اند.

شکل 2-1 قسمت اعظم ساختارها و پردازشهایی را که گوش انسان را در بر دارند به تصویر می‌کشد. گوش خارجی از دو بخش تشکیل شده است: نرمی پوست قابل مشاهده و غضروف متصل به کنار سر و کانال گوش که لوله‌ایست به قطر تقریبی ۰.۵ سانتیمتر و تا حدود ۳ سانتیمتر در داخل سر فرو می‌رود. این ساختارها صداهای محیط را به بخشهای حساس گوش میانی و گوش داخلی که در درون استخوانهای جمجمه محافظت می‌شود راهبری می‌کنند. در انتهای کانال گوش یک ورقه‌ی نازک از نسوج که پرده‌ی صماخ یا طبل گوش نامیده می‌شود کشیده شده است. امواج صدا با برخورد به پرده‌ی صماخ باعث لرزش آن می‌شوند. گوش میانی مجموعه‌ای از استخوانهای کوچک است که لرزش مزبور را به حلزون گوش(گوش داخلی) انتقال می‌دهند و در آنجا این لرزشها تبدیل به ضربه‌های عصبی می‌گردند. حلزون گوش یک لوله‌ی پر از مایع است که به زحمت قطر آن به ۲ میلیمتر و طول آن به ۳ سانتیمتر می‌رسد. اگر چه حلزون گوش در شکل شماره ۱ به صورت یک لوله‌ی مستقیم نشان داده شده اما در واقع به دور خودش همانند صدف حلزون پیچ خورده است و وجه تسمیه‌ی آن که ریشه در کلمه‌ای یونانی به معنای حلزون دارد نیز این واقعیت است.

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

گوش میانی یک شبکه‌ی تطبیق مقاومت است که کسر انرژی صوتی وارد شده به مایع گوش داخلی را زیاد می‌کند. برای نمونه ماهی پرده‌ی صماخ یا گوش میانی ندارد چرا که نیازی به شنیدن در هوا ندارد. تغییر شدت، بیشتر ناشی از تفاوت مساحت پرده‌ی صماخ (که صدا را از هوا دریافت می‌کند) و دریچه بیضوی (که مطابق شکل ۱صدا را به داخل مایع انتقال می‌دهد) می‌باشد. مساحت پرده‌ی صماخ حدوداً ۶۰ میلیمتر مربع است حال آن که دریچه‌ی بیضوی حدوداً ۴ میلیمتر مربع مساحت دارد. از آنجا که فشار برابر است با نسبت نیرو به مساحت، این تفاوت مساحت فشار موج صدا را حدوداً ۱۵ برابر افزایش می‌دهد.

در داخل حلزون گوش پرده‌ی اصلی قرار دارد که ساختاری را برای ۱۲۰۰۰ سلول حسی که شکل‌دهنده‌ی عصب حلزونی است ایجاد می‌کند. پرده‌ی اصلی در نزدیکی دریچه‌ی بیضوی بسیار سفت است و در انتهای دیگر انعطاف‌پذیر‌تر است که این امر به این عضو کمک می‌کند تا به عنوان تحلیلگر طیف فرکانسی عمل کند. وقتی پرده‌ی اصلی در معرض یک سیگنال با فرکانس بالا قرار می‌گیرد در قسمت سفت‌تر طنین می‌اندازد که سبب تحریک سلولهای عصبی نزدیک به دریچه‌ی بیضوی می‌گردد. به همین ترتیب فرکانسهای پایین موجب تحریک انتهای دورتر پرده‌ی اصلی می‌شوند. این امر موجب پاسخگویی رشته‌های خاص عصب حلزونی در برابر فرکانسهای خاص می‌گردد. این سازوکار اصل مکان نامیده می‌شود و در سراسر مسیر به سمت مغز حفظ می‌شود.

طرح کدگذاری اطلاعات دیگری نیز در شنوایی انسان به کار می‌رود که اصل رگبار نامیده می‌شود. سلولهای عصبی اطلاعات را با تولید پالسهای الکتریکی کوچکی که پتانسیل کنش نامیده می‌شوند انتقال می‌دهد. یک سلول عصبی واقع بر پرده‌ی پایینی می‌تواند اطلاعات صوتی را با تولید یک پتانسیل کنش در پاسخ هر سیکل لرزش کدگذاری کند. برای نمونه یک موج صدای ۲۰۰ هرتزی می‌تواند توسط یک نورون ایجاد کننده‌ی ۲۰۰ پتانسیل کنش در ثانیه نشان داده شود. در هر صورت این روش تنها در فرکانسهای زیر حدوداً ۵۰۰ هرتز – بالاترین سرعت ممکن تولید پتانسیل کنش در نورونها – به کار می‌آید. گوش انسان برای غلبه بر این مشکل به نورونها اجازه می‌دهد که برای انجام این کار دسته‌جمعی عمل کنند. برای نمونه یک صدای ۳۰۰۰ هرتزی می‌تواند توسط ده سلول عصبی که هر کدام ۳۰۰ ضربه در ثانیه علامت می‌دهند نشان داده شود. این پدیده بازه‌ی کارایی اصل رگبار را تا ۴ کیلوهرتز گسترش می‌دهد که بالاتر از بازه‌ی عملیاتی اصل مکان می‌باشد.

sp-image04.jpg

شکل2-2- توضیحات مربوط به شکل: نمودار کارکردی گوش انسان. گوش خارجی امواج صوتی را از محیط می‌گیرد و آنها را به سوی پرده‌ی صماخ (طبل گوش) که ورقه‌ی نازکی از بافت است و هماهنگ با شکل موج هوا می‌لرزد راهبری می‌کند. استخوانهای گوش میانی (استخوانهای چکشی، سندانی و رکابی) این لرزشها را به دریچه‌ی بیضوی که پرده‌ای منعطف واقع در حلزون گوش پر از مایع است انتقال می‌دهند. در داخل حلزون گوش پرده‌ی اصلی قرار دارد که ایجاد کننده‌ی ساختاری برای ۱۲۰۰۰ سلول عصبی شکل‌دهنده‌ی عصب حلزون گوش است. بسته به سفتی متغیر پرده‌ی پایینی، هر سلول فقط به بازه‌ی کوچکی از فرکانسهای صدا پاسخ می‌دهد که این پدیده گوش را تبدیل به یک تحلیلگر طیف فرکانسی می‌نماید.

شکل شماره 2-۲ رابطه‌ی بین شدت صدا و بلندی مشاهده شده را نشان می‌دهد. غالباً شدت صدا را با یک اندازه‌ی لگاریتمی که دسی‌بل اس.پی.ال (سطح توان صدا) نامیده می‌شود نشان می‌دهند. در این معیار۰ دسی‌بل اس.پی.ال موج صدایی با قدرت ده به توان منفی شانزده وات بر سانتیمتر مربع است که حدوداً ضعیف‌ترین صدای قابل تشخیص توسط گوش انسان است. صحبت معمولی حدوداً ۶۰ دسی‌بل اس.پی.ال است و صدایی با شدت ۱۴۰ دسی‌بل اس.پی.ای برای گوش دردناک و زیان‌آور است

.sp-image05.jpg

شکل شماره 2-3 – واحدهای شدت صدا. شدت صدا به صورت توان بر واحد مساحت تعریف می‌شود (مثلاُ وات بر سانتیمتر مربع) یا به صورت معمول‌تر با استفاده از یک اندازه‌ی لگاریتمی که دسی‌بل اس.پی.ال خوانده می‌شود. همچنان که این جدول نشان می‌دهد قوه‌ی شنوایی انسان بیشتر به صداهای بین ۱کیلوهرتز تا ۴ کیلوهرتز حساس است.

اختلاف بلندترین و ضعیف‌ترین صداهایی که انسان می‌تواند بشنود ۱۲۰ دسی‌بل است که از لحاظ دامنه معادل بازه‌ای حدود یک میلیون است. شنونده تغییر بلندی صدا را وقتی صدا حدود ۱ دسی‌بل (۱۲% در دامنه) تغییر کند تشخیص می‌دهد به عبارت دیگر تنها ۱۲۰ سطح بلندی صدا از ملایم‌ترین نجوا تا بلندترین تندر قابل تشخیص است. حساسیت گوش آنقدر جالب توجه است که هنگام شنیدن به ضعیف‌ترین صداها پرده‌ی صماخ به اندازه‌ای کمتر از قطر یک ملکول به لرزش در‌می‌آید!

احساس بلندی صدا با توان صدا رابطه‌ی توانی با نمای ۱/۳ دارد. به عنوان نمونه اگر شما توان صدا را ده برابر کنید شنوندگان آن صدا دو برابر شدن بلندی صدا را احساس و گزارش می‌کنند.

این مسأله یک مشکل بزرگ برای حذف صداهای محیطی ناخواسته به وجود می‌آورد. برای نمونه فرض کنید که شما ۹۹% دیوار را با عایق صوتی پوشانده‌اید و تنها ۱% که مربوط به درها، گوشه‌ها، منافذ و… هستند باقی مانده‌اند. با وجود آن که توان صدا تا اندازه‌ی ۱% مقدار اولیه‌ی آن کاسته شده بلندی صدا تنها به اندازه‌ی ۲۰% کاهش پیدا کرده‌است.

بازه‌ی شنیداری انسان بین ۲۰ هرتز تا ۲۰ کیلوهرتز در نظر گرفته می‌شود، حال آن که بیشتر صداهای قابل حس در بازه‌ی ۱ کیلوهرتز تا ۴ کیلوهرتز قرار دارند. برای نمونه شنوندگان می‌توانند صدایی به میزان صفر دسی‌بل را در فرکانس ۳ کیلوهرتز بشنوند حال آن که برای شنیدن یک صدای ۱۰۰ هرتزی حداقل مقدار آن باید ۴۰ دسی‌بل باشد. شنوندگان می‌توانند بگویند که دو صدا متفاوتند اگر فرکانس آنها بیش از حدود %۰.۳ در ۳ کیلوهرتز متفاوت باشد. به عنوان نمونه کلیدهای کنار هم در پیانو به اندازه‌ی حدود ۶% تفاوت فرکانس دارند.

مهم‌ترین مزیت داشتن دو گوش تشخیص جهت صداست. شنوندگان انسانی می‌توانند تفاوت بین دو منبع صدا را که فاصله‌ای به کمی ۳ درجه دارند (حدوداً برابر با عرض یک انسان در فاصله‌ی ده متری) تشخیص دهند. این اطلاعات جهتی به دو روش جداگانه به دست می‌آیند. اولاً فرکانسهای حدوداً بالای ۱ کیلوهرتز به شدت زیر سایه‌ی سر قرار می‌گیرند. به بیان دیگر گوشی که به منبع نزدیک‌تر است سیگنال قوی تری را به نسبت گوشی که در جهت مخالف دارد دریافت می‌کند. روش دیگر تشخیص جهت آن است که گوش دورتر به خاطر فاصله‌ی بیشترش از منبع صدا را کمی دیرتر از گوش نزدیک‌تر دریافت می‌کند. به واسطه‌ی اندازه‌ی معمول سر (حدوداً ۲۲ سانتیمتر) و سرعت صوت (حدود ۳۴۰ متر در ثانیه) تفاوت‌گذاری زاویه‌ای سه درجه دقت زمانی حدود ۳۰ میکروثانیه نیاز دارد. چون این فاصله‌ی زمانی نیازمند اصل رگبار است این روش جهت‌یابی برای صداهای دارای فرکانس کم‌تر از حدود ۱ کیلوهرتز به کار می‌رود.

در حالی که قوه‌ی شنوایی انسان می‌تواند جهت صدا را تشخیص دهد در نشخیص فاصله‌ی منبع صدا مشکل دارد. این امر بدان علت است که چیزهای کمی در موج صدا وجود دارد که اطلاعات این گونه را در اختیار بگذارد. شنوایی انسان به صورت ضعیفی در می‌یابد که منابع صداهای با فرکانس بالا نزدیکند و صداهای با فرکانس پایین از فاصله‌ی دورتری پخش می‌شوند. این به آن دلیل است که صداها در فاصله‌های دور از میزان فرکانسشان کاسته می‌شود. پژواک روش ضعیف دیگری برای تشخیص فاصله است و با استفاده از آن مثلاً می‌توان ابعاد یک اتاق را حدس زد. برای نمونه صداهای موجود در یک تالار بزرگ پژواکهایی با وقفه‌ی ۱۰۰ میلی ثانیه دارند، حال آن که برای یک دفتر کار کوچک این مقدار ۱۰ میلی ثانیه است. بعضی از موجودات با استفاده از دستگاه طبیعی تشخیص فاصله‌ی صوتی مسأله‌ی فاصله‌یابی را حل کرده‌اند. مثلاً خفاشها و دلفینها صداهایی مثل تیک و جیغ تولید می‌کنند که از سوی اشیاء نزدیک بازتابیده می‌شوند. با اندازه‌گیری میزان وقفه‌ی بازتاب این صدا‌ها این جانوران می‌توانند با دقت ۱سانتیمتر اشیاء را مکانیابی کنند. تجربیات نشان داده‌اند که بعضی انسانها به خصوص نابینایان تا حد کمی از روش مکانیابی با استفاده از پژواک استفاده می‌کنند.

2-2- ویژگیهای امواج صوتی

4

شکل2-4

غالباً برای درک یک صوت پیوسته مثل نت یک ابزار موسیقیایی سه بخش مجزا را باید تشخیص داد: بلندی صدا، زیری یا بمی صدا (پیچ) و طنین صدا. بلندی همانگونه که قبلاً توضیح داده شد معیاری برای شدت موج صوتی است. پیچ، فرکانس جزء اصلی صدا – فرکانسی تکرار موج صوتی توسط خودش – می‌باشد.

طنین صدا از دو جزء قبلی پیچیده‌تر است و با تعیین محتوای همساز صدا تعیین می‌گردد. شکل شماره ۳ دو موج را که هر دو از جمع یک موج سینوسی یک کیلوهرتزی با دامنه‌ی یک و یک موج سینوسی سه کیلوهرتزی با دامنه‌ی یک دوم به وجود آمده‌اند نشان می‌دهد. تفاوت آنها در آن است که در شکل b جزء با فرکانس بالاتر ابتدا معکوس شده و سپس با موج دوم جمع شده است. علی‌رغم موجهای در دامنه‌ی زمان بسیار متفاوت این دو صوت یکسان به نظر می‌رسند. این به خاطر آن است که شنوایی انسان بر اساس دامنه‌ی فرکانسهاست و نسبت به فاز آنها بسیار غیر حساس است. شکل موج صوتی در دامنه‌ی زمان فقط به صورت غیر مستقیم با شنوایی رابطه دارد و معمولاُ در سیستمهای صوتی در نظر گرفته نمی‌شود.

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

sp-image06.jpg

شکل شماره 2-5 – تشخیص فاز توسط گوش انسان. گوش انسان نسبت به فاز نسبی سینوسیهای مرکب بسیار غیر حساس است. برای نمونه این دو موج یکسان به نظر خواهند رسید، زیر دامنه‌ی اجزاء آنها یکسان است اگر چه فاز نسبی آنها متفاوت است.

در حالت کلی نمی‌توان گفت که گوش نسبت به فاز کاملاً ناشنواست. چرا که تغییر فاز می‌تواند باعث تغییر آرایش زمانی یک سیگنال صوتی شود. اما چنین امری یک پدیده‌ی نادر است که در محیطهای شنیداری طبیعی اتفاق نمی‌افتد.

فرض کنید از یک نوازنده‌ی ویولون خواسته‌ایم نتی را بنوازد. وقتی که موج صوتی ایجاد شده بر روی اسیلوسکوپ نشان داده شود یک موج دندانه‌اره‌ای مانند شکل شماره ۴ (a) مشاهده می‌شود. شکل شماره ۴ (b) نشان می‌دهد که این صوت چگونه توسط گوش دریافت می‌شود. گوش یک فرکانس اساسی (در مثال شکل ۲۲۰ هرتز) را و همسازهایی را در ۴۴۰، ۶۶۰، ۸۸۰ و… هرتز دریافت می‌کند. اگر این نت بر روی ابزار دیگری نواخته شود گوش هنوز هم همان ۲۲۰ هرتز (همان فرکانس اساسی) را دریافت می‌کند. و از این لحاظ دو صوت مشابهند که گفته می‌شود این دو صوت پیچ یکسانی دارند ولی چون دامنه‌ی همسازها متفاوت است دو صوت یکسان نیستند و گفته می‌شود که طنین دو صوت متفاوت است.

sp-image07.jpg

شکل شماره 2-6 – موج صوتی ویولن. ویولن موج دندانه‌اره‌ای ایجاد می‌کند(شکل a)، صدای دریافت شده شامل فرکانس اساسی و همسازهای آن است (شکل b)

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

گوش بیشتر برای شنیدن هارمونیکهای اساسی تنظیم شده است. اگر یک شنونده به صدایی که حاصل ترکیب دو موج صوتی سینوسی ۱ کیلوهرتز و ۳ کیلوهرتز است گوش دهد آن را مطلوب و طبیعی توصیف خواهد کرد حال آن که اگر از موجهای ۱ کیلوهرتزی و ۳.۱ کیلوهرتزی استفاده شود برای شنونده شکایت برانگیز خواهد بود. این مسأله اساسی برای اندازه‌ها و اختلافهای استاندارد ابزارهای موسیقیایی فراهم می‌آورد.

2-3- روشهای دیجیتالی ذخیره‌ی صدا

در طراحی یک سیستم صوتی دیجیتال دو پرسش وجود دارند که باید پاسخ داده شوند: ۱- چقدر لازم است صوت خوب به نظر برسد؟ ۲- چه نرخ داده‌ای قابل تحمل است؟ جواب به این پرسشها غالباً به یکی از این سه انتخاب منجر می‌شود: اول موسیقی با وفاداری بالا که در آن کیفیت صدا مهم‌ترین چیز است و تقریباً هر نرخ داده‌ای قابل قبول است. دوم ارتباط تلفنی که نیازمند طبیعی به نظر رسیدن صحبت و یک نرخ داده‌ی پایین برای کاهش هزینه‌ی سیستم است. سوم صحبت فشرده شده که در آن کاهش نرخ داده بسیار مهم است و مقداری غیر طبیعی به نظر رسیدن کیفیت صدا قابل تحمل است. این مورد در بر دارنده‌ی ارتباطات نظامی، تلفنهای سلولی و صحبت ذخیره شده به صورت دیجیتال برای پست الکترونیکی صوتی یا کاربردهای چند رسانه‌ای است.

شکل شماره 2-5 بده بستانهای موجود در انتخاب هر یک از این سه روش را نشان می‌دهد.

در حالی که موسیقی نیازمند پهنای باند ۲۰ کیلوهرتز است صحبتی که طبیعی به نظر برسد فقط به پهنای باندی در حدود ۳.۲ کیلوهرتز نیازمند است. در این حال هر چند پهنای باند به اندازه‌ی ۱۶% مقدار اولیه محدود می‌شود ولی فقط ۲۰% اطلاعات اولیه از دست می‌رود.

سیستمهای ارتباط راه‌دور اغلب از نرخ نمونه‌برداری در حدود ۸ کیلوهرتز استفاده می‌کنند که اجازه‌ی انتقال صحبت را با کیفیتی در حد طبیعی می‌دهد ولی اگر از آن برای انتقال موسیقی استفاده شود تا میزان بالایی از کیفیت آن از دست می‌رود. شما احتمالاً با تفاوت این دو میزان آشنایی دارید: ایستگاههای رادیویی اف.ام با پهنای باندی در حدود ۲۰ کیلوهرتز اقدام به پخش می‌کنند حال آن که ایستگاههای ای.ام محدود به ۳.۲ کیلوهرتز هستند. صحبت و صداهای معمول روی ایستگاههای نوع دوم طبیعی به نظر می‌رسد حال آن که موسیقی این گونه نیست.

sp-image08.jpg

شکل شماره 2-7- نرخ داده‌ی صوتی در برابر کیفیت صدا. کیفیت صدای یک سیگنال صوتی دیجیتال به نرخ داده‌ی آن که برابر با حاصل‌ضرب نرخ نمونه‌برداری آن در تعداد بیتهای آن در هر نمونه بستگی دارد که به سه بخش تقسیم می‌شود: موسیقی باوفاداری بالا (۷۰۶کیلوبیت بر ثانیه)، صحبت با کیفیت تلفن ۶۴کیلوبیت بر ثانیه وصحبت فشرده شده (۴ کیلوبیت بر ثانیه)

سیستمهایی که فقط با صدا (و نه موسیقی) سر و کار دارند می‌توانند مقدار دقت را از ۱۶ بیت به ۱۲ بیت بدون از دست رفتن دقتی قابل توجه کاهش دهند. این میزان می‌تواند با انتخاب اندازه‌ی نامتساوی برای گام مقدارگزینی می‌تواند به ۸ بیت در هر نمونه نیز کاهش یابد. یک نرخ نمونه‌برداری ۸ کیلوهرتز با دقت ای.دی.سی ۸ بیت در هر نمونه به نرخ داده‌ی ۶۴کیلوبیت بر ثانیه می‌انجامد. این یک حد نهایی برای طبیعی به نظر رسیدن صحبت است. دقت کنید که صحبت نیازمند نرخ داده‌ای معادل ۱۰% نرخ داده‌ی موسیقی با وفاداری بالاست.

نرخ داده‌ی ۶۴ کیلو بیت بر ثانیه نمایانگر کاربرد نهایی نظریه‌ی نمونه‌برداری و مقدارگزینی برای سیگنالهای صوتی است. روشهای کاهش نرخ داده به اندازه‌ای بیشتر از این مبتنی بر فشرده‌سازی جریان داده با حذف تکرارهای ذاتی سیگنال صحبت است. یکی از کاراترین روشهای موجود ال.پی.سی است که انواع و زیرگروههای متعدد دارد. بر اساس کیفیت سیگنال صحبت مورد نیاز این روش می‌تواند نرخ داده را تا اندازه‌ای بین ۲ تا ۶ کیلو بیت بر ثانیه کاهش دهد.

2-4- برنامه‌نویسی و پیاده‌سازی پردازش صوت

2-4-1- ساختار مورد نیاز برای نگهداری ویژگیهای صدا

همانطور که اشاره شد برای ذخیره یا بازخوانی یک نمونه صدا به صورت دیجیتال نیازمند آنیم که برخی ویژگیهای خاص صدای دیجیتالی از قبیل نرخ نمونه‌برداری، تعداد بیت هر نمونه و یک‌کاناله یا دوکاناله بودن صدا را مشخص کنیم.

برای این منظور در محیط برنامه‌نویسی مورد نظر ما (ویندوز) از ساختاری به نام WAVEFORMATEX استفاده می‌گردد که به صورت زیر تعریف می‌گردد:

typedef struct {
WORD  wFormatTag;
WORD  nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD  nBlockAlign;
WORD  wBitsPerSample;
WORD  cbSize;
} WAVEFORMATEXX;

در این ساختار فیلد wFormatTag فرمت فایل را که نشان دهنده‌ی نوع الگوریتمهای به کار گرفته شده برای فشرده‌سازی صدا و… است را مشخص می‌کند. برای استفاده‌ی مورد نظر ما فرمت خاصی که با ثابت WAVE_FORMAT_PCM مشخص می‌گردد و فرمت پی.سی.ام نامیده می‌شود مناسب است. علاوه بر آن فیلد cbSize برای فرمتهای غیر پی.سی.ام استفاده می‌شود و ما همواره مقدار آن را صفر در نظر خواهیم گرفت.

از آنجا که پردازش این ساختار در برنامه‌نویسی صدا برای پروژه‌ی مورد نظر بارها صورت می‌گیرد و از آنجا که یک شیوه‌ی طراحی شیءگرا (شیوه‌ی ام.اف.سی) برای پیاده‌سازی پروژه در نظر گرفته شده بود و از آنجا که پردازش این ساختار نیاز به برخی محاسبات تکراری (تعیین nBlockAlign و nAvgBytesPerSec) دارد و به چند دلیل دیگر تصمیم گرفته شد که این ساختار و پردازش آن به صورت یک کلاس با نام HSound پیاده سازی گردد که ضمن خودکار نمودن پردازش این ساختار کلاسهایی که به اعمال پخش و ضبط را بر عهده دارند از این کلاس ارث‌بری نموده برنامه نویسی را آسان‌تر و کد به دست آمده را خواناتر نمایند.

تعریف این کلاس به صورت زیر است:

class HSound
{
public:
//constructor and destructor:
HSound();
virtual ~HSound();
//setting wave data:
void SetBitsPerSample(int bps);
void SetSamplesPerSecond(int sps);
void SetNumberOfChannels(int nchan);
//retrieving wave data:
WAVEFORMATEX* GetFormat();
int GetSamplesPerSecond();
int GetBitsPerSample();
int GetNumberOfChannels();
protected:
WAVEFORMATEX m_wfData;
private:
void Update();
};

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

فیلد wBitsPerSample تعداد بیتِ هر نمونه را مشخص میکند که برای فرمت پی.سی.ام فقط می‌تواند یکی از دو مقدار ۸ و ۱۶ را داشته باشد و برای سایر فرمتها مقادیر ممکن بستگی به مشخصات منتشر شده توسط شرکتهای به وجود آورنده و پشتیبانی‌کننده‌ی آنها دارد.

متدی که در پی می‌آیند آن را مقدارگذاری می‌کند (در مورد متد Update و علت فراخوانی آن در ادامه توضیح داده خواهد شد :

void HSound::SetBitsPerSample(int bps)
{
m_wfData.wBitsPerSample = bps;
Update();
}

و متد زیر مقدار انتخاب شده را برمی‌گرداند:

int HSound::GetBitsPerSample()
{
return m_wfData.wBitsPerSample;
}

فیلد nSamplesPerSec تعداد نمونه‌ها در هر ثانیه (نرخ نمونه‌برداری) را مشخص می‌کند. برای فرمت پی.سی.ام مقادیر معمول ۸کیلوهرتز (۸۰۰۰)، ۱۱.۰۲۵کیلوهرتز (۱۱۰۲۵)، ۲۲.۰۵کیلوهرتز (۲۲۰۵۰) و ۴۴.۱کیلوهرتز (۴۴۱۰۰) می‌باشد و برای سایر فرمتها مقادیر ممکن بستگی به مشخصات منتشر شده توسط شرکتهای به وجود آورنده و پشتیبانی‌کننده‌ی آنها دارد.

متد مقدارگذاری این فیلد:

void HSound::SetSamplesPerSecond(int sps)
{
m_wfData.nSamplesPerSec = sps;
Update();
}

و متد دریافت مقدار آن:

int HSound::GetSamplesPerSecond()
{
return m_wfData.nSamplesPerSec;
}

فیلد nChannels تعداد کانالهای موج صوتی را مشخص می‌کنند. صداهای تک کانال (مقدار فیلد برابر با ۱) مونو و صداهای دوکاناله (مقدار فیلد برابر با ۲) استریو خواهند بود.

متد مقدار‌گذاری این فیلد:

void HSound::SetNumberOfChannels(int nchan)
{
m_wfData.nChannels = nchan;
Update();
}

و متد دریافت مقدار آن:

int HSound::GetNumberOfChannels()
{
return m_wfData.nChannels;
}

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

فیلد nBlockAlign کمینه‌ی تعداد واحد داده را برای فرمت انتخاب شده تعیید می‌کند که اگر فرمت انتخاب شده پی.سی.ام باشد برابر با حاصل ضرب تعداد کانالها (nChannels) در تعداد بیتِ هر نمونه (nBitsPerSample) تقسیم بر تعداد بیتهای موجود در هر بایت (۸) خواهد بود و برای سایر فرمتها بستگی به مشخصات منتشر شده توسط شرکتهای به وجود آورنده و پشتیبانی‌کننده‌ی آنها دارد. فیلد nAvgBytesPerSec نیز تعداد متوسط بایتهای موجود در هر ثانیه‌ی صدا را مشخص می‌کند و برای فرمت پی.سی.ام برابر با تعداد نمونه‌های موجود در هر ثانیه (nSamplesPerSec) در کمینه‌ی تعداد واحد داده (nBlockAlign) خواهد بود و برای سایر فرمتها بستگی به مشخصات منتشر شده توسط شرکتهای به وجود آورنده و پشتیبانی‌کننده‌ی آنها دارد.

متد Update که در کد مقدار‌گذاری سایر فیلد‌ها محاسبات توضیح داده شده‌ی بالا را انجام می‌دهد:

void HSound::Update()
{
m_wfData.nBlockAlign = m_wfData.nChannels*(m_wfData.wBitsPerSample/8);
m_wfData.nAvgBytesPerSec = m_wfData.nSamplesPerSec*m_wfData.nBlockAlign;
}

در صورتی که نیاز باشد با ساختار اصلی WAVEFORMATEX کار شود متد زیر مقدار عضوی از کلاس را که از این نوع است باز می‌گرداند:

WAVEFORMATEX* HSound::GetFormat()
{
return &m_wfData;
}

در متد سازنده‌ی این کلاس به طور پیش‌فرض برای نمونه‌ی صوتی مورد نظر نرخ نمونه‌برداری ۴۴.۱کیلوهرتز با ۱۶ بیت در هر نمونه در نظر گرفته شده و فرض بر آن است که نمونه‌ی صوتی یک کاناله است:

HSound::HSound()
{
m_wfData.wFormatTag      = WAVE_FORMAT_PCM;
m_wfData.cbSize              = 0;
SetBitsPerSample(16);
SetSamplesPerSecond(44100);
SetNumberOfChannels(1);
}

همچنانکه از روی تعریف کلاس قابل فهم است این کلاس در واقع تمامی اعمال را روی عضو داده‌ی محافظت شده‌ی m_wfData اِعمال می‌نماید و با غیر مستقیم نمودن دسترسی به این عضو داده برای برنامه‌ی استفاده کننده ضمن رعایت اصل پنهانسازی اطلاعات به فراخوانی رویه‌ی Update در متدهای تغییر دهنده‌ی اعضای مرتبط با nBlockAlign و nAvgBytesPerSec تغییرات لازم را به آنها اعمال می‌کند.

2-4-2- انجام پردازش صدا به صورت یک رشته‌ی مستقل

می‌توان با استفاده از توابع کار با صدای ویندوز به گونه‌ای برنامه‌نویسی نمود که نیازی به ایجاد رشته‌های مستقل برای پردازنده‌های صدا نباشد، اما وجود دلایلی از قبیل عدم انعطاف‌پذیری این روش و تک‌وظیفه‌ای شدن برنامه در حین انجام عملیات پردازش صدا باعث می‌شود که روش استفاده از رشته‌های مستقل مورد توجه ما قرار گیرد.

از آغاز در نظر داشتیم که رابط برنامه به گونه طراحی شود که کاربر در هنگام کار با برنامه و انجام عملیاتی نظیر ضبط صدا از عملکرد برنامه مطمئن باشد. به این معنی که مثلاً در حین هنگام صدا با استفاده از یک رابط گرافیکی مانند یک نمایشگر اسیلوسکوپی از این که برنامه واقعاً و به درستی در حال ضبط صدای اوست و یا به لحاظ فاصله‌ی نامتناسب با میکروفن یا عدم اتصال درست آن به کارت صوتی یا خرابی آن بیشتر آنچه ضبط می‌شود سکوت و یا نویز است مطلع گردد. یک روش مناسب برای ایجاد چنین رابطی استفاده از پیام فرستاده شده برای پردازش صدا توسط یک رشته برای فعال شدن یک تابع رسم‌کننده‌ی نمودار اسیلوسکوپی است که نیاز به آن دارد که بدون قطع شدن جریان ضبط پردازش دیگری صورت گیرد. به این منظور و با استفاده از کد اولیه‌ای که در منبع شماره‌ی ۲ به آن اشاره شده کلاسی به نام HSoundRunner را از کلاس HSound اعضای داده و متدهای مرتبط با پردازش صوت و از کلاس ام.اف.سی CwinThread اعضای داده و متدهای لازم برای یک رشته را ارث‌بری می‌کند به صورت زیر تعریف نمودیم:

class HSoundRunner:
public CWinThread,
public HSound
{
public:
DECLARE_DYNCREATE(HSoundRunner)
HSoundRunner();
~HSoundRunner();
void       SetBufferSize(int nSamples);
int         GetBufferSize();
//this metheods should be overriden:
void AddBuffer();
BOOL Start(WAVEFORMATEX* pwfex=NULL);
BOOL Stop();
//for graphical display:
void SetOwner(CWnd* pWnd);
void ClearOwner(COLORREF crBkColor=0×000000);
public:
//{{AFX_VIRTUAL(HSoundRecorder)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
protected:
DWORD m_dwThreadID;
int m_iBufferSize;  // number of samples per each period
int m_nBuffers;                //number of buffers remained to be run
int m_nSamples;               //number of samples stored
short* m_pSamples;          //samples stored
BOOL m_bRunning;           //indicated running or not
//if graphical display is intended set this value
CWnd* m_pOwner;
void DrawBuffer(int nSamples, short* pSamples, COLORREF crBkColor=0×000000, COLORREF crLineColor=0×00FF00);
};

اعضای داده‌ی این کلاس در روند انجام عملیات توسط کلاسهای مشتق شده از آنها نقش خود را نشان خواهند داد و به عنوان نمونه عضو داده‌ی m_iBufferSize که نشان دهنده‌ی آن است که بعد از ضبط با پخش چند نمونه تابع پردازنده‌ی پیام در کلاس پنجره‌ی کنترل کننده باید فراخوانی شود در این هیچکدام از متدهای این کلاس نقش عملی پیدا نمی‌کند و فقط مقدارگذاری آن از طریق متد SetBufferSize و دریافت مقدار فعلی آن از طریق GetBufferSize صورت می‌گیرد:

void HSoundRunner::SetBufferSize(int nSamples)
{
m_iBufferSize=nSamples;
}
int HSoundRunner::GetBufferSize()
{
return m_iBufferSize;
}

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

BOOL HSoundRunner::InitInstance()
{
m_dwThreadID = ::GetCurrentThreadId();
return TRUE;
}

اعضای داده‌ی m_nSamples و m_pSamples به ترتیب تعداد نمونه‌های ضبط شده یا آماده برای پخش و آرایه‌ی حاوی آنها -که به لحاظ آسان‌تر شدن کار با کتابخانه‌ای که برای پردازش سیگنال صحبت استفاده شده و همسان با آن از نوع short در نظر گرفته شده را نشان می‌دهند. این دو عضو داده به صورت پویا پس از انجام عملیات ضبط مقدارگذاری می‌شوند و برای عملیات پخش باید قبلاً مقدارگذاری شده باشند.

آنچه این کلاس انجام می‌دهد غیر از ایجاد یک رشته برای انجام پردازش صدا فراهم آوردن روشی برای نمایش اسیلوسکوپی صداست که از طریق متد DrawBuffer انجام می‌شود.

این متد در توابع پیامهای مربوط به پردازش صوت خود به خود فراخوانی می‌گردد و در صورتی که مقدار m_pOwner اشاره‌گر به یک پنجره یا کنترل انتخاب شود (توسط متد SetOwner) آرایه‌ی ورودی که معمولاً یک تکه‌ی تازه ضبط با پخش شده از کل صداست متناسب با طول و عرض پنجره‌ی مورد نظر بر روی آن کشیده می‌شود. این کار با ایجاد یک ابزار متن و یک Bitmap متناسب با ابزار متن پنجره‌ی مورد نظر، کشیدن طرح لازم با استفاده از این دو و در نهایت نمایش تصویر ایجاد شده بر روی پنجره‌ی مقصد و مطابق با کد زیر انجام می‌شود:

void HSoundRunner::DrawBuffer(int nSamples, short* pSamples, COLORREF crBkColor, COLORREF crLineColor)
{
if(m_pOwner==NULL)
return;
CRect rc;
m_pOwner->GetClientRect(&rc);
int iWidth=rc.Width();
int iHeight=rc.Height();
CDC* pDC=m_pOwner->GetDC();
CBitmap Bitmap;
Bitmap.CreateCompatibleBitmap(pDC, iWidth, iHeight);
CDC dc;
dc.CreateCompatibleDC(pDC);
dc.SelectObject(&Bitmap);
CBrush Brush(crBkColor);
dc.FillRect(&rc,&Brush);
CPen Pen(PS_SOLID,1,crLineColor);
dc.SelectObject(&Pen);
dc.SetBkColor(crBkColor);
if(GetBitsPerSample()==16)
{
float fx=iWidth/float(nSamples);
float fy=float(iHeight/32767.0);
dc.MoveTo(0, iHeight/2);
int i=0;
for(float f=0; f<iWidth&&i<nSamples; f+=fx, i++)
dc.LineTo(int(f), int(iHeight/2+fy*pSamples[i]));
pDC->BitBlt(0, 0, iWidth, iHeight, &dc, 0, 0, SRCCOPY);
}
}

متد ClearBuffer یک روش قابل دسترسی توسط برنامه برای پاک کردن پنجره‌ی مورد استفاده به وجود می‌آورد و شامل یک فراخوانی متد محافظت شده‌ی DrawBuffer با یک آرایه‌ی به طول صفر است:

void HSoundRunner::ClearOwner(COLORREF crBkColor)
{
DrawBuffer(0,NULL,crBkColor);
}

عضو داده‌ی m_nBuffers تعداد بافرهای اختصاص داده شده و استفاده نشده را نشان می‌دهد که در متد AddBuffer این کلاس و بازنویسی شده‌ی آن برای کلاسهاس مشتق شده مقدار آن به ازای هر بار فراخوانی یک واحد افزوده می‌شود و در پیامهای پردازش صدا که از طرف سیستم عامل فعال می‌شوند و نشانگر استفاده شدن بافر مورد نظر است (در کلاسهای مشتق شده) یک واحد کاهش می‌یابد. در نهایت صفر نبودن این عضو داده نشانگر استفاده‌ی ناکامل از بافرهای اختصاص داده شده (معادل با کامل انجام نشدن فرایند ضبط یا پخش) است که می‌تواند پردازش مناسب برای آن صورت گیرد:

void HSoundRunner::AddBuffer()
{
m_nBuffers++;
}

عضو داده‌ی m_bRunning به منظور تشخیص این که برنامه در حال اجرای عملیات پردازش صداست و یا نه به منظور جلوگیری از ایجاد اشکال با فراخوانیهای تکراری در نظر گرفته شده که در هنگام آغاز عملیات مقدار آن برابر با TRUE و در پایان آن برابر با FALSE انتخاب می‌گردد. همچنان که در ادامه توضیح داده خواهد شد کلاسهای مشتق شده متدهایی از لحاظ نام متناسب با عملی که برای آن در نظر گرفته شده‌اند (ضبط یا پخش) برای بازگرداندن این مقدار به برنامه‌نویس کاربر این کلاسها دارند:

BOOL HSoundRunner::Start(WAVEFORMATEX* pwfex)
{
if(m_bRunning)
return FALSE;
if(pwfex != NULL)
m_wfData = *pwfex;
return TRUE;
}
BOOL HSoundRunner::Stop()
{
if(m_bRunning)
{
m_bRunning=FALSE;
Sleep(500);
return TRUE;
}
return FALSE;
}

فراخوانی استاندارد Sleep در متد Stop برای مصرف کامل بافر ایجاد شده انجام می‌گردد. در ضمن متد Start روشی برای جایگزینی مقدار پیش‌فرض m_wfData (عضو کلاس Hsound) با مقدار جدید در اختیار می‌گذارد.

در متد سازنده اعضای داده با مقادیر پیش‌فرض مقدارگذاری شده و رشته‌ی مورد نظر با فراخوانی CreateThead ایجاد می‌گردد:

HSoundRunner::HSoundRunner()
{
m_iBufferSize= 2048;
m_nBuffers = 0;
m_bRunning = FALSE;
m_nSamples=0;
m_pSamples=NULL;
m_pOwner=NULL;
CreateThread();
}

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

HSoundRunner::~HSoundRunner()
{
if(m_bRunning)
Stop();
}

به لحاظ آن که آرایه‌ی داده‌ها (m_pSamples) در این کلاس ایجاد نمی‌گردد در متد ویرانگر آزاد شدن آن پیش بینی نشده است.

2-4-3- ضبط صدا

برای ضبط صدا و انجام پردازشهای مرتبط با آن کلاسی به نام HSoundRecorder به صورت زیر از کلاس HSoundRunner مشتق گردید:

class HSoundRecorder :  public HSoundRunner
{
DECLARE_DYNCREATE(HSoundRecorder)
public:
HSoundRecorder();
virtual ~HSoundRecorder();
protected:
void AddBuffer();
//Message Map For WM_WIM_DATA:
afx_msg void OnDataReady(UINT uParm, LONG lWaveHdr);
private:
HWAVEIN m_hWaveIn;
HShortQueue* m_pQueue;
public:
BOOL Start(WAVEFORMATEX* pwfex=NULL);
BOOL Stop();
short* GetSamples(int& nSamples);
BOOL IsRecording();
DECLARE_MESSAGE_MAP()
};

برای استفاده از این کلاس کافی است متدهای Start و Stop آن فراخوانی گردند ولی درک کامل نحوه‌ی عملکرد آن نیاز به برخی مقدمات دارد.

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

MMRESULT waveInOpen(LPHWAVEIN phwi, UINT uDeviceID, LPWAVEFORMATEX pwfx, DWORD dwCallback, DWORD dwCallbackInstance, DWORD fdwOpen);

که در آن phwi اشاره‌گر به بافری است که یک handle به ابزار باز شده برای ورودی صدا را در اختیار می‌گذارد. این پارامتر ابزاری را برای دسترسی به وسیله‌ی ورودی صدا در اختیار می‌گذارد که ما در سایر فراخوانیهای مرتبط به آن نیاز داریم لذا در کلاس تعریف شده متغیر m_hWaveIn را برای ذخیره‌ی این پارامتر پس از این فراخوانی و دسترسی به آن در سایر متدها در نظر گرفته‌ایم.

پارامتر uDeviceID شناسه‌ی ابزار ورودی را به تابع می‌دهد. می‌توان از شناسه‌ی WAVE_MAPPER استفاده کرد که با استفاده از آن برنامه سخت‌افزار پیش‌فرض موجود را که دارای قابلیت پردازش فرمت انتخاب شده که توسط پارمتر pwfx به تابع داده می‌شود و ما از عضو داده‌ی m_wfData از کلاس HSound برای انتخاب مقدار آن استفاده می‌کنیم به طور خودکار انتخاب می‌کند.

پارامتر dwCallback شناسه‌ی پنجره، پردازه یا رشته‌ای را که پیامهای چندرسانه‌ای به آن ارسال خواهد شد به تابع می‌دهد که ما از شناسه‌ی رشته (عضو داده‌ی m_dwThreadID) برای تعیین این پارامتر استفاده خواهیم نمود. پارامتر بعدی dwCallbackInstance داده‌ی سطح کاربری را که به ساز و کار فرتخوانی callback ارسال می‌شود تعیین می‌نماید و ما از این پارامتر استفاده نخواهیم نمود.

پارامتر آخر یعنی fdwOpen پرچمی برای ابزار ورودی است که سازوکار تفسیر پارامترها را مشخص می‌کند و چون ما از سازوکار فراخوانی رشته‌ای استفاده می‌کنیم مقدار آن را برابر با CALLBACK_THREAD انتخاب می‌نماییم.

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

بعد از در اختیار گرفتن یک وسیله‌ی ورودی لازم است که برای عملیات حافظه اختصاص یابد و این عمل می‌تواند با فراخوانی AddBuffer به تعداد کافی صورت گیرد.

بعد از تخصیص حافظه توسط فراخوانی ای.پی.آی زیر عمل ضبط شروع می‌گردد:

MMRESULT waveInStart(HWAVEIN hwi);

پارامتر وروی همان پارامتر بازگشت با مقدار فراخوانی waveInOpen یعنی phwi است که همچنانکه اشاره شد ما آن را در عضو داده‌ی m_hWaveIn نگهداری می‌کنیم. این فراخوانی نیز مانند قبلی در صورت موفقیت‌آمیز بودن مقدار صفر باز می‌گرداند.

توضیحات بالا مقدمات کافی را برای درک کد متد Start که در زیر می‌آید فراهم می‌آورد:

BOOL HSoundRecorder::Start(WAVEFORMATEX* pwfex)
{
if(!HSoundRunner::Start(pwfex))
return FALSE;
m_pQueue=new HShortQueue;
//Open the wave device:
if(::waveInOpen(&m_hWaveIn, WAVE_MAPPER, &m_wfData, m_dwThreadID, 0L, CALLBACK_THREAD))
return FALSE;
//Add several buffers to queue:
for(int i=0;i<3;i++)
AddBuffer();
if(::waveInStart(m_hWaveIn))
return FALSE;
m_bRunning=TRUE;
return TRUE;
}

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

MMRESULT waveInPrepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);

به جای پارامتر hwi عضو داده‌ی m_hWaveIn را که قبلاً در فراخوانی waveInOpen مقدارگذاری شده قرار می‌دهیم. پارامتر دوم یک اشاره‌گر به متغیری با ساختار زیر است:

typedef struct {
LPSTR  lpData;
DWORD  dwBufferLength;
DWORD  dwBytesRecorded;
DWORD  dwUser;
DWORD  dwFlags;
DWORD  dwLoops;
struct wavehdr_tag * lpNext;
DWORD  reserved;
} WAVEHDRR;

که لازم است اشاره‌گر lpData به یک حافظه حاوی تعداد مورد نیاز عضو اشاره کند. از آنجا که ما هر بار بافری با اندازه‌ی m_iBufferSize در نظر می‌گیریم، تعداد خانه‌های این آرایه بر حس ب بایت برابر با اندازه‌ی بافر ضرب در حداقل تعداد بلوک برای فرمت انتخاب شده (فیلد nBlockAlign ساختار WAVEFORMATEX) می‌باشد و لازم است که به این تعداد حافظه اختصاص داده اشاره‌گر lpData را برابر با آدرس آن انتخاب کنیم، در ضمن اندازه‌ی بافر اختصاص داده شده را از طریق فیلد dwBufferLength به اطلاع تابع استفاده کننده می‌رسانیم. پارامتر آخر فراخوانی مورد بحث باید برابر با اندازه‌ی پارامتر دوم بر حسب بایت قرار داده شود.

بعد از آماده شدن بافر آن را توسط فراخوانی زیر به بافرهای آماده برای اعمال چندرسانه‌ای اضافه می‌کنیم:

MMRESULT waveInAddBuffer(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);

مانند فراخوانیهای قبل مقدار خروجی دو فراخوانی اخیر در صورت عدم بروز خطا صفر خواهد بود. کد زیر پیاده‌سازی کامل متد بازنویسی شده‌ی AddBuffer را برای کلاس HSoundRecorder به نمایش می‌گذارد:

void HSoundRecorder::AddBuffer()
{
//new a buffer:
char       *sBuf=new char[m_wfData.nBlockAlign*m_iBufferSize];
//new a header:
LPWAVEHDR        pHdr=new WAVEHDR;
if(!pHdr) return;
ZeroMemory(pHdr,sizeof(WAVEHDR));
pHdr->lpData=sBuf;
pHdr->dwBufferLength=m_wfData.nBlockAlign*m_iBufferSize;
//prepare it:
::waveInPrepareHeader(m_hWaveIn, pHdr, sizeof(WAVEHDR));
//add it:
::waveInAddBuffer(m_hWaveIn, pHdr, sizeof(WAVEHDR));
HSoundRunner::AddBuffer();
}

بعد از آن که عمل ضبط آغاز شد و پس از پر شدن هر بافر پیغامی به پنجره یا رشته‌ای که شناسه‌ی آن به فراخوانی waveInOpen داده شده ارسال می‌گردد که با شناسه‌ی MM_WIM_DATA می‌توان به آن مراجعه نمود. در هنگام فعال شدن این پیغام لازم است بافر استفاده شده برای استفاده‌ی مجدد آماده گردد و در ضمن مکان مناسب برای ذخیره‌ی داده‌های ضبط شده و همچنین نمایش آنها پس از فعال شدن این پیغام است.

از آنجا که طول زمان ضبط صدا مشخص نیست طول بافری که نهایتاً داده‌ها باید در آن قرار گیرند قابل پیشبینی نمی‌باشد. از این رو ما از یک ساختار که نوع آن را HShortPocket نامگذاری کرده‌ایم برای ذخیره‌ی داده‌های ارسال شده استفاده می‌نماییم و حاصل را در صفی که در قالب کلاس HShortQueue پیاده‌سازی شده درج می‌نماییم.(این دو ساختار ربطی به برنامه‌نویسی پردازش صدا ندارند و درک عملکرد آنها نیاز به توضیح اضافی ندارد لذا در اینجا توضیح داده نمی‌شوند.) عضو داده‌ی m_pQueue از کلاس HSoundRecorder صفی است که در سطور قبل در مورد آن بحث شد.

ما به شیوه‌ی ام.اف.سی برای پیغام MM_WIM_DATA تابعی به نام OnDataReady می‌سازیم که پارامترهای آن پارامترهای ارسالی از طرف پیغام هستند که دومین آنها که حاوی ساختار بافر استفاده شده است برای ما اهمیت دارد. با توجه به توضیحات داده شده درک کد این تابع میسر است:

void HSoundRecorder::OnDataReady(UINT uParm, LONG lWaveHdr)
{
LPWAVEHDR        pHdr=(LPWAVEHDR)lWaveHdr;
::waveInUnprepareHeader(m_hWaveIn, pHdr, sizeof(WAVEHDR));
if(m_bRunning)
{
//Save Input Data:
m_pQueue->InsertItem(pHdr->dwBytesRecorded/2, (short*)pHdr->lpData);
//Draw Buffer:
DrawBuffer(pHdr->dwBytesRecorded/2, (short*)pHdr->lpData);
//reuse the header:
::waveInPrepareHeader(m_hWaveIn, pHdr, sizeof(WAVEHDR));
::waveInAddBuffer(m_hWaveIn, pHdr, sizeof(WAVEHDR));
return;
}
//we are stopping:
delete pHdr->lpData;
delete pHdr;
m_nBuffers–;
}

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

پس از انجام عمل و احضار متدStop توسط برنامه لازم است با فراخوانی waveInStop عمل ضبط را متوقف کنیم و با فراخوانی waveInClose ابزار ضبط آن را برای استفاده‌ی سایر برنامه‌ها آزاد کنیم. علاوه بر این در این هنگام تمامی بافرها ارسال شده‌اند و می‌توانیم آن را به صورت یک آرایه‌ی معمولی ذخیره کنیم و متغیر m_pQueue را آزاد نماییم:

BOOL HSoundRecorder::Stop()
{
if(!HSoundRunner::Stop())
return FALSE;
::waveInStop(m_hWaveIn);
::waveInClose(m_hWaveIn);
m_pSamples=m_pQueue->ConvertToArray(m_nSamples);
delete m_pQueue;
return TRUE;
}

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

short* HSoundRecorder::GetSamples(int& nSamples)
{
nSamples=m_nSamples;
return m_pSamples;
}

این آرایه در هنگام آزاد شدن متغیر از نوع HSoundRecorder در متد ویرانگر آزاد می‌شود:

HSoundRecorder::~HSoundRecorder()
{
if(m_pSamples)
delete []m_pSamples;
}

در متد سازنده‌ی کلاس پدر مقدار m_pOwner برابر با NULL در نظر گرفته می‌شود. این به این معنی است که در حالت پیش‌فرض عملیات به صورت گرافیکی نشان داده نمی‌شود و برای انجام این عمل لازم است که ابتدا مقدار m_pOwner به اشاره‌گر به یک پنجره یا کنترل توسط فراخوانی SetOwner مقدارگذاری شود. در متد سازنده‌ی این کلاس به منظور جلوگیری از مقدارگزینیهای ناخواسته مقدار m_hWaveIn برابر با NULL انتخاب می‌گردد:

HSoundRecorder::HSoundRecorder()
{
m_hWaveIn        =NULL;
}

2-4-4- پخش صدا

پردازشهای مربوط به پخش صدا مشابهت زیادی با پردازشهای مربوط به ضبط دارد در اینجا نیز باید ابتدا یک ابزار صدا را برای خروجی باز کرد، تعدادی بافر اضافه نمود، در تابع پیام بافرهای جدید آماده نمود و سرانجام در متد Stop ابزار خروجی را بست:

class HSoundPlayer:
public HSoundRunner
{
public:
HSoundPlayer();
~HSoundPlayer();
void SetData(int nSamples, short* pSamples);
BOOL Start(WAVEFORMATEX* format=NULL);
BOOL Start(int iSize, short* pData, WAVEFORMATEX* pwfex=NULL);
BOOL Stop();
BOOL IsPlaying();
void AddBuffer();
DECLARE_MESSAGE_MAP()
afx_msg void OnMM_WOM_DONE(UINT parm1, LONG parm2);
private:
HWAVEOUT m_hWaveOut;
int m_nSamplesPlayed;
};

تفاوت تنها در این مورد است که در اینجا ما باید داده‌های آماده را به برنامه بدهیم. به دلیل آن که در برنامه‌های ما خروجی همیشه پس از ورودی مطرح می‌گردد و ما پس از پایان ورودی به داده‌های آن دسترسی داریم ساده‌ترین راه دادن داده‌ها مقداردهی اشاره‌گر m_pSamples با بافر حاوی داده‌های ورودی است که معمولاُ ما آن را از شیء ضبط کننده می‌گیریم:

void HSoundPlayer::SetData(int iSize, short* pData)
{
m_nSamples=iSize;
m_pSamples=pData;
}

به منظور افزایش انعطاف‌پذیری می‌توان این داده‌ها را در متد Start نیز دریافت نمود:

BOOL HSoundPlayer::Start(int iSize, short* pData, WAVEFORMATEX* format)
{
SetData(iSize, pData);
return Start(format);
}

فراخوانی waveOutOpen عملی مشابه waveInOpen را برای خروجی صدا انجام می‌دهد و پارامترهای آن مشابه با آن است:

BOOL HSoundPlayer::Start(WAVEFORMATEX* format)
{
if(m_pSamples==NULL)
return FALSE;
if(!HSoundRunner::Start(format))
return FALSE;
else
{
// open wavein device
MMRESULT mmReturn = 0;
mmReturn = ::waveOutOpen(&m_hWaveOut, WAVE_MAPPER, &m_wfData, m_dwThreadID, NULL, CALLBACK_THREAD);
if(mmReturn)
return FALSE;
else
{
m_bRunning = TRUE;
m_nSamplesPlayed=0;
for(int i=0; i<3; i++)
AddBuffer();
}
}
return TRUE;
}

در اینجا تفاوتی نیز وجود دارد. در فرایند ضبط این برنامه‌ی کاربر بود که پیغام Stop را ارسال می‌کرد حال آن که در اینجا علاوه بر کاربر، تمام شدن بافر حاوی داده‌ها نیز باید باعث فعال شدن آن پیغام شود. برای این منظور از متغیر شمارشگری به نام m_pSamplesPlayed استفاده کرده‌ایم که تعداد نمونه‌های پخش شده بر حسب تعداد حافظه‌ی short (که نصف تعداد نمونه در حافظه‌ی معادل بر حسب بایت است) را ذخیره می‌کند.

تفاوت دیگری نیز وجود دارد و آن این است که ما باید توسط فراخوانی waveOutWrite داده‌ها را روی بافر ارسالی بنویسیم:

void HSoundPlayer::AddBuffer()
{
MMRESULT mmReturn = 0;
// create the header
LPWAVEHDR pHdr = new WAVEHDR;
if(pHdr == NULL) return;
// new a buffer
pHdr->lpData=(char*)(m_pSamples+m_nSamplesPlayed);//buffer;
pHdr->dwBufferLength = m_iBufferSize;
pHdr->dwFlags = 0;
// prepare it
mmReturn=::waveOutPrepareHeader(m_hWaveOut, pHdr, sizeof(WAVEHDR));
// write the buffer to output queue
mmReturn =::waveOutWrite(m_hWaveOut, pHdr,sizeof(WAVEHDR));
if(mmReturn) return;
// increment the number of waiting buffers
m_nSamplesPlayed+=m_iBufferSize/2;
HSoundRunner::AddBuffer();
}

در انجام عمل پخش نیز پیغامی پس از پایان پخش هر بافر با شناسه‌ی MM_WON_DONE به پنجره یا رشته‌ی کنترل کننده ارسال می‌شود که در آن می‌توانیم داده‌ی پخش شده را به صورت گرافیکی نشان دهیم، بافر بعدی را بفرستیم و در صورت رسیدن به پایان داده‌ها پیغام Stop را ارسال کنیم:

void HSoundPlayer::OnMM_WOM_DONE(UINT parm1, LONG parm2)
{
LPWAVEHDR pHdr = (LPWAVEHDR) parm2;
//Draw Buffer:
DrawBuffer(pHdr->dwBufferLength/2, (short*)pHdr->lpData);
if(::waveOutUnprepareHeader(m_hWaveOut, pHdr, sizeof(WAVEHDR)))
return;
m_nBuffers–;
if(m_bRunning)
{
if(!(m_nSamplesPlayed+m_iBufferSize/2>=m_nSamples))
{
AddBuffer();
// delete old header
delete pHdr;
return;
}
else
{
Stop();
}
}
// we are closing the waveOut handle,
// all data must be deleted
// this buffer was allocated in Start()
delete pHdr;
if(m_nBuffers == 0 && m_bRunning == false)
{
if (::waveOutClose(m_hWaveOut))
return;
}
}

اگر دقت کرده باشید در هنگام رسیدن به پایان داده‌ها در همین تابع اخیر ما ابزار خروجی را می‌بندیم. اگر زودتر پیغام Stop توسط برنامه ارسال شود نیز به لحاظ FALSE شدن مقدار m_bRunning این عمل انجام می‌پذیرد لذا کافی است که در متد Stop ابزار برای استفاده‌ی بعدی به طور کامل آزاد گردد:

BOOL HSoundPlayer::Stop()
{
if(HSoundRunner::Stop())
return (::waveOutReset(m_hWaveOut)!=0);
return FALSE;
}

از آنجا که در این کلاس حافظه‌ای اختصاص داده نمی‌شود در متد ویرانگری نیز آزاد شدن حافظه انجام نمی‌گیرد. مشابه متد سازنده‌ی کلاس HSoundPlayer مقدار m_hWaveOut در ابتدا برابر با NULL در نظر گرفته می‌شود:

HSoundPlayer::HSoundPlayer()
{
m_hWaveOut = NULL;
}

2-4-5- کتابخانه‌ی پردازش صوت

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

فصل سوم – پردازش گفتار

3-1- ترکیب و تشخیص گفتار

کاربردهای نیازمند پردازش صحبت اغلب در دو دسته‌ی ترکیب صحبت و تشخیص صحبت مورد بررسی قرار می‌گیرند.

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

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

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

3-2- آواشناسی

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

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

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

  1. آواشناسی تولیدی(ساختمان دستگاه گفتاری انسان که در این قسمت با زیست شناسی و پزشکی ارتباط پیدا می کنیم)
  2. آواشناسی آکوستیک (بررسی امواج صوتی که با فیزیک و ریاضی مرتبط می شویم)
  3. آواشناسی شنیداری(در حیطه زیست شناسی، پزشکی، روان شناسی، عصب شناسی و… وارد می شویم)

اما چگونگی تولید صوت:

اما چطور صداها تولید می شوند. بعنوان مثال اندام های مختلف درون دهان، گلو و بینی جریان های هوای از شش ها را تغییر می دهد صدا بوسیله حرکات سریع مولکولها هوا تولید می شود. اغلب صداها در زبانهای گتفاری انسان بوسیله خروج هوا از داخل ششها و گذر آن از میان نای، حنجره تولید می شوند. حنجره شامل دو چین کوچک ماهیچه ای است که می توانند همراه با یکدیگر یا جداگانه حرکت کنند. فضای بین این دو چین دهانه حنجره[67] نام دارد. اگر این دو قسمت با هم بسته شوند (اما نه کاملاً بسته) هنگام عبور هوا به ارتعاش در می آیند. اگر بین آنها فاصله زیاد باشد نوسان نخواهندد کرد. در زبان انگلیسی صداهایی که بوسیله این لرزش بوجود می آیند شامل z,v,g,d,b و همه مصوت های دیگر Voiced نامیده می شوند و صداهایی که بدون لرزش این اندامها ایجاد می شوند صداهای گنگ نام دارند مثل f,t,k,p و …

ناحیه بالای نای قسمت صوتی نامیده می شود ه شامل بخش زبانی و بخش تودماغی[68] می شود. بعد از اینکه صدا از نای خارج شد می تواند از دهان یا بینی خارج می شود. اغلب صداها بوسیله گذر از میان دهان ایجاد می شوند. صداهایی که بوسیله عبور هوا از طریق بینی ایجاد می شوند صداهاا تودماغی نام دارند. این صداها از قسمتهای زبانی و دماغی بعنوان اسباب ارتعاش استفاده می کنند. صداهای تودماغی انگلیسی مانند m,n,ng و..

پس به طور خلاصه می توان گفت:

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

صداها به دو کلاس اصلی تقسیم می شوند. حروف بی صدا و مصوتها. هر دو نوع بوسیله حرکت صدا از میان دهان، نای یا بینی شکل می گیرند. حروف بی صدا مانند z,s,v,f,q و k,d,t,b,pو حروف صدادار مانند aa,ae,aw,ao,ih,ow .

حروف نیمه صدادار مانند w,y مشخصاتی از هردو دارند. آنها شبیه حروف صدادار هستند اما کوتاه و دارای هجاهای شمرده کمتر هستند(مانند حروف بی صدا)

3-3- مکانیزم تولید گفتار

chp_vocal_tract

شکل3-1

مکانیزم تولید گفتار از چهار پروسه تشکیل شده است:

  1. پردازش زبان که در آن محتوای گفتار در مرکز زبانی مغز به سمبل های صوتی تبدیل می شود.
  2. تولید فرمان های موتوری که به سمت اندام های صوتی در مرکز موتوری مغز صورت می گیرد.
  3. حرکت هماهنگ اندام های صوتی که بر پایه فرمان های ارسال شده از مرکز موتوری مغز انجام می شود.
  4. انتشار هوای فرستاده شده از سمت ریه ها به صورت گفتار.

متغیرهای ناحیه صوتی:

  1. میزان باز بودن آرواره
  2. میزان باز بودن و جلو آمدن لب ها
  3. فرم زبان
  4. میزان باز بودن بخش نرم سقف زبان[69] که اتصال ناحیه صوتی را به حفره های داخلی بینی را تنظیم می کند.

برخی از نکات اساسی دراین زمینه:

کار مرکز موتوری مغز بسته به صورت مورد نظر فرق می کند. به عنوان مثال برای گفتن حرف /p/، فقط میزان باز بودن لب ها و بخش نرم سقف زبان تعیین می شود.

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

به فضای بین تارهای صوتیglottis گفته می شود. سقف یا کام دهان[70] دارای دو بخش سخت و نرم می باشد. به بخش سخت آن معمولا همان پالت اطلاق می شود. بخش نرم سقف دهان، بعد از بخش سخت آن قرار دارد که به آن بخش نرم سقف زبان گفته می شود. زبان در تلفظ /k/ حرف به اینن قسمت از کام برخورد می کند. بخش نرم سقف زبان همچنین می تواند حرکت کند. وقتی پایین است، دریچه ای ایجاد می کند که اجازه می دهد جریان هوا به سمت بینی برود. وقتی بالاست، دریچه مسدود می شود و هیچ هوایی نمی تواند به درون بینی جاری شود. زبان کوچک در پشت بخش نرم سقف زبان قرار دارد. در بعضی از لهجه های فرانسوی در حین تلفظ صدای /r/ این قسمت می لرزد. اپی گلاتیس[71] زیر ریشه زبان قرار دارد و در پوشاندنن حنجره در هنگام بلعیدن غذا کمک می کند تا غذا وارد معده شده و وارد ریه ها نشود. در بعضی از زبان ها برای تولید صدا از این قسمت استفاده می کنندد که زبان انگلیسی در این گروه قرار نمی گیرد. همچنین تارهای صوتی در مسیر هوایی ریه ها قرار دارد. آنها با لرزیدن بیشتر صداها را در حین صحبت کردن به وجود می آورند از طرفی حنجره ساختاری است که تارهای صوتی را در بر دارد. و به پایین ترین قسمت زبان در گلو، ریشه زبان گفته می شود. به قسمت اصلی زبان، بدنه زبان گفته می شود. بدنه زبان به ویژه بخش انتهایی آن در ساختن حروف صدادار و برخی حروف بی صدا، حرکت می کند.

یک نوزاد چگونه مهارت موتوری لازم برای تولید آواهای مربوط به زبان خودش را کسب می کند؟

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

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

به عنوان مثال بلوک دیاگرام زیرمدل استفاده از دو نوع ساختار عصبی برای نشان دادن اطلاعات را ارائه می دهد

3-4- مدلی برای توصیف روش تولید صحبت

تقریباً تمام تکنیکهای ترکیب و تشخیص صحبت بر اساس مدل تولید صحبت انسان که در شکل شماره ۳ نشان داده شده است ایجاد شده‌اند. بیشتر صداهای مربوط به صحبت انسان به دو دسته‌ی صدادارو سایشی تقسیم می‌شوند. اصوات صدادار وقتی که هوا از ریه‌ها و از مسیر تارهای صوتی به بیرون دهان یا بینی رانده می‌شوند ایجاد میگردند. تارهای صوتی دو رشته‌ی آویخته از بافت هستند که در مسیر جریان هوا کشیده شده‌اند. در پاسخ به کشش ماهیچه‌ای متفاوت تارهای صوتی با فرکانسی بین ۵۰ تا ۱۰۰۰هرتز ارتعاش می‌کنند که باعث انتقال حرکتهای متناوب هوا به نای می‌شود. در شکل شماره ۳ اصوات صدادار با یک مولد پالس بالا پارامتر قابل تنظیم پیچ (فرکانس پایه‌ی موج صوتی) نشان داده شده است.

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

مدل صحبت انسان

شکل شماره ۳-4- مدل صحبت انسان. در یک تکه زمان کوتاه، حدود ۲ تا ۴۰ میلی‌ثانیه صحبت می‌تواند با استفاده از سه پارامتر مدلسازی شود: ۱- انتخاب یک آشفتگی متناوب یا نویزوار. ۲- پیچ آشفتگی متناوب ۳ – ضرایب یک فیلتر خطی بازگشتی که پاسخ اثر صوتی را تقلید می‌کند.

اصوات سایشی زبان انگلیسی عبارتند از s، f، sh، z، v و th. در مدل شکل شماره ۳ اصوات سایشی با استفاده از یک مولد نویز نشان داده شده‌اند.

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

شکل شماره 3-۴ یک روش معمول برای نمایش سیگنالهای صحبت را نشان می‌دهد که طیف‌نگارهیا اثر صوت خوانده می‌شود. سیگنال صوتی به تکه‌های کوچک به اندازه‌ی ۲ تا ۴۰ میلی‌ثانیه تقسیم می‌شوند و از الگوریتم اف.اف.تی برای یافتن طیف فرکانسی هر تکه استفاده می‌شود. این طیفها در کنار هم قرار داده شده تبدیل به یک تصوبر سیاه و سفید می‌شود (دامنه‌های پایین روشن و دامنه‌های بالا تیره می‌شوند). این کار یک روش گرافیکی برای مشاهده‌ی این که چگونه محتویات فرکانسی صحبت با زمان تغییر می‌کند به وجود می‌آورد. اندازه‌ی هر تکه بر اساس اعمال یک بده‌بستان بین دقت فرکانسی (که با تکه‌های بزرگ‌تر بهتر می‌شود) و دقت زمانی (که با تکه‌های کوچک‌تر بهتر می‌شود) انتخاب می‌گردد.

طیف صوت

شکل شماره 3-5- طیف صوت. شکلهای a و b ویژگیهای عمومی اصوات صدادار و شکلهای c و d ویژگیهای عمومی اصوات سایشی را نمایش می‌دهند.

همچنانکه در شکل ۴ دیده می‌شود اصوات صدا دار مثل a در rain دارای موج صوتی متناوبی مانند آنچه در شکل a نشان داده شده و طیف فرکانسی آنها که عبارت است از یک دنباله از همسازهای با اندازه‌ی منظم مانند شکل b می‌باشد در مقابل، اصوات سایشی مانند s در storm دارای یک سیگنال نویزی در دامنه‌ی زمان مانند شکل c و یک طیف نویزی مانند شکل d هستند.این طیفها همچنین شکل فرکانسهای فرمانت برای هر دو نوع صوت نشان می‌دهند. همچنین به این نکته توجه کنید که نمایش زمان- فرکانس کلمه‌ی rain در هر دو باری که ادا شده شبیه به هم است.

در یک دوره‌ی کوتاه برای نمونه ۲۵ میلی‌ثانیه یک سیگنال صحبت می‌تواند با مشخص کردن سه پارامتر تقریب زده شود:

  1. انتخاب یک اغتشاش متناوب یا نویزوار
  2. فرکانس موج متناوب (اگر مورد استفاده قرار گرفته باشد)
  3. ضرایب فیلتر دیجیتالی که برای تقلید پاسخ تارهای صوتی استفاده شده است.

صحبت پیوسته با بروزآوری این سه پارامتر به صورت پیوسته به اندازه‌ی ۴۰ بار در ثانیه ترکیب شود. این راهکار برای یکی از کاربردهای تجاری دی.اس.پی که «صحبت و املا» نامیده می‌شود و یک وسیله‌ی الکترونیکی پرفروش برای بچه‌هاست مناسب است. کیفیت صدای این نوع ترکیب کننده‌ی صحبت پایین است و بسیار مکانیکی و متفاوت با صدای انسان به نظر می‌رسد. ولی در هر صورت نرخ داده‌ی خیلی پایینی در حدود چند کیلوبیت بر ثانیه نیاز دارد.

همچنین این راهکار پایه‌ای برای روش کدگذاری پیشگویانه‌ی خطی (ال.پی.سی) در فشرده‌سازی صحبت فراهم می‌آورد. صحبت ضبط شده‌ی دیجیتالی انسان به تکه‌های کوچک تقسیم می‌شود و هر کدام با توجه به سه پارامتر مدل توصیف می‌شود. این عمل به طور معمول نیاز به یک دوجین بایت برای هر تکه دارد که نرخ داده‌ای برابر با ۲ تا ۶ کیلوبایت بر ثانیه را طلب می‌کند. این تکه‌ی اطلاعاتی ارسال می‌شود و در صورت لزوم ذخیره می‌گردد و سپس توسط ترکیب کننده‌ی صحبت بازسازی می‌شود.

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

3-5-مدلهای محاسباتی پردازش زبان و گفتار

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

3-5-1- اتوماتهای متناهی (محدود) و عبارتهای منظم[72]:

در این بخش عبارات منظم را معرفی می کنیم که استانداری برای توصیف توالی های متنی است. اتوماتهای محدود نه فقط ابزاری ریاضی برای استفاده در عبارات منظم هستند بلکه یکی از ابزارهای مهم در زبانشناسی محاسباتی[73] است.

عبارات منظم ابزاز تئوری مهمی در تمامی علوم کامپیوتر و زبانشناسی است. یک عبارت منظم (که اولین بار توسط کلین[74] در سال 1956 گسترش یافت) قاعده ای است در یک زبان مشخص که در تکنیکهای جستجو بر اساس متن غالباً استفاده می شود. در یک رشته، هر توالی از کارکترهای الفباا عددی (شامل لغات، اعداد، فاصله ها، نشانه گذاری ها) است. در اینجا یک فاصله، درست مثل کاراکترهای دیگر است و ما آنرا بوسیله یک علامت نشان می دهیم.

یک عبارت منظم نمادهای جبری برای مشخص کردن مجموعه ای از رشته هاست. بنابراین آنها می توانند برای تعیین رشته های جستجو بخوبی استفاده شوند می خواهیم بحث را با صحبت درباره عبارات منظم بعنوان روشی برای انجام جستجو در متن آغاز کنیم و پیش برویم.

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

        1. الگوهای عبارت منظم

ساده ترین نوع عبارت منظم، توالی از کارکترهای ساده است. بعنوان مثال برای جستجوی لغت ” Buttercup” ما عبارت / Buttercup/را تایپ می کنیم، بنابراین منظم / Buttercup/ با هر رشته ای شامل زیررشتهButtercup مطابقت می یابد.(بعنوان مثال خط Buttercup “ “Iam (called در اینجا ما علامت اسلش را اطراف هر عبارت منظمی قرار خواهیم داد تا از الگو تشخیص داده شود. اسلش بخشی از عبارت منظم نیست.

رشته جستجو می تواند شامل یک حرف (مثل /!/) یا توالی از حروف (مثل /urgl/) باشد. می توان برای جستجو تعیین کرد که تنها اولین مورد یافته شود یا بیشتر از یک مورد را بدهد.

عبارت منظم به بزرگ یا کوچک بودن حروف حساس است، یعنی شکل /s/ با حرف بزرگ آن یعنی /S/ متفاوت است. این یعنی اگر الگو /Woodchucks/ باشد، با رشته Woodchucks مطابقت ندارد. ما این مسئله را با استفاده از براکت، به معنی یا، حل می کنیم. یعنی الگوی /[Ww]/ با w یا W جور می شود و بهمین ترتیب داریم: /[A-Z]/ و/ / [a-z] و /[0-9]/

موارد مطابقت یافته عبارت منظم
Woodchuck یا woodchuck

‘a’ یا ‘b’ یا ‘c’

هر عددی

/[Ww]oodchucks/

/[abc]/

/[1234567890]/

جدول 3-1

با استفاده از براکت می توان عبارت منظم را طوری تعریف کرد که شامل یک کارکتر نباشد. اینکار بوسیله علامت ^ انجام می شود که باید بعد از [ و قبل از حرفی که نباید در الگو باشد قرار گیرد. این تنها زمانی درست است که بعنوان اولین سمبل بعد از ] باشد و گرنه جزء خود عبارت در نظر گرفته می شود.

مثال:

موارد مطابقت یافته عبارت منظم
هیچ یک از حروف بزرگ انگلیسی

نه s یا نه S

e یا ^

با الگوی a^b جور می شود

[^A-Z]

[^Ss]

[e^]

a^b

جدول 3-2

اما برای اینکه بتوانیم Woodchuck را از Woodchucks تشخیص دهیم باید چگونه عمل کنیم؟ چون می خواهیم s باشد یا نباشد نمی توان از [] استفاده کرد بنابراین از /?/ استفاده می کنیم به این معنی که یا حرف قبل از ؟ یا هیچ.

بنابراین:

موارد مطابقت یافته عبارت منظم
Woodchucksیا woodchuck

Colour یا color

Woodchuc?s

Colou?r

جدول 3-3

روشی برای اینکه بتوان تعداد یک چیز را مشخص کرد وجود دارد. مثلا برای اینکه یک عبارت منظم با این عبارات جور شود: …ba,baaa,baaaaaaa

می توان از *kleen (کلین استار) استفاده کرد که به معنی تعداد تکرار است. می تواند صفر یا بیشتر باشد. بنابراین //a * یعنی رشته ای از صفر یا تعداد بیشتری.aعبارت منظم//a * با این الگوها می تواند جور شود:

a,aa,aaaaa,…..

بنابراین عبارت منظمی که شامل حتما یک a و بیشتر است به اینصورت است: //aa *

//[ab] *یعنی عبارت منظمی که شامل صفر یا بیشتر از aها و یا bها است. یعنی الگوهایی مثل aaa,ababab,bbb یادآوری می کنیم کهRE برای یک عدد صحیح یک رقمی [0-9]/ /بود. REبرای یک عدد صحیح چند رقمی هم بصورت //[0-9][0-9] * است.

برای نمایش عدد صحیح چند رقمی بهتر است از Kleeen+ استفاده کنیم که به معنی تعداد یک یا بیشتر است. (برخلاف * که به معنی تعداد صفر یا بیشتر است)

یکی ازمهمترین کاراکترهای مخصوص نقطه است. /./ یک جایگزین شونده است که با هر کاراکتری مطابقت دارد.

مثال:

مثال موارد مطابقت یافته عبارت منظم
Begin,beg,n,begun هر کاراکتری که بین n,beg قرار می گیرد /beg,n/

جدول 3-4

جایگزین شونده می تواند همراه با * برای هر رشته ای از کاراکترها استفاده شود. مثل /abbbas.*ali/ برای اینکه خود علامت شامل عبارت منظم شود باید از آن علامت بک اسلش قرارداد.مثال /the dog\./ در این حالت علامت نقطه دیگر به معنای کاراکتر جایگزینی نیست.

علامت /b (Anchor) هم مشخص کننده حدود کلمه است. مثلا برای عبارت منظم /\bThe\b/ الگوی The مطابقت دارد ولی Other نه. همچنین در مورد /\b99/ که با 99 جور می شود ولی با 299 نه.

        1. تفکیک، گروهبندی و اولویت :

جدا کننده: فرض کنیم عبارت جستجویی به صورت “Dog or Cat” داشته باشیم. یعنی حاصل جستجو شامل عباراتی که کلمات Dog یا Cat دارند است. در عبارت منظم این کار با براکت [] نمی توان انجام داد پس نیاز به عملگر جدیدی داریم بنام جداکننده یا Pipe (|). عبارت منظم /Dog|/Cat با رشته هایی کهه Dog یا Cat دارند مطابقت دارد. اما چگونه می توانیم عبارت منظم را هم برای الگوی Guppy و هم Gupies مشخص کنیم؟ مطمئناً RE اینطور نمی شود: /Guppy|ies/. بنابراین بوسیله پرانتز اولویت تعیین می کنیم که ابتدا عملگر جداکننده در نظر گرفته شود. یعنی RE صحیح اینطور می شود: /Guppy|ies)/

اگر * را همراه با () استفاده کنیم یعنی می توان رشته ای را که درون () است را صفربار یا بیشتر تکرار کرد. مثال : /(dog)*/

اولویت عملگرهای RE به این ترتیب است:

()

[]?+

Anchor و جملات

|(Pipe)

* از جملات اولویت بالاتری دارد

3-5-1-3- اتومات ها

  1. اتومات حالت محدود

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

2- استفاده از FSA در تشخیص صدای گوسفندی: baaa…

ما زبان گوسفندی را بعنوان رشته ای مطابق زیر تعریف کرده ایم: baa!,baaa!,baaaaa!,….

RE برای آن بصورت /Baa_!/ است و FSA برای آن به شکل زیر است:

      1. مبدلات محدود[75] و مبدلات وزن دار[76]

اتومات یک گراف جهت دار است شامل تعداد محدودی راس (نود)، بهمراه تعدادی لینک بین هر جفت نود (Node) نودها بوسیله دایره و لینکها که نشانه انتقال از یک نود به نود دیگر است توسط پیکانهایی نمایش داده می شوند. FSA می تواند برای تشخیص (پذیرش) رشته یک زبان بکار برده شود.

اضافه کردن حالت Eeeor به ماشین:

شکل 3-6

        1. اتوماتهای محدود غیرقطعی (NFSA)

اجازه دهید بحثمان را در مورد کلاس دیگری از FSA ادامه دهیم، یعنی NFSA شکل زیر را ملاحظه کنید که چه شباهتی با شکل قبل دارد.

شکل 3-7

در این ماشین Error نداریم.

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

        1. مبدلات حالت محدود و شکل شناسی

در قسمت های قبلی به معرفی عبارت منظم پرداختیم، بعنوان مثالی نشان دادیم که چگونه یک رشته مفرد توانست در پیدا کردن هر دو کلمه در موتور جستجو متنی استفاده شود. فرآیند جستجو برای یافتن حالت جمع یا مفرد این کلمه آسان است چون در حالت جمع به آخر آن تنها یک S اضافه می شود. اما فرض کنید که ما در جستجوی کلمات دیگری هستیمف مثلا goose,fish,fox فرآیند جستجو برای حالت جمع این کلمات چیزی بیشتر از اضافه شدن یک S است. حالت جمع fox,foxes است، برای goose، حالت جمع geese است همچنین برای کلمه fish که حالت جمع آن تغییر نمی کند و همان fish است.

قواعد املائی به ما می گویند که لغات انگلیسی که به y ختم می شوند هنگام جمع y به i تبدیل شده و به آخر آن es اضافه می شود. دستورات شکل شناسی به ما می گویند که کلمه fish حالت جمع ندارد و حالت جمع کلمه gosse با تغییر حروف صدادار آن تشکیل می شود یعنی geese.

مسئله تشخیص اینکه لغت foxes به دو قسمت fox و es شکسته می شود را تجزیه شکلی[77] نامند. تجزیه به معنای دریافت ورودی و تولید ساختارهایی برای آن است. می خواهیم از اصطلاح “تجزیه ” خیلی وسیعتر استفاده می کنیم، شامل انواع زیادی از ساختارهایی که ممکن است ایجادد شوند: ریخت شناسی، قواعد صرف و نحوی، قواعد معنایی و عملگرایانه.

در عمل تجزیه فقط بحث شکل حالت جمع و مفرد مطرح نیست. مثلاً برای لغاتی مثل talking، going و … می خواهیم آنها را به دو دسته شامل ریشه لغت بعلاوه ing تجزیه کنیم. بنابراین برای شکل ورودی going ممکن است بخواهیم فرم تجزیه شده ای به صورت VERB-go+GERUND-ING تولید کنیم. این بخش می خواهد آگاهی هایی مربوط به ریخت شناسی را که برای نمایش زبانهای مختلفی احتیاج می شود بررسی کند و اجزاء اصلی یک الگوریتم مهم برای تجزیه ریختی را معرفی کند، یعنی مبدل حالت محدود.

مسئله ای دیگر این است که چرا ما شکل جمع همه اسامی یا شکل ingدار همه افعال را در فرهنگ لغت لیست نمی کنیم؟ بدلیل اینکه مثلا ing یک پسوند است که به هر فعلی اضافه می شود به طور مشابه s به اغلب اسامی اضافه می شود. بنابراین ایده لیست کردن همه اسامی وافعال می تواند ناکارآمد باشد. بنابراین مطمئناً نمی توانیم همه اشکال مختلف هر لغتی را لیست کنیم.

3-5-2-3- تجزیه ریختی حالت محدود

اکنون اجازه دهید به بحث تجزیه ریختی بپردازیم. به یک مثال ساده توجه کنید:

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

خروجی ورودی
Cat +N+PL

Cat+N+SG

City+N+PL

Goose+N+SG یا Goose+ V

Goose+V+3SG

Merge+V+Pres-Part

Catch+V+Past-Part یا Catch+V+Past

Cats

Cat

Cities

Geese

Goooses

Merging

Caught

جدول 3-5

ستون دوم شامل ریشه ای از هر لغت همراه با ویژگی های ریختی مناسب آن است. این ویژگی ها اطلاعات اضافه ای درباره ریشه لغت است. بعنوان مثال ویژگی +N به این معنی است، +SG یعنی مفرد، +PL یعنی جمع است.

به منظور ساخت یک تجزیه کننده ریختی ما به موارد زیر نیاز داریم:

لغت نامه[78]: لیستی از اصل لغات و پسوندها همواره با اطلاعاتی اساسی در مورد آنها (مثلا اینکه لغت اسم است یا فعل؟)

ریخت شناسی[79]: مدلی از ترتیب واژکها (کوچکترین واحد معنی دار) که کلاسهایی از واژکهایی که می توانند از کلاسهای دیگر پیروی کنند را شرح می دهد.

قواعد املائی[80] : این قواعد برای مدلسازی تغییراتی که در یک لغت اتفاق می افتد استفاده می شود. مثلا زمانی که دو واژک با هم ادغام می شوند (مثل City +s که به Cities تبدیل می شود نه به Cityss).

        1. لغت نامه و مدل واژکها :

لغت نامه انباری از لغات است ساده ترین لغت نامه می تواند شامل لیستی از هر لغتی از یک زبان به شکل زیر باشد. (هر لغتی، یعنی شامل اختصارات، نامها و اسامی اشخاص و …)

a

AAA

AA

Aachen

Aardwolf

Aba

Aback و…

از آنجایی ک خیلی اوقات محتوی لغت نامه اینگونه نیست، لغت نامه های محاسباتی معمولا بوسیله لیستی از مدلهای واژک که به ما می گویند چگونه به هم می چسبند، ساختاربندی شده اند. روشهای زیادی برای مدلسازی واژکها وجود دارد.یکی از رایج ترین آنها ماشینهای حالت محدود FSA برای اسمها در انگلیسی به شکل زیر است:

شکل 3-8

و یک مدل مشابه برای افراد در انگلیسی:

شکل 3-9

این لغت نامه سه کلاس ریشه دارد: ریشه فعل با قاعده، بی قاعده و حالت گذشته بعلاوه4 کلاس پسوند شامل : ed (فعل ماضی)، ed(صفت مفعولی)، ingو s برای فعل سوم شخص.

3-5-2-5 – تجزیه ریختی بوسیله مبدلات حالت محدود

اکنون که دیدیم چگونه از FSA برای نمایش لغت نامه و ضمنا انجام تشخیص شکل شناسی استفاده می شودف اجازه دهید به بحث تجزیه ریختی بپردازیم. بعنوان مثال، برای ورودی Cats دوست داریم تا خروجی به شکل Cat+N+PL شود تا به ما بگوید که Cats یک اسم جمع است. می خواهیم اینکار را بوسیله ریخت شناسی دو سطحی انجام دهیم که ابتدا کاسکونینی آنرا مطرح کرد.

ریخت شناسی دوسطحی یک لغت را بعنوان تناظر بین سطح واژه ای[81] که یک الحاق ساده از واژکهایی است که یک لغت را می سازند نشان می دهد و سطح ظاهری[82] که املای درست لغت نهایی است- را بیان می کند.

تجزیه ریختی بوسیله ساخت قواعد نگاشتی – که توالی از حروف (مانند Cats) را در سطح ظاهری به واژکها و توالی از ویژگی ها می نگارد- انجام می شود (مانند Cat+N+PL در سطح واژه ای)

شکل زیر دو سطح برای لغت Cats را نشان می دهد:

واژه ای:

+PL +N t a C

ظاهری :

s t a C

نکته اینکه سطح واژه ای اصل و ریشه کلمه را دارد. مطابق اطلاعات ریخت شناسی، +N+PL به ما می گویند که Cats یک اسم جمع است.

اتوماتی که ما برای انجام تناظر بین این دو سطح استفاده می کنیم FST [83] یا مبدلات حالت محدود نام دارد. یک FST این کار را توسط اتومات محدود انجام می دهد. بنابراین معمولا ما یک FST را بعنوان اتوماتی دو نواره تصور می کنیم که زوج رشته هایی را تشخیص می دهد یا تولید می کند. بنابراینن FST کارکرد اصلی زیادی نسبت به FSA دارد. در جایی که FSA یک زبان رسمی را بوسیله تعریف یک مجموعه رشته ها تعریف می کند، FST ارتباط بین مجموعه رشته ها را مشخص می کند. این، چشم انداز دیگری از FST را بازگو می کند. بعنوان ماشینی که یک رشته را می خواند و نتایجی تولید می کند.

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

  • FST بعنوان شناسنده: مبدل یک زوج رشته بعنوان ورودی می گیرد و پذیرش بعنوان خروجی می دهد اگر زوج رشته در زبان موجود باشد و عدم پذیرش می دهد اگر موجود نباشد
  • FST بعنوان مولد: ماشینی که زوج رشته های زبان را در خروجی می دهد خروجی Yes یا No است بهمراه زوج رشته.
  • FST بعنوان مترجم: ماشینی که یک رشته را می خواند و رشته ای دیگر را ترجمه شده می دهد.
  • FST بعنوان مجموعه ای از بازگوگرها

FST می تواند رسما به چند روش تعریف شود ما روی تعریف زیر تاکید می کنیم که برپایه چیزی بنام Mealy Machine است و تعمیمی از یک FSA ساده است.

Q: مجموعه ای محدود از n حالت q0,q1,q2,q3, …,qn

∑ : الفبای محدود از علائم پیچیده است. هر علامت از یک جفت ورودی خروجی o:I تشکیل شده است.

q0 : حالت آغازین

F: مجموعه ای از حالت های پایانی که در آنجا رشته توسط ماشین پذیرش می شود.

: معرف انتقال بین حالتها به ازای ورودی – خروجی مشخص است.

جائیکه FSA زبانی که دارای الفبای محدودی است را پذیرش کند- مانند زبان گوسفندی

FST-∑={b,a,!} زبانی را پذیرش می کند که روی جفت علامتهاست:

∑={a:a,b:b,!:!,a:!,a,ε,ε:!}

        1. مدلسازی آماری زبان

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

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

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

در ادامه برخی از فن آوریهای SLM مرور می شود:

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

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

3-5-3- مدل مخفی مارکوف:

مدلهای مارکوف مخفی اولین بار در یک سری از مقالات آماری توسط لیونارد ای بوم[84] و نویسندگان دیگر در نیمه 1960مطرح گردید. اولین کاربرد آن در شناسایی گفتار بود که در نیمه 1970شروع گردید. درنیمه 1980برای آنالیز رشته های بیولوژیکی بخصوص DNA استفاده گردید. از آن زمان بعنوان زمینه ایی از بیوانفورماتیک درنظر گرفته شد.

آندری آندرویچ مارکوف٬ فارغ التحصیل دانشگاه سنت پترزبورگ در سال ۱۸۷۸ بود. وی در سال ۱۸۸۶ مدرک پروفسوری خود را دریافت کرد. کارهای زودهنگام مارکوف در تئوری اعداد٬ آنالیز٬ حدود انتگرال ها٬ همگرایی سری ها٬ دنباله کسرها و … بسیار اساسی بود

بعد از سال ۱۹۰۰ ٬ مارکوف تحت تأثیر استاد خود چبیشف٬ از روش دنباله های کسرها در تئوری احتمالات استفاده کرد.وی هم چنین در مورد رشته های متغیرهای وابسته متقابل٬ مطالعاتی انجام داد.با این امید ثابت کردن قوانین حدی در احتمالات در حالات کلی آنها. او قضیه حد مرکزی را با در نظر گرفتن فرض های کامل آن٬ اثبات کرد.

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

مدلهای مخفی مارکوف ابتدا در سال‌هاي اواخر 1960 و اوايل 1970 معرفي و مورد مطالعه قرار گرفت. روش‌هاي آماري منبع مارکوف يا مدلسازي مارکوف پنهان بطور روزافزوني در سال‌هاي اخير متداول گرديد. براي اين امر دو دليل بسيار قوي وجود دارد.

اولاً مدل‌ها در ساختمان رياضي خيلي غني هستند و در اينصورت مي‌توانند مبنائي نظري براي استفاده در محدودهء وسيعي از کاربردها را تشکيل دهند. ثانيا” مدل‌ها، در هنگامي که بطور صحيحي بکار برده مي‌شوند، در عمل براي کابردهاي مهم خيلي خوب کار مي‌کنند.

چرا مخفی؟

اطلاق کلمة مخفي, به موضوع مورد بحث ما به اين دليل است که در بارة مسائلي صحبت مي‌کنيم که طريقة انجام آنها از ديد ما پنهان است و البته ماهيت پارامتري آماري دارد. يعني اينکه نه تنها نمي‌دانيم نتيجه چه خواهد بود, بلکه نوع اتفاق و احتمال آن اتفاق نيز بايد از پارامترهايي که در دسترس است, نتيجه‌گيري شود. مانند پرتاب سکه در يک جعبة در بسته, يا جايي دور از ديد ما. يعني مدل حاصل يک مدل تصادفي با يک فرآيند تصادفي زيرين است که از ديد ناظر, غير قابل مشاهده (مخفي) است و تنها توسط مجموعه اي از فرآيندهاي تصادفي که دنبالة مشاهدات را توليد مي کنند قابل استنتاج (به جاي مشاهده) است.

مثال : متوجه شدن وضع آب و هوا از طریق جلبک

انواع مدل

  • مدلهاي قطعي[85]
  • مدلهاي غير قطعي[86]

مدل مخفی مارکوف

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

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

در مدل مارکوف معمولی، وضعیت به طور مستقیم توسط مشاهده گر قابل مشاهده است. بنابراین حالت انتقال احتمالات تنها پارامترها هستند. در مدل مخفی مارکوف، وضعیت به طور مستقیم قابل مشاهده نیست، اما متغییرهای تحت تاثیر با وضعیت قابل مشاهده هستند. هر حالت یک توزیع احتمالات دارد برای خروجی ممکن که گرفته شود. بنابراین ترتیب گرفته های ایجاد شده توسط HMM اطلاعاتی در رابطه با حالت توالی میدهد. مدل های مخفی مارکوف برای دستورالعمل در شناسایی الگوهای موقت مانند گفتار، دست خط، شناسایی ایما و اشاره، بیو انفورماتیک و… معروف هستند

پارامترهاي اصلي مدل مارکوف

  • مجموعة حالت‌هايي که ممکن است اتفاق بيفتد.
  • مجموعة تصميماتي که مي‌توان در حالت‌هاي مختلف گرفت.
  • مجموعة نتايجي که ممکن است متعاقب هر تصميم‌گيري بدست آيد.
  • منافع و ارزش افزوده اين تصميم‌گيري در مقايسه با تصميمات ممکن ديگر

با گرفتن مناسب‌ترين تصميم, بهترين راه حل براي مسئلة مطرح شده را تشخيص داده, و به بهترين حالت بعدي ممکن رسيد. اين راه حل, بصورت يک تابع ارزش نشان داده مي شود که در هر حالت (موجود), بهترين حالت بعدي (مطلوب) توسط آن تعيين مي‌شود.

معماری مدل مخفی مارکوف

Temporal evolution of a hidden Markov model

شکل 3-10

هر شکل بیضی بیانگر یک مقدار متغیر تصادفی است که مقادیری را می پذیرد. x(t) مقدار متغیر تصادفی است که مقدار تغییرپذیرش در واحد زمان مخفی است. y(t) مقدار متغیر تصادفی است که مقدارش در زمان t قابل مشاهده است.

از دیاگرام مشخص است که مقدار x(t) به مقدار x(t − 1) وابسته است.که این را خاصیت مارکوف می نامند.

بطورمشابه، مقدار y(t) نیز به x(t) وابسته است.

فرآيند مارکوف

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

hidden-weather-example

شکل 3-12

weather-b-matrixاتصال بين حالتهاي مخفي و قابل مشاهده، احتمال توليد يك حالت خاص قابل مشاهده را كه تحت تاثير فرآيند ماركوف در حالت مخفي ويژه بوده، نمايش مي‌‌دهد. بنابراين روشن است كه همه احتمالات كه توسط حالت قابل مشاهده وارد مي‌شوند با عدد 1 جمع مي‌شوند، از اين رو در مورد بالا، مجموع احتمال آفتابي و ابري و بارانی مي‌شود. بنابراين علاوه بر ماتريس احتمالات که فرآيند ماركوف را توصيف مي كنند، ما ماتريس ديگري داريم، مصطلح به ماتريس اغتشاش كه شامل احتمالات حالتهاي قابل مشاهده است كه حالتهاي مخفي ويژه در آن پنهان است. براي مثال آب و هوا، ماتريس اغتشاش اينگونه باشد:

اجزای مدلهاي مخفي ماركوف

  • بردار احتمال حالت اوليه
  • ماتريس تغيير حالت
  • ماتريس اغتشاش

هر احتمالي در ماتريس تغيير حالت و اغتشاش به زمان وابسته نمی باشد. براي همين، ماتريس‌ها هنگامي كه سيستم درگير تغيير زمان مي‌شود، وابسته به زمان تغيير نمي‌كنند. در عمل اين يكي از غير واقعي ترين فرضيات مدل ماركوف درباره فرآيند هاي واقعي است.

مرتبه مدل مارکوف

  • مدل مارکوف مرتبه صفر

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

  • مدل مارکوف مرتبه اول

احتمال يک وضعيت به احتمال وضعيت قبلي آن (از نظر زماني) بستگي دارد، به بيان ديگر احتمال وضعيت‌هاي ممکن، مستقل نيستند.

  • مدل مارکوف مرتبه M

مرتبه يک مدل مارکوف برابر است با طول حافظه اي که مقادير احتمال ممکن براي حالت بعدي به کمک آن محاسبه مي شود. براي مثال، حالت بعدي در يک مدل مارکوف از درجه 2 (مدل مارکوف مرتبه دوم) به دو حالت قبلي آن بستگي دارد.

مثالی از یک پردازش مارکوفی

شکل 3-13

فرضيات تئوری مدل مخفی مارکوف

  • فرض مارکوف

به بيان ديگر فرض می شود که حالت بعدی تنها به حالت فعلی بستگی دارد. مدل حاصل از فرض مارکوف يک مدل HMM مرتبه صفر می باشد. در حالت کلی، حالت بعدی می تواند با k حالت قبلی وابسته باشد.

  • فرض ايستايی[87]

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

  • فرض استقلال خروجی

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

براي اينکه مدل HMM در دنياي واقعي قابل استفاده باشد بايد سه مساله مهم حل شود :

  • مساله ارزيابي
  • مساله کدگشايي
  • مساله یادگیری

انواع مدلهاي مخفي مارکوف و HMM پيوسته

  • مدل ارگوديک
  • مدل چپ به راست
  • مدل موازي چپ به راست

شکل 3-14

الگوريتم ها

  • الگوريتم پیشرو[88]
  • الگوريتم ویتربی[89]
  • الگوريتم پيشرو- پسرو[90]

کاربردهای HMM

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

محدوديت‌هاي فرآيند ماركوف

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

يك مشكل واقعي ديگر، تشخيص گفتار است. صدايي كه ما مي‌شنويم، از طريق تارهاي صوتي، اندازه گلو، وضعيت قرار گرفتن زبان و خيلي موارد ديگر توليد مي‌گردد

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

جعبه ابزار مدل مخفی مارکوف در مطلب

این جعبه ابزار یک استنباط ویادگیری را برای HMM با خروجی های گسسته (dhmm’s)، خروجی های گوسین(ghmm’s)، یا مخلوطی از خروجی های گوسین(mhmm’s) پشتبانی میکند. همچنین ورودی های گسسته را پشتبانی می کند.

      1. مدل زبانی Nگرم[91]

ابتدا باید گفت که در هر شبیه سازی و حل مسئله، یک مدل سازی اولیه لازم است. این مدل سازی ممکن است ریاضی،‌ فیزیکی، تجسمی و یا به هر گونه دیگر متناسب با ماهیت شبیه سازی یا حل مسئله باشد. برای مثال، وقتی شما می خواهید یک پدیده فیزیکی را شبیه سازی کنید و یا یک مسئله فیزیک را حل کنید، ابتدا سعی می کنید، شرایط را در غالب یک مدل ریاضی یا تجسمی، مجرد کنید. بدین معنی که اجزای بدون اهمیت آن را کنار بگذارید و یا تنها مهم ترین عوامل را در بررسی خود تأثیر دهید. بدین ترتیب، با تقریب بالایی توانسته اید نزدیک ترین جواب را پیدا کنید. بنابراین، قدرت مدل سازی شما آن جا معلوم می شود که در عین سادگی، جامع و شامل باشد.

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

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

مدل Nگرم یکی از این مدل هاست. در این مدل، از آمار کلاسیک و احتمال بهره گرفته شده است. فرض کنید که یک سری اشیا یا نشانه ها و یا هر چیز دیگری داشته باشیم. هر کدام از این ها را به صورت یک رأس در گراف تصور کنید که می تواند به رأس دیگری یال جهت دار داشته باشد. این یال جهت دار، نشان دهنده یک نوع رابطه است که با توجه به مورد دلخواه ما می تواند معانی متفاوتی داشته باشد. مثلاً در مورد زبان، می- تواند توالی دو کلمه باشد (اگر کلمه ای بعد از کلمه دیگری بیاید، یک یال از اولی به دومی وجود دارد). به یک توالی n تایی از این رأس ها، n-gram می گوییم (توالی های 3gram، 2gram و … داریم). در این مدل، یک مجموعه داده های آماری بسیار بزرگ نیاز داریم که هر کدام مجموعه ای از این نشانه ها به همراه روابط بین آن ها است. برای مثال، در مورد یک زبان خاص، یک سری متن به آن زبان می باشد. حال، روابطی در این مدل تعریف می شود که می توان با استفاده از آن، درستی یک توالی خواص از این نشانه ها را بررسی کرد.

فرض کنید می خواهیم درستی عبارت a1→a2→a3→a4 را بررسی کنیم. در این مدل، احتمال درستی به صورت یک عدد تعیین می شود که هرچه داده های آماری ما بیشتر باشد، نتیجه مطلوب تر است. عبارت بالا را به اجزای زیر تقسیم می کنیم و تعداد تکرار هر کدام را در داده های آماری پیدا می کنیم.

a1→a2

a2→a3

a3→a4

a1→a2→a3

a2→a3→a4

a1→a2→a3→a4

حال احتمال هایgram3، 2gram و … به صورت زیر تعریف می شوند:

P2gram = P(a2|a1) P(a3|a2) …      :      2Gram

P3gram = P(a3|a1a2) P(a4|a2a3) …      :      3Gram

P4gram = P(a4|a1a2a3)      :      4Gram

عبارت P(a3|a1a2) یعنی احتمال درستی آمدن a3 پس از توالی a1a2 که مقدار آن برابر عبارت زیر است:

http://hamgaam.ir/sites/default/files/u305/untitled_0.JPG

در عبارت بالا، تابع   C یعنی تعداد تکرار توالی مورد نظر در داده های آماری.

در حالت کلی، احتمال درستی عبارت بالا در n-gram به صورت رابطه زیر است:

http://hamgaam.ir/sites/default/files/u305/untitled1.JPG

در این جا، تنها یک مشکل باقی می ماند و آن هم این است که اگر تنها یکی از این احتمال ها، صفر شود، احتمال کل صفر خواهد شد. در حالی که می دانیم، داده های آماری ما محدودیت دارند و ممکن است، بالاخره، یکی از توالی ها، مخصوصاً اگر تعداد آن زیاد باشد، در داده ها وجود نداشته باشد. راه حل این است که به هر کدام، یک مقدار ثابت (مثلاً 1) اضافه کنیم. روش های زیادی برای رفع این مشکل وجود دارند که در ههه آن ها، تابع احتمال به گونه ای تعریف می شود که مقدار صفر برنگرداند.

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

آینده‌ی فناوریهای پردازش صحبت

3

شکل3-15

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

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

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

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

فصل چهارم – مدلسازی سیگنال

4-1- اهمیت مدلسازی سیگنال

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

4-2- آشنایی با مدلسازی سیگنال

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

وظایف مختلف

شکل شماره 4-1 – وظایف مختلف

تشخیص صحبت تلاش دارد تا یک سیگنال صوتی صحبت را به واژه‌ها تبدیل کند. انسانها واژه‌ها را با حرکت دادن اندامها‌ی صوتی به یک سری از مکانهای قابل پیش بینی ادا می‌کنند. اگر این دنباله‌ها از سیگنال استخراج گردند واژه‌های گفته شده می‌توانند تشخیص داده شوند. بسیاری از کاربردهای تشخیص صحبت نیازمند سیستمهای مستقل از گوینده می‌باشند این تولیدات می‌توانند صحبت هر گوینده‌ای را تشخیص دهند.

CA5RL9SU

شکل4-2

اگر چه این دو هدف کاملاً متفاوت به نظر می‌رسند هر دوی آنها بر روی داده‌های صحبت تشخیص الگو را اعمال می‌کنند. بعضی از سیستمهای موجود مانند Nuance ۶ server هم تشخیص گفتار و هم تأیید هویت گوینده را به صورت همزمان اعمال می‌کنند. به خاطر همین شباهت رویه هر دوی این فن‌آوریها از یک نقطه ضربه می‌خورند: یک تنزل کارایی شدید در اثر تفاوتهای محیطهای آموزشی و آزمایشی به وجود می‌آید. به طور خلاصه کارایی این فن‌آوریها شدیداً به محیطی که در آن توسعه می‌یابند وابسته است و بنابراین حالات پر از نویز جهان واقعی آنها را به کارایی زیر کارایی بهینه راهبری می‌کند.

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

4-3- تشخیص الگو

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

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

4-4- الگوریتمهای مدلسازی سیگنال

هدف مدلسازی سیگنال (که اغلب از آن با عنوان استخراج خصیصه‌ها یاد می‌شود) انتقال داده‌های صوتی به فضایی است که مشاهدات مربوط به یک طبقه با هم در یک گروه قرار گیرند و مشاهدات مربوط به طبقات متفاوت از هم جدا شوند. این انتقالها بر اساس مطالعات زیست‌شناختی سیستمهای صوتی و اندامهای گفتاری انسان انتخاب می‌شوند. برای مثال اندامهای گفتاری نمی‌توانند از یک مکان به مکان دیگر در کمتر از حدود پنج میلی‌ثانیه جابه‌جا شوند لذا سیستمهای عملی می‌توانند از طیف ۱۰۰ بار در ثانیه نمونه‌برداری کنند در حالی که از دقت عملیات فقط مقدار بسیار کمی کاسته شود.

صحبت یک سیگنال پویاست لذا ما علاقمند به آزمون طیف بازه‌ی کوچک هستیم. زمان استمرار یک قاب به صورت طول زمانی که یک مجموعه از پارامترها معتبر هستند تعریف می‌شوند. با وجود این که قابها همپوشانی ندارند ما معمولاً از پنجره‌ی تحلیل دارای همپوشانی برای در نظر داشتن تعداد بیشتری از نمونه‌های سیگنال برای هر اندازه‌گیری طیف استفاده می‌کنیم. اعمال مستقیم تحلیل طیفی بر روی چنین مقدار کمی از داده‌ها معادل با اعمال یک پنجره‌ی مستطیلی تیز به سیگنال است که باعث ایجاد اعوجاج طیفی می‌شود. پاسخ فرکانسی پالس مستطیلی یک تابع sinc می‌باشد((sinc x=sin x/x که دارای یک باند عبور منحنی شکل و مقدار زیادی ناهمواری در باند توقف می‌باشد. شکلهای مختلف برای پنجره‌ها از طریق اعمال یک تابع وزن به دست می‌آیند. پنجره‌ی همینگ با رابطه‌ی

w(n)= (a-(۱-a)cos(۲p/[N-۱])/ b

یک نمونه‌ی ویژه از پنجره‌ی همینگ با۰.۵۴= a می‌باشد p (عدد پی)… ۳.۱۴۱۵ است. پارامتر b برای هنجارسازی به گونه‌ای انتخاب می‌شود که انرژی سیگنال در خلال آزمایش بدون تغییر باقی بماند. شکل پنجره‌ی همینگ یک تحلیل طیفی با باند عبور هموارتر و باند توقف به طور قابل ملاحظه‌ای بدون اعوجاج به دست می‌دهد که هر دوی این خصوصیات برای به دست آوردن تخمینهای پارامتری متغیر مهم هستند. بیشتر سیستمهای امروزی از یک فریم با اندازه‌ی زمانی ۱۰ میلی‌ثانیه و یک پنجره با اندازه‌ی زمانی ۲۵ میلی‌ثانیه استفاده می کنند.

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

از آنجا که شنوایی انسان در طول یک اندازه‌ی خطی به صورت مساوی حساس نیست، ما طیف را به یک اندازه‌ی فرکانسی قابل درک نقش می‌کنیم. تجربیات در مورد ادراک انسان نشان داده‌اند که فرکانسهایی با یک پهنای باند معینِ یک فرکانس اسمی که به پهنای باند بحرانی معروف است نمی‌توانند به صورت جداگانه از هم تشخیص داده شوند. اندازه‌ی مل یک تقریب ساده‌تر است که پیچ قابل مشاهده‌ی یک صدا را به اندازه‌ی خطی نقش می‌کند. استیونز و فولکمن در سال ۱۹۴۰ به صورت تجربی نگاشتی بین اندازه‌ی مل و فرکانسهای واقعی تعیین کردند. تفاوت اندازه به سختی به صورت خطی زیر ۱۰۰۰هرتز و به صورت لگاریتمی بالای ۱۰۰۰هرتز می‌باشد.

بانکهای فیلتر با فضای مثلثی مل

شکل شماره 4-3- بانکهای فیلتر با فضای مثلثی مل

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

فرمول

که در آن N(s) تعداد نمونه‌های استفاده شده برای دستیابی به مقدار متوسط و W(n) تابع وزنیابی (مشابه تابع مثلثی که قبلاً توضیح داده شد) می‌باشد و S(f) مقدار پاسخ فرکانسی است که با تبدیل فوریه محاسبه می‌شود.

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

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

فرمول

که S(avg) مقدار متوسط سیگنال در کانال kام فیلتر است. در عمل تبدیل کسینوسی گسسته به خاطر کارایی محاسباتی استفاده می‌شود. ضرایب سپسترال اغلب برای کمینه کردن تغییراتی که منجر به ایجاد اطلاعات نمی‌شوند وزنیابی می‌گردند که این پردازه لیفترینگ نامیده می‌شود. جالب است بدانیم که در ادبیات تشخیص صحبت خصیصه‌های مربوط به گوینده به عنوان تغییرات غیر داده‌زا حذف می‌گردند ولی سیستمهای تشخیص گفتار نیز از لیفترینگ استفاده می‌کنند.

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

سیستمهای تشخیص گفتار از یک پیمانه‌ی انتخاب خصیصه نیز در چارچوب تشخیص الگو استفاده می‌کنند. برای تشخیص صحبت تمامی سیگنال باید به یک نمایش متنی نگاشته شود حال آن که سیستم تشخیص گفتار نیازی به کار تحت این اجبار ندارد. بنابراین پیمانه‌ی انتخاب خصیصه فقط خصیصه‌ها مربوط به اصوات صدادار را ذخیره می‌کند. اصوات صدادار مستقیماً فرضیات مدلسازی پیشگویانه‌ی خطی را برآورده می‌سازند و کمتر تحت تأثیر نویز صوتی قرار می‌گیرند.

فصل پنجم – روشهای طراحی سیستمهای تشخیص گفتار

5-1- مقدمه

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

در فصل قبل در مورد ساختار الگوهای مورد بحث صحبت کردیم و متوجه شدیم که عمل مدلسازی سیگنال یا استخراج خصیصه‌ها با حذف ویژگیهای بدون استفاده‌ی سیگنال صحبت و حفظ ویژگیهای قابل استفاده برای بازشناسی عبارات خاص الگوهایی را با ویژگیهای انتخاب شده در اختیار ما قرار می‌دهد.

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

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

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

بحث این فصل که سه روش عمده‌ی یافتن میزان شباهت الگوها را به صورت کلی مورد بحث قرار خواهد داد عملاً پیش‌زمینه‌های نظری لازم برای طراحی سیستم هدف را کامل می‌کند.

5-2- روشهای مبتنی بر چشمپوشی زمانی پویا

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

در روشهای یکسان‌سازی الگوها مقایسه‌ای بین الگوی عبارت ورودی و الگوی مرجع برای تشخیص هویت گوینده انجام می‌گیرد. یک جزء مهم در این روشها بهنجارسازی تغییرات زمانی هر آزمون تا آزمون بعدی می‌باشد. بهنجارسازی می‌تواند با روش چشمپوشی زمانی پویا صورت گیرد. این روش یک تابع بهینه‌ی توسیع/ فشرده‌سازی زمانی را برای ایجاد صف‌بندی زمانی غیرخطی به کار می‌گیرد. شکل 5-1 الگوها را پیش و پس از اعمال این روش نشان می‌دهد. به این نکته توجه شود که چگونه چشمپوشی الگوهای نمونه‌ی آزمون میزان نزدیکی دو الگو را افزایش داده است:

نمونه‌ی یک الگو پیش و پس از اعمال روش چشمپوشی زمانی پویا

شکل شماره 5-1 – نمونه‌ی یک الگو پیش و پس از اعمال روش چشمپوشی زمانی پویا

در شکل شماره‌ی 5-۱ فریمهای صحبت که الگوهای آزمون و مرجع را به وجود می‌آورند به صورت مقادیر دامنه‌ای اسکالر بر روی نموداری که محور افقی آن نشانگر زمان است نشان داده شده‌اند. بنابراین یک تابع تصمیم‌گیری با جمع‌آوری اندازه‌گیریها بر حسب زمان می‌تواند محاسبه شود. در عمل الگوها بردارهای چند بعدی هستند و فاصله بین آنها به صورت فاصله‌ی اقلیدسی مورد محاسبه قرار می‌گیرد. نوع دیگر فاصله که برای مقایسه‌ی دو مجموعه از ضرایب پیشگویانه‌ی خطی مورد استفاده قرار می‌گیرد فاصله‌ی ایتاکورا می‌باشد.

5-3- روشهای مبتنی بر مدلهای نهان مارکف

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

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

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

مثالی از ساختار مدل نهان مارکف چپ به راست
شکل شماره 5-2- مثالی از ساختار مدل نهان مارکف چپ به راست

5-4- روشهای مبتنی بر مقدارگزینی برداری

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

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

نمودار مفهومی که شکلگیری یک دفتر کد مقدارگزینی برداری را به تصویر می‌‌کشد

شکل شماره 5-3 – نمودار مفهومی که شکل گیری یک دفتر کد مقدارگزینی برداری را به تصویر می‌‌کشد

شکل 5-۳ یک نمودار مفهومی را که مثالی از شکل گیری یک دفتر کد مقدارگزینی برداری را به تصویر می‌کشد نشان می‌دهد. یک گوینده می‌تواند بر اساس مکان مرکز ثقل بردارها از دیگری تشخیص داده شود. در شکل5- ۳ خصیصه‌های طیفی زمان کوتاه با یک فضای اقلیدسی دوبعدی نشان داده شده‌اند. برای ایجاد یک مجموعه از نقاط گامهای زیر اجرا شده‌اند:

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

– دنباله‌های آموزش دهنده‌ی سیستم تحلیل می‌شوند و برای آموزش دفتر کد مقدارگزینی برداری استفاده می‌گردند.

– سپس نقاط به بخشهای جداگانه افراز می‌گردند و دو دفتر کد تولید می‌گردد که هر کدام چهار عنصر دارند. عناصر دفتر کد مقدارگزینی برداری به صورت دایره و مثلث نمایش داده می‌شوند و مرکز ثقل بخشهای مرتبط با فضای خصیصه‌ی هر گوینده را نشان می دهند.

همچنان که در شکل5- ۳ قابل مشاهده است با وجود کمی روی‌هم‌افتادگی دو دفتر کد هنوز کاملاُ مجزا هستند و بنابراین هر گوینده می‌تواند از دیگری تشخیص داده شود. هدف آموزش یک دفتر کد مقدارگزینی برداری یافتن افرازهای مناسب از یک فضای برداری به صورت تعدادی ناحیه‌ی بدون روی‌هم‌افتادگی می‌باشد. هر افراز با یک بردار مرکز ثقل مرتبط نشان داده می‌شود. روشی معمول برای یافتن یک افرازبندی مناسب استفاده از یک رویه‌ی بهینه‌سازی مانند الگوریتم تعمیم‌یافته‌ی لوید که آشفتگی متوسط در بین بردارهای آموزش سیستم و مرکز ثقلها را کمینه می‌کند می‌باشد. سایر روشها عبارتند از معیار کمترین بیشینه (کمینه کردن بیشترین آشفتگی) که الگوریتم پوشش نیز نامیده می‌شود و استفاده از قانون Kامین همسایه‌ی نزدیک به جای قانون نزدیک‌ترین همسایه در محاسبه‌ی آشفتگی.

5-5- مقایسه‌ی کارایی

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

درصد خطا بر اساس تعداد بردارهای آموزش سیستم ...

شکل شماره 5-4 – درصد خطا بر اساس تعداد بردارهای آموزش سیستم برای روشهای وابسته به متن چشمپوشی زمانی پویا، مقدارگزینی برداری ۸ عنصری و مدل نهان مارکف با چگالی پیوسته‌ی ۸ حالته‌ی ۱ ترکیبه

همچنین از روی نمودار می‌توان نتیجه گرفت که با وجود آن که برای تعداد بردارهای آموزش کم روش چشمپوشی زمانی پویا عملکرد بهتری دارد با افزایش تعداد بردارها این تفاوت عملکرد دیگر به صورت واضح مشاهده نمی‌شود.

شکل شماره‌ی 5-5 نتیجه‌ی تجربیات این گروه را برای سیستمهای مستقل از متن نشان می‌دهد:

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

درصد خطا بر اساس تعداد بردارهای آموزش سیستم ...

شکل شماره 5-5- درصد خطا بر اساس تعداد بردارهای آموزش سیستم برای روشهای مستقل از متن مقدارگزینی برداری ۳۲ عنصری و مدل نهان مارکف با چگالی پیوسته‌ی تک حالته‌ی ۳۲ ترکیبه

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

مقایسه سیستمهای مستقل از متن

شکل شماره 5-6– مقایسه‌ی سیستمهای مستقل از متن (ماتسوی و فوروی ۱۹۹۲

فصل ششم: نحوه‌ی استفاده از برنامه‌ی Speech Recognition

شکل6-1

برنامه‌ی Speech Recognitionبا اولین اجرای آن جعبه‌ی گفتگویی مانند شکل زیر در صفحه ظاهر خواهد شد:

شکل شماره 6-2 – جعبه‌ی گفتگوی آغازین برنامه‌ی ثبت گفتار

با کلیک بر روی دکمه‌ی New می‌توان کلمه جدیدی را وارد نمود همچنان که در متن توضیح داده شده است به نظر می‌رسد تن صدای افراد در ساعات مختلف روز متفاوت است. در قسمت Accuracy Level می‌توان میزان سختگیری سیستم را تغییر داد. ممکن است در شرایط متفاوت (میکروفن و شرایط محیطی مختلف) نیاز به چنین تغییری پیدا شود. در محیط آزمایشی ما میزان تعیین شده برای Medium مناسب به نظر می‌رسید.

شکل شماره 6-3- ضبط یک عبارت جدید

یک دکمه نیز برای انتخاب ورودی و تنظیم صدای میکروفن گذاشته شده است:

شکل شماره 6-4- ضبط کلمه جدید و تنظیم میکروفن

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

– پس از طی مراحل توضیح داده شده کلمه مورد نظر ثبت می‌شود. (شکل شماره 1پنجره سمت راست)

با کلیک بر روی دکمه‌ی OK کلمه مزبور در فایل پایگاه‌داده‌های کلمات ذخیره می‌گردد.

در صورت تشخیص کلمه برنامه‌ی یاد شده همان کلمه را نشان خواهد داد و از برنامه خارج خواهد شد و گرنه لازم است بار دیگر عبارت مورد نظر گفته شود.

– برای حذف یک کلمه کافی است در برنامه‌ی Speech Recognition آن کلمه از پایگاه داده انتخاب نموده بر روی دکمه‌ی Remove کلیک کنید.

۵- برنامه‌ی Speech Recognition به وسیله‌ی دکمه‌ی Options امکان تغییر بعضی پیش‌فرضهای سیستم را در اختیار می‌گذارد که این تغییرات در فایل پایگاه‌داده‌های سیستم ذخیره می‌شوند و با حذف آن فایل از دست خواهند رفت:

شکل شماره 6-5 – تغییر پیش‌فرضهای سیستم

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

نتیجه گیری

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

ضمیمه1:

به خاطر اینکه پردازش سیگنال در تشخیص گفتار از اهمیت ویژه ای برخوردار است لذا در این پیوست در مورد سیگنال و مفاهیم مربوط به آن را بررسی می کنیم.

سیگنال چیست؟

AISRGAISRG

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

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

سیگنال گسسته

AISRG

سیگنال پیوسته

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

شکل 1 سیگنال را به شکل گسسته و شکل 2 سیگنال را به صورت پیوسته نشان می دهند. محور افقی زمان و محور عمودی نیز مقدار شدت سیگنال را نمایش می دهند.

همگام با ورود این سیگنال دیجیتالی به کارت صوتی خروجی آنالوگ (سیگنال پیوسته) در آن تولید می شود که این خروجی نیز وارد سیستم پخش صدا شده و موج تولید شده توسط بلندگو پس از پخش در فضا توسط گوش ما حس می گردد. این کل فرآیندی است که یک سیگنال صوتی دیجیتالی طی می کند تا توسط گوش ما شنیده شود.  عکس این فرآیند نیز امکان پذیر است، بدین صورت که همگام با صحبت کردن ما در یک میکروفون، سیگنال آنالوگ تولید شده توسط آن وارد کارت صوتی شده و توسط کارت صوتی نمونه برداری می گردد وهمین نمونه برداری است که موجب تولید یک سیگنال زمانی در سمت کامپیوتر می گردد.

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

نمونه برداری و چندی کردن سیگنال

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

• آماده کردن سیگنال ورودی
• فیلتر کردن سیگنال ورودی
• نمونه برداری
• چندی کردن

شماتیک زیر نیز فرآیند تبدیل سیگنال آنالوگ به دیجیتال را نشان می دهد:

AISRGAISRG

AISRG

آماده کردن سیگنال ورودی :

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

در مراحل بعدی عمل دیجیتال کردن زمانی که از مبدل آنالوگ به دیجیتال استفاده می کنیم، عملا نیاز به ولتاژهایی در بازه (5..0)، (5-..5) یا … ولت نیاز داریم. اما همانطور که دیدیم خروجی برخی از سنسورها (همانند سنسور نوار قلبی) در حد میلی ولت است. بنابراین نیاز به روشی داریم که بتوانیم خروجی سنسورها را تقویت کرده و آن ها را برای ورود به مبدل های آنالوگ به دیجیتال آماده کنیم.

این مرحله از عمل دیجیتال کردن ورودی را آماده سازی سیگنال ورودی می گوییم که در آن از تقویت کننده ها (آمپلی فایر) برای افزایش/ کاهش بهره ولتاژ استفاده می کنیم. لازم به ذکر است که امروزه سیستم تقویت کننده سیگنال به شکل توکار بر روی کارت های صوتی وجود دارد و در کارهای معمول خود نیاز به نصب تقویت کننده خارجی به کارت صوتی نداریم.در سیستم عامل ویندوز ضریب بهره آمپلی فایر کارت صوتی توسط Volume Controller خود سیستم عامل تعیین می شود.

فیلتر کردن سیگنال

خطوط تلفن دیجیتال قابلیت حمل سیگنال هایی در بازه 0 تا 3400 هرتز را دارند. از اینرو سیگنال هایی که فرکانسی خارج از این محدوده دارند، باید قبل از دیجیتال شدن فیلتر شوند. این عمل نیز با طراحی فیلترهایی امکان پذیر است. در واقع پس از آنکه سیگنال ورودی آماده شد (تقویت گردید) وارد سیتم فیلترینگ می گردد تا سیگنال های خارج از محدوده فرکانسی آن کاربرد، از سیستم حذف گردند.

طراحی فیلترها

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

نمونه برداری کردن

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

چندی کردن سیگنال

در مرحله نمونه برداری دیدیم که یک نمونه از سیگنال به شکل ولتاژ نمونه برداری شد. در این مرحله ولتاز نمونه برداری شده باید به شکل دیجیتالی (عدد باینری) تبدیل شود. برای این منظور نیز از مبدل های آنالوگ به دیجیتال استفاده می کنیم. به عنوان مثال یک مبدل انالوگ به دیجیتال 8 بیتی به ازای ورودی خود عددی بین 0 تا 255 تولید می کند. فرض کنید ورودی مبدل در بازه 0 تا 5 ولت باشد. این بدان معناست که به ازای ورودی 0 ولت، خروجی مبدل عدد باینری 0 و به ازای ورودی 5 ولت خروجی مبدل عدد باینری 255 خواهد بود. بدیهی است که افزایش تعداد بیت های مبدل موجب افزایش دقت چندی شدن خواهد شد.

مفاهیم اولیه در سیگنال

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

AISRG

موج سینوسی

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

AISRG

که در این رابطه A، f، t و… به ترتیب نشان دهنده دامنه، فرکانس، زمان و فاز موج سینوسی هستند. شکل بالا نمودار موج سینوسی را نشان می دهد. در یک موج سینوسی دامنه، شدت موج سینوسی را تعیین می کند. همچنین فرکانس نیز نشان دهنده تعداد دفعات تکرار موج سینوسی در واحد زمان است. جناب آقای زوزف فوریه در قرن 18 نشان دادند که همه سیگنال های موجود در جهان را می توان به شکل ترکیبی از امواج سینوسی نشان داد. سیگنال های صوتی نیز از این قائله مستثنی نیستند و هر سیگنال صوتی را می توان به امواج سینوسی تشکیل دهنده آن شکست. در این بخش قصد تفکیک سیگنال های به امواج سینوسی تشکیل دهنده آن را نداریم. بلکه می خواهیم نشان دهیم چگونه می توان با استفاده از امواج سینوسی، به تولید صدا پرداخت.
برای ملموس تر شدن مفهوم موج سینوسی در اینجا به ارائه چند مثال با استفاده از MATLAB می پردازیم. دستورات زیر را به ترتیب در محیط MATLABB وارد کنید:

>> i = 1:44000;
>> w1 = sin(2*pi * 500/44000 * i);
>> w2 = sin(2*pi * 1000/44000 * i);
>> w11 =10* sin(2*pi * 500/44000 * i);
>> w22 =10* sin(2*pi * 1000/44000 * i);
>> wavplay(w1,44000);
>> wavplay(w2,44000);
>> wavplay(w11,44000);
>> wavplay(w22,440000);

دستور اول یک آرایه شامل مقادیر 1 تا 44000 تولید می کند که از این آرایه برای تولید موج سینوسی استفاده می کنیم. دستور دوم یک موج سینوسی با دامنه 1 و فرکانس 500 هرتز تولید می کند. دستور سوم نیز یک موج سینوسی با دامنه 1 و فرکانس 1000 هرتز ایجاد می کند. همانطور که در دستورات نیز مشاهده می کنید، w11 و w22 نیز موج های سینوسی با فرکانس 500 و 1000 هرتز تولید می کنند و تنها تفاوت آن ها با w1 و w2 در مقدار دامنه موج ها است.

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

AISRG

که در این رابطه fs نشان دهنده این واقعیت است که در یک ثانیه چند عدد نمونه برداری باید انجام گیرد. در تکه کد بالا مقدار 44000 نشان می دهد که در یک ثانیه 44000 داده در فایل صوتی وجود دارد. نکته دیگر آن که ماکزیمم فرکانس قابل تولید با fs نمونه، برابر با fs/2 خواهد بود. به عنوان مثال در تکه کد بالا ماکزیمم فرکانس قابل تولید با نرخ نمونه برداری 44000 در ثانیه برابر با 24 کیلوهرتز (آستانه شنوایی انسان) است. حال می توانید حدس یزنید که در نرم افزارهای صوتی، چرا فایل های با بیش از 44000 نرخ نمونه برداری نمی توان پیدا کرد.

هریک از موج های w1، w2، w11 و w22 به مدت 1 ثانیه از کارت صوتی پخش می شوند. این بدان دلیل است که تعداد نمونه هایی که برای هریک از آن ها تولید گردیده دقیقا 44000 نمونه است (مقدار i که از 1 تا 44000 است). در صورتی که بخواهید هریک از امواج فوق به مدت 2 ثانیه از کارت صوتی پخش شوند، دستور اول را به صورت زیر تغییر دهید:

i = 1:88000;

به عنوان مثال می توانید موج های سینوسی مختلف با فرکانس های گوناگون و دامنه ها و مدت زمان های متفاوت تولید کرده و نتایج هریک را با دیگری مقایسه کنید (در صورتی که کارت صوتی سیستم تان به آمپلی فایر متصل نیست، از تولید فرکانس های کمتر از 100 هرتز و موج های با دامنه بالا تا حد ممکن خودداری کنید. چرا که ممکن است به سیستم آسیب برساند).

سیگنال های DTMF

همگی با سیگنال هایی که به هنگام فشردن دکمه های تلفن از گوشی آن می شنویم آشنا هستیم. به این سیگنال های در اصطلاح سیگنال های DTMF گویند.در کل 12 سیگنال DTMF متفاوت بر روی صفحه کلید تلفن وجود دارد (البته با احتساب حروف A، B، C و D تعداد کل سیگنال های DTMF 16 عدد می باشد). هریک از سیگنال های DTMF نیز از ترکیب دو موج سینوسی با فرکانس های مختلف تشکیل شده است. به عنوان مثال فشردن کلید 1 موجب تولید صدایی می شود که از ترکیب دو موج سینوسی با فرکانس های 697 هرتز و 1209 هرتز تشکیل شده است. جدول زیر فرکانس های تشکیل دهنده هر یک از 12 سیگنال DTMF را نشان می دهد:

AISRG

سیگنال های A، B، C و D نیز با افزودن ستون 1633 هرتزی می توانند تولید شوند. در این فرآیند انتخاب فرکانس ها به گونه ای صورت گرفته است که 1) هیچ فرکانسی مضربی از فرکانس دیگر نیست 2) اختلاف هیچ دو فرکانسی برابر با مقدار فرکانس دیگری در جدول نیست و 3) جمع هیچ دو فرکانسی برابر با مقدار فرکانسی دیگری در جدول نیست (کار مهندسی یعنی این!). شکل موج هریک از این 12 سیگنال نیز در زیر آمده است(به همان ترتیبی که در جدول فوق نشان داده شده است) :

1477 1336 1209
AISRG AISRG 697
AISRG AISRG AISRG 770
AISRG AISRG AISRG 852
AISRG AISRG AISRG 941

تکه کد زیر نیز نحوه تولید سیگنال DTMF مربوط به کلید 1 را در محیط MATLAB نشان می دهد :

>> i= 1:44096;
>> wv1 = (0.5*sin(2*pi* (697/44096) * i)) + (0.5*sin(2*pi* (1209/44096) * i)); >> wavplay(wv1,440966);

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

ترکیب، تفکیک و انطباق

AISRG

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

توجه به این نکته حائز اهمیت است که ترکیب چندین سیگنال همیشه موجب تولید یک سیگنال واحد می شود و این در حالی است که یک سیگنال را می توان به سیگنال های بیشماری تفکیک کرد. برای روشن شدن مطلب به این مثال توجه کنید. حاصل جمع عدد 3 و عدد 4 برابر با عدد 7 است (4+3=7). جمع عدد 3 و 4 را ترکیب کردن دو عدد می گوییم. تفکیک کردن عدد 7 نیز به این معنا است که آن را به چند عدد بشکنیم به گونه ای از ترکیب مجدد آن اعداد، مقدار 7 به دست آید. به عنوان مثال عدد 7 را می توان به اعداد 1، 2 ،4 یا 3،2،2 یا 1،6 و… تفکیک کرد. شکل زیر مفهوم ترکیب و تفکیک را نشان می دهد.

AISRG

ترکیب و تفکیک سیگنال دیجیتالی

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

سیگنال x وارد سیستم خطی شده و در نتیجه آن سیگنال خروجی y تولید می گردد. همانطور که در این شکل نشان داده است، سیگنال ورودی را می توان به تعدادی سیگنال ورودی ساده تر تفکیک کرد (در شکل این سیگنال ها با نام های مشخص گشته اند). سپس هریک از این سیگنال ها منحصرا وارد سیستم خطی شده و مجموعه سیگنال های خروجی را تولید می کنند (در شکل این سیگنال ها با نام های مشخص گشته اند). در نهایت سیگنال های خروجی با هم ترکیب شده وسیگنال خروجی y را تولید می کنند.

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

AISRG

سپس آن را چهار برابر کرده و شروع به شمردن مدادها در ذهن خود می کنید؟ قطعا چنین عملی را انجام نمی دهیم. بلکه ما نیز در اینجا به طور خودکار از عمل انطباق استفاده می کنیم. بدین معنی که ابتدا عدد 2041 را به سه عدد ساده تر ساده تر 1 + 40 + 2000 تفکیک کرده و سپس هریک از این سه مولفه را در عدد 4 ضرب می کنیم. درنهایت نیز نتایج به دست آمده را باهم جمع می کنیم. به عبارت دیگر 4 + 160 + 8000 = 8164. یک فرد خبره در پردازش سیگنال نیز هنگام کار کردن بر روی سیگنال های دیجیتالی سعی می کند با چنین نگرشی به یک سیگنال پیچیده نگاه کند.

پاسخ ضربه یک سیگنال دیجیتالی

هنگام بررسی مفهوم ترکیب و تفکیک دیدیم که یک سیگنال دیجیتالی را چگونه می توان به سیگنال های ساده تر تفکیک کرد و یا چگونه سیگنال های تفکیک شده را باهم ترکیب کنیم. یکی از مهمترین روش های تفکیک سیگنال های دیجیتالی در حوزه زمانی، تفکیک ضربه ای است (در حوزه زمانی محور افقی نشان دهنده زمان / مکان و محور عمودی برابر با مقدار سیگنال در آن زمان/مکان می باشد).

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

AISRG

در مقاله ترکیب و تفکیک نشان دادیم که برای ضرب کردن عدد 2041 در عدد 4 می توانیم ابتدا عدد 2041 را به سه عدد 1+40+2000=2041 تفکیک کنیم، سپس هریک ازاین اعداد را در عدد چهار ضرب کرده و با ترکیب آن ها نتیجه نهایی را به دست آوریم. به عبارت دیگر :

8164 = 1*4 + 40 * 4 + 2000 * 4 = (1 + 40 + 2000) * 4 = 2041 * 4
در اینجا نیز پس از آنکه سیگنال ورودی به سیگنال های ضربه تفکیک شد، می توانیم تک تک آن ها را وارد سیستم کرده و خروجی همه آن ها را به دستت آوریم. سپس با ترکیب همه خروجی ها نتیجه نهایی به دست می آید(منظور از ترکیب سیگنال همان جمع برداری سینگنال ها می باشد). به عبارت دیگر در این روش پس از انکه سیگنال ورودی با N نمونه را به N سیگنال ضربه ای تفکیک کردیم، هریک از این سیگنال های ضربه را وارد سیستم کرده و خروجی سیستم به ازای ورودی ضربه را به دست می آوریم. در نهایت با جمع برداری همه سیگنال ها می توانیم پاسخ نهایی سیستم برای سیگنال ورودی را محاسبه کنیم.

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

AISRG

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

function dec = impulseDecompose(signal)
sz = size(signal);
dec = zeros(sz(2),sz(2));
for i= 1:sz(2)
dec(i,i) = signal(i);
end
end

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

فرض کنید پاسخ ضربه یک سیستم نمونه را داریم و می خواهیم به ازای هر ورودی سیگنال، خروجی سیستم را به دست آوریم. واضح است که پاسخ ضربه می تواند هم اندازه با سیگنال ورودی نباشد (در اکثر موارد نیز چنین است). خروجی نهایی سیستم از کانوالو کردن سیگنال ورودی با پاسخ ضربه سیستم به دست می آید.
شکل زیر نشان می دهد که عملگر کانولوشن چگونه بر روی سیگنال ورودی اعمال می شود. فرض کنید سیگنال ورودی X و سیگنال خروجی Y ثابتت باشند. درمقابل، ماشین کانولوشن (هرچیزی که داخل کادر خط چین است) می تواند به چپ یا راست حرکت کند. پس از آنکه ماشین کانولوشن حرکت کرد، مقادیر آن زیر مقادیر سیگنال ورودی قرار می گیرند. سپس چهار نمونه از سیگنال ورودی وارد ماشین کانولوشن شده و با مقادیر نشان داده شده در ماشین کانولوشن (پاسخ ضربه) یک به یک ضرب می شوند. در نهایت نیزجمع کل حاصلضرب ها در نقطه متناظر از سیگنال خروجی قرار می گیرد. به عنوان مثال در شکل نشان داده شده، مقدار y[6] در خروجی با استفاده از مقادیر x(3..6) از سیگنال ورودی محاسبه شده است.

AISRG

برای محاسبه مقدار y(7) ماشین کانولوشن یک واحد به سمت راست حرکت کرده و مقادیری از سیگنال ورودی که بالای ماشین کانولوشن قرار دارند وارد ماشین شده و با مقادیر پاسخ ضربه ضرب می شوند در نهایت نیز جمع کل آن ها به عنوان مقدار y(7) برگردانده می شود. همین روند برای محاسبه کلیه نمونه های سیگنال خروجی تکرار می شود.

توجه کنید که نحوه چینش مقادیر پاسخ ضربه در داخل ماشین کانولوشن از اهمیت ویژه ای برخوردار است و باید به شکل راست به چپ باشد. راست به چپ کردن مقادیر پاسخ ضربه در داخل ماشین کانولوشن باعث می شود تا مقدار شماره 0 در سمت راست و سایر مقادیر به ترتیب و در سمت چپ آن قرار گیرند. حال که عمگر کانولوشن را توضیح دادیم می توانیم فرموله کردن آن بپردازیم. اگر x[n] سیگنال ورودی با N نمونه از 0 تا N-1 باشد و h[n] نیز سیگنالی M نقطه ای با اندیس 0 تا M-1 باشد کانولوشن این دو، سیگنالی با N+M-1 نمونه است که مقدار آن در هر نقطه به صورت زیر محاسبه می گردد:

AISRG

در محیط MATLAB از تابع conv برای کانولوشن دو سیگنال می توانیم استفاده کنیم. به عنوان مثال مجموعه دستورات زیر را وارد کرده و نتایج آن مشاهده کنید.

>> a = 0.5 * sin(2*pi*200/8000*[1:8000]);
>> plot(a(1:300))
>> r = rand(1,8000) ./ 10;
>> plot(r(1:300))
>> b = a + r;
>> plot(a(1:300)), hold on, plot(b(1:300),’r’)
>> i = -50:50;
>>filter = exp((i .* i) ./ (zeros(1,101)- 18)) ./ (ones(1,101) * (sqrt(2*pi)*3));
>> plot(filter)
>> c = conv(b,filter);
>> wavplay(a)
>> wavplay(b)
>> wavplay(c)
>> plot(a(1:300)), hold on, plot(b(1:300),’r’),plot(c(1:300),’kk’)

همانطور که در مقاله مربوط به موج سینوسی نشان دادیم، 2 دستور اول موج سینوسی با فرکانس 200 فرتز و نرخ نمونه برداری 8000 نمونه در ثانیه ایجاد می کند. سپس یک سیگنال تصادفی تولید شده و پس از جمع شدن با موج سینوسی، سیگنال جدیدی به دست می آید. در مرحله بعد یک فیلتر گاوسین (شکل روبرو) به اندازه 101 نمونه ایجاد می شود(این همان پاسخ ضربه سیستم را نشان می دهد). در نهایت سیگنال b با فیلتر گاوسین کانوالو شده و سیگنال c تولید می گردد.

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

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

AISRG

حوزه زمان و حوزه فرکانسی

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

AISRG

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

به نمودار فرکانس سیگنال نمودار طیف سیگنال نیز گفته می شود.

AISRG

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

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

تبدیل فوریه

همانطور که می دانید مهمترین ویژگی در ادای هر حرف فرکانس های تشکیل دهنده آن حرف می باشد. به عنوان مثال سه فرکانس اصلی حرف ” آ ” فرکانس های 750، 1150 و 2400 هرتر بوده و همین فرکانس های برای حرف ” او ” 400، 1150 و 2300 هرتز می باشند. بنابراین آنچه باعث تفکیک دو حرف ” آ ” و ” او ” از همدیگر می شود، فرکانس های تشکیل دهنده آن می باشد. از اینرو در کاربردهای پردازش گفتار پیدا کردن فرکانس های تشکیل دهنده یک سیگنال گفتاری از اهیت بسیار زیادی برخوردار می باشد.

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

AISRG

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

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

AISRG

از قانون اویلر نیز به یاد دارید که :

AISRG

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

AISRG

که در این رابطه N اندازه سیگنال ورودی، s(n) مقدار سیگنال ورودی در نقطه n، m اندیس فرکانس، S(m) اندازه فرکانس در اندیس m ام می باشند. همانطور که می دانید S(m) یک عدد مختلط است و بنابراین برای به دست اندازه فرکانس در اندیس mام باید بزرگی این عدد مختلط را محاسبه کرد. بزرگی یک عدد مختلط از رابطه زیر به دست می آید :

AISRG

پس از آنکه تبدیل فوریه بر روی سیگنال ورودی اعمال شد، بردار S در فرکانس های تشکیل دهنده سیگنال s دارای مقداری بسیار بزرگتر از 0 و در سایر نقاط بزرگی نزدیک به صفر خواهد داشت. بنابراین می توان برای پیدا کردن فرکانس های تشکیل دهنده یک سیگنال گفتار تبدیل فوریه را بر روی سیگنال ورودی اعالم کرده و پس از محاسبه بزرگی خروجی، فرکانس های تشکیل دهنده آن سیگنال را از روی بزرگی هر فرکانس استخراج کرد. در مقاله بعدی سعی می کنیم این مساله را به همراه سایر پارامترها و خصوصیات سیگنال گفتار مورد بررسی قرار دهیم. برای محاسبه تبدیل فوریه یک سیگنال در محیط MATLAB از تابع fft می توانید استفاده کنید:

>> a = sin(2*pi * 200/1000 * t);
>> b = sin(2*pi * 10/1000 * t);
>> c = sin(2*pi * 500/1000 * t);
>> d = a + b + c;
>> ffd = fft(d);
>> mffd = abs(ffd);
>> plot(mffd(1:5000))

در این تکه کد ابتدا سه موج سینوسی با فرکانس های 20، 10 و 500 هرتز تولید کرده و پس از ترکیب آن ها سیگنال جدیدی با نام d به وجود آوردیم. سپس با استفاده از تابع fft تبدیل فوریه سیگنال d را محاسبه کرده و با استفاده از تابع abs بزرگی سیگنال تبدیل شده را به دست آوردیم. در نهایت نیز به رسم سیگنال تبدیل شده پرداختیم.

در نموداری که بس از فراخوانی دستور plot برای شما نشان داده می شود، در نقاط 10، 200 و 500 نمودار دارای مقدار بزرگ بوده و در سایر نقاط دارای مقدار صفر است. این نشان می دهد که سیگنا ل d شامل فرکانس های 10، 200 و 500 هرتز می باشد.

مراجع و منابع

  1. ابويي اردكاني، محمد؛ نادر نقشينه، فاطمه شيخ شعاعي، فناوري پردازش گفتار و كاربرد آن در كتابخانه ها، مجله روانشناسي و علوم تربيتي دانشگاه تهران، 1385.
  2. آیت، سعید، مبانی پردازش سیگنال گفتار، ناشر: دانشگاه پیام نور،1387
  3. جكسون. تي و بيل. آر، آشنايي با شبكه‌هاي عصبي، ترجمه دكتر محمود البرزي، تهران : موسسة انتشارات علمي دانشگاه صنعتي شريف، چاپ دوم، 1383
  4. قمي، عليرضا، شبكه هاي عصبي، نشريه دنياي كامپيوتر و ارتباطات، شماره 12، صفحات 66 تا 69
  5. سعيدي، مسعود، شبكه هاي عصبي (2)، نشريه شبكه، شماره 52، اسفند 1383، صفحه 210 تا 211
  6. ناتان گوریچ، اوری گوریچ، خودآموز ویژوال سی در 21 روز، مترجم جعفرنژاد قمی
  7. مماني، حامد و نرگس پور اصغري حقي و ساعد علي ضمير، شبكه هاي عصبي و كاربردهای آن، نشريه صنايع، شماره 30
  8. سيستم هاي شناسايي صدا، بزرگراه رايانه9 (95) ،1385.
  9. دستگاههاي مترجم جهاني بزرگراه رايانه 8(77)، 1384.
  10. بدون محدوديت زبان سفر كنيد .روزنامه جام جم،5 آذر،1385.
  11. Metaxiotis, Kostas & John Psarras (2004), The Contribution of Neural networks and genetic algoritms to business decision support,Management decision, vol 42,no .2, Emerald group publishing limited , pp. 229.242
  12. Curry ,B & L. Moutinho (1993), Neural Network in marketing: Modelling consumer Responses to Advertising Stimuli ,European Journal of marketing, vol 27 ,no. 7 , MCB university press , pp 5. 20
  13. Wray, B, A. palmer & D.Bejou (1994),Using Neural Network Analysis to evaluate Buyer, Seller Relationships, European Journal of Marketing, vol 28 , no. 10 , MCB university press, pp 32.48
  14. Venugopal.V & W. Beats (1994), Neural networks and Statistical Techniques in marketing research, Marketing intelligence & planning, vol 12 , no. 7 , MCB university press, pp30. 38
  15. Davies, F,L. Moutinho & B. Curry (‌‌1996) ATM user attitudes: a neural network analysis, marketing intelligence & planning,vol14 , no.2,MCB university press,pp26 .32
  16. Austin Marshall March 3, 2005 neural Network for Speech Recognation
  17. Jurafsky, Daniel and Martin, James H. (2000) Speech and Language
  18. Processing:An Introduction to Natural Language Processing,Computational Linguistics, and Speech Recognition (1st ed.). Prentice Hall
  19. Golden, Richard M. (1996) Mathematical Methods for Neural Network Analysis and Design (1st ed.). MIT Press
  20. Anderson, James A. 1995) An Introduction to Neural Networks (1st ed.). MIT Press
  21. Hosom, John-Paul, Cole, Ron, Fanty, Mark, Schalkwyk, Joham, Yan, Yonghong,Wei, Wei (1999,February2). Training Neural Networks for Speech Recognition Center for Spoken Language Understanding, Oregon Graduate Institute of Science and Technology,
  22. Slaney, Malcolm Auditory Toolbox Interval Research Corporation
  23. Alan V.Oppenheim,Ronald W.Schafer,John R.Buck.Discrete Time Signal Processing .Prentice Hall International Edition
  24. Rafael C. Gonzalez,Richard E.Woods.Digital Image Processing. Translated by:M.Khademi (ph.D), D.Jafari. Ferdowsi University of Mashhad
  1. – Speech Recognition Systems
  2. – Text To Speech
  3. – Speech Recognition System
  4. -Hidden Markov Model
  5. – Kurzweil
  6. – Dragon
  7. – James K.Baker
  8. – Dragon Systems
  9. – Dragon Dictate
  10. – Dragon Naturally Speaking
  11. – Scansoft
  12. – Bill Gates
  13. -Office XP
  14. -Word 2002
  15. – Seton Hall University
  16. – Speech Recognition Systems
  17. – Carpal Tunnel Syndrome  
  18. -Global Autonomous Language Exploitation
  19. – board Dialogic
  20. -Analog -to-digital converter
  21. – Plosive Consonant
  22. – phoneme
  23. – Plot
  24. -burn
  25. – Hidden Markov Model
  26. – Neural Netwok Model
  27. -score
  28. – Speech To Text  
  29. -Speech To Speech
  30. – Speech To Command
  31. – IBM Voice Dictation for Linux
  32. – Myers Hidden Markov Model Software
  33. -Speech processing Lab
  34. – computer control
  35. – Consol Voice Control
  36. – Game Commander
  37. – PC Pocket
  38. Voice Command
  39. – Microsoft Office
  40. – Pentium
  41. – Notpad
  42. – Client
  43. – Microsoft Word
  44. – Notepad
  45. -Consol Voice Control
  46. -Game Commander
  47. -IBM Voice Dictation for Linux
  48. -Myers Hidden Markov Model Software
  49. – Offline
  50. -Cingular wireless
  51. – DRAGON NATURALLY PEAKIN
  52. – TUNGSTEN
  53. – Tellme networks
  54. – Noise
  55. -noise-canseling
  56. -Homonym
  57. – Digitization
  58. -Phonetic breakdown
  59. -Formant
  60. – Waning , Waxing
  61. – Matching
  62. – Confidence Score
  63. -Finite State
  64. -Quantization
  65. – Sampling
  66. -Coding
  67. -Glottis
  68. -Nasal
  69. – Velum
  70. – Palate
  71. – Epiglottis
  72. -Finite-State Automata & Regular Expresion
  73. -Comutational LINGUISTIC
  74. – Kleen
  75. -Finite-State Transducer
  76. – Weighted Transducer
  77. -Morphological Parsing
  78. – Lexicon
  79. – Morphotactics
  80. – Orthography Rules
  81. -Lexical Level
  82. -Surface Level
  83. -Finite-State Transduser
  84. -Leonard E. Baum
  85. – Deterministic Patterns
  86. – Non-deterministic patterns
  87. -stationarity
  88. – forward
  89. – viterbi
  90. – forward-backward
  91. N-gram Model

 

 

 

 

 

 

 

 

 

 

 

 

 

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

پروژه متلب

$
0
0

اگر پروژه متلب دارید و به دنبال انجام آن هستید میتوانید از طریق فرم زیر اقدام کنید.

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

فرم درخواست شبیه سازی
جهت هماهنگی و اطلاع رسانی استفاده می شود.
نتیجه بررسی و فایل‌های آموزشی و ... شما به این ایمیل ارسال خواهد شد
در دقت و مشاوره متخصصین سایت به شما تاثیر دارد
سفارشتون به کارشناس های این رشته ارسال خواهد شد.
اگر ورژن خاصی مدنظر شماست برای تهیه شبیه سازی ذکر نمایید
لطفا موضوع مقاله یا هدف اصلی را بنویسید و از استفاده کلماتی مثل "شبیه سازی" "شبیه سازی با متلب" "پروژه متلب" و.. خودداری نمایید.
لطفا به صورت مختصر آنچه از استادکار خود میخواهید بیان کنید.
لطفا در این قسمت به صورت کامل توضیحاتی در مورد سفارش یاداشت کنید
در صورت نیاز یکی از موارد بالا را انتخاب کنید
برای مثال 7روز - دقت فرمایید که موعد تحویل کمتر, قیمت را افزایش خواهد داد!

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

پروژه متلب (Matlab) و سیمولینک در زمینه مهندسی برق قدرت، برق کنترل و مخابرات و الکترونیک و الکترونیک صنعتی در سراسر ایران (به صورت آنلاین و کاملا غیر حضوری) در اختیار شماست

  •  برق قدرت
  •  برق کنترل
  •  برق مخابرات
  •  با الگوریتم های هوشمند
  •  در زمینه پردازش تصویر
  • پروژه شبکه های عصبی با متلب
  • پروژه در زمینه پردازش سیگنال های دیجیتال
  • پروژه منطق فازی با متلب
  • پروژه در زمینه مبحث سیگنال ها و سیستم ها
  • شبیه سازی سیستم های الکتریکی در محیط GUI نرم افزار متلب
  • شبیه سازی مقاله های برق و الکترونیک با نرم افزار متلب

همه این موارد را در فروشگاه متلبی بیابید. تمامی پروژه های متلب به همراه فایل کمک آموزشی (خودآموز) هستند.

نمونه ای از پروژه های برق کنترل را با کلیک روی لینک پروژه متلب برق کنترل ببینید.

نمونه ای از پروژه های برق قدرت را با کلیک روی لینک پروژه متلب برق قدرت ببینید.

برای گرایش های دیگر برق, مثل برق الکترونیک یا برق مخابرات کلیدواژه مدنظر خود را در فروشگاه متلبی جستجو کنید.

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

  • مباحث مربوط به تحلیل تنش
  • مباحث مربوط به تحلیل کمانش
  • مربوط به کامپوزیت و مواد مرکب
  • انجام پروژه با نرم­ افزار تحلیلی ABAQUS ، Ansys، Catia، Autocad
  • طراحی و تحلیل سازه کامپوزیتی
  • طراحی و تحلیل سازه مشبک مخروطی
  • بررسي و تحليل رفتار رشد ترک، شکل دهی فلزات ( فورجینگ , کشش عمیق , نورد , اکستروژن , کشش صفحات )
  • انجام پروژه بوسیله نرم‌افزارهای پرکاربرد مهندسی مکانیک جامدات :  با نرم افزار های کتیا , انجام پروژه انسیس ANSYSانجام پروژه آباکوس ABAQUS، پروژه متلب MATLAB, سالیدورک SOLIDWORKS, فرترن , فلوئنت , کریر , ورک بنچ , اپن فوام , فلوئنتCatia , Ansys , Abaqus , Matlab , SolidWorks , Fortran , Fluent , Carrier , Workbench , OpenFoam , fluent, EEE، …

نمونه ای از پروژه متلب مرتبط با مکانیک را با کلیک بر روی پروژه متلب مکانیک ببینید.

شما می توانید در فروشگاه متلبی , به ستون سمت راست فروشگاه مراجعه و با جستجوی کلیدواژه مدنظر, پروژه متلب مدنظرتان را بیابید.

پروژه متلب در تمامی مباحث هوا فضا قابل انجام است. تیم تخصصی متلبی دارای مجرب ترین کادر جهت انجام پروژه متلب هوا فضا است.

برای تمامی ارگان ها و سازمان ها اعم از خصوصی و دولتی طبق قوانین جمهوری اسلامی ایران قابل انجام است

نمونه هایی از پروژه متلب مربوط به هوافضا را در این لینک می توان مشاهده نمود.

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

انجام پروژه متلب شیمی در تمامی زمینه ها قابل انجام است:

انجام شبیه سازی با متلب سیستم های بیولوژیکی

انجام شبیه سازی در زمینه پلیمریزاسیون

بررسی اثرات کوانتومی در متلب

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

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

یکی از پروژه های متلب در زمینه شیمی در این لینک قابل مشاهده است

پروژه متلب مهندسی عمران از قبیل:

  • تحلیل و طراحی دستی و کامپیوتری
  • انجام پروژه فولاد و بتن
  • پروژه راه و بارگذاری
  • پروژه متره و برآورد
  • تهیه دفترچه محاسبات و ترسیم جزئیات سازه ای (سازه نگار و سازه ۹۰) با نرم افزارهای ETABS ، AutoCad ، Safe ، Sap

پروژه متلب عمران را به سایت متلبی بسپارید

  • انجام الگوریتم های فرا ابتکاری مبتنی بر یک جواب (تبرید شبیه سازی شده، جست و جوی حریصانه، جست و جوی همسایگی متغیر و …)
  • پروژه های متلب مکان یابی و مسیریابی در حوزه سلامت و درمان
  • انجام الگوریتم های فرا ابتکاری بر پایه جمعیت (الگوریتم ژنتیک، بهینه سازی کلونی مورچگان،بهینه سازی ازدحام ذرات، کلونی زنبور عسل، بهینه سازی تجمعی ذرات و…)
  • انجام الگوریتم های فرا ابتکاری در بهینه سازی ترکیبی(شبکه عصبی، آنیل شبیه سازی شده، جست و جوی ممنوعه)
  • پروژه متلب برنامه ریزی تولید
  • پروژه متلب سیستم تولید سلولی
  • پروژه متلب مکان یابی
  • پروژه متلب انبار های متقاطع Cross Docking
  • پروژه متلب زمان‌بندی
  • پروژه متلب مدیریت زنجیره تأمین
  • پروژه متلب مسیریابی خودرو یا VRP
  • پروژه متلب زمان‌بندی پروژه با محدودیت منابع یا RCPSP
  • پروژه متلب قابلیت اطمینان
  • پروژه متلب طراحی چیدمان
  • پروژه متلب مکان‌یابی هاب
  • پروژه متلب مسائل کنترل موجودی

بسیاری از این نوع پروژه های متلب را در فروشگاه متلبی میتوانید ببینید.

پروژه متلب کامپیوتر در تمامی مباحث آن توسط تیم تخصصی متلبی قابل انجام است

مواردی از قبیل:

  • پروژه متلب با الگوریتم های هوشمند مانند ازدحام ذرات, ژنتیک, جستجوی ممنوعه, رقابت استعماری, کرم شب تاب , حداقل مربعات خطا , مورچگان و…
  • انجام پروژه شبکه عصبی و فازی
  • انجام پروژه خوشه بندی جریان داده
  • انجام پروژه بهینه سازی نفوذ در شبکه
  • بهینه سازی زمان خواب در شبکه
  • انجام شبیه سازی با متلب یادگیری ماشین
  • پیش بینی سری زمانی با متلب
  • انجام پروژه بینایی ماشین
  • انجام محاسبات ابری در متلب

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

متخصصین کامپیوتر سایت متلبی منتظر درخواست شما هستند

نوشته پروژه متلب اولین بار در متلبی پدیدار شد.

انجام پروژه متلب

$
0
0

انجام پروژه متلب به همراه خودآموز از فعالیتهای اساسی و تخصصی سایت متلبی است.

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

هم اکنون پروژه متلب خود را ثبت کنید:

دسته ها

جدید
دیدگاه
برچسب ها
Internal error: could not generate a new tab SimMechanics 2G matlab matlab 2017 matlab project free دانلود پروژه متلب neural networks second-order taylor series shrinking و zooming آموزش Simulink آموزش سیمولینک متلب آموزش متلب انجام شبیه سازی با متلب انجام پروژه متلب انجام پروژه های کمک آموزشی برنامه متلب تخفیف تخفیف ویژه تقریب سری تیلور مرتبه دوم دانلود متلب دانلود متلب 2017 درس انتقال حرارت یا CFD دینامیک سیالات راهکار ارائه پیشنهاد، تطبیقی، Q- یادگیری، حراجهای ترکیبی روش های کنترل توان راکتیو در سیستم های قدرت پایداری ولتاژ شبکه جبران سازی سری و موازی خازن های ثابت کندانسور سنکرون SVC STATCOM UPFC سفارش شبیه سازی با متلب شبکه عصبی شبیه سازی با Matlab شبیه سازی با متلب شبیه سازی در matlab شناسایی سیستم شناسایی سیستم با متلب متلب مقالات شبیه سازی شده مقالات شبیه سازی شده با متلب مقالات شبیه سازی شده برق قدرت موتور القایی پروزه matlab پروژه Matlab پروژه آماده پروژه آماده متلب پروژه آماده مطلب پروژه برق قدرت با مطلب پروژه رایگان متلب پروژه متلب پروژه متلب با آموزش پروژه متلب برق

محل تبلیغ شما

فرم درخواست شبیه سازی
جهت هماهنگی و اطلاع رسانی استفاده می شود.
نتیجه بررسی و فایل‌های آموزشی و ... شما به این ایمیل ارسال خواهد شد
در دقت و مشاوره متخصصین سایت به شما تاثیر دارد
سفارشتون به کارشناس های این رشته ارسال خواهد شد.
اگر ورژن خاصی مدنظر شماست برای تهیه شبیه سازی ذکر نمایید
لطفا موضوع مقاله یا هدف اصلی را بنویسید و از استفاده کلماتی مثل "شبیه سازی" "شبیه سازی با متلب" "پروژه متلب" و.. خودداری نمایید.
لطفا به صورت مختصر آنچه از استادکار خود میخواهید بیان کنید.
لطفا در این قسمت به صورت کامل توضیحاتی در مورد سفارش یاداشت کنید
در صورت نیاز یکی از موارد بالا را انتخاب کنید
برای مثال 7روز - دقت فرمایید که موعد تحویل کمتر, قیمت را افزایش خواهد داد!
 انجام پروژه متلب

پروژه متلب, پروژه متلب برق,پروژه متلب مهندسی شیمی, پروژه متلب محاسبات عددی, پروژه متلب انتقال حرارت, پروژه متلب رایگان, پروژه متلب پردازش تصویر, پروژه متلب عمران, پروژه متلب اثر انگشت, پروژه متلب کنترل, دانلود رایگان پروژه متلب, انجام پروژه پردازش تصویر با متلب, انجام پروژه متلب برق,  هزینه انجام پروژه متلب, انجام پروژه متلب مکانیک, پروژه متلب کنترل, پروژه متلب اثر انگشت, پروژه متلب عمران, پروژه متلب پردازش تصویر, پروژه متلب رایگان, پروژه متلب انتقال حرارت, پروژه متلب محاسبات عددی, پروژه متلب مهندسی شیمی, پروژه متلب برق, پروژه های متلب,

انجام پروژه متلب (Matlab) و سیمولینک در زمینه مهندسی برق قدرت، برق کنترل و مخابرات و الکترونیک و الکترونیک صنعتی در سراسر ایران (به صورت آنلاین و کاملا غیر حضوری)

  • انجام پروژه متلب برق قدرت
  • انجام پروژه متلب برق کنترل
  • انجام پروزه متلب برق مخابرات
  • انجام پروژه متلب با الگوریتم های هوشمند
  • انجام پروژه متلب در زمینه پردازش تصویر
  • انجام پروژه شبکه های عصبی با متلب
  • انجام پروژه در زمینه پردازش سیگنال های دیجیتال
  • انجام پروژه منطق فازی با متلب
  • انجام پروژه در زمینه مبحث سیگنال ها و سیستم ها
  • شبیه سازی سیستم های الکتریکی در محیط GUI نرم افزار متلب
  • شبیه سازی مقاله های برق و الکترونیک با نرم افزار متلب

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

  • مباحث مربوط به تحلیل تنش
  • مباحث مربوط به تحلیل کمانش
  • مربوط به کامپوزیت و مواد مرکب
  • انجام پروژه با نرم­ افزار تحلیلی ABAQUS ، Ansys، Catia، Autocad
  • طراحی و تحلیل سازه کامپوزیتی
  • طراحی و تحلیل سازه مشبک مخروطی
  • بررسي و تحليل رفتار رشد ترک، شکل دهی فلزات ( فورجینگ , کشش عمیق , نورد , اکستروژن , کشش صفحات )
  • انجام پروژه بوسیله نرم‌افزارهای پرکاربرد مهندسی مکانیک جامدات :  با نرم افزار های کتیا , انجام پروژه انسیس ANSYSانجام پروژه آباکوس ABAQUS، انجام پروژه متلب MATLAB, سالیدورک SOLIDWORKS, فرترن , فلوئنت , کریر , ورک بنچ , اپن فوام , فلوئنتCatia , Ansys , Abaqus , Matlab , SolidWorks , Fortran , Fluent , Carrier , Workbench , OpenFoam , fluent, EEE، …

انجام پروژه متلب در تمامی مباحث هوا فضا قابل انجام است. تیم تخصصی متلبی دارای مجرب ترین کادر جهت انجام پروژه متلب هوا فضا است.

انجام پروژه متلب برای تمامی ارگان ها و سازمان ها اعم از خصوصی و دولتی طبق قوانین جمهوری اسلامی ایران قابل انجام است

انجام پروژه متلب شیمی در تمامی زمینه ها قابل انجام است:

انجام شبیه سازی با متلب سیستم های بیولوژیکی

انجام پروژه متلب در زمینه پلیمریزاسیون

بررسی اثرات کوانتومی در متلب

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

انجام پروژه متلب مهندسی عمران از قبیل:

  • تحلیل و طراحی دستی و کامپیوتری
  • انجام پروژه فولاد و بتن
  • پروژه راه و بارگذاری
  • پروژه متره و برآورد
  • تهیه دفترچه محاسبات و ترسیم جزئیات سازه ای (سازه نگار و سازه ۹۰) با نرم افزارهای ETABS ، AutoCad ، Safe ، Sap

انجام پروژه متلب عمران را به سایت متلبی بسپارید

  • انجام الگوریتم های فرا ابتکاری مبتنی بر یک جواب (تبرید شبیه سازی شده، جست و جوی حریصانه، جست و جوی همسایگی متغیر و …)
  • انجام پروژه های متلب مکان یابی و مسیریابی در حوزه سلامت و درمان
  • انجام الگوریتم های فرا ابتکاری بر پایه جمعیت (الگوریتم ژنتیک، بهینه سازی کلونی مورچگان،بهینه سازی ازدحام ذرات، کلونی زنبور عسل، بهینه سازی تجمعی ذرات و…)
  • انجام الگوریتم های فرا ابتکاری در بهینه سازی ترکیبی(شبکه عصبی، آنیل شبیه سازی شده، جست و جوی ممنوعه)
  • انجام پروژه های متلب برنامه ریزی تولید
  • انجام پروژه های متلب سیستم تولید سلولی
  • انجام پروژه های متلب مکان یابی
  • انجام پروژه های متلب انبار های متقاطع Cross Docking
  • انجام پروژه های متلب زمان‌بندی
  • انجام پروژه های متلب مدیریت زنجیره تأمین
  • انجام پروژه های متلب مسیریابی خودرو یا VRP
  • انجام پروژه های متلب زمان‌بندی پروژه با محدودیت منابع یا RCPSP
  • انجام پروژه های متلب قابلیت اطمینان
  • انجام پروژه های متلب طراحی چیدمان
  • انجام پروژه های متلب مکان‌یابی هاب
  • انجام پروژه های متلب مسائل کنترل موجودی

انجام پروژه متلب کامپیوتر در تمامی مباحث آن توسط تیم تخصصی متلبی قابل انجام است

مواردی از قبیل:

  • انجام پروژه متلب با الگوریتم های هوشمند مانند ازدحام ذرات, ژنتیک, جستجوی ممنوعه, رقابت استعماری, کرم شب تاب , حداقل مربعات خطا , مورچگان و…
  • انجام پروژه متلب شبکه عصبی و فازی
  • انجام پروژه متلب خوشه بندی جریان داده
  • انجام پروژه متلب بهینه سازی نفوذ در شبکه
  • بهینه سازی زمان خواب در شبکه
  • انجام شبیه سازی با متلب یادگیری ماشین
  • پیش بینی سری زمانی با متلب
  • انجام پروژه متلب بینایی ماشین
  • انجام محاسبات ابری در متلب

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

متخصصین کامپیوتر سایت متلبی منتظر درخواست شما هستند

دانلود نرم افزار متلب Mathworks Matlab 2017b

$
0
0

Mathworks Matlab یک نرم افزار قوی جهت دانشجویان و محققین رشته های ریاضی و مهندسی است که اولین نگارش آن در دانشگاه نیومکزیکو و استانفورد در سال ١٩٧٠ در جهت حل مسائل تئوری ماتریسها، جبر خطی و آنالیز عددی بوجود آمد و امروزه صدها هزار کاربر دانشگاهی، آکادمیک، صنعتی و … در زمینه های بسیار متنوع مهندسی نظیر ریاضیات پیشرفته، جبر خطی، مخابرات، مهندسی سیستم و … با MATLAB بعنوان یکی از اولین محیط های محاسباتی و تکنیکی که قادر به حل مسائل آنهاست، آشنا می شوند.
ریاضیات، زبان مشترک بسیاری از علوم مهندسی است. ماتریس ها، معادلات دیفرانسیل، رشته های عددی اطلاعات، ترسیمات و گراف ها از لوازم اصلی بکار گرفته در ریاضیات و نیز در MATLAB هستند.
MATLAB اکنون یک سیستم مؤثر و زبان برنامه نویسی بسیاری از محاسبات علمی و مهندسی است.

قابلیت های نرم‌افزار Mathworks Matlab :

مدل‌سازی فیزیكی
تحلیل‌های آماری
منطق فازی
واقعیت مجازی
پردازش تصویر
طراحی فیلتر
تحلیل‌های اقتصادی
شبكه‌های عصبی
طراحی سیستم‌های مخابراتی
و …

دانلود نرم افزار متلب 2017b

 

حجم فایل   –   11.6 گیگابایت

 

پسورد فايل فشرده :

پسورد دانلود متلب( پسورد را تايپ کنيد )

توضیحات نصب نرم افزار:

ابتدا دقت داشته باشید آنتی ویروس شما حتما غیرفعال باشد. حال، فایل های دانلودشده خود را از حالت فشرده خارج کنید. فایل ISO بدست آماده را توسط نرم افزار Daemon Tools اجرا کنید و شروع به نصب کنید. برای نصب مراحل زیر را انجام دهید:

۱) در ابتدای نصب، گزینه ی “Use a File Installation Key” را انتخاب کنید و عبارت زیر را قرار دهید (لطفا از کپی نمودن خودداری کرده و سریال زیر را به صورت دستی در نرم افزار تایپ کنید):

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

2) محصولاتی که تمایل به نصب آن ها را دارید، انتخاب کنید

۳) پس از اتمام نصب، نرم افزار را اجرا نکنید! تمامی فایل های موجود در پوشه “crack” را در محل نصب نرم افزار جایگزین کنید.

۴) دقت داشته باشید که برای شما Shortcut بر روی دسکتاپ ایجاد نمی شود. برای اجرای نرم افزار، به محل نصب نرم افزار و سپس به فولدر bin مراجعه کنید.

%installdir%\bin\matlab.exe

5) در اولین اجرای نرم افزار، از شما درخواست سریال می شود. گزینه ی “activate without internet” را انتخاب کرده و سپس فایلی که در فولدر crack شما با نام “lic_standalone.dat” می باشد را انتخاب کرده و به نرم افزار به عنوان لایسنس خود معرفی کنید.

 

اگر در زمان نصب نرم افزار متلب با مشکل لایسنس مواجه شدید می توانید از پست زیر کمک بگیرید:

پست های مرتبط:

نوشته دانلود نرم افزار متلب Mathworks Matlab 2017b اولین بار در متلبی پدیدار شد.


مشکل لایسنس متلب در زمان اجرای نرم افزار متلب

$
0
0

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

 

اتفاق اول:

شما این روزها در زمان باز کردن نرم افزار متلب, در قسمت کامند ویندوز چنین پیامی ببینید:

Your MATLAB license will expire in xx days.
Please contact your system administrator or
MathWorks to renew this license.

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

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

اتفاق دوم:

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

لایسنس متلب

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

 

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

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

  1. اگر لایسنس جدیدی دارید, تیک  Active manually without the internet را در پنجره بالا بزنید و سپس فایل لایسنس جدید را به نرم افزار وارد کنید.
  2.  اگر نرم افزار متلب باز می شود و پیغام منقضی شدن نرم افزار متلب را برای تعداد روز مشخصی می بینید, باید بصورت عکس زیر از منوی بالای متلب اقدام به شناسایی لایسنس جدید به متلب بکنید:

license active matlab      3. اگر لایسنس جدید ندارید, تنها راه برای باز شدن نرم افزار متلب عقب کشیدن تاریخ ویندوز شماست. لایسنس های نرم افزار متلب با توجه به تاریخ فعلی ویندوز شما کار می کنند. پس اتصال خود را از اینترنت قطع کنید, (یا آپدیت اتومات تاریخ و زمان ویندوز را به حالت دستی بگذارید) و بعد تاریخ ویندوز خود را مثلا به یکسال قبل برگردانید. حالا نرم افزار متلب را اجرا کنید و از آن استفاده کنید.

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

برای تغییر تاریخ ویندوز به آدرس زیر بروید:

Control Panel\Clock, Language, and Region

همین آدرس را کپی و در قسمت آدرس یک پوشه ویندوز جایگذاری (پیست) کنید و اینتر را بزنید.


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

 

 

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

شبیه سازی مقالات شناسایی سیستم با متلب

$
0
0

سایت متلبی بزرگترین و حرفه ای ترین سایت انجام پروژه متلب است و آمادگی شبیه سازی مقالات شناسایی سیستم با متلب را دارد.

اگر نیاز به شبیه سازی مقاله در زمینه شناسایی سیستم دارید. از طریق فرم ثبت سفارش سایت اقدام نمایید.

متخصصین سایت متلبی آماده انجام پروژه متلب شما را دارند. شبیه سازی با متلب


انجام پروژه متلب (Matlab) و سیمولینک در زمینه مهندسی برق قدرت، برق کنترل و مخابرات و الکترونیک و الکترونیک صنعتی در سراسر ایران (به صورت آنلاین و کاملا غیر حضوری)

  • انجام پروژه متلب برق قدرت
  • انجام پروژه متلب برق کنترل
  • انجام پروزه متلب برق مخابرات
  • انجام پروژه متلب با الگوریتم های هوشمند
  • انجام پروژه متلب در زمینه پردازش تصویر
  • انجام پروژه شبکه های عصبی با متلب
  • انجام پروژه در زمینه پردازش سیگنال های دیجیتال
  • انجام پروژه منطق فازی با متلب
  • انجام پروژه در زمینه مبحث سیگنال ها و سیستم ها
  • شبیه سازی سیستم های الکتریکی در محیط GUI نرم افزار متلب
  • شبیه سازی مقاله های برق و الکترونیک با نرم افزار متلب

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

  • مباحث مربوط به تحلیل تنش
  • مباحث مربوط به تحلیل کمانش
  • مربوط به کامپوزیت و مواد مرکب
  • انجام پروژه با نرم­ افزار تحلیلی ABAQUS ، Ansys، Catia، Autocad
  • طراحی و تحلیل سازه کامپوزیتی
  • طراحی و تحلیل سازه مشبک مخروطی
  • بررسي و تحليل رفتار رشد ترک، شکل دهی فلزات ( فورجینگ , کشش عمیق , نورد , اکستروژن , کشش صفحات )
  • انجام پروژه بوسیله نرم‌افزارهای پرکاربرد مهندسی مکانیک جامدات :  با نرم افزار های کتیا , انجام پروژه انسیس ANSYSانجام پروژه آباکوس ABAQUS، انجام پروژه متلب MATLAB, سالیدورک SOLIDWORKS, فرترن , فلوئنت , کریر , ورک بنچ , اپن فوام , فلوئنتCatia , Ansys , Abaqus , Matlab , SolidWorks , Fortran , Fluent , Carrier , Workbench , OpenFoam , fluent, EEE، …

انجام پروژه متلب در تمامی مباحث هوا فضا قابل انجام است. تیم تخصصی متلبی دارای مجرب ترین کادر جهت انجام پروژه متلب هوا فضا است.

انجام پروژه متلب برای تمامی ارگان ها و سازمان ها اعم از خصوصی و دولتی طبق قوانین جمهوری اسلامی ایران قابل انجام است

انجام پروژه متلب شیمی در تمامی زمینه ها قابل انجام است:

انجام شبیه سازی با متلب سیستم های بیولوژیکی

انجام پروژه متلب در زمینه پلیمریزاسیون

بررسی اثرات کوانتومی در متلب

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

انجام پروژه متلب مهندسی عمران از قبیل:

  • تحلیل و طراحی دستی و کامپیوتری
  • انجام پروژه فولاد و بتن
  • پروژه راه و بارگذاری
  • پروژه متره و برآورد
  • تهیه دفترچه محاسبات و ترسیم جزئیات سازه ای (سازه نگار و سازه ۹۰) با نرم افزارهای ETABS ، AutoCad ، Safe ، Sap

انجام پروژه متلب عمران را به سایت متلبی بسپارید

  • انجام الگوریتم های فرا ابتکاری مبتنی بر یک جواب (تبرید شبیه سازی شده، جست و جوی حریصانه، جست و جوی همسایگی متغیر و …)
  • انجام پروژه های متلب مکان یابی و مسیریابی در حوزه سلامت و درمان
  • انجام الگوریتم های فرا ابتکاری بر پایه جمعیت (الگوریتم ژنتیک، بهینه سازی کلونی مورچگان،بهینه سازی ازدحام ذرات، کلونی زنبور عسل، بهینه سازی تجمعی ذرات و…)
  • انجام الگوریتم های فرا ابتکاری در بهینه سازی ترکیبی(شبکه عصبی، آنیل شبیه سازی شده، جست و جوی ممنوعه)
  • انجام پروژه های متلب برنامه ریزی تولید
  • انجام پروژه های متلب سیستم تولید سلولی
  • انجام پروژه های متلب مکان یابی
  • انجام پروژه های متلب انبار های متقاطع Cross Docking
  • انجام پروژه های متلب زمان‌بندی
  • انجام پروژه های متلب مدیریت زنجیره تأمین
  • انجام پروژه های متلب مسیریابی خودرو یا VRP
  • انجام پروژه های متلب زمان‌بندی پروژه با محدودیت منابع یا RCPSP
  • انجام پروژه های متلب قابلیت اطمینان
  • انجام پروژه های متلب طراحی چیدمان
  • انجام پروژه های متلب مکان‌یابی هاب
  • انجام پروژه های متلب مسائل کنترل موجودی

انجام پروژه متلب کامپیوتر در تمامی مباحث آن توسط تیم تخصصی متلبی قابل انجام است

مواردی از قبیل:

  • انجام پروژه متلب با الگوریتم های هوشمند مانند ازدحام ذرات, ژنتیک, جستجوی ممنوعه, رقابت استعماری, کرم شب تاب , حداقل مربعات خطا , مورچگان و…
  • انجام پروژه متلب شبکه عصبی و فازی
  • انجام پروژه متلب خوشه بندی جریان داده
  • انجام پروژه متلب بهینه سازی نفوذ در شبکه
  • بهینه سازی زمان خواب در شبکه
  • انجام شبیه سازی با متلب یادگیری ماشین
  • پیش بینی سری زمانی با متلب
  • انجام پروژه متلب بینایی ماشین
  • انجام محاسبات ابری در متلب

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

متخصصین کامپیوتر سایت متلبی منتظر درخواست شما هستند

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

آموزش حذف نويز تصوير با استفاده از جعبه ابزار ويولت (waveletmenu)

$
0
0

در اين پست آموزشی با روش حذف نويز تصوير در محيط نرم افزار  متلب آشنا مي شويم. حذف نويز از تصوير را مي توان به عنوان يک بخش از پردازش و يا به عنوان يک فرايند مستقل در نظر گرفت. در مورد اول، حذف نويز تصوير به منظور بهبود دقت الگوريتم هاي مختلف پردازش تصوير از جمله ثبت و يا دسته بندي به کار مي رود. درمورد دوم، حذف نويز با هدف بهبود کيفيت تصوير جهت بازرسي بصري به کار مي رود. حفاظت از اطلاعات تصوير مربوطه به خصوص در زمينه پزشکي بسيار مهم است زيرا در کاربردهاي تشخيصي اگر حذف نويز به درستي انجام نشود آناليزهاي بعدي دچار مشکل شده و ممکن است پزشک در تشخيص نهايي دچار اشتباه شود. بنابراين يکي از مهم ترين مسائلي که بايد به آن توجه کافي شود بحث حذف نويز و کاهش آن ها در تصاوير پزشکي است به خصوص در تصوير برداري MRI و سونوگرافي که کاربرد زيادي در پزشکي دارند.
هدف از اين آموزش نشان دادن کاربرد تحليل ويولت دوبعدي و نيز تحليل ويولت ايستان دوبعدي در حذف نويز تصاوير است. حذف نويز يکي از مهم ترين کاربردهاي ويولت محسوب مي شود. براي شروع کار، ابتدا دستور wavemenu را در محيط Command نرم افزار
MATLAB تايپ کنيد و سپس بر روي کليد Enter  فشار دهيد. شکل1، جعبه ابزار ويولت به منظور حذف نويز را نشان مي دهد. تصويري که در اين آموزش مورد استفاده قرار مي گيرد، تصوير معروف لنا Lena))است که در حوزه پردازش تصوير بسيار کاربرد دارد. تصوير لنا در شکل2 نشان داده شده است. براي حذف نويز ابتدا Wavelet 2-D را انتخاب کنيد. از منوي File -> Load -> Image و در مسير toolbox/wavelet/wavedemo فايل noiswom.mat را انتخاب کنيد. اين تصوير، يک تصوير نويزي است که به عنوان ورودي مي تواند مورد استفاده قرار گيرد. تصوير نويزي مطابق شکل3 است.

wavelet menu

شکل(1)جعبه ابزار ویولت

تحليل حذف نويز را به کمک ويولت دابيچز (db) و در دو سطح تجزيه انجام دهيد. نتيجه تحليل به صورت شکل 4 است. همان طور که در اين شکل مشاهده مي شود، چهار تصوير ظاهر شده است

lena

شکل(2): تصویر lena

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

تصویر نویزی در متلب

شکل(3): تصویر نویزی

 

waveletmenu matlab
شکل4) آناليز ويولت تصوير نويزي

حال دکمه De-noise  در سمت راست و وسط پنجره را فشار دهيد تا پنجره مربوط به فرآيند حذف نويز مطابق شکل5 باز شود.

denoise matlab
شکل5) فرآيند حذف نويز

در ابزار گرافيکي ظاهر شده، مقادير آستانه ها براي آستانه گيري هر يک از سيگنال هاي دوبعدي جزئيات به طور خودکار و توسط يکي از روش هاي انتخاب شده توسط کاربر تعيين مي شود. از منوي Select Thresholding Method گزينه  Penalize low را انتخاب کنيد و سپس دکمه ي De-noise را فشاردهيد. نتيجه به صورت شکل6 است. همان طور که ملاحظه مي شود، در تصوير حذف نويز شده، اثر بلوکي به چشم مي خورد. شدت اين اثر اگر نوع آستانه گيري را Penalize High انتخاب کنيد، بيشتر مي شود. شکل7 نمايش تصوير حذف نويز شده با استفاده از Penalize high را نشان مي هد.

Penalize low
شکل6) نمايش تصوير اصلي و حذف نويز شده با آستانه Penalize low

Penalize high
شکل7) نمايش تصوير اصلي و حذف نويز شده با آستانه Penalize high

يک راه براي کاهش اثر بلوکي استفاده از تبديل ويولت ايستان SWT (Stationary Wavelet Transform) است. تبديل DWT معمولي داراي خاصيت تغييرناپذيري بازمان نيست. براي داشتن تقريبيِ چنين خاصيتي از تبديل SWT مي توان استفاده کرد. در اين تبديل بين چند تصوير خروجي، ميانگين گرفته مي شود. هر تصوير خروجي، حاصل از يک تبديل DWT معمولي اما با ضرايب درونيابي شده (ɛ-Decimated) است. براي استفاده از  SWT در اين آموزش، از پنجره اصلي انتخاب روش تحليل، از منوي Specialized Tools 2-D روش SWT Denoising 2-D را انتخاب کنيد. به همان شيوه بيان شده، تصوير نويزي را بارگذاري کنيد. ويولت دابيچز با دو سطح تجزيه را انتخاب کرده و

Penalize low

شکل8): نمایش تصویر اصلى و حذف نویز شده با آستانه Penalize low
به روش SWTو db2

 

دکمه Decompose Image دهيد. در اينجا هم نوع آستانه گيري را مشابه قبل، از نوع Penalize Low انتخاب کنيد. همچنين به کمک تنظيم نوار لغزان Sparsity مقدار آستانه را در حدود 50 قرار دهيد تا مقداري مشابه آزمايش قبل بوده و در نتيجه مقايسه نتايج صحيح و معتبر باشد. حال دکمه De-noise را فشار دهيد. نتيجه نهايي بدست آمده به صورت شکل8 است.
ملاحظه مي شود که نتيجه نسبت به آزمايش قبلي، قابل قبول تر است. البته اين نتيجه را باز هم مي توان بهتر کرد.

مایش تصویر اصلى و حذف نویز شده با آستانه low Penalizeبه روش SWTو

شکل 9):  نمایش تصویر اصلى و حذف نویز شده با آستانه low Penalizeبه روش SWTو sym6

 

براي اين کار از ويولت  sym6استفاده کنيد. نتيجه کار به صورت شکل9 خواهد بود.

این یکی از کاربرد های waveletmenu در متلب است.

منابع
1-هادي گرايلو، تبديل موجک و کاربردهاي آن، دانشگاه صنعتي شاهرود- دانشکده برق و رباتيک
2- مريم محسن زاده، علي رفيعي، محسن معصومي، ارائه روشي نوين در حذف نويز تصاوير MRI سه بعدي با استفاده از تابع ويولت مختلط درختي دوگانه، اولين همايش ملي مهندسي برق و کامپيوتر در شمال کشور، 1393.

 

شاید مایل باشید در مورد موضوعات زیر بیشتر بدانید:

نوشته آموزش حذف نويز تصوير با استفاده از جعبه ابزار ويولت (waveletmenu) اولین بار در متلبی پدیدار شد.

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

$
0
0

موضوع: پخش بار اقتصادی سیستم تولید همزمان برای قرارداد دو جانبه فیزیکی با استفاده از الگوریتم ژنتیک

چکیده

برای حل اقتصادی سیستم های تولید همزمان که با استفاده از چندین ژنراتور Mw را به مشتریان خاصی (باس بارها) از طریق قرارداد دو جانبه تحویل می دهند، از روش الگوریتم ژنتیک استفاده می کنیم. در این روش محدودیت های سیستم دو جانبه در تولید همزمان در نظر گرفته می شود. پارامترهای الگوریتم ژنتیک برای عملیات همگرایی بررسی می شوند. سیستم 30 باسه نمونه IEEE برای تست الگوریتم مورد بررسی قرار می گیرد.

  1. مقدمه

در کشورهای زیادی هم اکنون برای بازسازی بازارها، مقررات جدیدی وضع شده است. در این میان مزایده و قراردادهای دو جانبه دو مدل از داد و ستدهای اصلی هستند که به دو بخش قراردادهای فیزیکی و مالی تقسیم شده اند. قرار داد دوجانبه فیزیکی شامل دو موسسه است (فروشنده و خریدار) که به ازای مقدار Mw انتقالی مشخصی قرارداد می بندند ]2[. در یک بازار انرژی، صاحب سیستم انتقال می تواند به عنوان سومین بخش برای فراهم کردن چرخه مورد نیاز برای خریداران (بارها یا شرکت های توزیع) و فروشندگان (نیروگاهها و یا شرکت های وابسته به نیروگاهها) عمل کنند. قرارداد دو جانبه مالی وابسته به نرخ بازار برای مشترکین است. در این پروژه روی قراردادهای دوجانبه فیزیکی کار می شود.

قراردادهای دوجانبه فیزیکی از قوانین اصلی در بازارهای انرژی هستند که ناشی از رشد چشمگیر تولیدات توان مستقل (IPP) و ژنراتورهای غیر مفید (NUG) می باشند. در گذشته تحقیقات زیادی بر روی چرخه محاسبه هزینه ]3-7[ و ارزیابی گنجایش شبکه های مورد استفاده ]7[ انجام شده است. هزینه جابجایی (روش تمبر پستی و روش مسیرقراردادی) ]3,4,5[ ، هزینه حاشیه ای]3,5,6[ و هزینه افزایشی ]3,5[ وهزینه Mw-mile ]3,5,7[ در گذشته بحث شده اند. متلبی

سیستم تولید همزمان یکی از NUGهاست. این سیستم نقش بسیار مهمی را در صنعت انرژی بازی می کند. سیستم تولید همزمان در کارخانه ها نه تنها انرژی مورد نیاز را فراهم می کند، بلکه گرمای مورد استفاده در کارخانه را نیز تامین می کند. اگر انرژی الکتریکی تولید شده در کارخانه بیش از نیاز کارخانه باشد، این انرژی می تواند به خریداران در باس های دیگر منتقل شود.

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

در بخش بعدی در مرحله اول مدلی برای سیستم تولید همزمان فراهم می شود. سپس فرمول مسئله در مرحله بعد داده می شود. نمای کلی الگوریتم ژنتیک مشخص می شود و نتایج شبیه سازی بر اساس مدل 30 باسه IEEE در بخش بعدی نشان داده می شود.

  1. مدلی برای سیستم تولید همزمان
    1. سیستم تولید همزمان back-pressure

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

شکل1. یک سیستم تولید همزمان back-pressure

    1. توابع آنتالپی بویلر و ژنراتور

تصور کنید I سیستم تولید همزمان در I باس مختلف وجود دارند،i=1,….I. فرض می شود این سیستمهای تولید همزمان جداگانه متعلق به یک شرکت هستند. برای iامین سیستم تولید همزمان، بویلر وجود دارد. تابع آنتالپی برای بویلر با فشار بالا از رابطه زیر به دست می آید:

به طوریکه:

  • : آنتالپی سوخت (MBTU/h) داخل jامین بویلر فشار بالا برای (T/h) بخار خروجی.

: بخار با فشار بالا (T/h), تولید شده از jامین بویلر در باس i

: ثابت های تابع آنتالپی بویلر برای jامین بویلر در باس i,

به عبارت دیگر, تابع آنتالپی برای توربین- ژنراتور مطابق رابطه زیر می باشد:

به طوریکه:

: آنتالپی (MBTU/h) مصرف شده بوسیله jامین توربین برای تولید (MW) در باس i,

: توان تولیدی (MW) بوسیله jامین توربین ژنراتور در باس i

: ثابت های تابع آنتالپی برای jامین توربین- ژنراتور در باس i,

  1. فرمول بندی مسئله
    1. فرضیات

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

  1. تنها یک شرکت صاحب سیستم های تولید همزمان در باس های مختلف می باشد.
  2. سیستم تولید همزمان از نوع back-pressure می باشد.
  3. سیستم گنجایش لازم برای انتقال (ATC) بر طبق قرارداد دوجانبه را دارد.
  4. توزیع کننده در سیستم تولید همزمان مسئول امنیت سیستم نمی باشد اما تمایل به اجتناب از انتقال تولید همزمان توسط قراداد دوجانبه را دارد.
    1. تابع هدف

تابع هدف که شامل هزینه سوخت (آنتالپی) و هزینه سیکل می باشد، مطابق رابطه زیر است:

به طوریکه:

i: شماره باس ها،

j: شماره سیستم های تولید همزمان،

CT: تابه نهایی ($(

UCSi: هزینه سوخت ($/MBTU) برای تولید بخار با فشار بالا در باس i

WCT: هزینه سیکل ($/MWh)

PGi: MW نهایی تولید شده در باس i

جمله اول در معادله (3) هزینه سوخت برای همه سیستم های تولید همزمان می باشد. جمله دوم هزینه سیکل است که با استفاده از روش تمبر پستی محاسبه می شود.

    1. ثابت های تعادل بخار

تعادل فشار متوسط و فشار بالا در یک سیستم تولید همزمان طبق روابط زیروجود دارد:

به طوریکه:

: بخار فشار بالا (T/h) مورد نیاز در باس i

: آنتالپی مصرف شده (MBTU/T) برای تولید الکتریسیته بین بخار وارد و خارج شده به توربین

: شار بخار با فشار متوسط (T/h) عبور کرده از شیرهای بخار در باس i

  • : سرعت جهش آب از شیرهای بخار در باس i

: مصرف بخار با فشار متوسط (T/h) در باس i

    1. ثابت های تعادل توان

MW تولید شده در باس I طبق رابطه زیر برای مصارف داخلی و همینطور خریداران صرف می شود:

به طوریکه:

: بار داخلی (MW) در باس i

: بار نهایی خریداران (MW) در باس های مختلف

: MW تولیدی برای jامین ژنراتور در باس i

    1. ثابت های محدودیت عملیات

بخار، MW و شار بخار در شیرهای بخار برای سیستم های تولید همزمان دارای محدودیت هایی می باشند:

که

:محدودیت ماکزیمم (مینیمم) بخار برای jامین بویلر در باس i

:محدودیت ماکزیمم (مینیمم) تولید MW برای jامین ژنراتور در باس i

:محدودیت ماکزیمم (مینیمم) بخار برای شیرهای بخار در باس i

  1. روش شبیه سازی

محاسبه یک بار در محیط M-file و بار دیگر با استفاده ازOptimization Tool انجام شده است.

    1. Optimization Tool

گزینه هایی که در این محیط استفاده شده اند، در پایین توضیح داده شده اند.

Options: عملیاتی که در این بخش صورت گرفته شده در شکل 2 نشان داده شده است.

option.JPG

option2.JPG

شکل 2. تنظیمات انجام شده در optimization tool

Problem Setup and Results: برای تنظیم مسئله اصلی و فراخوانی دو تابع fitness و constraint تغییرات زیر را در قسمت problem setup and results از optimization tool اعمال می کنیم.

untitled.JPG

شکل 3. تغییرات انجام شده در optimization tool برای تنظیم مسئله

راه دیگر اجرای برنامه این است که دستورات مورد استفاده در الگوریتم ژنتیک را در محیط M-file می نویسیم. برای استفاده از الگوریتم ژنتیک در حل مسئله از 3 تابع M-file استفاده می کنیم، که شامل تابع simple_constraint برای قیود، simple_fitness برای نوشتن تابع اصلی و objectivefunction برای تطبیق مسئله در الگوریتم ژنتیک می باشد.

فرضیاتی که درتابع الگوریتم ژنتیک در نظر گرفته می شود به این صورت می باشد که تابع fitness وconstraint دارای یک ورودی x هستند که شامل تعدادی المان به اندازه متغیرهایمان می باشد. تابع fitness مقدار تابع اصلی را محاسبه می کند و یک مقدار عددی می دهد.

Objectivefunction نیز شامل دستورات مربوط به الگوریتم ژنتیک می باشد. این دستورات برای بهینه سازی مسئله در نظر گرفته می شوند، که در اینجا از دستورات crossover، migration و mutation استفاده شده است.

Crossover برای تعین این که چطور والدین با هم ترکیب شوند تا فرزندان به وجود آیند، در نظر گرفته می شود. که در اینجا از crossovertwopoint برای اینکار استفاده می شود. Crossovertwopoint دو عدد صیح m و n بین 1و تعداد متغیرها به طور تصادفی انتخاب می کند و روند زیر را برای به دست آوردن فرزند طی می کند.

m عدد اول از بردار حاصله (فرزند) شامل m عدد اول از اولین والد می باشند و از m+1 تا n شامل اعداد والد دوم می باشند و از n+1 به بعد دوباره شامل اعداد والد اول می باشند.

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

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

  1. نتایج شبیه سازی

در این پروژه سیستم 30باسه IEEE به عنوان مثال در نظر گرفته شده است که در شکل 4 دیده می شود. در این شکل 2 سیستم تولید همزمان در 2 باس مختلف قرار دارند. هر سیستم تولید همزمان 5 ژنراتور و بویلر با توابع انتالپی یکسان دارند.

واحدهای تولید همزمان در باس های 8 و 11 قرار دارند. در حالی که خریداران در باس های 21 (MW 13.5) و 30 (MW 7.5) می باشند. نرخ گردشی 0.092 است. دیگر اطلاعات سیستم تولید همزمان در جدول 1 مشخص شده اند. Mi و Pi، بخار و تولید در بویلر و ژنراتور iام را نشان می دهند.

جدول 1. اطلاعات دو سیستم تولید همزمان در باس های 8 و 11 برای سیستم 30 باسه IEEE

واحد 2 واحد 1
5 5 شماره واحد
باس 11 باس 8 موقعیت
157.12 157.12
113 113
656 635
25 25 بار داخلی (MW)
0 0
200 200
0.315395 0.315395
11.54% 11.54% Ri

نتایج شبیه سازی در جدول 2 مشاهده می شود.

جدول 2. نتایج به دست آمده از شبیه سازی

نیروگاه 2

نیروگاه 1

204.8954 199.3721 M1
119.9508 62.3872 M2
97.9198 62.5771 M3
104.8083 92.1220 M4
249.9418 131.3598 M5
777.5161 547.8182 بخار نهایی (MBTU)
0 15.8331
10.9154 15 P1
9.8349 15 P2
7.3819 15 P3
8.781 15 P4
10.7762 14.9999 P5
47.6894 74.9999 تولید نهایی(MW)
1136900 هزینه($/h)

فایل های مطلب برای اجرای برنامه نیز ضمیمه شده است.

فروشگاه متلبی

تمامی مباحث فوق را می توانید با خرید پروژه متلب آن تهیه کنید

مراجع:

[1] Ying-Yi Hong, Chih-Yuan Li, Back-Pressure Cogeneration Economic Dispatch For Physical Bilateral Contract Using Genetic Algorithms, 9th International Conference on Probabilistic Methods Applied to Power Systems KTH, Stockholm, Sweden – June 11-15, 2006.

[2] “Electric Power Wheeling and Dealing,” Congress of United State, Office of TechnologyAssessment,Washington D.C., 1989.

[3] H.H. Happ, “Cost of Costing Methodologies,” IEEE Trans. on Power

Systems, Vol. 9, No. 1, Feb. 1994, pp. 147-156.

[4] J.W. Marangon Lima, “Allocation of Transmission Fixed Charges: An

Overview,” IEEE Trans. on Power Systems, Vol. 11, No. 3, Aug. 1996, pp.

1409-1418.

[5] D. Shirmohammadi, X.V. Filho, B. Gorenstin and M.V.P. Pereira, “Some

Fundamental Technical Concepts about Cost Based Transmission

Pricing,”IEEE Trans. on Power Systems, Vol. 11, No. 2, May 1996, pp.

1002-1008.

[6] H.M. Merrill and B.W. Erickson, “Wheeling Rates Based on

Marginal-Cost Theory,” IEEE Trans. on Power Systems, Vol. 4, No. 4, Oct.

1989, pp. 1445-1451.

[7] D. Shirmohammad, P.R. Gribik, E.T.K. Law, J.H. Malinowski, R.E.

O’Donnell, “ Evaluation of Transmission Network Capacity Use for

Wheeling Transactions,”IEEE Trans. on Power Systems, Vol. 4, No. 4,

Oct. 1989, pp. 1405-1413.

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

آموزش دستورات متداول در متلب

$
0
0

برای شروع به کار با متلب بایستی شناخت خوبی نسبت به دستوارت متلب داشت. برای همین دستورات پر کاربردی را در ذیل جهت معرفی آورده ایم:

ایجاد ماتریس:

A=[1,2,3 ; 4,5,6]

A=[1:10]

A=[1:2:10]

A=[10:-1:1]

A=zeros(2,3) ایجاد ماتریس 2 در3 با مقادیر صفر

A=ones(4,6) ایجاد ماتریس 4 در6 با مقادیر یک

ترانهاده ماتریس A:

T=A’

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

A(2,3) عنصر سطر2 ستون 3

A(:,2) عناصر ستون 2

A(1,:) عناصر سطر 1

A(3:6, 2:4) ستونهای 2 تا 4 از سطرهای 3 تا 6

دستیابی به ستون آخر یک ماتریس:

A(:,end)

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

sum(A)

sum(A’)’ مجموع سطرهای یک ماتریس دو بعدی

بدست آوردن مقادیر روی قطر اصلی A:

diag(A)

ایجاد ماتریس جادویی n×n: (ماتریس جادویی ماتریسی است که مجموع تمام سطرها و ستونها و قطرهای آن برابر است)

magic(n)

می خواهیم جای ستونهای دوم و سوم در ماتریس B را جابهجا کرده و نتیجه را در A ذخیره نماییم:

A=B(: , [1,3,2,4])

توابع مقدماتی پرکاربرد:

  • abs(A)
  • exp(A)
  • sin(A)
  • sqrt(A)
  • factorial(n)
  • log2(A) لگاریتم در مبنای 2
  • log10(A) لگاریتم در مبنای 10

برای مشاهده لیست توابع مقدماتی عبارت help elfun را تایپ کنید.

عملگرهای محاسباتی:

  • A=B+C جمع ماتریسی
  • A=B-C تفریق ماتریسی
  • A=B*C ضرب ماتریسی
  • A=B .* C ضرب عناصر متناظر در یکدیگر
  • A=B ./ C تقسیم عناصر متناظر بر یکدیگر
  • A=B .^ C به توان رساندن هر عنصر به عنصر متناظرش

اگر B یک ماتریس n×m باشد و C یک عدد اسکالر (یک ماتریس 1×1) باشد آنگاه عملگرهای فوق مقدار موجود در C را در تک تک مقادیر B اِعمال میکنند. بنابراین عبارت A=B+1 تک تک مقادیر B را با 1 جمع کرده و در A ذخیره میکند. عبارت A=B.^2 نیز تک تک مقادیر B را به توان 2 رسانده و نتیجه را در A ذخیره میکند.

روشی بدست آوردن باقیمانده تقسیم:

A=mod(B,C)

ایجاد یک ماتریس 3×4 از اعداد تصادفی که دارای توزیع یکنواخت بین 0 تا 1 میباشند:

A=rand(3,4)

ایجاد یک ماتریس 3×4 از اعداد تصادفی بین a تا b

A=floor((b-a+1)*rand(3,4)+a)

ایجاد یک ماتریس 1×n که اعداد صحیح 1 تا n به ترتیب تصادفی در آن قرار گرفتهاند:

A=randperm(n)

ایجاد ماتریس با n×m که در هر سطر عناصر 1 تا m به طور تصادفی قرار داده شده اند

for i=1:n

A(i,:)=randperm(m);

end

روند کردن اعداد:

  • A=fix(B) گرد کردن به سمت صفر
  • A=round(B) گرد کردن به سمت نزدیک ترین عدد صحیح(براساس رقم اعشار)
  • A=ceil(B) گرد کردن به سمت مثبت بینهایت
  • A=floor(B) گرد کردن به سمت منفی بینهایت

مرتب کردن هر یک از ستونهای ماتریس B بطور جداگانه:

A=sort(B)

مرتب کردن سطرهای ماتریس B ابتدا بر اساس ستون اول سپس ستون دوم و الی آخر:

A=sortrows(B)

مرتب کردن سطرهای ماتریس B فقط بر اساس ستون سوم:

A=sortrows(B,3)

حذف ستون دوم ماتریس A:

A(: , 2) = []

میانگین هر یک از ستونهای ماتریس B:

A=mean(B)

میانه هر یک از ستونهای ماتریس B:

A=median(B)

انحراف از معیار هر یک از ستونهای ماتریس B:

A=std(B)

مینیمم هر یک از ستونهای ماتریس B:

A=min(B)

ماکسیمم هر یک از ستونهای ماتریس B:

A=max(B)

یافتن اندیس عددهای غیر صفر در ماتریس B:

A=find(B)

یافتن اندیس سطر و ستون خانه مساوی 2 ماتریس B:

[i,j]=find(B==2)

یافتن اندیس سطر و ستون خانه مساوی 2 در سطر سوم از ماتریس B:

[i,j]=find(B(3,:)==2)

یافتن اندیس عددهای بین 1 تا 5 در ماتریس B:

A=find(A>1 & A<5)

جمع تجمعی عناصر ماتریس B:

A=cumsum(B)

حاصل ضرب عناصر ماتریس B:

A=prod(B)

تولید n عدد در فواصل مساوی که از a شروع و به b ختم میشود:

A=linspace(a,b,n)

ترسیم دو بعدی y برحسب x:

plot(x,y)

ترسیم سه بعدی:

plot3(x,y,z)

دستور زیر مقادیری از B که از 6 بزرگتر است را در A ذخیره میکند:

A=B(B>6)

شیفت دادن چرخشی: دستور زیر ماتریس B را یک واحد در جهت عمودی (از بالا به پایین) و دو واحد در جهت افقی (از راست به چپ) شیفت چرخشی میدهد.

A=circshift(B, [1, -2])

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

size(A)

دستور زیر طول یک بردار را برمیگرداند: (اگر A دارای بیش از یک بعد باشد، طول طولانیترین بعد برگردانده میشود)

length(A)

با دستور زیر میتوان تابع f را در محیط editor مشاهده کرد و در صورت دلخواه آن را تغییر داد. با این دستور حتی میتوان توابع خود MATLAB را نیز ویرایش نمود.

edit f

دستور زیر ماتریس B را بصورت تنک (خلوت) در A ذیره میکند. اگر تعداد زیادی از مقادیر یک ماتریس برابر با صفر باشد با این روش میتوان در تخصیص حافظه صرفهجویی کرد.

A = sparse(B)

دستور زیر ماتریس B را از حالت تنک به حالت کامل تبدیل کرده و در A ذخیره میکند.

A = full(B)

توابع مخصوص رشتهها:

  • strcat متصل کردن دو رشته
  • strcmp مقایسه دو رشته
  • strcmpi مقایسه دو رشته صرفنظر از بزرگ یا کوچک بودن حروف

تمام جایگشتهای ممکن مقادیر یک بردار:

perms(A)

حذف مقادیر تکراری از یک بردار:

unique(A)

نمایش هیستوگرام مقادیر یک ماتریس:

hist(A,…)

دستورات کار با تصاویر:

  • I=imread(‘pic1.jpg’) خواندن تصویر
  • imshow(I) نمایش تصویر
  • imwrite(I, ‘pic2.gif’) ذخیره تصویر
  • figure باز کردن پنجره جدید برای عکس بعدی تا عکس قبلی از بین نرود

اشتراک دو مجموعه:

intersect(A,B)

دستورات برنامه نویسی در متلب:

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

حلقه ها

for i=start : end

دستورات

end

while(شرط)

دستورات

end

if(شرط)

دستورات

end

اجرای برنامه تا فشردن یک کلید متوقف میماند:

pause

اجرای برنامه به مدت n ثانیه متوقف میماند:

pause(n)

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

try

statements

catch

statement

end

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

guide

با دستور زیر میتوان مدت زمان اجرای هر یک از خطوط برنامه را مشاهده کرد.

profile {on, off, viewer}

نمایش پیغام: نحوه استفاده از این دستور همانند printf() در زبان C است.

fprintf(‘\n i=%d’, i)

نمایش پیغام خطا و خروج از اجرای برنامه:

error(‘your error message’)

 

شاید علاقه مند باشید مطالب زیر را هم ببینید:

 

 

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

نوشتن و کار با فایل MEX. در متلب توسط زبان ++C

$
0
0

راهنمای نوشتن و کار با MEX. در متلب (MATLAB) توسط زبان برنامه نویس ++C

شاید برای شما سوال بوجود آمده باشد که چرا باید از فایل mex در متلب استفاده کنیم. یکی از مزیت های مهم این کار بخاطر افزایش سرعت اجرای برنامه متلب است. MATLAB یک زبان ترجمه شده (interpreted) ست که در اون هر عملیات نیاز به پردازش اضافی داره. در زبان‌های تفسیر شده مثل C یا C++‎ این زمان اضافی رو نداریم. MATLAB دارای مکانیزم ایجاد کد بصورت لحظه ای و فوری هست که این مشکل را در مواردی کاهش می‌ده.

تعریف (Nomenclature): کامپایلر (Compiler)، متلب (MATLABTM

کنسول (Console, MATLAB Command Window )، فایل ساده (eg: hello.cpp )

قبل از هر اقدامی، از وجود کامپایلر C++ در کامپیوتر خود مطمئن شوید. این کار با اجرای یک فایل ساده قابل آزمایش است. در غیر اینصورت نرم افزار Visual Studio 2012 Ultimate را بطور کامل نصب کنید. این نرمافزار شامل کامپایلر مذکور میباشد.

  • فایل ساده (hello.cpp) را در مسیر متلب قرار دهید.
  • با دستور

>> mex -setup

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

Welcome to mex -setup. This utility will help you set up

a default compiler. For a list of supported compilers, see

http://www.mathworks.com/support/compilers/R2011a/win32.html

Please choose your compiler for building MEX-files:

Would you like mex to locate installed compilers [y]/n?

پاسخ دهید: Yes با تایپ y

Would you like mex to locate installed compilers [y]/n?y

خواهید دید:

Select a compiler:

[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2011a\sys\lcc

[0] None

Compiler:

انتخاب کنید: 1

Compiler: 1

مجددا تایید کنید:

Please verify your choices:

Compiler: Lcc-win32 C 2.4.1

Location: D:\PROGRA~1\MATLAB\R2011a\sys\lcc

Are these correct [y]/n? 1

  • اکنون زمان کامپایل کردن فایل ساده (hello.cpp) با دستور زیر است:

>> mex hello.cpp

توجه داشته باشید که انتخاب زیر، نسبت به انتخاب فوق، دارای استقلال نسبت به سیستمهای نصب شده در کامپیوتر شما میباشد (Independent from the Platform):

>> mex -win32 hello.cpp

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

>> hello

Hello, world!

مثالهای آماده در متلب در دایرکتوری extern/examples/mex/ موجود است که میتوان حتی آنرا با دستور زیر، ادیت و اصلاح نمود:

>> edit([matlabroot ‘/extern/examples/mex/explore.c’])

کد ساده (hello.cpp)

% hello.cpp

#include “mex.h” /* Always include this */

void mexFunction(int nlhs, mxArray *plhs[], /* Output variables */

int nrhs, const mxArray *prhs[]) /* Input variables */

{

mexPrintf(“Hello, world!\n”); /* Do something interesting */

return;

}

خب توضیحات بالا یک مثال عامیانه و مبتدی در این زمینه بود

حالا دقیق تر به این مورد می پردازیم.
همانطور که می دانید سرعت اجرای حلقه ها و دستورات کنترلی در متلب پایین است. سه روش برای بهبود سرعت پردازش ها وجود دارد: preallocation، بردارسازی و استفاده از توابعی به نام MEX File
پیش تعریف کردن آرایه ها و بردارسازی برنامه که نیازی به توضیح زیادی ندارد و کسانی که با زبان متلب آشنایی داشته باشند می توانند به راحتی آن را پیاده سازی کنند.
و اما MEX Fileها. در برخی شرایط که استفاده از بردارسازی ممکن نباشد یا حتی استفاده از آن، سرعت اجرای برنامه را به دلیل افزایش کاربرد حافظه کاهش بدهد, در این شرایط باید حلقه‌ها و توابع را تبدیل به فایل‌های MEX نمود. فایل‌های MEX مانند توابع داخلی MATLAB، فایل‌های کامپایل شده هستند. بنابراین بسیار سریع هستند. کار با توابعی که بصورت فایل MEX در آمده‌اند بسیار ساده است. این توابع مانند دیگر توابع می‌توانند بطور مستقیم توسط MATLAB فراخوانده بشوند. در MATLAB با کاربرد دستور mex ، فایل‌های MEX مبتنی بر C یا Fortran ایجاد کرد.
برای اجرای فایل های MEX نیاز هست که ابتدا کامپایلر آن را با کپی دستور زیر در Command window نصب نمود.

1
mex       -setup

اما قبل از آن لازم هست ابتدا ++visual C را به همراه windows sdk نصب کنید. در صورتی که نصب windows sdk با مشکل مواجه شد ابتدا از کنترل پنل این دو برنامه را حذف کنید:

Microsoft Visual C++‎‎ 2010 x86 Redistributable
Microsoft Visual C++‎‎ 2010 x64 Redistributable
بعد windows SDKs رو می شود نصب کرد. بعد از آن نصب کامپایلر Mex با کدی که در بالا نوشته شده. همینطور بعد از آن می شود دوباره ورژن جدید ++C نصب کرد و به تنظیمات قبل برگشت.
حالا نوبت نوشتن و یا تبدیل کد متلب به کد زبان C یا C++‎ است. به دو طریق می توان Mex File رو ایجاد کرد. روش اول به این صورت است که با استفاده از محیط متلب و یا C++‎ تابعی که در واقع گلوگاه برنامه ما و زمانبر هست رو خودمان به صورت دستی بنویسیم که این کار نیاز به آشنایی به سینتکس های زبان C یا C++‎ دارد که با توجه به اینکه زبان متلب شبیه این دو زبان هست کار سختی نیست. مشکل این روش خطایابی آن هست که کمی پیچیده است. با Mex File می توانید از توابع دیگر در متلب ورودی دریافت کنید و یا خروجی Mex File را به توابع دیگر در متلب بدهید. برای این کار لازم هست بلد باشید با چه دستوری یک متغیر یا پارامتر را به عنوان ورودی دریافت کنید و با چه دستوری خروجی را به توابع دیگر ارسال کنید. در لینک زیر با همه این دستورات آشنا میشید. (نیاز به ف ی ل ت ر ش ک ن)
http://www.shawnlankton.com/2008/03/…hort-tutorial/
راه خیلی ساده تری هم وجود دارد, اینکه از طریق برنامه متلب خیلی راحت کد نوشته شده را تبدیل به Mex file کنید و راحت آن را اجرا کنید. تقریبا بدون هیچ دردسری! در ویدئویی که لینکش رو می زارم خیلی راحت میتونید این کارو انجام بدید. تنها با دیدن چند دقیقه ابتدایی و چند دقیقه انتهایی میتونید کد متلب رو به Mex File تبدیل کنید. (نیاز به ف ی ل ت ر ش ک ن)
http://www.youtube.com/watch?v=IZJ-IlI3QR0
استفاده از Mex File به طور چشمگیری سرعت اجرای برنامه را بالا می برد. در تجربه من زمان اجرای یک برنامه را از 7 دقیقه به 4 ثانیه، همان مسئله در ابعاد بزرگتر از 45 دقیقه به 9 ثانیه (!) کاهش داد و باز همان مسئله در ابعاد خیلی بزرگتر که قبل از استفاده از Mex File بعد از 5 ساعت به هیچ جوابی نرسیده بودم بعد از استفاده از Mex File ، بعد از 45 دقیقه به جواب آخر رسیدم

شاید علاقه مند باشید مطالب زیر را هم ببینید:

نوشته نوشتن و کار با فایل MEX. در متلب توسط زبان ++C اولین بار در متلبی پدیدار شد.

دانلود رایگان مقالات ، مجلات، کتاب‌های مرجع از سایت‌های معتبر

$
0
0

دانلود رایگان مقالات، مجلات ، کتاب‌های مرجع از سایت‌های معتبر توسط سایت libgen.org

Science Direct, ISI, Elsevier, Springer, IETdl, ACM, SIAM, IJE, IEEE


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

برای دانلود مقالات عموما به‌ صورت مستقیم به سایت‌های معتبر ارائه دهنده مقالات و ژورنال ها مراجعه کرده یا از طریق جستجو در موتورهای جستجو مثل گوگل به این سایت‌ها مراجعه می‌کنیم.

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

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

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

در زیر روند حل این مشکل را به شما آموزش می‌دهیم:

Step 0 – مثلا می‌خواهیم مقاله با موضوع Space Time Block code را دانلود کرده و یا از پیش نام دقیق مقاله را می‌دانیم. فرض کنید به سایت ieee رجوع کردیم. اما در این سایت نمی‌توانیم مقاله را رایگان دانلود نماییم.
مطابق با مراحل زیر پیش می‌رویم.

دانلود مقاله رایگان

Step 1 – مطابق شکل بالا عنوان مقاله مورد نظر را کپی کرده یا در صورتی که عنوان دقیق یا تقریبی مقاله یا کتاب یا حتی نویسنده آن را می‌دانید می‌توانید مستقیماً به Step 2 بروید.

به آدرس http://libgen.org (پایین همین صفحه آدرس جدید سایت را قرار داده ایم) مراجعه کنید.
Step 2 – بعد از مراجعه به سایت مذکور وارد صفحه ای به شکل زیر می‌شوید.

دانلود مقاله رایگان

مواردی که در تصویر بالا شماره گذاری شده اند به این صورت است: در قسمت 2 می‌توانید نام مقاله را وارد نمایید.  در صورت نیاز به دانلود کتاب, عنوان آن را در قسمت 1 و در صورت نیاز به دانلود مجله داشتید عنوان آن را در قسمت 3 وارد نمایید.
همچنین در قسمت 4 می‌توانید جستجوی خود را برحسب پارامترها و فیلترهای مختلفی مانند نویسنده، مجله، ناشر، سال چاپ و …. تنظیم نمایید.
قسمت 5 برای سایر نیازها نظیر مجله‌های کمیک یا کتاب‌های علمی تخیلی می‌تواند مورداستفاده قرار گیرد.
Step 3 – واردکردن اطلاعات دقیق یا حدودی که از مقاله، مجله با کتابی که می‌خواهیم آن را دانلود کنیم در قسمت مربوط به خودش وارد می‌ کنیم.

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

دانلود رایگان مقالات

Step 4 – پس از واردکردن عنوان یا هر نوع اطلاعاتی از مقاله، کتاب یا مجله در قسمت مربوط به خود و کلیک نمودن بر روی دکمه جستجو, نتایج جستجو در این مرحله نشان داده می‌شود
برحسب اطلاعاتی که وارد نمودید ممکن است چندین مقاله پیدا شود, که شما می‌توانید نتایج جستجو را توسط قسمت‌هایی که در کادر شماره 1 ملاحظه می‌کنید فیلتر نمایید…

همان‌طور که می‌بینید مقاله مورد نظر ما به عنوان یافته اول نمایش داده شده که لینک دانلود آن در کادر آبی سمت چپ قرار دارد.

دانلود رایگان مقالات

Step 5 – نتیجه: پس از کلیک نمودن روی لینک مربوطه مقاله دانلود می‌شود. دانلود از این سایت قابلیت این را دارد که بعدا دانلود را کامل کنید و با قطع شدن اینترنت لینک دانلود خراب نمی شود, فقط همزمان نمی‌توانید بیش از 1 دانلود داشته باشید.

دانلود رایگان مقاله ها


حداقل مربعات در متلب

$
0
0

حداقل مربعات در متلب را با چند مثال مختلف بررسی می کنیم.

برای آموزش شبیه سازی روش های حداقل مربعات و حداقل مربعات بازگشتی و… در متلب مثال های عملی را با هم بررسی می کنیم.

فرض کنیم چنین سوالاتی مطرح است:

1-سیستم زیر را در نظر بگیرید که در آن ) e(tنویز سفید با واریانس 0/1است.

فرض کنید پارامتر a=0.7و b=2باشد با اعمال روش هاي
الف- حداقل مربعات و ب- حداقل مربعات بازگشتی تخمین پارامترهاي aو bرا بدست آورید و رسم نمایید.تغییرات پارامترها
را نسبت به تعداد تکرارها رسم نموده و نحوه همگرایی تخمین پارامترها را توضیح دهید.سپس روشهاي مختلف را با هم
مقایسه کنید.
-2فرض کنید مدل ریاضی سیستم بصورت زیر است

ورودي uبه سیستم و خروجی yبه صورت زیر است پارامترهاي a0و b0و b1را با روش حداقل مربعات تخمین بزنید.

-3سیستم

با ورودي PRBSکه داراي دامنه ±1است در نظر بگیرید با فرض ) e(tنویز سفید با واریانس واحد شبیه سازي کنیددو
مدل براي سیستم زیر در نظر بگیرید


با در نظر گرفتن N=100این مدلها را با روش هاي
حداقل مربعات
حداقل مربعات تعمیم داده شده
متغییرهاي کمکی
تخمین زده و با هم مقایسه کنید

 

با پروژه آماده متلب که در زیر قرار داده شده و آموزش آن با کامنت گذاری مشخص شده است بخوبی میتوان همه مراحل را دید:

=================================

clc;پاک کردن صفحه متلب

clear all;پاک کردن متغیرهای گذشته و بلا استفاده

close all;بستن نمودارهای باز

%==========================================================================

%Q1سوال شماره 1

a=0.7;مقدار پارامتر

b=2;مقدار پارامتر

sigm_e=0.1;واریانس نویز

N=100;تعداد داده ها

N1=N;متغیر کمکی برای ذخیره تعداد داده ها

y=zeros(1,N);تعریف بردار خروجی

u=50*idinput(N);ورودی شناسایی

ep=wgn(1,N,0);نویز سفید

sigm_ep=1/(N)*sum(ep.^2);واریانس نویز

e=sqrt(sigm_e/(sigm_ep))*ep;ایجاد نویز با واریانس مورد نظر

جمع آوری داده از سیستم

for t=2:N

y(t)=-a*y(t-1)+b*u(t-1)+e(t);

end

y1=y;u1=u;

ترسیم داده های شناسایی

figure (1)

subplot(2,1,1);stairs(1:1:N,y,’b’,’linewidth’,2);grid on;axis([1 N -400 400]);ylabel(‘y’);

subplot(2,1,2);stairs(1:1:N,u,’b’,’linewidth’,2);grid on;axis([1 N -60 60]);ylabel(‘u’);xlabel(‘sample’);

%Least squaresروش حداقل مربعات

Phi=zeros(N-1,2);ماتریس داده ها

Y=zeros(N-1,1);بردار خروجی

for t=2:N

Phi(t,:)=[-y(t-1),u(t-1)];

Y(t)=y(t);

end

teta=(Phi.’*Phi)\Phi.’*Y;محاسبه پارامترها

teta1=teta;

نمایش مقادیر داده در صفحه متلب

disp(‘Q1: Least squares estimation for N=100’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b=’);disp(teta(2));

N=200;تکرار شبیه سازی برای تعداد داده های بیشتر

N2=N;

y=zeros(1,N);

u=50*idinput(N);

ep=wgn(1,N,0);

sigm_ep=1/(N)*sum(ep.^2);

e=sqrt(sigm_e/(sigm_ep))*ep;

for t=2:N

y(t)=-a*y(t-1)+b*u(t-1)+e(t);

end

y2=y;u2=u;

Phi=zeros(N-1,2);

Y=zeros(N-1,1);

for t=2:N

Phi(t,:)=[-y(t-1),u(t-1)];

Y(t)=y(t);

end

teta=(Phi.’*Phi)\Phi.’*Y;

teta2=teta;

disp(‘Q1: Least squares estimation for N=200’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b=’);disp(teta(2));

N=300;تکرار شبیه سازی برای تعداد داده های بیشتر

N3=N;

y=zeros(1,N);

u=50*idinput(N);

ep=wgn(1,N,0);

sigm_ep=1/(N)*sum(ep.^2);

e=sqrt(sigm_e/(sigm_ep))*ep;

for t=2:N

y(t)=-a*y(t-1)+b*u(t-1)+e(t);

end

y3=y;u3=u;

Phi=zeros(N-1,2);

Y=zeros(N-1,1);

for t=2:N

Phi(t,:)=[-y(t-1),u(t-1)];

Y(t)=y(t);

end

teta=(Phi.’*Phi)\Phi.’*Y;

teta3=teta;

disp(‘Q1: Least squares estimation for N=300’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b=’);disp(teta(2));

N=400;تکرار شبیه سازی برای تعداد داده های بیشتر

N4=N;

y=zeros(1,N);

u=50*idinput(N);

ep=wgn(1,N,0);

sigm_ep=1/(N)*sum(ep.^2);

e=sqrt(sigm_e/(sigm_ep))*ep;

for t=2:N

y(t)=-a*y(t-1)+b*u(t-1)+e(t);

end

y4=y;u4=u;

Phi=zeros(N-1,2);

Y=zeros(N-1,1);

for t=2:N

Phi(t,:)=[-y(t-1),u(t-1)];

Y(t)=y(t);

end

teta=(Phi.’*Phi)\Phi.’*Y;

teta4=teta;

disp(‘Q1: Least squares estimation for N=400’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b=’);disp(teta(2));

ترسیم درصد خطای نسبی تخمین پارامترها بر حسب تعداد داده ها

Nv=[100,200,300,400];

Er_Nv_a=[abs(a-teta1(1))/a,abs(a-teta2(1))/a,abs(a-teta3(1))/a,abs(a-teta4(1))/a]*100;

Er_Nv_b=[abs(b-teta1(2))/b,abs(b-teta2(2))/b,abs(b-teta3(2))/b,abs(b-teta4(2))/b]*100;

figure (2)

subplot(2,1,1);bar(Nv,Er_Nv_a,’b’);xlabel(‘N’);ylabel(‘a relative error (%)’);

subplot(2,1,2);bar(Nv,Er_Nv_b,’b’);xlabel(‘N’);ylabel(‘b relative error (%)’);

%Recursive least squaresروش حداقل مربعات بازگشتی

lmbd=0.98;ضریب فراموشی

P=1e6*eye(2); ماتریس

teta_rls1=zeros(2,N1);ماتریس تخمین ها

تخمین حداقل مربعات بازگشتی

for t=2:N1

phi=[-y1(t-1);u1(t-1)];

Kt=P*phi/(lmbd*eye(1)+phi.’*P*phi);

P=(eye(2)-Kt*phi.’)*P/lmbd;

teta_rls1(:,t)=teta_rls1(:,t-1)+Kt*(y1(t)-phi.’*teta_rls1(:,t-1));

end

ترسیم پارامترهای تخمینی به روش حداقل مربعات و مقادیر واقعی و مقادیر روش قبل

figure (3)

subplot(2,1,1);stairs(1:N1,teta1(1)*ones(1,N1),’b’,’linewidth’,2);grid on;

hold on;

stairs(1:N1,teta_rls1(1,:),’g’,’linewidth’,2);

hold on;

stairs(1:N1,a*ones(1,N1),’r’,’linewidth’,2);

legend(‘LS for N=100′,’RLS for N=100′,’a=0.7’);

subplot(2,1,2);stairs(1:N1,teta1(2)*ones(1,N1),’b’,’linewidth’,2);grid on;

hold on;

stairs(1:N1,teta_rls1(2,:),’g’,’linewidth’,2);

hold on;

stairs(1:N1,b*ones(1,N1),’r’,’linewidth’,2);

legend(‘LS for N=100′,’RLS for N=100′,’b=2’);

%==========================================================================

%Q2سوال شماره 2

u=[1,0.8,0.6,0.4,0.2,0,0.2,0.4,0.6,0.8,1,0.8,0.6,0.4,0.2];

y=[0.9,2.5,2.4,1.3,1.2,0.8,0,0.9,1.4,1.9,2.3,2.4,2.3,1.3,1.2];

N=length(u);

ترسیم داده های شناسایی

figure (4)

subplot(2,1,1);stairs(1:1:N,y,’b’,’linewidth’,2);grid on;axis([1 N -1 4]);ylabel(‘y’);

subplot(2,1,2);stairs(1:1:N,u,’b’,’linewidth’,2);grid on;axis([1 N -1 2]);ylabel(‘u’);xlabel(‘sample’);

Phi=zeros(N-1,3);

Y=zeros(N-1,1);

for t=2:N

Phi(t,:)=[-y(t-1),u(t),u(t-1)];

Y(t)=y(t);

end

teta=(Phi.’*Phi)\Phi.’*Y;تخمین پارامترها

disp(‘Q2: Least squares estimation’);

disp(‘estimated a1=’);disp(teta(1));

disp(‘estimated b0=’);disp(teta(2));

disp(‘estimated b1=’);disp(teta(3));

%==========================================================================

%Q3سوال شماره 3

پارامترها

a=-0.9;

b0=1;

b1=0.5;

c=1;

sigm_e=1;

N=200;

y=zeros(1,N);

u=idinput(N);

ep=wgn(1,N,0);

sigm_ep=1/(N)*sum(ep.^2);

e=sqrt(sigm_e/(sigm_ep))*ep;

for t=3:N

y(t)=-a*y(t-1)+b0*u(t-1)+b1*u(t-2)+c*e(t);

end

figure (5)

subplot(2,1,1);stairs(1:1:N,y,’b’,’linewidth’,2);grid on;axis([1 N -20 20]);ylabel(‘y’);

subplot(2,1,2);stairs(1:1:N,u,’b’,’linewidth’,2);grid on;axis([1 N -2 2]);ylabel(‘u’);xlabel(‘sample’);

% Model A — Least squares تخمین جداقل مربعات برای مدل اول

Phi=zeros(N-1,3);

Y=zeros(N-1,1);

for t=3:N

Phi(t,:)=[-y(t-1),u(t-1),u(t-2)];

Y(t)=y(t);

end

teta=(Phi.’*Phi)\Phi.’*Y;

disp(‘Q3: Least squares estimation’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b0=’);disp(teta(2));

disp(‘estimated b1=’);disp(teta(3));

%Model A — Extended Least squares تخمین حداقل مربعات تعمیم یافته برای مدل اول

Phi=zeros(N-1,4);

Y=zeros(N-1,1);

teta0=[teta(1);teta(2);teta(3);1];

teta=teta0;

for t=3:N

Phi(t,:)=[-y(t-1),u(t-1),u(t-2),y(t-1)-Phi(t-1,:)*teta];

Y(t)=y(t);

if (t<10)

teta=teta0;

else

teta=(Phi(1:t,:).’*Phi(1:t,:))\Phi(1:t,:).’*Y(1:t);

end

end

disp(‘Q3: Extended Least squares estimation’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b0=’);disp(teta(2));

disp(‘estimated b1=’);disp(teta(3));

disp(‘estimated c=’);disp(teta(4));

%Model A — Instrumental variables روش متغیرهای کمکی

Phi=zeros(N-1,3);

Z=zeros(N-1,3);

Y=zeros(N-1,1);

for t=4:N

Phi(t,:)=[-y(t-1),u(t-1),u(t-2)];

Z(t,:)=[u(t-1),u(t-2),u(t-3)]; متغیرهای کمکی انتخاب شده

Y(t)=y(t);

end

teta=(Z.’*Phi)\Z.’*Y;تخمین پارامترها

disp(‘Q3: Instrumental variable estimation’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b0=’);disp(teta(2));

disp(‘estimated b1=’);disp(teta(3));

% Model B — Least squares روش حداقل مربعات برای مدل دوم

Phi=zeros(N-1,3);

Y=zeros(N-1,1);

for t=3:N

Phi(t,:)=[-y(t-1),u(t-1),u(t-2)];

Y(t)=y(t);

end

teta=(Phi.’*Phi)\Phi.’*Y;

disp(‘Q3: Least squares estimation’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b0=’);disp(teta(2));

disp(‘estimated b1=’);disp(teta(3));

%Model B — Extended Least squares روش حداقل مربعات تعمیم یافته برای مدل دوم

Phi=zeros(N-1,5);

Y=zeros(N-1,1);

teta0=[teta(1);teta(2);teta(3);1;1];

teta=teta0;

for t=3:N

Phi(t,:)=[-y(t-1),u(t-1),u(t-2),y(t-1)-Phi(t-1,:)*teta,y(t-2)-Phi(t-2,:)*teta];

Y(t)=y(t);

if (t<10)

teta=teta0;

else

teta=(Phi(1:t,:).’*Phi(1:t,:))\Phi(1:t,:).’*Y(1:t);

end

end

disp(‘Q3: Extended Least squares estimation’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b0=’);disp(teta(2));

disp(‘estimated b1=’);disp(teta(3));

disp(‘estimated c0=’);disp(teta(4));

disp(‘estimated c1=’);disp(teta(5));

%Model B — Instrumental variables روش متغیرهای کمکی برای مدل دوم

Phi=zeros(N-1,5);

Z=zeros(N-1,5);

Y=zeros(N-1,1);

teta0=[teta(1);teta(2);teta(3);1;1];

teta=teta0;

for t=6:N

Phi(t,:)=[-y(t-1),u(t-1),u(t-2),y(t-1)-Phi(t-1,:)*teta,y(t-2)-Phi(t-2,:)*teta];

Z(t,:)=[u(t-1),u(t-2),u(t-3),y(t-4),y(t-5)]; متغیرهای کمکی

Y(t)=y(t);

if (t<10)

teta=teta0;

else

teta=(Z(1:t,:).’*Phi(1:t,:))\Z(1:t,:).’*Y(1:t);

end

end

disp(‘Q3: Instrumental variables estimation’);

disp(‘estimated a=’);disp(teta(1));

disp(‘estimated b0=’);disp(teta(2));

disp(‘estimated b1=’);disp(teta(3));

disp(‘estimated c0=’);disp(teta(4));

disp(‘estimated c1=’);disp(teta(5));

نگران نباشید ما این کد آماده متلب را در انتهای همین پست برای شما قرار داده ایم.

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

حداقل مربعات در متلب حداقل مربعات در متلب حداقل مربعات در متلب حداقل مربعات در متلب

حداقل مربعات در متلب

 

برای دانلود کد آماده این آموزش روی گوگل +1 کلیک کنید

 

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

نوشته حداقل مربعات در متلب اولین بار در متلبی. پدیدار شد.

دانلود نرم افزار متلب MathWorks MATLAB R2018a

$
0
0

دانلود نرم افزار متلب MathWorks MATLAB R2018a

MATLAB محصول شرکت MathWorks یکی از قدرتمندترین نرم افزارهای محاسبات عددی و رسم پیشرفته نمودار بوده که کاربرد وسیعی بین دانشجویان، مهندسین و محققان انواع حوزه‌های علمی دارد و صرفاً به محاسبات ریاضی محدود نمی‌شود بلکه با امکان کدنویسی پیشرفته و نسبتاً راحت می‌توان انواع محاسبات مهندسی را نیز انجام داد. اولین نگارش این نرم افزار در دانشگاه نیومکزیکو و استنفورد در سال ١٩٧٠ برای حل مسائل تئوری ماتریس‌ها، جبر خطی و آنالیز عددی ارائه شد و امروزه صدها هزار کاربر دانشگاهی، آکادمیک، صنعتی و غیره در زمینه‌های متنوع مهندسی نظیر ریاضیات پیشرفته، جبر خطی، مخابرات و مهندسی سیستم از آن استفاده می‌کنند. ریاضیات، زبان مشترک بسیاری از علوم مهندسی است؛ ماتریس ها، معادلات دیفرانسیل، رشته‌های عددی اطلاعات، ترسیمات و گراف‌ها از ابزار اصلی بکار گرفته در ریاضیات و نیز در این نرم افزار هستند.

این نرم‌افزار تقریباً در تمامی رشته‌های مهندسی کاربرد دارد؛ در هر رشته‌ای كه نیاز به محاسبات ریاضی، ترسیم منحنی، شبیه‌سازی مدل، آنالیز عددی و شبیه‌سازی ریاضی باشد، استفاده از متلب می‌تواند مفید باشد. مسائلی كه در رشته‌های مهندسی معمولاً با استفاده از زبان‌های برنامه‌نویسی C و Fortran محاسبه می‌شوند، با استفاده از متلب بسیار راحت‌تر و سریع‌تر حل می‌شوند. این نرم‌افزار دارای جعبه‌ ابزارهای مختلفی است كه دانشجویان و مهندسان هر رشته می‌توانند از جعبه ابزار متناسب با مسئله خود استفاده كنند. شما می‌توانید به سادگی، توابع و برنامه‌های خاص خودتان را با استفاده از کدها و توابع متلب بنویسید و در صورتی که تعداد آن‌ها زیاد باشد، با اختصاص یک زیر شاخه برای هر کدام یک جعبه ابزار درست کنید.

قابلیت‌های کلیدی نرم‌افزار MathWorks MATLAB:
– عملکرد یکپارچه برای انتگرال‌گیری عددی
– بهینه شده برای ریاضیات پایه و عملکردهای میانگیری
– تجزیه و ساده سازی برنامه‌های کامپایل شده
– حل مسائل تئوری ماتریس‌ها، جبر خطی و آنالیز عددی
– شبیه‌سازی انواع پدیده‌های فیزیکی و مهندسی
– برنامه‌نویسی HDL و FPGA
– برنامه‌نویسی آسان‌تر و ساده‌تر نسبت به C و Fortran
– دارای جعبه ابزارهای مختلف مهندسی
– پشتیبانی از استانداردها و مدل‌های رادیویی و مخابراتی
– پشتیبانی از رادیو USRP
– ساخت کد از Object های تعیین شده توسط سیستم
– ساخت خودکار Library های داینامیک
– شبیه‌سازی EDA
– امکان شناسای دائم عملکردهای انتقال
– رابط کاربری بهینه شده برای جاسازی
– امکان محاسبه و ثبت مسیر توسط خط و خط تعمیم یافته
– حل مسائل رگرسیون غیر خطی
– پشتیبانی از کارت گرافیک برای Turbo Decoder
– پشتیبانی از LDPC
– سازگار با نسخه‌های مختلف ویندوز، لینوکس و مک

در حقیقت متلب یک زبان برنامه نویسی آسان با مشخصات بسیار پیشرفته و ساده‌تر از زبان‌های کامپیوتری نظیر Fortran و C است. به همراه متلب، نرم‌افزاری به نام Simulink عرضه می‌شود كه امكان شبیه‌سازی سیستم‌های كنترلی را فراهم می‌كند. این نرم افزار یک محیط پرقدرت برای مصور سازی اطلاعات از طریق قابلیت‌های گرافیکی می‌باشد.

شرکت MathWorks در هر سال دو نسخه از نرم افزار MATLAB را منتشر می‌کند؛ در هر نیم سال یک نسخه، که نسخه شش ماه اول با حرف a و نسخه شش ماه دوم با حرف b مشخص می‌شود. پس قاعدتاً در یک سال مشخص نسخه b از نسخه a جدیدتر است و اگر قصد دانلود این نرم افزار را دارید بهتر است نسخه b را برای دانلود انتخاب کنید.

MATLAB combines a desktop environment tuned for iterative analysis and design processes with a programming language that expresses matrix and array mathematics directly.

Professionally Built
MATLAB toolboxes are professionally developed, rigorously tested, and fully documented.

With Interactive Apps
MATLAB apps let you see how different algorithms work with your data. Iterate until you’ve got the results you want, then automatically generate a MATLAB program to reproduce or automate your work.

And the Ability to Scale
Scale your analyses to run on clusters, GPUs, and clouds with only minor code changes. There’s no need to rewrite your code or learn big data programming and out-of-memory techniques.

حجم فایل   –   13.0 گیگابایت

پسورد فايل فشرده :

پسورد دانلود متلب( پسورد را تايپ کنيد )

 

راهنمای نصب

1. ابتدا نرم افزار را دانلود و از حالت فشرده خارج نمایید.
2. با اجرای فایل Setup.exe مراحل نصب را آغاز کنید.
3. در پنجره باز شده گزینه Use a File Installation Key را انتخاب نمایید.
4. در پنجره بعدی Yes را انتخاب کنید.
5. سپس گزینه I have the File Installation Key for my license را انتخاب کنید.
6. سریال 098060744353955643502175141297 را وارد نمایید.
7. مراحل نصب را به اتمام برسانید.
8. سپس گزینه Activate manually without the Internet را انتخاب کنید.
9. در قسمت Enter the full path to your license file, including file name گزینه Browse را بزنید.
10. آدرس فایل license_standalone.lic واقع در پوشه Crack را داده و مراحل را ادامه دهید.
11. محتویات پوشه Crack را در محل نصب نرم افزار (به طور پیش‌فرض C:\Program Files\MATLAB) کپی و جایگزین فایل‌های قبلی کنید.
12. نرم افزار کاملاً فعال شده و بدون هیچ محدودیتی قابل استفاده می‌باشد.

نکات:
– این نرم افزار به طور کامل تست شده است پس با خیال راحت به دانلود متلب 2018 بپردازید.
– سریال جهت نصب نرم افزار نیز درون فایل Serial.txt قرار داده شده است.
– سریال‌های بیشتر جهت نصب در حالت Network و نصب MATLAB Production Server داخل فایل Serial.txt قرار داده شده است.
– این نرم افزار فقط بر روی سیستم‌های 64 بیتی نصب و اجرا می‌شود.
– تمامی فایل‌ها تا حد ممکن فشرده شده و قابلیت تعمیر توسط WinRAR را دارا می‌باشند.

اگر در زمان نصب نرم افزار متلب با مشکل لایسنس مواجه شدید می توانید از پست زیر کمک بگیرید:

پست های مرتبط:

نوشته دانلود نرم افزار متلب MathWorks MATLAB R2018a اولین بار در متلبی. پدیدار شد.

آموزش حذف نويز تصوير با استفاده از جعبه ابزار ويولت (waveletmenu)

$
0
0

در اين پست آموزشی با روش حذف نويز تصوير در محيط نرم افزار  متلب آشنا مي شويم. حذف نويز از تصوير را مي توان به عنوان يک بخش از پردازش و يا به عنوان يک فرايند مستقل در نظر گرفت. در مورد اول، حذف نويز تصوير به منظور بهبود دقت الگوريتم هاي مختلف پردازش تصوير از جمله ثبت و يا دسته بندي به کار مي رود. درمورد دوم، حذف نويز با هدف بهبود کيفيت تصوير جهت بازرسي بصري به کار مي رود. حفاظت از اطلاعات تصوير مربوطه به خصوص در زمينه پزشکي بسيار مهم است زيرا در کاربردهاي تشخيصي اگر حذف نويز به درستي انجام نشود آناليزهاي بعدي دچار مشکل شده و ممکن است پزشک در تشخيص نهايي دچار اشتباه شود. بنابراين يکي از مهم ترين مسائلي که بايد به آن توجه کافي شود بحث حذف نويز و کاهش آن ها در تصاوير پزشکي است به خصوص در تصوير برداري MRI و سونوگرافي که کاربرد زيادي در پزشکي دارند.
هدف از اين آموزش نشان دادن کاربرد تحليل ويولت دوبعدي و نيز تحليل ويولت ايستان دوبعدي در حذف نويز تصاوير است. حذف نويز يکي از مهم ترين کاربردهاي ويولت محسوب مي شود. براي شروع کار، ابتدا دستور wavemenu را در محيط Command نرم افزار
MATLAB تايپ کنيد و سپس بر روي کليد Enter  فشار دهيد. شکل1، جعبه ابزار ويولت به منظور حذف نويز را نشان مي دهد. تصويري که در اين آموزش مورد استفاده قرار مي گيرد، تصوير معروف لنا Lena))است که در حوزه پردازش تصوير بسيار کاربرد دارد. تصوير لنا در شکل2 نشان داده شده است. براي حذف نويز ابتدا Wavelet 2-D را انتخاب کنيد. از منوي File -> Load -> Image و در مسير toolbox/wavelet/wavedemo فايل noiswom.mat را انتخاب کنيد. اين تصوير، يک تصوير نويزي است که به عنوان ورودي مي تواند مورد استفاده قرار گيرد. تصوير نويزي مطابق شکل3 است.

wavelet menu

شکل(1)جعبه ابزار ویولت

تحليل حذف نويز را به کمک ويولت دابيچز (db) و در دو سطح تجزيه انجام دهيد. نتيجه تحليل به صورت شکل 4 است. همان طور که در اين شکل مشاهده مي شود، چهار تصوير ظاهر شده است

lena

شکل(2): تصویر lena

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

تصویر نویزی در متلب

شکل(3): تصویر نویزی

 

waveletmenu matlab
شکل4) آناليز ويولت تصوير نويزي

حال دکمه De-noise  در سمت راست و وسط پنجره را فشار دهيد تا پنجره مربوط به فرآيند حذف نويز مطابق شکل5 باز شود.

denoise matlab
شکل5) فرآيند حذف نويز

در ابزار گرافيکي ظاهر شده، مقادير آستانه ها براي آستانه گيري هر يک از سيگنال هاي دوبعدي جزئيات به طور خودکار و توسط يکي از روش هاي انتخاب شده توسط کاربر تعيين مي شود. از منوي Select Thresholding Method گزينه  Penalize low را انتخاب کنيد و سپس دکمه ي De-noise را فشاردهيد. نتيجه به صورت شکل6 است. همان طور که ملاحظه مي شود، در تصوير حذف نويز شده، اثر بلوکي به چشم مي خورد. شدت اين اثر اگر نوع آستانه گيري را Penalize High انتخاب کنيد، بيشتر مي شود. شکل7 نمايش تصوير حذف نويز شده با استفاده از Penalize high را نشان مي هد.

Penalize low
شکل6) نمايش تصوير اصلي و حذف نويز شده با آستانه Penalize low

Penalize high
شکل7) نمايش تصوير اصلي و حذف نويز شده با آستانه Penalize high

يک راه براي کاهش اثر بلوکي استفاده از تبديل ويولت ايستان SWT (Stationary Wavelet Transform) است. تبديل DWT معمولي داراي خاصيت تغييرناپذيري بازمان نيست. براي داشتن تقريبيِ چنين خاصيتي از تبديل SWT مي توان استفاده کرد. در اين تبديل بين چند تصوير خروجي، ميانگين گرفته مي شود. هر تصوير خروجي، حاصل از يک تبديل DWT معمولي اما با ضرايب درونيابي شده (ɛ-Decimated) است. براي استفاده از  SWT در اين آموزش، از پنجره اصلي انتخاب روش تحليل، از منوي Specialized Tools 2-D روش SWT Denoising 2-D را انتخاب کنيد. به همان شيوه بيان شده، تصوير نويزي را بارگذاري کنيد. ويولت دابيچز با دو سطح تجزيه را انتخاب کرده و

Penalize low

شکل8): نمایش تصویر اصلى و حذف نویز شده با آستانه Penalize low
به روش SWTو db2

 

دکمه Decompose Image دهيد. در اينجا هم نوع آستانه گيري را مشابه قبل، از نوع Penalize Low انتخاب کنيد. همچنين به کمک تنظيم نوار لغزان Sparsity مقدار آستانه را در حدود 50 قرار دهيد تا مقداري مشابه آزمايش قبل بوده و در نتيجه مقايسه نتايج صحيح و معتبر باشد. حال دکمه De-noise را فشار دهيد. نتيجه نهايي بدست آمده به صورت شکل8 است.
ملاحظه مي شود که نتيجه نسبت به آزمايش قبلي، قابل قبول تر است. البته اين نتيجه را باز هم مي توان بهتر کرد.

مایش تصویر اصلى و حذف نویز شده با آستانه low Penalizeبه روش SWTو

شکل 9):  نمایش تصویر اصلى و حذف نویز شده با آستانه low Penalizeبه روش SWTو sym6

 

براي اين کار از ويولت  sym6استفاده کنيد. نتيجه کار به صورت شکل9 خواهد بود.

این یکی از کاربرد های waveletmenu در متلب است.

منابع
1-هادي گرايلو، تبديل موجک و کاربردهاي آن، دانشگاه صنعتي شاهرود- دانشکده برق و رباتيک
2- مريم محسن زاده، علي رفيعي، محسن معصومي، ارائه روشي نوين در حذف نويز تصاوير MRI سه بعدي با استفاده از تابع ويولت مختلط درختي دوگانه، اولين همايش ملي مهندسي برق و کامپيوتر در شمال کشور، 1393.

 

شاید مایل باشید در مورد موضوعات زیر بیشتر بدانید:

نوشته آموزش حذف نويز تصوير با استفاده از جعبه ابزار ويولت (waveletmenu) اولین بار در متلبی. پدیدار شد.

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

$
0
0

موضوع: پخش بار اقتصادی سیستم تولید همزمان برای قرارداد دو جانبه فیزیکی با استفاده از الگوریتم ژنتیک

چکیده

برای حل اقتصادی سیستم های تولید همزمان که با استفاده از چندین ژنراتور Mw را به مشتریان خاصی (باس بارها) از طریق قرارداد دو جانبه تحویل می دهند، از روش الگوریتم ژنتیک استفاده می کنیم. در این روش محدودیت های سیستم دو جانبه در تولید همزمان در نظر گرفته می شود. پارامترهای الگوریتم ژنتیک برای عملیات همگرایی بررسی می شوند. سیستم 30 باسه نمونه IEEE برای تست الگوریتم مورد بررسی قرار می گیرد.

  1. مقدمه

در کشورهای زیادی هم اکنون برای بازسازی بازارها، مقررات جدیدی وضع شده است. در این میان مزایده و قراردادهای دو جانبه دو مدل از داد و ستدهای اصلی هستند که به دو بخش قراردادهای فیزیکی و مالی تقسیم شده اند. قرار داد دوجانبه فیزیکی شامل دو موسسه است (فروشنده و خریدار) که به ازای مقدار Mw انتقالی مشخصی قرارداد می بندند ]2[. در یک بازار انرژی، صاحب سیستم انتقال می تواند به عنوان سومین بخش برای فراهم کردن چرخه مورد نیاز برای خریداران (بارها یا شرکت های توزیع) و فروشندگان (نیروگاهها و یا شرکت های وابسته به نیروگاهها) عمل کنند. قرارداد دو جانبه مالی وابسته به نرخ بازار برای مشترکین است. در این پروژه روی قراردادهای دوجانبه فیزیکی کار می شود.

قراردادهای دوجانبه فیزیکی از قوانین اصلی در بازارهای انرژی هستند که ناشی از رشد چشمگیر تولیدات توان مستقل (IPP) و ژنراتورهای غیر مفید (NUG) می باشند. در گذشته تحقیقات زیادی بر روی چرخه محاسبه هزینه ]3-7[ و ارزیابی گنجایش شبکه های مورد استفاده ]7[ انجام شده است. هزینه جابجایی (روش تمبر پستی و روش مسیرقراردادی) ]3,4,5[ ، هزینه حاشیه ای]3,5,6[ و هزینه افزایشی ]3,5[ وهزینه Mw-mile ]3,5,7[ در گذشته بحث شده اند. متلبی

سیستم تولید همزمان یکی از NUGهاست. این سیستم نقش بسیار مهمی را در صنعت انرژی بازی می کند. سیستم تولید همزمان در کارخانه ها نه تنها انرژی مورد نیاز را فراهم می کند، بلکه گرمای مورد استفاده در کارخانه را نیز تامین می کند. اگر انرژی الکتریکی تولید شده در کارخانه بیش از نیاز کارخانه باشد، این انرژی می تواند به خریداران در باس های دیگر منتقل شود.

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

در بخش بعدی در مرحله اول مدلی برای سیستم تولید همزمان فراهم می شود. سپس فرمول مسئله در مرحله بعد داده می شود. نمای کلی الگوریتم ژنتیک مشخص می شود و نتایج شبیه سازی بر اساس مدل 30 باسه IEEE در بخش بعدی نشان داده می شود.

  1. مدلی برای سیستم تولید همزمان
    1. سیستم تولید همزمان back-pressure

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

شکل1. یک سیستم تولید همزمان back-pressure

    1. توابع آنتالپی بویلر و ژنراتور

تصور کنید I سیستم تولید همزمان در I باس مختلف وجود دارند،i=1,….I. فرض می شود این سیستمهای تولید همزمان جداگانه متعلق به یک شرکت هستند. برای iامین سیستم تولید همزمان، بویلر وجود دارد. تابع آنتالپی برای بویلر با فشار بالا از رابطه زیر به دست می آید:

به طوریکه:

  • : آنتالپی سوخت (MBTU/h) داخل jامین بویلر فشار بالا برای (T/h) بخار خروجی.

: بخار با فشار بالا (T/h), تولید شده از jامین بویلر در باس i

: ثابت های تابع آنتالپی بویلر برای jامین بویلر در باس i,

به عبارت دیگر, تابع آنتالپی برای توربین- ژنراتور مطابق رابطه زیر می باشد:

به طوریکه:

: آنتالپی (MBTU/h) مصرف شده بوسیله jامین توربین برای تولید (MW) در باس i,

: توان تولیدی (MW) بوسیله jامین توربین ژنراتور در باس i

: ثابت های تابع آنتالپی برای jامین توربین- ژنراتور در باس i,

  1. فرمول بندی مسئله
    1. فرضیات

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

  1. تنها یک شرکت صاحب سیستم های تولید همزمان در باس های مختلف می باشد.
  2. سیستم تولید همزمان از نوع back-pressure می باشد.
  3. سیستم گنجایش لازم برای انتقال (ATC) بر طبق قرارداد دوجانبه را دارد.
  4. توزیع کننده در سیستم تولید همزمان مسئول امنیت سیستم نمی باشد اما تمایل به اجتناب از انتقال تولید همزمان توسط قراداد دوجانبه را دارد.
    1. تابع هدف

تابع هدف که شامل هزینه سوخت (آنتالپی) و هزینه سیکل می باشد، مطابق رابطه زیر است:

به طوریکه:

i: شماره باس ها،

j: شماره سیستم های تولید همزمان،

CT: تابه نهایی ($(

UCSi: هزینه سوخت ($/MBTU) برای تولید بخار با فشار بالا در باس i

WCT: هزینه سیکل ($/MWh)

PGi: MW نهایی تولید شده در باس i

جمله اول در معادله (3) هزینه سوخت برای همه سیستم های تولید همزمان می باشد. جمله دوم هزینه سیکل است که با استفاده از روش تمبر پستی محاسبه می شود.

    1. ثابت های تعادل بخار

تعادل فشار متوسط و فشار بالا در یک سیستم تولید همزمان طبق روابط زیروجود دارد:

به طوریکه:

: بخار فشار بالا (T/h) مورد نیاز در باس i

: آنتالپی مصرف شده (MBTU/T) برای تولید الکتریسیته بین بخار وارد و خارج شده به توربین

: شار بخار با فشار متوسط (T/h) عبور کرده از شیرهای بخار در باس i

  • : سرعت جهش آب از شیرهای بخار در باس i

: مصرف بخار با فشار متوسط (T/h) در باس i

    1. ثابت های تعادل توان

MW تولید شده در باس I طبق رابطه زیر برای مصارف داخلی و همینطور خریداران صرف می شود:

به طوریکه:

: بار داخلی (MW) در باس i

: بار نهایی خریداران (MW) در باس های مختلف

: MW تولیدی برای jامین ژنراتور در باس i

    1. ثابت های محدودیت عملیات

بخار، MW و شار بخار در شیرهای بخار برای سیستم های تولید همزمان دارای محدودیت هایی می باشند:

که

:محدودیت ماکزیمم (مینیمم) بخار برای jامین بویلر در باس i

:محدودیت ماکزیمم (مینیمم) تولید MW برای jامین ژنراتور در باس i

:محدودیت ماکزیمم (مینیمم) بخار برای شیرهای بخار در باس i

  1. روش شبیه سازی

محاسبه یک بار در محیط M-file و بار دیگر با استفاده ازOptimization Tool انجام شده است.

    1. Optimization Tool

گزینه هایی که در این محیط استفاده شده اند، در پایین توضیح داده شده اند.

Options: عملیاتی که در این بخش صورت گرفته شده در شکل 2 نشان داده شده است.

option.JPG

option2.JPG

شکل 2. تنظیمات انجام شده در optimization tool

Problem Setup and Results: برای تنظیم مسئله اصلی و فراخوانی دو تابع fitness و constraint تغییرات زیر را در قسمت problem setup and results از optimization tool اعمال می کنیم.

untitled.JPG

شکل 3. تغییرات انجام شده در optimization tool برای تنظیم مسئله

راه دیگر اجرای برنامه این است که دستورات مورد استفاده در الگوریتم ژنتیک را در محیط M-file می نویسیم. برای استفاده از الگوریتم ژنتیک در حل مسئله از 3 تابع M-file استفاده می کنیم، که شامل تابع simple_constraint برای قیود، simple_fitness برای نوشتن تابع اصلی و objectivefunction برای تطبیق مسئله در الگوریتم ژنتیک می باشد.

فرضیاتی که درتابع الگوریتم ژنتیک در نظر گرفته می شود به این صورت می باشد که تابع fitness وconstraint دارای یک ورودی x هستند که شامل تعدادی المان به اندازه متغیرهایمان می باشد. تابع fitness مقدار تابع اصلی را محاسبه می کند و یک مقدار عددی می دهد.

Objectivefunction نیز شامل دستورات مربوط به الگوریتم ژنتیک می باشد. این دستورات برای بهینه سازی مسئله در نظر گرفته می شوند، که در اینجا از دستورات crossover، migration و mutation استفاده شده است.

Crossover برای تعین این که چطور والدین با هم ترکیب شوند تا فرزندان به وجود آیند، در نظر گرفته می شود. که در اینجا از crossovertwopoint برای اینکار استفاده می شود. Crossovertwopoint دو عدد صیح m و n بین 1و تعداد متغیرها به طور تصادفی انتخاب می کند و روند زیر را برای به دست آوردن فرزند طی می کند.

m عدد اول از بردار حاصله (فرزند) شامل m عدد اول از اولین والد می باشند و از m+1 تا n شامل اعداد والد دوم می باشند و از n+1 به بعد دوباره شامل اعداد والد اول می باشند.

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

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

  1. نتایج شبیه سازی

در این پروژه سیستم 30باسه IEEE به عنوان مثال در نظر گرفته شده است که در شکل 4 دیده می شود. در این شکل 2 سیستم تولید همزمان در 2 باس مختلف قرار دارند. هر سیستم تولید همزمان 5 ژنراتور و بویلر با توابع انتالپی یکسان دارند.

واحدهای تولید همزمان در باس های 8 و 11 قرار دارند. در حالی که خریداران در باس های 21 (MW 13.5) و 30 (MW 7.5) می باشند. نرخ گردشی 0.092 است. دیگر اطلاعات سیستم تولید همزمان در جدول 1 مشخص شده اند. Mi و Pi، بخار و تولید در بویلر و ژنراتور iام را نشان می دهند.

جدول 1. اطلاعات دو سیستم تولید همزمان در باس های 8 و 11 برای سیستم 30 باسه IEEE

واحد 2 واحد 1
5 5 شماره واحد
باس 11 باس 8 موقعیت
157.12 157.12
113 113
656 635
25 25 بار داخلی (MW)
0 0
200 200
0.315395 0.315395
11.54% 11.54% Ri

نتایج شبیه سازی در جدول 2 مشاهده می شود.

جدول 2. نتایج به دست آمده از شبیه سازی

نیروگاه 2

نیروگاه 1

204.8954 199.3721 M1
119.9508 62.3872 M2
97.9198 62.5771 M3
104.8083 92.1220 M4
249.9418 131.3598 M5
777.5161 547.8182 بخار نهایی (MBTU)
0 15.8331
10.9154 15 P1
9.8349 15 P2
7.3819 15 P3
8.781 15 P4
10.7762 14.9999 P5
47.6894 74.9999 تولید نهایی(MW)
1136900 هزینه($/h)

فایل های مطلب برای اجرای برنامه نیز ضمیمه شده است.

فروشگاه متلبی

تمامی مباحث فوق را می توانید با خرید پروژه متلب آن تهیه کنید

مراجع:

[1] Ying-Yi Hong, Chih-Yuan Li, Back-Pressure Cogeneration Economic Dispatch For Physical Bilateral Contract Using Genetic Algorithms, 9th International Conference on Probabilistic Methods Applied to Power Systems KTH, Stockholm, Sweden – June 11-15, 2006.

[2] “Electric Power Wheeling and Dealing,” Congress of United State, Office of TechnologyAssessment,Washington D.C., 1989.

[3] H.H. Happ, “Cost of Costing Methodologies,” IEEE Trans. on Power

Systems, Vol. 9, No. 1, Feb. 1994, pp. 147-156.

[4] J.W. Marangon Lima, “Allocation of Transmission Fixed Charges: An

Overview,” IEEE Trans. on Power Systems, Vol. 11, No. 3, Aug. 1996, pp.

1409-1418.

[5] D. Shirmohammadi, X.V. Filho, B. Gorenstin and M.V.P. Pereira, “Some

Fundamental Technical Concepts about Cost Based Transmission

Pricing,”IEEE Trans. on Power Systems, Vol. 11, No. 2, May 1996, pp.

1002-1008.

[6] H.M. Merrill and B.W. Erickson, “Wheeling Rates Based on

Marginal-Cost Theory,” IEEE Trans. on Power Systems, Vol. 4, No. 4, Oct.

1989, pp. 1445-1451.

[7] D. Shirmohammad, P.R. Gribik, E.T.K. Law, J.H. Malinowski, R.E.

O’Donnell, “ Evaluation of Transmission Network Capacity Use for

Wheeling Transactions,”IEEE Trans. on Power Systems, Vol. 4, No. 4,

Oct. 1989, pp. 1405-1413.

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

آموزش دستورات متداول در متلب

$
0
0

برای شروع به کار با متلب بایستی شناخت خوبی نسبت به دستوارت متلب داشت. برای همین دستورات پر کاربردی را در ذیل جهت معرفی آورده ایم:

ایجاد ماتریس:

A=[1,2,3 ; 4,5,6]

A=[1:10]

A=[1:2:10]

A=[10:-1:1]

A=zeros(2,3) ایجاد ماتریس 2 در3 با مقادیر صفر

A=ones(4,6) ایجاد ماتریس 4 در6 با مقادیر یک

ترانهاده ماتریس A:

T=A’

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

A(2,3) عنصر سطر2 ستون 3

A(:,2) عناصر ستون 2

A(1,:) عناصر سطر 1

A(3:6, 2:4) ستونهای 2 تا 4 از سطرهای 3 تا 6

دستیابی به ستون آخر یک ماتریس:

A(:,end)

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

sum(A)

sum(A’)’ مجموع سطرهای یک ماتریس دو بعدی

بدست آوردن مقادیر روی قطر اصلی A:

diag(A)

ایجاد ماتریس جادویی n×n: (ماتریس جادویی ماتریسی است که مجموع تمام سطرها و ستونها و قطرهای آن برابر است)

magic(n)

می خواهیم جای ستونهای دوم و سوم در ماتریس B را جابهجا کرده و نتیجه را در A ذخیره نماییم:

A=B(: , [1,3,2,4])

توابع مقدماتی پرکاربرد:

  • abs(A)
  • exp(A)
  • sin(A)
  • sqrt(A)
  • factorial(n)
  • log2(A) لگاریتم در مبنای 2
  • log10(A) لگاریتم در مبنای 10

برای مشاهده لیست توابع مقدماتی عبارت help elfun را تایپ کنید.

عملگرهای محاسباتی:

  • A=B+C جمع ماتریسی
  • A=B-C تفریق ماتریسی
  • A=B*C ضرب ماتریسی
  • A=B .* C ضرب عناصر متناظر در یکدیگر
  • A=B ./ C تقسیم عناصر متناظر بر یکدیگر
  • A=B .^ C به توان رساندن هر عنصر به عنصر متناظرش

اگر B یک ماتریس n×m باشد و C یک عدد اسکالر (یک ماتریس 1×1) باشد آنگاه عملگرهای فوق مقدار موجود در C را در تک تک مقادیر B اِعمال میکنند. بنابراین عبارت A=B+1 تک تک مقادیر B را با 1 جمع کرده و در A ذخیره میکند. عبارت A=B.^2 نیز تک تک مقادیر B را به توان 2 رسانده و نتیجه را در A ذخیره میکند.

روشی بدست آوردن باقیمانده تقسیم:

A=mod(B,C)

ایجاد یک ماتریس 3×4 از اعداد تصادفی که دارای توزیع یکنواخت بین 0 تا 1 میباشند:

A=rand(3,4)

ایجاد یک ماتریس 3×4 از اعداد تصادفی بین a تا b

A=floor((b-a+1)*rand(3,4)+a)

ایجاد یک ماتریس 1×n که اعداد صحیح 1 تا n به ترتیب تصادفی در آن قرار گرفتهاند:

A=randperm(n)

ایجاد ماتریس با n×m که در هر سطر عناصر 1 تا m به طور تصادفی قرار داده شده اند

for i=1:n

A(i,:)=randperm(m);

end

روند کردن اعداد:

  • A=fix(B) گرد کردن به سمت صفر
  • A=round(B) گرد کردن به سمت نزدیک ترین عدد صحیح(براساس رقم اعشار)
  • A=ceil(B) گرد کردن به سمت مثبت بینهایت
  • A=floor(B) گرد کردن به سمت منفی بینهایت

مرتب کردن هر یک از ستونهای ماتریس B بطور جداگانه:

A=sort(B)

مرتب کردن سطرهای ماتریس B ابتدا بر اساس ستون اول سپس ستون دوم و الی آخر:

A=sortrows(B)

مرتب کردن سطرهای ماتریس B فقط بر اساس ستون سوم:

A=sortrows(B,3)

حذف ستون دوم ماتریس A:

A(: , 2) = []

میانگین هر یک از ستونهای ماتریس B:

A=mean(B)

میانه هر یک از ستونهای ماتریس B:

A=median(B)

انحراف از معیار هر یک از ستونهای ماتریس B:

A=std(B)

مینیمم هر یک از ستونهای ماتریس B:

A=min(B)

ماکسیمم هر یک از ستونهای ماتریس B:

A=max(B)

یافتن اندیس عددهای غیر صفر در ماتریس B:

A=find(B)

یافتن اندیس سطر و ستون خانه مساوی 2 ماتریس B:

[i,j]=find(B==2)

یافتن اندیس سطر و ستون خانه مساوی 2 در سطر سوم از ماتریس B:

[i,j]=find(B(3,:)==2)

یافتن اندیس عددهای بین 1 تا 5 در ماتریس B:

A=find(A>1 & A<5)

جمع تجمعی عناصر ماتریس B:

A=cumsum(B)

حاصل ضرب عناصر ماتریس B:

A=prod(B)

تولید n عدد در فواصل مساوی که از a شروع و به b ختم میشود:

A=linspace(a,b,n)

ترسیم دو بعدی y برحسب x:

plot(x,y)

ترسیم سه بعدی:

plot3(x,y,z)

دستور زیر مقادیری از B که از 6 بزرگتر است را در A ذخیره میکند:

A=B(B>6)

شیفت دادن چرخشی: دستور زیر ماتریس B را یک واحد در جهت عمودی (از بالا به پایین) و دو واحد در جهت افقی (از راست به چپ) شیفت چرخشی میدهد.

A=circshift(B, [1, -2])

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

size(A)

دستور زیر طول یک بردار را برمیگرداند: (اگر A دارای بیش از یک بعد باشد، طول طولانیترین بعد برگردانده میشود)

length(A)

با دستور زیر میتوان تابع f را در محیط editor مشاهده کرد و در صورت دلخواه آن را تغییر داد. با این دستور حتی میتوان توابع خود MATLAB را نیز ویرایش نمود.

edit f

دستور زیر ماتریس B را بصورت تنک (خلوت) در A ذیره میکند. اگر تعداد زیادی از مقادیر یک ماتریس برابر با صفر باشد با این روش میتوان در تخصیص حافظه صرفهجویی کرد.

A = sparse(B)

دستور زیر ماتریس B را از حالت تنک به حالت کامل تبدیل کرده و در A ذخیره میکند.

A = full(B)

توابع مخصوص رشتهها:

  • strcat متصل کردن دو رشته
  • strcmp مقایسه دو رشته
  • strcmpi مقایسه دو رشته صرفنظر از بزرگ یا کوچک بودن حروف

تمام جایگشتهای ممکن مقادیر یک بردار:

perms(A)

حذف مقادیر تکراری از یک بردار:

unique(A)

نمایش هیستوگرام مقادیر یک ماتریس:

hist(A,…)

دستورات کار با تصاویر:

  • I=imread(‘pic1.jpg’) خواندن تصویر
  • imshow(I) نمایش تصویر
  • imwrite(I, ‘pic2.gif’) ذخیره تصویر
  • figure باز کردن پنجره جدید برای عکس بعدی تا عکس قبلی از بین نرود

اشتراک دو مجموعه:

intersect(A,B)

دستورات برنامه نویسی در متلب:

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

حلقه ها

for i=start : end

دستورات

end

while(شرط)

دستورات

end

if(شرط)

دستورات

end

اجرای برنامه تا فشردن یک کلید متوقف میماند:

pause

اجرای برنامه به مدت n ثانیه متوقف میماند:

pause(n)

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

try

statements

catch

statement

end

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

guide

با دستور زیر میتوان مدت زمان اجرای هر یک از خطوط برنامه را مشاهده کرد.

profile {on, off, viewer}

نمایش پیغام: نحوه استفاده از این دستور همانند printf() در زبان C است.

fprintf(‘\n i=%d’, i)

نمایش پیغام خطا و خروج از اجرای برنامه:

error(‘your error message’)

 

شاید علاقه مند باشید مطالب زیر را هم ببینید:

 

 

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

Viewing all 56 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>