Оглавление:
- Шаг 1: Как это работает (концепция):
- Шаг 2: Как это работает (в коде):
- Шаг 3: Использование кода для частотного анализа:
- Шаг 4: Вывод:
- Шаг 5: Проверка различных размеров окна и выборки:
- Шаг 6: Пример:
Видео: Arduino: преобразование частоты (ДПФ): 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Эта программа предназначена для вычисления частотного преобразования на Arduino с контролем над параметрами. это решается с использованием преобразования Фурье по осквернению.
это не БПФ
БПФ - это алгоритм, используемый для решения ДПФ за меньшее время.
Код для БПФ можно найти здесь.
Шаг 1: Как это работает (концепция):
Данная программа для преобразования частоты обеспечивает отличный контроль над требуемым выходом. эта программа оценивает частотный диапазон, заданный пользователем при заданном вводе для набора данных.
- На рисунке дан набор данных, состоящий из двух частот с именами f2 и f5, которые необходимо протестировать. f2 и f5 - случайные имена для двух частот, большее число - для относительно более высокой частоты. здесь меньшая частота f2 имеет большую амплитуду, а f5 имеет меньшую амплитуду.
- Математически можно показать, что -сумма умножения двух наборов данных гармоник, имеющих разную частоту, стремится к нулю (большее количество данных может привести к результату теста). В нашем случае, если эти две частоты умножения имеют одинаковую (или очень близкую) частоту, сумма умножения является ненулевым числом, где амплитуда зависит от амплитуды данных.
- для обнаружения конкретной частоты данный набор данных может быть умножен на различные тестовые частоты, и результат может дать компонент этой частоты в данных.
Шаг 2: Как это работает (в коде):
для этих данных (f2 + f5) один за другим от f1 до f6 умножается, и значение суммы записывается. эта окончательная сумма представляет собой содержание этой частоты. остаточная (несовпадение) частоты в идеале должна быть равна нулю, но в реальном случае это невозможно. чтобы сумма была равна нулю, требуется иметь бесконечный размер наборов данных.
- как показано на рисунках с f1 по f6, показана пробная частота и ее умножение на набор данных в каждой точке.
- на втором рисунке показано суммирование этого умножения на каждой частоте. можно идентифицировать два пика на 1 и 5.
поэтому, используя тот же подход для случайных данных, мы можем оценивать так много частот и анализировать частотный состав данных.
Шаг 3: Использование кода для частотного анализа:
в качестве примера можно использовать этот код, чтобы найти ДПФ прямоугольной волны.
сначала вставьте прикрепленный код (функция dft) после цикла, как показано на рисунке
8 УСЛОВИЙ, КОТОРЫЕ НЕОБХОДИМО УКАЗАТЬ
- массив, из которого нужно взять dft
- размер массива
- интервал времени между 2 чтениями в массиве в миллисекундах
- нижнее значение диапазона частот в Гц
- верхнее значение частотного диапазона в Гц
- размер шагов для частотного диапазона
- повторение сигнала (минимум 1) более высокая точность теста числа, но увеличенное время решения
-
оконная функция:
0 для окна без окна 1 для окна с плоским верхом 2 для окна hann 3 для окна Hamming
(если вы не знаете, как выбрать окно, оставьте значение по умолчанию 3)
пример: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); здесь a - это массив элементов размера 8, который необходимо проверить на диапазон от 0 Гц до 30 Гц с шагом 0,5 (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 повторений и окна Хэмминга
здесь можно использовать массив большего размера, насколько может обрабатывать Arduino.
Шаг 4: Вывод:
если вы закомментируете
Serial.print (f); Serial.print ("\ t"); Серийный принт ("\ t");
из кода серийный плоттер даст природу частотного спектра, а если бы не последовательный монитор, то он выдал бы частоту с ее амплитудой.
Шаг 5: Проверка различных размеров окна и выборки:
На рисунке частота синусоидальной волны измерена с использованием различных настроек.
Шаг 6: Пример:
на рисунке сравнивается преобразование данных с использованием SciLab и arduino.
Рекомендуемые:
Как использовать генератор сигналов частоты Arduino DDS AD9850: 7 шагов
Как использовать генератор частотных сигналов Arduino DDS AD9850: в этом руководстве мы узнаем, как создать частотный генератор сигналов с использованием модуля AD9850 и Arduino. Посмотрите видео! Примечание: мне удалось получить частоту до +50 МГц, но качество сигнала улучшилось. хуже с высокими частотами
Измерение частоты и напряжения источника питания с помощью Arduino: 6 шагов
Измерение частоты и напряжения источника питания с использованием Arduino: Введение: цель этого проекта - измерить частоту и напряжение источника питания, которые находятся в диапазоне от 220 до 240 Вольт и 50 Гц здесь, в Индии. Я использовал Arduino для захвата сигнала и расчета частоты и напряжения, вы можете использовать любой другой микроконтакт
Измерение частоты сети с помощью Arduino: 7 шагов (с изображениями)
Измерьте частоту сети с помощью Arduino: 3 апреля премьер-министр Индии г-н Шри. Нарендра Моди призвал индийцев выключить свет и зажечь лампу (Дия) в 21:00 5 апреля, чтобы отметить борьбу Индии с вирусом короны. Сразу после объявления царил хаос
Измерение частоты пульса на кончике пальца: фотоплетизмографический подход к определению частоты пульса: 7 шагов
Измерение частоты пульса на кончике пальца: фотоплетизмографический подход к определению частоты пульса: фотоплетизмограф (ФПГ) - это простой и недорогой оптический метод, который часто используется для обнаружения изменений объема крови в микрососудистом ложе ткани. В основном он используется неинвазивно для измерения на поверхности кожи, обычно
Детектор аритмии на основе частоты с использованием Arduino: 7 шагов
Детектор аритмии на основе частоты с использованием Arduino: сердечные аритмии ежегодно поражают примерно четыре миллиона американцев (Техасский институт сердца, пар. 2). В то время как каждое сердце испытывает перестановки в ритме и частоте, хроническая сердечная аритмия может быть фатальной для их жертв. Многие нарушения сердечного ритма