Перейти к содержанию
    

adnega

Свой
  • Постов

    3 587
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Весь контент adnega


  1. volatile float x = 0.0f; for(int i = 0; i < 1000000; i++) x += 0.1f; x -= 100000.0f; printf("r = %f\n", x); Какой результат? У меня Аттестат средней школы тоже возвращать?
  2. Какой спектр, если Forger ничего кроме постоянной составляющей не интересует/не знает?
  3. Что выведет этот код? volatile float x = 0.0f; for(int i = 0; i < 1000000; i++) x += 0.1f; x -= 100000.0f; printf("r = %f\n", x); Неужели 0?
  4. По словесному описанию это больше на БИХ похоже чем на скользящее среднее ;) Есть формула или исходник?
  5. Если вы отображаете синхронно с семплированием (хоть 1:10, хоть 1:1000), то будет ровно как утверждает ViKo (ранее RobFPGA и я).
  6. А чем БИХ-фильтр не устроил? Считается в разы проще этого вашего скользящего среднего.
  7. С такими заявлениями можно нарваться еще на пару страниц матана ;) Начну. Что для вас "линейный фильтр"?
  8. У сигнала со скачком широкий спектр. У меня сигнал с принудительным ограничением спектра перед АЦП (RC-цепочка) с частотой среза fc. Делаю преобразование с fd >> fc. Затем усредняю и децимирую по N отсчетам, ибо fd мне очень много. Потом делаю гистерезис и вывожу на индикатор. Сам сигнал меняется медленно, гораздо медленнее fc. Поэтому имею право. Подавать на вход скачкообразный сигнал нельзя, т.к. это нарушает теорему Котельникова, и в общем случае будет погода на Марсе.
  9. Дык, а чему вы радуетесь-то - вы отображаете погоду на Марсе, а не входную измеряемую величину. Но на отображаемые данные никак не влияет - телепания на границе как были, так и будут. Я вам пример последовательности приводил ранее. Ага. Уменьшаем вывод на экран до "раз в минуту", и они вообще минуту не меняются. Это способ сэкономить на конденсаторах. У вас скользящее среднее. Но результат вы берете когда вам захочется, не синхронно с частотой дискретизации. Утверждается, что если результат хоть как-то синхронизируется с частотой дискретизации, то вы можете мощно сэкономить на вычислениях. Раз эдак в 1000. Разумеется, любой нормальный инженер пойдет по пути экономии (если результат тот же, то зачем платить больше?), а указанный вами вариант будет назван некорректным. Из практики: - я применяю усреднение за N отсчетов (не скользящее). Беру 8 отсчетов, считаю среднее, получаю 1 отсчет результата. Беру следующие 8 отсчетов и т.д.; - ST для АЦП рекомендуют брать 8 отсчетов, выкидывать 2 самых маленьких и 2 самых больших, оставшиеся 4 усреднить; - вот БИХ-вариант ФНЧ в математике с фиксированной точной y = y + (x - (y >> SNS_SHIFT)) * SNS_VALUE_NORMAL; #define SNS_FDATA (0.9500f) // коэффициент фильтра ФНЧ: 0 - выключен, 0.9999 - очень тормозящий изменение показаний #define SNS_SHIFT (16UL) #define SNS_VALUE_NORMAL ((int)((1.0f - SNS_FDATA) * (1 << SNS_SHIFT))) y - результат x - входные данные
  10. Вы утверждаете, что понимаете в ЦОС. Вы знаете, что такое "нули" и "полюса"? У FIR-фильтра - только нули, у IIR - есть полюса. Вы когда аналогию придумывали это не учитывали, RobFPGA максимально лаконично указал вам на некорректность аналогии. Есть множество манипуляций с сигналом, которые не имеют практического смысла. Если какой-то исходник из Интернета выдает какие-то циферки, то это не значит, что нет ничего лучше. Аватарка заметная. Мне всегда, почему-то, казался адекватным специалистом. Может, аккаунт ломанули?
  11. Пылится где-то, даже искать лень, но знания показать готов, ведь у вас сомнения какие-то. Рекомендую читать исключительно учебники - там нет реализаций, но есть теория. Ваши знания не системны, что-то делаете на уровне "и так сойдет", но не надо выдавать это за правоту. Я, что пишет RobFPGA полностью понимаю и согласен со всем. Он опережает меня с ответами, поэтому приходится свое не постить, хотя пишу примерно то же. Просто, смотря на то как и что он пишет, можно сказать что он не только не-двоечник, но и имеет богатый практический опыт.
  12. Это к измерениям не имеет ни малейшего отношения. В ВУЗе не учат как получать красивые данные, а учат получать достоверные данные. Про образование задело бы, но у меня красный диплом по специальности "радиофизика и электроника" ЯрГУ им. Демидова г. Ярославль 2004 года. Не понимаю. Вы понимаете, что ваша аналогия не рабочая?
  13. По моему это не фильтр, а функция "максимум за все время". Конденсатор зарядится до некоторого напряжения. Вы можете убрать сигнал, изменить частоту, форму сигнала и много чего еще, а на конденсаторе как было 5.0В так и осталось. Мы здесь про измерение говорим, а не про запасение энергии. Если у вас такой подход к измерениям, то вы двоечник и собиратель показометров. Может, не стоит вам в серьезные дискуссии вклиниваться с такими представлениями?
  14. Скользящее среднее не меняет частоту отсчетов. Вы, получив новый отсчет, складываете его с 999 предыдущими и сумму делите на 1000 - получив результат. Через 1 мс вам приходит еще один отчет, вы повторяете операцию с предыдущими 999 отсчетами - получаете следующий результат. Т.е. отсчеты вам приходят с частотой 1000 Гц (1 мс) и результаты бы обсчитываете тоже 1000 раз в секунду, и эти же 1000 раз в секунду выводите их на экран. Это скользящее среднее. Фильтрация. Как вы получаете 1 Гц на экране, без отбрасывания 999 отсчетов?
  15. Мне тоже не понятно. Вы делаете усреднение за N отсчетов (получая в результате 1 из 1000), а называете это скользящим средним.
  16. Дык, у вас показометр получается. Типа, сферического коня, которому спектр завернули 500 раз самого на себя в прямом и 500 раз в обратном направлении.
  17. Тогда как вы корректно делаете из 1000 Гц семплирования, при помощи фильтрации, 1 Гц отображения?
  18. Зафиксировали тезис. Я попробую доказать, что вы мало смыслите в ЦОС. По-вашему, можно безнаказанно выкидывать отчеты из выборки? (это следствие неравенства частоты сэмплирования и частоты отображения).
  19. А как наличие или отсутствие фильтрации влияет на сэмплирование?
  20. А как наличие или отсутствие фильтрации влияет на сэмплирование. Что такое "сэмплирование" по-вашему? По-моему, это получение отсчета в конкретный момент времени. Как правило, отсчеты получают с частотой дискретизации. В ЦОС применяют дискретные квантованные отсчеты.
  21. Т.е. вы собираете 1000 отсчетов, фильтруете (например, усредняете), получаете 1 результирующий отчет с частотой 1 Гц и его отображаете? Все так?
  22. И что из этого следует? К чему это замечание? Допустим, они сильно разные: семплируем с частотой 1000 Гц, а выводим с частотой 1 Гц. Т.е. 999 отсчетов отбрасываем, а используем один. Или в другую сторону: 1000 раз в секунду отправляем целые показания температуры воздуха, которые меняются на 1С за час. Как архитектор архитектору - в этих случаях система спроектирована не оптимально. Пределом оптимума будет получение данных с частотой близкой к частоте обновления показаний. Но если на цифры смотрит человек, то иногда нужно принудительно не обновлять показания (хоть до 10 секунд), чтоб не было болтанки, и это никак не связано с частотой сэмплирования и частотой отображения.
  23. Например, для индикатора температуры воздуха в виде светового табло какая нужна точность? Если сделать высокую, то будут телепания +27C<>+28C. При этом может быть значительный градиент температуры. Например, у меня на лоджии было +18 у потолка и -2 на полу (пока не сделал отопление). Какая температура на лоджии? Это зависит где установить датчик! Если загрубить показания на +- 1C зоной нечувствительности, то никакой потери точности не будет, а показания станут не такими дергаными.
×
×
  • Создать...