Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C语言缩放/插值测量数据#_C#_Interpolation_Data Manipulation - Fatal编程技术网

C# 用C语言缩放/插值测量数据#

C# 用C语言缩放/插值测量数据#,c#,interpolation,data-manipulation,C#,Interpolation,Data Manipulation,首先,如果这个问题已经被问到了,我很抱歉,但是在对谷歌提供的每一个链接和我给出的每一个短语进行了大约10个小时的深入研究后,我找不到任何可以帮助我解决问题的东西 我想做的是: 我检索了两张excel表格,其中包含来自两种不同科学测量的数据。每个工作表都包含可以分别轻松与其他工作表进行比较的信息。 这两张图纸之间的唯一区别是它们包含的数据点的数量。 例如:第一张图纸包含200秒时间跨度的数据,其中一个点表示1秒。第二张表还包含相同时间跨度的数据,但,其中一个点表示0.5秒 我必须解决的问题是,用较

首先,如果这个问题已经被问到了,我很抱歉,但是在对谷歌提供的每一个链接和我给出的每一个短语进行了大约10个小时的深入研究后,我找不到任何可以帮助我解决问题的东西

我想做的是:

  • 我检索了两张excel表格,其中包含来自两种不同科学测量的数据。每个工作表都包含可以分别轻松与其他工作表进行比较的信息。 这两张图纸之间的唯一区别是它们包含的数据点的数量。 例如:第一张图纸包含200秒时间跨度的数据,其中一个点表示1秒。第二张表还包含相同时间跨度的数据,,其中一个点表示0.5秒

  • 我必须解决的问题是,用较少的数据点“缩放”工作表,以便在单个图表中轻松比较,从而使图表中的每一行在X轴上使用相同的空间

  • 我在这项任务中遇到的问题是,我缺乏足够的数学背景来创建一个算法

    我已经用GUI创建了整个应用程序,导入excel表格并使用移动平均法进行平滑处理(仅当数据集长度相等时才有用)

    欢迎提供任何可以解释这一点的想法或链接

    我还想说,我目前拥有的任何代码都与这个问题完全无关,这只是一个具有上述功能的附加方法

    提前感谢,,
    marfuc

    如果两个集合的数据点之间存在直接相关性(即两者的时间匹配),则在较小集合上进行线性插值以生成缺失点就足够了

    例如,假设您的第一组数据是:

    Time        Value
    12:00:00.0  100.0
    12:00:01.0  120.0
    12:00:02.0  117.5
    
    …你的第二套看起来像:

    Time        Value
    12:00:00.0  2.5
    12:00:00.5  3.0
    12:00:01.0  2.6
    12:00:01.5  2.9
    12:00:02.0  2.8
    
    我们可以用几种方法来填补第一个列表中的空白,这取决于您以后对数据的处理

    最简单的方法是对值进行线性插值。如果您的点与您要查找的值的距离相等(即:您在中间点找到值),则只需在缺少的点处对它们进行平均:

    Time        Value   Lerp
    12:00:00.0  100.0
    12:00:00.5          110.0
    12:00:01.0  120.0
    12:00:01.5          118.75
    12:00:02.0  117.5
    
    如果采样率相对于输入变化的速率足够高,则这是正常的。我见过很多音频处理算法使用这种计算方法来加倍采样率。如果采样率太低,无法很好地捕获转换,则无法很好地处理高频数据

    第二个选项是使用样条函数根据一系列点拟合曲线,然后将缺失的点合成为曲线上的偏移。这将为您提供更平滑、更自然的插值,数据中的凸起看起来更真实。如果计时在数据集之间没有很好地对齐,这也将为您提供一种相当好的偏移数据的方法-将每个点计算为沿曲线的偏移,距离等于计时偏移。有很多样条线实现可以用于此。我建议将Catmull Rom作为起始算法


    警告:如果你对输出进行某种统计分析,那么不管你怎么做,你都不会得到好的结果。如果你的目标是分析,那么就把大的一组数据减少,而不是把数据编成小的一组。

    这可能不是获得答案的最佳地方。问题更具理论性——“插值使用的不同算法是什么?”。是为了更具体的问题。“你可以试试。”谢谢你的回答,我会的。如果我不从这里删除这个问题,会不会引起问题?以防万一浏览的人知道一些可以帮助我的东西。