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

Используя библиотеку сигналов и функцию fftfilt, я получил следующий сигнал, который кажется более простым для обучения нейронной сети, но я не понимал, что делает функция и остались ли свойства сигнала.
resulting <- fftfilt(rep(1,50)/50,resulting)

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





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