|
|
  |
сигнал/шум |
|
|
|
Oct 6 2007, 12:25
|
Местный
  
Группа: Свой
Сообщений: 289
Регистрация: 17-06-07
Пользователь №: 28 498

|
Цитата(Евгений Германович @ Oct 6 2007, 13:02)  Частота среза меня устраивает.Про Х не понял.У меня 24 разрядный АЦП диапазон от 0 до 16000000. Вы хотите сказать что махонькие цифирьки смогут повлиять на 16млн?Если я вас правильно понял размерность Х может быть любой? Алгоритм должен работать для любого диапазона вещественных чисел. "махонькие цифирьки" - это все-таки коэффициенты, которые умножаются на Ваши Х - неважно, какого они диапазона. Первая простейшая проверка коэффициентов фильтра НЧ (а это именно он) - это вычислить, дает ли формула при "постоянном токе" (бесконечное множество одинаковых чисел) Х на входе то же самое значение Х на выходе. Для указанной в источнике формулы Y[i] = B[0]*X[i] + B[1]*X[i-1] + B[2]*X[i-2] - A[1]*Y[i-1] -A[2]*Y[i-2] если взять X[i] = X[i-1] = X[i-2] = ... = Х, то всегда будет Y[i] = Х, если выполняется равенство B[0] + B[1] + B[2] - A[1] - A[2] = 1 . Для указанных в источнике коэффициентов это равенство выполняется с высокой точностью. Вторая простая проверка коэффициентов ФНЧ - это проверить, будет ли на выходе 0, если на входе дать "сигнал высокой частоты". Если взять на входе последовательность чисел одинакового абсолютного значения Х с чередующимся знаком, т.е. X[i] = -X[i-1] = X[i-2] = -X[i-3] ... = Х, то на выходе будет Y[i] = 0, если выполняется равенство B[0] - B[1] + B[2] = 0 . Для указанных в источнике коэффициентов это равенство тоже выполняется с высокой точностью. Будет ли этот фильтр с указанными коэффициентами иметь нужные Вам частотные свойства - проверяйте на более сложных последовательностях чисел, при помощи Excel, Matlab, Mathematica или еще чего-нибудь. Но от диапазона чисел работоспособность (и относительная точность) фильтра точно зависеть не будет.
|
|
|
|
|
Oct 12 2007, 06:05
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Евгений Германович @ Jul 11 2007, 17:50)  Я использовал фильтры типа: усредняющих (медианный) и типа цифрового апериадического. Фильтры 2-го порядка не применял, т.к. слишком увеличивается время вычислений. Мое мнение: - для усредняющих фильтров биение уменьшается в корень квадратный от количества измерений; - для апериодического фильтра, чем больше постоянная времени, тем биения меньше (примерно также, как в усредняющем). Т.е. беря частоту считывания АЦП в 10 раз выше, Вы уменьшаете биения в 3 с небольшим раза. Это даже согласуется с нормальным законом распределения ошибки при измерении.  PS. Мне больше нравятся апериодичекие фильтры, но это дело вкуса.
|
|
|
|
|
Oct 12 2007, 07:15
|
Местный
  
Группа: Свой
Сообщений: 289
Регистрация: 17-06-07
Пользователь №: 28 498

|
Цитата(alexander55 @ Oct 12 2007, 08:05)  Я использовал фильтры типа: усредняющих (медианный) и типа цифрового апериадического. Фильтры 2-го порядка не применял, т.к. слишком увеличивается время вычислений. Мое мнение: - для усредняющих фильтров биение уменьшается в корень квадратный от количества измерений; - для апериодического фильтра, чем больше постоянная времени, тем биения меньше (примерно также, как в усредняющем). Т.е. беря частоту считывания АЦП в 10 раз выше, Вы уменьшаете биения в 3 с небольшим раза. Это даже согласуется с нормальным законом распределения ошибки при измерении.  PS. Мне больше нравятся апериодичекие фильтры, но это дело вкуса. 1) Мне почему-то кажется, что усредняющий и медианный фильтр - это не одно и то же. Усредняющий считает среднее значение (сумма значений разделить на кол-во), а медианный - выдает среднее из сортированных значений (которых всегда нечетное кол-во). Если это не так, прошу ссылки на источник, где это однозначно определено. 2) Вероятно, Вы имеете в виду апериодический фильтр первого порядка. Обсуждавшийся здесь фильтр Баттерворта второго порядка отличается от апериодического фильтра второго порядка всего лишь значениями самих коэффициентов. 3) Конечно, выбор фильтра - дело вкуса. Но еще выбор фильтра зависит от требований к качеству результата и от имеющейся в распоряжении "вычислительной мощности".
|
|
|
|
|
Oct 12 2007, 07:54
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Okorok @ Oct 12 2007, 11:15)  1) Мне почему-то кажется, что усредняющий и медианный фильтр - это не одно и то же. Усредняющий считает среднее значение (сумма значений разделить на кол-во), а медианный - выдает среднее из сортированных значений (которых всегда нечетное кол-во). Если это не так, прошу ссылки на источник, где это однозначно определено. Вы правы, но практической разницы между ними не ощущается. Цитата(Okorok @ Oct 12 2007, 11:15)  2) Вероятно, Вы имеете в виду апериодический фильтр первого порядка. Совершенно верно, Вы меня правильно поняли. Цитата(Okorok @ Oct 12 2007, 11:15)  Обсуждавшийся здесь фильтр Баттерворта второго порядка отличается от апериодического фильтра второго порядка всего лишь значениями самих коэффициентов. Да, но зачем усложнение. По физике коэффициент для второй разностной суммы будет нуль. Конечно, можно половить блошек. Цитата(Okorok @ Oct 12 2007, 11:15)  3) Конечно, выбор фильтра - дело вкуса. Но еще выбор фильтра зависит от требований к качеству результата и от имеющейся в распоряжении "вычислительной мощности". Согласен.
|
|
|
|
|
Oct 12 2007, 09:04
|
Местный
  
Группа: Свой
Сообщений: 289
Регистрация: 17-06-07
Пользователь №: 28 498

|
"Мне почему-то кажется, что усредняющий и медианный фильтр - это не одно и то же." Цитата(alexander55 @ Oct 12 2007, 09:54)  Вы правы, но практической разницы между ними не ощущается. - Единственное высказывание, требующее возражения. Разница между медианным и усредняющим фильтрами имеет огромное практическое значение. Иллюстрация, например, здесь, картинка в конце страницы: Левая колонка синих отсчетов - входной сигнал; Средняя колонка красных отсчетов - результат работы усредняющего фильтра; Правая колонка красных отсчетов - результат работы медианного фильтра.
|
|
|
|
|
Oct 12 2007, 09:42
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Okorok @ Oct 12 2007, 13:04)  "Мне почему-то кажется, что усредняющий и медианный фильтр - это не одно и то же." - Единственное высказывание, требующее возражения. Разница между медианным и усредняющим фильтрами имеет огромное практическое значение. Иллюстрация, например, здесь, картинка в конце страницы: Левая колонка синих отсчетов - входной сигнал; Средняя колонка красных отсчетов - результат работы усредняющего фильтра; Правая колонка красных отсчетов - результат работы медианного фильтра. А где сравнение с усредняющим фильтром, я это не увидел. Могу еще предложить кое-какие варианты фильтров (для большей полноты). Например, с коэффициентами возведения в степень. Плюс. Коэффициенты целые числа - можно обойтись сдвигами, без умножения. Минус. Для большого количества членов включаются тормоза.
|
|
|
|
|
Oct 12 2007, 10:30
|
Местный
  
Группа: Свой
Сообщений: 289
Регистрация: 17-06-07
Пользователь №: 28 498

|
Цитата(alexander55 @ Oct 12 2007, 11:42)  А где сравнение с усредняющим фильтром, я это не увидел. Средняя колонка - усредняющий фильтр, правая - медианный фильтр. Собственно, картинки и демонстрируют разницу.
|
|
|
|
|
Oct 12 2007, 11:55
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Okorok @ Oct 12 2007, 11:15)  ... а медианный - выдает среднее из сортированных значений (которых всегда нечетное кол-во). Если это не так, прошу ссылки на источник, где это однозначно определено. Ссылку не приведу, но выходом медианного фильтра для четного числа отсчетов принято считать полусумму двух средних по росту отсчетов. 2 alexander55Как уже заметила TanyaЦитата медианная фильтрация убирает редкие случайные помехи (выбросы) По картинкам по приведенной выше ссылке можно заметить, что медианный фильтр задавит полностью помеху с плотностью ниже int((ширины его окна + 1)/2) и благополучно пропустит помеху с большей плотностью. Плюс медианного фильтра - он одинаково хорошо задавит выбросы и вверх, и вниз даже в пределах одного окна (на картинках приведены вариант с выбросами только вверх). Минус - сильное и плохо предсказуемое искажение ФЧХ сигнала на выходе, если верхняя частота во входном сигнале превышает частоту отсчетов/3*ширины окна. Т.е. без изрядного оверсемплинга его лучше не использовать.
|
|
|
|
|
Oct 12 2007, 13:38
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Евгений Германович @ Oct 12 2007, 17:23)  При частоте квантования 25Гц и кол-ве отсчетов для увреднения 30 я получал нестабильность порядка 0.004Б при входном сигнале -4Б.Баттерворт дает примерно тоже самое при частоте 10.Возможно стоит применить вначале медианный фильтр,вроде он убирает выбросы. Если в выборке нет явных выбросов типа 100 101 100 99 200 100 99 10 100 то толку от медианного фильтра не будет.
|
|
|
|
|
Oct 13 2007, 20:13
|
Местный
  
Группа: Свой
Сообщений: 289
Регистрация: 17-06-07
Пользователь №: 28 498

|
Цитата(Евгений Германович @ Oct 13 2007, 15:02)  Вся беда в том ,что они иногда бывают.Проблема в том как приспособить медианный фильтр.Баттерворт или усреднение решаются просто,а для медианы нужно хранить отсчеты в памяти а это скажется на быстродействии. Для вычисления фильтра Баттерворта 2го порядка, кроме текущего значения на входе, нужны еще 2 предыдущих значения на входе и 2 предыдущих значения на выходе. Эти предыдущие значения тоже хранятся в памяти! Если быстродействие позволяет, рекомендую попробовать медианный фильтр по трем последним отсчетам перед применением «обычного» фильтра (усредняющего или Баттерворта). По сравнению с фильтром Баттерворта 2го порядка, медианный фильтр по трем последним отсчетам не потребует ни одной дополнительной ячейки памяти: он использует текущее значение и 2 предыдущих значения на входе.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|