以下matlab函数对编码的信号进行解码:
% Method : DeltaCompression
% Description : Decode delta compressed signal
%
function data = DeltaCompression(file, data)
if ftell(file) == -1
data.Time = [];
data.Signal = [];
return;
else
fseek(file, 0, 'eof');
stop = ftell(file);
fseek(file, data.DataOffset, 'bof');
start = ftell(file);
end
signal = zeros(round((stop-start)/2), 1);
buffer = zeros(4, 1);
index = 1;
while ftell(file) < stop
buffer(1) = fread(file, 1, 'int16', 'b');
buffer(2) = buffer(4);
if bitshift(buffer(1), 12, 'int16') == 0
signal(index:end) = [];
break
end
for i = 1:bitand(buffer(1), 4095, 'int16');
buffer(3) = fread(file, 1, 'int16', 'b');
if buffer(3) ~= -32768
buffer(2) = buffer(2) + buffer(3);
else
buffer(2) = fread(file, 1, 'int32', 'b');
end
signal(index) = buffer(2);
index = index + 1;
end
buffer(4) = buffer(2);
end
我正在尝试将这些代码移植到python。下面是一个工作示例:
^{pr2}$我在试着解码delta编码的数据。我几乎确定delta解压应该可以工作,但我不确定我是否正确地解析了二进制文件。 以下是指向二进制文件的链接:https://www.dropbox.com/s/b7p3l2wn2iaen5z/VWD1A.ch?dl=0
matlab函数做了一些我不理解的奇怪的事情。你能给我解释一下matlab函数在做什么吗?我应该从哪里开始把它移植到python(我对matlab一无所知)?在
以下是预期结果的图片(我现在不介意轴的值,我只想看到这一个峰值):
目前没有回答
相关问题 更多 >
编程相关推荐