timeFilters

filterDesign

##set_timefilters

Description

L'action filterDesign est l'architecte de vos filtres numériques au sein de SAS Viya. Elle permet de calculer les coefficients et de définir la structure de filtres classiques comme Butterworth ou Chebyshev. C'est un peu comme fabriquer un tamis sur mesure pour vos données : vous décidez de ce qui passe et de ce qui reste à la porte des fréquences, sans avoir besoin d'un diplôme en traitement du signal (enfin, presque) !

Syntaxe Officielle
proc cas;
timeFilters.filterDesign /
filterCutoff1=double,
filterCutoff2=double,
filterName="string",
filterOrder=double,
filterType="string",
filterOutTable={casouttable},
filterRp=double,
filterRs=double,
casOut={casouttable},
inputVarName="string",
smoothedVarName="string";
run;

Paramètres Clés

Nom du paramètre Description
filterCutoff1 Spécifie la fréquence de coupure basse du filtre. C'est une valeur entre 0 et 1, où 1 représente la fréquence de Nyquist. Obligatoire pour tous les types de filtres.
filterCutoff2 Spécifie la fréquence de coupure haute. Ce paramètre est requis uniquement si vous utilisez un type de filtre 'bandpass' (passe-bande) ou 'bandstop' (coupe-bande).
filterName Le nom du design du filtre : 'butter' ou 'butterworth', 'cheby1' (Chebyshev Type I) ou 'cheby2' (Chebyshev Type II).
filterOrder L'ordre du filtre, un entier positif (maximum 200). Plus l'ordre est élevé, plus la transition entre la bande passante et la bande coupée est nette.
filterType Le type de filtrage souhaité : 'lowpass' (passe-bas), 'highpass' (passe-haut), 'bandpass' (passe-bande) ou 'bandstop' (coupe-bande).
filterOutTable Désigne la table CAS de sortie qui contiendra la définition technique du filtre conçu.
filterRp Spécifie l'ondulation (ripple) autorisée dans la bande passante en décibels (dB). Requis uniquement pour les filtres Chebyshev Type I.
filterRs Spécifie l'atténuation dans la bande coupée en décibels (dB). Requis uniquement pour les filtres Chebyshev Type II.
casOut Table de sortie optionnelle pour stocker les paramètres spécifiques du filtre.
inputVarName Nom de la variable d'entrée associée au filtre (par défaut 'signal').
smoothedVarName Nom de la variable de sortie lissée (par défaut 'output').

Préparation des données

Préparation de l'environnement

Comme cette action génère un design de filtre plutôt que de traiter des données existantes, nous créons simplement une bibliothèque pour recevoir les résultats.

1cas mysess;
2caslib _all_ assign;

Exemples d'utilisation

Conception d'un filtre passe-bas Butterworth

Cet exemple crée un filtre de Butterworth d'ordre 4 avec une fréquence de coupure à 0.2.

1PROC CAS;
2 timeFilters.filterDesign /
3 filterName="butter",
4 filterType="lowpass",
5 filterOrder=4,
6 filterCutoff1=0.2,
7 filterOutTable={name="butter_low"};
8RUN;
Résultat Attendu :
Une table CAS nommée 'butter_low' est créée, contenant les coefficients du filtre.
Design avancé d'un filtre passe-bande Chebyshev Type I

Ici, on conçoit un filtre plus complexe pour isoler une bande de fréquence spécifique (0.1 à 0.4) avec une ondulation contrôlée de 3dB.

1PROC CAS;
2 timeFilters.filterDesign /
3 filterName="cheby1",
4 filterType="bandpass",
5 filterOrder=8,
6 filterCutoff1=0.1,
7 filterCutoff2=0.4,
8 filterRp=3,
9 inputVarName="MaSerie",
10 smoothedVarName="SerieLissée",
11 filterOutTable={name="cheby_band", replace=true},
12 casOut={name="cheby_params", replace=true};
13RUN;
Résultat Attendu :
Deux tables sont générées : 'cheby_band' (le design pour utilisation future) et 'cheby_params' (les paramètres du design).