本发明涉及计算机应用领域,尤其是一种离散数据集的插值数据计算与读取方法、系统及存储介质。
背景技术:
在工程测量、科学实验、信号处理、图像处理、计算机仿真等领域,所得到的数据通常是离散的,要得到这些离散点以外的其他点的数值,就需要根据已知的数据进行插值。例如,目前需要绘制某地区某时刻的降雨区域分布图,降雨量的原始数据由地面自动气象观测站测得。各地面自动气象观测站只能测出所在地点的降雨量,但分布图需要显示的是连续的降雨区域,所以其需要通过插值来获得其他未测量地点的降雨量。地面自动气象观测站的数量是有限的,而在实际应用中往往要求显示实时降雨分布,这就对插值算法的计算效率提出了较高的要求。为此,业内一般采用计算机程序代替人工来完成离散数据点的插值计算。然而,目前采用计算机程序的离散数据点插值方法在输入的离散数据点增加时,其所占用的内存也会随之增加,这将无疑会增加插值计算的成本和降低计算机的性能。
技术实现要素:
为解决上述技术问题,本发明实施例的目的在于:提供一种离散数据集的插值数据计算与读取方法、系统及存储介质。
本发明实施例一方面所采取的技术方案是:
一种离散数据集的插值数据计算与读取方法,包括以下步骤:
输入离散数据集,所述离散数据集包含有若干个元素,每个元素通过由位置和数值组成的键值对进行表示;
构建数值累计数组和落点统计数组,所述数值累计数组的大小和落点统计数组的大小均为预设值;
通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组;
对统计后的数值累计数组和统计后的落点统计数组进行低通滤波;
将低通滤波后的数值累计数组中元素除以低通滤波后的落点统计数组中元素,得到插值结果数组;
从插值结果数组中读取插值结果。
进一步,所述通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组这一步骤,具体包括:
确定离散数据集中每个元素各个维度的位置坐标的数值范围;
根据确定的数值范围,将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到线性映射后的坐标结果;
根据线性映射后的坐标结果,确定离散数据集中每个元素分别在数值累计数组元素和落点统计数组元素上的亚像素级别的权值;
根据确定的权值,将离散数据集的各个元素分别向数值累计数组和落点统计数组进行亚像素级的数值累加投影和落点计数累加投影,得到统计后的数值累计数组和统计后的落点统计数组。
进一步,所述对统计后的数值累计数组和统计后的落点统计数组进行低通滤波这一步骤,具体包括:
对统计后的数值累计数组和统计后的落点统计数组分别进行傅里叶变换,得到数值累计数组的傅里叶变换结果和落点统计数组的傅里叶变换结果;
分别将数值累计数组的傅里叶变换结果和落点统计数组的傅里叶变换结果中的高频分量清除为0,得到数值累计数组滤波后的傅里叶变换结果和落点统计数组滤波后的傅里叶变换结果;
分别对数值累计数组滤波后的傅里叶变换结果和落点统计数组滤波后的傅里叶变换结果进行逆傅里叶变换,得到低通滤波后的数值累计数组和低通滤波后的落点统计数组。
进一步,所述从插值结果数组中读取插值结果这一步骤,具体包括:
以所要读取的坐标作为第一坐标,计算第一坐标在插值结果数组中的下标参考位置;
根据计算的下标参考位置从插值结果数组中取出对应的元素;
根据取出的元素计算第一坐标下的插值结果。
进一步,所述根据确定的数值范围,将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到线性映射后的坐标结果这一步骤,具体包括:
将离散数据集中第i个元素n个维度的位置分别线性映射至数值累计数组和落点统计数组的下标上,得到离散数据集中第i个元素线性映射后的坐标结果,所述离散数据集中第i个元素x(i)线性映射后的坐标结果pos(i)的表达式为:
其中,
进一步,所述根据线性映射后的坐标结果,确定离散数据集中每个元素分别在数值累计数组元素和落点统计数组元素上的亚像素级别的权值这一步骤,具体包括:
确定离散数据集中第i个元素分别在数值累计数组元素和落点统计数组元素上的亚像素级别的权值,所述确定的亚像素级别的权值的表达式为:
其中,π为连乘符号,w(i,i)为离散数据集的第i个元素x(i)在数组e上亚像素级别的权值,i为数组e的下标,e为数值累计数组或落点统计数组,
进一步,所述根据确定的权值,将离散数据集的各个元素分别向数值累计数组和落点统计数组进行亚像素级的数值累加投影和落点计数累加投影,得到统计后的数值累计数组和统计后的落点统计数组这一步骤,具体包括:
根据确定的权值,将离散数据集的各个元素向数值累计数组进行亚像素级的数值累加投影,得到统计后的数值累计数组,所述统计后的数值累计数组中元素的表达式为:
其中,
根据确定的权值,将离散数据集的各个元素向落点统计数组进行落点计数累加投影,得到统计后的落点统计数组,所述统计后的落点统计数组中元素的表达式为:
其中,
本发明实施例另一方面所采取的技术方案是:
一种离散数据集的插值数据计算与读取系统,包括:
输入模块,用于输入离散数据集,所述离散数据集包含有若干个元素,每个元素通过由位置和数值组成的键值对进行表示;
构建模块,用于构建数值累计数组和落点统计数组,所述数值累计数组的大小和落点统计数组的大小均为预设值;
映射模块,用于通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组;
低通滤波模块,用于对统计后的数值累计数组和统计后的落点统计数组进行低通滤波;
除法模块,用于将低通滤波后的数值累计数组中元素除以低通滤波后的落点统计数组中元素,得到插值结果数组;
读取模块,用于从插值结果数组中读取插值结果。
本发明实施例另一方面所采取的技术方案是:
一种离散数据集的插值数据计算与读取系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的离散数据集的插值数据计算与读取方法。
本发明实施例另一方面所采取的技术方案是:
一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于实现所述的离散数据集的插值数据计算与读取方法。
上述本发明实施例中的一个或多个技术方案具有如下优点:本发明实施例构建了大小均为预设值的数值累计数组和落点统计数组,然后通过累加投影的方式将输入的离散数据集中数据点的落点分布和数值信息记录于大小固定的数值累计数组和落点统计数组,使得插值计算所占用的内存空间为固定的值而不会随着输入离散数据点的增加而增加,降低了插值计算的成本和提升了计算机的性能。
附图说明
图1为本发明实施例提供的离散数据集的插值数据计算与读取方法的流程图;
图2a为本发明实施例第一个离散数据点投影后得到的落点统计数组示意图;
图2b为本发明实施例第一个离散数据点投影后得到的数值累计数组示意图;
图2c为本发明实施例第二个离散数据点投影后得到的落点统计数组示意图;
图2d为本发明实施例第二个离散数据点投影后得到的数值累计数组示意图;
图2e为本发明实施例第三个离散数据点投影后得到的落点统计数组示意图;
图2f为本发明实施例第三个离散数据点投影后得到的数值累计数组示意图;
图2g为本发明实施例第四个离散数据点投影后得到的落点统计数组示意图;
图2h为本发明实施例第四个离散数据点投影后得到的数值累计数组示意图;
图3为采用本发明的方法对户外无线基站信号覆盖强度样本数据进行低通滤波后得到的落点统计数组示意图;
图4为采用本发明的方法对户外无线基站信号覆盖强度样本数据进行低通滤波后得到的数值累加数组示意图;
图5采用本发明的方法对户外无线基站信号覆盖强度样本数据进行插值得到的插值结果数组示意图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
参照图1,本发明实施例提供了一种离散数据集的插值数据计算与读取方法,具体包括以下步骤:
s101、输入离散数据集,所述离散数据集包含有若干个元素,每个元素通过由位置和数值组成的键值对进行表示;
具体地,假设离散数据集x由k个离散数据点(即元素)组成,x的第i个元素记为带括号上标的x(i),则x={x(0),x(1),x(2),…,x(k-1)}。为了能进行插值,数据集x需要为非空,即k为大于1的正整数,i=0,1,2,……k-1。
本发明所针对的离散数据点(即源数据)采用位置-数值的格式进行表示,为了加快后续插值的速度,本实施例x的每个元素x(i)均以“键值对”的形式表示,即x(i)={key(i),vi}。其中,每个键key(i)为一个n维代表位置的实数,所有键的维度n相同,n>=1,而每个数值取值(即值)vi为一个实数,则x的第i个数据点(即元素)x(i)的格式为
例如,绘制某地区某时刻的降雨区域分布图时,可将各地面自动气象观测站的{经度,纬度}坐标作为“键”,将各地面站的降雨量作为“值”,然后对其进行插值,此时n=2。
s102、构建数值累计数组和落点统计数组,所述数值累计数组的大小和落点统计数组的大小均为预设值;
具体地,为了便于后续对步骤s101中的n维数据集x进行统计,本实施例创建了n维的数值累计数组a和落点统计数组b,并且将它们的所有元素的值初始化为0。a中的单个元素表示为ai,其中下标i={p0,p1,…,pn-1},a中第i维下标的取值范围表示为pi∈[0,dim(a,i)),其中括号[…)表示左边取闭区间,右边取开区间,且
s103、通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组;
如果直接通过数组或矩阵来记录离散数据集的数据信息,那么随着输入数据点的增加,数组或矩阵的大小也要增加,意味着其所占用的内存空间也要增加。为了通过内存占用空间固定的数值累计数组a和落点统计数组b记录输入的所有数据点信息,本实施例引入了“落点”和“投影累加”的概念。
以n=2为例,此时,数组a、数组b以及键都是二维的,开始时,数组a和数组b的所有元素都为0。此时,若输入的离散数据集中第一个离散数据点为(4,5,2),其中前两个数字4和5代表位置,2代表值,那么该离散数据点投影后得到的落点统计数组和数值累计数组分别如图2a和图2b所示。图2a将在第4列第5行位置的数组元素填写为1以记录该离散数据点的落点;图2b在第4列第5行位置的数组元素写上相应的值2以记录该离散数据点的数值;图2a和图2b中未填写内容的元素仍保持为0不变。若输入的离散数据集中第二个离散数据点为(7,8,9),则在图2a和图2b的基础上继续累加得到图2c和图2d的落点统计数组和数值累计数组。图2c则在图2a的基础上将第8列第9行位置的数组元素填写为1,而图2d则在图2b的基础上在第8列第9行位置的数组元素写上相应的值9。若输入的离散数据集中第三个离散数据点为(4,5,1),其位置与第一个离散数据点的位置相同只是数值不同,则落点时将图2c第4列第5行位置的数组元素在原来为1的基础上加1变为图2e的2;同时将图2d第4列第5行位置的数组元素原来的值2加上第三个离散数据点的值1变为图2f的3。同理,其他新的数据点可以通过上述类似的累加方式记录到数值累计数组a和落点统计数组b中。这样记录落点及其数值的方式,无论输入的数据点有多少,都只是改变数组a和b的数值,不会增大对存储空间的要求。
另外,考虑到通过数组的下标可以查找出对应的元素,本实施例通过将各个维度的位置依次线性映射至数组a和b的下标上,建立键值对中“键”与数组下标的关联,便于后续进行进一步的计算和数据信息读取操作。
s104、对统计后的数值累计数组和统计后的落点统计数组进行低通滤波;
具体地,对数值累计数组a和落点统计数组b使用滤波器分别进行n维低通滤波,并可将滤波结果记为a’和b’。其中,a’和b’的维度,以及各维度的下标规模应与a和b保持一致。a’和b’的各元素可为浮点值。
而低通滤波可选用的方法包括傅里叶变换、fir滤波器、iir滤波器等。
以n维低通滤波采用fir滤波器为例,n维度滤波可以直接使用n维的iir滤波器一次性完成,也可以通过合成的方法分别对不同维度方向、不同坐标平面或不同坐标组合进行滤波,最终合成n维低通滤波结果。
当a使用n维的fir滤波器时,b应该也使用同样的n维fir滤波器,而当a使用合成方法滤波时,b应使用与a相同的合成方法滤波。但是,如果能确保两种合成方式或某合成方式与n维滤波器等效,以上限制可以取消,此时a与b可以使用两种等效的方法滤波。
a和b各维度的滤波处理通带带宽可以不同:当带宽较宽时,插值的结果较为锐利,当带宽较窄则插值结果较为光滑,而且对于不同的维度方向,带宽可以根据数值的特点设置为不同,因此可以精细控制各维度的插值光滑度。但a与b所有对应的维度,如a第i维与b第i维的带宽应该一致。
s105、将低通滤波后的数值累计数组中元素除以低通滤波后的落点统计数组中元素,得到插值结果数组;
具体地,将低通滤波后的数值累计数组中每个元素除以低通滤波后的落点统计数组中对应元素,即可得到插值结果数组中对应元素,最终得到插值结果数组c,即有:
其中,
s106、从插值结果数组中读取插值结果。
从步骤s105和s106可知,本实施例只需要在所有数据输入后仅对数组a和b分别进行一次滤波,然后将滤波后的两个数组a’和b’中元素对应相除就能得到插值结果数组c,而后续的任意次取数过程只需要使用数组c而不需要进行再次滤波,所以取值的效率较高。
由上述内容可知,本发明通过累加投影的方式将输入的离散数据集中数据点的落点分布和数值信息记录于大小固定的数值累计数组和落点统计数组中,这样只要输入的数据点数量为有穷均可处理,不限制输入的数据点数量,在任意数据点数量下,对内存空间要求不变,能调整记录精度适应不同设备存储能力,能快速提取插值后结果,插值结果光滑,数学上支持任意维度数据。
进一步作为优选的实施方式,所述通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组这一步骤s103,具体包括:
s1031、确定离散数据集中每个元素各个维度的位置坐标的数值范围;
具体地,对于离散数据集x中第i个元素x(i),其在任一维度j下的坐标
其中,函数min表示从多个实数中取最小的数,而函数max表示从多个实数中取最大的数。无论是用户设定还是根据数据集推得,对于所有j,必须满足lb(j)<ub(j),否则该插值方法无效。
s1032、根据确定的数值范围,将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到线性映射后的坐标结果;
根据前面的描述可知,本实施例可通过线性映射建立离散数据集中每个元素的“键”(即位置)与数值累计数组a的下标和落点统计数组b的下标间的关联,以便于后续进行进一步的计算和数据信息读取操作。
具体地,离散数据集中第i个元素x(i)线性映射至数值累计数组a的坐标结果pos(i)的表达式为:
而离散数据集中第i个元素x(i)线性映射至落点统计数组b的坐标结果pos(i)的表达式为:
其中,
s1033、根据线性映射后的坐标结果,确定离散数据集中每个元素分别在数值累计数组元素和落点统计数组元素上的亚像素级别的权值;
该步骤可进一步细分为以下实现步骤:
s10331、构造函数
s10332、确定数值累计数组元素或落点统计数组下标i所有可取的值,若使用集合来表示则为:
s10333、计算第i个元素x(i)在数值累计数组元素和落点统计数组元素上的亚像素级别的权值w(i,i),具体为:
其中,u为i的隐含变量,
s10334、根据确定的权值,将离散数据集的各个元素分别向数值累计数组和落点统计数组进行亚像素级的数值累加投影和落点计数累加投影,得到统计后的数值累计数组和统计后的落点统计数组。
确定亚像素级别的权值w(i,i)后,可将离散数据集x的数据点x(0),x(1),x(2),…,x(k-1)(即元素x(i))依次分别向落点统计数组b进行亚像素级的数值累加投影,得到统计后的数值累计数组,x(i)的投影方式为:
上式的含义是:数组b在x(i)投影后元素值等于数组b在x(i)投影前元素值加上权值w(i,i)。通过在数组b内不断累加新数据点投影(即权值)的方式,最终可得到统计后的落点统计数组。
而确定亚像素级别的权值w(i,i)后,可将离散数据集x的数据点x(0),x(1),x(2),…,x(k-1)(即元素x(i))依次分别向数值累计数组a进行亚像素级的数值累加投影,得到统计后的数值累计数组,x(i)的投影方式为:
上式的含义是:数组a在x(i)投影后元素的数值等于x(i)的值与权值w(i,i)相乘的积加上数组a在x(i)投影前元素的数值。通过在数组a内不断累加新数据点投影(即新数据点与权值的积)的方式,最终可得到统计后的数值累计数组。
元素bi和元素ai的下标i相同,是因为对于离散数据集x的一个数据点而言,其映射至数组a和b的位置是相同的,只是具体存储的内容(即元素值)不同。
以图2d为投影前的数组b,图2e为投影前的数组a为例,若输入的离散数据集中第四个离散数据点为(1.2,1.3,1.5),由于位置1.2和1.3为非整数,故需要将权值分布到相邻最近的四个点(即位置为第1行的第1列和第2列以及第2行的第1列和第2列的元素)来记录。位置1.2和1.3的小数部分为0.2和0.3用于代入的权值w(i,i)计算公式计算出相应的w(i,i),具体有:
第1行的第1列元素的w(i,i)为:(1-0.2)×(1-0.3)=0.56
第1行的第2列元素的w(i,i)为:0.2×(1-0.3)=0.14
第2行的第1列元素的w(i,i)为:(1-0.2)×0.3=0.24
第2行的第2列元素的w(i,i)为:0.2×0.3=0.06
而投影前这四个点的bi为0,则投影后这四个点的元素值等于亚像素级别的权值w(i,i),故投影后的数组b如图2g所示。
同理,投影前这四个点的ai为0,则投影后这四个点的元素值等于亚像素级别的权值w(i,i)与数值1.5的乘积,具体有:
第1的第1列元素投影后的值为:0.56×1.5=0.84
第1的第2列元素投影后的值为:0.14×1.5=0.21
第2行的第1列元素投影后的值为:0.24×1.5=0.36
第2行的第2列元素投影后的值为:0.06×1.5=0.09
故根据上述计算结果可得到图2h所示投影后的数组a。
由上述内容可见,为了应对离散数据集中数据点的位置和值可能会出现非整数的情况,本实施例引入了亚像素级别的权值来配合累加投影的方式将小数通过近邻的若干个整数位置元素的值表示出来,从而适应了更多类型数据的插值要求,适用性更广。
进一步作为优选的实施方式,所述对统计后的数值累计数组和统计后的落点统计数组进行低通滤波这一步骤s106,具体包括:
s1061、对统计后的数值累计数组和统计后的落点统计数组分别进行傅里叶变换,得到数值累计数组的傅里叶变换结果和落点统计数组的傅里叶变换结果;
s1062、分别将数值累计数组的傅里叶变换结果和落点统计数组的傅里叶变换结果中的高频分量清除为0,得到数值累计数组滤波后的傅里叶变换结果和落点统计数组滤波后的傅里叶变换结果;
s1063、分别对数值累计数组滤波后的傅里叶变换结果和落点统计数组滤波后的傅里叶变换结果进行逆傅里叶变换,得到低通滤波后的数值累计数组和低通滤波后的落点统计数组。
本实施例通过傅里叶变换对统计后的数值累计数组和统计后的落点统计数组进行低通滤波,具有逆变换容易求取、易于通过计算机来实现、速度快等优点。
进一步作为优选的实施方式,所述从插值结果数组中读取插值结果这一步骤s106,具体包括:
s1061、以所要读取的坐标作为第一坐标,计算第一坐标在插值结果数组中的下标参考位置;
根据前面的论述可知,dim(a,i)=dim(c,i)。而将所要求取值的坐标g代入pos(i)的表达式,则可计算其在插值结果数组c中的下标参考位置posg:
s1062、根据计算的下标参考位置从插值结果数组中取出对应的元素;
具体地,根据下标参考位置posg可从插值结果数组c中取出对应元素{ch},以便于进一步计算坐标g下的插值结果。其中
s1063、根据取出的元素计算第一坐标下的插值结果。
具体地,可将h代入亚像素级别的权值w(i,i)表达式,得到对应的权值w(h,i),再计算坐标g下的插值结果g,g的具体计算方式为:
综上所述,本实施例的插值数据计算与读取方法具有以下优点:
(1)占用的内存空间固定
本实施例所有数据点的分布以及数值信息均记录在空间大小固定的数组a和b中,所以其内存占用空间并不随着输入数据点的增加而改变,这是传统插值系统难以做到的。
(2)节省内存空间
不同于传统插值方式,在本实施例所述的插值计算过程中,各个数据点可以串行输入,并且不需要在运行时一次性储存在内存中,节省了空间的占用。
(3)内存占用空间可根据设备能力调整
本实施例在设计时要求的内存占用空间相对宽松,当设备可用内存较少时,可以通过降低数组a和b的各维度的下标规模来进行适配。只要符合拟合精细度需求,本实施例可使用较小的下标规模实现与使用较大下标规模基本一致的插值结果。
(4)插值光滑度可精细调整
在本实施例所述的插值数据计算过程中,低通滤波时的带宽可以根据实际需要来设定,当带宽较宽时,插值的结果较为锐利,当带宽较窄则插值结果较为光滑,而且对于不同的维度方向,带宽可以根据数值的特点设置为不同,因此本实施例可以精细控制各维度的插值光滑度。
(5)只需通过一次预计算就能进行任意次快速取值
在本发明所述的插值数据计算过程中,只需要在所有数据输入后仅对数组a和b分别进行一次滤波,然后相除就能得到插值结果数组c,而后续的任意次取数过程只需要使用数组c而不需要进行再次滤波,所以本实施例取值的效率较高。
(6)采用本实施例的方法进行插值后,原来所有离散数据点的间隙区域均能按照附近的数据点进行合理填充,在实际工程中能较好地还原实际情况。
(7)本实施例的插值数据计算与读取方法具有可推广性,不仅可用于处理二、三维数据,在计算机内存容量允许的前提下,还可以处理任意维度的数据。
(8)低通滤波可采用fir滤波器、傅里叶变换等方式,这些滤波方式均有现成的并行化方法,而取数时,插值结果数组c为只读,不需要考虑同步原子性问题,可以多个点一起取而不产生冲突。所以本实施例的方法在实现时易于进行并行化处理,提高了效率。
本实施例的方法除了适用于绘制降雨区域分布图之外,还可以应用于任何源数据格式为位置-数值的离散数据插值应用场合中。例如,测量一座山各个位置的海拔,实际上不可能把所有位置的高度都测到,只能选择一些地点来测,测完后把这些点通过本实施例的插值数据计算方法还原出原来山的地形,那么数值累计矩阵就记录了各点测得的海拔,落点统计矩阵就记录了各测量点的经纬度(即位置)。
又如,在估测户外无线基站信号覆盖强度的应用中,假设用坐标(x,y)表示一块10km*10km大小的平地的位置,用坐标z表示在(x,y)位置上的信号强度,即综合起来使用{{x,y},z}表示一组位置与信号强度信息。若要进行密集的网格化测量,工作量太大,但人力有限,所以只能在少数地点进行抽样测定。假设已测得的数据样本有:
x={{{8,2},0.25},{{0,8},1.5},{{6,3},2.25},{{0,9},.5},{{3,2},.5},{{2,6},.75}}
则采用本实施例的插值数据计算方法对这些样本进行处理后得到的数值累计数组a'、落点统计数组b'和插值结果数组c分别如图3、图4和图5所示。在该例子中,采用了二维正态分布函数作为fir滤波器的卷积核以对原数组a和b进行低通滤波。图3、图4和图5中,用等高线来直观和方便地表示出数组a',b'与c各元素的取值,x、y和z坐标为源数据x的坐标,a',b'与c的数组下标坐标并未重叠直接标记在数轴上,但可以通过将x和y坐标的数值乘以10看出各位置的数组下标;而z值则没有变化,对a,a',b,b'和c均通用。图4中的实心原点为样本的落点记录,而这些样本的落点无重复,所以其所有落点的z轴坐标均为1。
与图1的方法相对应,本发明实施例还提供了一种离散数据集的插值数据计算与读取系统,包括:
输入模块,用于输入离散数据集,所述离散数据集包含有若干个元素,每个元素通过由位置和数值组成的键值对进行表示;
构建模块,用于构建数值累计数组和落点统计数组,所述数值累计数组的大小和落点统计数组的大小均为预设值;
映射模块,用于通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组;
低通滤波模块,用于对统计后的数值累计数组和统计后的落点统计数组进行低通滤波;
除法模块,用于将低通滤波后的数值累计数组中元素除以低通滤波后的落点统计数组中元素,得到插值结果数组;
读取模块,用于从插值结果数组中读取插值结果。
与图1的方法相对应,本发明实施例还提供了一种离散数据集的插值数据计算与读取系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的离散数据集的插值数据计算与读取方法。
本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于实现所述的离散数据集的插值数据计算与读取方法。
上述方法实施例中的内容均适用于本系统及存储介质实施例中,本系统及存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
1.一种离散数据集的插值数据计算与读取方法,其特征在于:包括以下步骤:
输入离散数据集,所述离散数据集包含有若干个元素,每个元素通过由位置和数值组成的键值对进行表示;
构建数值累计数组和落点统计数组,所述数值累计数组的大小和落点统计数组的大小均为预设值;
通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组;
对统计后的数值累计数组和统计后的落点统计数组进行低通滤波;
将低通滤波后的数值累计数组中元素除以低通滤波后的落点统计数组中元素,得到插值结果数组;
从插值结果数组中读取插值结果。
2.根据权利要求1所述的离散数据集的插值数据计算与读取方法,其特征在于:所述通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组这一步骤,具体包括:
确定离散数据集中每个元素各个维度的位置坐标的数值范围;
根据确定的数值范围,将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到线性映射后的坐标结果;
根据线性映射后的坐标结果,确定离散数据集中每个元素分别在数值累计数组元素和落点统计数组元素上的亚像素级别的权值;
根据确定的权值,将离散数据集的各个元素分别向数值累计数组和落点统计数组进行亚像素级的数值累加投影和落点计数累加投影,得到统计后的数值累计数组和统计后的落点统计数组。
3.根据权利要求1所述的离散数据集的插值数据计算与读取方法,其特征在于:所述对统计后的数值累计数组和统计后的落点统计数组进行低通滤波这一步骤,具体包括:
对统计后的数值累计数组和统计后的落点统计数组分别进行傅里叶变换,得到数值累计数组的傅里叶变换结果和落点统计数组的傅里叶变换结果;
分别将数值累计数组的傅里叶变换结果和落点统计数组的傅里叶变换结果中的高频分量清除为0,得到数值累计数组滤波后的傅里叶变换结果和落点统计数组滤波后的傅里叶变换结果;
分别对数值累计数组滤波后的傅里叶变换结果和落点统计数组滤波后的傅里叶变换结果进行逆傅里叶变换,得到低通滤波后的数值累计数组和低通滤波后的落点统计数组。
4.根据权利要求1所述的离散数据集的插值数据计算与读取方法,其特征在于:所述从插值结果数组中读取插值结果这一步骤,具体包括:
以所要读取的坐标作为第一坐标,计算第一坐标在插值结果数组中的下标参考位置;
根据计算的下标参考位置从插值结果数组中取出对应的元素;
根据取出的元素计算第一坐标下的插值结果。
5.根据权利要求2所述的离散数据集的插值数据计算与读取方法,其特征在于:所述根据确定的数值范围,将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到线性映射后的坐标结果这一步骤,具体包括:
将离散数据集中第i个元素n个维度的位置分别线性映射至数值累计数组和落点统计数组的下标上,得到离散数据集中第i个元素线性映射后的坐标结果,所述离散数据集中第i个元素x(i)线性映射后的坐标结果pos(i)的表达式为:
其中,
6.根据权利要求2所述的离散数据集的插值数据计算与读取方法,其特征在于:所述根据线性映射后的坐标结果,确定离散数据集中每个元素分别在数值累计数组元素和落点统计数组元素上的亚像素级别的权值这一步骤,具体包括:
确定离散数据集中第i个元素分别在数值累计数组元素和落点统计数组元素上的亚像素级别的权值,所述确定的亚像素级别的权值的表达式为:
其中,π为连乘符号,w(i,i)为离散数据集的第i个元素x(i)在数组e上亚像素级别的权值,i为数组e的下标,e为数值累计数组或落点统计数组,
7.根据权利要求2所述的离散数据集的插值数据计算与读取方法,其特征在于:所述根据确定的权值,将离散数据集的各个元素分别向数值累计数组和落点统计数组进行亚像素级的数值累加投影和落点计数累加投影,得到统计后的数值累计数组和统计后的落点统计数组这一步骤,具体包括:
根据确定的权值,将离散数据集的各个元素向数值累计数组进行亚像素级的数值累加投影,得到统计后的数值累计数组,所述统计后的数值累计数组中元素的表达式为:
其中,
根据确定的权值,将离散数据集的各个元素向落点统计数组进行落点计数累加投影,得到统计后的落点统计数组,所述统计后的落点统计数组中元素的表达式为:
其中,
8.一种离散数据集的插值数据计算与读取系统,其特征在于:包括:
输入模块,用于输入离散数据集,所述离散数据集包含有若干个元素,每个元素通过由位置和数值组成的键值对进行表示;
构建模块,用于构建数值累计数组和落点统计数组,所述数值累计数组的大小和落点统计数组的大小均为预设值;
映射模块,用于通过累加投影的方式依次将离散数据集中每个元素各个维度的位置依次线性映射至数值累计数组的下标和落点统计数组的下标上,得到统计后的数值累计数组和统计后的落点统计数组;
低通滤波模块,用于对统计后的数值累计数组和统计后的落点统计数组进行低通滤波;
除法模块,用于将低通滤波后的数值累计数组中元素除以低通滤波后的落点统计数组中元素,得到插值结果数组;
读取模块,用于从插值结果数组中读取插值结果。
9.一种离散数据集的插值数据计算与读取系统,其特征在于:包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-7任一项所述的离散数据集的插值数据计算与读取方法。
10.一种存储介质,其中存储有处理器可执行的指令,其特征在于:所述处理器可执行的指令在由处理器执行时用于实现如权利要求1-7任一项所述的离散数据集的插值数据计算与读取方法。
技术总结