1
我有一個關於以八度爲單位的實時繪圖的問題。這個想法很簡單,但不幸的是我無法在互聯網上找到解決方案。在我的項目,我使用netcat
採樣數據和awk
對其進行過濾,例如:從命令行管道將數據饋送到八度圖中
nc 172.16.254.1 23 | awk ' /point/ '
就這樣,我得到一個新的數據點(大約)每4-10毫秒,加上時間戳。 現在我想將這些數據轉換爲八度並實時繪製。有沒有人有任何想法?
更新
在我看來,那
nc 172.16.254.1 23 | awk ' /point/ ' | octave --silent --persist --eval "sample(stdin)"
的數據管道到我的倍頻腳本sample
,這確實繪圖。但是現在仍然存在一個問題:重新繪圖的速度遠慢,並且在採樣數據期間減慢(我得到數千個數據點)。我有
function sample(stream)
t = NaN; r = NaN; k = 1;
figure(1)
plot(t,r,'o')
hold on
while(~feof(stream))
s = fgets(stream);
t(k) = str2double(s(1:6));
r(k) = str2double(s(8:11));
plot(t(k),r(k),'o')
drawnow()
k = k + 1;
end
我應該添加/更改什麼?