С широким применением проектирования на основе моделей постепенно расширяется моделирование в цикле.Сегодня мы представляем реализацию нескольких встроенных общих алгоритмов фильтрации в Matlab.
Во-первых, использование алгоритма цифровой фильтрации для преодоления ошибки случайных помех имеет следующие преимущества:
-
Цифровая фильтрация не требует дополнительных затрат на оборудование, только один процесс расчета, высокая надежность и отсутствие проблем с согласованием импеданса. В частности, цифровая фильтрация может фильтровать сигналы с очень низкими частотами, чего нельзя сделать с помощью аналоговых фильтров.
-
Цифровая фильтрация реализована с использованием программных алгоритмов, а несколько входных каналов могут совместно использовать программу фильтрации для снижения стоимости системы.
-
При соответствующем изменении процедуры фильтрации или работы фильтра его характеристики фильтрации можно легко изменить, что оказывает большое влияние на фильтрацию низкочастотных помех и случайных сигналов.
-
Алгоритмы фильтрации, обычно используемые в однокристальной микрокомпьютерной системе, представляют собой метод фильтрации с ограниченной амплитудой, метод медианной фильтрации, метод фильтрации среднего арифметического, метод фильтрации средневзвешенного значения и метод фильтрации скользящего среднего значения.
Фреймворк для тестирования кода %%чистый сигнал=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) выход = последний; еще выход=вход; конец конец
3. Медианный фильтр
Процесс этой операции заключается в непрерывной выборке параметра N раз (N — обычно нечетное число), а затем упорядочивании значений N выборок от меньшего к большему, а затем взятии среднего значения в качестве значения выборки. Весь процесс на самом деле представляет собой процесс сортировки последовательностей.
Медианная фильтрация больше подходит для устранения флуктуаций, вызванных случайными факторами, и пульсирующих помех, вызванных нестабильностью сэмплера. Если измеренное значение изменяется медленно, эффект медианной фильтрации будет лучше, но если данные меняются быстро, этот метод использовать не следует.
выход функции = средний фильтр (вход) Медианный фильтр %MeanFilter % Средний фильтр.m стойкий бафф; если пусто(бафф) Бафф=[2 0 0 0 0 0]; последовательность выбора end% если (бафф (1) бафф (я + 1)) темп = бафф (я); бафф (я) = бафф (я + 1); бафф (я + 1) = темп; конец конец Бафф(2:6)=0; бафф(1)=2; end% инициализировать буфер фильтра вывод = бафф (4); конец
Четыре, фильтр скользящего среднего
Алгоритм средней фильтрации имеет характеристику, то есть каждый раз, когда получается эффективное значение выборки, необходимо выполнять несколько последовательных выборок.Когда скорость выборки низкая, работа системы в реальном времени не может быть гарантирована. Алгоритм фильтрации скользящего среднего, представленный здесь, выбирается только один раз, а однократное выборочное значение и несколько последних выборочных значений усредняются вместе, и полученное эффективное выборочное значение может быть использовано. Если усредняются 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; конец
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
Эти типы используют больше алгоритмов фильтрации, которые более удобны для моделирования и записи, а реализация расширенного Калмана может быть использована в соответствии с реальной ситуацией.В общей области эти алгоритмы фильтрации смогли добиться хороших результатов.
- End -
Благодаря быстрому развитию технологий Amu Lab будет идти в ногу с темпами развития технологий и продолжать рекомендовать всем новейшие технологии и оборудование в индустрии робототехники. Наблюдение за тем, как студенты, прошедшие обучение у нас, делают рывки в технологиях, является величайшей ценностью нашего обучения. Если вы работаете в индустрии роботов, обратите внимание на нашу публичную учетную запись, мы продолжим публиковать самую ценную информацию и технологии в индустрии роботов.
Amu Lab занимается обучением и интеллектуальным оборудованием передовых ИТ-технологий, делая исследования и разработки роботов более эффективными!