This application claims priority under US Provisional Application 61305817 filed 18 Feb. 2010.
The present invention generally relates to displaying waveform data on pixel based display system. More particularly, the invention relates to accurately compressing waveform data and displaying the compressed data on a screen in pixel format.
In the field of test and measurement instrumentation, and specifically, modular instrument apparatus, where the captured/measured data is transferred to a main server/processor via a data bus, typical instrument apparatus may capture data using front-end analog circuitry and store it in a fast memory. Once the capture is complete, the data may be transferred to a main server/computer memory and subsequently processed for display. Transfer may take place through a data bus which can follow many different protocols. Transfer of large quantities of data may generally introduce dead-time and may thus limit the amount of data which can be placed in capture memory for subsequent processing.
When displaying waveform data, large data sets may exceed the resolution of a screen on which the waveform data will be displayed. Typical screen resolution does not exceed 2048 pixels, while waveform data may have hundreds of millions of points.
As can be seen, there is a need for a system to compress and transfer a large collection of data (e.g., a waveform) acquired from a device onto a screen without compromising any major features of the waveform.
In one aspect of the present invention, apparatus for analysis of waveform data may comprise: a data acquisition instrument for acquiring waveform data; and a data compression engine for performing calculations in-line with the data acquisition instrument to produce two-point sets from the data.
In another aspect of the present invention, a method for displaying waveform data in pixels of a display may comprise the steps of: sampling a waveform to determine data points for each sampling time; determining a time interval of a pixel on the display; selecting a number of the sampled data points during a time interval associated with a pixel of the display; assigning a first set of the selected number of the sampled data points to a first one of the time intervals; assigning a second set of the selected number of sampled data points to a second one of the time intervals; determining maximum and minimum excursions of the waveform data within the first selected time interval; determining maximum and minimum excursions of the sampled data points within the second selected time interval; determining magnitude of a last sampled data point within the first selected time interval; determining magnitude of a first sampled data point within the second selected time interval; calculating a crossover location on a y-axis as a function of a time interval associated with first pixel column; establishing a display of a first vertical line of pixels wherein the first line includes the magnitude of the minimum and maximum excursion of the first selected time interval and the crossover locations on both sides of the pixel column; and establishing a display of a second vertical line of pixels wherein the second line includes the magnitude of the minimum and maximum excursion of the second selected time interval and the crossover locations on both sides of the pixel column.
In still another aspect of the invention, a system for displaying waveform data may comprise a data acquisition instrument for determining waveform data; a waveform compression engine integral with the instrument; a data transfer bus; a display unit; and wherein the data transfer bus transfers compressed waveform data to the display unit.
These and other features, aspects and advantages of the present invention will become better understood with reference to the following drawings, description and claims.
The following detailed description is of the best currently contemplated modes of carrying out exemplary embodiments of the invention. The description is not to be taken in a limiting sense, but is made merely for the purpose of illustrating the general principles of the invention, since the scope of the invention is best defined by the appended claims.
Various inventive features are described below that can each be used independently of one another or in combination with other features.
Broadly, embodiments of the present invention generally provide a system in which measurement data may be captured through an analog/digital front-end. While the captured data is being stored in a fast memory, an in-line waveform compression algorithm may be running to provide a real-time result. As soon as the capture is complete, the compressed waveform data memory may be ready to be read out through a system/peripheral bus in order to be displayed.
A waveform may be a collection of digitized values (in time or amplitude) taken at a preset interval (sampling rate). In order to draw a waveform on a screen, the waveform data must be converted into x and y coordinates. The x coordinates may be calculated from the sampling rate by accumulating consecutive measurements of time for each data point, while the y coordinates are the measurement data (i.e., amplitude data) from the waveform. If there are more sampled waveform points (C) than a number (P) of pixels on the x axis of a screen, then the waveform must be compressed to fit onto the screen without losing any of its features. This may be achieved by having multiple waveform measurements share a single x coordinate location on the x axis of the screen (i.e., share a single pixel column on the screen). Multiple waveform measurements sharing an x coordinate may not have to have the same y coordinate. Variable y coordinates on a particular x coordinate may be represented as a vertical line of pixels. Since any line can be defined by two points, the vertical line of pixels formed by sharing the x coordinate can be described by minimum (Min) and maximum (Max) values in a collection of waveform data points Wi.
Typically a waveform may be measured from a trigger event. It is possible that the trigger event may fall between two sampling points. To compensate for any trigger event that falls between two sampling points, an interpolated data point between the triggering event measurement and a previous sampled measurement may be generated. Typically the interpolation may be linear, but any interpolation method may be used.
A time T, represented by each pixel on the display device, may then be computed using the equation T=(Tc+T0)/P where Tc is a total sampling acquisition time and T0 is a time offset between the trigger event location and the first point sampled after the trigger event and P is the number of pixels on an x axis of the display. T may be a floating point number since Tc+T0 is not guaranteed to be a multiple of P. The number (G) of points that need to share a pixel can be obtained using the equation Gi=Round (Twi), where i=1 to n; where n is the display width in pixels; and where Twi is the end time of Wi and is calculated as Twi=T*i, where i=1 to n. Amplitude of waveform data at an interpolated time of the trigger event location may be added in the first set (W1) that includes the trigger event to compute a Min/Max. This may also be the first crossover point for W1.
It should be noted that vertical lines alone do not accurately represent the captured waveform. This is because from one Min/Max vertical line to an adjacent Min/Max vertical line, there is no guarantee that the Min/Max Y ranges will overlap or represent a true crossover location. Thus, either a gap or improper connection between the adjacent Min/Max vertical lines could develop. To avoid any potential gaps or improper crossover locations, a connecting line between adjacent vertical lines representing a true crossover location in both amplitude and time axis may be required.
Referring now to
It may be seen that, for example, Wi Max may be less than Wi+1 Min. Consequently, there may be a gap 18 between the two vertical lines of pixels 14 and 16 representing these values. In order to accurately represent the data we may need to include both the adjacent crossover points in the Min/Max calculations of each pixel column. To accurately define the crossover locations on the y axis from the last data point of Wi−1 and the first data point of Wi for the pixel boundary from Wi−1 to Wi, a fractional part of Twi may be factored in. This fractional part may be the time period T0 for the first pixel column.
Because partial points cannot be displayed, rounding must take place to put the points in their closest x-axis location. As the last point in a Wi set approaches a pixel border, the first point in Wi+1 may move away from the same pixel border due to a fixed sample time. The y-axis position defining the crossover point from Wi to Wi+1 may be adjusted to reflect the resultant displaced location of the first and last points. This procedure may be repeated across the entire waveform to create a collection of vertical lines defined by two-point sets that may describe the waveform with no feature loss. Furthermore, no matter how many points are contained in Wi, only two parameters are required to fully describe one G worth of the waveform, the two parameters being minimum and maximum (Min/Max) pair for a vertical line of pixels. Thus waveform data may be compressed into these two-parameter sets. Thus the bandwidth required to display long captures may be reduced.
In cases where total number of captured points in the waveform, (C) is less than or equal to the number of pixels (P) in the display, one may use the same method to compute the crossover points spanning across multiple pixels, thus, providing a more accurate representation of the captured data.
Referring now to
Referring now to
Referring now to
Referring now to
It should be understood, of course, that the foregoing relates to exemplary embodiments of the invention and that modifications may be made without departing from the spirit and scope of the invention as set forth in the following claims.
Number | Date | Country | |
---|---|---|---|
61305817 | Feb 2010 | US |