طراحی فیلتر با آردوینو | قسمت اول پیاده سازی فیلتر دیجیتال و عملیات پردازش سیگنال DSP در آردوینو

blog
۱۳۹۸-۱۱-۰۷
7 دقیقه

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

با این آموزش از سیسوگ همراه باشید.

 

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

فیلترهای آنالوگ، فیلترهایی هستند که از قطعات مداری مثل مقاومت، خازن، سلف و آمپلی‌فایرها ساخته شده‌اند. در حالی که فیلترهای دیجیتال، اغلب درون یک تراشه تعبیه شده‌اند. مثلاً درون واحد میکروکنترلر، Soc، پردازنده‌ها، DSP و… فیلترهای دیجیتال، در فیلتر کردن بسیار دقیق‌تر عمل می‌کنند، اما سیگنال باید به‌صورت دیجیتال باشد.

شاید برای شما مفید باشد: پری آمپلی فایر چیست؟

 

 

طراحی فیلتر در آردوینو

در این مقاله قصد داریم تا فیلترهای بالاگذر، میان گذر، میان نگذر و فیلتر کالمن را به عنوان نمونه، با استفاده از آردوینو طراحی کنیم. در این آموزش ما از یک پتانسیومتر برای تولید سیگنال و از واحد A2D آردوینو برای دریافت و فیلتر مقادیر استفاده می‌کنیم.

انواع فیلتر ها در مدار

 

فیلتر بالاگذر

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

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

 

برای اجرای این فیلتر، ابتدا مدار زیر را بسته و سپس کد بالا را بر روی آردوینو خود آپلود کنید. دقت داشته باشید که ورودی پایه‌ی A0 آردوینو می‌باشد. به عنوان مولد سیگنال نیز، می‌توانید از یک پتانسیومتر (مثلاً 5 کیلو اهم) استفاده کنید.

مدار فیلتر دیجیتال آردوینو

 

برای مشاهده خروجی، از سریال پلاتر خود آردوینو استفاده کنید. برای باز کردن پنجره پلاتر، می‌توانید از کلید ترکیبی Ctrl + Shift + L استفاده کرده و یا از طریق منوی زیر اقدام کنید:

Tools -> Serial Plotter

سریال پلاتر آردوینو

 

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

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

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

 

فیلتر میان گذر (باند)

فیلتر میان گذر، همان فیلتری است که یک ایستگاه (باند) مشخص را در رادیو برای شما جدا می‌کند. ایده ما برای اجرای فیلتر میان گذر، اجرای دو فیلتر EMA مجزا با فرکانس‌های قطع متفاوت است. وقتی همزمان دو فیلتر بر روی یک سیگنال قرار دهید، که یکی سیگنال را تا فرکانس بالا عبور داده و دیگری از فرکانس قطع پایین به بعد عبور می‌دهد، اگر دو سیگنال به‌دست آمده را از سیگنال اصلی کم کنیم، سیگنال میان گذر ایجاد می‌شود.

 

نتیجه اعمال فیلتر میان گذر

نتیجه فیلتر میان گذر: سیگنال نارنجی مربوط به فیلتر بالا گذر و سیگنال آبی، مربوط به سیگنال میان گذر می باشد.

 

 

فیلتر میان ناگذر (Band Stop)

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

نتیجه اعمال فیلتر میان نگذر بر سیگنال

سیگنال اصلی (نارنجی)، فیلتر میان نگذر (آبی کم رنگ)، و فیلتر پایین گذر (آبی پر رنگ)

نتیجه اعمال فیلتر میان نگذر

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

 

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

 

فیلتر کالمن

فیلتر کالمن (Kalman Filter) یک تخمین گر است که از تخمین حالت قبل و مشاهده فعلی برای محاسبه تخمین حالت فعلی استفاده می‌کند و یک ابزار بسیار قوی برای ترکیب اطلاعات در حضور نامعینی‌ها است.

برای اجرای این فیلتر در آردوینو، ابتدا کتابخانه (لایبری) آن را از گیت هاب این پروژه دانلود کرده، سپس همانند کتابخانه‌های دیگر آن را از مسیر زیر به آردوینو خود اضافه کنید:

Sketch -> Include Library -> Add.ZIP Library

افزودن کتابخانه زیپ به آردوینو

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

 

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

 

و در نهایت برای دریافت مقدار فیلتر شده، به روش زیر عمل کنید:

 

همچنین می‌توانید مثال خود کتابخانه را نیز از مسیر زیر اجرا کنید:

File -> Examples -> KalmanFilter

 

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

 

فیلتر کاملن آردوینو

همچنین از طریق منوی

Sketch -> Include Libary -> Manage Libaries

و یا با استفاده از کلید ترکیبی Ctrl+Shift+I قسمت مدیریت کتابخانه (لایبری) های آردوینو را باز کنید:

 

مدیریت کتابخانه ها در آردوینو

 

اگر در کادر جستجو عبارت “Kalman Filter” را جستجو کنید، می‌توانید کتابخانه‌های زیادی را برای اجرای فیلتر کالمن آردوینو برای ژیروسکوپ، سنسور های بارومتر، دما، شتاب سنج و… پیدا کنید و مثال‌های آن‌ها را مطالعه کنید.

کتابخانه های فیلتر کالمن آردوینو

امیدوارم این مطلب برای شما مفید بوده باشد. در قسمت بعد، کتابخانه DSp

 

اطلاعات
11
0
لینک و اشتراک
profile

Digi Boy

متخصص الکترونیک

به دانش فزای و به یزدان گرای، که او باد جان تو را رهنمای (فردوسی)

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

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

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

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

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

profile
نیما گفت :
۱۴۰۲-۰۵-۲۲ ۱۷:۲۶

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

profile
hossein گفت :
۱۳۹۹-۱۲-۰۳ ۱۰:۴۳

سلام خدمت اعضای محترم سیسوگ و زئوس
من میخواستم فیلتر کالمن رو برای GPS راه اندازی کنم کتابخانه ای چیزی از این بابت دارین شما

profile
zeus گفت :
۱۳۹۹-۱۲-۰۵ ۱۰:۲۶

سلام دوست عزیز
نه متاسفانه من از این فیلتر روی gps استفاده نکردم متاسفانه
اتفاقا بدم نمیآد انجامش بدم ولی اگر فرصت پیش بیاد 🙁

profile
کاوه گفت :
۱۳۹۸-۱۱-۰۸ ۱۳:۲۰

سلام و خدا قوت
برای Uno:
nbsp was not declared in this scope&

اصلا این nbsp چی هست؟
ممنون

profile
Digi Boy گفت :
۱۳۹۸-۱۱-۰۸ ۱۶:۱۰

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

profile
مریم گفت :
۱۳۹۸-۱۱-۰۸ ۰۷:۰۹

سلام، از چه برد آردوینویی استفاده شده است؟؟؟

profile
Digi Boy گفت :
۱۳۹۸-۱۱-۰۸ ۰۸:۴۸

درود بر شما.
بر روی نانو و Leonardo تست است. اما بر روی برد های دیگه احتمالا مشکل خاصی نخواهد داشت.

profile
مریم گفت :
۱۳۹۸-۱۱-۰۸ ۱۰:۰۴

تشکر، مطالب بسیار جالبی هست. خواهشمندم آموزشتان را ادامه دهید

profile
Digi Boy گفت :
۱۳۹۸-۱۱-۰۸ ۱۶:۱۰

سپاس از شما، حتما.

profile
VHD گفت :
۱۳۹۸-۱۱-۰۷ ۲۳:۲۵

موضوع متفاوت و جالبی بود
ممنون
ادامه بدید
بعضی جاها هم ایراداتی بود که بعدا عرض خواهم کرد

profile
Digi Boy گفت :
۱۳۹۸-۱۱-۰۸ ۰۸:۴۹

سپاس.
خواهش میکنم.
به روی چشم!
بله، احتمالش هست. صاحب اختیار هستید. بفرمایید.

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله