2017-04-10 2 views
0

センサからデータを読み込むことを模倣するシミュレータを書きたいと思っています(シリアル通信)。以前に保存されたファイルからそれらを読み取ることを除きます。ロード機能を使用するとファイル全体を読み取るので、特定の頻度でロードされたファイルのベクトルをスキャンするループを使用することを考えました。今これは非常に速く、リアルタイムの読書のようには見えません。リアルタイムのストリーミングやデータ処理のように見えるように、ロードされたファイルの読み込み速度を遅く(おそらく固定された)周波数にするにはどうすればよいですか?リアルタイムデータストリーミングをシミュレートするMatlab

ありがとう

答えて

0

ファイル全体を読み込んだ後、フレームを取り出して計算を実行する必要があります。

ような何か:

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

私はすでにあなたが示唆したものを試してみましたが、私はデータをプロットするとき、それは非常に高速だとリアルタイムプロットに似ていません。これは、ループが非常に速く実行され、コードを実行するため、私は一時停止を使用しようとしたが、私は最小休止が0.001であると思うからです。私はまだそれを試している、私はそれが動作することを願っています。ありがとうございます – Isra

+0

MatlabのAudio System Toolboxにアクセスできますか?これは特にリアルタイム処理のために用意されています。関数 "step()"は、サンプリング周波数に応じてデータを読み書きできるようにします。つまり、アルゴリズムの処理時間が許せば、正確にリアルタイムに進むことができます。 – matiastofteby

+0

matiastiftebyいいえ私はそれを持っていませんが、私はMathworks.comから試験を見つけることができると確信しています。どうもありがとうございました! – Isra

関連する問題