当前位置:首页 » 存储配置 » pts存储

pts存储

发布时间: 2022-07-16 19:05:50

A. 存储深度对示波器的影响到底有多大

得益于电子技术的发展,在国外三巨头垄断的示波器领域,国产示波器也如雨后春笋般涌现出来,优秀国产示波器的代表:鼎阳(Siglent)科技和北京普源精电,如今得到了长足的发展,但由于信号传输的链路瓶颈以及IC封锁,夹缝中生长的国产示波器注定暂时只能走低端路线,这导致了国产示波器同质化比较严重、各厂家生产的示波器性能跟质量参差不齐。放眼望去,外观乃至界面各厂商都一致地采用所谓的“主流”操作方式,而作为衡量示波器的技术指标,工程师更多地考虑那些出现在产品手册和杂志广告的标题中列出的技术指标,在这些主要的技术指标中,众所周知的是带宽、采样率和存储深度。诚然带宽指标理所当然非常重要。带宽决定示波器对信号的基本测量能力。随着信号频率的增加,示波器对信号的准确显示能力将下降。如果没有足够的带宽,示波器将无法分辨高频变化。幅度将出现失真,边缘将会消失,细节数据将被丢失。如果没有足够的带宽,得到的关于信号的所有特性,响铃和振鸣等都毫无意义。本规格指出示波器所能准确测量的频率范围。每位工程师都足够重视带宽对测量的影响,所以大家都遵循测量的五倍法则:示波器所需带宽=被测信号的最高信号频率*5,使用五倍准则选定的示波器的测量误差将不会超过+/-2%,对大多的操作来说已经足够。关于采样率,指数字示波器对信号采样的频率,类似于电影摄影机中的帧的概念。示波器的采样速率越快,所显示的波形的分辨率和清晰度就越高,重要信息和事件丢失的概率就越小,信号重建时也就越真实。采样率又分为实时采样率跟等效采样率,我们平常所说的采样率是指实时采样率,这是因为实时采样率可以用来实时地捕获非周期异常信号,而等效采样率则只能用于采集周期性的稳定信号。 存储深度虽然也作为重要指标之一,但在衡量示波器时候却往往忽略它的重要性,一直以来都把它作为一个“次要”指标看待,并不是很清楚大的存储深度对于测量有什么影响,再加上有些示波器厂家对“存储深度”的误导,同时存储深度跟采样率的隐藏关联关系,导致存储深度处于一个形同虚设的指标,为了纠正这些误解,下面跟大家一起探讨什么是存储深度?大的存储深度对测量有什么影响? 何谓存储深度存储深度是示波器所能存储的采样点多少的量度。如果您需要不间断的捕捉一个脉冲串,则要求示波器有足够的存储器以便捕捉整个事件。将所要捕捉的时间长度除以精确重现信号所须的取样速度,可以计算出所要求的存储深度,也称记录长度。并不是有些国内二流厂商对外宣称的“存储深度是指波形录制时所能录制的波形最长记录“,这样的偷换概念,完全向相反方向引导人们的理解,难怪乎其技术指标高达”1042K“的记录长度。这就是为什么他们不说存储深度是在高速采样下,一次实时采集波形所能存储的波形点数。把经过A/D数字化后的八位二进制波形信息存储到示波器的高速CMOS内存中,就是示波器的存储,这个过程是“写过程”。内存的容量(存储深度)是很重要的。对于DSO,其最大存储深度是一定的,但是在实际测试中所使用的存储长度却是可变的。在存储深度一定的情况下,存储速度越快,存储时间就越短,他们之间是一个反比关系。同时采样率跟时基(timebase)是一个联动的关系,也就是调节时基档位越小采样率越高。存储速度等效于采样率,存储时间等效于采样时间,采样时间由示波器的显示窗口所代表的时间决定,所以:存储深度=采样率× 采样时间(距离 = 速度×时间)由于DSO的水平刻度分为12格,每格的所代表的时间长度即为时基(timebase),单位是s/div,所以采样时间= timebase × 12. 由存储关系式知道:提高示波器的存储深度可以间接提高示波器的采样率,当要测量较长时间的波形时,由于存储深度是固定的,所以只能降低采样率来达到,但这样势必造成波形质量的下降;如果增大存储深度,则可以以更高的采样率来测量,以获取不失真的波形。下图曲线揭示了采样率、存储深度、采样时间三者的关系及存储深度对示波器实际采样率的影响。比如,当时基选择10us/div档位时,整个示波器窗口的采样时间是10us/div * 12格=120us,在1Mpts的存储深度下,当前的实际采样率为:1M÷120us︽8.3GS/s,如果存储深度只有250K,那当前的实际采样率就只要2.0GS/s了! 存储深度决定了实际采样率的大小一句话,存储深度决定了DSO同时分析高频和低频现象的能力,包括低速信号的高频噪声和高速信号的低频调制。明白了存储深度与取样速度密切关系后,我们来浅谈下长存储对于我们平常的测量带来什么的影响呢?平常分析一个十分稳定的正弦信号,只需要500点的记录长度;但如果要解析一个复杂的数字数据流,则需要有上万个点或更多点的存储深度,这是普通存储是做不到的,这时候就需要我们选择长存储模式。可喜的是现在国产示波已经具有这样的选择,比如鼎阳(Siglent)公司推出的ADS1000CA系列示波器高达2M的存储深度,是目前国产示波器最大的存储深度示波器,打破了只有高端示波器才可能具有大的存储深度的功能。通过选择长存储模式,以便对一些操作中的细节进行优化,同时配备1G实时采样率以及高刷新率,完美再现捕获波形。长存储对平常的测量中,影响最明显的是在表头含有快速变化的数据链和功率测量中。这是由于功率电子的频率相对较低(大部分小于1MHz),这对于我们选择示波器带宽来说300MHz的示波器带宽相对于几百KHz的电源开关频率来说已经足够,但很多时候我们却忽略了对采样率和存储深度的选择.比如说在常见的开关电源的测试中,电压开关的频率一般在200KHz或者更快,由于开关信号中经常存在着工频调制,工程师需要捕获工频信号的四分之一周期或者半周期,甚至是多个周期。开关信号的上升时间约为100ns,我们建议为保证精确的重建波形需要在信号的上升沿上有5个以上的采样点,即采样率至少为5/100ns=50MS/s,也就是两个采样点之间的时间间隔要小于100/5=20ns,对于至少捕获一个工频周期的要求,意味着我们需要捕获一段20ms长的波形,这样我们可以计算出来示波器每通道所需的存储深度=20ms/20ns=1Mpts !这就是为什么我们需要大的存储深度的原因了!如果此时存储深度达不到1 Mpts,只有普通示波器的几K呢?那么要么我们无法观测如此长周期信号,要么就是观测如此长周期信号时只能以低采样率进行采样,结果波形重建的时候根本无法详细显示开关频率的波形情况。长存储模式下,既保证了采样在高速率下对信号进行采样,又能保证记录长时间的信号。如果此时只进行单次捕捉或停止采集,那么在不同时基下扩展波形时由于数据点充分,可以很好观测叠加在信号上面的小毛刺等异常信号,这对于工程师发现问题、调测设备带来极大的便利。而如果是普通存储,为了保持高的采样率,则在长的记录时间内,由于示波器的连续采样,则内存中已经记录了几帧数据,内存中的数据并不是一次采集获得的数据,此时如果停止采集,并对波形旋转时基进行放大显示,则只能达到有限的几个档位,无法实现全扫描范围的观察。在DSO中,通过快速傅立叶变换(FFT)可以得到信号的频谱,进而在频域对一个信号进行分析。如电源谐波的测量需要用FFT来观察频谱,在高速串行数据的测量中也经常用FFT来分析导致系统失效的噪声和干扰。对于FFT运算来说,示波器可用的采集内存的总量将决定可以观察信号成分的最大范围(奈奎斯特频率),同时存储深度也决定了频率分辨率△f。如果奈奎斯特频率为500 MHz,分辨率为10 kHz,考虑一下确定观察窗的长度和采集缓冲区的大小。若要获得10kHz 的分辨率,则采集时间至少为: T = 1/△f = 1/10 kHz = 100 ms,对于具有100kB 存储器的数字示波器,可以分析的最高频率为:△ f × N/2 = 10 kHz × 100kB/2 = 500MHz。对于DSO来说,长存储能产生更好的FFT结果,既增加了频率分辨率又提高了信号对噪声的比率。 一句话,长存储起到一个总览全局又细节呈现的的效果,存储深度决定了DSO同时分析高频和低频现象的能力,包括低速信号的高频噪声和高速信号的低频调制。

B. 存储深度

“存储深度”是个翻译过来的词语,英文叫“Record Length”。有的将它翻译成“存储长度”,“记
录长度”,等。它表示示波器可以保存的采样点的个数。存储深度是“1千万个采样点”,示波器厂商写作
10Mpts,10MS或10M的都有。这里,pts可以理解为points的缩写,S理解为Samples的意思 这个存储深度很多示波器都是有个最大值的 比如说鼎阳SDS5000X 最大存储深度为250 Mpts/CH

C. 全站仪没有usb线,用sd卡存储的数据,结果打开看是pts格式,问下怎么才能转换成txt或者dat

争议将后缀pts改为txt就可以打开了,但是这个文件里的数据是原始数据文件,里面的数据可能不能直接使用,要进行格式转换哦

D. h264帧存储顺序是dts,还是pts

这两种结构都可以实现,以链式为优

E. 怎么把全站仪pts的坐标文件转换成txt的测量文件

用电子表格打开pts的坐标文件,通过调换各列数据,转换格式,然后存储转换后的数据为txt文件。

F. 什么是逻辑分析仪的“存储”

存储深度这一参数描述的是示波器或逻辑分析仪的存储,存储就是将采集到的信息储存起来,便于进行分析、显示。那什么是“存储深度”呢?存储深度在数学上的表达形式:存储深度(pts)=采样率(Sa/s)×采样时间(s)
可以很直观的看出,存储深度确定的情况下,采样率与采样时间成反比。如果存储深度不够,在要求保持高采样率的场合,那么所采集到的波形时间必定会变短。存储深度越高,一次性记录的波形时间就越长,所以深存储在长时间测量高带宽信号时特别有用。

G. 1Mpts等于多少Kpts

存储深度是数字示波器的一个基本参数,其单位pts是points的缩写。
1M=1024K,因为是计算机存储单位,系数不是1000

H. vlc的pts是怎么计算的

H264的ES原始数据一般是以NAL(Network Abstract Layer)的格式存在。可以直接用于文件存储和网络传输。每一个NALU(Network Abstract Layer Unit)数据,是由数据头+RBSP数据组成。

首先需要将数据流,分割成一个一个独立的NALU数据。

接着获取NALU的nal_type,i_nal_type的值等于0x7表示这个nalu是个sps数据包。找到并解析这个sps数据包,里面包含有非常重要的帧率信息
time_scale/num_units_in_tick=fps

然后根据nal_type判断slice(H264中的slice类似一个帧FRAME的概念)。其中nal_type值小于0x1,或大于0x5,表示这个NALU属于一个slice。
// 检查是否是slice if ( i_nal_type < 1/*NAL_SLICE*/ || i_nal_type > 5/*NAL_SLICE_IDR*/ ) // 找到slice!!!!!

在找到slice的NALU后,可以逐字节将NALU的数据与0x80进行与运算,结果为真表示这个slice(帧FRAME)的结束位置。
// 判断是否帧结束 for (uint32_t i = 3; i < nal_length; i++) { if (p_nal[i] 0x80) { // 找到frame_begin!!!!上一帧frame的结束,下一帧frame的开始 } }

上面的这个代码是摘抄自FFMPEG。他实际作用是判断slice里面的first_mb_in_slice,即第1个宏块在slice中的位置,如果是
一帧开始,这个字段的值肯定是标识第1个宏块。因此,也可以完整解析slice的头部信息,解析出first_mb_in_slice,如果是0(注意:
这是1个哥伦布数值),即这个NALU是一帧的开始。

为什么这里的代码是逐字节判断0x80?我额外写点某大神的名言:程序猿不是十万个为什么,不是维基猿,程序猿是需求猿。如果某程序猿已经着手开始研究如何解析slice头部格式,他很自然的不会有这个疑问。

另外通过nal_type以及silice_type也可以判断出帧结束位置,VLC里面的代码就是这么干。

解析到位于帧结束位置的NALU,就可以判断出每一帧(slice)的开始和结尾。解析slice的slice_type,根据slice_type,可以判断出这个slice的IPB类型。
// 根据slice类型判断帧类型 switch(slice.i_slice_type) { case 2: case 7: case 4: case 9: *p_flags = 0x0002/*BLOCK_FLAG_TYPE_I*/; break; case 0: case 5: case 3: case 8: *p_flags = 0x0004/*BLOCK_FLAG_TYPE_P*/; break; case 1: case 6: *p_flags = 0x0008/*BLOCK_FLAG_TYPE_B*/; break; default: *p_flags = 0; break; }

从现在开始,就有两种办法来计算PTS了。

方法一、根据前后帧的IPB类型,可以得知帧的实际显示顺序,使用前面获取的sps信息中的帧率,以及帧计数frame_count即可计算出PTS。此方法需要做几帧缓存(一般缓存一个group的长度)。

I P B B I P B B I P B 帧类型
1 2 3 4 5 6 7 8 9 10 11 第几帧
1 4 2 3 5 8 6 7 9 12 10 帧显示顺序

一个I帧与下一个I帧之间,是一个group。
从上图可见,P类型的帧的显示顺序,是排在后面最后一个B帧之后。
所以要获取第7帧的pts,起码要知道他下一帧的类型,才能得知他的显示顺序。

第8帧的pts=1000(毫秒)*7(帧显示顺序)*帧率

方法二、每一个slice的信息里面,都记录有pic_order_cnt_lsb,当前帧在这个group中的显示顺序。通过这个pic_order_cnt_lsb,可以直接计算出当前帧的PTS。此方法不需要做帧缓存。

计算公式:

pts=1000*(i_frame_counter + pic_order_cnt_lsb)*(time_scale/num_units_in_tick)

i_frame_counter是最近一次I帧位置的帧序,通过I帧计数+当前group中的帧序,得到帧实际显示序列位置,乘上帧率,再乘上1000(毫秒)的base_clock(基本时钟频率),得到PTS。

I P B B I P B B I P B 帧类型
1 2 3 4 5 6 7 8 9 10 11 第几帧
1 4 2 3 5 8 6 7 9 12 10 帧显示顺序
0 6 2 4 0 6 2 4 0 6 2 pic_order_cnt_lsb

细心一点可以注意到,在上图,slice里面的pic_order_cnt_lsb是以2进行递增。
通常H264里面的sps中记录的帧率,也是实际帧率的2倍time_scale/num_units_in_tick=fps*2

因此,实际的计算公式应该是这样
pts=1000*(i_frame_counter*2+pic_order_cnt_lsb)* (time_scale/num_units_in_tick)
或者是
pts=1000*(i_frame_counter+pic_order_cnt_lsb/2)* (time_scale/num_units_in_tick/2)

所以,第11帧的pts应该是这么计算
1000*(9*2+2)*(time_scale/num_units_in_tick)

I. 示波器存储深度pts是什么 是多大的呀

pts是points缩写,就是点的意思。

存储深度,一般公式是:

存储深度=采样率*波形时长

但是要注意的是,存储深度是个固定的指,而采样率会随着我们调节波形时长而变化。

所以有的示波器,比如标着采样率是1G,但一看存储深度是10几K(1M=1024K),那么实际上他很多时候是达不到这个采样的。

比如1M点的记录长度,意味着示波器最多一屏幕可以采集1百万个点,M是millon百万的意思

比如这台麦科信的STO1104C,存储深度最大可以设置为28M

J. 如何在H264数据中获取PTS

xH264的ES原始数据一般是以NAL(Network Abstract Layer)的格式存在。可以直接用于文件存储和网络传输。每一个NALU(Network Abstract Layer Unit)数据,是由数据头+RBSP数据组成。


首先需要将数据流,分割成一个一个独立的NALU数据。


接着获取NALU的nal_type,i_nal_type的值等于0x7表示这个nalu是个sps数据包。找到并解析这个sps数据包,里面包含有非常重要的帧率信息

time_scale/num_units_in_tick=fps


然后根据nal_type判断slice(H264中的slice类似一个视频帧FRAME的概念)。其中nal_type值小于0x1,或大于0x5,表示这个NALU属于一个slice。


热点内容
华为电脑服务器系统进不去提示 发布:2024-10-08 00:13:42 浏览:490
登录密码如何获取 发布:2024-10-07 23:58:40 浏览:424
王者荣耀人机脚本 发布:2024-10-07 23:58:33 浏览:807
地标建筑脚本 发布:2024-10-07 23:48:51 浏览:242
sqlorderby 发布:2024-10-07 23:42:13 浏览:958
qq秒源码 发布:2024-10-07 23:41:37 浏览:471
51单片机编译器 发布:2024-10-07 23:28:04 浏览:798
安卓手机陌陌封设备了怎么搞 发布:2024-10-07 23:17:00 浏览:180
sql管理系统代码 发布:2024-10-07 23:00:51 浏览:524
安卓什么浏览器可以打开 发布:2024-10-07 23:00:51 浏览:121