فهرست مطالب:

فیلتر FIR برای تشخیص فرکانس قابل اطمینان: 5 مرحله
فیلتر FIR برای تشخیص فرکانس قابل اطمینان: 5 مرحله

تصویری: فیلتر FIR برای تشخیص فرکانس قابل اطمینان: 5 مرحله

تصویری: فیلتر FIR برای تشخیص فرکانس قابل اطمینان: 5 مرحله
تصویری: اگر یکی از این ۷ نشانه را در وجود تان مشاهده کردید پس شما یک نابغه هستید. 2024, جولای
Anonim
فیلتر FIR برای تشخیص فرکانس قابل اطمینان تر
فیلتر FIR برای تشخیص فرکانس قابل اطمینان تر

من واقعاً طرفدار دستورالعمل های akellyirl در مورد تشخیص فرکانس قابل اعتماد با استفاده از تکنیک های DSP هستم ، اما گاهی اوقات اگر اندازه گیری های پر سر و صدا دارید ، تکنیک مورد استفاده او به اندازه کافی خوب نیست.

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

متأسفانه ایجاد فیلتر دیجیتال کار آسانی نیست و ریاضیات زیادی نیز در آن دخیل است. بنابراین من در مورد ایجاد نوعی برنامه برای ساده سازی ایجاد چنین فیلترهایی فکر کردم که به هر کسی اجازه دهد از آنها در پروژه های خود بدون کاوش در جزئیات استفاده کند.

در این دستورالعمل ، من قصد دارم یک موج سینوسی 50 هرتزی را در اندازه گیری پر سر و صدا با Arduino Uno تشخیص دهم (آردوینو واقعاً ضروری نیست).

مرحله 1: مشکل

مشکل
مشکل

تصور کنید داده های ورودی اندازه گیری شده مانند منحنی بالا است - بسیار پر سر و صدا.

اگر یک آشکارساز فرکانس ساده مانند آنچه در دستورالعمل akellyirl ساخته شده است بسازیم ، نتیجه "-inf" یا در مورد کد زیر است: "بله ، سر و صدای زیاد …"

توجه: من تقریباً از تمام کد akellyirl استفاده کردم ، اما یک آرایه rawData در بالا با اندازه گیری های پر سر و صدا اضافه کردم.

در زیر می توانید کل کد را در فایلی به نام "unfiltered.ino" پیدا کنید.

مرحله 2: راه حل

راه حل
راه حل

از آنجا که داده های ورودی پر سر و صدا هستند ، اما ما فرکانس مورد نظر خود را می دانیم ، می توانیم از ابزاری که من ایجاد کردم به نام easyFIR برای ایجاد یک فیلتر Bandpass و اعمال آن بر روی داده های ورودی استفاده کنیم ، که منجر به ورودی بسیار تمیزتر برای آشکارساز فرکانس می شود (تصویر بالا)

مرحله 3: EasyFIR

EasyFIR
EasyFIR

استفاده از ابزار easyFIR بسیار آسان است ، کافی است مخزن GitHub را بارگیری کرده و فایل easyFIR.py را با یک نمونه از اندازه گیری های خود (در قالب CSV) اجرا کنید.

اگر فایل easyFIR.py را باز کنید ، 5 پارامتر خواهید یافت (تصویر بالا را ببینید) بسته به نتیجه ای که می خواهید به آن برسید ، می توانید و باید تغییر دهید. پس از اصلاح 5 پارامتر و اجرای فایل پایتون ، ضرایب محاسبه شده را در ترمینال خود مشاهده خواهید کرد. این ضرایب برای مرحله بعدی بسیار مهم هستند!

اطلاعات بیشتر در مورد استفاده دقیق را می توانید در اینجا پیدا کنید:

مرحله 4: فیلتر کردن

فیلتر کردن
فیلتر کردن

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

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

در زیر می توانید کل کد موجود در فایلی به نام "filtered.ino" را بیابید.

توجه: با تشکر فراوان از این Stack Overflow Post برای الگوریتم عالی برنامه فیلتر!

مرحله 5: لذت ببرید

لذت بردن
لذت بردن

همانطور که می بینید ، اکنون ما قادر به تشخیص یک سیگنال 50 هرتز حتی در یک محیط پر سر و صدا هستیم؟

لطفاً با خیال راحت ایده و کد من را با نیازهای خود تطبیق دهید. من بسیار ممنون می شوم اگر پیشرفت های شما را نیز شامل شود!

اگر از کارهای من خوشتان می آید ، اگر از کار من با ستاره در GitHub حمایت کنید ، واقعاً قدردانی می کنم!

از حمایت شما متشکرم!:)

توصیه شده: