本发明涉及示波器技术领域,尤其涉及一种三维波形数据的显示方法。
背景技术:
现代高速数字技术的发展,对测试测量仪器性能的完善与更新提出了更高的要求,在数字示波器中,被测信号波形数据的处理与显示是其系统中的重要部分,如何在具有高带宽高实时采样率的同时拥有高效能的信号捕获,是现今数字示波器发展的主要方向。数字三维示波器是一种以高波形捕获(或显示刷新率)为基础的数字存储示波器,它不仅能够捕获和显示信号的时间—幅度事件信息,而且还能以不同的灰度和颜色显示不同事件出现的概率等级。每一个三维波形的信息都包括:时间、幅度和一定时间范围内信号在各个振幅上出现的频率(采样信号的统计信息)。数字三维示波器具有数字存储示波器的各种优点,此外还能以数字形式产生类似于模拟实时示波器亮度渐次变化的化学荧光效果。因此,需要一种三维波形数据的显示方法,以解决现有技术中存在的上述技术问题。
技术实现要素:
本发明提供一种三维波形数据的显示方法,能够直观实现三维波形数据的显示。
本发明采用的技术方案是:
一种三维波形数据的显示方法,其包括以下步骤:三维波形信息库建立步骤:建立三维波形信息库,新三维波形数据中的第mk+n个样点在所述三维波形 信息库中的映射地址为Amk+n=m*k+Xn,Xn=X0+n,X0为波形信息库的首地址,m=0,1,2,…,2d-1,n=0,1,2,…,k-1,其中Amk+n中对应的值为所述新三维波形数据中第mk+n个采样点的幅度样本值为m的命中次数;新三维波形数据形成步骤:根据所述三维波形信息库中采样点的次序,调整原始三维波形数据的顺序,形成所述新三维波形数据;颜色标尺列表构建步骤:为所述三维波形信息库构建颜色标尺列表;显示步骤:基于所述颜色标尺列表,采用不同的颜色显示所述映射地址中对应的值。
优选地,循环执行所述三维波形信息库建立步骤、所述新三维波形数据形成步骤、所述颜色标尺列表构建步骤和所述显示步骤,动态显示所述映射地址中对应的值。
优选地,所述为所述三维波形信息库构建颜色标尺列表,具体包括:设置多组颜色标尺刻度,每一组颜色标尺刻度包括该组颜色标尺刻度的显示颜色和对应该组颜色标尺刻度的数值区间,所述数值区间为所述命中次数的区间,以构建所述颜色标尺列表。
优选地,所述设置多组颜色标尺刻度,每一组颜色标尺刻度包括该组颜色标尺刻度的显示颜色,具体包括:采用同一颜色的不同亮度表示所述采样点的幅度样本值的命中次数;获取每一组颜色标尺刻度的显示颜色:colors[i].color=256/Ccolor*i,其中0<i<Ccolor,Ccolor为颜色标尺刻度的色度总量。
优选地,所述设置多组颜色标尺刻度,每一组颜色标尺刻度包括对应该组颜色标尺刻度的数值区间,所述数值区间为所述命中次数的区间,具体包括:计算所述数值区间的步进值:h=(Ldmax-Lsmin)/Ccolor,其中Ldmax为所述命中次数达到的预设基值Ldmax,当所述命中次数达到该预设基值时表示所述幅度样本值已被命中足够多次;获取每一组颜色标尺刻度的数值:colors[i].valDouble=Lsmin+h/Ccolor1/2*i1/2=Lsmin+(Ldmax-Lsmin)/Ccolor/Ccolor1/2*i1/2,0<i<Ccolor,Ccolor为颜色标尺刻度的色度总量。
优选地,所述基于所述颜色标尺列表,采用不同的颜色显示所述三维波形信息库中所述映射地址中对应的值,具体包括:根据所述三维波形信息库的容量,设置画布的布长和布宽;将所述颜色标尺列表和所述映射地址中对应的值输入绘图函数后,在所述画布上生成三维动态图像,以采用同一颜色的不同亮度动态显示所述映射地址中对应的值。
采用上述技术方案,本发明至少具有下列效果:
本发明提供的三维波形数据的显示方法通过三维波形的显示,可使数字示波器在具有高带宽高实时采样率的同时拥有高效能的信号捕获功能,不仅能够捕获和显示信号的时间-幅度事件信息,而且还以不同的灰度和颜色显示不同幅度样本值出现的概率等级,从而产生类似于模拟实时示波器亮度渐次变化的化学荧光效果。
附图说明
图1为本发明第一实施例的三维波形数据的显示方法的流程图;
图2为本发明第二实施例的三维波形数据的显示方法的流程图;
图3为本发明第三实施例的三维波形数据的显示方法的流程图;
图4为图1所示显示方法中建立的三维波形信息库的示意图;
图5为数学函数y=x1/2曲线的示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明提供的三维波形数据的显示方法可以实现三维波形数据的动态显示,下面将详细地描述本发明的三维波形数据的显示方法及其各个步骤。
第一实施例
如图1所示,本实施例的三维波形数据的显示方法,包括步骤10~40,详情 参见下面的描述。
三维波形信息库建立步骤S10:建立三维波形信息库,新三维波形数据中的第mk+n个样点在三维波形信息库中的映射地址为Amk+n=m*k+Xn,Xn=X0+n,X0为波形信息库的首地址,m=0,1,2,…,2d-1,n=0,1,2,…,k-1,其中Amk+n中对应的值为新三维波形数据中第mk+n个采样点的幅度样本值为m的命中次数。
如图4所示,假设数模转换电路ADC采集信号的垂直分辨率为dbit,一次采集的采样点数为k,那么每个采样点有h=2d个幅度样本值s0,s1,…,sh-1,sh-i=2d-i,1≤i≤h,则可用0~2d-1来表征幅值分量,用0~k-1来表征采样点数的分量,在每个分量上存放其对应时间点上压缩的所有样点,用一个2d×k的网格结构来模拟这个三维波形信息库如图4所示。
可以看出,三维波形信息库的容量大小为2d×k×(dbit/8),单位为字节。在建立三维波形信息库时,设三维波形信息库的首地址为X0,这样新三维波形数据中的第mk+n个样点在波形信息库中的映射地址为:Amk+n=m*k+Xn,Xn=X0+n,m=0,1,2,…,2d-1,n=0,1,2,…,k-1,其中Amk+n中对应的值就是新三维波形数据中第mk+n个采样点的幅度样本值为m的命中次数。
如图1所示,新三维波形数据形成步骤S20:根据三维波形信息库中采样点的次序,调整原始三维波形数据(ADC采集得到的)的顺序,形成新三维波形数据。将ADC高速采样得到的波形采样值经过多次映射,将多幅波形累加成为一幅包含输入信号的三维信息,即幅度、时间、幅度随时间变化关系的图像输出,得到原始三维波形数据。但是,这样输出的原始三维波形数据往往不是与上述三维波形信息库中采样点一一对应,故需要根据三维波形信息库中中采样点的次序,对原始三维波形数据进行调整,得到新三维波形数据,即长度为2d×k的一维数组。
如图1所示,颜色标尺列表构建步骤S30:为三维波形信息库构建颜色标尺列表。为三维波形信息库模型建立颜色标尺列表,颜色标尺至少包括两个随机刻度,每个刻度均包含数值和对应的显示颜色,强度图所显示的颜色与制定颜 色的数值一一对应,显示颜色由三原色(RGB)值来确定。本专利采用同一颜色的不同亮度来处理三维信息的显示,即颜色亮度越深就代表采样点在幅度值上出现的频率越大,颜色亮度越浅就代表采样点在幅度值上出现的频率越小。
如图1所示,显示步骤S40:基于颜色标尺列表,采用不同的颜色显示映射地址中对应的值。
作为优选的实施例,循环执行上述三维波形信息库建立步骤10、新三维波形数据形成步骤20、颜色标尺列表构建步骤30和显示步骤40,可以动态地显示三维波形信息库的映射地址中对应的值,从而实现三维波形数据的动态显示。
可以看出,本发明通过在LabWindows/CVI编程环境下调用强度图控件来完成色彩三维示波器中三维波形的动态显示。普通的波形图表、波形图和XY曲线图反映的是对应于X轴的Y值大小,用于描绘二维数据。而强度图反映的是对应于XY平面上各个点的数据值(Z值),输入强度图的数据类型为二维数组,数组的索引对应着强度图中XY平面各个点的坐标,数组的元素值在强度图中用颜色来表示。
第二实施例
如图2所示,本实施例在第一实施例的基础上,在颜色标尺列表构建步骤S30:为三维波形信息库构建颜色标尺列表,具体包括:步骤S300:设置多组颜色标尺刻度,每一组颜色标尺刻度包括该组颜色标尺刻度的显示颜色和对应该组刻度的数值区间,数值区间为命中次数的区间,以构建上述建颜色标尺列表。
作为优选地,步骤S300:设置多组颜色标尺刻度,每一组颜色标尺刻度包括该组颜色标尺刻度的显示颜色,具体包括:采用同一颜色的不同亮度表示采样点的幅度样本值的命中次数;获取每一组颜色标尺刻度的显示颜色为:colors[i].color=256/Ccolor*i,其中0<i<Ccolor,Ccolor为颜色标尺刻度的色度总量。
进一步地,步骤S300:设置多组颜色标尺刻度,每一组颜色标尺刻度包括对应该组颜色标尺刻度的数值区间,数值区间为命中次数的区间,具体包括:计算数值区间的步进值:h=(Ldmax-Lsmin)/Ccolor,其中Ldmax为命中次数达 到的预设基值Ldmax,当命中次数达到该预设基值时表示幅度样本值已被命中足够多次;获取每一组颜色标尺刻度的数值:colors[i].valDouble= Lsmin +h/Ccolor1/2* i1/2= Lsmin +(Ldmax-Lsmin)/ Ccolor/ Ccolor1/2* i1/2,0<i<Ccolor,Ccolor为颜色标尺刻度的色度总量。
颜色标尺刻度包含两个内容:该组颜色标尺刻度的显示颜色和对应该组颜色标尺刻度的数值区间,定义结构体ColorMapEntry如下:
假设绘制三维波形时可使用的色度总量为Ccolor,定义Ccolor个组的颜色标尺刻度,每组颜色标尺刻度包含显示颜色和数值区间两个参数,则用结构体数组color[i]表示每组颜色标尺刻度,colors[i].color表示该颜色标尺刻度的显示颜色,colors[i]. valDouble-colors[i-1].valDouble表示显示colors[i].color颜色的数值区间,即对应的命中次数区间。
假设三维波形在时刻T,样本幅度值A出现的次数为N(T,A),则查找颜色标尺列表,得到N(T,A)这个数值落在某一颜色标尺刻度的数值区间内,则该数值区间对应的显示颜色即为该次数N的显示颜色。
本实施例采用同一颜色的不同亮度来处理三维信息的显示,RGB24使用24位比特位表示一个像素点的色彩,红、绿、蓝各占8位(各颜色由浅入深均有00000000~11111111共256种),同一颜色可以得到256种不同亮度。故colors[i].color= 256/Ccolor*i,0<i<Ccolor,Ccolor为颜色标尺刻度的色度总量。
数字三维示波器通党具有较高的波形捕获率,它捕获到偶发信号的概率远比数字存储示波器高,故在将捕获到的偶发信号和重复周期性信号共同显示时,却由于偶发信号出现的概率远远低于周期性信号连续复现的概率,导致在这种 线性变化的标尺刻度档位下,用户将很难观察到颜色很浅的偶发信号波形,故需要对这种方法加以改进。
颜色标尺刻度的数值计算:在此之前,需要先测算一个步进值,提取波形信息库中对应幅度样本值出现的最大次数Lsmax、最小次数Lsmin(即采样点叠加深度的最大、最小值),根据绘制波形时可使用的颜色标尺刻度的色度总量Ccolor计算这个步进值h,计算出步进值h后,得出颜色标尺刻度的值。
首先定义幅度样本值的命中次数的显示范围,当命中次数达到某个基值
Ldmax时,表示该幅度样本值已被命中足够多次,颜色用最高亮度表示,不再加以区分,故步进值h可定义为:
h=(Ldmax-Lsmin)/Ccolor
然后,通过观察各种基本数学函数曲线,其中y=x1/2曲线最为接近三维示波器理论的颜色标尺定义,幅度样本值的命中次数较少时需要加深颜色显示,而幅度样本值的命中次数较为集中时则对颜色的分区更为简单。
故颜色标尺刻度的数值可定义为:colors[i].valDouble=Lsmin+h/Ccolor1/2*i1/2=Lsmin+(Ldmax-Lsmin)/Ccolor/Ccolor1/2*i1/2,0<i<Ccolor,Ccolor为颜色标尺刻度的色度总量。
第三实施例
如图3所示,显示步骤S40:基于颜色标尺列表,采用不同的颜色显示三维波形信息库中映射地址中对应的值,具体包括:步骤S400:根据三维波形信息库的容量,设置画布的布长和布宽。步骤S401:将颜色标尺列表和映射地址中对应的值输入绘图函数后,在画布上生成三维动态图像,以采用同一颜色的不同亮度显示映射地址中对应的值。
绘图时,先定义绘图画布的尺寸,根据三维波形信息库将画布的布长设置为k(k为一次采集的采样点数),宽为2d(ADC采集信号的垂直分辨率为dbit),再将读取的三维波形信息库中映射地址中对应的值和颜色标尺列表输入到绘图函数中即可完成绘图,从而完成一次三维波形显示。重新返回步骤S10,即可进 行下一次的三维波形绘制。绘图函数为Plotlntensity函数,通过绘图函数,可以通过同一颜色的不同亮度在画布上动态显示映射地址中对应的值。
应用实例
下面以垂直分辨率为8位的ADC信号采集为例,一次采集的采样点数为1040个,单幅三维波形的信息包含65536次信息的统计,详细描述8位ADC采集下三维波形显示方法中的各个步骤的具体实施方式:
建立三维波形信息库:ADC采集信号的垂直分辨率为8bit,一次采集的采样点数为1040,那么每个采样点有h=28个幅度样本值s0,s1,…,sh-1,s255-i=255-i,1≤i≤255,则可用0~255来表征幅值分量,用0~1039来表征采样点数的分量,每个分量都存放其对应时间点上压缩的所有样点,用一个256×1040的网格结构来模拟这个波形信息库即可。
可以看出,三维波形信息库的容量大小为256×1040,单位为字节。在建立三维波形信息库时,设三维波形信息库的首地址为X0,这样原始三维波形数据中的第1040*m+n个样点在三维波形信息库中的映射地址:A1040*m+n=1040*m+Xn,Xn=X0+n,m∈(0,255),n=0,1,2,…,1039,m=0,1,2,…,255。其中A1040*m+n中对应的值就是新三维波形数据中第1040*m+n个采样点的幅度样本值为m的命中次数。
接着,将ADC高速采样得到的波形采样值经过多次映射,将多幅波形累加成为一幅包含输入信号三维信息,即幅度、时间、幅度随时间变化关系的图像输出,得到原始三维波形数据。这样输出的原始三维波形数据却往往不是与三维波形信息库中采样点一一对应,故需要根据该三维波形信息库中采样点的次序,对原始三维波形数据进行调整,得到新三维波形数据,即长度为1040×256的一维数组。
然后,为三维波形信息库构建颜色标尺列表,颜色标尺至少包括两个随机刻度,每个刻度均包含数值和对应的显示颜色,强度图所显示的颜色与对应颜色的数值一一对应,显示颜色由三原色(RGB)值来确定。本专利采用同一颜色的 不同亮度来处理三维信息的显示,即颜色亮度越深就代表采样点在幅度样本值上出现的频率越大,颜色亮度越浅就代表采样点在幅度样本值上出现的频率越小。
颜色标尺刻度的定义包含两个内容:该组颜色标尺刻度的显示颜色和对应该颜色标尺刻度的数值范围,定义结构体ColorMapEntry如下:
假设绘制波形时可使用的色度总量为Ccolor=10,定义10组颜色标尺刻度,每组颜色标尺刻度包含显示颜色和数值区间两个参数,则用结构体数组color[i]表示每组颜色标尺刻度,colors[i].color表示该颜色标尺刻度的显示颜色,colors[i].valDouble-colors[i-1].valDouble表示显示colors[i].color颜色的数值区间,即对应的命中次数区间。
假设波形在时刻T,样本幅度值A出现的次数为N(T,A),则查找颜色标尺列表,得到N(T,A)这个数值落在某一颜色标尺刻度的数值区间内,则该数值区间对应的显示颜色即为该次数N的显示颜色。
本实施例采用同一颜色的256种不同亮度来处理三维信息的显示,故colors[i].color=256/Ccolor*i,0<i<Ccolor,Ccolor为标尺刻度总量。
颜色标尺刻度的数值计算:首先定义命中次数的显示范围,当命中次数达到某个基值Ldmax=40000次时,表示该幅度样本值已被命中足够多次,颜色用最高亮度表示,不再加以区分,故步进值h可定义为:
h=(Ldmax-Lsmin)/Ccolor/Ccolor1/2=(40000-0)/10/101/2=1264.91
colors[i].valDouble=Lsmin+h*i1/2=Lsmin+(Ldmax-Lsmin)/Ccolor*i1/2=1264.91*i1/2,0<i<Ccolor,Ccolor为颜色标尺刻度的色度总量。
最后,进行绘图,先定义绘图画布的尺寸,根据三维波形信息库将画布的布长设置为1040(一次采集的采样点数),宽为256(ADC采集信号的垂直分辨率为8bit),再将读取的三维波形信息库中映射地址中对应的值和颜色标尺列表输入到绘图函数中即可完成绘图,由此完成单次三维波形的显示。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。