В начале времён у меня была книжка Дьяконов В. П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. Очень забавная книга тем что в ней был минимум теории и алгоритмы работали. Особенно нравилась глава по расчёту разных электротехнических и электронных схем. Покопался в сети и вот http://www.toroid.ru/book/diakonovvp2.zip
Полистай посмотри описание алгоритмов. Может быть придумывать придётся меньше. Качество скана не очень, но полезной информации в незаумном виде много.
Оно?
Я по этой книжке вычмат сдавал ![]()
Поставил + за книжку. Ностальгия шопипец! Я по ней кучу всего писал в юности. Не только по ней, но и по ней тоже. Дело в том, что пока я учился в МГУ я купил, нет не спаял, а купил, клон Радио-86-РК. И единственное на чем там можно было писать это Бейсик МИКРОН. Там и С и ЛэйдиСофт Паскаль были, но по ресурсам Микрон был хорош интерпретатором в 8К размером. И сколько лабораторных я сделал дома на этой РК-шке! Жуть! И очень приятно вспоминать!
Спасибо огромное за воспоминания! ![]()
Нет. Здесь только математика. А там практическое приложение начинается с преобразования треугольник-звезда 3-х фазной сети ![]()
Я спаял РКашку. А потом меня призвали и я увёз её с собой. В общаге с офицерами сражались в разные игрушки. Особист копал на тему не заражу ли я полковую ЭВМ СМ-2.
Так а маски на что? Или их тогда не было? Ну, тогда противогаз!
Противогаз на всякий случай выдали.
Это ещё что. У нас на объекте, где то до 2000-го года М6000 во всю использовали! Дальний космос, понимаешь ли.)
СМ2 стояли на тренажерах палубной авиации.
Именно тренажёр и именно авиации и был.
Видать одна и та же контора писАла ПО.))
А в качестве визуальных данных был стол с аэродромом и картина облаков с землёй шириной 3 метра и длиной 20 намотанная на два валика и камеры которые над этим ездили.
Ой, подробности уже не упомнить. Но реально тренажер представлял из себя авианосец вкопанный в землю. Сверху садились самолётики, цепляясь крючками за трос, снизу лётчики приходили за результатами анализов, почёсывая репу.)
Называется метод скользящего окна.
Можно обойтись кольцевым буфером на 9 ячеек, только последовательность операций будет чуть другой:
- Получить результат измерения.
- Прибавить его к сумме.
- Подать сумму на выход (лучше без деления).
- Вычесть последний элемент, взятый из очереди.
- Запихнуть полученный на шаге 1 результат в кольцевой буфер.
- Изменить указатель буфера на следующий элемент.
Любое усреднение замедляет реакцию.
Нет. Будет потеря разрядности (точности).
Это не среднее, это фильтр низких частот.
Это целесообразно только если можно сократить интервал между выборками.
А вообще, ширина окна определяется не соображениями разрядности, а характером процесса, требованиями к результату и возможностью выбирать самому период оцифровки. При увеличении ширины окна у нас пропадает высокочастотная составляющая, увеличивается задержка и уменьшается уровень шума. При пропорциональном уменьшении периода - только уменьшается уровень шума. Но период обычно ограничен сверху минимальным временем измерения.
Как вариант: при первом обращении весь буфер циклом заполняется первым пришедшим значением. Со второго обращения алгоритм не меняется и считается как для полного буфера (а, собственно, он и есть полный).
Фильтр низких частот.
Если с плавающей точкой, то, чтобы избавиться от деления:
vFiltred = pKoeff * vFiltred + analogRead(nSensor)*(1 - pKoeff);
Не обязательно.
В формулу Влада надо внести два изменения:
- Хранить не vFiltred, а vFiltred*(pKoeff + 1). И только при выдаче наружу - делить.
- К хранимой величине добавлять еще (pKoeff + 1)/2.
Можно вместо IIR использовать FIR.
Ну, если данные поступают регулярно, момент как таковой не нужен, нужен лишь его порядковый номер.
Но вообще, мы подошли вплотную к идее FIR-фильтров.