【问题标题】:How to Average Data, arriving in Intervals in Simulink如何平均数据,在 Simulink 中以间隔到达
【发布时间】:2014-03-26 13:35:25
【问题描述】:

我是 Simulink 新手。我想对一个块中的传入数据(经过一些时间间隔后)进行平均。例如,42 个样本的连续帧数据从一个块中输出。除了帧数据,还有另一个输出(标签),它告诉这些帧/样本属于哪个类别。标签是从 1 到 6 的数字。输出是随机的。我想平均相同的类别数据。就像第一帧是 cat1 一样,然后在 4 帧之后 cat1 帧又来了。现在我应该如何平均这个新帧与前一个帧?我想对所有类别都这样做。请帮帮我。

【问题讨论】:

    标签: matlab signal-processing simulink


    【解决方案1】:

    一个快速而肮脏的解决方案是为每个类别实现一个数组列表。用 NaN 初始化列表,并为每个类别的最后一个样本保留一个计数器。使用均值函数,您可以获得所有测量值的平均值。

    如果您只想要当前帧和前一帧的平均值,您可以简单地执行 mean([cat1(n1) cat1(n1+1)]) 其中 cat1 是来自类别 1 的帧的数组列表, n1 是 cat1 中前一帧的索引。

    如果您想要“实时”实现的加权移动平均值,请为每个类别创建一个平均变量(称为 av1、av2 等)并计算 av1 = alpha*av1 + (1-alpha)*cat1(n1+1)(其中 alpha 是分配给前一个类别的权重平均(alpha

    【讨论】:

    • 但是如果我在Matlab S-Function里面初始化数组,那么每次进入函数数组都会重新初始化?它不会保留以前的值。我正在尝试在 Dwork 上工作,我认为这可能会有所帮助。有什么建议吗?
    猜你喜欢
    • 2019-11-06
    • 2021-03-02
    • 2015-04-14
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 2018-10-20
    相关资源
    最近更新 更多