2018-03-30 08:33:11 +00:00
|
|
|
% Usage: read_complex_binary (filename, [count], [start_sample])
|
2018-01-23 16:36:32 +00:00
|
|
|
%
|
2018-03-30 08:33:11 +00:00
|
|
|
% Opens filename and returns the contents as a column vector,
|
|
|
|
% treating them as 32 bit complex numbers
|
2018-01-23 16:36:32 +00:00
|
|
|
%
|
2018-03-30 08:33:11 +00:00
|
|
|
|
|
|
|
% -------------------------------------------------------------------------
|
|
|
|
%
|
2020-12-30 12:35:06 +00:00
|
|
|
% GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
2018-03-30 08:33:11 +00:00
|
|
|
% This file is part of GNSS-SDR.
|
2018-01-23 16:36:32 +00:00
|
|
|
%
|
2020-12-30 12:35:06 +00:00
|
|
|
% Copyright (C) 2010-2019 (see AUTHORS file for a list of contributors)
|
2020-02-08 00:20:02 +00:00
|
|
|
% SPDX-License-Identifier: GPL-3.0-or-later
|
2018-03-30 08:33:11 +00:00
|
|
|
%
|
|
|
|
% -------------------------------------------------------------------------
|
2018-01-23 16:36:32 +00:00
|
|
|
%
|
|
|
|
|
|
|
|
function v = read_complex_binary (filename, count, start_sample)
|
|
|
|
|
2018-03-30 08:33:11 +00:00
|
|
|
m = nargchk (1,2,nargin);
|
|
|
|
if (m)
|
2018-01-23 16:36:32 +00:00
|
|
|
%usage (m);
|
2018-03-30 08:33:11 +00:00
|
|
|
end
|
2018-01-23 16:36:32 +00:00
|
|
|
|
2018-03-30 08:33:11 +00:00
|
|
|
if (nargin < 2)
|
2018-01-23 16:36:32 +00:00
|
|
|
count = Inf;
|
|
|
|
start_sample=0;
|
2018-03-30 08:33:11 +00:00
|
|
|
end
|
2018-01-23 16:36:32 +00:00
|
|
|
|
2018-03-30 08:33:11 +00:00
|
|
|
if (nargin < 3)
|
2018-01-23 16:36:32 +00:00
|
|
|
start_sample=0;
|
2018-03-30 08:33:11 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
f = fopen (filename, 'rb');
|
|
|
|
if (f < 0)
|
2018-01-23 16:36:32 +00:00
|
|
|
v = 0;
|
2018-03-30 08:33:11 +00:00
|
|
|
else
|
2018-01-23 16:36:32 +00:00
|
|
|
if (start_sample>0)
|
|
|
|
bytes_per_sample=4;
|
|
|
|
fseek(f,start_sample*bytes_per_sample,'bof');
|
|
|
|
end
|
|
|
|
t = fread (f, [2, count], 'float');
|
|
|
|
fclose (f);
|
|
|
|
v = t(1,:) + t(2,:)*i;
|
|
|
|
[r, c] = size (v);
|
|
|
|
v = reshape (v, c, r);
|
2018-03-30 08:33:11 +00:00
|
|
|
end
|