University of Rochester / Ultrasound Research Laboratory
2D Array Library

 
Class hierarchy   Compound list   File list   Header files   Compound Members   File Members   Examples  

TRxAper Class Reference

Class specifically designed to control the receive aperture of the 2D-array. More...

Inherits Aperture.

List of all members.

Public Members

Protected Members


Detailed Description

Class specifically designed to control the receive aperture of the 2D-array.

Contains member functions which are used for data acquisition, signal averaging, recording raw data to disk,....

Examples:
pe3.cpp.

Member Function Documentation

TRxAper::TRxAper()

Constructor...

TRxAper::~TRxAper( void)

Cleanup TRxAper

WORD TRxAper::SetUpWaveforms( void)

Function uses the protected variables t_start & t_stop to determine the number of points required and allocates the required memory by calling SetUpWaveforms(npts)

WORD TRxAper::SetUpWaveforms( WORD npts)

Function used to allocate memory required for 3D waveforms. The number of rows and columns is controlled by previous calls to SetWaveSize( WPAIR rxSize). This function also allocates memory for the protected array cache in case signal averaging is enabled at a later time.

The number of points is controlled primarily by the argument npts. However, extra points are added so that there is enough raw data collected to focus the data at range1.

WORD TRxAper::SetUpWaveforms( float t0, float t1)

Function to set protected variables t_start & t_stop. Also determines the number of points required and allocates the required memory by calling SetUpWaveforms(npts)

Examples:
pe3.cpp.

WORD TRxAper::UnLoadBuffer( WORD count, WPAIR pC0, WPAIR pC1, WPAIR aC0, WPAIR aC1)

Function used to unload the UAS. count is the current data acquisition cycle. The arguments pC0 and pC1 refer to the physical corners of the currently active RxSubaperture (in element coordinate system). The arguments aC0 and aC1 refer to the logical corners of the currently active RxSubaperture (in aperture coordinate system).

Examples:
pe3.cpp.

void TRxAper::SetTimeWindow( float t0, float t1, float d)

Function to set the 3 time control variables directly

void TRxAper::SetTimeWindow( void)

Function to set the 3 time control variables based on aperture requirements. t_start will be based on the minimum distance from an element in the aperture to range0. t_stop will be based on the maximum distance from an element in the aperture to range1. t_delay will be zero for now.

inline INT16 TRxAper::GetWavePoint( int i, int j, int k)

Returns a data point from the 3D waveform array

inline INT16* TRxAper::GetWavePtr( int i, int j)

Returns a pointer to the waveform at row i and column j.

void TRxAper::SetAvgCount( WORD c)

Function used to control signal averaging. Sets the avg_count and also set AvgFlag to TRUE

Examples:
pe3.cpp.

inline WORD TRxAper::GetAvgCounts( void )

Returns the number of signals to be averaged

Examples:
pe3.cpp.

WORD TRxAper::WriteRawAperture( int ascan, int zone, float temp, TTxAper *tx, FILE *fp)

Member function performs write raw RxAper waveforms to disk. Each write consists of a 128 bytes header (RAW_RECORD_HEADER_TYPE)

  typedef struct {
    int  nX;                      //Number of X measurements
    int  nY;                      //Number of Y measurements
    int  npt;                     //Number of data points
    int nAscan;                   //This A-scan number
    int nZone;                    //This focal zone number
    int delay;                    //sample at which data recording begins
    int T;                        //Temperature (.01C)
    int txDepth;                  //Transmit depth (microns)
    int txXcenter, txYcenter;     //(X,Y) coordinate of TxAperture
    int rxXcenter, rxYcenter;     //(X,Y) coordinate of RxAperture
    int txSize;                   //TxAperture Size (always square)
    int txCenterDelay;            //Time at which center element fires (nanoseconds)
    int dummy[18];                //Pad to 128 bytes
  } RAW_RECORD_HEADER_TYPE;

followed by the waveform data (16 bit signed integers) written in the following order:

  for each column
    for each row
      write the waveform
    next row
  next column

WORD TRxAper::WriteRawAperture( FILE *fp)

Function performs write raw RxAper waveforms to disk. Each write consists of a small header

  struct { 
    WORD nx,       // Number of rows
         ny,       // Number of cols
         nz,       // Number of points
         xcenter,  // Physical X of Aperture Center
         ycenter,  // Physical Y of Aperture Center
         bytes; }  // Number of bytes/data point

followed by the waveform data (16 bit signed integers) written in the following order:

  for each column
    for each row
      write the waveform
    next row
  next column

Examples:
pe3.cpp.

WORD TRxAper::ReadRawAperture( FILE *fp)

Function performs read raw RxAper waveforms to disk. Each write consists of a small header. The header is not yet complete.

  struct { 
    WORD nx,       // Number of rows
         ny,       // Number of cols
         nz,       // Number of points
         xcenter,  // Physical X of Aperture Center
         ycenter,  // Physical Y of Aperture Center
         bytes; }  // Number of bytes/data point

followed by the waveform data written in the following order:

  for each column
    for each row
      read the waveform
    next row
  next column

WORD TRxAper::ReadRawAperture( int ascan, int zone, float temp, TTxAper *tx, FILE *fp, int swap)

Member function performs Read raw RxAper waveforms from disk. Each read consists of a 128 bytes header (RAW_RECORD_HEADER_TYPE)

  typedef struct {
    int  nX;                      //Number of X measurements
    int  nY;                      //Number of Y measurements
    int  npt;                     //Number of data points
    int nAscan;                   //This A-scan number
    int nZone;                    //This focal zone number
    int delay;                    //sample at which data recording begins
    int T;                        //Temperature (.01C)
    int txDepth;                  //Transmit depth (microns)
    int txXcenter, txYcenter;     //(X,Y) coordinate of TxAperture
    int rxXcenter, rxYcenter;     //(X,Y) coordinate of RxAperture
    int txSize;                   //TxAperture Size (always square)
    int txCenterDelay;            //Time at which center element fires (nanoseconds)
    int dummy[18];                //Pad to 128 bytes
  } RAW_RECORD_HEADER_TYPE;

followed by the waveform data (16 bit signed integers) read in the following order:

  for each column
    for each row
      read the waveform
    next row
  next column

void TRxAper::ClearWaveforms( void)

Function used to zero the 3D waveforms array

Examples:
pe3.cpp.

void TRxAper::RemoveBias( void)

Function used to remove the DC component of each waveform

Examples:
pe3.cpp.

TBool TRxAper::LoadMT( MuxTwoDType *mt, WPAIR pc0, WPAIR pc1)

Function loads the RxAperture data into the MuxTwoDType structure

Examples:
pe3.cpp.

void TRxAper::Focus( float freq, int tx_area)

Focus the data in the receive aperture.

Examples:
pe3.cpp.

WORD TRxAper::Compensate( SystemProps *ap)

This version of Compensation figures out where the aperture is placed, then compensates...

WORD TRxAper::RxCompensate( SystemProps *ap)

This version of RxCompensation figures out where the aperture is placed, then compensates...

WORD TRxAper::Compensate( SystemProps *ap, WPAIR pC0)

Function used to compensate raw waveforms. User specifies aperture placement.

Examples:
pe3.cpp.

WORD TRxAper::RxCompensate( SystemProps *ap, WPAIR pC0)

Function used to compensate raw waveforms. User specifies aperture placement. This function gets called only if there is a separate RxCompensation file available. In this case, it is assumed that the data are available at 20 MHz sampling rate....No resampling needed.

Examples:
pe3.cpp.

inline WORD TRxAper::GetNumFocusedPoints(void)

Returns the number of points in the focused Ascan

Examples:
pe3.cpp.

void TRxAper::GetFocusedData( INT32 *data)

Member used to retrieve the data from a partial A-scan. Pointer *data must reference a block of data allocated by the user.

Examples:
pe3.cpp.

inline float TRxAper::GetTimeStart(void)

Returns the private variable t_start

inline float TRxAper::GetTimeStop(void)

Returns the private variable t_stop

void TRxAper::ShiftWaveforms( void )

Member used to time-shift the raw waveforms based on data in the aber_delay array. Spline interpolation used to implement shifts. Section added to shift raw data LJB 06/04/98.


The documentation for this class was generated from the following files: Software written by
Larry Busse of LJB Development
and Bill Glenn, Al Murphy and John Losche of TETRAD Corporation
Documentation generated 3/11/1999