Среднее значение в интервале
- Войдите на сайт для отправки комментариев
Втр, 26/03/2019 - 10:27
Добрый день. Подскажите пожалуйста, и если можно то пример кода. Происходит измерение напряжения, но 1 значение 10В, 2 уже 3В, 3, 4... Измерения - стабилене(2.8в-3в). Хочется чтобы выводилось на экран, среднее значение, начиная к примеру с 3 по 10 измерение.
вопрос не ясен, вам написать программу "среднего арифметического"?
upd раз 10 перечитал и не понял
А смысл таких вычислений? И что меряешь?
Может как в фигурном катании ... самый большой и самый маленький результат отбрасывать, а с остальных среднеарифметическое?
Гуглите пословам "медианный фильтр". Там не среднее, но технику работы с интервалами подсмотрите.
А смысл таких вычислений? И что меряешь?
Может как в фигурном катании ... самый большой и самый маленький результат отбрасывать, а с остальных среднеарифметическое?
Не буду лукавить, все не много по другому. Но смысл тот же.
Вот скетч.
в мониторе порта получаем отображение измеряных величин. При запуске программы, приходит максимальное значение, оно нас не устраивает, надо отфильтровать. Вторым делом, надо взять последующие 10 измерений и вывести среднеарефметическое, исключая Min Max.
Чет мне кажется, что для извлечения мин-макс нужен массив всех измерений, а потом уже расчет среднего. Могу ошибаться, по математике тройка.((((
в мониторе порта получаем отображение измеряных величин. При запуске программы, приходит максимальное значение, оно нас не устраивает, надо отфильтровать. Вторым делом, надо взять последующие 10 измерений и вывести среднеарефметическое, исключая Min Max.
Ну, если все "немного по-другому" то
вариант 1 ) собираем измерения в массив, применяем функции min и max для поиска "крайних", считаем сумму массива без учета крайних и делим на кол-во (среднее арифметическое) (это если уверены в постановке задачи)
вариант 2) выясняем постоянные времени измеряемого сигнала, подбираем аппаратный фильтр, подбираем под сигнал програмный фильтр - их много и они разные. т.к. вы решили использовтаь среднее арифметическое - выполнив первую чать, выясним необходимое кол-во измерений и интервал опроса АЦП. Не рационально делать 10 измерений с минимальным интервалом на медленной функции и наоборот, для быстроменяющейся функции сигнала можно получить непонятно что... если измерить ШИМ прибором TRMS - амплитуду сигнала можно увидеть только при максимальном заполнении ШИМ - самая частая ошибка новичков тыкать неизвестно что, неизвестно куда и кричать у меня не работает.
Для подсчета Мин, Макс и среднего за вычетом крайних - массив не нужен, достаточно трех переменных - собственно минимума. максимума и суммы.
Однако в коде выше я подсчет Мин и Макс вообще не вижу, только сумму.
Совет не по делу - не пишите больше одного оператора на строке - крайне неряшливо выглядит и разбираться тяжело. пусть код станет втрое длиннее - зато читать его будет не в пример легче.
Для подсчета Мин, Макс и среднего за вычетом крайних - массив не нужен, достаточно трех переменных - собственно минимума. максимума и суммы.
Однако в коде выше я подсчет Мин и Макс вообще не вижу, только сумму.
Совет не по делу - не пишите больше одного оператора на строке - крайне неряшливо выглядит и разбираться тяжело. пусть код станет втрое длиннее - зато читать его будет не в пример легче.
Спасибо, учтём.
Для подсчета Мин, Макс и среднего за вычетом крайних - массив не нужен, достаточно трех переменных - собственно минимума. максимума и суммы.
Вы правы, но лично мне проще анализировать полные данные, после выполнения можно выгрузить в монитор порта весь массив и посмотреть, чего интересного намерил и как обработал... ИМХО ... монитор порта тормозит, а иногда, измерения необходимо делать часто, хотя 10 это излишество, на мой взгляд, только для дебага и годится
Для подсчета Мин, Макс и среднего за вычетом крайних - массив не нужен, достаточно трех переменных - собственно минимума. максимума и суммы.
Я пять насчитал в голове, мин, макс, результат, считанное, счетчик.
А как с тремя?
Для десяти значений, тоже решил,что массив проще.
Для подсчета Мин, Макс и среднего за вычетом крайних - массив не нужен, достаточно трех переменных - собственно минимума. максимума и суммы.
Я пять насчитал в голове, мин, макс, результат, считанное, счетчик.
А как с тремя?
Для десяти значений, тоже решил,что массив проще.
там про хранение идет речь, а не вычисление (альтернатива массиву)
Для подсчета Мин, Макс и среднего за вычетом крайних - массив не нужен, достаточно трех переменных - собственно минимума. максимума и суммы.
Я пять насчитал в голове, мин, макс, результат, считанное, счетчик.
А как с тремя?
Для десяти значений, тоже решил,что массив проще.
там про хранение идет речь, а не вычисление (альтернатива массиву)
Читаю вас, понимаю что нихрена не понимаю. Можете отрывок кода, написать,если не составит труда
пост 6 понятен? там ссылки
Я пять насчитал в голове, мин, макс, результат, считанное, счетчик.
А как с тремя?
Для десяти значений, тоже решил,что массив проще.
результат и счетчик для массива тоже нужны.
Для небольшого числа измерений массив выглядит проще, да. Но способ без массива хорош своей универсальностью - он подходит и для 10 измерений и для 10 тыс, так что его можно пихать в любой код, не заботясь о том, сколько будет замеров и хватит ли памяти.
типа ОФФТОП
Для небольшого числа измерений массив выглядит проще, да.
спорно, тому, кто понимает смысл, разницы не будет - просто больше строк в коде
Но способ без массива хорош своей универсальностью - он подходит и для 10 измерений и для 10 тыс, так что его можно пихать в любой код, не заботясь о том, сколько будет замеров и хватит ли памяти.
выделил, а следить за переполнением? Это как с синусом больших углов получим бяку восьмибитных процессоров. недавно обсуждали...
типа ОФФТОП
выделил, а следить за переполнением? Это как с синусом больших углов получим бяку восьмибитных процессоров. недавно обсуждали...
Не, ну здесь уже здравый смысл должен срабатывать. ИМХО.
выделил, а следить за переполнением?
так при сложении элементов массива тоже надо о переполнении помнить, разве нет?
Эт, Вы господа, уже в казуистику полезли. Применительно к атмеге, 10-бит АЦП и операции сложения, не нужно. Туда массив больше 4тыс элементов, не влезет.))))
так при сложении элементов массива тоже надо о переполнении помнить, разве нет?
вообще, я этот вопрос для ТС приберегал :))) подобные ошибки уже разбирали на форуме... просто 10 тыс. уж сильно круто взяли...
Эт, Вы господа, уже в казуистику полезли. Применительно к атмеге, 10-бит АЦП и операции сложения, не нужно. Туда массив больше 4тыс элементов, не влезет.))))
в 2 килобайта уны/наны?
А про эти и вовсе говорить не о чем.
Гриш, извиняй, что интригу испортил.))))