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

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

آموزش طراحی فیلتر IIR در متلب

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

طراحی فیلتر IIR

یکی از مباحث مهم در پردازش سیگنال فیلترها می باشند؛ فیلترهای IIR و FIR از جمله مطرح ترین فیلترها می باشند. در حالت کلی، توابع cheby1 ، cheby2 ، ellip ، butter در محیط نرم افزار MATLAB به منظور طراحی فیلتر های دیجیتال به کار می روند و به طور مستقیم، ضرایب فیلتر دیجیتال را آماده می سازند. توابع نیز cheb2ord  ،icleb1 ord ، buttoو ellipord برای تخمین درجه فیلترها استفاده می گردند. این توابع، مشخصات فرکانسی فیلتر را pre wap نموده، قطب ها و صفرهای فیلتر مناسب آنالوگ را محاسبه کرده و تبدیل Z دو سویه را برای نگاشت پارامترها به حوزه Z بکار می برند.

توجه شود که فرکانس ها در برنامه MATLAB نسبت به Fs/2 نرمالیزه می شوند. متغیرهای Rs ، Rp ، Ws ، Wp به ترتیب، بیانگر فرکانس های زاویه ای نرمالیزه شده (بر حسب ۰٫۵Fs) لبه باند عبور، لبه باند توقف، حداکثر تموج باند عبور و حداقل تضعیف باند توقف (هر دو بر حسب dB) هستند. در ادامه توضیحات، فرض می گردد Wn، بیانگر فرکانس زاویه ای نرمالیزه قطع و N معرف درجه فیلتر باشد. num و denum نیز به این ترتیب، نشان دهنده ضرایب صورت و مخرج تابع انتقال (Hz) می باشد.

فیلتر Butterworth دیجیتال

فیلتر Butterworth دیجیتال پایین گذر:

% ۰<Wp< Ws<1

[N, Wn] = buttord(Wp, Ws, Rp,Rs);

[num, denum] = butter(N, Wn);

فیلتر Butterworth دیجیتال بالا گذر:

% ۰<Wp< Ws<1

[N, Wn] = buttord(Wp, Ws, Rp, Rs);

[nuumn, denum] = butter(N, Wan, high');

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

%Wp = [Wp1, Wp 2]; Ws = [Ws1, Ws2]; 0<Wp1=Ws1Ws2<Wp2x1

[N, Wn] = buttord(Wp, Ws, Rp.Rs);

[nu, denum] = butter(N, Wn);

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

%Wp = [Wp1, Wp 2]; Ws = [Ws1, Ws2]; 0<Wp1=Ws1Ws2<Wp2x1

[N,Wn] = buttord(Wp, Ws, Rp, Rs);

[nu, denum] = butter(N, Wn, 'stop');

فیلتر Chebyshev نوع اول دیجیتال

فیلتر Chebyshev نوع اول دیجیتال پایین گذر:

% ۰<Wp< Ws<1

[N,Wp]=cheblord(Wp, Ws,Rp,Rs);

[num denum] = cheby1N, Rp, Wp);

فیلتر Chebyshev نوع اول دیجیتال بالا گذر:

% ۰<Ws<Wp<1

[N,Wp]=cheblord(Wp, Ws,Rp.Rs);

[num denum] = cheby1)N,Rp, Wp, 'high');

فیلتر Chebyshev نوع اول دیجیتال میان گذر:

% Wp=[Wpl, Wp2]; Ws=Ws1,Ws2]: 0<Wsl<Wpl<eWp2<Ws2<1

[N, Wp]=cheblord(Wp, Ws,Rp,Rs);

[num denum] = cheby1(N, Rp, Wp);

فیلتر Chebyshev نوع اول دیجیتال میان نگذر:

% Wp=[Wpl,Wp2]; Ws=[Ws1,Ws2]; 0<Wp<Ws1<Ws2<Wp2<1

[N, Wp]=cheblord(Wp, Ws.Rp.Rs);

[num denum] = cheby1(N,Rp,'stop');

فیلتر Chebyshev نوع دوم دیجیتال

فیلتر Chebyshev نوع دوم دیجیتال با بین گذر:

% ۰<Wp< Ws<1

[N, Ws]=cheb2ord(Wp.Ws,Mp,Rs);

[num denum] = cheby2(N,Rp,Ws);

فیلتر Chebyshev نوع دوم دیجیتال بالا گذر:

% ۰<Ws<Wp<1

[N,Ws]=cheb2ord(Wp, Ws.Rp,Rs);

[num denum] = cheby2(N,Rs,Ws,high');

فیلتر Chebyshev نوع دوم دیجیتال میان گذر:

% Wp=[Wpl,Wp2]; Ws=[Ws1,Ws2]; 0<Wp<Ws1<Ws2<Wp2<1

[N, Ws]=cheb2ord(Wp, Ws,Rp.Rs);

[num, denum] = cheby2(N,Rs,Ws);

فیلتر Chebyshev نوع دوم دیجیتال میان نگذر:

% Wp=[Wpl,Wp2]; Ws=[Ws1,Ws2]; 0<Wp<Ws1<Ws2<Wp2<1

[N,Wp]=cheb2ord(Wp,Ws,Rp,Rs);

[num, denium] = chebyaN,Rs,Ws,'stop');

فیلتر elliptic دیجیتال

فیلتر elliptic دیجیتال پایین گذر:

% ۰<Wp< Ws<1

[N, Wp]=ellipord(Wp, Ws,Rp,Rs);

[num, denium] = ellip(N, Rp, Rs, Wp);

فیلتر elliptic دیجیتال بالا گذر:

% ۰<Wp< Ws<1

N, Wp]=ellipord(Wp, Ws.Rp.Rs);

[num, denum] = ellip(N, Rp, Rs, Wp, 'high');

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

% Wp=[Wpl,Wp2]; Ws=[Ws1,Ws2]; 0<Wp<Ws1<Ws2<Wp2<1

[N,Wp]=ellipord(Wp, Ws,Rp.Rs);

[num, denum] = ellip(N, Rp,Rs, Wp);

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

% Wp=[Wpl,Wp2]; Ws=[Ws1,Ws2]; 0<Wp<Ws1<Ws2<Wp2<1

[N, Wp]=ellipord(Wp, Ws,Rp,Rs);

[num, denum] = ellip(N, Rp, Rs, Wp, 'stop');

طراحی فیلتر دیجیتال

فرض کنید فیلتر دیجیتال میان گذری با باند عبور ۱۰۰-۲۰۰Hz لازم داریم که پهنای باندهای انتقال آن ۲۵HZ است و فرکانس نمونه برداری برابر است با Fs=1Khz تموج باند عبور ۱dB و حداقل تضعیف باند توقف ۶۰dB می باشد. در ادامه نتایج چهار فیلتر IIR طراحی شده با روش های مختلف با نتیجه طراحی با دو فیلتر FIR به روش پنجره و بهینه مقایسه شده است.

نتایج فیلتر IIR با روش طراحی با ترورث در شکل زیر نشان داده شده است.

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

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

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

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

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


مشاهده ویدئو در این باره

خوشحال خواهیم شد اگر نظر خودتون رو درباره این مطلب ثبت کنید

خطا!دکمه ریفریش را بزنید