طراحی فیلتر به معنی ساخت ضرایب فیلتر است به نحوی که بعضی از ملزومات فیلتر کردن را بر آورده کند . پیاده سازی فیلتر به معنی انتخاب و به کار بردن یک ساختار فیلتر خاص روی این ضرایب است . تنها پس از طراحی و پیاده سازی فیلتر است که می توان داده را فیلتر کرد. پس از طراحی فیلتر های آنالوگ برای فیلتر های بالا گذر و فیلتر های پایین گذر در متلب ، در این پست به نحوه ی طراحی فیلتر دیجیتال در متلب همراه با اینکه فیلتر IIR و فیلتر FIR به چه معنا هستند ، مروری از مقدمه تا پیشرفته خواهیم داشت .
قدم اول در طراحی فیلتر دیجیتال در متلب : تعریف فیلتر دیجیتال :
یک فیلتر دیجیتال اساسا فرآیندی محاسباتی (یا الگوریتمی) می باشد که یک دنباله از اعداد مثل که نشان دهنده ورودی است را به یک دنباله دیگر که نشان دهنده خروجی می باشد ، تبدیل می نماید.
بنابراین یک فیلتر دیجیتال می تواند به عنوان یک ابزار محاسباتی ، یعنی انجام توابع دیگری مانند انتگرال گیری و مشتق گیری و تخمین و احتمال استفاده شود .
رابطه ی تفاضل ورودی – خروجی ، با در نظر گرفتن خروجی به ورودی ، را می توان در دامنه زمانی گسسته به صورت فرم مجموع زیر بیان کنیم :
در تابع تبدیل z ، یا در دامنه z به صورت زیر خواهد بود :
بنابراین طراحی یک فیلتر دیجیتال برای انجام یک عملکرد مطلوب، مستلزم تعیین ضرایب \( \Large a_i\) و \( \Large b_i\) می باشد.
مرحله ی اولی که در طراحی یک فیلتر دیجیتال باید محاسبه کنیم :
- ضریب \( \Large a_i\)
- ضریب \( \Large b_i\)
قدم دوم در فیلتر دیجیتال در متلب : طبقه بندی فیلتر دیجیتال :
فیلترهای دیجیتال به ترتیب در مدت زمان پاسخ ضربه و در قالب های تحقق طبقه بندی می شوند.
یعنی دسته بندی مربوط به فیلتر های دیجیتال بایستی طبق بی نهایت یا محدود بودن پاسخ ضربه و یا بازگشتی یا بازگشتی نبودن فیلتر های دیجیتال ، صورت می گیرد .
طبقه بندی فیلتر های دیجیتال بر حسب مدت زمان پاسخ ضربه (IR)
- یک فیلتر دیجیتال با پاسخ ضربه بی نهایت (IIR) ، دارای تعداد بی نهایت نمونه در پاسخ ضربه اش که همان \( \Large h[n] \) است ، دارد
- یک فیلتر دیجیتال با پاسخ ضربه محدود (FIR) ، دارای تعداد محدود نمونه در پاسخ ضربه اش که همان \( \Large h[n] \) است ، دارد
طبقه بندی فیلتر های دیجیتال بر حسب تحقق (Realization)
- در یک فیلتر دیجیتال تحقق بازگشتی ، خروجی به ورودی و مقادیر قبلی خروجی بستگی دارد . در این نوع از فیلترها ، هر دوی ضرایب \( \Large a_i \) و \( \Large b_i\) موجود هستند .
- در یک فیلتر دیجیتال تحقق غیربازگشتی ، خروجی تنها به مقادیر فعلی و مقادیر قبلی ورودی بستگی دارد . در این نوع از فیلترها تنها ضریب
- \( \Large a_i\) وجود دارد و ضریب \( \Large b_i = 0\) می باشد .
قدم نهایی : طراحی فیلتر دیجیتال در متلب : طراحی فیلتر FIR و فیلتر IIR در نرم افزار متلب :
برای طراحی فیلتر دیجیتال در نرم افزار متلب از دستور زیر استفاده می کنیم :
که در واقع سیگنال یا تابعی مثل x را با مقادیر و مشخصات سیگنال ها و توابع b و a و z که بایستی خودمان مشخص کنیم ، را نرم افزار متلب رسم خواهد نمود ، که با توجه به ویژگی ها و موارد خواسته شده از نرم افزار ، این فیلتر می تواند فیلتر IIR باشد و یا اینکه فیلتر FIR .
در صورتی که بخواهیم فیلتر IIR را طراحی کنیم بایستی از کد متلب زیر استفاده نماییم :
1 2 |
اکنون برای یادگیری بهتر چگونگی طراحی فیلتر IIR و فیلتر FIR در نرم افزار متلب ، مثالی را با هم مرور می کنیم تا چگونگی کد نویسی فیلتر IIR و یا فیلتر FIR را با هم یاد بگیریم :
مثالی در مورد طراحی فیلتر IIR در نرم افزار متلب :
در ابتدا به صورت زیر باید سیگنال سینوسی در نرم افزار متلب تعریف کنیم :
مقادیری دلخواه را برای fs و f و t و n ( که ویژگی های مشخص کننده سیگنال یعنی زمان و دوره تناوب و فرکانس و … هستند) در نظر میگیریم ، سپس سیگنال سینوسی x را به صورت چیزی که در کد متلب بالا آمده است ، مشخص می کنیم ، در صورت اجرای کد در نرم افزار متلب، نمودار سیگنال سینوسی به صورت زیر نمایش داده می شود :
افزودن نویز گوسی سفید به سیگنال سینوسی در نرم افزار متلب :
حال با استفاده از کد زیر ، یک نویز سفید گوسی به سیگنال سینوسی بالا اضافه می کنیم :
در صورت اجرای کد بالا در نرم افزار متلب ، نمودار z به صورت زیر خواهد بود که سیگنال سینوسی با نویز افزوده شده به آن را نمایش می دهد :
با استفاده از دستور زیر در نرم افزار متلب ، نمودار مقادیر مثبت را برای تبدیل فوریه ی سیگنال سینوسی که به آن نویز گوسی اضافه شده است ، را رسم خواهیم نمود :
پس از اجرای کد بالا ، نمودار زیر حاصل خواهد شد :
کد نویسی فیلتر IIR در نرم افزار متلب :
سپس در نرم افزار متلب ، کد زیر را می نویسیم تا مقادیری با توجه به فیلتر باترورث (Butterworth ) برای فیلتر IIR محاسبه کنیم :
*Wc همان فرکانس قطع سیگنال محسوب می شود .
محاسبه پاسخ فرکانسی فیلتر IIR در نرم افزار متلب :
با استفاده از کد متلب زیر پاسخ فرکانسی فیلتر دیجیتال را محاسبه می کنیم :
1 2 |
که نمودار به صورت زیر به دست خواهد آمد :
کد نویسی اندازه فیلتر دیجیتال در نرم افزار متلب :
با استفاده از کد متلب زیر ، نمودار اندازه فیلتر دیجیتال را در نرم افزار رسم می کنیم :
1 2 |
نتیجه ی اجرای کد ، به صورت زیر خواهد بود :
رسم نمودار فیلتر IIR در نرم افزار متلب :
اکنون با استفاده از کد زیر ، فیلتر IIR دلخواه خود را تولید می کنیم :
در صورت اجرای کد بالا ، نمودار به صورت زیر نمایش داده خواهد شد :
نمودار بالا در واقع فیلتر IIR از سیگنال سینوسی با نویز گوسی می باشد .
در این پست به بررسی کامل در مورد نحوه ی طراحی فیلتر دیجیتال در متلب و فیلتر IIR و فیلتر FIR در نرم افزار متلب پرداختیم ؛ در پست های آینده سایت منتظر طراحی فیلتر های آنالوگ و دیجیتال در نرم افزار بیشتری باشید .