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

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

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

تعریف فیلتر دیجیتال :

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

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

رابطه ی تفاضل ورودی – خروجی ، با در نظر گرفتن خروجی به ورودی ، را می توان

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

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

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

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

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

5 گام مهم در طراحی فیلتر پایین گذر دیجیتال در متلب :

برای اینکه با نحوه ی طراحی فیلتر های دیجیتال و فیلتر پایین گذر دیجیتال آشنا شویم ؛ مراحل آموزش را در 5 گام مهم با یک مثال به طور کامل بررسی میکنیم .

تمام این 5 گام مهم را هم

  1. به صورت ریاضی
  2. و هم با استفاده از نرم افزار متلب

آموزش خواهیم داد .

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

حتما بخوانید:  9 سیستم از سیستم های مخابراتی که هر دانشجوی برق باید بداند

مثالی که برای این پست در نظر گرفته ایم به این صورت می باشد که :

تابع تبدیل G(z) یک فیلتر دیجیتال پایین گذر با مشخصات زیر را محاسبه نمایید :

  1. 3dB فرکانس قطع (cutoff frequency) در 20Hz
  2. 10dB میرایی (attenuation) برای فرکانس های بزرگتر از 40Hz
  3. 200Hz فرکانس نمونه برداری  f_s

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

گام اول از طراحی فیلتر پایین گذر دیجیتال در متلب :

تابع تبدیل G(s) یک فیلتر پایین گذر آنالوگ با فرکانس نرمالیزه شده w_c =1 rad/s توسط تابع buttap در نرم افزار متلب به دست می آید .

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

1
2
3
clc
[z,p,k]=buttap(2);
[b,a]=zp2tf(z,p,k)

که در صورت اجرای کد بالا در نرم افزار متلب ، نتیجه مقادیر برای a و b به صورت زیر حاصل خواهد شد :

تابع تبدیل فیلتر پایین گذر آنالوگ در متلب

به همین دلیل ، تابع تبدیل نرمالیزه شده فرکانسی که با G_n(s) نشان داده می شود ،

به صورت زیر تعریف می گردد :

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

حال بایستی این تابع تبدیل را به تابع تبدیل دیگری با فرکانس قطع حقیقی در 20Hz تبدیل نماییم .

که با G_a(s) نشان می دهیم .

گام دوم در طراحی فیلتر پایین گذر دیجیتال در متلب :

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

تبدیل فرکانس آنالوگ به فرکانس دیجیتال

که در این فرمول مقدار T_s برابر است با :

محاسبه ی دوره ی تناوب

بافرض فرکانس قطع آنالوگ (3dB)  به عنوان w_ac ، فرمول زیر را داریم و به دست خواهیم آورد :

فرکانس متناوب ac

و یا :

فرکانس متناوب fac

چون در این مثال این فرکانس خیلی نزدیک به فرکانس گسسته در زمان یعنی  f_dc =20Hz   است . پس داریم :

فرکانس گسسته در زمان

که رابطه ی بالا فقط زمانی به کار برده می شود که فرکانس قطع نرمالیزه شده به w_c = 1 rad/s باشد .

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

اگر w_c <> 1″ title=”w_c <> 1″/> باشد ، باید از فرمول زیر استفاده نماییم :</p>
<p><img class=

برای این مثال w_actual = 130 rad/s است ، پس با جایگذاری s با s/130 به دست خواهیم آورد :

فرکانس واقعی

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

1
2
3
clc
syms s
simplify(1/((s/130)^2+1.414*s/130+1))

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

تابع تبدیل در متلب

گام سوم در طراحی فیلتر پایین گذر دیجیتال در متلب :

پس از دو گام که گفته شد ، خواهیم داشت :

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

و با جایگذاری

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

فرمول را به صورت زیر به دست می آوریم :

تابع تبدیل فیلتر باترورث

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

1
2
3
clc
syms z
simplify(16900/((400*(z-1)/(z+1))^2+183.82*400*(z-1)/(z+1)+16900))

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

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

گام چهارم در طراحی فیلتر پایین گذر دیجیتال در متلب :

از گام سوم داریم :

تابع تبدیل z فیلتر باترورث

برای رسم نمودار اندازه G(z) باید از دستور freqz در نرم افزار متلب استفاده نماییم .

ولی در ابتدا بایستی عبارت بالا را در توان های منفی بیان کنیم . که با تقسیم کردن فرمول بالا بر 62607z^2 فرمول را به صورت زیر خواهیم داشت :

 

تابع تبدیل z فیلتر پایین گذر دیجیتال

گام پنجم در طراحی فیلتر پایین گذر دیجیتال در متلب :

در نهایت با استفاده از 4 گام قبلی ، توسط کد متلب زیر G(z) را تولید و سپس نمودار اندازه تابع تبدیل را رسم می نماییم .

1
2
3
4
5
6
7
8
9
10
clc
bz =[0.0675 0.1350 0.0675];
az=[1 -1.1428 0.4128];
fs=200;
[Gz,wT]=freqz(bz,az,20,200);
semilogx(fs,20.*log10(abs(Gz)));
xlabel('Frequency in Hz - log scale')
ylabel('Magnitude(dB)')
title('Digital Low-pass Filter')
grid

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

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

رسم فیلتر پایین گذر دیجیتال در متلب

پس با این 5 گام مهم به سادگی نمودار اندازه تابع تبدیل یک فیلتر پایین گذر دیجیتال را در نرم افزار متلب رسم نمودیم .

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

همچنین چگونه در نرم افزار متلب یک فیلتر پایین گذر آنالوگ را رسم کنیم ؟

تفاوت بین فیلتر پایین گذر دیجیتال با فیلتر پایین گذر آنالوگ :

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

دستور متلب زیر را برای رسم فیلتر پایین گذر آنالوگ داریم :

1
2
3
4
5
6
7
8
9
10
11
12
clc
[z,p,k]=buttap(2);
[b,a]=zp2tf(z,p,k);
f=1:1:100;
fc=20;
[bn,an]=lp2lp(b,a,fc);
Gs=freqs(bn,an,f);
semilogx(f,20.*log10(abs(Gs)));
xlabel('Frequency in Hz - log scale')
ylabel('Magnitude(dB)')
title('Analog Low-pass Filter')
grid

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

فیلتر پایین گذر آنالوگ در متلب

 

در این پست با نحوه ی رسم فیلتر پایین گذر دیجیتال در متلب و همچنین مقایسه ی بین فیلتر پایین گذر دیجیتال با فیلتر پایین گذر آنالوگ آشنا شدیم .

در پست های آینده سایت به بررسی فیلتر های باترورث در متلب خواهیم پرداخت .

4 دیدگاه در “5 گام مهم در آموزش طراحی فیلتر پایین گذر دیجیتال در متلب

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

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.