Математический алгоритм для точности измерений
Магазин Gtest® предлагает широкую номенклатуру осциллографов на странице сайта в самом конце данного раздела, а также рекомендуемые приборы и статьи для самообразования.
Вычисление быстрых преобразований Фурье на микроконтроллере LPC55S69
В этой статье исследуется механизм преобразования PowerQuad, который позволяет микроконтроллеру LPC55S69 вычислять быстрое преобразование Фурье (БПФ).
Микроконтроллер LPC55S69 от NXP содержит множество функций, которые делают его подходящим для различных приложений. LPC55S69 и его блок PowerQuad включают уникальные компоненты - Biquad и Transform Engines, используемые для выполнения различных задач, оставляя основные ядра ЦП свободными для других целей.
В предыдущей статье «Понимание цифровой фильтрации с помощью встроенных микроконтроллеров» были рассмотрены различные методы фильтрации и обработки выборок данных во временной области.
Для этого использовался механизм Biquad блока PowerQuad LPC55S69.
В данной статье рассматривается механизм преобразования PowerQuad, позволяющий выполнять быстрое преобразование Фурье.
Понимание дискретных преобразований Фурье
При выполнении повседневных измерений, таких как длина и температура, существуют специальные инструменты для определения параметров объекта. Для сигналов во временной области выбор измерительного инструмента может быть менее очевидным.
Рассмотрим следующий пример сигнала, представленный на рисунке 1.
Рисунок 1. Входной сигнал, оцифровываемый с постоянным интервалом
Как этот сигнал можно измерить, понять и описать? Возможными характеристиками могут быть амплитуда, частота или статистические параметры. Один из способов - сравнить исследуемый сигнал с известной косинусоидальной волной.
Рисунок 2. Входной сигнал рядом с сигналом косинусного датчика
Поскольку амплитуду и частоту косинусоидальной волны можно легко определить, её можно использовать как эталон для сравнения. Результирующее значение скалярного произведения показывает степень корреляции между сигналами.
Результатом является скалярная величина, пропорциональная степени совпадения входного сигнала и эталонного сигнала.
Однако если входной сигнал имеет фазовый сдвиг на 90 градусов относительно датчика, результат может оказаться равным нулю, несмотря на наличие корреляции.
Рисунок 3. Новый сигнал датчика сдвинут по фазе на 90 градусов
Для устранения этой проблемы используется второй датчик, сдвинутый по фазе на 90 градусов.
Рисунок 4. Оба сигнала датчика используются для более точного анализа входного сигнала
В результате получают два значения A и B, которые обычно рассматриваются как одно комплексное число:
Выход = B + i * A
Следующим шагом является сравнение входного сигнала с набором датчиков различных частот.
Рисунок 5. Использование нескольких датчиков разных частот
Использование данного метода, называемого дискретным преобразованием Фурье (ДПФ), позволяет формировать спектр выходных данных на всех интересующих частотах.
Математически данный метод можно представить следующим образом:
Уравнение 1. Математическое описание ДПФ
Где N - количество выборок входного сигнала, а k - частота эталонных косинусоидальных сигналов.
Ограничения быстрого преобразования Фурье (БПФ)
БПФ является вычислительно эффективным способом расчёта ДПФ, однако имеет ряд ограничений:
- Длина входных данных должна быть степенью двойки.
- Частотные интервалы выходного спектра зависят от частоты дискретизации и количества выборок.
- Для действительных входных данных выходной спектр обладает симметрией комплексно-сопряжённых значений.
Использование механизма БПФ PowerQuad
Математические операции ДПФ и БПФ состоят преимущественно из операций умножения и сложения, поэтому идеально подходят для выполнения специализированным сопроцессором PowerQuad в микроконтроллере LPC55S69.
SDK для LPC55S69 содержит примеры проектов, демонстрирующих использование механизма БПФ.
Файл powerquad_transform.c содержит примеры работы функции PQ_RFFTFixed16, предназначенной для обработки 16-битных данных.
Рисунок 6. Определение тестовых данных и ожидаемых результатов
Последний массив содержит тестовые данные для проверки результата. Вторая половина массива содержит комплексно-сопряжённые значения.
Рисунок 7. Настройка и инициализация устройства PowerQuad
После настройки области ввода и вывода передаются модулю PowerQuad через функцию PQ_transformRFFT. В рассматриваемом примере процессор ожидает завершения вычислений, однако возможна и асинхронная работа.
Используйте PowerQuad для математических операций
PowerQuad - это специализированный сопроцессор для сложных математических вычислений, доступный в микроконтроллерах серии LPC5500. Он содержит аппаратный механизм для эффективного расчёта БПФ независимо от основных ядер процессора.
SDK для LPC55S69 содержит примеры настройки и использования PowerQuad, а сообщество NXP предоставляет большое количество технических материалов, статей и обсуждений.
Отраслевые статьи позволяют партнёрам отрасли делиться полезными новостями, технологиями и практическими знаниями. Высказанные мнения принадлежат авторам материалов и могут не совпадать с позицией редакции.
Магазин Gtest® - авторизованный поставщик осциллографов в Украину:
купить осциллограф в Украине
