vantage系统数据流处理流程
- 获取:从vantage硬件采集rf数据并存储到电脑的RcvBuffer中;
- 像素重建:将RcvBuffer中的rf数据转换为InterBuffer数据(I/Q像素)或ImageBuffer数据,如IO解调,取包络等等。
- 处理:处理转换后的InterBuffer数据(I/Q像素)或ImageBuffer数据,数据重建。
- 显示:从ImageBuffer到DisplayWindow buffer,包括插值的步骤。
PData
PData = Coord string % [‘rectangular’],‘polar’,‘spherical’ PDelta [1x3 double] % x,y,z方向相邻spacing between pixels in all dimensions,像素间距 Size [1x3 double] % rows, cols and sections Origin [1x3 double] % % x,y,z of top lft corner (for 2D) or top,探头起始位置 lft far corner (3D view from z axis). Region [numRegions Structs] % Region structures
- 描述图像重建软件处理的像素区域。不需要图像重建时可以省略该对象,重建显示感兴趣区域图像。
PData.Region
用来计算每帧图像的重建区域
猜测:这个只能确定重建区域,不能设置怎么重建(怎么重建只能在TXRX里面得到,也就是说实现不了平移 T - T)
PData.Region = numPixels double % no. of pixels in region (or voxels in 3D section)重建多少个点 PixelsLA [1xnumPixels]int32 % linear address of each pixel (from 0),每个点的位置
对于PixelsLA:
4405个点组成了下图的线:
其中1-50对应位置为197-246,具体位置是
PData.Region有自动计算的方法,可以使用。
注:存储缓冲区相关设置在Resouce中,可以用showPData查看重建的PData区域
RcvBuffer
RcvBuffer = datatype string ‘int16’ (default) rowsPerFrame double number of rows in frame colsPerFrame double number of columns in frame numFrames double number of frames (1 or even number) lastFrame double last frame transferred into buffer
- RcvBuffer:int16类型,RcvData{n}(i,j,k),n缓冲区数,ij为行列,k为第几帧图像。
- 值超过524288个(128M),DMA缓冲区会受限。
InterBuffer
InterBuffer = datatype string ‘complex double(default)/single’ rowsPerFrame double no. of rows (optional if PData defined) colsPerFrame double no. of cols (optional if PData defined) sectionsPerFrame double sections (optional: 1 or PData defined) pagesPerFrame double pages (optional: default=1) numFrames double number of frames
- InterBuffer:complex类型,IQData{n}(i,j,k,l,m),n为缓冲区数,ij行列,k切片数(section),I页数(多普勒使用),m帧数。
- InterBuffer元素与PData阵列元素一一对应,PData定义了重建点相对于传感器的位置。InterBuffer阵列大小不能小于PData。默认和PData相等。
- 其中section指切片数,三维体积扫描使用 。pages指页数,多普勒成像使用,用来存储用于获取感兴趣帧或区域的多普勒信号的多个多普勒采集结果。
ImageBuffer
ImageBuffer = datatype string ’double’ (default) rowsPerFrame double no. of rows (optional if PData defined) colsPerFrame double no. of cols (optional if PData defined) sectionsPerFrame double sections (optional: 1 or PData defined) numFrames double number of frames firstFrame double first image frame of multi-frame buffer lastFrame double last frame of multi-frame buffer
- ImageBuffer:数据类型为double,ImgData{n}(i,j,k,m) 和ImgDataP{n}(i,j,k,m),
n为缓冲区数,ij行列,k部分数,m帧数。 - 接收像素重建算法的强度输出(值大小),或信号处理方法的目标输出缓冲器。列数需要与PData定义的矩形像素网格行上列像素数相等,行数可以大于网格行数。
- 处理ImageBuffer以显示图像数据时,会创建一个ImgDataP作为二级缓冲区,大小与ImgData相等。ImgDataP会进行相关重建操作并输出到DisplayWindow中。此时ImgData保留原始重建数据。
- framenum = -1,表示写入缓冲区的最新帧。
问题:保存数据时定义了int16类型,导出图像发现信号峰值超过16384都被切割掉了,请问会有什么原因导致这个情况呢
答:VantageSequenceProgrammingManual中搜索关键词Receive.Apod。
The Receive.Apod values can range from -4.0 to 3.9997 and are used to set the gain of the multiplier stage at the end of the signal processing chain. When negative values are used, the receive samples are sign inverted as well as scaled. The nominal Receive.Apod value of 1.0 scales the filtered 14 bit A/D data to one half of the 16 bit Receive Data output sample values. In other words the -8192/+8191 count output of the 14 bit A/D becomes -16384/+16382. Thus an extra least significant bit of dynamic range generated by the input filters is preserved. This scaling to less than full scale in the 16 bit memory word was chosen to leave 1 bit of word growth for gain compensation or signal averaging.