有人可以解释一下这段代码吗

时间:2018-07-13 20:23:57

标签: matlab

我找到了此页面(How to capture raw IQ data from a RTL-SDR dongle and FM demodulate with MATLAB),如果可能,我希望有人为我详细解释代码。

这是代码:

function y = loadFile(filename)
%  y = loadFile(filename)
%
% reads  complex samples from the rtlsdr file
fid = fopen(filename,'rb');
y = fread(fid,'uint8=>double');
y = y-127.5;
y = y(1:2:end) + i*y(2:2:end);

1 个答案:

答案 0 :(得分:0)

fid = fopen(filename,'rb');
y = fread(fid,'uint8=>double');

此功能以读取(二进制)模式打开文件,然后读取包含uint8数据的文件,并使其像是double数据。

y = y-127.5;

对于数组中的每个数据,将该值减小127.5。

y = y(1:2:end) + i*y(2:2:end);

现在将数组中的每两个跟随数字取一个,并使其成为一个复杂值,例如:

y = [1, 2, 3, 4, 5, 6]
y = y(1:2:end) + i*y(2:2:end);
% Result: y = [1 + 2i, 3 + 4i, 5 + 6i]