فیلتر دیجیتال در متلب : طراحی فیلتر IIR و فیلتر FIR توسط نرم افزار متلب

فیلتر دیجیتال در متلب : طراحی فیلتر IIR و فیلتر FIR توسط نرم افزار متلب

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

قدم اول در طراحی فیلتر دیجیتال در متلب : تعریف فیلتر دیجیتال :

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

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

رابطه ی تفاضل ورودی – خروجی ، با در نظر گرفتن خروجی به ورودی ، را می توان در دامنه زمانی گسسته به صورت فرم مجموع زیر بیان کنیم :

فیلتر دیجیتال در متلب

در تابع تبدیل z ، یا در دامنه z به صورت زیر خواهد بود :

فرمول تابع z فیلتر دیجیتال

بنابراین طراحی یک فیلتر دیجیتال برای انجام یک عملکرد مطلوب، مستلزم تعیین ضرایب \( \Large a_i\) و \( \Large b_i\) می باشد.

مرحله ی اولی که در طراحی یک فیلتر دیجیتال باید محاسبه کنیم : 

  1. ضریب \( \Large a_i\)
  2. ضریب \( \Large b_i\)

قدم دوم در فیلتر دیجیتال در متلب : طبقه بندی فیلتر دیجیتال :

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

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

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

طبقه بندی فیلتر های دیجیتال بر حسب مدت زمان پاسخ ضربه (IR)

  1. یک فیلتر دیجیتال با پاسخ ضربه بی نهایت (IIR) ، دارای تعداد بی نهایت نمونه در پاسخ ضربه اش که همان \( \Large h[n] \) است ، دارد
  2. یک فیلتر دیجیتال با پاسخ ضربه محدود (FIR) ، دارای تعداد محدود نمونه در پاسخ ضربه اش که همان \( \Large h[n] \) است ، دارد

طبقه بندی فیلتر های دیجیتال بر حسب تحقق (Realization)

  1. در یک فیلتر دیجیتال تحقق بازگشتی ، خروجی به ورودی و مقادیر قبلی خروجی بستگی دارد . در این نوع از فیلترها ، هر دوی ضرایب \( \Large a_i \) و \( \Large b_i\) موجود هستند .
  2. در یک فیلتر دیجیتال تحقق غیربازگشتی ، خروجی تنها به مقادیر فعلی و مقادیر قبلی ورودی بستگی دارد . در این نوع از فیلترها تنها ضریب
  3.  \( \Large a_i\) وجود دارد و ضریب \( \Large b_i = 0\) می باشد .

قدم نهایی : طراحی فیلتر دیجیتال در متلب : طراحی فیلتر FIR و فیلتر IIR در نرم افزار متلب :

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

1
2
clc
x = filter(b,a,z);

که در واقع سیگنال یا تابعی مثل x را با مقادیر و مشخصات سیگنال ها و توابع b و a و z که بایستی خودمان مشخص کنیم ، را نرم افزار متلب رسم خواهد نمود ، که با توجه به ویژگی ها و موارد خواسته شده از نرم افزار ، این فیلتر می تواند فیلتر IIR باشد و یا اینکه فیلتر FIR .

حتما بخوانید:  چگونه می توانیم فیلتر بالا گذر در متلب طراحی کنیم ؟

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

1
2
clc
[b,a] = butter(o , Wc);

اکنون برای یادگیری بهتر چگونگی طراحی فیلتر IIR  و فیلتر FIR در نرم افزار متلب ، مثالی را با هم مرور می کنیم تا چگونگی کد نویسی فیلتر IIR و یا فیلتر FIR را با هم یاد بگیریم :

مثالی در مورد طراحی فیلتر IIR در نرم افزار متلب :

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

1
2
3
4
5
6
7
clc
fs = 100;
f = 5;
t = 5;
n = [ : 1/fs:t];
x = sin(2*pi*f*n);
plot(x)

مقادیری دلخواه را برای fs و f و t و n ( که ویژگی های مشخص کننده سیگنال یعنی زمان و دوره تناوب و فرکانس و … هستند) در نظر میگیریم ، سپس سیگنال سینوسی x را به صورت چیزی که در کد متلب بالا آمده است ، مشخص می کنیم ، در صورت اجرای کد در نرم افزار متلب، نمودار سیگنال سینوسی به صورت زیر نمایش داده می شود :

رسم نمودار سینوسی در متلب

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

حال با استفاده از کد زیر ، یک نویز سفید گوسی به سیگنال سینوسی بالا اضافه می کنیم :

 

1
2
3
clc
z = awgn(x,1);
plot(z);

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

نویز گوسی سفید در متلب

 

با استفاده از دستور زیر در نرم افزار متلب ، نمودار مقادیر مثبت را برای تبدیل فوریه ی سیگنال سینوسی که به آن نویز گوسی اضافه شده است ، را رسم خواهیم نمود :

حتما بخوانید:  اعوجاج در سیستم های مخابراتی : 2 اعوجاج مهم در سیستم های مخابراتی

1
2
clc
plot(abs(fft(z)));

پس از اجرای کد بالا ، نمودار زیر حاصل خواهد شد :

نمودار تبدیل فوریه ی z در متلب

کد نویسی فیلتر IIR  در نرم افزار متلب :

سپس در نرم افزار متلب ، کد زیر را می نویسیم تا مقادیری با توجه به فیلتر باترورث (Butterworth ) برای فیلتر IIR محاسبه کنیم :

1
2
3
4
clc
o = 5;
Wc = 2*pi*10/fs;
[b,a] = butter(o , Wc);

*Wc همان فرکانس قطع سیگنال محسوب می شود .

محاسبه پاسخ فرکانسی فیلتر IIR در نرم افزار متلب :

با استفاده از کد متلب زیر پاسخ فرکانسی فیلتر دیجیتال را محاسبه می کنیم :

1
2
clc
freqz(b,a)

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

نمودار پاسخ فرکانسی فیلتر دیجیتال در متلب

 

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

با استفاده از کد متلب زیر ، نمودار اندازه فیلتر دیجیتال را در نرم افزار رسم می کنیم :

1
2
clc
fvtool(b,a)

نتیجه ی اجرای کد ، به صورت زیر خواهد بود :

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

 

رسم نمودار فیلتر IIR  در نرم افزار متلب :

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

1
2
3
clc
x_f = filter(b,a,z);
plot(x_f)

در صورت اجرای کد بالا ، نمودار به صورت زیر نمایش داده خواهد شد :

نمودار فیلتر IIR در متلب

نمودار بالا در واقع فیلتر IIR از سیگنال سینوسی با نویز گوسی می باشد .

 

در این پست به بررسی کامل در مورد نحوه ی طراحی فیلتر دیجیتال در متلب و فیلتر IIR و فیلتر FIR در نرم افزار متلب پرداختیم ؛ در پست های آینده سایت منتظر طراحی فیلتر های آنالوگ و دیجیتال در نرم افزار بیشتری باشید .

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

-->