本文算法作为《数据归一化及其还原》算法的预备阶段,对拿到的浮点数据整理为带符号整数。
就数据精度而言,作者认为该数据样本小数点右侧第三位以后的数据不再有效,可以舍弃。
测试数据来自MIT-BIH数据库,其数据的下载和归档工作,参考CSDN作者晨宇思远的博文:
链接地址为:http://blog.csdn.net/chenyusiyuan/article/details/2027887
% 函数:数据归一化前的预处理
% 此函数只负责将原数据整理为整数
function [data1, f_multiple] = PreProData( data )
data_z = fix(data); % 整数部分
data_r = data - data_z; % 小数部分
A = size(data); % data的行、列数
B = zeros(A(1), A(2)); % 与data同行列的0向量
% 原数据本身就是整数记录的
if isequal( mod(data*10,1), B)
data1 = data;
f_multiple = 1;
end
% 原数据是以小数记录的,需要根据其精度进行区别并处理
if isequal( mod(data_r*10,1), B) % data只有一位小数
f_multiple =10;
data1 = data*10;
else if isequal( mod(data_r*100,1), B) % data*100 为整数
f_multiple =100;
data1 = data*100;
else if isequal( mod(data_r*1000,1), B) % data*1000 为整数
f_multiple =1000;
data1 = data*1000;
else
f_multiple = 1000; % 更高精度的小数
data1 = fix(data*1000); % 只取到小数后第三位
end
end
end
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
disp('将原数据整理为整数,数据预处理完成!');
程序代码以Matlab源语描述,程序可在R2006a、R2008a上正确运算。