Matlab scripts useful for parsing the output from DataLog

parseLog.m parses DataLog files.
maxUnwrap.m unwraps number sequences, useful for unwrapping e.g. 
RTP timestamp sequences and RTP sequence numbers.
Review URL: http://webrtc-codereview.appspot.com/135006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@521 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
stefan@webrtc.org 2011-09-02 13:24:38 +00:00
parent 88a0da8fde
commit eb74a371c9
2 changed files with 70 additions and 0 deletions

25
tools/matlab/maxUnwrap.m Normal file
View File

@ -0,0 +1,25 @@
function sequence = maxUnwrap(sequence, max)
%
% sequence = maxUnwrap(sequence, max)
% Unwraps when a wrap around is detected.
%
% Arguments
%
% sequence: The vector to unwrap.
% max: The maximum value that the sequence can take,
% and after which it will wrap over to 0.
%
% Return value
%
% sequence: The unwrapped vector.
%
% Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
%
% Use of this source code is governed by a BSD-style license
% that can be found in the LICENSE file in the root of the source
% tree. An additional intellectual property rights grant can be found
% in the file PATENTS. All contributing project authors may
% be found in the AUTHORS file in the root of the source tree.
sequence = round((unwrap(2 * pi * sequence / max) * max) / (2 * pi));

45
tools/matlab/parseLog.m Normal file
View File

@ -0,0 +1,45 @@
function parsed = parseLog(filename)
%
% parsed = parseLog(filename)
% Parses a DataLog text file, with the filename specified in the string
% filename, into a struct with each column name as a field, and with the
% column data stored as a vector in that field.
%
% Arguments
%
% filename: A string with the name of the file to parse.
%
% Return value
%
% parsed: A struct containing each column parsed from the input file
% as a field and with the column data stored as a vector in that
% field.
%
% Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
%
% Use of this source code is governed by a BSD-style license
% that can be found in the LICENSE file in the root of the source
% tree. An additional intellectual property rights grant can be found
% in the file PATENTS. All contributing project authors may
% be found in the AUTHORS file in the root of the source tree.
table = importdata(filename, ',', 1);
parsed = struct;
i = 1;
while i <= length(table.colheaders)
% Checking for a multi-value column.
m = regexp(table.colheaders{i}, '([\w\t]+)\[(\d+)\]', 'tokens');
if ~isempty(m)
% Parse a multi-value column
n = str2double(m{1}{2}) - 1;
parsed.(strrep(m{1}{1}, ' ', '_')) = table.data(:, i:i+n);
i = i + n + 1;
elseif ~isempty(table.colheaders{i})
% Parse a single-value column
parsed.(strrep(table.colheaders{i}, ' ', '_')) = table.data(:, i);
i = i + 1;
else
error('Error: Empty column');
end
end