【问题标题】:How can I compress cyclic data with minimal code?如何用最少的代码压缩循环数据?
【发布时间】:2017-04-08 09:38:42
【问题描述】:

我需要从传感器收集数据并压缩(有损)大约 2 比 1。我希望 C 代码行数少于 50 行。该信号来自一个 4 位 A/D 转换器,大致是一个幅度和频率略微不稳定的正弦波。偶尔会出现信号不稳定的情况。

【问题讨论】:

  • 每隔一个样本输出一次。
  • 我已经将采样周期增加到最大值,所以这无济于事。

标签: compression analog-digital-converter


【解决方案1】:

“有损”相当宽泛,允许任何事情。样品的一半。一半的位。其他任何事情都会涉及到一点。

您必须 a) 从之前的样本中尽可能地预测下一个样本,b) 从样本中减去预测值,以及 c) 以平均两位或更少位传输该差异。这样做有损会导致结果漂移,需要使用原始四位样本定期重新居中。

一个简单的二次预测变量是 a - 3b + 3c,其中 a、b、c 是最后三个样本。正弦波预测器会更复杂,它可以拟合频率和相位并随您进行调整。

如果您的数据很嘈杂,并且一开始只有四位分辨率,那么您能否从中获得任何收益是值得怀疑的。

【讨论】:

  • 我想尝试一下 a-3b+3c 的想法——听起来它可能会有所帮助。你能给我指出一个更详细的页面吗?您是否在某处错过了 ^2?哪个是最古老的样本?
  • 样本顺序将是 a、b、c、d,在时间上均匀分布,其中 a-3b+3c 是对 d 的预测。
  • 您可以自己轻松推导,将二阶多项式拟合到三个等距点,然后代入第四个点的位置。
猜你喜欢
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
相关资源
最近更新 更多