如何衰减深度时间序列数据中的潮汐信号

信息处理 过滤器 C#
2022-01-24 20:36:22

我使用来自电子标记鱼的深度时间序列数据。当鱼在底部停留时,我们会收到明显的潮汐信号(每天大约 1.96 个周期)。这会干扰我们对数据的分析,因此我一直在尝试使用 FFT 将其移除 - 即运行 FFT 将 bin 衰减到 1.96 cpd 左右,然后逆 FFT。它几乎可以工作,但潮汐信号会随着时间而变化(时间序列可能长达一年,采样率在 10 秒到 2 分钟之间变化)。所以在某些地方信号被删除,在其他地方它被夸大了。我试图将时间序列分成块并单独处理,但它似乎不起作用。我在 C# 中工作。任何帮助和建议将不胜感激!

2个回答

答案是“不,你不能减弱潮汐对你已经捕获的压力衍生深度数据的影响,而无需额外的信息”。

原因是静水压力从被跟踪的鱼中得出深度测量值(depthfish(n)),只是捕获信号的一部分。

这里的说明性示例是“异常聪明的鱼”,它设法停留在一个点(相对于海底)并根据压力调整其浮力。当潮汐势将水堆积在鱼上方的水柱中时,它就会上升。水退了,鱼就下山了。这条鱼的压力衍生深度是恒定的,很明显,它一直在上升和下降。

鱼体上的静水压力信号为Precorded(n)=Ptidal(n)PfishDepth(n)在哪里n是一些表示时间的变量。

您正在 FFTPrecorded, 旨在抑制Ptidal,但是时域的乘法是频域的卷积因此,只要拥有Precorded, 你有两个Ptidal,PfishDepth交织在一起。这并不完全是坏消息,但它肯定不是有史以来最好的消息。

您需要以某种方式修复一个以恢复另一个,并且在一定程度上,无论是如上所述的异常可怕的准确性还是只是随意的偏好,鱼确实会调节它们的浮力,可能比潮汐势在全球范围内移动的速度更快。因此,您的任务可能变得像应用低通滤波器来衰减更可能存在于低频的潮汐分量一样简单。鱼的移动速度与潮汐变化的关系可能是你最好的“武器”。有关更多背景信息,您可能希望查看此链接,该链接与此处要求的内容不完全相同,但相关。(注意:这也很大程度上取决于观察的规模。鱼可能有特定的生活模式,这些模式是经过调整的到一天中的时间。同样,它们的信号可能“隐藏”在潮汐中,因为它恰好是由同样驱动潮汐的天体驱动的。)

现在,我向您询问您的精度规格的原因是因为您可能能够构建某种模型,通过该模型您可以将鱼的运动与潮汐和/或深度隔离开来。

思考这个问题的最简单方法是说,“我的传感器说 23 米。鱼在哪里?它在 XYZ 位置。鱼什么时候出现?在某个 hh:mm:ss 时间。对,深度是多少(从基准)在哪里?是50米。哪里和什么时候的深度是多少?(由于潮汐),是52米。”,啊!因此,潮水增加了两米,因此鱼现在距离底部21 米。

也有可能制定一个概率模型。这回答了深度值的概率是多少的问题,给定由测深和潮汐数据和传感器获得的数据之和形成的先验。

在任何情况下,您要么需要无关信息(测深、潮汐),要么做出假设(潮汐信号要慢得多,因此在非常低的频率下,应用低通,完成)。

最后,请注意,水深测量确实发挥了重要作用。举个简单的例子,想象一个在潮汐期间充满水(和鱼)的盆地,即使在退潮后也能保存水(和鱼)。对于那些鱼,读数总是(例如)在它们周围时(例如)在 4-5 米之间,深度很可能为零。所以,你的Ptidal实际上是测深和潮汐的总和。

我怀疑这可能是“坏消息”(?),但无论如何我希望它有所帮助。

正如 Olli 建议的那样,将所有短期和长期数据转换为相同的格式和采样率(可能需要以较低的采样率进行插值)。

然后以每天 1.96 个周期的频率应用陷波滤波器。缺口不需要下降到dB,但应降低该频率的增益。

在音频世界中,我们将这种陷波或带阻滤波称为“参数均衡器”。将频率调至每天 1.96 个周期,将该频率降低一些 dB。尝试不同的分贝削减量和 Q 值,你会偶然发现每个的最佳值