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
casOutSpécifie la table de sortie optionnelle contenant les paramètres techniques calculés du filtre.
filterCutoff1Spécifie la fréquence de coupure basse du filtre. La valeur doit être comprise entre 0 et 1 (fréquence de Nyquist normalisée).
filterCutoff2Spécifie la fréquence de coupure haute du filtre. Requise uniquement si filterType est 'bandpass' (passe-bande) ou 'bandstop' (coupe-bande).
filterNameSpécifie le nom du filtre à concevoir. Valeurs possibles : 'butter' (Butterworth), 'cheby1' (Chebyshev Type I), 'cheby2' (Chebyshev Type II).
filterOrderSpécifie l'ordre du filtre (nombre entier positif, maximum 200).
filterOutTableSpécifie la table de sortie qui contiendra la définition complète du filtre conçu.
filterRpSpécifie l'ondulation en bande passante en décibels (dB). Requis uniquement pour le filtre Chebyshev Type I.
filterRsSpécifie l'atténuation en bande d'arrêt en décibels (dB). Requis uniquement pour le filtre Chebyshev Type II.
filterTypeSpécifie le type de filtre : 'lowpass' (passe-bas), 'highpass' (passe-haut), 'bandpass' (passe-bande) ou 'bandstop' (coupe-bande).
inputVarNameSpécifie le nom de la variable d'entrée qui sera associée à ce filtre (valeur par défaut : 'signal').
smoothedVarNameSpé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 ?