Data compression for a waveform data analyzer
Abstract
A compressor for waveforms having at least two waveform states separates the waveform samples into waveform state sample vectors for each waveform state. Waveform state encoders encode the waveform state sample vectors separately to provide compressed waveform data. The waveform state encoder selects waveform state pattern vector and associated codes to represent the waveform state sample vectors. The differences between samples of the waveform state sample vector and waveform state pattern vector are calculated and encoded. Encoding can be lossless or lossy. The waveform state pattern vectors and other parameters for compression are determined during a training period. The waveform state encoders detect features in the waveform state sample vectors and waveform state pattern vectors that are useful for common oscilloscope measurements. Typical waveform states include level states and edge states.
Claims
exact text as granted — not AI-modified1 . In a waveform data analyzer that receives a sequence of one-dimensional waveform samples of amplitude versus time, wherein the sequence of waveform samples represents a waveform, and the waveform samples have a plurality of waveform states, a method of compressing the waveform samples, comprising:
providing sets of codes associated with possible waveform states for representing waveform state sample vectors, wherein the possible waveform states include at least two level states and at least one edge state, wherein the sets of codes provide a plurality of codes associated with each waveform state; determining the amplitudes of the waveform samples in the sequence; classifying respective waveform samples into waveform states based on their amplitudes and the amplitudes of one or more of their neighboring waveform samples in the sequence; defining groups of waveform samples including one or more consecutive waveform samples in the sequence classified into one of the waveform states as respective waveform state sample vectors; and selecting corresponding waveform pattern vectors from sets of waveform pattern vectors to represent the respective waveform state sample vectors, wherein each waveform pattern vector has an associated code in the plurality of codes associated with the waveform state; selecting the associated codes for the corresponding waveform pattern vectors from the sets of codes, wherein the associated codes are used to encode the waveform state sample vectors, and using the associated codes to provide compressed waveform data; and training using the waveform state sample vectors during a training period to produce the sets of waveform pattern vectors and the associated codes in the sets of codes.
2 . The method of claim 1 , wherein said training comprises:
generating the set of waveform pattern vectors associated with each waveform state by measuring parameters of a plurality of waveform state sample vectors during the training period; and assigning the associated code for each waveform pattern vector in the set of waveform pattern vectors to generate the plurality of codes associated with the waveform state.
3 . The method of claim 1 , further including:
determining errors between waveform state sample vectors and the corresponding waveform pattern vectors; and encoding the errors to form encoded errors included in the compressed waveform data.
4 . The method of claim 3 , further comprising decompressing the compressed waveform data to form reconstructed waveform state sample vectors, the decompressing comprising:
decoding the associated codes in the compressed waveform data to determine the corresponding waveform pattern vectors in the set waveform pattern vectors for the waveform state; decoding the encoded errors included in the compressed waveform data to form decoded errors; and using the corresponding waveform pattern vectors and the decoded errors to form the reconstructed waveform state sample vector.
5 . The method of claim 1 , wherein the step of defining groups of waveform samples further comprises:
selecting one or more consecutive waveform samples of a corresponding level state to define a group of level state samples for a level state sample vector, wherein the level state samples are selected in accordance with at least one amplitude threshold and a duration threshold, such that the amplitudes of consecutive level state samples fall within a corresponding amplitude range and an interval spanned by the consecutive level state samples is greater than the duration threshold.
6 . The method of claim 5 , wherein the plurality of codes associated with the level state comprise Huffman codes.
7 . The method of claim 5 , wherein the step of encoding further comprises:
determining at least one parameter of the level state sample vector to form a level parameter vector; selecting a corresponding level pattern vector from a set of level pattern vectors to represent the level parameter vector, wherein each level pattern vector has an associated code in the plurality of codes associated with the level state; and selecting the associated code for the corresponding level pattern vector, wherein the associated code is used to encode the level parameter vector.
8 . The method of claim 7 , further comprising:
wherein said training includes training for each level state, wherein the training produces the set of level pattern vectors and the set of codes associated with the level state using the level state sample vectors during the training period.
9 . The method of claim 8 , wherein said training comprises:
generating the set of level pattern vectors by measuring the parameters of a plurality of level state sample vectors during the training period; and assigning the associated code for each level pattern vector in the set of level pattern vectors to generate the plurality of codes associated with the level state.
10 . The method of claim 7 , further comprising:
determining an error between the level parameter vector and the corresponding level pattern vector; and encoding the error.
11 . The method of claim 1 , wherein the step of defining groups of waveform samples further comprises:
selecting one or more consecutive waveform samples of a corresponding edge state between a first level state and a second level state to define a group of edge state samples for an edge state sample vector.
12 . The method of claim 11 , wherein the step of encoding further comprises:
selecting a corresponding edge pattern vector from a set of edge pattern vectors to represent the edge state sample vector, wherein each edge pattern vector has an associated code in the plurality of codes associated with the edge state; and selecting the associated code for the corresponding edge pattern vector from the plurality of codes, wherein the associated code is used to encode the edge state sample vector.
13 . The method of claim 12 , further comprising:
wherein said training includes training for each edge state, wherein the training produces the set of edge pattern vectors and the set of codes associated with the edge state using the edge state sample vectors during the training period.
14 . The method of claim 13 , wherein said training comprises:
generating the set of edge pattern vectors by measuring parameters of a plurality of edge state sample vectors during the training period; and assigning the associated code for each edge pattern vector in the set of edge pattern vectors to generate the plurality of codes associated with the edge state.
15 . The method of claim 12 , wherein the step of selecting a corresponding edge pattern vector further comprises:
comparing at least one sample value in at least one position in the edge state sample vector to a pattern sample value in the same position in at least one of the edge pattern vectors; and selecting the corresponding edge pattern vector if the sample value from the edge state sample vector is the same as or within a predetermined range of the pattern sample value in the same position of the corresponding edge pattern vector.
16 . The method of claim 12 , wherein the step of encoding further comprises:
determining an error between the edge state sample vector and the corresponding edge pattern vector; and encoding the error.
17 . The method of claim 1 , wherein the possible waveform states further include a transition state, wherein the step of defining groups of waveform samples further comprises:
selecting one or more consecutive waveform samples corresponding to a transition between the edge state and an adjacent one of the level states to define a group of transition samples for a transition sample vector.
18 . The method of claim 1 , further comprising:
selecting glitch samples from the sequence of waveform samples by applying at least one amplitude threshold and a duration threshold to the consecutive waveform samples to form a glitch state sample vector, wherein the glitch state sample vector includes consecutive glitch samples that span a duration that is less than the duration threshold, wherein the amplitudes of the consecutive glitch samples are greater than an upper tolerance threshold corresponding to the amplitude threshold for a positive glitch or less than a lower tolerance threshold corresponding to the amplitude threshold for a negative glitch.
19 . The method of claim 1 , further comprising:
extracting a feature of the waveform samples using one or more of the waveform pattern vectors.
20 . The method of claim 1 , wherein the compressed waveform data are formed at a rate that is at least as fast as a sample rate of the waveform samples.
21 . The method of claim 1 , wherein the waveform analyzer comprises a digital storage oscilloscope coupled to receive the sequence of waveform samples, the digital storage oscilloscope performing the steps of claim 1 .
22 . The method of claim 1 , wherein the waveform analyzer comprises a logic data analyzer coupled to receive the sequence of waveform samples, the logic data analyzer performing the steps of claim 1 .
23 . The method of claim 1 , wherein the waveform data analyzer comprises a waveform data acquisition unit coupled to receive the sequence of waveform samples, the waveform data acquisition unit performing the steps of claim 1 to form the compressed waveform data.
24 . The method of claim 1 adapted to be implemented in one of a complex programmable logic device (CPLD), a field programmable gate array (FPGA), and an application specific integrated circuit (ASIC).
25 . The method of claim 1 , wherein one or more of the steps are embodied in a computer-implementable computer program product.
26 . The method of claim 1 , wherein one or more of the steps is performed by at least one of a digital signal processor (DSP) and a microprocessor.
27 . In a waveform data analyzer that receives a sequence of one-dimensional waveform samples of amplitude versus time, wherein the sequence of waveform samples represents a waveform, and the waveform samples have a plurality of waveform states, a method of compressing the waveform samples, comprising:
providing sets of codes associated with possible waveform states for representing waveform state sample vectors, wherein the possible waveform states include at least two level states and at least one edge state, wherein the sets of codes provide a plurality of codes associated with each waveform state; determining the amplitudes of the waveform samples in the sequence; classifying respective waveform samples into waveform states based on their amplitudes and the amplitudes of one or more of their neighboring waveform samples in the sequence; defining groups of waveform samples including one or more consecutive waveform samples in the sequence classified into one of the waveform states as respective waveform state sample vectors; encoding the waveform state sample vectors using the sets of codes to form compressed waveform data; and extracting a feature of the waveform samples using one or more of the waveform state sample vectors.
28 . In a waveform data analyzer that receives a sequence of one-dimensional waveform samples, wherein the sequence of waveform samples of amplitude versus time represents a waveform, and the waveform samples have a plurality of waveform states, a method of compressing the waveform samples, comprising:
providing sets of codes associated with possible waveform states for representing waveform state sample vectors, wherein the possible waveform states include at least two level states and at least one edge state, wherein the sets of codes provide a plurality of codes associated with each waveform state; determining the amplitudes of the waveform samples in the sequence; classifying respective waveform samples into waveform states based on their amplitudes and the amplitudes of one or more of their neighboring waveform samples in the sequence; defining groups of waveform samples including one or more consecutive waveform samples in the sequence classified into one of the waveform states as respective waveform state sample vectors; encoding the waveform state sample vectors using the sets of codes to form compressed waveform data; and further comprising decompressing the compressed waveform data to form reconstructed waveform state sample vectors, the decompressing comprising: decoding the compressed waveform data using the sets of codes associated with the waveform states to form the reconstructed waveform state sample vectors, wherein each reconstructed waveform state sample vector includes at least one reconstructed waveform sample.
29 . The method of claim 28 , wherein the step of decompressing the compressed waveform data forms the reconstructed waveform samples at a rate that is at least as fast as a sample rate of the waveform samples.
30 . The method of claim 28 , wherein the waveform data analyzer comprises a processor/display unit, wherein the processor/display unit receives the compressed waveform data and performs the step of decompressing the compressed waveform data to form the reconstructed waveform state sample vectors.
31 . The method of claim 28 , wherein the step of encoding further comprises:
selecting corresponding waveform pattern vectors from sets of waveform pattern vectors to represent the respective waveform state sample vectors, wherein each waveform pattern vector has an associated code in the plurality of codes associated with the waveform state; selecting the associated codes for the corresponding waveform pattern vectors from the sets of codes, wherein the associated codes are used to encode the waveform state sample vectors, and using the associated codes to provide the compressed waveform data.
32 . The method of claim 31 , further including:
determining errors between waveform state sample vectors and the corresponding waveform pattern vectors; and encoding the errors to form encoded errors included in the compressed waveform data.
33 . The method of claim 32 , wherein the step of decompressing further comprises:
decoding the encoded errors included in the compressed waveform data to form decoded errors; and using the corresponding waveform pattern vectors and the decoded errors to form the reconstructed waveform state sample vectors.
34 . In a waveform data analyzer that receives a sequence of one-dimensional waveform samples, wherein the sequence of waveform samples of amplitude versus time represents a waveform, and the waveform samples have a plurality of waveform states, a method of compressing the waveform samples, comprising:
providing sets of codes associated with possible waveform states for representing waveform state sample vectors, wherein the possible waveform states include at least two level states and at least one edge state, wherein the sets of codes provide a plurality of codes associated with each waveform state; determining the amplitudes of the waveform samples in the sequence; classifying respective waveform samples into waveform states based on their amplitudes and the amplitudes of one or more of their neighboring waveform samples in the sequence; defining groups of waveform samples including one or more consecutive waveform samples in the sequence classified into one of the waveform states as respective waveform state sample vectors; and selecting corresponding waveform pattern vectors from sets of waveform pattern vectors to represent the respective waveform state sample vectors, wherein each waveform pattern vector has an associated code in the plurality of codes associated with the waveform state; selecting the associated codes for the corresponding waveform pattern vectors from the sets of codes, wherein the associated codes are used to encode the waveform state sample vectors, and using the associated codes to provide compressed waveform data; and further comprising decompressing the compressed waveform data to form reconstructed waveform state sample vectors, the decompressing comprising: decoding the associated codes in the compressed waveform data to determine the corresponding waveform pattern vectors in the sets of waveform pattern vectors for the waveform states; and using the corresponding waveform pattern vectors to form the reconstructed waveform state sample vectors.
35 . A computer-usable medium having hardware description language instructions stored thereon for execution by a processor to synthesize an implementation on one of a complex programmable logic device (CPLD), a field programmable gate array (FPGA), and an application specific integrated circuit (ASIC) to perform a method of compressing a sequence of one-dimensional waveform samples in a waveform data analyzer, wherein the sequence of waveform samples of amplitude versus time represents a waveform, and the waveform samples have a plurality of waveform states, the method comprising:
providing sets of codes associated with possible waveform states for representing waveform state sample vectors, wherein the possible waveform states include at least two level states and at least one edge state, wherein the sets of codes provide a plurality of codes associated with each waveform state; determining the amplitudes of the waveform samples in the sequence; classifying respective waveform samples into waveform states based on their amplitudes and the amplitudes of one or more of their neighboring waveform samples in the sequence; defining groups of waveform samples including one or more consecutive waveform samples in the sequence classified into one of the waveform states as respective waveform state sample vectors; and encoding the waveform state sample vectors using the sets of codes to form compressed waveform data; and further comprising decompressing the compressed waveform data to form reconstructed waveform state sample vectors, the decompressing comprising: decoding the compressed waveform data using the sets of codes associated with the waveform states to form the reconstructed waveform state sample vectors, wherein each reconstructed waveform state sample vector includes at least one reconstructed waveform sample.
36 . A computer-usable medium having computer-executable instructions stored thereon for execution by a processor for performing one or more steps of a method of compressing a sequence of one-dimensional waveform samples in a waveform data analyzer, wherein the sequence of waveform samples of amplitude versus time represents a waveform, and the waveform samples have a plurality of waveform states, the method comprising:
providing sets of codes associated with possible waveform states for representing waveform state sample vectors, wherein the possible waveform states include at least two level states and at least one edge state, wherein the sets of codes provide a plurality of codes associated with each waveform state; determining the amplitudes of the waveform samples in the sequence; classifying respective waveform samples into waveform states based on their amplitudes and the amplitudes of one or more of their neighboring waveform samples in the sequence; defining groups of waveform samples including one or more consecutive waveform samples in the sequence classified into one of the waveform states as respective waveform state sample vectors; encoding the waveform state sample vectors vector using the sets of codes to form compressed waveform data; and further comprising decompressing the compressed waveform data to form reconstructed waveform state sample vectors, the decompressing comprising: decoding the compressed waveform data using the sets of codes associated with the waveform states to form the reconstructed waveform state sample vectors, wherein each reconstructed waveform state sample vector includes at least one reconstructed waveform sample.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.