У меня есть функция передачи, которую я пытаюсь использовать для фильтрации данных ускорения.Постоянно обновляющая передаточная функция
До сих пор я мог использовать lsim с волной sin около 10 секунд, и я получаю ожидаемый результат. Однако я не могу работать, как получить данные в функцию в режиме реального времени.
Чтобы уточнить, каждые 0,1 секунды я получаю значение ускорения от внешней программы. Мне нужно отфильтровать значения для удаления высокочастотных вариаций в данных. Мне нужно, чтобы это произошло для каждой точки данных, которую я получаю, когда я использую текущее значение ускоренного фильтра в дополнительных этапах обработки.
Как использовать функцию передачи в непрерывном режиме и обновлять выходное значение каждый раз, когда будут получены новые данные?
У вас есть get_one_input_sample, я предполагаю, что вы извлекаете данные из других источников. Можно ли сказать, что данные * из * внешней программы? Больше похоже на толчок к матлабу, а не тягу. Или, лучше ли опубликовать текущее значение на чем-то вроде UDP-порта и получить его от Matlab? – Steve
Я думаю, это можно сделать либо нажатием, либо вытащить данные, это будет полностью зависеть от того, как вы взаимодействуете с оборудованием с помощью Matlab. Вы можете задать для этого отдельный вопрос. Для фильтрующей части это не имеет значения, это всегда один образец, один образец, при этом необходимо передать историю фильтра на следующую итерацию. –
Хорошо, у меня есть идея получить данные, но в каком формате она должна быть? Может быть, это просто номер? Например, мои данные, которые я получаю каждые 0,1 секунды: 0,3,0,0,001,0,1,0,4,0,6,0,6 и т. Д. Могу ли я просто фильтровать (B, A, 0.3, filter_state), затем фильтровать (B, A, 0 , filter_state) и т. д.? – Steve