|
|
  |
Фильтрация входного сигнала. |
|
|
|
Jan 30 2014, 13:18
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Всем доброго времени суток. Прошу прощения, если не в тот раздел, но более подходящего не нашел. Проблема заключается в следующем: Есть поток входных значений, для примера даю выборку из 1000 отсчетов
sampling.rar ( 9.22 килобайт )
Кол-во скачиваний: 164Нужно фильтровать такой поток значений, дабы получить "болтанку" на выходе не более 2-3 единиц по амплитуде. Тупым усреднением этого получается достичь лишь при количестве усредняемых значений близкому к 1000. Можно ли добиться подобного результата с помощью каких-то более серьезных алгоритмов фильтрации и получить при этом время отклика фильтра хотя бы 200-400 сэмплов.
|
|
|
|
Guest_TSerg_*
|
Jan 30 2014, 13:53
|
Guests

|
Сигнал вроде без явного тренда. Вычисляем скользящее среднее и после первых N начинаем отсекать выбросы ( по уровню или по медиане ). Продолжаем вычислять ск. среднее с учетом отбраковки. Длина окна среднего может быть или постоянной или вообще нарастающей. Это, если примитивно.
|
|
|
|
Guest_TSerg_*
|
Jan 30 2014, 14:03
|
Guests

|
Это - да  Но там есть явные выбросы, которые стоит отсекать до усреднения, т.е. сигнал остоит из некоего медленного тренда и редких импульсных помех. Вывод чисто зрительно-телепатический. К примеру, имп. помехи статистически смещены в положительную полуплоскость - это даст смещение полезного сигнала туда же.
|
|
|
|
Guest_TSerg_*
|
Jan 30 2014, 14:08
|
Guests

|
О чем и речь была, либо отсечка по уровню каждого отсчета (если уровень имп. помех заметно отстоит от уровня сигнала), если не желательно окно для медианы.
|
|
|
|
|
Jan 30 2014, 14:49
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата(Xtal1 @ Jan 30 2014, 16:18)  Всем доброго времени суток. Прошу прощения, если не в тот раздел, но более подходящего не нашел. Проблема заключается в следующем: Есть поток входных значений, для примера даю выборку из 1000 отсчетов
sampling.rar ( 9.22 килобайт )
Кол-во скачиваний: 164Нужно фильтровать такой поток значений, дабы получить "болтанку" на выходе не более 2-3 единиц по амплитуде. Тупым усреднением этого получается достичь лишь при количестве усредняемых значений близкому к 1000. Можно ли добиться подобного результата с помощью каких-то более серьезных алгоритмов фильтрации и получить при этом время отклика фильтра хотя бы 200-400 сэмплов. Мощность шума в вашем примере ~300. Вам нужна ~1. Т е фильтром вам надо ограничить полосу в 300 раз, те фильтр будет с откликом минимум 600 отсчетов. Медианная фильтрация и др нелинейщина применима в случае сглаживания, но не в случае оценки среднего значения.
|
|
|
|
|
Jan 30 2014, 15:59
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (ViKo @ Jan 30 2014, 17:05)  сначала нужно запустить медианный фильтр Если допустимы гипотезы, то я думаю, что это дробовой шум аналого-цифрового преобразователя, при постоянном входном сигнале. Медиана с апертурой 15 выборок уменьшает разброс до 3-4, апертура в 27 выборок - до 1.
|
|
|
|
Guest_TSerg_*
|
Jan 30 2014, 16:07
|
Guests

|
Частотный анализ все показывает верно - допустима отсечка по уровню. Чистая медиана (т.е только медиана) при отсутствии импульсных помех приведет к искажениям полезного сигнала. Гистограмма исходного сигнала за вычетом среднего с учетом помех:
Отсечка помех по уровню (взят abs(20)) и центрирование остатка приводят к картине маслом:
С таким сигналом легко справится скользящее среднее.
|
|
|
|
|
Jan 30 2014, 16:34
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (TSerg @ Jan 30 2014, 19:07)  Чистая медиана (т.е только медиана) при отсутствии импульсных помех приведет к искажениям полезного сигнала. Если не интерпретировать эту гистограмму как три или бимодальное распределение, то медиана даст быструю и наилучшую оценку. Для симметричных шумов медиана даёт несмещённую оценку. А помехи как раз импульсные, просто их относительно много... (P.S. однако видно, что шум не симметричный и выборочное среднее 36636, а медиана даёт 36634. Но это мелочь, по сравнению со скоростью медианы - 15 выборок длина и шума нет
Сообщение отредактировал AndrewN - Jan 30 2014, 16:44
|
|
|
|
Guest_TSerg_*
|
Jan 30 2014, 16:51
|
Guests

|
Это все понятно, но медиана без помех введет нелинейность в сигнал и его оценку, да и ТС сильно беспокоился по поводу 2 дискрет точности выходного сигнала. P.S. >однако видно, что шум не симметричный На крайней картинке надо считать это уже не шумом, а сигналом и поэтому - медиана внесет нелинейность. P.P.S Для реккурентного SMA ( скользящее среднее ) вообще выборка только одна  SMA[i] = SMA[i-1] + (X[i] - X[i-n])/n
|
|
|
|
|
Jan 30 2014, 18:50
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (TSerg @ Jan 30 2014, 20:51)  ТС сильно беспокоился по поводу 2 дискрет точности выходного сигнала. На графике измеренного сигнала видно, что максимальные отклонения равны около 40 в обе стороны, т.е. чуть больше 5 младших бит могут врать, о +/-2 голова может не болеть. Я поменял окно медианы на 9, даже такое короткое хорошо давит эти +/-40. На мой взгляд (поскольку истинное значение нам никогда не узнать, и приходится довольствоваться оценкой) - задача решена. P.S. А это была хорошая идея про +/-40. Предположив, что 5 и 3 биты сбоят (40 = 0х28 = 10 1000) почти всегда наоборот, я прибавлял или вычитал 40 из выпадающих значений: CODE if (x[k] < 36629) res = x[k] + 40; else if (x[k] > 36640) res = x[k] - 40; else res = x[k]; Результат превзошёл все ожидания. Убедитесь сами. Похоже, что эти биты и в правду сбоят!
Сообщение отредактировал AndrewN - Jan 30 2014, 19:18
|
|
|
|
Guest_TSerg_*
|
Jan 30 2014, 19:17
|
Guests

|
Это разве задача?  Интереснее на ней рассмотреть предельные возможности разных методов.
|
|
|
|
|
Jan 30 2014, 19:23
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (TSerg @ Jan 30 2014, 22:17)  Это разве задача?  Интереснее на ней рассмотреть предельные возможности разных методов. Оказалась ещё и какая  Я удалённо силой мысли внутрь полупроводника проник - см. мой модифицированный предыдущий msg.  QUOTE (thermit @ Jan 30 2014, 22:19)  Вы придумали собственную задачу и бодро взялись ее решать (не решив, кстати говоря). Между тем с вопросом тс можно ознакомиться в 1 посте. "Да чихал я на Лохматого" - х/ф "Акваланги на дне"
Сообщение отредактировал AndrewN - Jan 30 2014, 19:38
|
|
|
|
|
Jan 30 2014, 19:48
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (ViKo @ Jan 30 2014, 23:38)  Подогреть пациента, охладить. Потому что оно не нормальное (ненормальное!).  Я практически уверен, что АЦП битое. Поэтому и распределение шума асимметричное и с дырками. Дырки мне удалось (случайно) убрать, а уж асимметрию теплового шума - чего только битый АЦП не придумает...
|
|
|
|
|
Jan 31 2014, 07:27
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Всех ответивших благодарю за помощь. Вообщем, это не АЦП, потому сеанс телепатии был не совсем удачен. Физически, эти значения представляют собой тики таймера в системе радиочастотной ToF. Т.е. мы измеряем расстояние между цифровыми трансиверами с помощью вычисления времени полета радиоволны. Сам процесс измерения производится следующим образом: Первое устройство (мастер) запускает счет таймера и отправляет ведомому пакет, в момент завершения отправки происходит событие захвата и защелкивается значение счетного регистра таймера, мастер переключается в режим приема. Далее, ведомое устройство, принимает пакет, переключается в режим передачи, и начинает отправку ответного пакета. Когда мастер ловит событие детектирования синхрослова, то это событие на другом канале захвата таймера вызывает защелкивание второго значения таймера (переполнения учитываются). После этого, получаем разницу между двумя событиями в тиках таймера. Вот именно эти значения и даются в первом посте. Все задержки, константные, кроме одной - задержки между началом передачи и моментом возникновения события детектирования синхрослова. Подозреваю, что природа этого связана с частотой дискретизации входного сигнала в трансивере. Другими словами, насколько точно трансивер определяет фронты сигнала - насколько точный результат я и получаю на выходе. И "ненормальность" распределения, мне кажется, связана именно с этим. Во всяком случае, другого объяснения для того факта, что измерения стремятся занимать несколько определенных дискретных значений, я пока не придумал  Сама проблема заключается не в том, что нужно получать большую скорость измерений, а в том, что устройства автономные и тратить энергию на слишком длинные сеансы связи - роскошь. Так, на данном этапе, для того, чтобы провести 100 циклов измерения я сейчас затрачиваю 85 мс, но усреднение 100 значений дает разброс больше желаемого. Приемлемую болтанку дает усреднение 1000 значений, но тогда и время измерения почти секунда. Так что при этом сеансы измерения расстояния прийдется проводить значительно реже, что, собственно и смущает. Пытался вычислить для выборки максимумы и минимумы (все, если их несколько) и выбросить из усреднения, но это не дало результата. Видимо действительно нужно как-то задавать окно и за его пределами отсекать "левые" значения. Но пока не придумал по каким критериям задавать границы этого окна, имея просто выборку, например из сотни значений.
|
|
|
|
Guest_TSerg_*
|
Jan 31 2014, 10:31
|
Guests

|
Понимание подходов для обработки могут дать стат. исследования потоков, по примеру Вами приведенному в первом посте. Если действительно имеет место более-менее стационарная кластеризация сигнала по уровням, то необходимо определить параметры такой кластеризации и обрабатывать сигнал в онлайн на основе полученных знаний. P.S. Если захотите - можете скинуть сюда или в личку некий набор подобных измерений для анализа.
|
|
|
|
|
Jan 31 2014, 10:40
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (Xtal1 @ Jan 31 2014, 10:27)  Во всяком случае, другого объяснения для того факта, что измерения стремятся занимать несколько определенных дискретных значений, я пока не придумал Да. Пара банальностей: всякое измерение это случайный процесс, в большинстве случаев с гауссовым распределением. Из измеренных данных видно тримодальное распределение, причём оно проявляется уже на первом десятке измерений, и дальше статистика не меняется, что для 50, для 100, для 1000 всё едино. Значит должно быть хорошее, разумное объяснение для дырок в распределении. Эти дырки случайными не выглядят, а имеют систематический характер. Что это? Моя гипотеза - сбой (ошибка в работе) в измерительной системе.
|
|
|
|
|
Jan 31 2014, 11:02
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
если не секрет, то интересуют грязные подробности  что за трансиверы, параметры передачи (битовая скорость) и в каких тугриках измеряется время в прикреплённом файле. распеределние вполне нормальное, надо только округлить до значения (загрубить дисктеризацию до ~40 тугриков). 33590, 36630, 36670. потому что это и есть реальная дисктерность ограниченная в приёмнике, остальные более мелкие изменения полезной информации не несут.
можно попробовать улучшить ситуацию если аккуратно смотреть частоту тактирования обоих трансиверов. так как частоты заведомо не одинаковые можно попробовать поймать их биения, чья фаза возможно даст дополнителную информацию о задержке распространения. но так как шумы (16 тугриков) не особо меньше дискретности (40 тугриков) то, пожалуй, ничего хорошего из этого не получится. так что природу тут не обманешь, есть распределение с сигмой 16 тугриков, хочется сделать 1, усредняй 16^2 = 256 раз.
|
|
|
|
Guest_TSerg_*
|
Jan 31 2014, 12:47
|
Guests

|
Это нормальный подход, если говорить о традиционной фильтрации. Если сигнал+помеха можно устойчиво кластеризовать, то появляется возможность выборки наиболее привлекательного кластера значений и далее обрабатываеть его относительно традиционными средствами. Добавив динамическую кластеризацию получаем довольно робастный алгоритм.
|
|
|
|
Guest_TSerg_*
|
Jan 31 2014, 21:21
|
Guests

|
Что интересно, в итоге - спасибо ТС за подачу почти забытой мной идеи. Набросал сегодня алгоритм динамической кластеризации в онлайн решении и на его основе - разбраковку помех по кластерам. После вычленения остатка - считаем его сигналом (линейная обработка в частотной области) или делаем стат. оценку.
|
|
|
|
|
Jan 31 2014, 22:11
|

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

|
Цитата(Xtal1 @ Jan 30 2014, 17:18)  Можно ли добиться подобного результата с помощью каких-то более серьезных алгоритмов фильтрации и получить при этом время отклика фильтра хотя бы 200-400 сэмплов. Можно. Только поясните, пожалуйста, зачем это Вам нужно? Ну, какие характеристики сигнала являются существенными, и Вы хотели бы их выделить? Цитата(Xtal1 @ Jan 31 2014, 11:27)  Вот именно эти значения и даются в первом посте. Ага, теперь немного понятнее. Скажите, есть ли какие-нибудь гипотезы относительно динамики взаимного передвижения объектов в системе? Цитата(Xtal1 @ Jan 31 2014, 11:27)  ...Сама проблема заключается не в том, что нужно получать большую скорость измерений, а в том, что устройства автономные и тратить энергию на слишком длинные сеансы связи - роскошь. Я бы посоветовал чистить такие сигналы чем-нибудь вроде сплайн-сглаживания. Результат хороший, но вычислительная нагрузка может оказаться неприемлемой. Ещё, как вариант для длинных последовательностей - БИХ-фильтр НЧ в арифметике повышенной разрядности. Он чрезвычайно экономичен вычислительно, однако даёт непостоянство ГВЗ по частоте. Скажите, задержка получения результата фильтрации имеет значение? Цитата(TSerg @ Jan 30 2014, 20:07)  Гистограмма исходного сигнала за вычетом среднего с учетом помех: Цитата(AndrewN @ Jan 31 2014, 14:40)  Моя гипотеза - сбой (ошибка в работе) в измерительной системе. Да... Похоже, Автору темы предстоит-таки серьёзно поработать с измерителем. Для получения вменяемых первичных данных. Что-то там явно не так. Не может внешняя помеха иметь такую дикую статистику. Цитата(_pv @ Jan 31 2014, 15:02)  распеределние вполне нормальное, надо только округлить до значения (загрубить дисктеризацию до ~40 тугриков). 33590, 36630, 36670. потому что это и есть реальная дисктерность ограниченная в приёмнике, остальные более мелкие изменения полезной информации не несут. Вот это действительно похоже на правду. Если загрубить, всё получается. А чем Вы можете объяснить такую дискретность?
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 1 2014, 07:21
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Цитата(_pv @ Jan 31 2014, 13:02)  если не секрет, то интересуют грязные подробности  что за трансиверы, параметры передачи (битовая скорость) и в каких тугриках измеряется время в прикреплённом файле. Трансиверы ST-шные SPIRIT1. Параметры передачи на данный момент следующие: FSK, 250 kbps, Δf = 127 kHz, полоса пропускания 540 kHz. Контроллер используется STM32f401, тактирование таймера 84 MHz. Соответственно те тугрики, которые тики таймера, которые в прицепленном файле, это время выраженное в 1/84е6 секунд или 11,905 наносекунд на каждый тугрик. Цитата(Stanislav @ Feb 1 2014, 00:11)  Скажите, есть ли какие-нибудь гипотезы относительно динамики взаимного передвижения объектов в системе? Наверное, я не совсем понял вопрос, но тот сигнал, который я приводил, получен при неизменном взаимном расположении трансиверов (на расстоянии около 2-х метров) и предметов вокруг них (за исключением меня, сидящего рядом на стуле). Цитата(Stanislav @ Feb 1 2014, 00:11)  Скажите, задержка получения результата фильтрации имеет значение? Большого значения не имеет, если она, конечно, в разумных пределах. А какая задержка имеется ввиду, время расчета?
|
|
|
|
|
Feb 1 2014, 08:02
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Xtal1 @ Feb 1 2014, 10:21)  Контроллер используется STM32f401, тактирование таймера 84 MHz. Соответственно те тугрики, которые тики таймера, которые в прицепленном файле, это время выраженное в 1/84е6 секунд или 11,905 наносекунд на каждый тугрик. Наверное, я не совсем понял вопрос, но тот сигнал, который я приводил, получен при неизменном взаимном расположении трансиверов (на расстоянии около 2-х метров) и предметов вокруг них (за исключением меня, сидящего рядом на стуле). Умножаем 11,905 ns на 36600, получаем 0,44 ms. Умножаем на скорость света 300 000 000, получаем 130 714 m. Что-то не сильно похоже на 2 x 2 m.  Значит, есть (ее не может не быть) громадная задержка обработки сигналов в микроконтроллерах. А из-за разных прерываний и т.п. она еще и не постоянная. Вот и побочные всплески. Цитата(sup-sup @ Feb 1 2014, 01:26)  Можно и так: Ух ты, в экселе (точнее, у меня LibreOffice Calc) можно и графики рисовать! P.S. Что делают микроконтроллеры 36000 тактов?
|
|
|
|
|
Feb 1 2014, 08:40
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Цитата(ViKo @ Feb 1 2014, 10:02)  Умножаем 11,905 ns на 36600, получаем 0,44 ms. Умножаем на скорость света 300 000 000, получаем 130 714 m. Что-то не сильно похоже на 2 x 2 m.  Значит, есть (ее не может не быть) громадная задержка обработки сигналов в микроконтроллерах. А из-за разных прерываний и т.п. она еще и не постоянная. Вот и побочные всплески. Ух ты, в экселе (точнее, у меня LibreOffice Calc) можно и графики рисовать! P.S. Что делают микроконтроллеры 36000 тактов?  Как я уже говорил выше, задержка естественно есть. Она состоит из задержек на переключение режимов приема/передачи, самого времени передачи пакета... Время входа в прерывания стабильно одинаковое (это тоже отлаживалось и проверялось), каких-то более приоритетных да и вообще других включенных прерываний нет. И еще раз повторюсь, все задержки константные (во всяком случае насколько я смог их измерить с точностью до 41,6 нс). Нестабильны задержки от начала отправки пакета передатчиком и до момента выдачи сигнала детектирования синхрослова приемником.Они одинаково пляшут при передаче в обе стороны. И порядок гуляния этих задержек как раз укладывается в гуляния самого результата измерения. Вы хотите сказать, что моя гипотеза о периоде дискретизации входного сигнала в трансивере, которым он квантует результирующие значения не верна? Цитата(_pv @ Feb 1 2014, 10:05)  раз тактовая частота 84МГц, или 12нс, то соответственно внутри приёмника сигнал оцифровывается на частоте 84/40 ~ 2МГц, что для полосы ~500 кГц, вполне разумно, зачем оцифровывать быстрее? соответственно уже снаружи столь высокочастотным таймером измерять это дело абсолютно бестолку. единственное как я уже говорил можно попробовать поймать биения этих 2МГц частот у приёмника и передатчика. тогда может и получится померить расстояние получше А эти 40, это вы взяли скачки результатов из выборки? То-есть Вы тоже считаете, что малину портит именно частота дискретизации самого трансивера? Еще хочется услышать Ваше мнение по поводу вот этого. Как думаете, там результат получился более красивый именно за счет несколько иного функционирования трансиверов (я имею ввиду, что у них частота дискретизации могла быть повыше)?
|
|
|
|
|
Feb 1 2014, 08:52
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Xtal1 @ Feb 1 2014, 11:40)  Нестабильны задержки от начала отправки пакета передатчиком и до момента выдачи сигнала детектирования синхрослова приемником. Они одинаково пляшут при передаче в обе стороны. И порядок гуляния этих задержек как раз укладывается в гуляния самого результата измерения. Вы хотите сказать, что моя гипотеза о периоде дискретизации входного сигнала в трансивере, которым он квантует результирующие значения не верна? Почему они пляшут одинаково, а не каждый "танцует свой танец"? У вас тактовая частота микроконтроллеров не синхронна с частотой трансиверов. Также и частоты самих микроконтроллеров не синхронны. Поэтому задержки могут гулять на такты. Но у вас же гуляет на 40 тактов?! Так, это... эхо? И 36000 тактов - еще раз интересуюсь, на что они пошли?
|
|
|
|
|
Feb 1 2014, 09:05
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
В таких статистических условиях имеет смысл вычислять нужное значение как 0.5*(max-min) Код clear all; L=100; s=importdata('sampling.xls');
s=s.data(:,2).';
mem=zeros(1,L); r=[]; for i=1:length(s) mem=[mem(2:end) s(i)]; a=max(mem); b=min(mem); r=[r 0.5*(a+b)]; end;
|
|
|
|
|
Feb 1 2014, 09:40
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Цитата(ViKo @ Feb 1 2014, 10:52)  И 36000 тактов - еще раз интересуюсь, на что они пошли? Попробую ответить такой картинкой:  По названиям каналов должно быть понятно где какой сигнал. Период между маркерами - это то, что собственно измеряется. Задержка между SLAVE SYNC DETECTED и SLAVE TX точная и обеспечивается таймером МК. Не буду засорять ноосферу лишней информацией, просто скажу, что задержка эта необходима в силу особенностей работы самого трансивера. Как видите, ничего там лишнего нету и при такой скорости передачи задержка особо меньшей быть не может. Формат пакета следующий: 4 байта преамбулы, 3 байта синхрослова, остальное - данные, но они никакой роли не играют.
|
|
|
|
|
Feb 1 2014, 10:48
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Xtal1 @ Feb 1 2014, 12:40)  По названиям каналов должно быть понятно где какой сигнал. Период между маркерами - это то, что собственно измеряется. Задержка между SLAVE SYNC DETECTED и SLAVE TX точная и обеспечивается таймером МК. Не буду засорять ноосферу лишней информацией, просто скажу, что задержка эта необходима в силу особенностей работы самого трансивера. Как видите, ничего там лишнего нету и при такой скорости передачи задержка особо меньшей быть не может. Формат пакета следующий: 4 байта преамбулы, 3 байта синхрослова, остальное - данные, но они никакой роли не играют. Задержка между обнаружением сигнала и передачей - больше 0.2 ms. Говорите, нужно? Ну, пусть. Гуляет на период таймера. Время обнаружения сигнала - тоже около 0.25 ms. Тоже гуляет...
|
|
|
|
|
Feb 1 2014, 10:50
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Цитата(ViKo @ Feb 1 2014, 12:48)  Задержка между обнаружением сигнала и передачей - больше 2 ms. Говорите, нужно? Ну, пусть. Гуляет на период таймера. Время обнаружения сигнала - тоже около 2.5 ms. Тоже гуляет... )) да там всего 1 ms показана, где Вы это увидели?
|
|
|
|
|
Feb 1 2014, 10:52
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Цитата Гуляет на период таймера допустим, но какое это имеет отношение к вопросу...
|
|
|
|
|
Feb 1 2014, 11:17
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Цитата(ViKo @ Feb 1 2014, 13:06)  Лучшего, чем уже сказали, делать нечего. Чем бороться с плохим распределением, лучше его не создавать. Вы же должны дать себе отчет, что ломает ваше нормальное распределение. А покажите числа между приемом сигнала и передачей у слэйва. Посмотрим, насколько они стабильные. Простите, но складывается впечатление, что вы читаете написанное через строчку... У слэйва задержка стабильная и прыгает на один период таймера, там проблем нет. Я высказал (уже не раз) свою версию причин происходящего (это к вопросу о "плохом" распределении).
Сообщение отредактировал Xtal1 - Feb 1 2014, 11:19
|
|
|
|
|
Feb 1 2014, 12:08
|

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

|
Цитата(Xtal1 @ Feb 1 2014, 11:21)  Наверное, я не совсем понял вопрос, но тот сигнал, который я приводил, получен при неизменном взаимном расположении трансиверов (на расстоянии около 2-х метров) и предметов вокруг них (за исключением меня, сидящего рядом на стуле). Понятно. Мой вопрос касался параметров взаимного движения объектов. Это можит наложить ограничения. Цитата(Xtal1 @ Feb 1 2014, 11:21)  Большого значения не имеет, если она, конечно, в разумных пределах. А какая задержка имеется ввиду, время расчета? Задержка сигнала в фильтре, и непостоянство ГВЗ в его БИХ-реализации. Цитата(_pv @ Feb 1 2014, 12:05)  раз тактовая частота 84МГц, или 12нс, то соответственно внутри приёмника сигнал оцифровывается на частоте 84/40 ~ 2МГц, что для полосы ~500 кГц, вполне разумно, зачем оцифровывать быстрее? соответственно уже снаружи столь высокочастотным таймером измерять это дело абсолютно бестолку. Вполне правдоподобное объяснение, спасибо. ЦифрА - зло... Цитата(Xtal1 @ Feb 1 2014, 12:40)  Как думаете, там результат получился более красивый именно за счет несколько иного функционирования трансиверов (я имею ввиду, что у них частота дискретизации могла быть повыше)? Если что - дискретность (неопределённость) во времени не накладывает ограничений на точность. На время измерения - накладывает. Извините, если это лишнее. Цитата(thermit @ Feb 1 2014, 13:05)  В таких статистических условиях имеет смысл вычислять нужное значение как 0.5*(max-min) Вряд ли. Вычисление максимума и минимума на ползучем отрезке вычислительно сложнее простого усреднения. А результат даст худший, т.к. не учитывает статистику распределения значений функции.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 1 2014, 14:47
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата Stanislav: Вряд ли. Вычисление максимума и минимума на ползучем отрезке вычислительно сложнее простого усреднения. А результат даст худший, т.к. не учитывает статистику распределения значений функции. Усреднение с приемлемым результатом и все такое требует длинных (противных тс) порядков. О лучшести или худшести оценок вообще судить сложно, т к критерий отсутствует. Распределение по всей видимости описывается гистограммой примера. Исходя из нее матожидание почти совпадает с серединой полного размаха (критерий корректности оценки). Отсюда и алгоритм. Элементарных операций столько же, сколько у приемлемого среднего, но задержка в пределах требований тс.
|
|
|
|
|
Feb 1 2014, 15:22
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(Xtal1 @ Feb 1 2014, 15:40)  А эти 40, это вы взяли скачки результатов из выборки? То-есть Вы тоже считаете, что малину портит именно частота дискретизации самого трансивера? очень давно делал тоже самое с nrf24l01, там битовая скорость 2mbps ну и полоса соответственно шире, а ошибка за один "пинг" соответственно меньше, картинка выглядела примерно так же, хорошо было видно дискретность частоты приёмника в несколько МГц которые захватывать более высокочастотным таймером бесполезно, конкретных цифр и подробностей уже не вспомню. Цитата(Xtal1 @ Feb 1 2014, 15:40)  Еще хочется услышать Ваше мнение по поводу вот этого. Как думаете, там результат получился более красивый именно за счет несколько иного функционирования трансиверов (я имею ввиду, что у них частота дискретизации могла быть повыше)? результат там получился вроде как 18нс сигмы при усреднении по 1000 измерений то есть 560нс джиттера за одно измерение, у вас же сигма 16/84e6 = 200нс. Цитата(Stanislav) Вполне правдоподобное объяснение, спасибо. ЦифрА - зло... злость цифрЫ тут, пожалуй, непричём. при полосе в 500кГц даже если убрать всю цифру, врядли джиттер станет меньше чем те же намеренные ТС 200нс. ну и по гистрограмме видно, что дискретность хоть и заметна, но особо не мешает, вот если бы там всего одна палка осталась, то хоть заусредняйся, точность будет определяться в +- полбина в 500нс, а раз в соседние бины гистограммы хоть что-то попало ~20% отсчётов, то эта дискретность уже не особо и мешает.
|
|
|
|
|
Feb 1 2014, 22:49
|

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

|
Цитата(thermit @ Feb 1 2014, 18:47)  Усреднение с приемлемым результатом и все такое требует длинных (противных тс) порядков. Да уж... Эти противные скользящие средние, особенно в проклятом рекурсивном варианте. Цитата(thermit @ Feb 1 2014, 18:47)  О лучшести или худшести оценок вообще судить сложно, т к критерий отсутствует. Простите, но мне показалось, что Вы обмолвились о другом. Цитата(thermit @ Feb 1 2014, 18:47)  Распределение по всей видимости описывается гистограммой примера. Нет. Для выведения несмещённой оценки по Вашему методу потребуется делать поправки на статистики более высоких порядков. Думаю, что могу придумать последовательность, соответствующую данной гистограмме, где он будет давать ошибку относительно среднего значения (состоятельной и несмещённой оценки матожидания) на интервалах любой длины. Цитата(thermit @ Feb 1 2014, 18:47)  ...Исходя из нее матожидание почти совпадает с серединой полного размаха (критерий корректности оценки). Отсюда и алгоритм. Оно не совпадает. И смещение центра тяжести фигуры относительно кода с наибольшей мощностью как раз и является точной поправкой к дискретной оценке расстояния, соответствующего данному коду. Иными словами, "дробной частью" оценки. Цитата(thermit @ Feb 1 2014, 18:47)  ...Элементарных операций столько же, сколько у приемлемого среднего, но задержка в пределах требований тс. Гораздо больше операций. Если учитывать их особенность выполнения в машине. Относительно задержки конкретных требований не опубликовано. ЗЫ. Просьба не расценивать мой пост как "наезд", или повод для беспредметного спора. Пожалуйста. --------------------------------------------------------------- Цитата(_pv @ Feb 1 2014, 19:22)  злость цифрЫ тут, пожалуй, непричём. при полосе в 500кГц даже если убрать всю цифру, врядли джиттер станет меньше чем те же намеренные ТС 200нс. Это определяется отношением С/Ш, которое зависит от... и т.д. Даже по гистограмме видно, что аналог будет гораздо лучше в плане скорости получения решения в доверительном интервале. В чём я с Вами соглашусь, так это в том, что мерить надо фазу. Но - сигнала, абсолютную, устраняя неоднозначности при помощи кодовых измерений. Это самый точный и быстрый способ. О возможности практической его реализации в данном сетапе могу только догадываться. Скорей всего - ахти... Цитата(_pv @ Feb 1 2014, 19:22)  ...ну и по гистрограмме видно, что дискретность хоть и заметна, но особо не мешает, вот если бы там всего одна палка осталась, то хоть заусредняйся, точность будет определяться в +- полбина в 500нс, а раз в соседние бины гистограммы хоть что-то попало ~20% отсчётов, то эта дискретность уже не особо и мешает.  Если идёт речь о точности оценки в условиях статичности - согласен. Но смещение оценки - всё же будет. В этом и беда цыфрЫ.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 2 2014, 09:53
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(Stanislav @ Feb 2 2014, 05:49)  Это определяется отношением С/Ш, которое зависит от... и т.д. Даже по гистограмме видно, что аналог будет гораздо лучше в плане скорости получения решения в доверительном интервале. да, точность измерения времени прихода сигнала определяется полосой и SNR, но скорее всего это определяется в приёмнике входными усилителями/смесителями/..., то есть раньше чем дело дойдёт до АЦП. Если бы даже в приёмнике стоял идеальный АЦП с частотой в 100 раз выше, на выходе ТС получил бы абсолютно такую же гистограмму с тем же среднеквадратичным отклонением в 200нс. которую для получения необходимой точности те же 1000 раз пришлось бы усреднять. Цитата(Stanislav @ Feb 2 2014, 05:49)  Если идёт речь о точности оценки в условиях статичности - согласен. Но смещение оценки - всё же будет. В этом и беда цыфрЫ. про смещение оценки можно немного подробнее?
|
|
|
|
|
Feb 2 2014, 11:04
|
Знающий
   
Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997

|
Цитата(ViKo @ Feb 1 2014, 11:02)  Ух ты, в экселе (точнее, у меня LibreOffice Calc) можно и графики рисовать! Анализ проводить можно. Например, в данном случае вполне хватает длины усреднения в 192 точки (3x64 скользящего среднего). Можно посмотреть спектр, возможно, по нему можно оценить что резать (даны картинки во временной области - исходный сигнал и сигнал после трехкаскадного скользящего среднего и в частотной области - то же самое).
Сообщение отредактировал sup-sup - Feb 2 2014, 11:06
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 2 2014, 14:34
|

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

|
Цитата(_pv @ Feb 2 2014, 13:53)  Если бы даже в приёмнике стоял идеальный АЦП с частотой в 100 раз выше, на выходе ТС получил бы абсолютно такую же гистограмму с тем же среднеквадратичным отклонением в 200нс. которую для получения необходимой точности те же 1000 раз пришлось бы усреднять. Здесь среднеквадратичное отклонение - не 200 нс.  Цитата(_pv @ Feb 2 2014, 13:53)  про смещение оценки можно немного подробнее? Пожалуйста. Это может иметь место, например, для нессимметричных и негауссовых распределений.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 2 2014, 17:46
|

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

|
Цитата(_pv @ Feb 2 2014, 20:54)  а сколько?? 16 тугриков по 12 нс. Виноват, ошибся. Неправильно открыл в Матлабе. С остальным тоже согласен. При условии, что распределение - гаусс (а здесь это не так).
Сообщение отредактировал Stanislav - Feb 2 2014, 18:08
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 3 2014, 09:15
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Так все-таки смотреть в сторону БИХ-фильтров?
И еще такой вопрос: чем трехкаскадное скользящее среднее по 64 отсчетам лучше, нежели просто усреднять 192 отсчета, если получать отсчет с выхода для каждого входного не требуется?
|
|
|
|
|
Feb 3 2014, 09:57
|
Группа: Участник
Сообщений: 10
Регистрация: 1-02-14
Пользователь №: 80 289

|
Цитата(Xtal1 @ Feb 3 2014, 13:15)  Так все-таки смотреть в сторону БИХ-фильтров?
И еще такой вопрос: чем трехкаскадное скользящее среднее по 64 отсчетам лучше, нежели просто усреднять 192 отсчета, если получать отсчет с выхода для каждого входного не требуется? Не имеет значения, бих или ких. Длина импульсной характеристики определяется полосой. Усреднение по 192-м отсчетам эквивалентно фильтрации однородным ких 191-го порядка. 3 усреднения по 64 эквивалентно последовательной фильтрации 3-мя однородными ких. Частотные характеристики на рисунке.
|
|
|
|
|
Feb 3 2014, 10:10
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(Stanislav @ Feb 3 2014, 00:46)  С остальным тоже согласен. При условии, что распределение - гаусс (а здесь это не так). почему считаете что распеределние не гауссово? в распередлении всего три точки. 36591.9 41 36633.3 832 36674.8 127 как можно судить по трём точкам о нормальности/ненормальности, кривую Гаусса через три точки всегда можно идеально провести. 856.979*E^(-(x-36637.9)^2/2/18.8439^2)
|
|
|
|
|
Feb 3 2014, 10:23
|
Группа: Участник
Сообщений: 12
Регистрация: 8-01-13
Пользователь №: 75 101

|
Цитата(ybrk @ Feb 3 2014, 11:57)  Усреднение по 192-м отсчетам эквивалентно фильтрации однородным ких 191-го порядка. 3 усреднения по 64 эквивалентно последовательной фильтрации 3-мя однородными ких. Частотные характеристики на рисунке. Да, как-то я не подумал. Спасибо.
|
|
|
|
|
Feb 3 2014, 11:07
|
Группа: Участник
Сообщений: 10
Регистрация: 1-02-14
Пользователь №: 80 289

|
Цитата(ViKo @ Feb 3 2014, 14:42)  А какой из них фильтрует лучше? У второго основной лепесток АЧХ в 3 раза шире. А децибелы - сущность обманчивая. Децибеллы - сущность нейтральная. Просуммируйте квадраты импульсной характеристики - это и будет коэффициент подавления мощности белого шума. В данном случае однородный 191-го порядка лучше 3-хкратного 63-го.
|
|
|
|
|
Feb 3 2014, 11:44
|

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

|
Цитата(_pv @ Feb 3 2014, 14:10)  почему считаете что распеределние не гауссово? Это следует из условий задачи. В идеале, оно должно быть вообще прямоугольным, если генераторы передачи-приёма расходятся. Но здесь, думаю, ближе к трапецидальному ("прямоугольник" с размытыми краями). Простое усреднение в цифрЕ в таких случаях может дать смещённую оценку МО, если это распределение не учитывать. Усреднение в аналоге смещения не даст. Цитата(_pv @ Feb 3 2014, 14:10)  как можно судить по трём точкам о нормальности/ненормальности, кривую Гаусса через три точки всегда можно идеально провести. Можно-то можно. Только обстоятельства получения данных исключают правомочность таких допущений. -------------------------------------- Цитата(Xtal1 @ Feb 3 2014, 13:15)  Так все-таки смотреть в сторону БИХ-фильтров? Попробуйте. Либо БИХ, либо КИХ в рекурсивной реализации. По-моему, первое существенно проще, но точность вычислений нужна будет высокая.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Feb 3 2014, 12:07
|
Группа: Участник
Сообщений: 10
Регистрация: 1-02-14
Пользователь №: 80 289

|
Цитата(ViKo @ Feb 3 2014, 15:33)  Я так и предполагал. Вы, что же, просуммировали уже?  Как? Сумма квадратов коэффициентов однородного фильтра 1/(N+1) = 1/192 =0.0052 Для 3-х кратного однородного просуммировал матлабом sum(conv(ones(1,64)/64,conv(ones(1,64)/64,ones(1,64)/64)).^2)
Сообщение отредактировал ybrk - Feb 3 2014, 12:08
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|