Сигнал для фильтрации в R

Мне нужно отфильтровать сигнал, чтобы он не терял своих свойств, чтобы позже этот сигнал был вставлен в искусственную нейронную сеть. Я использую R и библиотеку сигналов, я думал об использовании фильтра нижних частот или БПФ.

Это сигнал, который нужно отфильтровать, он касается смещения пикселей в видео. В случае, если я вычислил результирующую векторов X и Y, чтобы получить только одно значение и, таким образом, сгенерировать этот график / сигнал:

Сигнал для фильтрации в R

Используя библиотеку сигналов и функцию fftfilt, я получил следующий сигнал, который кажется более простым для обучения нейронной сети, но я не понимал, что делает функция и остались ли свойства сигнала.

resulting <- fftfilt(rep(1,50)/50,resulting)

Сигнал для фильтрации в R

Может ли кто-нибудь объяснить, как работает эта функция, или предложить лучший метод фильтрации этого сигнала.

Я понимаю, что вы собираетесь использовать это в качестве входных данных для нейронной сети, но кроме того, что это не имеет ничего общего с NN, рекомендую удалить тег. Я предполагаю, что здесь используется быстрое преобразование Фурье, и в этом случае вы задаете академический вопрос, а не вопрос программирования. Возможно, это было бы более уместно на Математика?

r2evans 03.10.2018 20:32

Похоже, вы хотите разработать фильтр, т.е. вы можете отфильтровать сигнал и передать его в нейронную сеть. По сути, вы спрашиваете, как создать один черный ящик, чтобы сделать второй черный ящик счастливым. Без сужения проблемы ответить на этот вопрос очень сложно.

Mouse On Mars 04.10.2018 01:18

Это действительно плохой сигнал. Вы уверены, что нет способа собрать более точные данные? Я собрал много данных из разных типов систем, и, по моему опыту, такие плохие данные обычно указывают на фундаментальную проблему с вашим приобретением. Это важно, потому что с точки зрения анализа и того, как вы должны относиться к нему, нет сигнала со «свойствами»: все, что у вас есть, - это то, что находится в данных, и нет никакой внутренней разницы между сигналом и шумом априори. Может быть, есть какое-то свойство (например, частотные составляющие), разделяющее их, но редко бывает идеально.

tom10 04.10.2018 17:28

Сигнал представляет собой смещение пикселей в определенной области видео, это может быть сигнал, генерируемый определенным движением. Не о том, как собрать более точные данные, потому что движение всегда генерирует аналогичный сигнал, проблема в нейронной сети, я считаю, что невозможно обучить ее таким разнообразным сигналом, поэтому я хотел бы преобразовать этот сигнал.

Douglas Ramos 10.10.2018 21:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
294
1

Ответы 1

Что касается функции fftfilt (...), я могу примерно сказать, что она делает: это приблизительная реализация фильтра с конечной импульсной характеристикой, которая использует БПФ функции импульсной характеристики фильтра с некоторым заполнением в качестве окна. Он получает БПФ сигнала в пределах окна и БПФ ИК-фильтра, затем генерирует отфильтрованный сигнал в частотной области, просто умножая два результата, а затем использует обратное БПФ для получения фактического результата во временной области. Если ваш КИХ-фильтр имеет огромное количество коэффициентов (хотя во многих случаях это просто признак плохой конструкции системы и в этом нет необходимости), функция работает намного быстрее, чем filter (Ma (...), ... ). При более разумном количестве коэффициентов (например, определенно ниже 100) прямой и точный подход на самом деле быстрее.

Что касается правильных методов фильтрации, то их так много, что есть целые толстые книги только по этой теме. И мой личный опыт в этой области немного смещен в сторону некоторых специфических трюков DSP сигнала датчика на основе микроконтроллера с очень низкой вычислительной мощностью с арифметикой с фиксированной запятой, точным единичным усилением в выбранной точке полосы пропускания, степенью двух масштабных коэффициентов и поэтапными реализациями, так что Я сомневаюсь, что это поможет вам в этом случае. По сути, сначала вам просто нужно знать, какой результат вы хотите получить от своего фильтра (и вам даже нужно фильтровать или, может быть, достаточно чего-то вроде обнаружения пиков и прореживания), а затем просто знать, что вы делаете. Из вашего сообщения трудно угадать, каковы ваши требования к нейронной сети, что, по вашему мнению, вам для этого нужно и что вам действительно нужно.

Другие вопросы по теме