|
|
  |
Выбор способа обработки сигнала с датчика |
|
|
|
Nov 13 2017, 17:06
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141

|
Здравствуйте, уважаемые форумчане. Есть схема получения сигнала с вихревого датчика (для расходомера). Контроллер стм32ф373. Суть в том, что на выходе датчика имеем частоту, пропорционально расходу. Заказчик настаивает на том чтобы для определения частоты использовалось быстрое преобразование Фурье на 4096 точек. Но я считаю, что ввиду ограничения ОЗУ и достаточно длительного времени обработки целесообразнее посчитать частоту с помощью таймера в режиме захвата и компаратора, предварительно отфильтровав сигнал. Однако заказчик, считает, что так мы получим меньшую точность и гибкость. Объясните, пожалуйста в чем я заблуждаюсь и какие подводные камни могут быть при применении таймера, а не преобразования Фурье. Потому как по мне Фурье для такого МК все-таки сложно, так как это сожрет все ресурсы ядра и ОЗУ. Заранее спасибо.
|
|
|
|
|
Nov 13 2017, 17:13
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(ivan24190 @ Nov 13 2017, 20:06)  Суть в том, что на выходе датчика имеем частоту, пропорционально расходу. Заказчик настаивает на том чтобы для определения частоты использовалось быстрое преобразование Фурье на 4096 точек. ТЗ задачи озвучте, а то телепатия глючит слегка  Выглядит, как масло-масляное , зачем определять какую-то частоту, если датчик ее уже выдает?? Если нужно ее замерить, то никаких ПФ тут не нужно, а вот если преобразовать в соотв. с какими-то физ. величинами, то наверно да, нужно.
Сообщение отредактировал mantech - Nov 13 2017, 17:16
|
|
|
|
|
Nov 13 2017, 17:32
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141

|
mantech, частоту, выдаваемую датчиком нужно сначала измерить, а затем по ней рассчитать расход газа. Заказчик настаивает на БПФ. Но я считаю, что частоту сигнала с датчика можно определить и с помощью таймера причем достаточно точно, причем не сильно нагружая контроллер, т.к. ему помимо расчетов необходимо вести обмен по рс485 и выполнять отрисовку на экране. Поэтому и задал вопрос может быть я чего-то не знаю, раз заказчик настаивает именно на БПФ. P.S. Схема разработана ранее и не мной, от меня требуют ее оживить.
Сообщение отредактировал ivan24190 - Nov 13 2017, 17:36
|
|
|
|
|
Nov 13 2017, 18:08
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(mantech @ Nov 14 2017, 00:13)  Выглядит, как масло-масляное , зачем определять какую-то частоту, если датчик ее уже выдает?? Там всё просто - за препятствием образуются вихри, с повышением скорости потока по классике растет частота вихрей и меняется амплитуда. Вот по сочетанию частот и амплитуды определяют скорость. Цитата(ivan24190 @ Nov 14 2017, 00:32)  Заказчик настаивает на БПФ. Но я считаю, что частоту сигнала с датчика можно определить и с помощью таймера причем достаточно точно, причем не сильно нагружая контроллер, Всё зависит от математики заложенной заказчиком. Частота будет не одна, а целый спектр, и видимо в нём надо найти палку с максимальной амплитудой. Возможно заказчик ныкает алгоритм, что-бы не сперли ноу-хау. А возможно он сам еще не знает и ему нужен инструмент, чтобы выловить зависимости. Но это я телепатирую
|
|
|
|
|
Nov 13 2017, 18:18
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141

|
HardEgor, возможно Вы правы. Но наверное и контроллер надо пожирнее бы, а то 24 кб ОЗУ маловато для 4096 точек БПФ. Ладно буду делать Фурье в конце концов воля заказчика.
|
|
|
|
|
Nov 13 2017, 22:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 172
Регистрация: 14-11-11
Из: Москва
Пользователь №: 68 299

|
Как я понимаю, датчик выдает довольно много шумов, из-за чего и нужна какая-то фильтрация для определения центральной частоты, например БПФ (кстати, потом еще надо как-то по спектру определить частоту), а просто таймер только наловит шумов. Но на все это, наверное, есть уже готовая математика, и заказчик просто ее Вам пока не дает всю сразу, чтобы не усложнять этапы разработки.
|
|
|
|
|
Nov 14 2017, 01:50
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(ivan24190 @ Nov 13 2017, 20:06)  Здравствуйте, уважаемые форумчане. Есть схема получения сигнала с вихревого датчика (для расходомера). Контроллер стм32ф373. Суть в том, что на выходе датчика имеем частоту, пропорционально расходу. Заказчик настаивает на том чтобы для определения частоты использовалось быстрое преобразование Фурье на 4096 точек. Но я считаю, что ввиду ограничения ОЗУ и достаточно длительного времени обработки целесообразнее посчитать частоту с помощью таймера в режиме захвата и компаратора, предварительно отфильтровав сигнал. Однако заказчик, считает, что так мы получим меньшую точность и гибкость. Объясните, пожалуйста в чем я заблуждаюсь и какие подводные камни могут быть при применении таймера, а не преобразования Фурье. Потому как по мне Фурье для такого МК все-таки сложно, так как это сожрет все ресурсы ядра и ОЗУ. Заранее спасибо. В чем заказчик прав, так это в том, что интегральный метод даст достоверный результат. Как верно замечали просто счетчик будет шумы ловить, но кроме преобразования Фурье есть интегральные методы и полегче. Например считать автокорреляционную функцию за несколько периодов. Это можно делать убирая результат ушедший за окно и добавляя новый, что несоизмеримо легче чем подсчитывать каждый раз и тем более Фурье. Корреляционная функция будет колебаться вслед за сигналом, но уже без шума. Второй дешевый способ это инерционный измеритель фазы. Будет интересно -- расскажу как сделать.
|
|
|
|
|
Nov 14 2017, 03:18
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141

|
Спасибо всем за советы. Выяснилось, что будет испытываться какой-то новый датчик, поэтому нужна именно спектральная характеристика, из-за чего заказчик и настаивает на БПФ. Тему можно закрывать.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|