filter2
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## filter2

filter2 — Réalise un filtrage au moyen d'un bloc de filtre numérique de forme transposée II sans contrôle variable.

## Description

Filtre configurable à usage général sans contrôle variable des pôles. Les coefficients du filtre implémentent l'équation aux différences suivante :

(1)*y(n) = b0*x[n] + b1*x[n-1] +...+ bM*x[n-M] - a1*y[n-1] -...- aN*y[n-N]

dont la fonction de transfert est représentée par :

B(Z) b0 + b1*Z-1 + ... + bM*Z-M
H(Z) = ---- = --------------------------
A(Z) 1 + a1*Z-1 + ... + aN*Z-N

## Syntaxe

    ares filter2 asig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN

    kres filter2 ksig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN

## Initialisation

A l'initialisation, les nombres de zéros et de pôles du filtres sont spécifiés ainsi que leurs valeurs. Les coefficients doivent être obtenus par une application externe de conception de filtre telle que Matlab et sont spécifiés directement ou bien chargés dans une table via GEN01.

## Exécution

L'opcode filter2 réalise un filtrage au moyen d'un bloc de filtre numérique de forme transposée II sans contrôle variable.

Comme filter2 implémente des filtres récursifs généralisés, on peut l'utiliser pour définir une grande variété d'algorithmes généraux de traitement numérique du signal. Par exemple, on peut implémenter un guide d'onde numérique pour modéliser un instrument de musique au moyen d'une paire d'opcodes delayr et delayw conjointement à l'opcode filter2.

## Exemples

Un filtre passe-bas RIF du premier ordre à phase linéaire opérant sur un signal de taux-k :

    k1 filter2 ksig, 2, 0, 0.5, 0.5   ;; filtre RIF de taux-k

Voici un autre exemple de l'opcode filter2. Il utilise le fichier filter2.csd.

Exemple 271. Exemple de l'opcode filter2.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac   ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o filter2.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1	 ; 2 saw waves of which one is slightly detuned

    ib1   = p5
    ivol  = p6				;volume to compensate
    kcps  init cpspch(p4)
    asig1 vco2 .05, kcps			;saw 1
    asaw1 filter2 asig1, 1, 1, 1, ib1	;filter 1
    asig2 vco2 .05, kcps+1			;saw 2
    asaw2 filter2 asig2, 1, 1, 1, ib1	;filter 2
    aout  = (asaw1+asaw2)*ivol		;mix
          outs aout, aout

    endin
    </CsInstruments>
    <CsScore>

    i 1 0 4 6.00 -.001 5	;different filter values
    i 1 + 4 6.00 -.6   2	;and different volumes
    i 1 + 4 6.00 -.95 .3	;to compensate
    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

zfilter2

## Crédits

Auteur : Michael A. Casey
M.I.T.
Cambridge, Mass.
1997

Nouveau dans la version 3.47

Précédent | Niveau supérieur | Suivant
fft | Sommaire | fin