Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Machine Learning
avec Scikit-Learn
Voir le programme détaillé
Module « scipy.signal »

Fonction decimate - module scipy.signal

Signature de la fonction decimate

def decimate(x, q, n=None, ftype='iir', axis=-1, zero_phase=True) 

Description

help(scipy.signal.decimate)

Downsample the signal after applying an anti-aliasing filter.

By default, an order 8 Chebyshev type I filter is used. A 30 point FIR
filter with Hamming window is used if `ftype` is 'fir'.

Parameters
----------
x : array_like
    The signal to be downsampled, as an N-dimensional array.
q : int
    The downsampling factor. When using IIR downsampling, it is recommended
    to call `decimate` multiple times for downsampling factors higher than
    13.
n : int, optional
    The order of the filter (1 less than the length for 'fir'). Defaults to
    8 for 'iir' and 20 times the downsampling factor for 'fir'.
ftype : str {'iir', 'fir'} or ``dlti`` instance, optional
    If 'iir' or 'fir', specifies the type of lowpass filter. If an instance
    of an `dlti` object, uses that object to filter before downsampling.
axis : int, optional
    The axis along which to decimate.
zero_phase : bool, optional
    Prevent phase shift by filtering with `filtfilt` instead of `lfilter`
    when using an IIR filter, and shifting the outputs back by the filter's
    group delay when using an FIR filter. The default value of ``True`` is
    recommended, since a phase shift is generally not desired.

    .. versionadded:: 0.18.0

Returns
-------
y : ndarray
    The down-sampled signal.

See Also
--------
resample : Resample up or down using the FFT method.
resample_poly : Resample using polyphase filtering and an FIR filter.

Notes
-----
The ``zero_phase`` keyword was added in 0.18.0.
The possibility to use instances of ``dlti`` as ``ftype`` was added in
0.18.0.

Examples
--------

>>> import numpy as np
>>> from scipy import signal
>>> import matplotlib.pyplot as plt

Define wave parameters.

>>> wave_duration = 3
>>> sample_rate = 100
>>> freq = 2
>>> q = 5

Calculate number of samples.

>>> samples = wave_duration*sample_rate
>>> samples_decimated = int(samples/q)

Create cosine wave.

>>> x = np.linspace(0, wave_duration, samples, endpoint=False)
>>> y = np.cos(x*np.pi*freq*2)

Decimate cosine wave.

>>> ydem = signal.decimate(y, q)
>>> xnew = np.linspace(0, wave_duration, samples_decimated, endpoint=False)

Plot original and decimated waves.

>>> plt.plot(x, y, '.-', xnew, ydem, 'o-')
>>> plt.xlabel('Time, Seconds')
>>> plt.legend(['data', 'decimated'], loc='best')
>>> plt.show()



Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation Python
Les fondamentaux
Voir le programme détaillé