Съдържание:

Arduino: Честотна трансформация (DFT): 6 стъпки
Arduino: Честотна трансформация (DFT): 6 стъпки

Видео: Arduino: Честотна трансформация (DFT): 6 стъпки

Видео: Arduino: Честотна трансформация (DFT): 6 стъпки
Видео: Ускоряем Ардуино более чем в 20 раз! 2024, Юли
Anonim
Arduino: Честотна трансформация (DFT)
Arduino: Честотна трансформация (DFT)

тази програма е за изчисляване на честотна трансформация на arduino с контрол на тестото над параметри. тя се решава с помощта на оскверняване на четирикратна трансформация.

това не е FFT

FFT е алгоритъм, използван за решаване на DFT с по -малко време.

Код за FFT можете да намерите тук.

Стъпка 1: Как работи (концепция):

Как работи (концепция)
Как работи (концепция)
Как работи (концепция)
Как работи (концепция)

Дадената програма за преобразуване на честотата осигурява голям контрол върху необходимия за вас изход. тази програма оценява честотния диапазон, даден от потребителя при даден вход за набор от данни.

  • На фигурата е даден набор от данни от две честоти, наречени f2 и f5, които трябва да бъдат тествани. f2 и f5 са произволни имена за две честоти, по -високо число за относително по -висока честота. тук по -малка честота f2 има по -висока амплитуда и f5 има по -малка амплитуда.
  • Математически може да се покаже, че -сумирането на умножение на два хармонични набора от данни с различна честота се стреми към нула (по -голям брой данни може да доведе до резултат на тесто). В нашия случай Ако тези две честоти на умножение имат една и съща (или много близка) честота, тази сума на умножението е ненулево число, където амплитудата зависи от амплитудата на данните.
  • за откриване на специфична честота даден набор от данни може да се умножи по различни честоти на изпитване и резултатът може да даде компонент на тази честота в данните.

Стъпка 2: Как работи (в код):

Как работи (в код)
Как работи (в код)
Как работи (в код)
Как работи (в код)

за тези данни (f2+f5) едно по едно f1 до f6 се умножава и стойността на сумата се записва. тази крайна сума представлява съдържанието на тази честота. почивката (несъответствието) на честотата в идеалния случай трябва да бъде нула, но в реалния случай това не е възможно. за да се направи нулева сума е необходимо да има безкраен размер на набори от данни.

  • както може да бъде показано на фигура f1 до f6 пробна честота и е показано нейното умножение с набор от данни във всяка точка.
  • на втора фигура е нанесено сумиране на това умножение при всяка честота. два пика при 1 и 5 могат да бъдат идентифицирани.

така че използвайки същия подход за произволни данни, можем да оценим за толкова много честоти и да анализираме честотното съдържание на данните.

Стъпка 3: Използване на код за честотен анализ:

Използване на код за честотен анализ
Използване на код за честотен анализ

за пример нека използваме този код за намиране на DFT на квадратна вълна.

първо поставете прикачен код (функция dft) след цикъл, както е показано на изображението

8 УСЛОВИЯ, КОИТО ТРЯБВА ДА БЪДАТ ПОСОЧЕНИ

  1. масив от който трябва да се вземе dft
  2. размер на масив
  3. интервал от време между 2 четения в масива в милиСЕКУНДИ
  4. по -ниска стойност на честотния диапазон в Hz
  5. горна стойност на честотния диапазон в Hz
  6. размер на стъпките за честотния диапазон
  7. повторение на сигнал (минимум 1) по -висока точност на тестото, но увеличено време за разтвор
  8. прозоречна функция:

    0 за без прозорец1 за прозорец с плосък плот 2 за прозорец Hann 3 за прозорец с чук

(ако нямате представа за избор на прозорец, запазете по подразбиране 3)

пример: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); тук a е масив от елемент 8, който трябва да се провери за 0 Hz до 30 Hz с 0,5 стъпка (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 прозорец за повторение и забиване

тук е възможно да се използва масив с по -голям размер, доколкото arduino може да се справи.

Стъпка 4: Изход:

Изход
Изход
Изход
Изход

ако коментирате

Serial.print (f); Serial.print ("\ t");

от кода сериен плотер ще даде характер на честотния спектър и ако не сериен монитор ще даде честота с неговата амплитуда.

Стъпка 5: Проверка на различни прозорци и размери на пробите:

Проверка на различни прозорци и размери на пробите
Проверка на различни прозорци и размери на пробите

на фигурата, честотата на синусоида се измерва, като се използват различни настройки.

Стъпка 6: Пример:

Пример
Пример

на фигура се сравнява трансформацията на данни с помощта на SciLab и arduino.

Препоръчано: