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