در سلسله ی آموزش های درس اصول سیستم های مخابراتی توسط متلب ، مبحث طراحی فیلتر های دیجیتال را داریم که در پست های قبل به طراحی فیلتر IIR و فیلتر FIR توسط نرم افزار متلب پرداختیم .همچنین به نحوه ی طراحی فیلتر پایین گذر آنالوگ در متلب نیز مروری داشتیم. در این پست هدف ما بررسی و محاسبه و طراحی یک مثال مهم از طراحی فیلتر پایین گذر دیجیتال در متلب می باشد و همچنین مقایسه ی فیلتر دیجیتال پایین گذر به دست آمده با فیلتر آنالوگ پایین گذر در متلب را خواهیم داشت.
تعریف فیلتر دیجیتال :
یک فیلتر دیجیتال اساسا فرآیندی محاسباتی (یا الگوریتمی) می باشد که یک دنباله از اعداد مثل که نشان دهنده ورودی است را به یک دنباله دیگر که نشان دهنده خروجی می باشد ، تبدیل می نماید.
بنابراین یک فیلتر دیجیتال می تواند به عنوان یک ابزار محاسباتی ، یعنی انجام توابع دیگری مانند انتگرال گیری و مشتق گیری و تخمین و احتمال استفاده شود .
رابطه ی تفاضل ورودی – خروجی ، با در نظر گرفتن خروجی به ورودی ، را می توان
در دامنه زمانی گسسته به صورت فرم مجموع زیر بیان کنیم :
در تابع تبدیل z ، یا در دامنه z به صورت زیر خواهد بود :
بنابراین طراحی یک فیلتر دیجیتال برای انجام یک عملکرد مطلوب، مستلزم تعیین ضرایب \( \Large a_i\) و \( \Large b_i\) می باشد.
۵ گام مهم در طراحی فیلتر پایین گذر دیجیتال در متلب :
برای اینکه با نحوه ی طراحی فیلتر های دیجیتال و فیلتر پایین گذر دیجیتال آشنا شویم ؛ مراحل آموزش را در ۵ گام مهم با یک مثال به طور کامل بررسی میکنیم .
تمام این ۵ گام مهم را هم
- به صورت ریاضی
- و هم با استفاده از نرم افزار متلب
آموزش خواهیم داد .
سپس به مقایسه ی نتایج به دست آمده برای بخش دیجیتال فیلتر پایین گذر دیجیتال در متلب با فیلتر آنالوگ پایین گذر در متلب خواهیم پرداخت .
مثالی که برای این پست در نظر گرفته ایم به این صورت می باشد که :
تابع تبدیل \( \Large G(z)\) یک فیلتر دیجیتال پایین گذر با مشخصات زیر را محاسبه نمایید :
- ۳dB فرکانس قطع (cutoff frequency) در ۲۰Hz
- 10dB میرایی (attenuation) برای فرکانس های بزرگتر از ۴۰Hz
- 200Hz فرکانس نمونه برداری \( \Large f_s \)
در نهایت اندازه نمودار به دست آمده برای فیلتر دیجیتال پایین گذر را با فیلتر آنالوگ پایین گذر با همین مشخصات مقایسه کنید .
گام اول از طراحی فیلتر پایین گذر دیجیتال در متلب :
تابع تبدیل \( \Large G(s)\) یک فیلتر پایین گذر آنالوگ با فرکانس نرمالیزه شده \( \Large w_c =1 rad/s\) توسط تابع buttap در نرم افزار متلب به دست می آید .
در نرم افزار متلب به صورت زیر کد نویسی را انجام می دهیم :
1 2 3 |
که در صورت اجرای کد بالا در نرم افزار متلب ، نتیجه مقادیر برای a و b به صورت زیر حاصل خواهد شد :
به همین دلیل ، تابع تبدیل نرمالیزه شده فرکانسی که با \( \Large G_n(s)\) نشان داده می شود ،
به صورت زیر تعریف می گردد :
حال بایستی این تابع تبدیل را به تابع تبدیل دیگری با فرکانس قطع حقیقی در ۲۰Hz تبدیل نماییم .
که با \( \Large G_a(s)\) نشان می دهیم .
گام دوم در طراحی فیلتر پایین گذر دیجیتال در متلب :
در ابتدا فرکانس آنالوگ را با فرمول زیر به فرکانس دیجیتال تبدیل می نماییم :
که در این فرمول مقدار \( \Large T_s\) برابر است با :
بافرض فرکانس قطع آنالوگ (۳dB) به عنوان \( \Large w_{ac} \) ، فرمول زیر را داریم و به دست خواهیم آورد :
و یا :
چون در این مثال این فرکانس خیلی نزدیک به فرکانس گسسته در زمان یعنی \( \Large dc =20Hz\) است . پس داریم :
که رابطه ی بالا فقط زمانی به کار برده می شود که فرکانس قطع نرمالیزه شده به \( \Large w_c = 1 rad/s\) باشد .
اگر \( \Large w_c <> 1\) باشد ، باید از فرمول زیر استفاده نماییم :
برای این مثال \( \Large w_{actual} = 130 rad/s \) است ، پس با جایگذاری s با s/130 به دست خواهیم آورد :
برای به دست آوردن این تابع تبدیل در نرم افزار متلب به صورت زیر کد نویسی را انجام می دهیم :
1 2 3 |
که در صورت اجرای کد بالا در نرم افزار متلب نتیجه را به صورت زیر خواهیم داشت :
گام سوم در طراحی فیلتر پایین گذر دیجیتال در متلب :
پس از دو گام که گفته شد ، خواهیم داشت :
و با جایگذاری
فرمول را به صورت زیر به دست می آوریم :
برای به دست آوردن این فرمول در نرم افزار متلب از کد زیر استفاده می نماییم :
1 2 3 |
که با اجرای کد بالا در نرم افزار متلب خواهیم داشت :
گام چهارم در طراحی فیلتر پایین گذر دیجیتال در متلب :
از گام سوم داریم :
برای رسم نمودار اندازه \( \Large G(z)\) باید از دستور freqz در نرم افزار متلب استفاده نماییم .
ولی در ابتدا بایستی عبارت بالا را در توان های منفی بیان کنیم . که با تقسیم کردن فرمول بالا بر \( \Large 62607z^2\) فرمول را به صورت زیر خواهیم داشت :
گام پنجم در طراحی فیلتر پایین گذر دیجیتال در متلب :
در نهایت با استفاده از ۴ گام قبلی ، توسط کد متلب زیر \( \Large G(z)\) را تولید و سپس نمودار اندازه تابع تبدیل را رسم می نماییم .
1 2 3 4 5 6 7 8 9 10 |
که در صورت اجرای کد بالا در نرم افزار متلب خواهیم داشت :
پس با این ۵ گام مهم به سادگی نمودار اندازه تابع تبدیل یک فیلتر پایین گذر دیجیتال را در نرم افزار متلب رسم نمودیم .
و اما میخواهیم بدانیم فرق بین اندازه تابع تبدیل یک فیلتر پایین گذر دیجیتال با یک فیلتر پایین گذر آنالوگ چیست ؟
همچنین چگونه در نرم افزار متلب یک فیلتر پایین گذر آنالوگ را رسم کنیم ؟
تفاوت بین فیلتر پایین گذر دیجیتال با فیلتر پایین گذر آنالوگ :
در ۵ گام بالا یک فیلتر پایین گذر دیجیتال را رسم نمودیم . حال با همان مشخصات ذکر شده می خواهیم با پاسخ فرکانسی آنالوگ مقایسه کنیم .
دستور متلب زیر را برای رسم فیلتر پایین گذر آنالوگ داریم :
1 2 3 4 5 6 7 8 9 10 11 12 |
که در صورت اجرای کد بالا در نرم افزار متلب ،نمودار فیلتر پایین گذر آنالوگ به صورت زیر نمایش داده می شود :
در این پست با نحوه ی رسم فیلتر پایین گذر دیجیتال در متلب و همچنین مقایسه ی بین فیلتر پایین گذر دیجیتال با فیلتر پایین گذر آنالوگ آشنا شدیم .
در پست های آینده سایت به بررسی فیلتر های باترورث در متلب خواهیم پرداخت .
خانم مهندس خیلی عالی بود کلی استفاده کردیم ممنون
خوشحالیم که مفید بوده براتون آقای مهندس
خانم مهندس لطفا اموزش کنترل خطی رو هم بزارید ممنون
بسیار خب آقای مهندس. منتظر آموزش های جدید سایت باشین
سلام امکانش هست که طراحی فیلتر را و اپتیمایزیشن را هم توضیح دهید؟
ضمن عرض سلام
مطالب سایت به مرور تکمیل تر خواهند شد. سپاس از پیشنهاد شما