我需要过滤一个信号而又不失去其特性,以便稍后将该信号插入到人工神经网络中。我正在使用R和信号库,我曾考虑过使用低通滤波器或FFT。
这是要过滤的信号,它与移动视频中的像素有关。在我计算向量X和Y的结果以获得仅一个值的情况下,从而生成此图/信号:
使用信号库和fftfilt函数,我获得了以下信号,这对于训练神经网络来说似乎更容易,但是我不理解该函数在做什么以及是否保留了信号属性。 / p>
resulting <- fftfilt(rep(1,50)/50,resulting)
有人可以解释此功能的工作原理还是建议一种更好的方法来过滤该信号。
答案 0 :(得分:0)
至于 fftfilt(...) 函数,我可以粗略地告诉您它的作用:它是一个近似的有限脉冲响应滤波器实现,它使用滤波器脉冲响应函数的 FFT,并带有一些填充作为窗口。它在窗口内得到信号的 FFT 和滤波器的 IR FFT,然后通过将两个结果相乘生成频域中的滤波信号,然后使用反向 FFT 得到时域中的实际结果。如果您的 FIR 滤波器具有大量系数(即使在许多情况下它只是系统设计不良的标志,不应该被需要),则该函数的运行速度比 filter(Ma(...),... )。使用更合理数量的系数(例如绝对低于 100),直接和精确的方法实际上更快。
至于正确的过滤方法,它们太多了,以至于有关于这个主题的完整厚书。我在该领域的个人经验有点偏向于某些特定的基于微控制器的非常低计算能力的传感器信号 DSP 技巧,具有定点算法、选定通带点的精确单位增益、2 比例系数的幂和分阶段实施,因此我怀疑在这种情况下它会帮助你。基本上,首先你只需要知道你想从你的过滤器中得到什么结果(你甚至需要过滤或者只是像峰值检测和抽取之类的东西就足够了)然后只知道你在做什么。从您的消息中,很难猜测您的“神经网络”要求是什么、您认为需要什么以及您实际需要什么。