statsWaveletFilt package¶
cusum
module¶
Wavelet Based in CUSUM control chart for filtering signals Project (module
statsWaveletFilt.cusum
): Functions to analise data using Control
Chart CUSUM. In this package the application of this chart is for filtration of
wavelet coefficients.
Created by Tiarles Guterres, 2018

cusum.
analysisCusum
(data, k=0.5, mean=None, std=None, SjBi_start=0, Sjsi_start=0)[source]¶ Calculates the Control Limits of CUSUM like in [1]. This is a Control Chart defined in [2] and this type of tool serves to make a control of data who is called in statistic “process”.
For more details about the parameters see [1] Chapter 9: Cumulative Sum and Exponentially Weighted Moving Average Control Charts.
Parameters:  data (list or arraylike) – This is the data of “process” who CUSUM has to analize
 k (int or float) – Optional, 1/2 (or .5) by default. It’s a parameter of the CUSUM algorithm. Helps to the Control Chart acummulate the Control Limits of each element of data.
 mean (int or float) – Optional, is None by default, but turns the mean of data. Also an intern parameter of the algorithm for help to acumulate the control limits.
 std (int or float) – Optional, is None by default, but turns the standard deviation of data. The same function of mean in relation of control limits.
 SjBi_start (int or float) – Optional, is 0 by default. Is the start value for acumulation of superior control limit.
 Sjsi_start (int or float) – Optional, is 0 by default. Is the start value for acumulation of inferior control limit.
Returns: A tuple of control limits. In [0] the superior limits and in [2] the inferior limits.
Return type: tuple
See also
thresholdCusum()
 Function used to truncation of data using the control limits obtained in this function and a decision interval, called “H”.
References
[1] MONTGOMERY, D. C. Introduction to Statistical Quality Control. Sixth edition. United States: John Wiley & Sons, Inc., 2009. 733 p. [2] PAGE, E. S. Continous Inspection Schemes. Biometrika, v. 41, p. 100115, 1954

cusum.
thresholdCusum
(data, SjB, Sjs, std=None, h=5)[source]¶ Makes the truncation of data accordyling with control limits SjB and Sjs and the interval of decision [H = h * data.std()]. The threshold method it’s showed in [1], more about cusum it’s showed in [2], Chapter 9.
Note
The size of data must be equal to size of SjB and Sjs.
Note
After the test (via pytest) the fuction was changed for better performance.
Parameters:  data (list or arraylike) – The data who corresponding to control limits.
 SjB (list or arraylike) – The control superior limits who corresponding to data .
 Sjs (list or arraylike) – The control inferior limits who corresponding to data .
 std (int or float) – Optional, is None by default, but turns the standard deviation of data. It’s an intern parameter of the algorithm for help to acumulate the control limits.
 h (int or float) – Optional, 5 by default. This variable multiply with standard deviation of data to obtain the interval of decision (H).
Returns: An array with elements of data truncated or not, depending of the control limits and the interval of decision.
Return type: numpy.array
See also
analysisCusum()
 Make the cusum analysis inthe data, return the control limits corresponding to data input.
References
[1] GUTERRES, T. D. R. M.; BAYER, F. M; KOZAKEVICIUS, A. D. J. (2018) Análise do gráfico de controle CUSUM para filtragem de coeficientes wavelet, Undergraduation Thesis, Universidade Federal de Santa Maria. In portuguese. [2] MONTGOMERY, D. C. Introduction to Statistical Quality Control. Sixth edition. United States: John Wiley & Sons, Inc., 2009. 733 p.
filtration
module¶
Wavelet Based in CUSUM control chart for filtering signals Project (module
statsWaveletFilt.statisticFilter
): Top level functions to filter
wavelet coefficients using consagrated methods (threshold
) and using
Control Chart CUSUM (cusum
) proposed in my Undergraduate Thesis, together
with prof. Dr. Fábio Mariano Bayer and prof. Dr. Alice de Jesus Kozakevicius
called Análise do gráfico de controle CUSUM para a filtragem de coeficientes
wavelet, in portuguese for the Universidade Federal de Santa Maria (2°/2018).
Created by Tiarles Guterres, 2018

filtration.
filtration
(coefficients, method='visu', p=3, mode='hard', dim_t=1024)[source]¶ Filters the wavelet coefficients returned by the pywt.wavedec function. All methods are implemented and showed in [1].
Parameters:  coefficients (list of 1D arraylike) – The wavelet coefficients and the scale coefficients of the last level. The scale coefficients isn’t modify by the filtration.
 method (string) – Optional, is ‘visu’ by default.
 p (int or float) – Optional, is 3 by default.
 mode (string) – Optional, is ‘hard’ by default.
Returns: A tuple with [0] A list if numpy.array. The wavelet coefficients truncated by the choiced method, with scale coefficients. Ready for pywt.waverec function. (a little ‘tip’) and [1] a list of float. The lambda value used for each wavelet coefficient level.
Return type: tuple
See also
cusumFiltration()
 Function that use Cumulative Sum Control Chart and some variation for filter wavelet coefficients.
References
[1] KOZAKEVICIUS, A. D. J.; BAYER, F. M. Filtragem de sinais via limiarização de coeficientes wavelet. Ciência e Natura, v. 36, p. 37–51, 2014. In portuguese.

filtration.
cusumFiltration
(coefficients, h=5, k=0.5, method='cusumTrad')[source]¶ Filters the wavelet coefficients returned by the pywt.wavedec function using the Cumulative Sum Control Chart (CUSUM) [1].
Parameters:  wavCoeff (list of arraylike.) – Wavelet coefficients
 h (int, float or arraylike) – Optional, 5 by default [1]. See “method” parameter.
 k (int, float or arraylike) – Optional, 1/2 (or .5) by default [1]. See “method” parameter.
 method (string) –
Optional, “cusumTrad” by default.
If “method” is “cusumTrad” the Control Chart considered to filter the wavalet coefficients is the same considered in [1]. If the control limit (called SjB and Sjs here) is bigger than threshold limit the wavelet coefficient corresponded will be zero. In this “method” “k” and “h” will be constant and equals for all wavelet coefficients in all levels, the [1] recomend h = 5 and k = 1/2, but you can change or just not alterate.
But if “method” is “cusumDecay” occurs the same in “cusumTrad” relative to truncation form but the “k” and “h” will be like is described in [2].
Or if “method” is “cusumAdap” will be the same of the “cusumDecay” but the user can be choice who values of “h” and “k” will be for each wavelet level.
Returns: A tuple with [0] A list if numpy.array. The wavelet coefficients truncated by the choiced method, with scale coefficients. Ready for pywt.waverec function. (a little ‘tip’), [1] a list of float. The “k” values used for each wavelet coefficient level and [2] a list of float. The “h” values used for each wavelet coefficient level.
Return type: tuple
See also
filtration()
 Function that use this function to filter via wavelet coefficients
pywt.wavedec()
 Function that decomposes the signal in wavelet and scale coefficients
pywt.waverec()
 Function that recomposes the signal from wavelet and scale coefficients
References
[1] MONTGOMERY, D. C. Introduction to Statistical Quality Control. Sixth edition. United States: John Wiley & Sons, Inc., 2009. 733 p. [2] GUTERRES, T. D. R. M.; BAYER, F. M; KOZAKEVICIUS, A. D. J. (2018) Análise do gráfico de controle CUSUM para filtragem de coeficientes wavelet, Undergraduation Thesis, Universidade Federal de Santa Maria. In portuguese.
miscellaneous
module¶
Wavelet Based in CUSUM control chart for filtering signals Project (module
statsWaveletFilt.miscellaneous
): A Miscellaneous of functions for
work with data and show wavelet coefficients
Created by Tiarles Guterres, 2018

miscellaneous.
showWaveletCoeff
(coefficients, filename='tmp', format='pdf', threshold_value=0, color='black', color_threshold='black', figsize=(7, 8), title='')[source]¶ Show and save the wavelet and scale coefficients in a plot.
Parameters:  coeff (list of numpy.array's) – With in ‘0’ position the scale coefficients. Equal to the
pywt.wavedec()
return.  filename (string) – Optional, is ‘tmp’ by default. This is the first part of the name of the figure.
 format (string) – Optional, is ‘pdf’ by default. This is the last part of the name of the figure. Can be ‘png’, ‘ps’, ‘eps’ and ‘svg’ too.
 threshold_value (int, float or list.) – Optional, is 0 by default, this means that bothing new happens. Otherwise, a line in threshold value will be plotted in all wavelet coefficients plots. This value can be a list too, but they was to be the same size of wavelet coefficients (without the scale coefficient).
Returns: Nothing is returned, the plots is show and save.
Return type: void
See also
pywt.wavedec()
 Function that decomposes the signal in wavelet and scale coefficients
pywt.waverec()
 Function that recomposes the signal from wavelet and scale coefficients
filtration.filtration()
 Function that use this function to filter via wavelet coefficients
filtration.filtrationCusum()
 Function that use Cumulative Sum Control Chart and some variation for filter wavelet coefficients.
 coeff (list of numpy.array's) – With in ‘0’ position the scale coefficients. Equal to the

miscellaneous.
normalizeData
(data, min=0, max=1)[source]¶ Its almost a map function. This function normalize the data between a min and max values.
Parameters:  data (list or arraylike) – The values that desire normalize.
 min (int or float) – Optional, is 1 by default. The min value correspond, in the end, of the min value of data.
 max (int or float) – Optional, is 1 by default. The max value correspond, in the end, of the max value of data.
Returns: The data normalized between min and max values.
Return type: numpy.array

miscellaneous.
generateData
(functions=['doppler', 'block', 'bump', 'heavsine'], varNoises=[0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01], dim_signals=1024, n_samples_per_sig_per_noise=10000, folder='tmp')[source]¶ If you like to generate your dataset before run your test you can use this function to generate the data. With the 1) type of signal and 2) quantity of noise (in variance). Saves in
.npy
signals
module¶
Wavelet Based in CUSUM control chart for filtering signals Project (module
statsWaveletFilt.signals
): Functions to evaluate the dignal fitering
process using the module statisticFilter
or any kind of filtration.
Created by Tiarles Guterres, 2018

signals.
for_dB_scale
(x)[source]¶ Converts x to dB scale using 10*log10(x)
Parameters: x (int or float) – The value for convertion Returns: The x value converted in dB scale. Return type: float

signals.
for_real_scale
(x)[source]¶ Converts x to real scale using 10**(x/10)
Parameters: x (int or float) – The value for convertion Returns: The x value converted in eal scale. Return type: float

signals.
snr_square_mean_error
(currentSignal, idealSignal)[source]¶ Calculate the SNR via the current signal and the ideal using the square mean error approach.
Parameters:  currentSignal (1D arraylike) – The signal for compare with ideal.
 idealSignal (1D arraylike) – The ideal signal, based in the currentSignal.
Returns: Mean of idealSignal by standard deviation of the noise.
Return type: float

signals.
snr_mean_standardNoise
(idealSignal, noiseSignal)[source]¶ Calculate the SNR via ideal signal mean and standard deviation of the noise.
Parameters:  idealSignal (1D arraylike) – The ideal signal, based in the currentSignal.
 noiseSignal (1D arraylike) – Noise apply to ideal signal, could be a initial or residual noise.
Returns: Mean of idealSignal by standard deviation of the noise.
Return type: float

signals.
snr_variances
(idealSignal, noiseSignal)[source]¶ Calculate the SNR via ratio of variances of ideal signal and noise.
Parameters:  idealSignal (1D arraylike) – The ideal signal, based in the currentSignal.
 noiseSignal (1D arraylike) – Noise apply to ideal signal, could be a initial or residual noise.
Returns: Variance ratio value between the ideal and noise signals.
Return type: float

signals.
cnr_amplitude_standardNoise
(idealSignal, noiseSignal)[source]¶ Calculate the CNR (contrasttonoise ratio [1]) via the amplitude of idealSignal and standard deviation of the noise.
Parameters:  idealSignal (1D arraylike) – The ideal signal, based in the currentSignal.
 noiseSignal (1D arraylike) – Noise apply to ideal signal, could be a initial or residual noise.
Returns: Ratio of maximum distance of zero and standard deviation of the noise.
Return type: float

signals.
differential_snr_dB
(initialSignal, finalSignal, method='square_mean_error', idealSignal=None)[source]¶ Calculate the SNR or CNR difference between two signals: after and before filtering. Ideal signal may be used.
Parameters:  initialSignal (1D arraylike) – Initial Signal, before the filtering process
 finalSignal (1D arraylike) – Final Signal, after the filtering process
 method (string, optional) – Is ‘square_mean_error’ by default, other forms of calculate the SNR differential is ‘mean_StandardNoise’, ‘variances’ and ‘amplitude_standardNoise’.
 idealSignal (1D arraylike or 0, optional) – Is 0 by default, is necessary in all methods except in ‘square_mean_error’ method.
Returns: The SNR differential value in dB.
Return type: float

signals.
dopplerFunction
(dim=1024, normalize=True, fq=0)[source]¶ Generate the Doppler function in a range of 0 to 1, with dim points.
Parameters:  dim (int) – Dimension of the signal.
 normalize (bool, optional) – It is True by default. This parameter normalize the data values
in a range of 0 to 1 with a function present in
statsWaveletFilt.miscellaneous
.  fq (int or float, optional) – It is 0 by default. With this default value the original doppler, shown by Donoho [1] will be used.
Returns: [0] 1D arraylike, coordinates in X axis and [1] 1D arraylike, coordinates in Y axis
Return type: tuple
References
[1] DONOHO, D. L.; JOHNSTONE, I. M. Ideal spatial adaptation via wavelet shrinkage. Biometrika, v. 81, p. 425–455, 1994.

signals.
heavsineFunction
(dim=1024, normalize=True, heavs=0)[source]¶ Generate the Heavsine function in a range of 0 to 1, with dim points.
Parameters:  dim (int) – Dimension of the signal.
 normalize (bool, optional) – It is True by default. This parameter normalize the data values
in a range of 0 to 1 with a function present in
statsWaveletFilt.miscellaneous
.  heavs (int or float, optional) – It is 0 by default. This parameter, called * heavs * is the number of discontinuities in the heavens characteristic signal shown by Donoho [1] with 0 the signal will be the original, used in [1].
Returns: [0] 1D arraylike, coordinates in X axis and [1] 1D arraylike, coordinates in Y axis
Return type: tuple
References
[1] DONOHO, D. L.; JOHNSTONE, I. M. Ideal spatial adaptation via wavelet shrinkage. Biometrika, v. 81, p. 425–455, 1994.

signals.
blockFunction
(dim=1024, normalize=True, ht=0)[source]¶ Generate the Block function in a range of 0 to 1, with dim points.
Parameters:  dim (int) – Dimension of the signal.
 normalize (bool, optional) – It is True by default. This parameter normalize the data values
in a range of 0 to 1 with a function present in
statsWaveletFilt.miscellaneous
.  ht (int, optional) – It is 0 by default. The parameter called ht is the commutation characteristic of block signal. The default parameter will generate the signal shown in [1].
Returns: [0] 1D arraylike, coordinates in X axis and [1] 1D arraylike, coordinates in Y axis
Return type: tuple
References
[1] DONOHO, D. L.; JOHNSTONE, I. M. Ideal spatial adaptation via wavelet shrinkage. Biometrika, v. 81, p. 425–455, 1994.

signals.
bumpFunction
(dim=1024, normalize=True, wht=0)[source]¶ Generate the Bump function in a range of 0 to 1, with dim points. Take care to the representation limits of this function is blows infinity in Y axis.
Parameters:  dim (int) – Dimension of the signal.
 normalize (bool, optional) – It is True by default. This parameter normalize the data values
in a range of 0 to 1 with a function present in
statsWaveletFilt.miscellaneous
.  wht (int, optional) – It is 0 by default. The parameter called wht is the number of peaks characteristic of bump signal. The default parameter will generate the signal shown in [1].
Returns: [0] 1D arraylike, coordinates in X axis and [1] 1D arraylike, coordinates in Y axis
Return type: tuple
References
[1] DONOHO, D. L.; JOHNSTONE, I. M. Ideal spatial adaptation via wavelet shrinkage. Biometrika, v. 81, p. 425–455, 1994.
threshold
module¶
Wavelet Based in CUSUM control chart for filtering signals Project (module
statsWaveletFilt.threshold
): Statistic functions for obtain threshold
values for wavelet coefficients based in some referenced works.
Created by Tiarles Guterres, 2018

threshold.
lambdasVisuShrink
(wavCoeff)[source]¶ Computes the threshold value (lambda) by VisuShrink [1] method.
Parameters: wavCoeff (list of lists or arraylike) – Wavelet coefficients Returns: The threshold values for each wavelet coefficients vector. Return type: list of float See also
filtration()
 Function that use this function for filter via wavelet coefficients
pywt.wavedec()
 Function that decomposes the signal in wavelet and scale coefficients
pywt.waverec()
 Function that recomposes the signal from wavelet and scale coefficients
References
[1] DONOHO, D. L.; JOHNSTONE, I. M. Ideal spatial adaptation via wavelet shrinkage. Biometrika, v. 81, p. 425–455, 1994.

threshold.
lambdasSureShrink
(wavCoeff, dim_t=1024)[source]¶ Computes the threshold value (lambda) by SureShrink [1] method. It’s showed also in [2].
Note
After the test (via pytest) the fuction was changed for better performance.
Parameters:  wavCoeff (list of lists or arraylike) – Wavelet coefficients
 dim_t (optional, 1024 by default. tdimension. Input vector from) – internal function _sure(vector, dim_t).
Returns: The threshold values for each wavelet coefficients vector.
Return type: list of float
See also
filtration()
 Function that use this function to filter via wavelet coefficients
pywt.wavedec()
 Function that decomposes the signal in wavelet and scale coefficients
pywt.waverec()
 Function that recomposes the signal from wavelet and scale coefficients
References
[1] DONOHO, D. L.; JOHNSTONE, I. M. Ideal spatial adaptation via wavelet shrinkage. Biometrika, v. 81, p. 425–455, 1994. [2] KOZAKEVICIUS, A. D. J.; BAYER, F. M. Filtragem de sinais via limiarização de coeficientes wavelet. Ciência e Natura, v. 36, p. 37–51, 2014. In portuguese.

threshold.
lambdasBayesShrink
(wavCoeff)[source]¶ Computes the threshold value (lambda) by BayesShrink [1] method. It’s showed also in [2].
Parameters: wavCoeff (list of lists or arraylike) – Wavelet coefficients Returns: The threshold values for each wavelet coefficients vector. Return type: list of float See also
filtration()
 Function that use this function to filter via wavelet coefficients
pywt.wavedec()
 Function that decomposes the signal in wavelet and scale coefficients
pywt.waverec()
 Function that recomposes the signal from wavelet and scale coefficients
References
[1] CHANG, S. G.; YU, B.; VETTERLI, M. Adaptive wavelet thresholding for image denoising and compression. IEEE Transactions on Image Processing, v. 9, p. 1532–1546, 2000. [2] KOZAKEVICIUS, A. D. J.; BAYER, F. M. Filtragem de sinais via limiarização de coeficientes wavelet. Ciência e Natura, v. 36, p. 37–51, 2014. In portuguese.

threshold.
lambdasSPC_Threshold
(wavCoeff, p=3)[source]¶ Computes the threshold value (lambda) by SPCThreshold [1], [2] method
Note
After the test (via pytest) the fuction was changed for better performance.
Parameters:  wavCoeff (list of lists or arraylike) – Wavelet coefficients
 p (int or float) – Optional, 3 by default. Parameter for the algorithm [1], generally is used 2 or 3.
Returns: The threshold values for each wavelet coefficients vector.
Return type: list of float
See also
filtration()
 Function that use this function to filter via wavelet coefficients
pywt.wavedec()
 Function that decomposes the signal in wavelet and scale coefficients
pywt.waverec()
 Function that recomposes the signal from wavelet and scale coefficients
References
[1] BAYER, F. M.; KOZAKEVICIUS, A. J. SPCthreshold: uma proposta de limiarização para filtragem adaptativa de sinais. Tendências em Matemática Aplicada e Computacional, v. 11, n. 2, p. 121–132, 2010. In portuguese. [2] KOZAKEVICIUS, A. D. J.; BAYER, F. M. Filtragem de sinais via limiarização de coeficientes wavelet. Ciência e Natura, v. 36, p. 37–51, 2014. In portuguese.