|
Обработка результатов аналого-цифрового пребразования. |
|
|
|
Mar 14 2006, 08:45
|
Группа: Новичок
Сообщений: 4
Регистрация: 13-03-06
Пользователь №: 15 199

|
Доброго времени суток.
Измерительный канал: Датчик, предварительный усилитель, мультиплексор АЦП 12 разрядный, микроконтроллер 51 серии. Сигнал, приходящий на АЦП, медленно меняющееся напряжение 0 – 5 В. Сигнал зашумлен. Размах шумовой составляющей 5 – 10 мВ. Во время работы устройства по сигналу иногда проходят пики «шилья» амплитудой до 50 мВ частотой около 400 Гц. В цикле измерения напряжения накапливается среднее арифметическое по 255 значениям. После осреднения получаем разброс с кодовым расстоянием от 2 до 15. Допустимо не более 2. Понятно, что нужно чистить сигнал на входе АЦП и работы в этом направлении ведутся, однако хотелось бы попробовать справиться с проблемой средствами контроллера. Посему вопрос. Не подскажет ли кто приблизительный алгоритм, по которому можно было бы отфильтровать сигнал. Во времени обработки я практически не ограничен, но достаточно серьезно ограничен в памяти. Максимум, который можно выделить на эту задачу 64 байта.
PS: Сорри, если на форуме уже обсуждалось. Я не нашел.
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 44)
|
Mar 14 2006, 09:43
|
Группа: Новичок
Сообщений: 4
Регистрация: 13-03-06
Пользователь №: 15 199

|
Сигнал напряжение постоянного тока. Если я правильно понимаю полосы у него нет  Фактическое время выборки кодов из АЦП около 5 мкс. Вопросы установки пассивных или активных фильтров перед АЦП я бы сейчас не обсуждал. На самом деле хочется обойтись статистическими методами. Так как сигнал резко не может измениться по определению, есть мысли отбрасывать промахи. Вот сейчас изучаю соответствующие книжки. Однако очень не охота изобрести велосипед.
|
|
|
|
|
Mar 14 2006, 11:21
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
Цитата Так как сигнал резко не может измениться по определению, есть мысли отбрасывать промахи. Вот сейчас изучаю соответствующие книжки. Однако очень не охота изобрести велосипед Я думаю, совсем простая робастная фильтрация Вас точно спасет (я бы даже не называла это так сложно). 1. Выборка 10 отсчетов 2. Max/min значение отбрасываем (или только max) 3. Находим среднее из остальных 8 отсчетов. Размер выборки можно и еще уменьшить. По Вашим данным разброс почти только из-за "шильев" (а так был бы 2-4 единицы кода)
Сообщение отредактировал Vic1 - Mar 14 2006, 11:25
|
|
|
|
|
Mar 14 2006, 12:21
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Fedor78 @ Mar 14 2006, 19:13)  Так как сигнал резко не может измениться по определению, есть мысли отбрасывать промахи. А что, это хорошая мысль. В начальном режиме можно просто накапливать усредненное значение. Например, накопить 256 отсчетов, как и раньше. После этого можно начать отбрасывать все значения, которые отличаются от усредненного более чем на 15 отсчетов в каждую сторону. "Прошедшие" значения с малым весовым коэффициентом усредняются с уже имеющимся средним. Затем можно постепенно уменьшать "порог нечувствительности" с 15 отсчетов до 2-3. Правда, я подозреваю, что даже ничего не отбрасывая, можно добиться нормального результата, если весовой коэфф. выбрать достаточно малым. Например, имеющееся среднее значение умножается на 9999, к результату добавляется новое измеренное значение, и затем все делится на 10000 (понятно, что среднее значение само по себе должно храниться с приличной разрядностью, т.к. соотношение его разрядности и величины весового коэфф. само создает "зону нечувствительности" для малых изменений)
Сообщение отредактировал =AK= - Mar 14 2006, 12:28
|
|
|
|
|
Mar 14 2006, 13:57
|
Группа: Новичок
Сообщений: 4
Регистрация: 13-03-06
Пользователь №: 15 199

|
2Alex17 IMHO Цифровой фильтр и статистическая обработка результата измерений разные вещи. О частоте квантования я не задумывался. Хотя не вижу особой разницы буду я измерять раз в секунду или раз в 10 микросекунд. Если быть совсем точным, я с указанной частотой квантования снимаю 255 значений, одновременно накапливая среднее арифметическое, потом переключаюсь на другие каналы. Там чистые сигналы, да и требования к точности ниже. Потом расчеты. Пустой цикл около секунды. 2DS_ На самом деле RC, непосредственно перед АЦП и перед мультиплексором по каждому каналу, стоят. RC - цепь перед АЦП ставилась исходя из рекомендаций для 1108ПВ2. С учетом сказанного вами, проверю и пересчитаю цепочки. За предложенный алгоритм - спасибо. Сейчас попробую. 2Vic1 Согласен именно из за "шильев". По сути, предложенный вами алгоритм я и собираюсь реализовать, но отбрасывать не минимальные и максимальные значения, а все что более интервала в 3 среднеквадратичных отклонения. Минус этого алгоритма - надо хранить всю выборку, а это память. 2Bay Спасибо. Мысль такая витала, но не оформилась. Попробую. "Шилья" точно формируются рядом. Источник - ключевая система регулятора расхода, который питается напряжениями вместе с аналоговым трактом. Это неправильно, но и быстро не исправишь 2 =AK= Подозреваю что когда Bay говорил о скользящем среднем что то подобное и имелось ввиду. Надо попробовать.
|
|
|
|
|
Mar 14 2006, 14:09
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Fedor78 @ Mar 14 2006, 16:57)  2Bay Спасибо. Мысль такая витала, но не оформилась. Попробую. "Шилья" точно формируются рядом. Источник - ключевая система регулятора расхода, который питается напряжениями вместе с аналоговым трактом. Это неправильно, но и быстро не исправишь  А моменты переключения регулятора расхода известны? Может связать их с контроллером и в эти моменты не измерять? Или наоборот, в моменты измерений блокировать переключения регулятора расхода? Тогда аналоговое напряжение будет более стабильным и, следовательно, все измерения будут точнее.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Mar 15 2006, 06:22
|
Группа: Новичок
Сообщений: 4
Регистрация: 13-03-06
Пользователь №: 15 199

|
Регулятор расхода упрощенно: датчик расхода, диф усилитель, ШИМ, транзисторный ключ. Определить моменты переключения не проблема. Не измерять в этот момент тоже идея хорошая. Но IMHO это латание дыр и усложнение без того не очень простой схемы существующего прибора. Уж если лезть в «железо» лучше исправлять причину, а не следствие. Собственно это основной путь переработки. Устранение влияния помех средством контролера меня в первую очередь интересует потому, что если я получу приемлемый результат на грязном сигнале, то на нормальном тем более будет все хорошо, плюс получу некоторый запас прочности.
|
|
|
|
|
Mar 15 2006, 06:33
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Fedor78 @ Mar 15 2006, 09:22)  Регулятор расхода упрощенно: датчик расхода, диф усилитель, ШИМ, транзисторный ключ. Определить моменты переключения не проблема. Не измерять в этот момент тоже идея хорошая. Но IMHO это латание дыр и усложнение без того не очень простой схемы существующего прибора. Уж если лезть в «железо» лучше исправлять причину, а не следствие. Собственно это основной путь переработки. Устранение влияния помех средством контролера меня в первую очередь интересует потому, что если я получу приемлемый результат на грязном сигнале, то на нормальном тем более будет все хорошо, плюс получу некоторый запас прочности. Вы правильно поняли, то что я Вам написал, но трактуете неправильно. Сначала надо УСТРАНИТЬ причину возникновения помехи, а потом, если это не получится пытаться ее замазывать. Потому что помеха НЕ нормирована. На одной плате она будет одного уровня, на другой - другого. А где гарантия, что на любом серийном изделии это замазывание будет работать? Вот если хотите пример: у меня на сайте в разделе "записки инженера", Эпизод называется "мультивибратор длиной в две стойки". Если хотите получить тоже - флаг Вам в ... Но я так уже давно не работаю. Удачи!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Mar 15 2006, 07:33
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Добавлю небольшое примечание: описанные ранее алгоритмы с отбрасыванием выделяющихся значений называются "ранговые алгоритмы цифровой фильтрации" Цитата(DS_ @ Mar 14 2006, 16:59)  Спраситься с шумом без фильтра на входе АЦП будет очень сложно (из - за теоремы Котельникова). Надо хотябы простой RC фильтр поставить на входе, уровень -3Дб которого приходится на половинную частоту оцифровки (если Вы цифруете с большим запасом по скорости, как я понял это так). Если есть большой запас, то при применении ФНЧ первого порядка, лучше всё-таки его верхнюю граничную частоту существенно понизить относительно того, что вы написали. Т.к. крутизна характеристики ФНЧ первого порядка при указанной граничной частоте не позволит избавиться от (не знаю, как этот термин будет по-русски) "aliasing". Автору: цифровая фильтрация и статистическая обработка - не всегда разные вещи. Просто цифровая фильтрация в частном случае является средством (инструментом) статистической обработки. Простейший пример: матожидание - статистическая обработка, цифровой фильтр - реализация обработки.
|
|
|
|
|
Mar 15 2006, 07:53
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Так я же и написал "хотя бы". Конечно, чем лучше задавишь входную частотку, тем меньше aliasing (по нашему, это, по моему, "перенос спектров" чего - то там, по английски проще писать и понятнее). Но с RC цепочками на очень низкие частоты обычно другие проблемы начинаются. Я в таких случаях обычно ставлю фильтр второго порядка на операционнике (а ОУ почти всегда есть у входа АЦП) и режу частоту примерно до 0.1 - 0.2 от частоты дискретизации. Да и АЦП для таких целей ставят дельта-сигма, тогда выбросы намного меньше сказываются. Но человек, видимо задавлен какими-то ограничениями у военных - я уже про существование таких АЦП, как ПВ2 забыл давно, думал что кануло, а вот оказывается еще на них работает кто-то. Это же сам по себе глючной агрегат (был по крайней мере)
Сообщение отредактировал DS_ - Mar 15 2006, 07:54
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Mar 15 2006, 09:28
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Vic1 @ Mar 14 2006, 14:21)  Цитата Так как сигнал резко не может измениться по определению, есть мысли отбрасывать промахи. Вот сейчас изучаю соответствующие книжки. Однако очень не охота изобрести велосипед Я думаю, совсем простая робастная фильтрация Вас точно спасет (я бы даже не называла это так сложно). 1. Выборка 10 отсчетов 2. Max/min значение отбрасываем (или только max) 3. Находим среднее из остальных 8 отсчетов. Размер выборки можно и еще уменьшить. По Вашим данным разброс почти только из-за "шильев" (а так был бы 2-4 единицы кода) Простите, но так делать нельзя! Если наводка идет на линейный тракт, подобная нелинейная фильтрация приведет к смещению оценки измеряемой величины (если не очевидно - могу пояснить). Всем поддержавшим подобный метод также предлагаю подумать над этим. В то же время, правильно рассчитанный линейный фильтр способен качественно подавить помеху импульсного характера. В частности, ее удаётся устранить полностью, если спектры полезного сигнала и помехи не перекрываются. АЦП совсем без входного фильтра включать нельзя, это знают даже военные. Зачастую RC-цепочки вполне достаточно. Для передачи неискаженной формы сигнала частота среза такого фильтра должна быть выбрана ~10*Fmax, где Fmax - максимальная частота спектра сигнала. В большинстве же случаев ее допустимо сделать ниже. В данном случае фильтры нужно включать перед мультиплексором и сделать их активными, с малым вых. сопротивлением - в высокооомную цепь мультиплексор вносит большую коммутационную помеху, влияющую на результат преобразования. 1108ПВ2 вовсе не глючен, если с ним правильно обращаться. А УВХ к нему сделано?
Сообщение отредактировал Stanislav - Mar 15 2006, 12:46
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 15 2006, 12:44
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(DS_ @ Mar 15 2006, 15:01)  Цитата(Stanislav @ Mar 15 2006, 12:28) 
1108ПВ2 вовсе не глючен, если с ним правильно обращаться. А УВХ к нему сделано?
А где Вы их берете ? Я с ними столкнулся году кажется в 91, их делал нынче незалежный Вильнюс. Как только у нас появились ad677 пв2 забылись как страшный сон... Не беру вовсе. Прибор, конечно, устарел безнадёжно. Просто приходилось с ним работать в начале 90-х. Потом, ессно, тоже с AD... Для точного измерения НЧ сигналов, конечно же, нужен сигма-дельта АЦП.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 16 2006, 12:01
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
Цитата Простите, но так делать нельзя! Если наводка идет на линейный тракт, подобная нелинейная фильтрация приведет к смещению оценки измеряемой величины (если не очевидно - могу пояснить). Всем поддержавшим подобный метод также предлагаю подумать над этим. Поясните пожалуйста, Станислав. To Fedor78 - сколько отсчетов приходится на эти "шилья". В том моем алгоритме, естественно, предполагалось что по одному. И Ваше замечание насчет дополнит. памяти поясните, пожалуйста. п.п.1-3 буферной памяти точно не требуют (скользящее среднее с медианной отбраковкой)
|
|
|
|
|
Mar 16 2006, 20:42
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Vic1 @ Mar 16 2006, 15:01)  Цитата Простите, но так делать нельзя! Если наводка идет на линейный тракт, подобная нелинейная фильтрация приведет к смещению оценки измеряемой величины (если не очевидно - могу пояснить). Всем поддержавшим подобный метод также предлагаю подумать над этим. Поясните пожалуйста, Станислав. Поясню на примере. Для наглядности привожу рисунок.  Здесь: t - время, U(t) - напряжение (или число на выходе АЦП). Предположим, мы измеряем постоянное напряжение (истинное значение условно изображено непрерывным и зелёным). Последовательность измерений - коричневые точки. На рисунке я попытался изобразить импульсную помеху, воздействующую на входной тракт. Характерной особенностью электромагнитных помех, воздействующих на линейный тракт, является их нулевое мат. ожидание (иными словами, среднее значение помехи равно 0). Таким образом, усреднив "отсчёты", изображенные на рисунке, получим оценку, очень близкую к истинному значению измеряемой величины (несмещённую оценку). Нетрудно убедиться, что, применив предложенный Вами способ нелинейной фильтрации, получим смещение оценки относительно истинного значения, т.к. основной пик помехи будет устранён, а её "хвост" - нет. Средств подавления периодических импульсных помех существует множество. Особенно простой их реализация становится, если частота помехи известна (400 Гц - автор темы явно работает с военным оборудованием  ). Еще один пример: положив частоту выборки медленно меняющегося сигнала кратной 400 Гц, и, применив КИХ-фильтр НЧ с нулями, расположенными на частотах k*400 Гц (k - натуральное число), получим полное подавление помехи.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 18 2006, 08:28
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Vic1 @ Mar 17 2006, 12:43)  Да, для такого вида помехи, конечно, предложенный алгоритм не подходит. Насколько я себе могу представить, все помехи, наводимые на линейный тракт бесконтактным образом, имеют свойство нулевого среднего, хотя вид их при этом может быть и не совсем похож на изображенный мной. Чаще всего, "хвост" является быстрозатухающим колебательным процессом, что ни в коей степени не нарушает общность моих рассуждений - нелинейная фильтрация даст ненулевое среднее. 2 KrysДа нет, решение более-менее очевидное. Самое приятное в нём - вид КИХ-фильтра НЧ: для реализации можно выбрать простейший фильтр скользящего среднего малой длины, в котором отсутствуют операции умножения и который легко реализуется даже на 8-битных МК. Так, например, для 400 Гц помехи и частоты дискретизации 4 кГц можно применить фильтр с такими вот характеристиками:
Фильтр имеет характеристику H(z)=1+z^(-1)+z^(-2)+...+z^(-9) и может быть легко реализован на 8-битном МК с малым объёмом ОЗУ. Если частота помехи может меняться в небольших пределах, можно включить последовательно два таких фильтра - тогда нули станут второго порядка, и полосы заграждения расширятся. Естественно, при этом нужно обеспечить подавление спектральных компонент входного сигнала на частотах 2 кГц и выше, чего можно достичь только при помощи входного аналогового фильтра.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 19 2006, 11:10
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Andreas1 @ Mar 19 2006, 13:25)  Обработка сильно зависит от того, что с этими результатами будет происходить далее. Если они будут в той или иной форме интегрироваться, то я соглашись со Stanislav. Что значит "интегрироваться", да ещё и "в той или иной форме"? Поясните, пожалуйста. Цитата(Andreas1 @ Mar 19 2006, 13:25)  ...Если это будет индикация или пороговый детектор, то лучше использовать нелинейные методы(выбросы отсчетов по различным алгоритмам)... Это неверно. Почитайте внимательно тему. Цитата(Andreas1 @ Mar 19 2006, 13:25)  ...Ибо если выброс будет вблизи конца измерения, то этот результат все равно исказится, и что будет дальше неважно (кстати у меня почему-то обычно после одиночного выброса нет релаксации). Какова природа "выброса"? Если электромагнитная, уверен, что "отсутствие релаксации" Вам только кажется... Цитата(Andreas1 @ Mar 19 2006, 13:25)  ...Так красиво описанный фильтр конечно будет хорошо работать при регулярных выбросах. А что такое "регулярные выбросы"? Изъясняйтесь общепринятым языком, пожалуйста.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 19 2006, 20:34
|
Местный
  
Группа: Свой
Сообщений: 446
Регистрация: 12-03-06
Из: Москва
Пользователь №: 15 142

|
Цитата Что значит "интегрироваться", да ещё и "в той или иной форме"? Поясните, пожалуйста. Например, это сигнал ошибки в контуре инерционной системы регулирования. Цитата Какова природа "выброса"? Если электромагнитная, уверен, что "отсутствие релаксации" Вам только кажется... ЭМИ от искры(очень частый случай) имеет длительность менее единиц мкс. и высокую амплитуду(см. исходное письмо). Соответственно, низкоскоростные входные каскады без специальных цепей защиты от глубокого насыщения входят в режим ограничения и не выходят из него значительное время (на практике десятки мкс.) и была там релаксация или нет уже безразлично. Т.е., ограничение и выход из него - нелинейный процесс и дальнейшая линейная обработка некорректна. Даже входной аналоговый фильтр(которого правда нет по условию задачи) необязательно спасет, поскольку энергия выброса и релаксации необязательно совпадают. Цитата А что такое "регулярные выбросы"? Выбросы каждые 2.5 мс. Цитата Это неверно. Вам только кажется... Пожалуйста, аргументируйте свои высказывания. При выбросе экстремальных значений (результат нелинейной входной обработки) и интегрирующем АЦП вполне можно попробовать обойтись без входного фильтра. Сначала отбрасывать значения, значительно отличающееся от среднего за N отсчетов, а затем простейший цифровой аналог RC фильтра Yn=(K*Yn-1 + Xn)/(k+1) , желательно хранить остаток от деления и учитывать в следующем цикле, иначе возможна систематическая ошибка в 1 мл. разряд(не помню почему так получалось, интересно, можно ли без этго обойтись). Опять таки, в зависимости от дальнейшей судьбы измерений и времени установления, можно перед фильтром просто просуммировать несколько отсчетов, поскольку при увеличении K сильно затягивается время установления. И очень полезно записать последовательность отсчетов в PC и поиграться там. Особенно нагляден результат в графической форме.
|
|
|
|
|
Mar 19 2006, 21:09
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Andreas1 @ Mar 19 2006, 23:34)  Цитата Что значит "интегрироваться", да ещё и "в той или иной форме"? Поясните, пожалуйста. Например, это сигнал ошибки в контуре инерционной системы регулирования. Простите, но Ваша терминология мне непонятна. Речи идёт об измерении напряжения. При чём здесь регулирование? И почему в "контуре инерционной системы регулирования" сигнал обязательно должен интегрироваться? Цитата(Andreas1 @ Mar 19 2006, 23:34)  ...ЭМИ от искры(очень частый случай) имеет длительность менее единиц мкс. и высокую амплитуду(см. исходное письмо). Какое такое "исходное письмо"? Вот Вам не помешает прочитать пост #1 еще раз. Цитата(Andreas1 @ Mar 19 2006, 23:34)  ...Соответственно, низкоскоростные входные каскады без специальных цепей защиты от глубокого насыщения входят в режим ограничения и не выходят из него значительное время (на практике десятки мкс.) и была там релаксация или нет уже безразлично. Т.е., ограничение и выход из него - нелинейный процесс и дальнейшая линейная обработка некорректна. Да Вы, никак, издеваетесь? Где здесь было упоминание о нелинейном характере помехи? Я в своих постах специально обратил на это внимание. Цитата(Andreas1 @ Mar 19 2006, 23:34)  ...Даже входной аналоговый фильтр(которого правда нет по условию задачи) необязательно спасет, поскольку энергия выброса и релаксации необязательно совпадают. .............................. При выбросе экстремальных значений (результат нелинейной входной обработки) и интегрирующем АЦП вполне можно попробовать обойтись без входного фильтра. Сначала отбрасывать значения, значительно отличающееся от среднего за N отсчетов, а затем простейший цифровой аналог RC фильтра Yn=(K*Yn-1 + Xn)/(k+1) , желательно хранить остаток от деления и учитывать в следующем цикле, иначе возможна систематическая ошибка в 1 мл. разряд(не помню почему так получалось, интересно, можно ли без этго обойтись). Опять таки, в зависимости от дальнейшей судьбы измерений и времени установления, можно перед фильтром просто просуммировать несколько отсчетов, поскольку при увеличении K сильно затягивается время установления. И очень полезно записать последовательность отсчетов в PC и поиграться там. Особенно нагляден результат в графической форме. Уважаемый, прежде чем писать посты, необходимо навести порядок в собственных сведениях о предмете обсуждения, а также терминологии. У Вас явные несуразности в каждом предложении, на возражения просто жалко тратить время...
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 28 2006, 19:35
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Krys @ Mar 27 2006, 06:57)  А какие, Вы, Станислав знаете интерпретации? Лично я со школы (ну т.е. с вуза) знаю такое: вокруг интересующей точки выбирается апертура (окно) с нечётным количеством точек, чтобы получилось симметрично. Все отсчёты в этой апертуре выстраиваются в ряд в порядке возрастания, а данной точке присваивается значение, равное значению отсчёта, расположенного в средине ряда. Если я ничего не путаю. По моим понятиям, это частный случай ранговых методов цифровой обработки. Знаю ещё похожие на то, что предложила Vic1. Ваше определение, безусловно, верное, однако, для измерительных целей такой фильтр не подходит по причинам, о которых я писал выше, что легко проверить. Медианный фильтр действительно может быть полезен в некоторых случаях, когда не нужно измерять истинное значение сигнала (например, для визуального "улучшения" изображения, зашумлённого "черными и белыми" точками). Следует, однако, помнить, что такой способ фильтрации приводит к частичной потере информации о сигнале (искажениям вследствие нелинейности), поэтому даже в этих случаях его нужно применять с осторожностью. Честно говоря, я таких задач в своей практике не встречал...
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 29 2006, 07:32
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
После прочтения сей длинной ветки у меня создалось впечатление, что деревья заслонили лес. Совершенно очевидно, что никакими математическими (статистическими) ухищрениями данную проблему решить невозможно. Ведь инициатор темы ясно изложил, что несмотря на усреднение по большому числу точек, помеха пролезает. Это значит, что либо наводка нелинейная по своей или природе входных каскадов, либо нелинейность возникает (и) вследствие того, что пресловутые "шилья" узкие. Поэтому скорость АЦП недостаточна для их адекватной регистрации. Т.е. может на пик один отсчет приходится или два в различные моменты этого пика. Поэтому крылья пика вносят вклад, а вершина частично пропадает. Тут можно было бы пойти в сторону восстановления вершины по крыльям, если источник помех предсказуем, но это имело бы смысл только на самый худой конец. Ведь в выборку может попасть только крыло, а пик в предыдущую. Или наоборот. Поэтому пассивная аналоговая фильтрация - самый простой и эффективный выход. Или рассейте мой пессимизм.
|
|
|
|
|
Mar 29 2006, 12:23
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Tanya @ Mar 29 2006, 11:32)  После прочтения сей длинной ветки у меня создалось впечатление, что деревья заслонили лес. Совершенно очевидно, что никакими математическими (статистическими) ухищрениями данную проблему решить невозможно. Ведь инициатор темы ясно изложил, что несмотря на усреднение по большому числу точек, помеха пролезает. Это значит, что либо наводка нелинейная по своей или природе входных каскадов, либо нелинейность возникает (и) вследствие того, что пресловутые "шилья" узкие. Поэтому скорость АЦП недостаточна для их адекватной регистрации. Т.е. может на пик один отсчет приходится или два в различные моменты этого пика. Поэтому крылья пика вносят вклад, а вершина частично пропадает. Тут можно было бы пойти в сторону восстановления вершины по крыльям, если источник помех предсказуем, но это имело бы смысл только на самый худой конец. Ведь в выборку может попасть только крыло, а пик в предыдущую. Или наоборот. Поэтому пассивная аналоговая фильтрация - самый простой и эффективный выход. Или рассейте мой пессимизм. Думаю, что тему Вы прочитали всё же не слишком внимательно. В постах #22 и #25 я предложил способ решения данной конкретной задачи. И этот способ - только "один из".
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 30 2006, 02:43
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Цитата(Stanislav @ Mar 30 2006, 04:21)  Мне кажется, что Ваши сомнения рассеятся, если Вы "пропустите" даже такую гипотетическую помеху через anti-aliasing фильтр НЧ на входе АЦП, о необходимости применения которого я также писал. Дак именно об этом он и написал. Просто это уже повторение вашей мысли (или её подтверждение). Но доля истины в его посте есть, т.к. он открывает глаза на детали происходящего. Возможно, вы тоже эти детали прекрасно понимали с самого начала, но не все так. Для меня его пост не был бесполезным, кое-что я положил в копилку своего опыта
|
|
|
|
|
Mar 30 2006, 16:54
|

Частый гость
 
Группа: Свой
Сообщений: 161
Регистрация: 17-08-04
Из: Караганда
Пользователь №: 516

|
Попробуйте реализовать фильтр Кальмана, много памяти в отличии от скользящего среднего не требует, но требует дробные числа с точкой. см здесь http://www.cs.unc.edu/~welch/kalman/и здесь http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdfВот пример реализации фильтра Кальмана в МатЛабе Код function [z_out] = kalman(z,xk,r) n = length(z); %xk=0; pk=1; q=0.00001; %r=0.01;
for i=1:n x = xk; p = pk + q; k = p/(p+r); xk = x + k*(z(i)-x); pk = (1-k)*p; z_out(i) = xk; end;
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|