【问题标题】:simulating realtime data streaming Matlab模拟实时数据流 Matlab
【发布时间】:2017-04-10 05:21:16
【问题描述】:

我想编写一个模拟器来模拟从传感器(串行通信)读取数据,除了它将从以前保存的文件中读取它们。我知道如果我使用加载功能,它将读取整个文件,所以我想到了使用一个循环,它会以一定的频率扫描加载文件的向量。现在这将非常快,并且看起来不像实时阅读。如何让它以较慢(可能是固定的)频率读取加载的文件,以使其看起来像实时流式传输和处理数据?

谢谢

【问题讨论】:

    标签: matlab simulation


    【解决方案1】:

    您应该加载整个文件,然后拉出帧并对这些帧进行计算。

    类似:

    load('sensordata');
    
    framelength = 1024; % Datapoints
    Fs = 48000; % 48kHz
    frame_duration = 0.01;
    frame_length = frame_duration*Fs;
    N = length(sensordata);
    num_frames = floor(N/frame_length);
    
    
    for i = 1:num_frames
      frame = sensordata((i-1)*frame_length+1:frame_length*i);
      %% Do actions here
    
    end
    

    这是一个完美解释它的视频:https://www.youtube.com/watch?v=wpXtsRpaLOA&t=944s

    【讨论】:

    • 我已经尝试了你的建议,但是当我绘制数据时它非常快并且不像实时绘图。这是因为循环将运行得非常快并执行代码,我尝试使用暂停但我认为最小暂停是 0.001。我还在尝试它,我希望它有效。非常感谢
    • 您可以访问 Matlab 中的音频系统工具箱吗?它专为实时处理而设计,其中函数“step()”可让您根据采样频率读取和读取数据,即如果您的算法处理时间当然允许,则可以精确地实时进行。
    • matiastifteby 不,我没有,但我确信可以从 Mathworks.com 找到试用版。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 2011-12-24
    • 2013-11-03
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 2010-12-03
    • 2020-10-09
    相关资源
    最近更新 更多