IIRFilter (FPScript)

21.09.2021

Calcule les coefficients du numérateur et du dénominateur ou les pôles et les zéros d'un filtre à réponse impulsionnelle infinie (filtre IIR).

Syntaxe

IIRFilter(Filter, Type, [ Order ], CutOffFrequencies, [ PassBand = 3 ], [ StopBand = 40 ], [ Mode = FILTER_DB ], [ Result = FILTER_COEFFICIENTS ] [ , SamplingRate ])

 

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

Section

Description

Filter

Spécifie les caractéristiques du filtre.

L'argument Filter peut avoir les valeurs suivantes :

Constante

Signification

FILTER_BESSEL

Filtre à bande passante plate et à pente relativement faible.

FILTER_BUTTERWORTH

Filtre à bande passante plate et à plus forte pente, mais avec des débordements pour les signaux à forte pente.

FILTER_CHEBYSHEV

Filtre à forte pente. L'ondulation de la bande passante peut être ajustée sous PassBand.

FILTER_INVERSECHEBYSHEV O

Filtre à forte pente. L'ondulation de la bande d'arrêt peut être ajustée sous StopBand.

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

FILTER_ELLIPTIC O

Aussi connu sous le nom de filtre Cauer. L'ondulation de la bande passante et l'atténuation de la bande d'arrêt peuvent toutes deux être ajustées.

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

FILTER_LEGENDRE O

Aussi connu sous le nom de filtre Optimum "L". A une pente plus importante que le filtre de Butterworth mais, contrairement au filtre de Tchebyshev, il n'y a pas d'ondulation dans la bande passante.

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

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é.

Type

Précise le type de filtre.

L'argument Type peut avoir les valeurs suivantes :

Constante

Signification

FILTER_LOWPASS

Passe-bas, permet le passage des fréquences qui sont en dessous de la fréquence de coupure.

FILTER_HIGHPASS

Passe haut, permet le passage des fréquences qui sont au-dessus de la fréquence de coupure.

FILTER_BANDPASS

La bande passante, permet le passage des fréquences qui se situent entre la première et la deuxième fréquence de coupure.

FILTER_BANDSTOP

Stop bande, permet le passage des fréquences qui sont en dessous de la première et au-dessus de la deuxième fréquence de coupure.

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é.

Order

Précise l'ordre du filtre. Les ordres 1 à 20 sont autorisés. L'argument est facultatif si la bande passante et la bande de coupure pour la transition entre la bande passante et la bande de coupure et vice versa sont spécifiées à la place de la fréquence de coupure. Dans ce cas, l'ordre de filtrage optimal est estimé. L'ordre doit être précisé pour le filtre Bessel.

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 à 20.

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é.

CutOffFrequencies

Spécifie les fréquences de coupure ou les transitions du filtre. Les fréquences doivent être comprises entre 0 et la moitié de la fréquence d'échantillonnage ou entre 0 et 0,5, soit la moitié de la fréquence d'échantillonnage normalisée. Si l'ordre est précisé, une valeur scalaire doit être spécifiée pour le filtre passe-bas ou passe-haut, et une série de données avec deux valeurs doit être fournie pour les filtres passe-bande et coupe-bande. Pour estimer l'ordre du filtre, les transitions doivent être spécifiées sous la forme d'une matrice de données avec 2 valeurs chacune.

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

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é.

PassBand

Spécifie l'ondulation du filtre de Tchebychev ou elliptique dans la bande passante en décibels ou l'erreur dans la bande passante.

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.

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 3 .

StopBand

Spécifie l'atténuation du filtre de Tchebychev inverse ou elliptique dans la bande de coupure en décibels ou l'erreur dans la bande de coupure.

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.

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 40 .

Mode

Précise si l'atténuation / l'ondulation en décibels, ou l'erreur est spécifiée.

L'argument Mode peut avoir les valeurs suivantes :

Constante

Signification

FILTER_DELTA

L'erreur est spécifiée pour la bande passante ou la bande d'arrêt.

FILTER_DB

L'ondulation du filtre est spécifiée pour la bande passante, et l'atténuation est spécifiée en décibels pour la bande d'arrêt.

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 FILTER_DB .

Result

Spécifie si les coefficients du filtre ou les pôles et les zéros 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é.

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

SamplingRate

Spécifie le taux d'échantillonnage du signal à filtrer. Si cet argument est omis, les fréquences normalisées de 0 à 0,5 doivent être spécifiées comme fréquences de coupure.

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.

Remarques

Les coefficients du numérateur et du dénominateur sont renvoyés sous la forme d'une liste comportant deux éléments a et b. Celles-ci peuvent être présentées sous forme de séries de données ou de matrices de données à trois rangées pour les coefficients d'une cascade de filtres d'ordre 2. Utilisez la fonction Filterpour filtrer les données avec le filtre calculé.

L'ondulation de la bande passante peut être spécifiée en décibels pour les filtres Tchebychev et Elliptique. L'atténuation de la bande de coupure peut être spécifiée en décibels pour les filtres Tchebychev inverse et Elliptique. L'erreur relative peut également être spécifiée pour la bande passante ou la bande de coupure. Toutes les valeurs sont spécifiées comme des valeurs absolues.

Les dispositions suivantes s'appliquent : Ripple = | 20 log( 1 / (1 - relative passband error)) |

Attenuation = | 20 log( relative stop band error ) |

Une erreur de bande de coupure relative de 0,1 équivaut à une atténuation de 20 décibels.

Remarque        Une augmentation de l'ordre entraîne une plus grande pente du filtre.

Disponible dans

FlexPro Basic, Professional, Developer Suite

Exemples

IIRFilter(FILTER_BUTTERWORTH, FILTER_LOWPASS, 5, 0.2)

Calcule les coefficients d'un filtre passe-bas de Butterworth du 5ème ordre avec une fréquence de coupure normalisée de 0,2.

Filter(Signal, IIRFilter(FILTER_BUTTERWORTH, FILTER_LOWPASS, 5, 0.5 kHz, , , , , SamplingRate(Signal)), TRUE)

Filtre un signal avec correction de phase en utilisant un filtre passe-bas avec une fréquence de coupure de 500 Hz.

IIRFilter(FILTER_ELLIPTIC, FILTER_BANDSTOP, 5, {0.1, 0.2}, 2 dB, 45 dB)

Calcule les coefficients de coupure de bande d'un filtre de Cauer avec une ondulation de 2 dB et une atténuation de 45 dB.

IIRFilter(FILTER_CHEBYSHEV, FILTER_HIGHPASS,, {{0.1, 0.15}}, 0.01, 0.01, FILTER_DELTA)

Estime l'ordre du filtre et calcule les coefficients d'un filtre passe-haut de Tchebyshev avec une erreur de 0,01 dans la bande de coupure et la bande passante avec un bord de bande de coupure de 0,1 et un bord de bande passante de 0,15.

Voir aussi

Fonction Filter

Fonction FIRFilterEquiripple

Fonction FIRFilterWindow

Fonction DCRemovalFilter

Option Filtres numériques

Objet d'analyse Filtre IIR

Tutoriel sur les filtres

Partager l’article ou envoyer par mail :

Vous serez probablement intéressé par les articles suivants :