Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Общие сведения о цифровой фильтрации со встроенными микроконтроллерами

Узнайте о широко используемых методах фильтрации и обработки выборок данных во временной области, внимательно изучив механизм Dual Biquad IIR устройства PowerQuad. в микроконтроллере LPC55S69.

При работе с образцами данных, собранными во времени или во временной области, одна из самых основных операций - «фильтровать» данные. Важно понимать распространенные способы цифровой фильтрации данных для достижения наилучших результатов и освобождения ЦП для выполнения других задач, особенно когда речь идет о встроенных микроконтроллерах.

В этой статье вы узнаете о широко используемых методах фильтрации и обработки выборок данных во временной области. Кроме того, обратите внимание на механизм Dual Biquad IIR блока PowerQuad в MCU LPC55S69 - универсальный строительный блок DSP, полезный во многих случаях использования фильтрации.

Общие фильтры для данных с непрерывной выборкой

При выборке данных во временной области данные непрерывно собираются с известной фиксированной скоростью. Фильтры временной области принимают эти данные в качестве входных и выводят новый сигнал, который каким-либо образом изменяется. Выходной сигнал фильтра - это просто еще один сигнал во временной области, который можно либо обработать дальше, либо передать в цифро-аналоговый преобразователь (ЦАП).

Мы обычно подходим к фильтрам с точки зрения того, как они реагируют на синусоидальные волны. Если мы рассматриваем входной сигнал как простую синусоидальную волну, фильтр может регулировать амплитуду входного сигнала, а также регулировать его фазу. При подаче комплексного сигнала на фильтр он регулирует амплитуду и фазу синусоидальных составляющих сигнала. То, как фильтр ведет себя в диапазоне частот, называется его частотной характеристикой.

Стандартная операция во временной области выполняется так называемыми фильтрами с конечной импульсной характеристикой (FIR), которые смешивают самую последнюю выборку данных с ранее собранными элементами для получения следующей выходной выборки.

Рисунок 1. Выборка за счет обработки фильтра выборки с использованием истории ввода.

Один из способов реализации такого фильтра - сохранить предыдущие выборки в массиве и объединить их с помощью простого уравнения:

x [n] // Самый последний ввод
x [n-1], x [n-2] // Два предыдущих входных образца
y [n] // Следующий вывод образец

y [n] =b0 * x [n] + b1 * x [n-1] + b2 * x [n-2]

Этот конкретный фрагмент псевдокода объединяет самый последний образец с двумя предыдущими образцами данных. Он умножает каждую выборку данных на отдельный постоянный коэффициент перед суммированием результатов для получения следующей выходной выборки. Таким образом, это представляет собой простую операцию умножения и накопления, где постоянные коэффициенты и длина истории управляют частотной характеристикой фильтра.

Выбирая подходящие значения для коэффициентов, можно создавать различные типы фильтров. Если фильтр ослабляет высокие частоты, он действует как фильтр нижних частот. При ослаблении низких частот результирующий фильтр будет работать как фильтр верхних частот. Также возможно объединить два подхода, что приведет к полосовому фильтру.

КИХ-фильтры концептуально просты, но могут потребовать довольно много предыдущих выборок данных для достижения точного управления его частотной характеристикой. Хотя этот фильтр легко понять и реализовать, его выполнение на обычном процессоре может быть обременительным, особенно с историей среднего размера. Это связано с тем, что каждый образец требует выполнения множества операций умножения и сложения для определения выходных данных.

Один из способов уменьшить объем требуемой истории - использовать ранее определенные выходные данные фильтра при вычислении следующей выходной выборки. Это корень другого класса цифровых фильтров, называемых фильтрами с бесконечной импульсной характеристикой (БИХ):

// В этом примере используются ранее установленные соглашения об именах
y [n] =b0 * x [n] + b1 * x [n-1] + b2 * x [n-2] + a1 * y [n-1] + a1 * y [n-2]

Приведенный выше пример является частным случаем БИХ-фильтра, известного как биквадратный фильтр - обычного строительного блока, который можно каскадировать для создания более крупных фильтров. Этот подход требует меньшего количества коэффициентов по сравнению с КИХ-фильтром для достижения желаемой частотной характеристики. При использовании этого подхода следует учитывать особые компромиссы. Использование обратной связи может вызвать колебания фильтров, если коэффициенты выбраны неправильно.

Кроме того, существует множество инструментов, которые могут автоматически генерировать коэффициенты для всех распространенных вариантов использования. Обычно для вычисления коэффициентов фильтра можно найти «кулинарные книги».

Рисунок 2. Один из многих инструментов, которые автоматически генерируют коэффициенты.

Использование модулей PowerQuad IIR Biquad

Блок LPC55S69 PowerQuad включает в себя специальное оборудование для вычисления биквадратных БИХ-фильтров. Использование PowerQuad для фильтрации собранных выборок данных оставит ЦП свободным для выполнения других задач.

Как обсуждалось выше, алгоритмы фильтрации несложно реализовать, но они могут потреблять много времени ЦП. Блок PowerQuad микроконтроллера LPC55S69 содержит специальное оборудование, оптимизированное для многих операций фильтрации и сложных математических операций. Он подключается через шину AHB и интерфейс сопроцессора Arm® Cortex®-M33.

Стандартная среда разработки для LPC55S69 - это бесплатная IDE MCUXpresso на основе eclipse. LPC55S69 SDK содержит множество полезных примеров, некоторые из которых являются примерами приложений PowerQuad.

Рисунок 3. Выбор примера цифрового фильтра PowerQuad.

Пример проекта «powerquad_filter» содержит несколько примеров различных конфигураций фильтров. В файле «powerquad_filter.c» есть несколько функций, которые демонстрируют основные настройки фильтра.

Ранее в статье обсуждался фильтр, использующий «Прямую форму I», которая является наиболее простой реализацией. Однако PowerQuad перестраивает поток операций умножения и сложения без изменения результата, что приводит к «прямой форме II», которая не требует сохранения истории как входов, так и выходов. Вместо этого сохраняется промежуточная история v [n], также называемая состоянием фильтра.

Несколько регистров на шине AHB используются для хранения состояния и коэффициентов для настройки PowerQuad для операций IIR-фильтра. В примерах SDK состояние фильтра инициализируется в функции PQ_BiquadRestoreInternalState.

После этого фильтр готов к обработке выборок данных. Это делается в функции PQ_VectorBiquadDf2F32 в fsl_powerquad_filter.c:

Рисунок 4. Реализация векторизованного БИХ-фильтра

Эта функция предназначена для обработки блоков входных отсчетов, кратных восьми. Данные могут быть переданы из регистра основного процессора LPC55S69 на подключенный сопроцессор, которым в данном случае является PowerQuad, с помощью инструкции MCR.

Затем PowerQuad выполнит фильтрацию - гораздо более эффективный способ выполнения множества операций умножения и сложения, чем это было бы на любом из ядер Cortex-M33 LPC55S69. После завершения PowerQuad к результату можно получить доступ с помощью инструкции MCR, которая перемещает данные из сопроцессора обратно во внутренний регистр ЦП.

Dual Biquad IIR Engine для цифровой фильтрации

Микроконтроллер LPC55S69 поставляется с блоком PowerQuad (который содержит два отдельных биквадратных двигателя), который может помочь ускорить фильтрацию и выполнение сложных математических операций. Регистры шины AHB используются для настройки функций PowerQuad IIR, а обмен данными между ядрами PowerQuad и Cortex-M33 осуществляется через интерфейс сопроцессора.

SDK LPC55S69 в MCUXpresso - хорошая отправная точка. Код, однако, не оптимизирован, так как должен быть легким для понимания. Имейте в виду, что, хотя PowerQuad может значительно ускорить фильтрацию приложений, ЦП должен по-прежнему передавать данные от сопроцессора PowerQuad и на него.

NXP имеет полезный инструмент проектирования и визуализации IIR Biquad Filter для помощи в настройке программного обеспечения. Страница сообщества NXP также предлагает подробный обзор устройства PowerQuad микроконтроллера LPC55S69 и его возможностей.

Отраслевые статьи - это форма контента, позволяющая отраслевым партнерам делиться полезными новостями, сообщениями и технологиями с читателями All About Circuits, что не подходит для редакционного контента. Все отраслевые статьи подлежат строгим редакционным правилам с целью предлагать читателям полезные новости, технические знания или истории. Точки зрения и мнения, выраженные в отраслевых статьях, принадлежат партнеру, а не обязательно All About Circuits или ее авторам.


Встроенный

  1. Цифровая логика с обратной связью
  2. Почему цифровой?
  3. Краткое описание технологии ИС для микроконтроллеров и встроенных систем
  4. Что мне делать с данными ?!
  5. Ускорение цифровой трансформации с помощью данных Интернета вещей благодаря Cisco и IBM
  6. Обслуживание в цифровом мире
  7. Расширение возможностей групп цифрового производства знаниями
  8. Промышленное программное обеспечение интегрируется с ИТ
  9. GE Digital:операционная аналитика с данными и аналитикой
  10. Управление цифровым производством с помощью данных MES в реальном времени