آموزش طراحي فيلتر باتروث تعيميم يافته در متلبچهارشنبه 17, فوریه 2021
آموزش طراحي فيلتر باتروث تعيميم يافته در متلب
در ادامه آموزش های سایت همیارپروژه آموزش نرم افزار متلب ارائه خواهد شد .آموزشها از مقدماتی تا پیشرفته ادامه دارد و ما به شما نرم افزار را یاد خواهیم داد. با ما همراه باشید.
طراحي فيلتر باتروث تعيميم يافته در متلب
با استفاده از دستور maxflat مي توانيد فيلتر باتروث تعميم يافته با تعداد متفاوت صفر و قطب نسبت به فيلتر باتروث طراحي كنيد .
تفاوت maxflat با butter در اين است كه در تابع maxflat قادر به دادن دو ورودي (به جاي يك ورودي در فيلتر butter).
به عنوان درجات صورت و مخرج هستيد.
اين فيلترها براي هر درجه اي از صورت و مخرج با ماكزيمم تعداد مشتقات در ۰ و فركانس نايكوئيست تنظيم شده در ۰ بهينه هستند .
براي مثال وقتي هر دو درجه برابر باشند ، maxflat برابر butter مي شود .
البته maxflat تطبيق پذيرتر است ، چون قدرت طراحي فيلتري باتعداد صفر و قطب بيشتر را مي دهد .
سومين ورودي maxflat فركانس نصف توان است كه عددي بين صفر تا يك بوده و پاسخ دامنه مطلوب آن مي باشد .
همچنين قادر به طراحي فيلترهاي فاز خطي با ويژگي مسطح بودن با استفاده از ‘sym’ هستيم .
طراحي فيلترهاي FIR در متلب
براي طراحي فيلترهاي FIR روش هاي مختلفي وجود دارد .
در جدول زير دستورات مورد استفاده براي طراحي فيلتر هاي FIR به روشهاي گوناگون نشان داده شده است .
فيلتر هاي با فاز خطي در متلب
به جز تابع cfirpm در جدول بالا همگي توابع توليدكننده فيلترهاي با فاز خطي هستند .
توابع fir1 ، fir2 ، firls ، firpm ، fircls ، fircls1 و firrcos به صورت پيش فرض فيلترهاي نوع I و II را توليدكرده و توابع firls و firpmordتوابع نوع III و IV را توليد مي كنند .
cfripm قادر به توليد هر چهار نوع فاز خطي و همچنين فاز غيرخطي است .
روش پنجره گذاري در متلب
فيلتر ايده ال پايين گذر در فركانس هاي كمتر از فركانس قطع مقداريك و در فركانس هاي بيشتر از آن مقدار صفر دارد .
اين به دليل غيرعملي بودن و بي انتها بودن پاسخ ضربه آن قابل پياده سازي نمي باشد . براي حل اين مشكل يك پنجره به آن اعمال مي شود .
با داشتن قسمت مياني پاسخ اصلي در مكان اصلي خود ، فيلتر فاز خطي خواهيد داشت .
براي مثال يك فيلتر پايين گذر با درجه ۵۱ و فركانس قطع به شكل زير مي باشد :
پنجره اعمال شده در اين جا پنجره مستطيلي است دستور زير فيلتر مزبور را در fvtool نشان مي دهد .
در زير يك پنجره همينگ به فيلتر اعمال شده و نتايج در fvtoolنشان داده شده اند .
اثر ريپل با استفاده از پنجره همينگ به خوبي كاهش يافت . اما اين مساله به قيمت افزايش باند گذر انجام شد.
توابع fir1 و fir2 بر پايه اين روش پنجره گذاري هستند .
اين توابع درجه فيلتر وتوصيفي از فيلتر مطلوب ايده ال راگرفته و معكوس تبديل فوريه پنجره گذاري شده آن فيلتر ايده ال را در خروجي مي دهند .
طراحي فيلتر FIR با باند استاندارد با استفاده از تابع fir1 مشابه توابع طراحي فيلتر IIR است كه به مدل هاي استاندارد پايين گذر ، بالاگذر ، ميان گذر و ميان نگذر محدود مي شود .
دستورات زير بردار سطري b را كه شامل ضرايب يك با پنجره همينگ از درجهn است توليد مي كند :
اين فيلتر يك فيلتر پايين گذر با فاز خطي FIR با فركانس قطع Wn (نرماليزه شده با نصف فركانس نايكوئيست و مربوط به دامنه ۶dB) است .
براي يك فيلتر بالا گذر ، كافي است «high» را به ليست پارامترهاي تابع اضافه كرد . براي فيلترهاي ميان گذرو ميان نگذر .
Wn بايد يك بردار ۲ عضوي كه مشخص كننده فركانس هاي لبه است ،.
باشد و در حالت ميان نگذر بايد «stop» را به ليست پارامترهاي تابع اضافه كرد .
دستور b=fir1(n,Wn,window) از پنجره مشخص شده در بردار سطري window براي طراحي استفاده مي كند . بردار پنجره بايد n+1 عضو داشته باشد .
در صورتي كه نوع پنجره را مشخص نكيند ، fir1 از پنجره همينگ استفاده مي كند .
تابع kaiserord درجه فيلتر ، فركانس قطع و پارامتر بتا مورد نياز پنجره كايزر را براي رسيدن به يك سري مشخصات خاص ، تخمين مي زند.
در اینجا آشنایی با نرم افزار متلب قسمت صد و یازدهم به پایان رسید و در آموزش های بعدی به مباحث دیگر نرم افزار متلب می پردازیم. همچنین از شما مخاطبین عزیز سایت همیارپروژه دعوت می کنم که برای انجام پروژه های متلب خود آموزش های ما را دنبال نمایید.
نویسنده : زهرا رستمی
جهت سفارش پروژه به لینک زیر مراجعه نمایید :
همچنین می توانید برای ارتباط سریعتر با شماره و آیدی تلگرام زیر تماس حاصل کنید :
۰۹۱۲۹۵۴۰۱۲۲ – آیدی تلگرام : @fnalk
از طریق کلیک برروی آیکن های زیر میتوانید پروژه خود را در تلگرام و یا واتساپ برای ما ارسال کنید:
دیدگاهتان را بنویسید