E1962 0 6 октября, 2007 Опубликовано 6 октября, 2007 · Жалоба Частота среза меня устраивает.Про Х не понял.У меня 24 разрядный АЦП диапазон от 0 до 16000000. Вы хотите сказать что махонькие цифирьки смогут повлиять на 16млн?Если я вас правильно понял размерность Х может быть любой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okorok 0 6 октября, 2007 Опубликовано 6 октября, 2007 · Жалоба Частота среза меня устраивает.Про Х не понял.У меня 24 разрядный АЦП диапазон от 0 до 16000000. Вы хотите сказать что махонькие цифирьки смогут повлиять на 16млн?Если я вас правильно понял размерность Х может быть любой? Алгоритм должен работать для любого диапазона вещественных чисел. "махонькие цифирьки" - это все-таки коэффициенты, которые умножаются на Ваши Х - неважно, какого они диапазона. Первая простейшая проверка коэффициентов фильтра НЧ (а это именно он) - это вычислить, дает ли формула при "постоянном токе" (бесконечное множество одинаковых чисел) Х на входе то же самое значение Х на выходе. Для указанной в источнике формулы Y = B[0]*X + B[1]*X[i-1] + B[2]*X[i-2] - A[1]*Y[i-1] -A[2]*Y[i-2] если взять X = X[i-1] = X[i-2] = ... = Х, то всегда будет Y = Х, если выполняется равенство B[0] + B[1] + B[2] - A[1] - A[2] = 1 . Для указанных в источнике коэффициентов это равенство выполняется с высокой точностью. Вторая простая проверка коэффициентов ФНЧ - это проверить, будет ли на выходе 0, если на входе дать "сигнал высокой частоты". Если взять на входе последовательность чисел одинакового абсолютного значения Х с чередующимся знаком, т.е. X = -X[i-1] = X[i-2] = -X[i-3] ... = Х, то на выходе будет Y = 0, если выполняется равенство B[0] - B[1] + B[2] = 0 . Для указанных в источнике коэффициентов это равенство тоже выполняется с высокой точностью. Будет ли этот фильтр с указанными коэффициентами иметь нужные Вам частотные свойства - проверяйте на более сложных последовательностях чисел, при помощи Excel, Matlab, Mathematica или еще чего-нибудь. Но от диапазона чисел работоспособность (и относительная точность) фильтра точно зависеть не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
E1962 0 6 октября, 2007 Опубликовано 6 октября, 2007 (изменено) · Жалоба Спасибо.С диапазоном,не скрою,весьма обрадовали. Изменено 6 октября, 2007 пользователем Евгений Германович Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба Я использовал фильтры типа: усредняющих (медианный) и типа цифрового апериадического. Фильтры 2-го порядка не применял, т.к. слишком увеличивается время вычислений. Мое мнение: - для усредняющих фильтров биение уменьшается в корень квадратный от количества измерений; - для апериодического фильтра, чем больше постоянная времени, тем биения меньше (примерно также, как в усредняющем). Т.е. беря частоту считывания АЦП в 10 раз выше, Вы уменьшаете биения в 3 с небольшим раза. Это даже согласуется с нормальным законом распределения ошибки при измерении. PS. Мне больше нравятся апериодичекие фильтры, но это дело вкуса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okorok 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба Я использовал фильтры типа: усредняющих (медианный) и типа цифрового апериадического. Фильтры 2-го порядка не применял, т.к. слишком увеличивается время вычислений. Мое мнение: - для усредняющих фильтров биение уменьшается в корень квадратный от количества измерений; - для апериодического фильтра, чем больше постоянная времени, тем биения меньше (примерно также, как в усредняющем). Т.е. беря частоту считывания АЦП в 10 раз выше, Вы уменьшаете биения в 3 с небольшим раза. Это даже согласуется с нормальным законом распределения ошибки при измерении. PS. Мне больше нравятся апериодичекие фильтры, но это дело вкуса. 1) Мне почему-то кажется, что усредняющий и медианный фильтр - это не одно и то же. Усредняющий считает среднее значение (сумма значений разделить на кол-во), а медианный - выдает среднее из сортированных значений (которых всегда нечетное кол-во). Если это не так, прошу ссылки на источник, где это однозначно определено. 2) Вероятно, Вы имеете в виду апериодический фильтр первого порядка. Обсуждавшийся здесь фильтр Баттерворта второго порядка отличается от апериодического фильтра второго порядка всего лишь значениями самих коэффициентов. 3) Конечно, выбор фильтра - дело вкуса. Но еще выбор фильтра зависит от требований к качеству результата и от имеющейся в распоряжении "вычислительной мощности". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба 1) Мне почему-то кажется, что усредняющий и медианный фильтр - это не одно и то же. Усредняющий считает среднее значение (сумма значений разделить на кол-во), а медианный - выдает среднее из сортированных значений (которых всегда нечетное кол-во). Если это не так, прошу ссылки на источник, где это однозначно определено. Вы правы, но практической разницы между ними не ощущается. 2) Вероятно, Вы имеете в виду апериодический фильтр первого порядка. Совершенно верно, Вы меня правильно поняли. Обсуждавшийся здесь фильтр Баттерворта второго порядка отличается от апериодического фильтра второго порядка всего лишь значениями самих коэффициентов. Да, но зачем усложнение. По физике коэффициент для второй разностной суммы будет нуль. Конечно, можно половить блошек. 3) Конечно, выбор фильтра - дело вкуса. Но еще выбор фильтра зависит от требований к качеству результата и от имеющейся в распоряжении "вычислительной мощности". Согласен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okorok 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба "Мне почему-то кажется, что усредняющий и медианный фильтр - это не одно и то же." Вы правы, но практической разницы между ними не ощущается. - Единственное высказывание, требующее возражения. Разница между медианным и усредняющим фильтрами имеет огромное практическое значение. Иллюстрация, например, здесь, картинка в конце страницы: Левая колонка синих отсчетов - входной сигнал; Средняя колонка красных отсчетов - результат работы усредняющего фильтра; Правая колонка красных отсчетов - результат работы медианного фильтра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба "Мне почему-то кажется, что усредняющий и медианный фильтр - это не одно и то же." - Единственное высказывание, требующее возражения. Разница между медианным и усредняющим фильтрами имеет огромное практическое значение. Иллюстрация, например, здесь, картинка в конце страницы: Левая колонка синих отсчетов - входной сигнал; Средняя колонка красных отсчетов - результат работы усредняющего фильтра; Правая колонка красных отсчетов - результат работы медианного фильтра. А где сравнение с усредняющим фильтром, я это не увидел. Могу еще предложить кое-какие варианты фильтров (для большей полноты). Например, с коэффициентами возведения в степень. Плюс. Коэффициенты целые числа - можно обойтись сдвигами, без умножения. Минус. Для большого количества членов включаются тормоза. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okorok 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба А где сравнение с усредняющим фильтром, я это не увидел. Средняя колонка - усредняющий фильтр, правая - медианный фильтр. Собственно, картинки и демонстрируют разницу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба Средняя колонка - усредняющий фильтр, правая - медианный фильтр. Собственно, картинки и демонстрируют разницу. Спасибо, теперь ясно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба ... а медианный - выдает среднее из сортированных значений (которых всегда нечетное кол-во). Если это не так, прошу ссылки на источник, где это однозначно определено. Ссылку не приведу, но выходом медианного фильтра для четного числа отсчетов принято считать полусумму двух средних по росту отсчетов. 2alexander55 Как уже заметила Tanya медианная фильтрация убирает редкие случайные помехи (выбросы) По картинкам по приведенной выше ссылке можно заметить, что медианный фильтр задавит полностью помеху с плотностью ниже int((ширины его окна + 1)/2) и благополучно пропустит помеху с большей плотностью. Плюс медианного фильтра - он одинаково хорошо задавит выбросы и вверх, и вниз даже в пределах одного окна (на картинках приведены вариант с выбросами только вверх). Минус - сильное и плохо предсказуемое искажение ФЧХ сигнала на выходе, если верхняя частота во входном сигнале превышает частоту отсчетов/3*ширины окна. Т.е. без изрядного оверсемплинга его лучше не использовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
E1962 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба При частоте квантования 25Гц и кол-ве отсчетов для увреднения 30 я получал нестабильность порядка 0.004Б при входном сигнале -4Б.Баттерворт дает примерно тоже самое при частоте 10.Возможно стоит применить вначале медианный фильтр,вроде он убирает выбросы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба При частоте квантования 25Гц и кол-ве отсчетов для увреднения 30 я получал нестабильность порядка 0.004Б при входном сигнале -4Б.Баттерворт дает примерно тоже самое при частоте 10.Возможно стоит применить вначале медианный фильтр,вроде он убирает выбросы. Если в выборке нет явных выбросов типа 100 101 100 99 200 100 99 10 100 то толку от медианного фильтра не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
E1962 0 13 октября, 2007 Опубликовано 13 октября, 2007 · Жалоба Вся беда в том ,что они иногда бывают.Проблема в том как приспособить медианный фильтр.Баттерворт или усреднение решаются просто,а для медианы нужно хранить отсчеты в памяти а это скажется на быстродействии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okorok 0 13 октября, 2007 Опубликовано 13 октября, 2007 · Жалоба Вся беда в том ,что они иногда бывают.Проблема в том как приспособить медианный фильтр.Баттерворт или усреднение решаются просто,а для медианы нужно хранить отсчеты в памяти а это скажется на быстродействии. Для вычисления фильтра Баттерворта 2го порядка, кроме текущего значения на входе, нужны еще 2 предыдущих значения на входе и 2 предыдущих значения на выходе. Эти предыдущие значения тоже хранятся в памяти! Если быстродействие позволяет, рекомендую попробовать медианный фильтр по трем последним отсчетам перед применением «обычного» фильтра (усредняющего или Баттерворта). По сравнению с фильтром Баттерворта 2го порядка, медианный фильтр по трем последним отсчетам не потребует ни одной дополнительной ячейки памяти: он использует текущее значение и 2 предыдущих значения на входе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться