Sauter la navigation

Documentation FlexPro 2025

DCRemovalFilter

Supprime le décalage CC (DC bias) à l'aide d'un filtre passe-haut numérique (récursif).

Syntaxe

DCRemovalFilter(DataSet, [ CutOffFrequency = 0.01 ], [ SamplingRate ], [ Order = 1 ] [ , PhaseCorrection = True ])
ou
DCRemovalFilter(Result, [ CutOffFrequency = 0.01 ], [ SamplingRate ] [ , Order = 1 ])

 

La syntaxe de la fonction DCRemovalFilter se compose des éléments suivants :

Section

Description

DataSet

L'ensemble de données dont le décalage DC doit être supprimé.

Les structures de données autorisées sont Série de données, Matrice de données, Signal et Série de signaux. Tous les types de données numériques sont autorisés.

Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste.

CutOffFrequency

Spécifie la fréquence de coupure du filtre passe-haut. La fréquence doit être comprise entre 0 et 0,25 (un quart du taux d'échantillonnage normalisé à un) ou entre 0 et 0,25 * SamplingRate.La fréquence de coupure est définie comme la fréquence à laquelle l'amplitude du filtre dépasse 70,7 % de l'amplitude initiale du signal.

Les structures de données autorisées sont Scalaire. Tous les types de données réels sont autorisés, sauf Temps calendaire et Période de temps.

La valeur doit être supérieure ou égale à 0.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut 0.01 .

SamplingRate

Précise le taux d'échantillonnage. L'argument est facultatif. Si cet argument n'est pas spécifié, la fréquence limite pour CutOffFrequency doit être fixée à une fréquence normalisée de 0 à 0,25.

Les structures de données autorisées sont Scalaire. Tous les types de données réels sont autorisés, sauf Temps calendaire et Période de temps.

La valeur doit être supérieure à 0.

Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste.

Order

Précise l'ordre du filtre de suppression des DC. Une augmentation de l'ordre entraîne une plus grande pente du filtre. En contrepartie, les ordres plus élevés entraînent des temps de calcul et de réglage des filtres plus longs.

Les structures de données autorisées sont Scalaire. Tous les types de données entiers sont autorisés.

La valeur doit être supérieure ou égale à 1 et inférieure ou égale à 10.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut 1 .

PhaseCorrection

La valeur TRUE précise que le filtrage comprend une correction de phase, ce qui signifie que la phase du signal filtré est la même que celle du signal d'entrée. Le filtrage a lieu deux fois dans ce cas : une fois en avant et une fois en arrière.

Les structures de données autorisées sont Scalaire. Les types de données pris en charge sont Valeur booléenne.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut True .

Result

Spécifie si les coefficients du filtre ou les pôles et les zéros du filtre sont renvoyés comme résultat.

L'argument Result peut avoir les valeurs suivantes :

Constante

Signification

FILTER_COEFFICIENTS

Les coefficients de filtrage sont renvoyés comme résultat.

FILTER_POLESANDZEROS O

Les pôles et zéros sont renvoyés comme résultat.

O Cette constante n'est disponible que si une licence pour l'option Filtres numériques est présente.

FILTER_COEFFICIENTSCASCADED

Les coefficients de filtrage du filtre IIR en cascade du second ordre sont renvoyés comme résultat.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Remarques

Le filtre correspond à un filtre passe-haut Butterworth avec l'ordre spécifié Order et la fréquence de coupure CutOffFrequency. Le filtre passe-haut Butterworth peut également être créé à l'aide de la fonction IIRFilter.

Utilisez la première syntaxe pour supprimer le décalage directement des signaux. La structure du résultat correspond à celle de l'argument DataSet. Pour les matrices de données et les séries de signaux, le calcul s'effectue colonne par colonne. Les composantes X ou Z, si elles sont présentes, sont reprises telles quelles dans le résultat.

Utilisez la deuxième syntaxe pour renvoyer les coefficients du numérateur et du dénominateur du filtre sous forme de liste de deux éléments b et a ou les pôles et les zéros du filtre. Les coefficients du numérateur et du dénominateur peuvent être utilisés pour calculer la réponse en amplitude du filtre au moyen de AmplitudeResponse ou de la réponse en phase avec PhaseResponse.

Le filtre a la réponse en amplitude suivante (Order = 1) pour différentes fréquences de coupure. La composante continue est filtrée et les fréquences supérieures à la fréquence de coupure sont transmises presque sans atténuation :

L'augmentation de l'ordre entraîne une augmentation de la pente du filtre passe-haut, par exemple en sélectionnant Order = 3 :

Pour le réglage par défaut Order = 1, le filtre se réduit à un filtre récursif de premier ordre courant pour supprimer le décalage DC, également connu sous le nom de Cascaded-Differentiation-Integration-Filter, voir [1, section 13.23] ou [2]. Interprétation de ce nom : le Cascaded-Differentiation-Integration-Filter est formé par une différentiation inverse, suivie d'une intégration "par fuite" avec des constantes de rétroaction α. Le différentiateur numérique élimine la composante DC, l'intégrateur qui suit renvoie le signal d'entrée sans décalage DC. Le Cascaded-Differentiation-Integration-Filter (CDI) possède la règle de définition récursive suivante :

Le paramètre α de l'intervalle [0, 1] peut être calculé sans ambiguïté par la fréquence de coupure normalisée ω de l'intervalle [0, 1/4] comme suit :

Disponible dans

FlexPro Basic, Professional, Developer Suite

Exemples

DCRemovalFilter(DataSet)

Supprime la polarisation DC d'un ensemble de données. La fréquence de coupure normalisée est généralement fixée à la fréquence normalisée de 0,01. Cela correspond à une fréquence de coupure d'un centième de la fréquence d'échantillonnage.

DCRemovalFilter(DataSet, 3 Hz, SamplingRate(Signal.X))

Supprime la polarisation DC d'un ensemble de données. La fréquence de coupure est fixée à 3 Hz. Il s'agit d'une fréquence maximale normalisée de 3 Hz / fréquence d'échantillonnage.

Integral(DCRemovalFilter(Signal))

Intègre un signal et supprime au préalable la dérive ou le décalage (composante continue). Raison : Si vous intégrez des signaux qui ont une dérive ou un décalage en courant continu, la courbe intégrée s'éloigne. La cause en est non seulement l'accumulation du décalage DC pendant l'intégration, mais aussi la courbe d'amplitude de l'intégrateur inversement proportionnelle à la fréquence (voir fonction Integral). Celui-ci permet d'amplifier le bruit à des fréquences proches de la composante continue et de l'augmenter par intégration jusqu'à des valeurs arbitraires. La courbe intégrée dérive alors. Le graphique suivant illustre cet état de fait (à titre d'exemple, l'un des signaux d'accélération a été utilisé pour l'intégration à partir des données d'exemple FlexPro sous C:\Users\Public\Documents\Weisang\FlexPro) :

Dim coeff = DCRemovalFilter(FILTER_COEFFICIENTSCASCADED, 0.01, , 3)
AmplitudeResponse(coeff, 100000)
 

Calcule la réponse en amplitude (avec 100000 points de données) du filtre réversible DC pour la fréquence de coupure normalisée 0,01 et l'ordre 3 à l'aide de la fonction AmplitudeResponse.

Dim coeff = DCRemovalFilter(FILTER_COEFFICIENTSCASCADED, 0.01)
Filter(Signal, coeff, TRUE)
 

Les coefficients du numérateur et du dénominateur du filtre sont d'abord calculés, puis les données sont traitées par la fonction Filter. DCRemovalFilter(Signal).

Dim param = DCRemovalFilter(FILTER_POLESANDZEROS, 0.001, , 5)
Signal(Imag(param.Poles), Real(param.Poles))
 

Calcule les positions polaires du filtre à la fréquence de coupure normalisée de 0,001 et d'ordre 5 et les renvoie dans la structure de l'ensemble de données Signal. Il convient de noter qu'un ordre trop élevé peut provoquer des artefacts numériques pour des fréquences de coupure trop basses. Les artefacts numériques sont dus mathématiquement au fait que les positions polaires du filtre se trouvent sur le cercle unité ou en sont très proches. Par exemple, pour Order = 1, les pôles sont plus éloignés du cercle unité que pour Order = 5. Nous obtenons donc le filtre numériquement le plus stable pour Order = 1.

Voir aussi

Fonction Detrend

Fonction Integral

Fonction AmplitudeResponse

Fonction PhaseResponse

Fonction IIRFilter

Fonction Filter

Fonction SamplingRate

Option Filtres numériques

Objet d'analyse Filtre IIR

Objet d'analyse Analyse du signal

Littérature

[1] Richard G. Lyons: Understanding Digital Signal Processing (3rd Edition). Prentice Hall, 2011. ISBN 0-13-702741-9.

[2] Richard G. Lyons, Randy Yates: DC Blocker Algorithms. Dans : IEEE Signal Processing Magazine, Vol. 25, Issue 2. 2008.