Мазмұны:

Неғұрлым сенімді жиілікті анықтау үшін FIR сүзгісі: 5 қадам
Неғұрлым сенімді жиілікті анықтау үшін FIR сүзгісі: 5 қадам

Бейне: Неғұрлым сенімді жиілікті анықтау үшін FIR сүзгісі: 5 қадам

Бейне: Неғұрлым сенімді жиілікті анықтау үшін FIR сүзгісі: 5 қадам
Бейне: Стерео и Стереотипы ИНЖЕНЕР НЕ ЗНАЕТ КАК МЕЛОМАН СЛЫШИТ подкаст с @foveonyc 2024, Қараша
Anonim
Неғұрлым сенімді жиілікті анықтау үшін FIR сүзгісі
Неғұрлым сенімді жиілікті анықтау үшін FIR сүзгісі

Мен akellyirl -дің DSP техникасын қолдана отырып, сенімді жиілікті анықтау туралы нұсқаулығының шын жанкүйерімін, бірақ егер сізде шулы өлшемдер болса, кейде оның қолданатын техникасы жеткіліксіз болады.

Жиілік детекторына таза кіруді алудың бір оңай жолы - анықтағыңыз келетін жиілікке қандай да бір сүзгіні қолдану.

Өкінішке орай, цифрлық сүзгіні құру оңай емес және оған көп математика қатысады. Сондықтан мен осындай сүзгілерді құруды жеңілдету үшін бағдарламаны құру туралы ойладым, оны кез келген адамға егжей -тегжейлі ойламай -ақ өз жобаларында қолдануға рұқсат беру.

Бұл нұсқаулықта мен Arduino Uno көмегімен шулы өлшеуде 50 Гц синус толқынын анықтаймын (Arduino шынымен қажет емес).

1 -қадам: Мәселе

Мәселесі
Мәселесі

Өлшенген кіріс деректері жоғарыдағы қисыққа ұқсайтынын елестетіп көріңіз - өте шулы.

Егер біз akellyirl's Instructable сияқты қарапайым жиілік детекторын жасасақ, нәтиже «-inf» немесе төмендегі код жағдайында болады: «Иә, тым көп шу …»

Ескерту: Мен akellyirl кодын қолдандым, бірақ шуды өлшейтін жоғарғы жағына rawData массивін қостым.

Төменде сіз «unfiltered.ino» деп аталатын файлдан бүкіл кодты таба аласыз.

2 -қадам: Шешім

Шешім
Шешім

Кіріс деректері шулы болғандықтан, бірақ біз іздейтін жиілікті білетіндіктен, мен BandFas сүзгісін жасау үшін EasyFIR деп аталатын құралды қолдана аламыз және оны кіріс деректеріне қолдана аламыз, нәтижесінде жиілік детекторының кірісі әлдеқайда таза болады. жоғарыдағы сурет).

3 -қадам: EasyFIR

EasyFIR
EasyFIR

EasyFIR құралын қолдану өте қарапайым, GitHub репозиторийін жүктеп алып, өлшемдердің бір үлгісімен easyFIR.py файлын іске қосыңыз (CSV форматында).

Егер сіз easyFIR.py файлын ашсаңыз, сіз қол жеткізгіңіз келетін нәтижеге байланысты өзгерте алатын және өзгертуге болатын 5 параметрді табасыз (жоғарыдағы суретті қараңыз). 5 параметрді реттеп, питон файлын орындағаннан кейін сіз терминалда есептелген коэффициенттерді көресіз. Бұл коэффициенттер келесі қадам үшін өте маңызды!

Нақты қолдану туралы қосымша ақпаратты мына жерден табуға болады:

4 -қадам: сүзу

Сүзу
Сүзу

Егер сіз қажетті сүзгі коэффициенттерін есептесеңіз, жиілікті детекторға нақты файлерді қолдану өте оңай.

Жоғарыдағы суретте көріп тұрғандай, сізге тек коэффициенттерді, applyFilter функциясын қосу керек, содан кейін кіріс өлшемдерін сүзу қажет.

Төменде сіз «filtered.ino» деп аталатын файлдағы барлық кодты таба аласыз.

Ескерту: сүзгілеудің керемет алгоритмі үшін Stack Overflow Post -тың арқасында үлкен рахмет!

5 -қадам: ләззат алыңыз

Ләззат алыңыз
Ләззат алыңыз

Көріп отырғаныңыздай, қазір біз шулы ортада 50 Гц сигналды анықтай аламыз ба?

Менің идеямды және кодты сіздің қажеттіліктеріңізге бейімдеуіңізді өтінемін. Мен сіздің жақсартуларыңызды қосқаныма өте ризамын!

Егер сізге менің жұмысым ұнайтын болса, GitHub -да жұлдызды жұмысымды қолдасаңыз, мен өте ризамын!

Қолдау көрсеткеніңе рахмет!:)

Ұсынылған: