2017-04-10 3 views
0

Ich möchte einen Simulator schreiben, der Lesen von Daten von Sensoren (serielle Kommunikation) imitieren wird, außer dass es aus einer Datei lesen wird, die zuvor gespeichert wurde.Ich weiß, dass, wenn ich die Ladefunktion verwendet Ich werde die ganze Datei lesen, also dachte ich mir eine Schleife, die den Vektor der geladenen Datei mit einer bestimmten Frequenz scannt. Jetzt wird das sehr schnell und es wird nicht wie in Echtzeit lesen. Wie kann ich die geladene Datei mit einer langsameren (möglicherweise festen) Frequenz lesen, damit sie so aussieht, als würde sie in Echtzeit streamen und die Daten verarbeiten?Simulieren Echtzeit-Daten-Streaming Matlab

Dank

Antwort

0

Sie sollten die ganze Datei laden und dann Rahmen herausziehen und führen Berechnungen auf diesen Rahmen.

Etwas wie:

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 

Hier ist ein Video, um es perfekt zu erklären: https://www.youtube.com/watch?v=wpXtsRpaLOA&t=944s

+0

ich schon versucht, was Sie vorgeschlagen, aber wenn ich die Daten plotten es ist sehr schnell und nicht in Echtzeit Plotten ähneln. Das liegt daran, dass die Schleife sehr schnell läuft und den Code ausführt, ich habe versucht, Pause zu verwenden, aber ich denke, die minimale Pause ist 0,001. Ich experimentiere immer noch daran, ich hoffe es funktioniert. Vielen Dank – Isra

+0

Haben Sie Zugriff auf die Audio System Toolbox in Matlab? Es ist speziell für die Echtzeitverarbeitung ausgelegt, wo Sie mit der Funktion "step()" Daten entsprechend Ihrer Abtastfrequenz ein- und auslesen können, d. H. Es ist möglich, genau in Echtzeit zu gehen, wenn Ihre Algorithmusverarbeitungszeit dies natürlich erlaubt. – matiastofteby

+0

matiastifteby Nein Ich habe es nicht, aber ich bin mir sicher, dass eine Testversion von Mathworks.com gefunden werden kann. Vielen Dank! – Isra