timeFilters

filterDesign

Description

L'action `filterDesign` du jeu d'actions `timeFilters` conçoit un filtre numérique (comme Butterworth ou Chebyshev) et génère les coefficients et métadonnées associés dans une table CAS de sortie. Cette action permet de définir des filtres passe-bas, passe-haut, passe-bande ou coupe-bande en spécifiant l'ordre, les fréquences de coupure et d'autres propriétés spectrales. La table résultante peut être utilisée ultérieurement pour appliquer le filtre à des séries temporelles.

timeFilters.filterDesign <result=results> <status=rc> / casOut={caslib="string", compress=TRUE | FALSE, indexVars={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR" | "INHERIT" | "STANDARD", name="table-name", promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}} * filterCutoff1=double filterCutoff2=double * filterName="string" * filterOrder=double filterOutTable={caslib="string", label="string", lifetime=64-bit-integer, memoryFormat="DVR" | "INHERIT" | "STANDARD", name="table-name", promote=TRUE | FALSE, replace=TRUE | FALSE, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE"} filterRp=double filterRs=double * filterType="string" inputVarName="string" smoothedVarName="string";
Paramètres
ParamètreDescription
casOut Spécifie la table de sortie optionnelle contenant les paramètres techniques calculés du filtre.
filterCutoff1 Spécifie la fréquence de coupure basse du filtre. La valeur doit être comprise entre 0 et 1 (fréquence de Nyquist normalisée).
filterCutoff2 Spécifie la fréquence de coupure haute du filtre. Requise uniquement si filterType est 'bandpass' (passe-bande) ou 'bandstop' (coupe-bande).
filterName Spécifie le nom du filtre à concevoir. Valeurs possibles : 'butter' (Butterworth), 'cheby1' (Chebyshev Type I), 'cheby2' (Chebyshev Type II).
filterOrder Spécifie l'ordre du filtre (nombre entier positif, maximum 200).
filterOutTable Spécifie la table de sortie qui contiendra la définition complète du filtre conçu.
filterRp Spécifie l'ondulation en bande passante en décibels (dB). Requis uniquement pour le filtre Chebyshev Type I.
filterRs Spécifie l'atténuation en bande d'arrêt en décibels (dB). Requis uniquement pour le filtre Chebyshev Type II.
filterType Spécifie le type de filtre : 'lowpass' (passe-bas), 'highpass' (passe-haut), 'bandpass' (passe-bande) ou 'bandstop' (coupe-bande).
inputVarName Spécifie le nom de la variable d'entrée qui sera associée à ce filtre (valeur par défaut : 'signal').
smoothedVarName Spécifie le nom de la variable de sortie (lissée) qui sera associée à ce filtre (valeur par défaut : 'output').
Préparation des Données Voir la fiche de ce code dataprep
Initialisation de la session

Démarre une session CAS pour exécuter l'action de conception de filtre.

Copié !
1PROC CAS; SESSION mysess; RUN;

Exemples

Conçoit un filtre Butterworth passe-bas d'ordre 4 avec une fréquence de coupure de 0.2.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3timeFilters.filterDesign / filterName="butter" filterType="lowpass" filterOrder=4 filterCutoff1=0.2 filterOutTable={name="butter_low", replace=true};
4 
5RUN;
6 
Résultat :
Une table nommée 'butter_low' est créée contenant la définition du filtre.

Conçoit un filtre Chebyshev Type I passe-bande d'ordre 5, avec des fréquences de coupure à 0.1 et 0.4, une ondulation de 0.5 dB, et définit les noms de variables d'entrée/sortie.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3timeFilters.filterDesign / filterName="cheby1" filterType="bandpass" filterOrder=5 filterCutoff1=0.1 filterCutoff2=0.4 filterRp=0.5 inputVarName="SerieBrute" smoothedVarName="SerieFiltree" casOut={name="FilterCoeffs", replace=true} filterOutTable={name="ChebyBandPass", replace=true};
4 
5RUN;
6 
Résultat :
Deux tables sont créées : 'ChebyBandPass' avec la définition complète du filtre et 'FilterCoeffs' avec les coefficients détaillés.

FAQ

Quelle est la fonction principale de l'action filterDesign ?
Quels sont les noms de filtres numériques pris en charge par le paramètre filterName ?
Quels types de réponse fréquentielle peut-on spécifier avec le paramètre filterType ?
Comment définir les fréquences de coupure pour le filtre ?
Quelles sont les contraintes pour le paramètre filterOrder ?
Quels paramètres supplémentaires sont nécessaires pour les filtres de Chebyshev ?
Dans quel paramètre spécifie-t-on la table de sortie contenant le filtre conçu ?