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