bezobraznic 0 14 апреля, 2006 Опубликовано 14 апреля, 2006 · Жалоба Подскажите самый оптимальный алгоритм усреднения на 8. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
M_A 0 15 апреля, 2006 Опубликовано 15 апреля, 2006 · Жалоба Хм, что такое усреднение на 8? Я сначала подумал на свою математическую некомпетентность, залез в гугля, набрал усреднение на 8 в кавычках и не получил ни одного результата! так что я думаю не один я не слыхал такого термина :) , так что хотите получить грамотный ответ, пишите грамотный развернутый со всеми возможными подробностями вопрос! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 15 апреля, 2006 Опубликовано 15 апреля, 2006 · Жалоба Я так понимаю предполагается находить среднее значение восьми отсчетов? 1) можно предварительно поделить каждый отсчет на 8 (проще это сделать сдвигом вправо на 3 бита), а затем сложить эти отсчеты. При таком способе низкая точность, т.к. 3 младших бита теряются. 2) складываем 8 отсчетов и делим сумму на 8 (можно тем же сдвигом на 3 бита). Точность выше, но придется вести арифметику с двнойной точностью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 15 апреля, 2006 Опубликовано 15 апреля, 2006 · Жалоба (x0+x1+...x7) shr 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stanislav 0 15 апреля, 2006 Опубликовано 15 апреля, 2006 · Жалоба (x0+x1+...x7) shr 3(x0+x1+...x7+4) asr 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lazycamel 0 15 апреля, 2006 Опубликовано 15 апреля, 2006 · Жалоба Если я правильно понял вопрос. (x0+x1>>1+x2>>2+....x7>>7)>>1 подобную фигню повторять на каждом отсчете. соответсвенно задержка - 8 отсчетот со старта преобразований. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 15 апреля, 2006 Опубликовано 15 апреля, 2006 · Жалоба я так понял,речь идет о усреднении 8 отсчетов ацп.Ну и причем здесь задержка отсчетов-можно сделать так: define buffer_adc_size 8; int buffer_adc[buffer_adc_size]; char count_adc_measuring; п/п снятия отсчета: if(count_adc_measuring<buffer_adc_size) buffer_adc[count_adc_measuring++]=ADCW; else { count_adc_measuring=0; ваша функция усреднения } время преобразования не рекомендуется задавать менее 50мкс,чего с избытком хватит на эту обработ- ку,так что насчет задержки на 8 отсчетов вы не правы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_artem_ 0 15 апреля, 2006 Опубликовано 15 апреля, 2006 · Жалоба можно вычисление убыстрить до двух арифметических операций (не считая округления рекоммендуемого Станиславом, кстати был бы признателен если бы он обосновал необходимость оного) если при приеме нового осчета к старой сумме добавлять новый отсчет и вычесть предыдуший восьмой - 2 против 8 не считая шифта/деления на 8. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stanislav 0 15 апреля, 2006 Опубликовано 15 апреля, 2006 · Жалоба можно вычисление убыстрить до двух арифметических операций (не считая округления рекоммендуемого Станиславом, кстати был бы признателен если бы он обосновал необходимость оного) если при приеме нового осчета к старой сумме добавлять новый отсчет и вычесть предыдуший восьмой - 2 против 8 не считая шифта/деления на 8.Это верно только при оценке "скользящего" среднего. Округление я предложил, исходя из практических соображений. При усечении разрядов получим макс. ошибку 7/8 ЕМР, а также смещение оценки среднего на 7/16 ЕМР. При округлении имеем макс. ошибку 1/2 ЕМР и смещение на 1/16 ЕМР. Можно также сделать несмещённое округление, но это несколько сложнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_artem_ 0 16 апреля, 2006 Опубликовано 16 апреля, 2006 · Жалоба можно вычисление убыстрить до двух арифметических операций (не считая округления рекоммендуемого Станиславом, кстати был бы признателен если бы он обосновал необходимость оного) если при приеме нового осчета к старой сумме добавлять новый отсчет и вычесть предыдуший восьмой - 2 против 8 не считая шифта/деления на 8.Это верно только при оценке "скользящего" среднего. Округление я предложил, исходя из практических соображений. При усечении разрядов получим макс. ошибку 7/8 ЕМР, а также смещение оценки среднего на 7/16 ЕМР. При округлении имеем макс. ошибку 1/2 ЕМР и смещение на 1/16 ЕМР. Можно также сделать несмещённое округление, но это несколько сложнее. OK, spasibo. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться