Обмен технологиями |Matlab Реализация встроенных общих алгоритмов фильтрации

Интернет вещей

С широким применением проектирования на основе моделей постепенно расширяется моделирование в цикле.Сегодня мы представляем реализацию нескольких встроенных общих алгоритмов фильтрации в Matlab.

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

  1. Цифровая фильтрация не требует дополнительных затрат на оборудование, только один процесс расчета, высокая надежность и отсутствие проблем с согласованием импеданса. В частности, цифровая фильтрация может фильтровать сигналы с очень низкими частотами, чего нельзя сделать с помощью аналоговых фильтров.

  2. Цифровая фильтрация реализована с использованием программных алгоритмов, а несколько входных каналов могут совместно использовать программу фильтрации для снижения стоимости системы.

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

  4. Алгоритмы фильтрации, обычно используемые в однокристальной микрокомпьютерной системе, представляют собой метод фильтрации с ограниченной амплитудой, метод медианной фильтрации, метод фильтрации среднего арифметического, метод фильтрации средневзвешенного значения и метод фильтрации скользящего среднего значения.

Фреймворк для тестирования кода %%чистый сигнал=wgn(1,1000,10); сигнал=10+сигнал; signalFited=нули (1,1000); для i=1:1000 signalFited(i)=MyFilter(@LowPasFilter,signal(i)); % Просто измените имя дескриптора. конец сюжет (сигнал); Подожди; сюжет (сигналПодходит); вывод функции = MyFilter (веселье, ввод) Функция тестирования фильтра %MyFilter % MyFilter.m вывод = весело (ввод); конец

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

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

функция out = LimRanFilter (вход) Функция фильтра ограничения амплитуды %LimRan % LimRanFilter.m maxErr=5;% максимально допустимая ошибка стойкий последний; если пусто (последнее) последний = ввод; end% последнее значение if((последний ввод)>maxErr||(последний ввод)>maxErr) выход = последний; еще выход=вход; конец конец

file

3. Медианный фильтр

Процесс этой операции заключается в непрерывной выборке параметра N раз (N — обычно нечетное число), а затем упорядочивании значений N выборок от меньшего к большему, а затем взятии среднего значения в качестве значения выборки. Весь процесс на самом деле представляет собой процесс сортировки последовательностей.

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

выход функции = средний фильтр (вход) Медианный фильтр %MeanFilter % Средний фильтр.m стойкий бафф; если пусто(бафф) Бафф=[2 0 0 0 0 0]; последовательность выбора end% если (бафф (1) бафф (я + 1)) темп = бафф (я); бафф (я) = бафф (я + 1); бафф (я + 1) = темп; конец конец Бафф(2:6)=0; бафф(1)=2; end% инициализировать буфер фильтра вывод = бафф (4); конец

file

Четыре, фильтр скользящего среднего

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

вывод функции = MovAveFilter (ввод) Фильтр скользящего среднего %MovAveFilter % ´MovAveFilter.m стойкий бафф; если пусто(бафф) Бафф=[ 0 0 0 0 0 ]; end% скользящее окно постоянный numOfBuff; если пусто (numOfBuff) количествобаффов=0; end%´текущий элемент окна стойкий к; если пусто (k) к=1; конечный% счетчик бафф (к) = ввод; к=мод((к+1),5)+1; numOfBuff=numOfBuff+1; если (число баффов> 5) количествобаффов=5; конец вывод = сумма (бафф) / numOfBuff; конец

file

5. Фильтр нижних частот

Дифференциальное уравнение обычного аппаратного RC-фильтра нижних частот выражается разностным уравнением, а программный алгоритм может использоваться для имитации функции аппаратной фильтрации.После вывода алгоритм фильтрации нижних частот выглядит следующим образом:

Yn=a* Xn+(1-a) *Yn-1 В формуле Xn — значение дискретизации этого времени Yn-1 — последнее выходное значение фильтра; а — коэффициент фильтрации, значение которого обычно много меньше 1; Yn — выходное значение этого фильтра.

выход функции = LowPasFilter (вход) %LowPasFilter фильтр нижних частот %´LowPasFilter.m постоянный yn0; если пусто (yn0) у0=0; end% последнее выходное значение a=0,5;% коэффициент фильтрации выход=входa+yn0(1-a); yn0=output; end

file

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

  • End -

Благодаря быстрому развитию технологий Amu Lab будет идти в ногу с темпами развития технологий и продолжать рекомендовать всем новейшие технологии и оборудование в индустрии робототехники. Наблюдение за тем, как студенты, прошедшие обучение у нас, делают рывки в технологиях, является величайшей ценностью нашего обучения. Если вы работаете в индустрии роботов, обратите внимание на нашу публичную учетную запись, мы продолжим публиковать самую ценную информацию и технологии в индустрии роботов.

Amu Lab занимается обучением и интеллектуальным оборудованием передовых ИТ-технологий, делая исследования и разработки роботов более эффективными!