Единица 3 / 12

Обработка на сигнали: филтри, земање примероци и фреквентна анализа

Добивки:

  • Способност за правилно конструирање и примена на концепти за земање примероци, Nyquist и алијасирање со поддршка за вештачка интелигенција
  • Способност за преведување на FFT, дизајн на филтер и чекори за прозорци во нацрт код и пресметки со вештачка интелигенција
  • Способност да се потврдат резултатите од обработката на сигналот произведени од ВИ со референтен сигнал, контрола на единицата и мерење

Обработката на сигналот е срцето на електрониката и комуникациското инженерство: уметноста на преземање на напонски бран, снимање звук, читање на сензор или радио сигнал и извлекување на информациите во него, чистење на неговиот шум и трансформирање. Во оваа единица, ќе видите како да користите вештачка интелигенција за да научите концепти за обработка на сигнали, да конструирате пресметки за филтри и трансформација и да вршите анализа со кодот на Пајтон. Но, предупредување од самиот почеток: мала концептуална грешка во обработката на сигналот (погрешна фреквенција на земање примероци, прескокнати прозорци, единица за мешање) целосно и тивко ќе го наруши резултатот; Графикот сè уште изгледа добро, но е погрешен. Затоа е императив да се тестира секој резултат што го произведува вештачката интелигенција наспроти познат референтен сигнал и контрола на единицата.

Семплирање и Најквист: каде сè започнува

За обработка на аналоген сигнал (континуиран бран) во компјутер, го мериме во одредени интервали и го претвораме во број; Ова се нарекува земање примероци. Тоа е фреквенцијата на земање примероци (fs, единица Hz) колку примероци земаме во секунда. Критериумот Nyquist вели дека за прецизно враќање на сигналот, фреквенцијата на земање примероци мора да биде најмалку двојно поголема од највисоката фреквенција во сигналот. Ако овој услов не е исполнет, високите фреквенции почнуваат да изгледаат како ниски фреквенции; Ова се нарекува aliasing и податоците се трајно оштетени бидејќи не можете да правите разлика помеѓу овие две ситуации.

ВИ многу добро го објаснува овој концепт и може да го демонстрира со примери. Но, вие одлучувате кога ја избирате вашата фреквенција за земање примероци: колкав е вистинскиот пропусен опсег на вашиот сигнал, дали имате аналоген филтер против алиасирање, со која брзина всушност работи вашиот ADC (аналогно-дигитален конвертер: чипот што го претвора аналогниот сигнал во број). Вештачката интелигенција може да „предложи“ фреквенција на земање примероци, но овој предлог е претпоставка без мерење на вистинскиот спектар на вашиот сигнал.

Совет: Кога поставувате прашање за примерок на вештачката интелигенција, сами наведете ја најголемата фреквенција и пропусниот опсег на вашиот сигнал. „Ако највисоката компонента на мојот сигнал е ~4 kHz, како да изберам fs и каде да го ставам филтерот против алиасинг? како. Не ја терајте вештачката интелигенција да го погодува спектарот; мерка.

FFT и фреквентна анализа

FFT (Fast Fourier Transform) е брз алгоритам кој конвертира сигнал од временската оска во оската на фреквенцијата. Значи, "кои фреквенции се во овој сигнал и со колкава моќност?" одговара на прашањето. Вештачката интелигенција многу добро прави како да имплементира FFT, да ги толкува резултатите и да напише код на Python (numpy/scipy). Но, постојат вообичаени грешки во FFT, а кодот за вештачка интелигенција може тивко да ги вклучи:

  • Скалирање на оската на фреквенцијата: фреквентната оска на излезот FFT зависи од фреквенцијата на земање мостри. Ако fs е внесен погрешно, сите фреквенции се погрешно излезни, но графикот се појавува нормален.
  • Прозорец: Кога ќе се прими конечен дел од сигналот, се јавува дисконтинуитет на рабовите и се забележува псевдо-ширење (спектрално истекување) во спектарот. Windows како Хан и Хаминг го намалуваат ова. Ако кодот за вештачка интелигенција го прескокне прозорецот, резултатот ќе биде погрешен.
  • Нормализација на амплитудата: Потребно е скалирање и корекција на прозорецот за да се конвертира амплитудата на излезот FFT во вистинската физичка вредност. Ако се испушти, амплитудите ќе бидат неточни.

дизајн на филтер

Филтерот е коло или алгоритам што ги извлекува несаканите фреквенции од сигналот. Постојат четири основни типови: низок пропус (поминува ниски фреквенции), високопропусен, бенд-пропус и бенд-пропус (изрез). Постојат две големи фамилии на дигитални филтри: FIR (конечен импулсен одговор, стабилна и линеарна фаза) и IIR (бесконечен импулсен одговор, стрмна транзиција со помала пресметка, но стабилност и фазен ризик).

Вештачката интелигенција ги објаснува чекорите на дизајнот на филтерот (исклучена фреквенција, проодна лента, слабеење на стоп опсегот, избор на нарачка) и пишува код за генерирање на коефициент со ципа. Но, фреквенцијата на прекин на филтерот што го дизајнирате е нормализирана (во однос на фреквенцијата на Nyquist), а погрешното внесување fs овде е многу честа грешка. Дополнително, стабилноста и фазното изобличување може да бидат проблем во IIR филтрите, а доцнењето може да биде проблем во системите во реално време. Погрижете се да го потврдите филтерот генериран со вештачка интелигенција со графикон за одговор на фреквенцијата и познат тест сигнал.

три мини футроли

Случај 1 - Вибрации кои се преклопуваат. Инженер зема примероци од вибрациите на моторот на 1 kHz и гледа силен врв во FFT на 300 Hz. Овој врв, кој не одговара на дизајнот на моторот, е збунувачки. Всушност, постои вистинска компонента во моторот околу 1300 Hz; Земањето примероци од 1 kHz е недоволно за ова (Nyquist 500 Hz) и 1300 Hz се преклопуваат 300 Hz. По дискусијата со AI "дали овој врв е реален или алиас" и зголемувањето на фреквенцијата на земање примероци на 5 kHz, врвот се појавува на вистинското место на 1300 Hz. Лекција: на сомнителен рид, првото прашање за адекватност на земање примероци.

Случај 2 - Прескокнат прозорец. Практикантот бара FFT код од AI и го извршува. Тој очекува еден тон за тестирање на фреквенцијата, но гледа широко ширење низ спектарот. Проблемот е што кодот не прави прозорци (спектрално истекување). Кажете ѝ на вештачката интелигенција „додај прозорец Хан и примени корекција на амплитудата“ и излезот се враќа на очекуваниот остар врв. Лекција: Тестирајте го FFT кодот со познат сигнал со една фреквенција; Проверете го прозорецот дали има истекување.

Случај 3 - Погрешен fs. Инженер ги анализира податоците од рекордерот. Уредот снимал на 48 kHz, но стандардните 44,1 kHz биле внесени во кодот на AI. Сите фреквенции се поместени за 8%; На 1088 Hz се појавува тон од 1000 Hz. Се наоѓа грешка при проверка на вистинските fs на мерната опрема. Лекција: фреквенцијата на земање примероци е единствениот најкритичен број во синџирот на анализа; мора да се потврди од изворот.

Шаблони за копирање на брзините

FFT SETUP шаблон"Напишете код за анализа на FFT во Python (numpy/scipy). Влез: примерок на фреквенција fs=[вредност] Hz, низа на сигналот 'x'. Оставете го кодот да го направи СЛЕДНОТО: (1) Примени го прозорецот Хан, (2) Земи FFT, (3) прецизно намести фреквенција (3) релативна 4 фреквенција на скала. спектар со корекција на прозорецот.

шаблон за контрола на примероци „Највисоката значајна фреквенција на мојот сигнал е приближно [X] Hz. Објаснете ја маргината на Nyquist, потребата од филтер против алиасирање и практичната маргина на безбедност при изборот на фреквенција на земање примероци. Предложете опсег, но нагласи дека треба да го потврдам ова со мерење на вистинскиот спектар на сигналот.

шаблон за ДИЗАЈН НА ФИЛТЕР "Дизајнирајте дигитален филтер со [ниска/висока/појасна] пропусница со шпиц. Пресечна фреквенција [X] Hz, фреквенција на земање примероци fs=[Y] Hz. Споредете ги опциите FIR и IIR (стабилност, фаза, доцнење, пресметковно оптоварување). Јасно прикажете во кодот како фреквенцијата на прекин на одговорот е нормализирана со валидна фреквенција на f."

шаблон за ВАЛИДАЦИЈА НА РЕЗУЛТАТИ "Испитајте го кодот за обработка на сигналот подолу и означете ги изворите на тивки грешки: погрешно fs, прескокнување на прозорци, единечно преговарање (Hz/kHz, V/mV), недостаток на нормализација, еднократно/двострано преговарање на спектарот. Предложете како да тестирам [со кој] знак за повикување."

Слаб промпт / Силен промпт

СЛАБ ПРЕСТАВ: „Најдете ја фреквенцијата на овој сигнал“.

СИЛНО ПРЕКЛУЧУВАЊЕ: „Имам низа на сигнали со фреквенција на земање примероци од 10 kHz. Напишете Python код што ги наоѓа доминантните фреквентни компоненти со FFT; користете Hann прозорец и корекција на амплитудата, скалирајте ја оската на фреквенцијата според fs. На крајот од кодот, додајте блок за валидација со синтетички тест kHz и видете го точниот сигнал на kHz.

Слаб промпт произведува одговор без контекст и претпоставува fs; Враќа силни параметри за промпт и бара самопроверлив тест блок.

Табела на единици и претпоставки во процесирањето на сигналот

концепт

честа грешка

верификација

Фреквенција на земање примероци (fs)

Стандардно наместо вистинскиот FS на уредот

Потврда од поставката на рекордерот

фреквентна оска

Ако fs не е во ред, целата оска се поместува

Познат тон за тестирање на фреквенцијата

Прозорец

Спектрално истекување при прескокнување

Ширина на врв во монотон сигнал

Амплитуда

Недостасува нормализација/корекција

Споредба со познат амплитуден сигнал

сече филтер

нормализирајте ја грешката според fs

График на фреквентен одговор

Внимание: Само затоа што графикот FFT изгледа мазно и веродостојно, не значи дека е точен. Ако оската на фреквенцијата е погрешно измерена, сите врвови се на погрешно место, но графикот изгледа совршено. Секогаш калибрирајте со позната референца.

Вообичаени грешки

  • Не се потврдува фреквенцијата на земање примероци од изворот. Погрешен fs ги поместува сите фреквенции.
  • Прекршување на Nyquist и не забележување на aliasing. На сомнителни ридови, прво прашајте ја адекватноста на земање мостри.
  • Прескокнување на прозорци во FFT. Спектрално истекување изгледа како вистински врв.
  • Заборавајќи ја нормализацијата на амплитудата. Амплитудите остануваат неограничени до физичка вредност.
  • Неправилно нормализирање на фреквенцијата на исклучување на филтерот на fs. Филтерот се сече на друго место од очекуваното.

Сумирано

Во оваа единица, ја позициониравте вештачката интелигенција како моќна помош во учењето концепти за обработка на сигналот, пишувањето FFT и кодот за филтрирање и конструирањето на анализа. Но, при обработката на сигналот, резултатите може тивко да се искривуваат: погрешна фреквенција на земање примероци, прескокнување на прозорци, мешачки волумен или недостаток на нормализација го прават графикот убав, но неточен. Така, тестирајте го секој код што вештачката интелигенција го произведува според познат референтен сигнал, потврдете ја фреквенцијата на земање примероци од изворот и тестирајте го секој резултат за единица и физичка веродостојност. Проверете го концептот на Nyquist и aliasing на почетокот на секоја анализа.

Задача за апликација

Направете синтетички тест сигнал во Python: збир на две познати фреквенции (на пр. 1 kHz и 3 kHz), fs=10 kHz. Побарајте го кодот за анализа од вештачката интелигенција со шаблонот „FFT setup“ и проверете дали врвовите се појавуваат на правилните фреквенции. Потоа намерно внесете ги fs погрешно (на пр. 8 kHz) и набљудувајте како се менуваат врвовите. Конечно, отстранете го прозорецот и видете го спектралното истекување. Запишете ги резултатите од секој експеримент во една реченица.

листа за проверка

  • [ ] Ја потврдив фреквенцијата на земање примероци (fs) од вистинското поставување на рекордерот.
  • [ ] Го проверив критериумот Nyquist и го проценив ризикот од алијас.
  • [ ] Проверив дали прозорот и корекција на амплитудата се имплементирани во кодот FFT.
  • [ ] Го тестирав кодот со референтен сигнал со позната фреквенција.
  • [ ] Потврдив со визуелен одговор дека фреквенцијата на исклучување на филтерот е правилно нормализирана на fs.
  • [ ] Ги направив сите единици (Hz/kHz, V/mV) конзистентни.